以前以下記事で、CentOS 7.3+MIRACLE ZBX 3.0構成で、SNMPTTを導入してSNMP Trapを監視できるよう構成した。
Zabbix 5.0がリリースされたので、CentOS 8.1環境に対して同様にSNMPTTを導入してみた。若干手順が異なる箇所があったため、再度SNMPTT導入手順を記載することにする。
環境
- OS : CentOS 8.1
- Zabbix : 5.0
SNMPTTのインストール
導入パッケージが多岐にわたるので、SNMPTTはdnf
を使ってインストールする。
SNMPTTはperlで動作するソフトウェアとなるため、事前にperlをインストールしておく。
# dnf install perl -y
EPELパッケージを使えるようepel-releaseをインストールする。
# rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm を取得中
警告: /var/tmp/rpm-tmp.oYBDaD: ヘッダー V4 RSA/SHA256 Signature、鍵 ID 2f86d6a1: NOKEY
Verifying... ################################# [100%]
準備しています... ################################# [100%]
更新中 / インストール中...
1:epel-release-8-10.el8 ################################# [100%]
続いてSNMPTTを導入するのだが、CentOS 8では単純にdnf
でインストールすることができない。ここの情報を参考にさせていただき、CentOS 7向けのレポジトリのSNMPTTのパッケージをインストールして対応する。
CentOS 7向けのSNMPTTはバージョンが更新されている可能性があるため、まずはcurl
を使ってリポジトリに存在するSNMPTTのバージョンを確認する。
# curl -s https://dl.fedoraproject.org/pub/epel/7/x86_64/Packages/s/ | sed -e 's/<[^>]*>//g' | grep snmptt
snmptt-1.4.2-1.el7.noarch.rpm 2020-07-23 21:36 129K
確認したrpm名から2021年1月時点のSNMPTTのパッケージ名はsnmptt-1.4.2-1.el7.noarch.rpm
となり、リポジトリのURLは以下となる。
https://dl.fedoraproject.org/pub/epel/7/x86_64/Packages/s/snmptt-1.4.2-1.el7.noarch.rpm
上記rrpmパッケージのURLを直接指定して、SNMPTTをインストールする。
# dnf --enablerepo=PowerTools -y install https://dl.fedoraproject.org/pub/epel/7/x86_64/Packages/s/snmptt-1.4.2-1.el7.noarch.rpm
CentOS-8 - PowerTools 3.5 MB/s | 2.0 MB 00:00
Extra Packages for Enterprise Linux Modular 8 - 556 kB/s | 537 kB 00:00
Extra Packages for Enterprise Linux 8 - x86_64 2.2 MB/s | 8.8 MB 00:04
snmptt-1.4.2-1.el7.noarch.rpm 115 kB/s | 129 kB 00:01
依存関係が解決しました。
================================================================================
パッケージ Arch バージョン リポジトリー サイズ
================================================================================
インストール:
snmptt noarch 1.4.2-1.el7 @commandline 129 k
依存関係のインストール:
mariadb-connector-c x86_64 3.1.11-2.el8_3 AppStream 200 k
mariadb-connector-c-config
noarch 3.1.11-2.el8_3 AppStream 15 k
net-snmp x86_64 1:5.8-18.el8_3.1 AppStream 354 k
net-snmp-agent-libs x86_64 1:5.8-18.el8_3.1 AppStream 747 k
perl-Digest-HMAC noarch 1.03-17.module_el8.3.0+416+dee7bcef
AppStream 20 k
perl-Socket6 x86_64 0.28-6.el8 AppStream 36 k
lm_sensors-libs x86_64 3.4.0-21.20180522git70f7e08.el8 BaseOS 59 k
net-snmp-libs x86_64 1:5.8-18.el8_3.1 BaseOS 824 k
perl-Digest-SHA1 x86_64 2.13-23.el8 PowerTools 57 k
perl-IO-stringy noarch 2.111-9.el8 PowerTools 71 k
perl-Config-IniFiles noarch 3.000002-3.el8 epel 67 k
perl-Crypt-DES x86_64 2.07-19.1.el8 epel 26 k
perl-Net-SNMP noarch 6.0.1-25.el8.1 epel 107 k
トランザクションの概要
================================================================================
インストール 14 パッケージ
~(中略)~
インストール済み:
snmptt-1.4.2-1.el7.noarch
mariadb-connector-c-3.1.11-2.el8_3.x86_64
mariadb-connector-c-config-3.1.11-2.el8_3.noarch
net-snmp-1:5.8-18.el8_3.1.x86_64
net-snmp-agent-libs-1:5.8-18.el8_3.1.x86_64
perl-Digest-HMAC-1.03-17.module_el8.3.0+416+dee7bcef.noarch
perl-Socket6-0.28-6.el8.x86_64
lm_sensors-libs-3.4.0-21.20180522git70f7e08.el8.x86_64
net-snmp-libs-1:5.8-18.el8_3.1.x86_64
perl-Digest-SHA1-2.13-23.el8.x86_64
perl-IO-stringy-2.111-9.el8.noarch
perl-Config-IniFiles-3.000002-3.el8.noarch
perl-Crypt-DES-2.07-19.1.el8.x86_64
perl-Net-SNMP-6.0.1-25.el8.1.noarch
完了しました!
snmptrap
やsnmpwalk
コマンドを使えるようにしておいたほうが何かと便利なので、「net-snmp-utils」もインストールしておく(SNMPTTの動作に必須ではない)。
# dnf install -y net-snmp-utils
Zabbixの設定
SNMP Trapを受信した際のログを出力するファイルと保存先ディレクトリを事前に作成する。今回は「/var/log/snmptrap/snmptrap.log」をログ出力先として設定する。
# mkdir /var/log/snmptrap
# touch /var/log/snmptrap/snmptrap.log
# chown -R snmptt:snmptt /var/log/snmptrap/
「/etc/zabbix/zabbix_server.conf 」の以下個所を確認・修正する。
SNMPTrapperFile=/var/log/snmptrap/snmptrap.log
StartSNMPTrapper=1
設定反映のため、サービス再起動を行う。
# systemctl restart zabbix-server
snmptrapdの設定
「/etc/sysconfig/snmptrapd」に以下を追記する。
OPTIONS="-On -Lsd -p /var/run/snmptrapd.pid -M /usr/share/snmp/mibs:/usr/share/snmp/venders -m all"
「/etc/snmp/snmptrapd.conf」に以下を追記する。
authCommunity log,execute,net public
traphandle default /usr/sbin/snmptthandler
上記設定後、snmptrapdを起動させる。
# systemctl start snmptrapd
# systemctl enable snmptrapd
SNMPTTの設定
「/etc/snmp/snmptt.ini」の以下個所を確認・修正する。
mode = daemon
date_format = %Y/%m/%d
time_format = %H:%M:%S
date_time_format = %Y/%m/%d %H:%M:%S
log_file = /var/log/snmptrap/snmptrap.log
syslog_enable = 0
「/etc/snmp/snmptt.conf」に以下を追記する。
EVENT general .* "General event" Normal
FORMAT ZBXTRAP $aA $*
SNMPTTを起動させる。
# systemctl start snmptt
# systemctl enable snmptt
監視テスト
この段階で一度監視テストとして、Zabbixサーバ自身にて、snmptrap
コマンドにてSNMP Trap受信確認を実施してみよう。
# snmptrap -v2c -c public 127.0.0.1 "" .1.3.6.1.6.3.1.1.5.1 coldStart s "Start"
「/var/log/messages」と「/var/log/snmptrap/snmptrap.log」にログが出力されていればOK。
# tail /var/log/messages
May 21 07:56:20 t1024cent snmptrapd[3164]: 2020-05-21 07:56:20 localhost [UDP: [127.0.0.1]:58945->[127.0.0.1]:162]:#012.1.3.6.1.2.1.1.3.0 = Timeticks: (32052165) 3 days, 17:02:01.65#011.1.3.6.1.6.3.1.1.4.1.0 = OID: .1.3.6.1.6.3.1.1.5.1#011.1.3.6.1.6.3.1.1.5.1 = STRING: "Start"
# tail /var/log/snmptrap/snmptrap.log
2020/05/21 07:56:20 .1.3.6.1.6.3.1.1.5.1 Normal "General event" localhost - ZBXTRAP 127.0.0.1 Start
OIDだけでは障害内容の判別が難しいので、本来はMIBの登録も必要となる。手順は以前のものと変更はないため、過去記事を参照いただきたい。
Zabbixの受信設定
ZabbixのGUIにて、SNMP Trap受信の設定を行う。
テンプレートの作成
- テンプレート名:Template SNMP Trap
- グループ:Templates
アイテムの作成
- 名前:SNMP Trap log
- タイプ:SNMP トラップ
- キー:snmptrap[]
- データ型:ログ
- ヒストリ保存期間:90d
- ログの時間の形式:yyyy/MM/dd hh:mm:ss
- アプリケーションの作成:SNMP Trap
- 有効:チェック
トリガーの作成
- 名前:SNMP Trap from {HOST.NAME} : {ITEM.LASTVALUE1}
- 深刻度:軽度の障害 ※任意の深刻度で設定する
- 条件式:
{Template SNMP Trap:snmptrap[].strlen()}>0
- 障害イベント生成モード:複数
- 有効:チェック
ホストにSNMP用のインタフェースを作成
テンプレート適用前に、適用対象のホストに対してSNMP用のインタフェースを作成する。今回は「Zabbix server」に対して、127.0.0.1でインタフェースを追加する。
ホストにテンプレートを適用
適用対象のホストに対して、「Template SNMP Trap」のテンプレートを適用する。
再度監視テストを実施
再度snmptrap
コマンドにてSNMP Trap受信確認を実施してみる。ダッシュボードにて正常に障害が検知できればOKとなる。
参考
更新履歴
- 2020/5/21 新規作成
- 2021/1/30 SNMPTTのバージョン更新に対応できるよう、SNMPTTのインストール手順を更新
0 件のコメント:
コメントを投稿