apache activemq是一個基于jmx規範的純java消息中間件,它為應用系統提供高效、靈活的消息同步與異步傳輸處理、存儲轉發、可靠傳輸的特性。
消息隊列對于應用的健康運作非常重要,作為運維人員,我們需要時刻注意:
消息隊列的長度,以便确認是否存在大量堆積消息;
消息生産與消費的速率,以便确認業務的吞吐量與波動趨勢;
消息隊列本身的運作健康名額,以避免由于消息無法傳遞大範圍的影響應用;
使用優雲monitor,通過簡單操作,即可實作activemq監控。下面,我們示範部署的過程與監控的成果。
部署
優雲monitor通過agent,采用web控制台或者jmx的方式進行activemq監控。
本文以centos 7上的activemq為例。采用web控制台的方式進行監控。
下面,将逐漸驟說明配置過程:
步驟一:安裝代理
通過優雲monitor的部署指令,即可快速完成代理的部署:
進入 部署 界面
選擇對應的作業系統,複制指令,并在目錄作業系統上執行即可:
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLicWZwpmL5IjY4EDOwQTZ3IjNlN2MyATN4IjYyUWOlNWNhBDMwImN2YWNiJTZi9CXt92Yu4GZjlGbh5SZslmZxl3Lc9CX6MHc0RHaiojIsJye.jpeg)
步驟二:配置插件
由于activemq的監控需要使用者名與密碼,我們必須修改代理的配置,提供監控連接配接資訊:
# 通過activemq的web控制台擷取相關名額cd /etc/monitor-agent/conf.d/
cp activemq_xml.yaml.example activemq_xml.yaml# 修改配置連接配接activemq web consolevi activemq_xml.yaml
檔案修改如下:
init_config:
instances:
- url: http://127.0.0.1:8161
# the url will probably be something like http://<hostname>:8161
username: ********
password: *************
步驟三:重新開機代理,并确認資料采集結果
[root@localhost ~]$ service datamonitor-agent restart
[root@localhost ~]$ service datamonitor-agent info
activemq_xml
------------ - instance #0 [ok] - collected 118 metrics, 0 events & 2 service checks# 上述表示已經采集到118個名額,說明采集正确
監控
在部署完成後,我們即可在優雲平台上檢視activemq的詳細名額,以幫助我們快速、準确定位問題。
作業系統方面名額
優雲monitor采集代理預設周期采集系統的cpu,記憶體,磁盤等名額, 用以輔助分析相關應用運作情況
由上述圖檔可知,該系統已超負荷運作,可能是由于運作了太多的應用程式。
消息隊列方面名額
通過優雲monitor可以清晰觀察activemq隊列的消息消費者、生産者等變化資訊,以便分析相關服務上線、離線時間
通過觀察activemq隊列的入隊、出隊以及隊列未被消費的消息數量,可以分析出相關服務是否正常以及隊列消費能力是否存在瓶頸
由上述圖檔可知,該隊列的消費者已全部下線。
消息主題方面名額
通過優雲monitor可以持續追蹤activemq主題的釋出、訂閱等資訊,以便分析對應服務上線、離線時間
通過觀察activemq主題的入隊、出隊以及隊列未被消費的消息數量,可以分析出相關服務是否正常以及對應服務是否存在瓶頸
上述文章介紹的方式為通過activemq的web控制台采集相應的名額。當然,我們也能通過jmx的方式監控,以擷取更多詳細的名額。