热门标签 | HotTags
当前位置:  开发笔记 > 前端 > 正文

如何设置Nagios邮件报警

平台:RHEL5x86+Nagios3.2.3Nagios发警告邮件默认是采用本机的smtp服务,可以查看commands.cfg中关于发邮件的命令的定义,使用本机的mail命令,这就需要开启本机的smtp服务,为了安全可以在防火墙上设置拒绝其他的机器连本机的25号端口.假如网络里面有一

平台: 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    (建议使用超文本格式,
作为回车符)
-------------------------------------------------------------------
# 'notify-host-by-email' command definition
define command{
command_name    notify-host-by-email
command_line    /usr/bin/printf "%b" "Host: $HOSTNAME$
Notification: $HOSTNOTIFICATIONNUMBER$
Command: $HOSTCHECKCOMMAND$
Datetime: $LONGDATETIME$

Info: $HOSTOUTPUT$
$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$
NotifyTimes: $SERVICENOTIFICATIONNUMBER$
Command: $SERVICECHECKCOMMAND$
Datetime: $LONGDATETIME$

Additional Info:
$SERVICEOUTPUT$
$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--


推荐阅读
  • H5技术实现经典游戏《贪吃蛇》
    本文将分享一个使用HTML5技术实现的经典小游戏——《贪吃蛇》。通过H5技术,我们将探讨如何构建这款游戏的两种主要玩法:积分闯关和无尽模式。 ... [详细]
  • 问题描述现在,不管开发一个多大的系统(至少我现在的部门是这样的),都会带一个日志功能;在实际开发过程中 ... [详细]
  • 本文介绍了SIP(Session Initiation Protocol,会话发起协议)的基本概念、功能、消息格式及其实现机制。SIP是一种在IP网络上用于建立、管理和终止多媒体通信会话的应用层协议。 ... [详细]
  • 软件测试行业深度解析:迈向高薪的必经之路
    本文深入探讨了软件测试行业的发展现状及未来趋势,旨在帮助有志于在该领域取得高薪的技术人员明确职业方向和发展路径。 ... [详细]
  • 本文详细介绍了JQuery Mobile框架中特有的事件和方法,帮助开发者更好地理解和应用这些特性,提升移动Web开发的效率。 ... [详细]
  • 我的读书清单(持续更新)201705311.《一千零一夜》2006(四五年级)2.《中华上下五千年》2008(初一)3.《鲁滨孙漂流记》2008(初二)4.《钢铁是怎样炼成的》20 ... [详细]
  • 调试利器SSH隧道
    在开发微信公众号或小程序的时候,由于微信平台规则的限制,部分接口需要通过线上域名才能正常访问。但我们一般都会在本地开发,因为这能快速的看到 ... [详细]
  • 龙蜥社区开发者访谈:技术生涯的三次蜕变 | 第3期
    龙蜥社区的开发者们通过自己的实践和经验,推动着开源技术的发展。本期「龙蜥开发者说」聚焦于一位资深开发者的三次技术转型,分享他在龙蜥社区的成长故事。 ... [详细]
  • 最新版 EasyCriteria 3.0 已正式上线,该版本经过全面重构,带来了多项性能优化与功能增强。更多详情请参阅官方文档:http://uaihebert.com/?p=1898 ... [详细]
  • 解决PHP项目在服务器无法抓取远程网页内容的问题
    本文探讨了在使用PHP进行后端开发时,遇到的一个常见问题:即在本地环境中能够正常通过CURL获取远程网页内容,但在服务器上却无法实现。我们将分析可能的原因并提供解决方案。 ... [详细]
  • CentOS下ProFTPD的安装与配置指南
    本文详细介绍在CentOS操作系统上安装和配置ProFTPD服务的方法,包括基本配置、安全设置及高级功能的启用。 ... [详细]
  • Web动态服务器Python基本实现
    Web动态服务器Python基本实现 ... [详细]
  • 从CodeIgniter中提取图像处理组件
    本指南旨在帮助开发者在未使用CodeIgniter框架的情况下,如何独立使用其强大的图像处理功能,包括图像尺寸调整、创建缩略图、裁剪、旋转及添加水印等。 ... [详细]
  • 本文总结了一次针对大厂Java研发岗位的面试经历,探讨了面试中常见的问题及其背后的原因,并分享了一些实用的面试准备资料。 ... [详细]
  • Windows操作系统提供了Encrypting File System (EFS)作为内置的数据加密工具,特别适用于对NTFS分区上的文件和文件夹进行加密处理。本文将详细介绍如何使用EFS加密文件夹,以及加密过程中的注意事项。 ... [详细]
author-avatar
夏石兵
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有