Nagios+mutt+msmtpメールが送れない問題!
2808 ワード
最近CentOSで6.3 x 86_64 + Mutt 1.5.2. + Msmtp 1.4.27+Nagios 3.2は監視プラットフォームを構築して、1つの憂鬱な問題に出会って、Mutt+Msmtpはcommandsにあります.cfgでメールアラームが送信できない問題.
問題の説明:
muttコマンドを単独で使用するとメールを送信できます.
例えば、echo"This is is a new mail."|mutt -s "new message"[email protected]
一方、コンフィギュレーションファイル(commands.cfg)にはコマンドが定義されており、ホストとサービスがダウンした場合、メールを送信することはできません./usr/local/msmtp/etc/msmtp.logを表示し、メールログを送信することはありません.Nagiosログを表示すると、コマンドが実行されていることがわかりますが、メールが受信できません.Nagiosログコードは以下の通りです.
コマンド/usr/local/nagios/bin/nagios-v/usr/local/nagios/etc/nagios.cfgはプロファイルをチェックし、エラーレポートはなくcommandsを単独で表示します.cfgプロファイルも、エラーは検出されませんでした.cfgプロファイルコードは以下の通りです.
contacts.cfgプロファイルも正しく、この問題は悩ましいですね.間違いなく、Nagiosでアラームメールを送信できません.後で資料を調べることで、Muttがホームディレクトリの下でsentのファイルを生成することを知った.あなたが送った記録はこのファイルに書かれているが、私はrootユーザーログインを使っていた.nagiosはmuttバックグラウンドを呼び出して実行したが、sentファイルにデータを書き込む権限がなかったので、この問題が発生した.
はい、問題の根源が見つかりました.解決も簡単になりました.直接/rootディレクトリと/root/sentをnagiosに書き込む権限を与えて、問題は解決しました.
問題の説明:
muttコマンドを単独で使用するとメールを送信できます.
例えば、echo"This is is a new mail."|mutt -s "new message"[email protected]
一方、コンフィギュレーションファイル(commands.cfg)にはコマンドが定義されており、ホストとサービスがダウンした場合、メールを送信することはできません./usr/local/msmtp/etc/msmtp.logを表示し、メールログを送信することはありません.Nagiosログを表示すると、コマンドが実行されていることがわかりますが、メールが受信できません.Nagiosログコードは以下の通りです.
- Feb 6 05:59:35 localhost nagios: SERVICE NOTIFICATION: nagios;mysql_server;check_slave;CRITICAL;notify-by-sms;ERROR!:The Slave Mysql Server Was Down!!!
- Feb 6 05:59:36 localhost nagios: SERVICE NOTIFICATION: nagiosadmin;mysql_server;check_slave;CRITICAL;notify-by-sms;ERROR!:The Slave Mysql Server Was Down!!!
コマンド/usr/local/nagios/bin/nagios-v/usr/local/nagios/etc/nagios.cfgはプロファイルをチェックし、エラーレポートはなくcommandsを単独で表示します.cfgプロファイルも、エラーは検出されませんでした.cfgプロファイルコードは以下の通りです.
- define command{
- command_name notify-by-sms
- command_line /usr/bin/printf "%b" "***** Nagios-service *****
Notification Type: $NOTIFICATIONTYPE$
Host: $HOSTNAME$
State: $HOSTSTATE$
Address: $HOSTADDRESS$
Info: $HOSTOUTPUT$
Date/Time: $LONGDATETIME$
" | /usr/bin/mutt -s "** $NOTIFICATIONTYPE$ Host Alert: $HOSTNAME$ is $HOSTSTATE$ **" $CONTACTEMAIL$
- }
-
-
- define command{
- command_name service-by-email
- command_line /usr/bin/printf "%b ***** Nagios-host *****
Notification Type: $NOTIFICATIONTYPE$
Host: $HOSTNAME$
State: $HOSTSTATE$
Address: $HOSTADDRESS$
Info: $HOSTOUTPUT$
Date/Time: $LONGDATETIME$
" | /usr/bin/mutt -s "** $NOTIFICATIONTYPE$ Host Alert: $HOSTNAME$ is $HOSTSTATE$ **" $CONTACTEMAIL$
- }
contacts.cfgプロファイルも正しく、この問題は悩ましいですね.間違いなく、Nagiosでアラームメールを送信できません.後で資料を調べることで、Muttがホームディレクトリの下でsentのファイルを生成することを知った.あなたが送った記録はこのファイルに書かれているが、私はrootユーザーログインを使っていた.nagiosはmuttバックグラウンドを呼び出して実行したが、sentファイルにデータを書き込む権限がなかったので、この問題が発生した.
はい、問題の根源が見つかりました.解決も簡単になりました.直接/rootディレクトリと/root/sentをnagiosに書き込む権限を与えて、問題は解決しました.