Nagios+mutt+msmtpメールが送れない問題!


最近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ログコードは以下の通りです.

  
  
  
  
  1. 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!!! 
  2. 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プロファイルコードは以下の通りです.

  
  
  
  
  1. define command{ 
  2.         command_name    notify-by-sms 
  3.         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$ 
  4.  
  5.  
  6. define command{ 
  7.         command_name    service-by-email 
  8.         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$ 
  9. }

    contacts.cfgプロファイルも正しく、この問題は悩ましいですね.間違いなく、Nagiosでアラームメールを送信できません.後で資料を調べることで、Muttがホームディレクトリの下でsentのファイルを生成することを知った.あなたが送った記録はこのファイルに書かれているが、私はrootユーザーログインを使っていた.nagiosはmuttバックグラウンドを呼び出して実行したが、sentファイルにデータを書き込む権限がなかったので、この問題が発生した.
はい、問題の根源が見つかりました.解決も簡単になりました.直接/rootディレクトリと/root/sentをnagiosに書き込む権限を与えて、問題は解決しました.