bosun 快速入門

本文檔是Bosun的快速安裝文檔。根據本文檔,你能夠搭建一個完整的bosun服務,能夠把指定機器的各類信息聚合起來,而且實現相關信息的報警。html

Bosun

這篇文檔中,bosun的安裝依賴docker。若是不但願使用docker,能夠從 bosun.org中自行下載bosun二進制文件,可是這樣就須要本身安裝OpenTSDB和HBase。linux

Docker

安裝Docker

若是系統中沒有安裝Docker,能夠參考此處進行安裝 https://docs.docker.com/installation/。 安裝完畢後,不要忘記將docker守護進程起開。docker

安裝Boson

一旦docker安裝完畢,可使用下面的命令安裝bosun,可能須要sudo權限。shell

docker run -d -p 8070:8070 stackexchange/bosun

這條命令,告訴docker進程爲bosun啓動一個後臺進程,端口是8070。稍等15秒,bosun服務啓動完畢,這樣bosun的server端就搭建並啓動完畢,咱們可使用瀏覽器進行訪問了,http://yourip:8070windows

向Bosun中推送數據

即便沒有任何的slave,buson server自身也會產生不少的數據。下面也會講如何啓動bosun slave。瀏覽器

bosun檢查數據

假設bosun slave已經啓動,server和slave已經經過8070端口創建了鏈接,那麼bosun server就會收到slave的各類信息。咱們能夠經過http://docker-server-ip:8070/items來查看當前已經鏈接上的slave節點。若是看到一堆的參數,那麼恭喜,bosun正在收集數據。在頁面的底部或者第二列展現的是當前正在產生數據的slave節點。點擊某個slave,而後點擊「Available Metrics」,就會看到當前slave能夠被監控的數據類型,如cpu、內存等等。測試

新建Alert

如今咱們的server已經在收集各類信息了,但監控系統的關鍵做用在於當異常狀況發生時,系統會給出報警。報警也是bosun重點支持的。設計

Bosun提供一套工做流,它使設計、測試、推送一條報警更簡單。咱們看到bosun首頁的導航條,包括"Items", "Graph", "Expression", "Rule"和"Test Config",其實這也是咱們新建一條Alert的步驟。通常狀況下,咱們須要先選擇一條item(metric),這是Alert的基礎。而後,咱們觀察這條item繪製的曲線,瞭解它的動態。以後,咱們將這個曲線轉化成表達式,再次這個表達式整理成規則。以後,咱們能夠測試這條規則,無誤後,將其推送到bosun server中。rest

下面是一個新建Alert的例子,咱們監控cpu的使用狀況,若是cpu idle太低,就報警。這裏咱們使用的metric是「os.cpu」。當某臺機器的cpu idle持續一小時太低時,咱們就發送一條報警。打開bosun首頁,下面開始配置。code

Items

點擊「Items」標籤頁。會看到bosun當前監控的全部的項。點擊「os.cpu」,頁面跳轉到「Graph」頁面。

Graph

在Graph頁面,咱們能看到bosun預加載了全部slave的圖表。咱們想看單臺slave的信息,在host輸入框中,輸入咱們的機器名,點擊藍色的"Query"按鈕,buson就會將指定機器的最近一個小時的cpu使用狀況畫出來。

如今,咱們看到了cpu利用率的曲線。在頁面的底部,有個「Queries」區域。它表示的是生成當前曲線所用的表達式。

在Queries區域,還有「Expression」和「Rule」超連接,這兩個連接直接連接到本頁面曲線的表達式和規則頁面。在本教程中,咱們點擊「Expression」 連接。

Expression

在表達式頁面,咱們能夠經過咱們的query條件,來調整結果集的大小。本頁面的查詢表達式應該相似"q("sum":rate...)" 經過這條語句,bosun就會去查詢過去一個小時內的指定機器的cpu使用狀況。咱們點擊「show」按鈕,能夠看到這條語句的結果集。每條結果都是 timestamp和value的形式。

新建Alert,咱們不太關心結果集的大小,咱們對於結果集的平均值更感興趣。爲了獲得結果集的平均值,可使用avg()方法,以下:

q("sum:rate{counter,,1}:os.cpu{host=your-system-here}", "1h", "")
    avg(q("sum:rate{counter,,1}:os.cpu{host=your-system-here}", "1h", ""))

咱們點擊藍色的「Test」按鈕,咱們就會看到結果變成單個數字,這個數字就是cpu在這段時間的平均利用率。如今咱們獲得了cpu平均值,能夠根據這個值的大小,來監控cpu idle太低了。點擊「rule」按鈕。

Rule

在規則頁面,有兩個輸入框,Alert框和Template框。Alert框展現的就是剛纔咱們新建的報警規則。Template框展現的是觸發報警後的動做,如發送郵件等。當前Alert框,咱們的這條規則,bosun會永遠識別成「critical」,緣由是 crit和warn是boolean類型的,咱們把cpu的平均值賦給它,永遠是非0值,非0值就是true。咱們須要增長一些邏輯判斷,以下:

alert cpu.is.too.high {
        template = test
        $metric = q("sum:rate{counter,,1}:os.cpu{host=your-system-here}", "1h", "")
        $avgcpu = avg($metric)
        crit = $avgcpu > 80
        warn = $avgcpu > 60
    }

若是機器的cpu利用率高於80%,就會觸發critical報警;若是高於60%,觸發warning報警。到如今爲止,咱們的這個Alert其實也沒多大用處,由於它只監控了一臺機器,咱們能夠經過修改host的值來監控其餘機器,或者將host的值設成*,來監控全部機器。若是不想監控某臺機器,還能夠在Alert body中填寫排除語句,但在本教程中不詳細講解了。

點擊「Test」按鈕,下方會列出全部的crit報警,warn報警和normal狀況。點擊「Email」按鈕,會看到報警郵件的發送狀況。默認的報警郵件模板,不太直觀,能夠改爲下面的:

template test {
        subject = {{.Last.Status}}: {{.Alert.Name}} on {{.Group.host}}
        body = `Alert: {{.Alert.Name}} triggered on 
{{.Group.host}}
        
        Computation
        
            {{range .Computations}}
                
            {{end}}
        {{.Text}}{{.Value}}
        
        {{ .Graph .Alert.Vars.metric }}
        
        Relevant Tags
        
            {{range $k, $v := .Group}}

            {{end}}
        {{$k}}{{$v}}`
    }

當點擊「Test」按鈕後,在頁面底部的template tab頁,會顯示出報警的詳細信息。

報警持久化

目前爲止,咱們新建了報警規則,可是bosun還不會觸發報警,由於尚未將規則加到bosun的配置文件中。咱們能夠在「Test Config」tab頁面中,校驗咱們的規則有無語法錯誤,若是沒有語法錯誤,將規則加到bosun.conf中便可。bosun.conf這個文件在docker容器路徑下面的/data/bosun.conf中,具體路徑可使用shell命令查一下sudo find / -name "bosun.conf",添加完以後,重啓bosun服務,sudo docker ps查看啓動的docker容器,拿到bosun的id後,sudo docker restart ${id}便可。

scollector

bosun平臺依賴於其餘程序推送的數據,它就是scollector。scollector是運行在各個節點機器上的程序,它不斷抓取節點機器的信息,推送給bosun master機器。master機器自己已經集成了scollector。

目前有windows,mac和linux版本,下載地址http://bosun.org/scollector/

配置scollector

默認狀況下,scollector會將數據發送到bosun master機器的80端口,固然咱們也能夠自定義:

$ scollector -h docker-server-ip:8070

或者在scollector同路徑下,建立一個scollector.conf文件:

host=docker-server-ip:8070

更多參考:http://godoc.org/bosun.org/cmd/scollector

###參考文檔

相關文章
相關標籤/搜索