SNMPトラップデーモンが作成する一時ファイル(/tmp/zabbix_traps.tmp)のローテーションについて
はじめまして、いつもこのフォーラムにはお世話になっています。
zabbix_trap_receiver.plを使用してSNMPトラップの監視を行っているのですが
このperlスクリプトの処理について疑問に感じたのでご存知の方がいらっしゃいましたら教えてください。
[環境]
zabbix version:2.4.5
サーバ:CentOS7
[質問内容]
zabbix_trap_receiver.plは起動時に一時ファイルとして/tmp/zabbix_traps.tmpといったファイルを
作成すると思うのですが、こちらのローテーションやクリアはzabbix側でされるのでしょうか?
perlスクリプトを一見しただけでは、特にそういった処理が見受けられなかったため
長期の運用をしていくとこの一時ファイルが肥大化してしまうのではないかと懸念しています。
こちらで何かスクリプトを組んで定期的に対応してやらないといけないのでしょうか?
当方zabbixを実際に長期間運用した経験がないため、どう対応したものか困っています。
TNK - 投稿数: 4755
ソースをざっと確認してみましたが、Zabbix側でもトラッパーファ
イルの削除を行っているようなところは見つけられませんでした。
snmpttを利用する場合も確かlogrotateを利用していたと思います。
同様に、定期的に/tmp/zabbix_traps.tmpをローテーションするよ
うに設定された方が良いと思います。
sachi - 投稿数: 5
返信が遅くなってしまいすいません、回答ありがとうございます!
やはりローテーションが必要なのですね・・・
ただ、/tmp/zabbix_traps.tmpは実行権限が無いよう設定されています。
zabbix_trap_receiver.pl 66行目: unless (sysopen(OUTPUT_FILE, $SNMPTrapperFile, O_WRONLY|O_APPEND|O_CREAT, 0666))
ローテーションさせようとした場合、この0666を0766のように実行権限を付与するような形で書き直す必要があるといった認識で正しいでしょうか?
恐らくそうだろうとは思うのですが、このスクリプトを使っている方々が皆こうした修正を行っているのか疑問です。
各ホストからのsnmp trapを受信する際の一般的な手順だと思っていたのですが、zabbix_trap_receiver.plはあまり使われないものなのでしょうか?
回答しづらい質問で申し訳ありませんが、こうした構築経験のある方がいれば教えていただけないでしょうか。
TNK - 投稿数: 4755
そのファイルに実行権限は必要ありません。
単なるデータファイルですので、そのファイルを直接実行するわけ
ではありません。
logrotateコマンドの処理対象のログファイルとして、そのファイ
ルを設定すればよいと思います。
sachi - 投稿数: 5
>そのファイルに実行権限は必要ありません。
そうなんですね、以下のようなローテーション設定を入れて実際にローテーションしてみたところ
エラーとなったので権限の問題かと思い込んでいました。
/tmp/zabbix_traps.tmp
{
daily
missingok
rotate 2
ifempty
create
nocompress
sharedscripts
}
調べてみたところ、上記ローテーション設定の中に su root root を入れて
明示的にrootユーザーで実行してやらないとダメなようでした。
アドバイスありがとうございました!