はじめに
Ubuntu18.04LTSでは、サービスの起動/停止等の管理にsystemd が使われており、従来の
設定ファイル /etc/default/snmptrapd
や
起動・停止スクリプト /etc/init.d/snmptrapd
は
などは使用されなくなっています。
snmptrapdのログは、
デフォルトでは /var/log/messages
に書き出されますが、
/var/log/messages
には他の一般的なログも一緒に書き出されるため、
snmptrapd
のログを管理するには不便です。
この記事は、Ubuntu18.04(systemd(systemctlコマンド等)利用時)の
snmptrapd
のログの出力先を変更する方法を忘備録としてまとめたものです。
snmptrapdのインストール
apt install
コマンドで、snmptrapd
をインストールします。
root@ubuntu:~# apt install snmptrapd
ログファイルの出力先ディレクトリの作成
snmptrapのログファイルの出力先ディレクトリを作成しておきます。
root@ubuntu:~# mkdir /var/log/snmptrapd
snmptrapd.serviceファイルの編集
root@ubuntu:~# vi /lib/systemd/system/snmptrapd.service
snmptrapd.service
に、/usr/sbin/snmptrad
起動のコマンドが記述されています。
具体的には、シェル変数ExecStart
にsnmptrapdを起動させるコマンドが記述されています。
引数の-Lsd
を-Lf <出力ログファイル名>
に書き換えます。
-Ls <FACILITY>
でsyslogのファシリティを指定し、/etc/rsyslog.conf
で指定したファシリティの出力先を変更する方法もありますが、同じファシリティの他のログも混在するため、今回は-Lfオプション
を使用しています。
[Unit]
Description=Simple Network Management Protocol (SNMP) Trap Daemon.
After=network.target
ConditionPathExists=/etc/snmp/snmptrapd.conf
[Service]
Environment="MIBSDIR=/usr/share/snmp/mibs:/usr/share/snmp/mibs/iana:/usr/share/snmp/mibs/ietf:/usr/share/mibs/site:/usr/share/snmp/mibs:/usr/share/mibs/iana:/usr/share/mibs/ietf:/usr/share/mibs/netsnmp"
Type=simple
# ExecStart=/usr/sbin/snmptrapd -Lsd -f <--- 変更前(コメントアウト)
ExecStart=/usr/sbin/snmptrapd -Lf /var/log/snmptrapd/snmptrapd.log -f <--- 変更後
ExecReload=/bin/kill -HUP $MAINPID
[Install]
WantedBy=multi-user.target
設定ファイルの再読み込み
service設定ファイルを更新したため、設定ファイルを再読み込みさせます。
root@ubuntu:~# systemctl daemon-reload
自動起動の設定
systemctl
コマンドで、snmptrapd.service
を自動起動に設定します。
root@ubuntu:~# systemctl enable snmptrapd
STATE が enabledに設定されたか確認します。
root@ubuntu:~# systemctl list-unit-files --type=service | grep snmptrapd
snmptrapd.service enabled
snmptrapdサービスの開始
systemctl start
コマンドで、snmptrapd.service
を開始させます。
root@ubuntu:~# systemctl start snmptrapd.service
snmptrapdプロセスの状態確認
サービス起動後、-Lfオプション
が指定されている状態でsnmptrap
のプロセスが起動しているか確認します。
root@ubuntu:~# ps -ef | grep snmptrapd
root 19514 1 0 16:58 ? 00:00:00 /usr/sbin/snmptrapd -Lf /var/log/snmptrapd/snmptrapd.log -f
root 19523 16590 0 16:58 pts/0 00:00:00 grep --color=auto snmptrapd
/var/log/snmptrapd/snmptrapd.log
を確認すると、snmptrapd開始メッセージがログに出力されている様子が解ります。
root@ubuntu:/var/log/snmptrapd# cat /var/log/snmptrapd/snmptrapd.log
NET-SNMP version 5.7.3
任意の監視対象機器で、SNMP Trapが発生する操作を行ってみてください。
/var/log/snmptrapd/snmptrapd.log
に追記されていくはずです。