原本就是想快速瞭解一下如何發送報警郵件,結果被sendmail 郵件服務器的配置弄得暈暈的, 後來被終於 被 sendemail 解救了!ios
sendemail -f regulus_cn@163.com -t regulus_cn@163.com -s smtp.163.com -u "sss" -xu 用戶 -xp 密碼 -m "內容"安全
nagios發警告郵件是採用本機的smtp服務,能夠查看commands.cfg中關於發郵件的命令的定義,使用本機的mail命令,這就須要開啓本機的smtp服務,爲了安全能夠在防火牆上設置拒絕其餘的機器連本機的25號端口 如今咱們的網絡裏面有一個郵件服務器,因此要求使用這臺現有的郵件服務器,不開啓本機的smtp服務,這就須要從新定義命令使用第三方軟件sendEmail.服務器
首先咱們固然要在郵件服務器上新建一個帳戶用來作發郵件的帳戶 這裏郵件服務器的地址爲mail.test.com 用來發郵件的賬號nagios@test.com SMTP驗證的用戶名 nagios 密碼 p#3isoda網絡
如下就來介紹一下sendEmail這個軟件的使用. sendEmail的主頁http://caspian.dotconf.net/menu/Software/SendEmail/ 下載地址http://caspian.dotconf.net/menu/Software/SendEmail/sendEmail-v1.55.tar.gz 軟件十分小,是一個經過命令來發smtp郵件的程序.安裝也十分簡單(查看其README文件便可). 解壓縮tar –zxvf sendEmail-v1.55.tar.gz cd sendEmail-v1.55 將可執行程序複製cp sendEmail /usr/local/bin 而後給確認確實它具備執行權限 ll /usr/local/bin/sendEmail -rwxr-xr-x 1 root root 77882 11-03 14:23 /usr/local/bin/sendEmail 這樣程序就裝好了,使用也很簡單.直接運行sendEmail就會顯示詳細的用法 先看一個典型的例子 /usr/local/bin/sendEmail –f nagios@test.com –t yahoon@test.com –s mail.test.com –u 「from nagios」 –xu nagios –xp p#3isoda –m happy 解釋: -f 表示發送者的郵箱 -t 表示接收者的郵箱 -s 表示SMTP服務器的域名或者ip -u 表示郵件的主題 -xu 表示SMTP驗證的用戶名 -xp 表示SMTP驗證的密碼(注意,這個密碼貌似有限制,例如我用d!5neyland就不能被正確識別) -m 表示郵件的內容app
若是你不帶-m參數的話,就會提示你自行輸入 Reading message body from STDIN because the ‘-m’ option was not used. If you are manually typing in a message:.net
既然nagios要使用sendEmail來發警告郵件,那麼就要修改commands.cfg中關於發郵件的命令的定義,咱們如今來修改notify-by-email這個命令,以下(注意其中粗體的部分)ip
define command{ command_name notify-by-email command_line /usr/bin/printf "%b" "***** Nagios 2.9 ***\n\nNotification Type: $NOTIFICATIONTYPE$\n\nService: $SERVICEDESC$\nHost: $HOSTALIAS$\nAddress: $HOSTADDRESS$\nState: $SERVICESTATE$\n\nDate/Time: $LONGDATETIME$\n\nAdditional Info:\n\n$SERVICEOUTPUT$" | /usr/local/bin/sendEmail -f nagios@test.com -t $CONTACTEMAIL$ -s mail.test.com -u " $NOTIFICATIONTYPE$ alert - $HOSTALIAS$/$SERVICEDESC$ is $SERVICESTATE$ **" -xu nagios -xp p#3isoda }get