如何设置Nagios邮件报警
思韵闪耀
2013-03-18
0

平台: RHEL5 x86 + Nagios3.2.3

Nagios 发警告邮件默认是采用本机的smtp服务, 可以查看commands.cfg中关于发邮件的命令的定义, 使用本机的mail命令, 这就需要开启本机的smtp服务, 为了安全可以在防火墙上设置拒绝其他的机器连本机的25号端口. 假如网络里面有一个邮件服务器(比如公司自己的邮件服务器), 则可以直接使用这台现有的邮件服务器, 不用开启本机的smtp服务, 只需要重新定义命令使用第三方软件sendEmail.
sendEmail官方地址: http://caspian.dotconf.net/menu/Software/SendEmail/

首 先要在邮件服务器上新建一个账户用来做发邮件的账户, 以利用一现有的, 假如为encle@lk.com, SMTP邮件服务器地址为mail.lk.com(如果没有DNS,则直接使用其IP, 假如为28.4.15.18), SMTP验证的用户名密码(如果该邮件服务不需要SMTP验证则无需本用户名密码)为encle/iamencle

1.安装sendMail

# cd /u01/software/nagios
# wget http://caspian.dotconf.net/menu/Software/SendEmail/sendEmail-v1.56.tar.gz
#tar -zxvf sendEmail-v1.56.tar.gz && cd sendEmail-v1.56
#cp sendEmail /usr/local/bin
#chmod 0755 /usr/local/bin/sendEmail

2. 发送邮件测试

# sendEmail -h                (查看sendMail帮助)
# sendEmail -f dba@lk.com -t encle@lk.com -s 28.4.15.18 -u "nagios测试" -m "nagios test 测试"
或者将一个文件的内容作为附件发出, 并且是gb2312或utf8编码的html格式文件(可以显示中文):
# sendEmail -f dba@lk.com -t encle@lk.com -s 28.4.15.18 -u "nagios测试" -m "pls see the attachement附件" -a /var/log/messages -o message-content-type=html -o message-charset=gb2312

各参数含义如下:
-f 表示发送者的邮箱, 可随意设置
-t 表示接收者的邮箱
-s 表示SMTP服务器的域名或者IP
-u 表示邮件的主题
-m 表示邮件的内容
-xu 表示SMTP验证的用户名, 如果SMTP服务器需要验证的话就加上该参数, 一般发给外网用户则需要
-xp 表示SMTP验证的密码, 如果SMTP服务器需要验证的话就加上该参数, 一般发给外网用户则需要
-a FILE [FILE ...]      file attachment(s)
-cc ADDRESS [ADDR ...]   cc  email address(es)
-bcc ADDRESS [ADDR ...]   bcc email address(es)

如果使用Foxmail接受邮件, 为了正确显示中文, 需设置邮件显示编码为UTF-8, 设置方法:
右键邮件文本 - 编码 - 选择"UTF-8"

3. 配置接收nagios告警的邮件地址

# vi /usr/local/nagios/etc/objects/contacts.cfg
-------------------------------------------------------------------------
define contact{
contact_name    nagiosadmin
use        generic-contact
alias        Nagios Admin
email        encle@lk.com
        }
-------------------------------------------------------------------------

4. 修改commands.cfg, 替换掉原来发送邮件的两个命令

默认的输出宏$HOSTOUTPUT$和$SERVICEOUTPUT$只会输出第一行信息, 我们使用$LONGHOSTOUTPUT$和$LONGSERVICEOUTPUT$输出完整信息.
注意: 为了能接受到格式化良好, 且中文无乱码的超文本邮件, 可以对sendEmail设置 "-o message-content-type=html -o message-charset=utf8" 选项.
# vi +27 /usr/local/nagios/etc/objects/commands.cfg    (建议使用超文本格式, <br>作为回车符)
-------------------------------------------------------------------
# 'notify-host-by-email' command definition
define command{
command_name    notify-host-by-email
command_line    /usr/bin/printf "%b" "Host: $HOSTNAME$<br>Notification: $HOSTNOTIFICATIONNUMBER$<br>Command: $HOSTCHECKCOMMAND$<br>Datetime: $LONGDATETIME$<br><br>Info: $HOSTOUTPUT$<br>$LONGHOSTOUTPUT$" | /usr/local/bin/sendEmail -f dba@lk.com -t $CONTACTEMAIL$ -s 28.4.15.18 -u "Host $HOSTSTATE$: $HOSTADDRESS$" -o message-content-type=html -o message-charset=utf8
}
# 'notify-service-by-email' command definition
define command{
command_name    notify-service-by-email
command_line    /usr/bin/printf "%b" "Host: $HOSTALIAS$<br>NotifyTimes: $SERVICENOTIFICATIONNUMBER$<br>Command: $SERVICECHECKCOMMAND$<br>Datetime: $LONGDATETIME$<br><br>Additional Info:<br>$SERVICEOUTPUT$<br>$LONGSERVICEOUTPUT$" | /usr/local/bin/sendEmail -f dba@lk.com -t $CONTACTEMAIL$ -s 28.4.15.18 -u "Service $SERVICESTATE$: $HOSTADDRESS$ | $SERVICEDESC$" -o message-content-type=html -o message-charset=utf8
}
-------------------------------------------------------------------

5. 修改完主配置文件后, 都需要重启Nagios服务, 重启前先验证配置文件是否有误

# /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
# service nagios reload
如果有问题则查询Nagios运行日志, 进行进一步诊断:
#tail -50f /usr/local/nagios/var/nagios.log

--END--


【版权声明】
本站部分内容来源于互联网,本站不拥有所有权,不承担相关法律责任。如果发现本站有侵权的内容,欢迎发送邮件至masing@13sy.com 举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。

相关内容

将IIS设置克隆到新服务器...
将IIS设置克隆到新服务器的最佳方法是使用IIS配置文件。以下是详...
2025-06-06
搭建Git服务器及本机克隆...
Git是什么?Git是目前世界上最先进的分布式版本控制系统。SVN...
2025-03-17
ubuntu环境下搭建gi...
操作环境:服务器:Ubuntu 24.04.2 LTS+git 2...
2025-03-17
Ubuntu防火墙ufw的...
一、不使用IPv6打开UFW配置。sudo vim /e...
2024-12-28
ubuntu配置DNS
ubuntu配置DNS在Ubuntu中配置DNS通常涉及编辑/et...
2024-11-17
ubuntu防火墙命令介绍
ubuntu在开启ufw防火墙前,为了避免与iptables现有规...
2024-07-21

热门资讯

Exchange 2013/2... Exchange 2013/2016/2019邮件大小限制 可以在三个位置上配置Exchange上的...
SMTP 发送邮件错误码和解决... SMTP错误码/建议解决方法 错误总表 420 1. Timeout Communication P...
Exchange 2013 O... 最近在Exchange 2013环境中,遇到OWA/ECP无法访问的问题;用户是可以正常通过...
Roundcube 配置过各提... Fileinfo/mime_content_type configuration: OK Mimet...
彻底卸载Exchange Se... 一般来说,我们安装完Exchange Server 2016之后,可以通过正常卸载程序来进行卸载,但...
Exchange 2013批量... 一批量删除特定主题的邮件 1.1批量删除所有数据库中特定主题的邮件 1)群发了几封主题为backup...
快速查看已安装Exchange... Exchange 2010的版本号在Exchange管理控制台(EMC)显示的,好像不准确了。比如,...
在 Exchange 2016... 用户邮箱是与人员关联的 Exchange 邮箱,通常为每人一个邮箱。每个用户邮箱都有一个关联的 Ac...
exchange2013域名(... 需要对 接受的域 和 电子邮件地址策略进行配置: 首先外网域名要做解析和增加mx记录,这里就不具体说...
如何为AD 添加多个UPN后缀 今天我在群里看到有群友在问User principal name (UPN)多后缀的问题,我在这里就...