1
3

More than 3 years have passed since last update.

snmptrapdのログの出力先を変更する(Ubuntu18.04LTS)

Posted at

はじめに

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オプションを使用しています。

/lib/systemd/system/snmptrapd.service
[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

STATEenabledに設定されたか確認します。

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 に追記されていくはずです。

1
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
3