Zabbix-server SNMPTrap擴充套件

weixin_44713929發表於2020-09-27

Zabbix-server SNMPTrap擴充套件

一、原理介紹:

SNMPTrap監控主要用於裝置發生故障時的主動通知的監控。以下簡單記錄下Zabbix的SNMPTrap的配置方法。
1.監控物件傳送SNMPTrap資訊到snmptrapd(Net-SNMP)伺服器。

2.snmptrapd伺服器將接收到的SNMPTrap資訊傳送給SNMPTT(或者Perl trap receiver)。

3.NMPTT(或者Perl trap receiver)將按照指定的資料格式將SNMPTrap資訊寫入SNMPTrapperFile。

4.Zabbix伺服器的snmptrapper程式將讀取SNMPTrapperFile的內容,對其進行解析,將值傳遞給對應的監控物件,並儲存資料到DB。

※流程參考下圖(使用SNMPTT的地方均可使用Perl trap seceiver指令碼代替):
在這裡插入圖片描述

二、使用步驟:

ZabbixServer的環境是CentOS release 6.5 (Final),SNMPTrapd,SNMPTT等全部在ZabbixServer上進行設定。

1)首先安裝SNMPTrapd(NET-SNMP)

 #yum install -y net-snmp net-snmp-utils net-snmp-perl

2)接來下設定SNMPTrap的Community名稱自己處理SNMPTrap資訊的處理器(或者說處理方法):

#vim /etc/snmp/snmptrapd.conf

新增如下內容:

authCommunity log,execute,netpublic

**配置community名稱,這裡設定為public, 也進行用認證:disableAuthorization yes

traphandle default /usr/sbin/snmptthandler

配置SNMPTrap資訊的處理器,這設定為SNMPTT,也可以設定成其他Perl指令碼處理,比如 比如perl do "/usr/local/zabbix/bin/zabbix_trap_receiver.pl "
3)設定SNMPTrapd的啟動指令碼的選項

   #vim /etc/init.d/snmptrapd

某些OS版本的路徑可能是/etc/rc.d/init.d/snmptrapd
更改如下內容:

OPTIONS="-Lsd -p /var/run/snmptrapd.pid"(更改成如下) 
OPTIONS="-On -Lsd -p /var/run/snmptrapd.pid"

####根據SNMPTT的文件說明,由於版本問題,可能會導致MIB檔案無法正確翻譯,所以最好是加上-On引數。

參考檔案

http://snmptt.sourceforge.net/docs/snmptt.shtml#Installation-Overview
####Note: The -On is recommended. This will make snmptrapd pass OIDs in numeric form and prevent SNMPTT from having to translate the symbolic name to numerical form. If the UCD-SNMP / Net-SNMP Perl module is not installed, then you MUST use the -On switch. Depending on the version of UCD-SNMP / Net-SNMP, some symbolic names may not translate correctly. See the FAQ for more info.

4)設定SNMPTrapd自動啟動並重新啟動服務

#chkconfig snmptrapd on # service snmptrapd restart

二、安裝SNMPTT

1)安裝SNMPTT(這裡採用yum安裝方式進行)

#rpm -ivh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm # yum install snmptt

###以上的rpm可以根據OS的版本選擇合適的yum庫進行安裝。
2)配置SNMPTT,設定基本資訊
###以上的rpm可以根據OS的版本選擇合適的yum庫進行安裝。

#vim /etc/snmp/snmptt.ini修改如下內容:

date_time_format= %Y/%m/%d %H:%M:%S
####設定時間格式,讀取的SNMPTrap資訊之後寫入SNMPTrapperFile裡的時間格式,也是ZabbixTrapper讀取時的時間格式
syslog_enable = 0
####預設值為1,設定成0,表示不將日誌記錄入syslog,不過該引數為可選引數,可直接預設值即可。
 log_file = /var/log/snmptt/snmptt.log
 ####這裡指定了SNMPTrapperFile,預設/var/log/snmptt/snmptt.log,無需更改。
[TrapFiles]
snmptt_conf_files = <<END
/etc/snmp/snmptt.conf
END

####這一段程式碼記錄了使用那些規則檔案處理SNMPTrap資訊,預設值如上,簡單處理中無需更改該配置。
####該檔案可以設定成多個檔案,在END之前新增檔案即可。

3)設定處理資料的格式規則
這裡只說最簡單的例子,配置檔案按照snmptt.ini的預設設定snmptt.conf進行配置。
新增如下內容:

EVENT general .* "General event" Normal
FORMAT ZBXTRAP $aA $1
####(OID資訊為:[.1.3.6.1.4.1.232.0.11001],而[.*]匹配了所有OID資訊)

備註:
為了和Zabbix做連線需要,snmptt.conf中的配置具有一定的規則,這將在其他文章另行記錄。
本文只簡單說明為了實現Zabbix的SNMPTrap監控需要進行哪些設定。
不需要根據OID來具體區分的情況下,以上配置即足夠了。

4)建立SNMPTrapperFile檔案(預設
為/var/log/snmptt/snmptt.log)

#touch /var/log/snmptt/snmptt.log # chown snmptt:snmptt /var/log/snmptt/snmptt.log

5)配置以上日誌輪詢
yum安裝的情況下預設已經配置好,無需再設定。這裡將需要自己配置時的配置內容貼出來供參考。

#vim etc/logrotate.d/snmptt裡面內容如下:
/var/log/snmptt/snmptt*.log /var/log/snmptt/snmptthandler.debug { weekly       notifempty missingok } /var/log/snmptt/snmptt.debug { weekly notifempty missingok postrotate /etc/init.d/snmptt reload >/dev/null 2>/dev/null || true endscript }

6)設定SNMPTT自動啟動並重新啟動服務

#chkconfig snmptt on # service snmptt restartr 以上SNMPTT的配置即結束。

三、啟用SNMPTRAP監控並指定SNMPTrapperFile資訊

1)啟用SNMPTRAP監控並指定SNMPTrapperFile資訊

#vim /usr/local/zabbix/etc/zabbix_server.conf#### 以上檔案路徑可能和安裝方式不同所有不同,需要根據具體情況而定。

修改如下內容:

StartSNMPTrapper=1
SNMPTrapperFile=/var/log/snmptt/snmptt.log
####SNMPTrapperFile檔案可根據具體情況進行修改

2)重啟Zabbix服務

#service zabbix_server restart

相關文章