外部へメール送信について
ZABBIXで障害検知した際、アクションでメール送信する設定を追加しました。
zabbix@localがらプロバイダ(外部)のSMTPサーバへ障害検知メール送信するように
設定しましたが障害検知メールが送信されません。
可能であればメールサーバ(sendmail)の独自ドメインは取得しないで
送信したいのですが、可能でしょうか。
・アクション設定
メッセージの送信先 ユーザ "test"
・ユーザー設定
アカウント名 :test
ユーザの種類 :ZABBIXユーザ
メディア :axl : axl@exzample.co.jp(プロバイダからの取得したアドレス)
・メディア設定
名前:axl
タイプ : メール
SMTPサーバ : プロバイダのSMTPサーバ
SMTP helo : zabbix@localhost
送信元メールアドレス : zabbix@localhost
また、sendmailの設定はデフォルトのままです。
よろしくお願いします。
TNK - 投稿数: 4755
まずは、sendmailのログなどを確認して、どのような障害が発生しているのかをお教え下さい。
接続を拒否されているのか、リレーできないというエラーなのか何らかの送信できない原因が出力されていると思います。
もし、SMTPで送信する際に認証が必要であるならば、Zabbix標準のメール送信機能では認証処理は含まれていませんので、ZABBIX-JPで公開されているsendmessage_smtp.php(sendmessage_smtp_php.tar.gz)を利用されてはいかがでしょうか。
http://www.zabbix.jp/modules/download1/
bonbaie - 投稿数: 7
maillogを見てみましたが、特に主なログは障害検知した際の
root@localhostにメール送信するよう設定したログが表示される
だけで、外部への送信アドレスのログはありませんでした。
Mar 7 15:40:19 zabbix-server sendmail[3426]: p276eJkH003426: from=<zabbix@localhost>, size=208, class=0, nrcpts=1, msgid=<20
1103070640.p276eJkH******@zabbix-server>, proto=SMTP, daemon=MTA, relay=localhost.localdomain [127.0.0.1]
Mar 7 15:40:19 zabbix-server sendmail[3427]: p276eJkH******: to=<root@localhost>, ctladdr=<zabbix@localhost> (100/101), dela
y=00:00:00, xdelay=00:00:00, mailer=local, pri=30516, dsn=2.0.0, stat=Sent
mailコマンドで外部への送信アドレスへmail送信すると
メールは送信されず、userunknowとログの記載されました
。
Maendmail[3567]: p276juwf00*****: <外部送信アドレス>... User unknown
Mar 7 15:45:56 zabbix-server sendmail[3566]: p276juCe003566: to=外部送信アドレス, ctladdr=root (0/0), delay=0
0:00:00, xdelay=00:00:00, mailer=relay, pri=30066, relay=[127.0.0.1] [127.0.0.1], dsn=5.1.1, stat=User unknown
TNK - 投稿数: 4755
申し訳ありません説明不足でした。
zabbix_serverのログにも何も出力されてませんでしたか?
恐らく、「プロバイダのSMTPサーバ」に接続できないか、接続できたとしても送信要求を拒否されていることが考えられます。
Zabbixのサーバからtelnetで25番ポートを指定して「プロバイダのSMTPサーバ」に接続できますか?
また、通常のメールクライアントから「プロバイダのSMTPサーバ」を利用してメールを送信する際にも、送信者認証(SMTP Authentication)とかPOP before SMTPが必要だったりしませんか?
送信者認証が必要であれば、先に挙げさせて頂いたsendmessage_smtp.phpの$MAIL_SMTP_HOST、$MAIL_SMTP_USER、$MAIL_SMTP_PASSなどを「プロバイダのSMTPサーバ」用に適切な値に変更して、それをメディアに登録して利用すれば良いと思います。
あと、mailコマンドで直接送る場合、利用されているOSやディストリビューションがわかりませんが、RHELやCentOSであれば、デフォルトの設定ではローカルのメールボックスへの送信しかできないようになっていたと思います。
tsuzuki - 投稿数: 78
はじめまして、tsuzukiです。
sendmessage_smtp_php.sh は直接コマンドラインから実行することも可能なので、直接実行すると何が起きているかわかりやすいかもしれません。
以下のように実行した結果がどのようになるか確認してもらえますか。
「username@example.com」は宛先にしたいアドレスを入力してください。
# /var/lib/zabbix/sendmessage_smtp_php/sendmessage_smtp_php.sh 'username@example.com' '件名' '本文'
ファイル内の「/* setting */」で囲んでいる部分が適切に設定されているならば、「success」と表示されてメールが送信されます。
失敗した場合は「failed: 」の後にその詳細が出力されます。
よろしくお願いします。