Centos6でアラートメール送信できません
お世話になっております。
障害が発生した際にアクションにてメールを送信するように設定しましたが、メールが送信されません。
zabbix_server.logやmaillogを確認しましたが、送信失敗などのメッセージも出ておりません。
動作環境は以下の通りです。
OS:CentOS6.2
Zabbix:Zabbix1.8.16
Sendmail:8.14.4-8(設定はデフォルトのまま)
[メディアタイプ]
-----------------
説明 :Email
タイプ :メール
SMTPサーバ :localhost.localdomain
SMTP helo :localhost.localdomain
送信元メールアドレス:zabbix@localhost.localdomain
[ユーザ]
-----------------
アカウント名:Admin
名前 :Zabbix
名字 :Administrator
パスワード :設定していません
グループ :Zabbix Administrators
メディア :Email xxxx@yyyy.co.jp 1-7,00:00-24:00; NIWAHD 有効
ちなみに、CentOS5.4(Sendmail:8.13.8-8)上では同じ設定でメール送信が出来ており、
日本語も問題なく表示されております。
もう少し調べてみたところ、CentOS5と6ではmailコマンドが変更されており、
CentOS5上で動いてたメール送信シェルがCentOS6では動かなくなりました。
○CentOS5で動いたmailコマンド
echo bbbb | mail -s "aaaa" xxxx@yyyy.co.jp -- -f
zabbix@localhost.localdomain
○CentOS6で動くmailコマンド
echo bbbb | mail -s "aaaa" -r zabbix@localhost.localdomain xxxx@yyyy.co.jp
mailコマンドのパッケージは以下の通りです。
CentOS5:mailx-8.1.1-44.2.2.x86_64
CentOS6:mailx-12.4-6.el6.x86_64
Postfixに変えて試してみましたが、メール送信は出来ませんでした。
設定が間違っているのでしょうか?どのように対処すればよいか教えていただけないでしょうか。
よろしくお願いします。
TNK - 投稿数: 4717
まずは、先のご質問と同様にアクションが実行されているかをまず
ご確認ください。
そして、メールの送信に、Zabbix標準のメディアEmailの機能を利
用されているのか、それとも別途スクリプトを作成して登録し、そ
のスクリプトを実行するメディアを別途登録されているのかを確認
させてください。
スクリプトを作成して登録されているのであれば、その内で利用さ
れているのが記載頂いたmailコマンドにパイプで渡されているとい
うことでよろしいでしょうか。
そうであれば、sendmailやpostfixを入れ替えた際にどのような操
作を行われたのかお教えください。
yumなどを利用して各プロダクトをrpmでインストールしている場合、
メール送信用のパッケージを切り替えるコマンドの実行が必要なの
ですが実行して切り替えされていますか?
katosai - 投稿数: 36
回答ありがとうございます。
>まずは、先のご質問と同様にアクションが実行されているかをまずご確認ください。
確認しましたところ、アクション欄は「1」がたっていますが、ステータスは「未送信」と表示されます。
>そして、メールの送信に、Zabbix標準のメディアEmailの機能を利
>用されているのか、それとも別途スクリプトを作成して登録し、そ
>のスクリプトを実行するメディアを別途登録されているのかを確認
>させてください。
Zabbix標準のメディアタイプからEmailを指定しています。
アクションで指定しるのもこのEmailのメディアです。
>スクリプトを作成して登録されているのであれば、その内で利用さ
>れているのが記載頂いたmailコマンドにパイプで渡されているとい
>うことでよろしいでしょうか。
>そうであれば、sendmailやpostfixを入れ替えた際にどのような操
>作を行われたのかお教えください
Zabbix外部での監視ということで、mailコマンドを実行するスクリプトも使っています。これはあくまで補助的な役割です。
sendmailとpostfixの入れ替えは特殊なことはしておりません。インストールして設定はデフォルトのままです。
もちろん、sendmailとpostfixを両方起動することはありません。どちらか片方だけです。
>yumなどを利用して各プロダクトをrpmでインストールしている場合、
>メール送信用のパッケージを切り替えるコマンドの実行が必要なの
>ですが実行して切り替えされていますか?
これはsendmailかpostfixを切り替える「alternatives --config mta」のことでしょうか?
選択 コマンド
-----------------------------------------------
1 /usr/sbin/sendmail.postfix
*+ 2 /usr/sbin/sendmail.sendmail
上記のようになっております。
念のために、先ほど上記コマンドでpostfixに切り替えて、障害を発生させましたがアクション欄は「1」ですが、未送信が表示されました。
TNK - 投稿数: 4717
Zabbixに標準で用意されているメディア「Email」を利用して、記
載して頂いたように、SMTPサーバとしてlocalhost.localdomainを
指定し、ローカルにsendmailもしくはPostfixを起動してローカル
でのメール送受信が可能な状態となっていればメールは送信できる
はずです。
もし、送信できないのであれば、メールの宛先がその設定したメー
ルサーバで送信できるよう設定されているか再度ご確認ください。
mailコマンドを利用して確認すれば、現時点の状態は確認できると
思います。
つまり、標準で用意されているEmailのメディアを利用してメール
の送信ができない場合は、SMTPサーバなどの設定が正しくないか、
宛先にメールを送信できるようにメールサーバが設定されていない
かのどちらかである可能性が高いと思います。
別途、独自スクリプトを利用する場合は別です。
話が混在してしまうと原因の追及がしにくくなりますので、まずは、
Zabbix標準のメディア「Email」を利用されたときに、どのような
現象が確認されるのかをお教えください。
最後に、alternativesコマンドでのmta切り替えは必ず行ってくだ
さい。
各サービスの停止や起動も明示的に行う必要があったと思いますの
で、
・前利用していたサービスを停止する
・alternativesコマンドでmtaを切り替える
・切り替えたmtaのサービスを起動する
と操作されていたかもご確認ください。
KAZ - 投稿数: 1085
katosaiさん
Postfixのログはどうなってますか?
受け付けて送信エラーですか?
それとも受け付けてもいませんか?
katosai - 投稿数: 36
>もし、送信できないのであれば、メールの宛先がその設定したメー
>ルサーバで送信できるよう設定されているか再度ご確認ください。
>mailコマンドを利用して確認すれば、現時点の状態は確認できると思います。
確認しましたところ、Sendmail、Postfixのどちらもmailコマンドからメールが送信でき、受信もできました。
①Sendmailの確認
・alternativesコマンドでSendmaiに切り替え
・Sendmailの起動
・echo honbun | mail -s "title" -r zabbix@localhost.localdomain xxxx@yyyy.co.jp
→メールの受信を確認
②Postfixの確認
・alternativesコマンドでPostfixに切り替え
・Postfixの起動
・echo honbun | mail -s "title" -r zabbix@localhost.localdomain xxxx@yyyy.co.jp
→メールの受信を確認
>話が混在してしまうと原因の追及がしにくくなりますので、まずは、
>Zabbix標準のメディア「Email」を利用されたときに、どのような
>現象が確認されるのかをお教えください。
設定を見直したところ、ユーザとメディアタイプの紐付けが間違っており、間違ったメール設定(Zabbixのデフォルト設定)になっていました。
修正をした上で以下の通りに確認しました。
①MTAをSendmailに設定
障害を検知すると、「最新20件の障害」に表示されました。
アクション欄に「1」が立ち、マウスオーバするとステータスはずいぶん長い間「進捗中」となった後に「未送信」に変わりました。
その間、zabbix_server.logにログは出力されませんでした。(DebugLevel=3)
②MTAをPostfixに設定
障害を検知すると、「最新20件の障害」に表示されました。
アクション欄に「1」が立ち、マウスオーバするとステータスが「進捗中」となった後にメールが受信されました。
丁寧な対応をありがとうございました。
syuna - 投稿数: 9
間違えました。削除します。