1. 到https://share.zabbix.com/scada-iot-energy-home-automation-industrial-monitoring/modbus-loadable-module下載模板,并按照https://github.com/v-zhuravlev/libzbxmodbus指引,安裝libzbxmodbus模塊;注意指定enable-zabbix參數(shù)時,即使是zabbix3.2以上版本,也都指定為3.2;
2. 關(guān)鍵步驟:裝載libzbxmodbus模塊,按作者所說,此模塊可裝在zabbix的服務器端或agent端,經(jīng)測試,安裝在SERVER端后,使用簡單檢查取數(shù)據(jù)失敗,故考慮安裝在agent端。在這里要弄清一個概念,首先libzbxmodbus模塊支持MODBUS的兩種方式讀取數(shù)據(jù):串口(RTU)和網(wǎng)絡(TCP),為方便起見我們采用TCP方式;其次這里我們通過TCP“讀取”設備信息,往往并不是真正地讀取設備,而大多是讀取它的“網(wǎng)關(guān)”,這些網(wǎng)關(guān)通常是通過RS485與傳感器相連,并負責將485信號與TCP信號互轉(zhuǎn);但是,大多數(shù)網(wǎng)關(guān)也只是個單純的轉(zhuǎn)換設備,zabbix server將其視為一臺終端,但它本身并不能安裝zabbix agent程序,甚至也不支持snmp協(xié)議(雖然在網(wǎng)上看到意大利出產(chǎn)一款支持zabbix的modbus轉(zhuǎn)換器,但國內(nèi)還沒有看到有賣),故這時要再安排一臺PC機或使用zabbix 服務器本身的agent再來充做這些網(wǎng)關(guān)的“agent”。
3. 裝載:裝載的過程很簡單:在agentd.conf中添加“LoadModulePath = /etc/zabbix/lib”與“LoadModule = libzbxmodbus.so”,再重啟agent就可以了;
4. 模擬傳感器:找一臺WINDOWS機器(要關(guān)閉防火墻或設置進出站規(guī)則),安裝modbus slave模擬器,具體過程不贅述,安裝完成后啟動程序,配置為TCP方式,并設置幾個寄存器的值為自動遞增;

5. 在zabbix server上測試,./zabbix_get -s 192.168.53.188 -k’modbus_read[192.168.54.113,1,1,3]’

6. 到web頁面添加監(jiān)控項,鍵值為“modbus_read[192.168.54.113,1,1,3]”,類型為“zabbix agnt”或者“Zabbix Agent (active)”,返回值根據(jù)具體情況為數(shù)字或文本型


7. 關(guān)于一次取多項返回值的辦法,請參考github上相關(guān)頁面說明。