專(zhuān)家專(zhuān)欄 | 使用agent2自定義插件采集通過(guò)MQTT協(xié)議發(fā)送的數(shù)據(jù)

      網(wǎng)友投稿 826 2022-05-29

      MQTT協(xié)議簡(jiǎn)介

      MQTT(消息隊(duì)列遙測(cè)傳輸)是ISO 標(biāo)準(zhǔn)(ISO/IEC PRF 20922)下基于發(fā)布/訂閱范式的物聯(lián)網(wǎng)通信協(xié)議。它工作在 TCP/IP協(xié)議族上,是為硬件性能低下的遠(yuǎn)程設(shè)備以及網(wǎng)絡(luò)狀況糟糕的情況下而設(shè)計(jì)的發(fā)布/訂閱型消息協(xié)議。MQTT被廣泛用于汽車(chē),制造業(yè),電信,石油和天然氣等行業(yè)以及通過(guò)衛(wèi)星鏈路與代理通信的傳感器、與醫(yī)療服務(wù)提供者的撥號(hào)連接,以及一系列家庭自動(dòng)化和小型設(shè)備場(chǎng)景。它也是移動(dòng)應(yīng)用的理想選擇,因?yàn)樗w積小,功耗低,數(shù)據(jù)包最小,并且可以有效地將信息分配給一個(gè)或多個(gè)接收器。

      MQTT有兩個(gè)組件:

      MQTT代理:MQTT代理是通信的中心點(diǎn)。代理負(fù)責(zé)在客戶(hù)端之間分派所有消息。

      MQTT協(xié)議簡(jiǎn)介

      MQTT(消息隊(duì)列遙測(cè)傳輸)是ISO 標(biāo)準(zhǔn)(ISO/IEC PRF 20922)下基于發(fā)布/訂閱范式的物聯(lián)網(wǎng)通信協(xié)議。它工作在 TCP/IP協(xié)議族上,是為硬件性能低下的遠(yuǎn)程設(shè)備以及網(wǎng)絡(luò)狀況糟糕的情況下而設(shè)計(jì)的發(fā)布/訂閱型消息協(xié)議。MQTT被廣泛用于汽車(chē),制造業(yè),電信,石油和天然氣等行業(yè)以及通過(guò)衛(wèi)星鏈路與代理通信的傳感器、與醫(yī)療服務(wù)提供者的撥號(hào)連接,以及一系列家庭自動(dòng)化和小型設(shè)備場(chǎng)景。它也是移動(dòng)應(yīng)用的理想選擇,因?yàn)樗w積小,功耗低,數(shù)據(jù)包最小,并且可以有效地將信息分配給一個(gè)或多個(gè)接收器。

      MQTT有兩個(gè)組件:

      MQTT代理:MQTT代理是通信的中心點(diǎn)。代理負(fù)責(zé)在客戶(hù)端之間分派所有消息。

      MQTT客戶(hù)端:MQTT客戶(hù)端是連接到broker的任何設(shè)備。發(fā)送消息的客戶(hù)端是發(fā)布者。接收消息的客戶(hù)端是訂閱者。要接收消息,客戶(hù)端必須訂閱該消息的主題。

      部署mqtt協(xié)議的服務(wù)

      實(shí)現(xiàn)了mqtt協(xié)議的服務(wù)器有很多種,這里我使用了mosquitto服務(wù)在centos上部署

      mkdir data && cd data wget http://mosquitto.org/files/source/mosquitto-1.6.8.tar.gz tar -zxvf mosquitto-1.6.8.tar.gz cd mosquitto-1.6.8 make && make install ln -s /usr/local/lib/libmosquitto.so.1 /usr/lib/libmosquitto.so.1 ldconfig

      我們可以編輯配置文件mosquitto.conf,修改監(jiān)聽(tīng)地址,并設(shè)置認(rèn)證用戶(hù)密碼,并在啟動(dòng)的時(shí)候使用-c 參數(shù)指定配置文件

      部署完成后啟動(dòng)borker服務(wù),我這里使用默認(rèn)配置

      mosquitto -v

      訂閱sensor主題

      mosquitto_sub -v -t sensor

      向sensor主題發(fā)布內(nèi)容

      mosquitto_pub -t sensor -m 12

      發(fā)布完之后便會(huì)在訂閱者客戶(hù)段接收到

      使用zabbxi agent2收集發(fā)布者發(fā)布的消息

      zabbix agent2在這里扮演的是一個(gè)訂閱者的角色,zabbix agent2使用GO語(yǔ)言開(kāi)發(fā),這樣我們可以通過(guò)go語(yǔ)言編寫(xiě)一些自定義插件來(lái)實(shí)現(xiàn)我們的監(jiān)控需求,插件相對(duì)于自定義腳本優(yōu)點(diǎn)之一是插件是長(zhǎng)連接的,而自定義腳本每次處理用戶(hù)指標(biāo)時(shí)都會(huì)fork一個(gè)新進(jìn)程,關(guān)于agent與agent2的區(qū)別可以查看官方文檔

      專(zhuān)家專(zhuān)欄 | 使用agent2自定義插件采集通過(guò)MQTT協(xié)議發(fā)送的數(shù)據(jù)

      點(diǎn)擊查看官方文檔

      本文通過(guò)zabbix自定義插件實(shí)現(xiàn)mqtt協(xié)議的消息采集,關(guān)于agent2自定義插件介紹可查看官方文檔

      點(diǎn)擊查看官方文檔

      或者查看Zabbix認(rèn)證專(zhuān)家米宏翻譯的文章(特別好)

      官方博文 | 為Zabbix Agent 2 開(kāi)發(fā)插件

      01-下載zabbix agent2源碼并將自定義插件編譯

      mqtt插件由維塔利·朱拉夫列夫(Vitaly Zhuravlev)編寫(xiě),地址https://github.com/v-zhuravlev/zbx_plugin_mqtt,就是下面這位大神,其實(shí)刮了胡子還是挺帥的,當(dāng)然僅次于我。

      yum install golang git clone https://git.zabbix.com/scm/zbx/zabbix.git --depth 1 zabbix-agent2 cd zabbix-agent2 git submodule add https://github.com/v-zhuravlev/zbx_plugin_mqtt.git src/go/plugins/mqtt

      02-導(dǎo)入mqtt插件

      vi src/go/plugins/plugins.go

      package plugins import ( _ "zabbix.com/plugins/log" _ "zabbix.com/plugins/systemrun" _ "zabbix.com/plugins/zabbix/async" _ "zabbix.com/plugins/zabbix/stats" _ "zabbix.com/plugins/zabbix/sync" _ "zabbix.com/plugins/mqtt" )

      03-編譯安裝zabbix agent2

      ./bootstrap.sh pushd . cd src/go/ go mod vendor popd ./configure --enable-agent2 --enable-static make install

      04-編輯配置文件

      這里我調(diào)整了日志級(jí)別,方便前臺(tái)調(diào)試

      可選參數(shù)

      Plugins.MQTTSubscribe.Username =

      Plugins.MQTTSubscribe.Password =

      Plugins.MQTTSubscribe.ClientID = zabbix-agent2-mqtt-client? //如果未設(shè)置將自動(dòng)生成ClientID

      Plugins.MQTTSubscribe.Timeout = 5? ?//定義此插件的連接超時(shí)時(shí)間,如果不定義將使用zabbix agent2的超時(shí)時(shí)間

      05- 啟動(dòng)zabbix_agent2

      cd /root/zabbix_agent/src/go/bin ./zabbix_agent2 -c ../conf/zabbix_agent2.conf

      MQTT插件實(shí)現(xiàn)了一個(gè)Watcher接口,Watcher接口使用的push模型,當(dāng)有新數(shù)據(jù)產(chǎn)生,會(huì)主動(dòng)push給服務(wù)器

      08- Zabbix創(chuàng)建監(jiān)控項(xiàng)

      鍵值示例如下

      mqtt.subscribe[,]

      注意監(jiān)控項(xiàng)類(lèi)型必須是主動(dòng)式

      我們可以通過(guò)mqtt client來(lái)發(fā)送一些數(shù)據(jù)

      可以在zabbix agent2前臺(tái)看到數(shù)據(jù)實(shí)時(shí)推送給了zabbix server,當(dāng)沒(méi)有新數(shù)據(jù)產(chǎn)生的時(shí)候,agent2也會(huì)每隔兩分鐘(默認(rèn))連接server的10051端口來(lái)請(qǐng)求有關(guān)監(jiān)控項(xiàng)的信息

      MQTT TCP/IP 專(zhuān)家

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶(hù)投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。

      上一篇:華為云Stack ManageOne云服務(wù)接入Console開(kāi)發(fā)FAQ
      下一篇:Nginx指南和配置詳解
      相關(guān)文章
      亚洲18在线天美| 亚洲午夜未满十八勿入网站2| 亚洲中文字幕无码久久综合网| 日韩亚洲精品福利| 亚洲日韩精品无码专区加勒比☆| 亚洲码一区二区三区| 亚洲综合综合在线| 亚洲黄色三级视频| 亚洲精品美女久久久久| 亚洲欧洲日产专区| 亚洲女人影院想要爱| 亚洲另类小说图片| 久久亚洲国产成人影院| 亚洲中文字幕久久无码| 亚洲国产精品精华液| 亚洲国产成人AV网站| 无码色偷偷亚洲国内自拍| 国产亚洲综合久久| 亚洲一区二区视频在线观看| 综合久久久久久中文字幕亚洲国产国产综合一区首 | 亚洲精品福利你懂| 中文字幕在线观看亚洲日韩| 亚洲日本在线电影| 国产亚洲精品第一综合| 亚洲午夜福利精品久久| 亚洲午夜久久久久久噜噜噜| 亚洲AV无码专区电影在线观看| 亚洲国产精久久久久久久| 亚洲精品中文字幕无乱码| 亚洲一区二区三区乱码在线欧洲| 亚洲砖码砖专无区2023| 风间由美在线亚洲一区| 亚洲人成网站观看在线播放| 国产亚洲精品a在线无码| 亚洲国产成人精品不卡青青草原| 亚洲欧洲精品一区二区三区| 亚洲成人福利在线| 亚洲精品国产精品| 亚洲伊人成无码综合网| 亚洲AV乱码久久精品蜜桃| 亚洲剧场午夜在线观看|