Bosun快速入門

來源:互聯網
上載者:User

標籤:

Bosun快速入門

本文檔是Bosun的快速安裝文檔。根據本文檔,你可以搭建一個完整的bosun服務,可以把指定機器的各種資訊彙總起來,並且實現相關資訊的警示。

Bosun

這篇文檔中,bosun的安裝依賴docker。如果不希望使用docker,可以從 bosun.org中自行下載bosun二進位檔案,但是這樣就需要自己安裝OpenTSDB和HBase。

Docker 安裝Docker

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

安裝Boson

一旦docker安裝完畢,可以使用下面的命令安裝bosun,可能需要sudo許可權。

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

這條命令,告訴docker進程為bosun啟動一個後台進程,連接埠是8070。稍等15秒,bosun服務啟動完畢,這樣bosun的server端就搭建並啟動完畢,我們可以使用瀏覽器進行訪問了,http://yourip:8070

向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中。

下面是一個建立Alert的例子,我們監控cpu的使用方式,如果cpu idle過低,就警示。這裡我們使用的metric是“os.cpu”。當某台機器的cpu idle持續一小時過低時,我們就發送一條警示。開啟bosun首頁,下面開始配置。

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 = `<p>Alert: {{.Alert.Name}} triggered on {{.Group.host}}    <hr>    <p><strong>Computation</strong>    <table>        {{range .Computations}}            <tr><td><a href="{{$.Expr .Text}}">{{.Text}}</a></td><td>{{.Value}}</td></tr>        {{end}}    </table>    <hr>    {{ .Graph .Alert.Vars.metric }}    <hr>    <p><strong>Relevant Tags</strong>    <table>        {{range $k, $v := .Group}}            <tr><td>{{$k}}</td><td>{{$v}}</td></tr>        {{end}}    </table>`}

繼續閱讀

Bosun快速入門

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.