2011-06-24 10 views
3

高可用性ロードバランサのセットを確立するプロジェクトに取り組んでいます。負荷分散と高可用性ソフトウェアはうまく動作しているようです(ロードバランスにCrossroadsを使用し、負荷分散サーバーを高可用性にするためにKeepalived、ロードバランサのヘルスチェック用Conntrackdを使用しています)が、構成を設定する際に問題があります状態遷移が発生したときにKeepalivedが電子メールを送信するファイル(master-> backup/backup-> master)。私は電子メール通知を設定する方法を教えてくれるmanページ(man keepalived.conf)の指示に従っていますが、予想される時刻に電子メールを受信できません。私はスペルチェックや単純なエラーが発生する傾向がありますが、この問題を約10時間見渡した後、何かを見つけられないようで、試してみることが不足しています。SMTPアラートがキープアライブされていない

私が使用しているサーバの1つ(loadbalance1という名前)は、変更が発生したときにsmtp_alertを使用して電子メールを送信することがありますが、バックアップからマスター(マスターではなく)バックアップ)。動作しない場合、ログファイル(/ var/log/messagesと/ var/log/syslog)は、SMTPエラーステータス550が発生したことを通知します。私は、これらの問題が設定ファイルで指定された不正確な電子メールアドレスに関連するものであると理解していますが、私が知る限り正確です。キープアライブまたは設定ファイルが間違っていることを示唆しているのは、sysadminが '{'が不適切なメール受信者であるというメッセージを電子メールで送信することだけです。私はsmtpポートをコンピュータ上で開いています。起こっているもう一つの奇妙なことは、キープアライブがメールサーバーに連絡しようとするとき、ローカルマシンがないときにローカルマシンを見たい場合があることです。私はメールサーバを他の場所に指定していますが、何らかの理由でローカルに見たいと思っています。

他のサーバーloadbalance2は、どのような状態遷移に関係なく、電子メールを送信するためにsmtp_alertを送信しません。キープアライブ(/ var/log/messagesと/ var/log/syslog)のログファイルでは、バックアップサーバloadbalance2がMASTER状態に移行しますが、メールは送信されません。これはloadbalance1と同じエラーを出しますが、ここではうまく動作しません。 loadbalance1と同じ設定ファイルがあります。いくつかの矛盾が、私は謝罪設定ファイルである場合

次は、設定ファイル、keepalived.conf

global_defs 
    { 
     notification_email 
     { 
    [email protected] 
     } 
     notification_email_from [email protected] 
     ##Mail server below## 
     smtp_server www.xxx.yyy.zzz 
     smtp_connect_timeout 30 
     lvs_id NLB_MASTER 
    vrrp_sync_group 
    { 
     group 
     { 
      loadbalance1 
      loadbalance2 
     } 
     ##The following scripts don't seem to work properly either## 
     ##The scripts are not executed at expected times  ## 
     notify_master "/path/to/script.sh master" 
     notify_backup "/path/to/script.sh backup" 
     notify_fault "/path/to/script.sh fault" 
     notify "/path/to/script.sh" 
     smtp_alert 
    } 
    vrrp_instance loadbalance1 
    { 
     state MASTER 
     interface eth0 
     virtual_router_id 20 
     priority 100 
     #In some examples online smtp_alert is here 
     virtual_ipaddress 
     { 
      www.xxx.yyy.zzz/24 brd www.xxx.yyy.255 dev eth0 
     } 
     ##Not entirely sure if this is correct## 
     notify_master "/path/to/script.sh master" 
     notify_backup "/path/to/script.sh backup" 
     notify_fault "/path/to/script.sh fault" 
     notify "/path/to/script.sh" 
     smtp_alert 
    } 
    vrrp_instance loadbalance2 
    { 
     state MASTER 
     interface eth0 
     virtual_router_id 30 
     priority 100 
     #In some examples online smpt_alert is here 
     virtual_ipaddress 
     { 
      www.xxx.yyy.zzz/24 brd www.xxx.yyy.255 dev eth1 
     } 
     ##Not entirely sure if this is correct## 
     notify_master "/path/to/script.sh master" 
     notify_backup "/path/to/script.sh backup" 
     notify_fault "/path/to/script.sh fault" 
     notify "/path/to/script.sh" 
     smtp_alert 
     } 

です。どんな提案、助け、または意見もありがとうございます。これ以上の情報が必要な場合は、私は喜んで喜んでくれるでしょう。

+0

電子メールが送信されるときと送信されないときのパターンは異なります。 – dawebber

答えて

2

同じ問題に直面している可能性があるユーザーのために、私は問題を解決できました。私はそれが解決策であるかどうかは分かりませんが、貢献している可能性があります。

- 私は、現在の時刻にマシンの日付と時刻を変更する必要がありました(そのうちの1つは、クローンであるため数年前に消えていました)。システム時間の差によって、メールサーバーがバックエンドサーバーの電子メールをブロックしている可能性がありますか?

- 日付-sは、hh:mm:ssの

- 日付-s年 - 月 - 日

-Had両方のマシンで同じホスト名を持つ問題を解決します。私が言ったように、それは他のもののクローンであり、事故でそれを変更したことはありません。私は同じホスト名からの電子メールを得たので、私はすべてに沿って、決して区別両者の間にバックエンドサーバからの通知を取得された可能性があり

メイドの無視できるはずです設定ファイルへのマイナーチェンジ

global_defs 
    { 
      notification_email { 
       [email protected] 
      } 
    } 

それが違いを作りましたかどうか分かりませんが、まあまあ...それは私がkeepalived.logで見ていたsimliar問題を解決することができた今

1

に動作します:

ように私のkeepalived.confが見えた
SMTP connection ERROR to [0.0.0.0]:25 

:私は私のSMTPの設定を更新

global_defs { 
    notification_email { 
    .... 
    } 
    notification_email_from [email protected] 
    smtp_server smtp.somehwere.com 
    smtp_connect_timeout 30 
    ... 
} 

smtpサーバにホスト名ではなくIPアドレスを使用する:

smtp_server xxx.xxx.xxx.xxx 

電子メールを送信した後、成功したメール通知をキープアライブした後:

Remote SMTP server [xxx.xxx.xxx.xxx]:25 connected. 
関連する問題