天天看點

Zabbix使用msmtp+mutt發送郵件報警

Zabbix支援多種報警的方式,其中成本最低、最友善的就是郵件報警的方式了。但是因為它不支援郵件的使用者認證,這種方式現在也非常少見,同時安全性也差,如果在本機建郵件伺服器的話也容易被誤入垃圾郵件。

現在我們使用163的郵箱或者自己公司内部的郵箱,利用msmtp+mutt完成郵件的報警。(當然也可以利用移動139的郵箱或者聯通沃郵箱,可以達到短信通知)

1.msmtp的安裝

1

2

3

4

5

6

<code>wget http:</code><code>//jaist</code><code>.dl.sourceforge.net</code><code>/project/msmtp/msmtp/1</code><code>.4.32</code><code>/msmtp-1</code><code>.4.32.</code><code>tar</code><code>.bz2</code>

<code>tar</code> <code>jxvf msmtp-1.4.32.</code><code>tar</code><code>.bz2</code>

<code>cd</code> <code>msmtp-1.4.32</code>

<code>mkdir</code> <code>-p </code><code>/webserver/msmtp/etc</code>

<code>.</code><code>/configure</code> <code>--prefix=</code><code>/webserver/msmtp</code> <code>--sysconfdir=</code><code>/webserver/msmtp/etc</code>

<code>make</code> <code>&amp;&amp; </code><code>make</code> <code>install</code>

2.配置msmtp

7

8

9

10

11

12

13

<code>mkdir</code> <code>-p </code><code>/var/log/zabbix</code>

<code>touch</code> <code>/var/log/zabbix/msmtp</code><code>.log</code>

<code>chown</code> <code>zabbix.zabbix </code><code>/var/log/zabbix</code>

<code>vim </code><code>/webserver/msmtp/etc/msmtprc</code>

<code>    </code><code>account default</code>

<code>    </code><code>host smtp.163.com    </code><code>//SMTP</code><code>伺服器</code>

<code>    </code><code>port 25</code>

<code>    </code><code>from [email protected] </code>

<code>    </code><code>auth login</code>

<code>    </code><code>tls off</code>

<code>    </code><code>user [email protected]   </code><code>//</code><code>郵箱使用者名</code>

<code>    </code><code>password zabbix       </code><code>//</code><code>郵箱密碼</code>

<code>    </code><code>logfile </code><code>/var/log/zabbix/msmtp</code><code>.log     </code><code>//</code><code>日志路徑</code>

如果在上面配置的時候沒有加上--sysconfdir=/webserver/msmtp/etc選項,msmtp預設讀取的是目前使用者的主檔案夾中(例如root使用者則查找/root,zabbix使用者則查找/home/zabbix)的.msmtprc檔案

3.測試msmtp

<code>/webserver/msmtp/bin/msmtp</code> <code>test</code><code>@</code><code>test</code><code>.com</code>

<code>hello world</code>

<code>this is a </code><code>test</code> <code>mail!</code>

<code>//</code><code>按Ctrl+D結束即可發送郵件</code>

檢視日志是否正常

Mar 20 15:01:42 host=smtp.163.com tls=off auth=on [email protected] [email protected] [email protected] mailsize=26 smtpstatus=250 smtpmsg='250 Mail OK queued as smtp7,C8CowEB5MVOwkypTKWWWAA--.1291S2 1395299252' exitcode=EX_OK

4.安裝mutt

<code>yum -y </code><code>install</code> <code>mutt</code>

<code>編輯</code><code>/etc/Muttrc</code><code>.</code><code>local</code><code>檔案</code>

<code>set</code> <code>sendmail=</code><code>"/webserver/msmtp/bin/msmtp"</code>

<code>set</code> <code>use_from=</code><code>yes</code>

<code>set</code> <code>realname=</code><code>"[email protected]"</code>

<code>set</code> <code>editor=</code><code>"vim"</code>

5.測試mutt

<code>echo</code> <code>"helloworld"</code> <code>| mutt -s </code><code>"test"</code> <code>test</code><code>@</code><code>test</code><code>.com</code>

<code>//</code><code>郵件内容為helloworld</code>

<code>//</code><code>主題為</code><code>test</code>

<code>//</code><code>如果需要發送多人的話可以繼續添加收件人</code>

<code>//</code><code>其實這個還可以添加附件 隻需要在最後添加 -a </code><code>/root/test</code><code>.txt</code>

<code>//</code><code>案例:</code><code>echo</code> <code>"helloworld"</code> <code>| mutt -s </code><code>"test"</code> <code>a@</code><code>test</code><code>.com b@</code><code>test</code><code>.com -a </code><code>/root/test</code><code>.txt</code>

6.建立郵件報警腳本

<code>vim </code><code>/webserver/zabbix/share/zabbix/alertscripts/email</code>

<code>#!/bin/bash</code>

<code>echo</code> <code>"$3"</code> <code>| mutt -s </code><code>"$2"</code> <code>$1</code>

對檔案進行授權

<code>chown</code> <code>zabbix.zabbix </code><code>/webserver/zabbix/share/zabbix/alertscripts/email</code>

<code>chmod</code> <code>755  </code><code>/webserver/zabbix/share/zabbix/alertscripts/email</code>

7.配置zabbix_server.conf

報警腳本的位置是由zabbix_server.conf中的參數決定的,權限位置不正确或者權限不對将無法工作

<code>vim </code><code>/webserver/zabbix/etc/zabbix_server</code><code>.conf</code>

<code>//</code><code>修改報警腳本路徑</code>

<code>AlertScriptsPath=</code><code>/webserver/zabbix/share/zabbix/alertscripts</code>

8.配置zabbix媒體類型

我這裡是直接替換zabbix預設的郵件方式

<a href="http://s3.51cto.com/wyfs02/M01/22/E2/wKioL1Mqniyy2PwrAAFqYYLO1Co614.jpg" target="_blank"></a>

然後将Email修改成腳本方式

<a href="http://s3.51cto.com/wyfs02/M00/22/E2/wKioL1MqnzCReYxKAAFJEfy3K6Q857.jpg" target="_blank"></a>

然後修改自己的郵件位址,就可以收到報警郵件了.

<a href="http://s3.51cto.com/wyfs02/M01/22/E1/wKiom1MqoETDRlgbAAEpm566krA229.jpg" target="_blank"></a>

本文轉自 rong341233 51CTO部落格,原文連結:http://blog.51cto.com/fengwan/1380441

繼續閱讀