Zabbix監控ActiveMQ隊列數以及結合Grafana展示

在ZABBIX上監控MQ隊列

衆所周知,Zabbix是可以自定義監控項的,那麼就代表只要能獲得到的數字都可以進入Zabbix的監控範圍內。作爲消息隊列,Activemq裏的“消息堆積數”是監控的重點項目之一。


獲取消息堆積數並不是一個很難的事兒,瀏覽器裏登陸MQ的web網頁控制檯,輸入賬號密碼之後,在Queues的網頁裏就能看到如下的界面:

image.png


其中Pending Messages就是“等待消息”,Consumers是“消費者”,Enqueued是“入隊”,Dequeued是“出隊”。入隊數=出隊數+等待數。


現在我們要獲取到圖中的隊列叫AggregateQueue裏的那個23596,很簡單,shell語句是:

curl -s -u網站用戶名:網站密碼 http://網站外網IP地址:8161/admin/queues.jsp | grep -A 5 "具體的隊列名</a></td>"|awk -F '<' '{print $2}'|sed 's/td>//g'|head -2|tail -1


這裏curl 有一個“-s”的參數,不然會顯示curl的狀態。如圖:

1.png


語句在此,寫腳本就很easy了。不過我這裏就直接監控具體數字了,沒有寫腳本,如果要寫python腳本的話,我推薦各位移步:https://blog.51cto.com/sfzhang88/1316789 ,看一下這篇文章。


現在把這個監控項添加到具體的zabbix_agentd.conf裏吧,具體添加過程可以參看 https://blog.51cto.com/chenx1242/1839829 ,由於是curl網站,那麼直接把這個監控項加到Zabbix-server裏就好,然後使用zabbix_get檢查一下。有的zabbix 3.x裏沒有zabbix_get,安裝zabbix_get方法:#yum install zabbix-get.x86_64


zabbix_get檢查情況和具體的trigger情況如下:

1.png

image.png


配置Zabbix結合Grafana

我使用的Grafana版本是4.3.2,下載地址:https://s3-us-west-2.amazonaws.com/grafana-releases/release/grafana-4.3.2-1.x86_64.rpm  ,下載完畢之後,直接#yum install /路徑/grafana-4.3.2-1.x86_64.rpm,由於Grafana使用的是AWS的雲存儲,可能在牆內的下載會比較吃力,有斷開的情況就多試幾次。話說Grafana的升級是比較頻繁的,半年不到的時間升級了三次,現在最新版本已經是4.6.2。所以說這玩意,其實選擇一個穩定的就好。


啓動grafana的方法就是:#systemctl start grafana-server.service,配置開機自啓動的方法:#chkconfig grafana-server on。然後在瀏覽器裏輸入“grafana外網ip地址:3000”就能看到grafana的界面,默認密碼:admin/admin,grafana默認的日誌存儲路徑是/var/log/grafana/。


Grafana與ZABBIX聯繫的插件下載方式:#grafana-cli plugins install alexanderzobnin-zabbix-app,安裝之後,重啓一下grafana-server,在web界面就會看到插件已經成功安裝,如圖:

image.png


其他更多的插件下載可以在grafana的官方網站查看到:https://grafana.com/plugins ,用grafana-cli都能搞定,還是那話,牆裏的同學速度要慢一點。


現在配置Zabbix作爲Grafana的數據源,首選點擊網站上面的紅色漩渦標誌,選擇“zabbix”,點擊“Plugin Config”,點擊Enable,啓動Zabbix插件。如圖:

1.png


再次點擊紅色漩渦,這次選擇“Data Sources”,點擊“Add data source”,如果插件啓動成功,那麼在Type裏是可以選擇“zabbix”的,然後就是填各種東西,如圖:

1.png


這裏有一些要額外說明:

1)url這個是zabbix的API地址"http://ip/zabbix/api_jsonrpc.php",這個可以在zabbix服務端上可查找"find / -name api_*.php";

2)username和passwd是zabbix WEB界面的登錄用戶名和密碼,有讀的權限即可;

3)alerting選擇啓動,min severity選擇high;


然後點擊“save & test”,如果都正確的話,就會出現success,如圖:

image.png


在Grafana展示趨勢圖

點擊左上方紅色漩渦,"Dashboards"的地方點擊“+new”,然後在小齒輪的地方選擇“Templating”,如圖:

1.png


在Templating裏要建立4個模板,其中group的添加方法如下,如果Query正確的話,在點擊“Include All option”的時候,就會有“組”顯示出,而且和zabbix裏完全一致:

1.png       image.png(這個是zabbix的web端界面)


group添加完了,還有host、application、iteams,添加的大同小異,需要注意的是Query的不同:

host的Query:$group.*

application的Query: $group.$host.*

iterm的Query: $group.$host.$application.*


以上四個template都搞定之後,應該是這個樣子:

image.png


模板搞定了,下面就是圖形展示,選擇對應的hosts、application和items就自動有圖像生成了!

image.png


最後說一下頁面自動刷新,點擊右上角“Last 6 hours”, 在彈出的下拉框中,選擇Time range下的Refreshing every選項,點擊下拉框按鈕,默認應該有“off”和“1m”兩個選項。點擊“1m” 然後Apply設置,即爲每一分鐘刷新一次數據的意思。設置成功後,在原來Last 6 hours的後面會出現Refresh every 1m的橙色文字!


參考資料:《實踐MQ的小demo》http://www.jianshu.com/p/3a39c8dd4f29



最後的最後,如果您覺得本文對您升職加薪有幫助,那麼請不吝贊助之手,刷一下下面的二維碼,贊助本人繼續寫更多的博文!

wKioL1l16m3BMYDKAACPHEqd55Q687.jpg


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章