syslog
が/var/log/messages
にログインするたびに、snmp trapn番号のホストを送信する必要があります。どうすればこれを行うことができますか?
rsyslog
を使用(または切り替え)する場合、syslogメッセージをSNMPトラップとして送信できる omsnmpモジュール をインストールできます。
LogZillaには、一致したイベントをsyslogからトラップレシーバーに送信する機能があります。デモは http://www.logzilla.net/index.php/download からダウンロードできます。
トラップ転送を使用するには、adminとしてログインし、[メニュー]> [管理]> [サーバー管理]> [アラート]を参照して、[SNMPトラップマネージャーにアラートを送信]を有効にし、SNMPコミュニティとSNMP宛先の値を設定します。それらを設定したら、syslog-ngデーモンをHUPして楽しんでください:-)
inotify(7) は、ファイルシステムが変更されたときにプロセスに警告するために使用できるシステムコールです。 inotifyd
はinotify()
のラッパーです。 (inotifyd
はbusyboxにありますが、おそらく他のディストリビューションにはありません。)
inotifyd
を使用して、必要なことを実行するスクリプトを作成します。 foo.sh
#!/bin/sh
echo "inotifyd passed me event=$1 file=$2"
次に、syslogが変更されるたびにスクリプトを実行するようにinotifydに指示します。
$ inotifyd ~/foo.sh /var/log/syslog:c
inotifyd passed me event=c file=/var/log/syslog
inotifyd passed me event=c file=/var/log/syslog
...