1. 程式人生 > >Centos6.10下Open-falcon學習記錄(零)——主機監控、Nodata元件、叢集監控

Centos6.10下Open-falcon學習記錄(零)——主機監控、Nodata元件、叢集監控

記錄了學習過程,官方文件地址http://book.open-falcon.org/zh_0_2/usage/getting-started.html

另外還看了Open-falcon作者的寫的設計理念的文,見open-falcon編寫的整個腦洞歷程

1 主機監控

1.1 主機配置

開啟Open-falcon的前端頁面http://IP地址:8081,可以看到一個登陸介面,先註冊一個名為root的root賬戶,然後登陸

切換到Dashboard,可以看到左下方有一系列的主機名,只要主機啟動了open-falcon的agent端並且配置正確,open-falcon就能自動地獲取到主機,主機是用Endpoint表示的,暫且理解為一個主機的標識

這裡的Endpoint,open-falcon會根據agent客戶端目錄下的config/cfg.json配置的hostname來決定,我這裡預設的是localhost.localdomain

當前的Endpoint是IP地址,現在把cfg.json的這一項改成“open-falcon-server”

重啟客戶端,之後就能看見新的endpoint,原來的endpoint資料就終止了。如果客戶端的cfg.json裡沒有配置hostname,open-falcon會用系統的hostname

總結:

  1. cfg.json的hostname配置決定了Endpoint
  2. cfg.json的預設hostname配置為system.hostname
  3. cfg.json的hostname配置為空字串,Endpoint也是system.hostname,就是/etc/sysconfig/network裡面配置的那個,就是hostname這個命令的返回值

 

另外,使用http://IP地址:1988,可以看到一個基本的主機資訊介面,不要使用https

1.2 監控項

現在來看dashboard右側的Counters,和Zabbix的Item類似,基本就是監控項的意思。Open-falcon的監控項基本不需要自己配置,而是由agent自己決定,但是某些特殊的監控項還是需要手動配置的(例如埠監控,原因見作者的編寫腦洞歷程)

選中左側的Endpoint,再選中要畫圖的Counters,點選看圖,選擇喜歡的視角,這裡選擇了Endpoint視角,可以按監控項出圖

如果只要看一個監控項的圖,也可以直接點選Counter的名字,就可以出圖了

Endpoint視角,每個圖對應一個監控項,所有主機的資料都畫在上面

這裡可以看到,上面切換hostname的過程,當新的Endpoint生效,原先的Endpoint資料就終止了

 

1.3 主機組

Open-falcon的模板和主機組是繫結的,這裡面的模板不再包含一組監控項,而是直接包含了一些類似Zabbix的Trigger的東西

模板繫結主機組後,裡面的每個告警策略都會對主機組裡的每個主機生效,目前暫時無法完成一些細粒度的操控

現在切換到HostGroup,新建一個主機組,加號按鈕表示建立,左邊的框寫主機組名字,也是很極簡主義了

現在往組裡新增主機

 

這裡填寫主機名的Endpoint,務必要與Dashboard那裡的Endpoint一直

這個提示介面,一開始我還以為failure了,仔細看看,他會在兩個框裡列出成功和失敗的新增

1.4 模板

新增模板,類似主機組的極簡介面

這裡配置一個埠報警,作為實驗,記得新增報警組,配置完兩個Save按鈕都點一點。埠1000上本來就沒有服務,就會觸發埠1000異常報警。官方給的報警示例是6080埠,我嫌棄麻煩,還要改配置

所有agent上報的metric,官方貼心地給出了一個連線,表示所有metric可以在這裡找https://github.com/open-falcon-archive/agent/tree/master/funcs

我點進去看是agent原始碼……行吧

最後,把這個模板繫結到主機組,在HostGroups介面

在紅圈裡的框框輸入模板名字,然後Bind

 回到Dashboard介面,可以從Counter裡看到我們剛配置的埠報警,現在點進去沒有資料的,大概等個60秒

 等到出圖後

點Alarm-dashboard

1.5 Nodata配置

這一步我踩了一個巨大的坑,具體細節見我這篇博文

Open-falcon的nodata模組踩坑經歷——agent.alive/pdl=falcon,module=nodata一直為-1的問題

Nodata這個元件的作用呢,比如,agent掛掉了,那麼agent.alive返回的肯定是no data,這個無法用大於小於0來判斷,所以需要Nodata元件

在Nodata介面點選加號新增,配置一下,基本都是預設配置,這樣當機器agent掛掉,agent.alive返回的就是-1,而不是nodata

如果你跟我一樣還沒有設定tag,現在進行到這一步,就不要寫tag,不要按官網教程寫module=nodata,pdl=falcon

 

現在把agent關掉

#關閉agent 
cd ~/open-falcon  #切換到工作目錄
./open-falcon stop agent

等一會,大概三分鐘,開啟agent.alive的圖,可以看見如下曲線,agent掛了的時候nodata會給他補-1

 

現在就可以利用這個counter報警了,再新建一個模板(你用之前那個也行)

 不要忘記把模板繫結到主機組,然後靜靜等待,報警很快就來

另外,官方文件曾經提到nodata設定的週期必須和原監控指標一致

我嘗試了一下把這個nodata的週期設定為10s,可能是因為時間比較短,我沒有發現數據上報有問題,留待日後研究

3 叢集聚合

這個我理解就是進行一些叢集級別的資料分析處理,比如一個叢集的平均cpu使用率等等

為了嚴肅對待我又開了一個虛擬機器,安好了agent,姑且認為他們兩個是一個叢集

注意新機器的agent配置檔案要修改,IP地址都要改成open-falcon-server那臺機器的IP,hostname也要修改,不然就無法區分兩臺機器了

啟動agent即可,看一下日誌,沒有報連線錯誤就對了

沒有錯誤是不可能的

這種no route to host錯誤,我估計是防火牆的埠沒有開

去server那臺機子上,開啟/etc/sysconfig/iptables檔案,新增6030、8433埠的入站規則,並重啟防火牆

#新增-A INPUT -p tcp -m state --state NEW -m tcp --dport 埠號 -j ACCEPT
sudo vim /etc/sysconfig/iptables

#重啟防火牆
sudo service iptables restart

看一下日誌,開始傳遞資料了

Dashboard也可以看到新加入的機器(這臺機器的1988頁面打不開,我猜測是沒有部署前端元件的問題) 。照上面的方法加入主機組

現在開始叢集聚合

 

建立了這樣的監控項,統計叢集裡agent的存活率,就是統計agent沒有掛掉的機器比例,之所以分母設定為2而不是$#,因為如果某臺agent掛了,$#就不會去統計他,這樣這個統計項永遠都是100%、

不過這樣寫死叢集數量也不太好,有個巨集系統就好了

配置好之後,看一下./open-falcon monitor aggregator的日誌,比較慢,等到日誌寫了開始傳送聚合資料再去看,如下圖,他會把分子分母的值,還有計算結果寫在日誌裡

看一下新出來的一個虛擬Endpoint,servers-aggregator,以及新監控配置agent.palive/type=percent

現在關掉一個agent,不能關掉aggregator所在主機的agent,因為aggregator也要通過agent上報資料

看一下圖,完美的一個折線,說明叢集agent存活率掉到了50%