問題点
zabbixサーバーからメールが送信できない
経緯
最終的な目的はzabbixサーバーから障害時にアラートをメールで該当ユーザーに送付することです。
そのためにzabbixサーバーにpostfixを導入し、サーバーから同LAN内にある別PCにメールを送信したところテストメールは届きませんでした。
しかし、故意に発生させた障害時に大量のメール(170通ほど)が届く事があったのですが、2度目の障害を発生させたところメールは届きませんでした。成功例があったため、zabbixのトリガーやアクション等の設定でメールが届かなくなったのかと思ったのですが、サーバーのメールログを確認するとエラーがでていたため現在zabbixサーバーのメール設定を疑っているところです。
ご教授頂けましたら幸いです。
試したこと
テストメールの送信
# echo "This is test mail." | mail -s `hostname` <メールアドレス> # (何も表示されない)
結果は上記コマンド入力後何も表示されず、指定したメールアドレス先を確認しましたがメールは届いていませんでした。
メールログ
# tail -f /var/log/maillog Jun 27 11:59:47 localhost postfix/pickup[10283]: 5FC6340D48A1: uid=0 from=<root> Jun 27 11:59:47 localhost postfix/cleanup[10495]: 5FC6340D48A1: message-id=<20170627025947.5FC6340D48A1@dddddddd.com> Jun 27 11:59:47 localhost postfix/qmgr[10284]: 5FC6340D48A1: from=<root@dddddddd.com>, size=524, nrcpt=1 (queue active) Jun 27 12:00:17 localhost postfix/smtp[10497]: connect to dddddddd.com[192.168.xxx.xxx]:25: Connection timed out
(ddddddddは会社共通のドメインです。rootユーザーでログ等に確認を行っております)
# firewall-cmd --list-ports --zone=public 10050/tcp 25/tcp 10051/tcp
(参考:https://teratail.com/questions/9503)
上記サイトを参考にポートを空けてみたのですがタイムアウトしてしまいます。
他に修正したところは
# vi /etc/postfix/main.cf myhostname = dddddddd.com mydomain = dddddddd.com myorigin = $myhostname inet_interfaces = all inet_protocols = ipv4 mydestination = mynetworks = 192.168.xxx.xxx/16, 127.0.0.1 home_mailbox = Maildir/ smtpd_recipient_restrictions = permit_mynetworks,reject_unauth_destination
(参考サイト1:http://www.unix-power.net/centos7/postfix.html)
(参考サイト2:http://qiita.com/38kun/items/cfb6b1f95eb6af6261ec)
追記
現状の環境は以下の通りになります。
(サーバー用PC)CentOs7:zabbixサーバー、postfix、Mysqlなどが入っている
↓ メールを送信
(テスト送信先PC)Windows7:outlook
「サーバーから同LAN内にある別PC」(別PC:テスト送信先PC)というのはプライベートアドレスが第三オクテットまで共通のもの、ということです。
追記2
postfixからメールを送信することには成功しました。
修正点は/etc/postfix/main.cfに下記のような文言を追記したことです。
rerayhost = [smtp.dddddddd]
メールログでDNSサーバーに接続されてタイムアウトしているようでしたので上記設定を加えたところエラーがなくなりました。そこでテストメール送信したところ該当メールアドレスに届いていることを確認できました。ありがとうございます。
しかし、zabbixからのメールの設定(参考サイトを参考に、メディアの設定、ユーザーの設定、アクションの設定を実施)をしているにも関わらず、未だzabbixから障害時のメールは届いておりません。
zabbixユーザーでも利用できるよう/zabbix/Maildir/以下に権限を与えております。
# ll /zabbix/Maildir/ 合計 0 drwx------. 2 zabbix zabbix 6 6月 27 18:30 cur drwx------. 2 zabbix zabbix 6 6月 27 18:30 new drwx------. 2 zabbix zabbix 6 6月 27 18:30 tmp
(参考サイト:https://www.fl-ops.com/mori-dojo/archives/12)
追記3
自PC(windows)にてnslookupを試しました。
C:\>nslookup smtp.dddddddd サーバー: XXXXXX.dddddddd Address: 192.168.xxx.xxx 名前: smtp.dddddddd Address: xxx.xxx.xxx.xxx
伏字ばかりでわかりにくくて申し訳ありません。
名前の方はグローバルIPで表示されました。
追記4
サーバー(CentOS)にてnslookupを試しました。
# nslookup smtp.dddddddd Server: 192.168.xxx.xxx Address: 192.168.xxx.xxx#XX Name: smtp.dddddddd Address: xxx.xxx.xxx.xxx
追記3とほぼ同様の結果がでたため、名前解決に問題はないと思われます。
また、現状のzabbixのメディアタイプは以下の通りに設定しております。
名前 → Email
タイプ → メール
SMTPサーバー → smtp.dddddddd
SMTPサーバーポート番号 → 25
SMTP helo → dddddddd
送信元メールアドレス → zabbix@company.com
接続セキュリティ → なし
認証 → なし
追記5
以下のコマンドで確認しました。
# alternatives --config mta 1 プログラムがあり 'mta' を提供します。 選択 コマンド ----------------------------------------------- *+ 1 /usr/sbin/sendmail.postfix Enter を押して現在の選択 [+] を保持するか、選択番号を入力します:
環境
各環境
zabbix 3.2
CentOS7.2
apache 2.4.6
Mysql 5.7.18
PHP 5.4.45
postfix 2.10

回答3件
あなたの回答
tips
プレビュー