Linux中nagios mail实现服务器状态监控例子

nagios使用邮件来告警通知是很常见的一种方式。

1. 使用sendEmail来发送邮件

sendEmail工具非常好用。具体内容参见:

2. 创建一个联系人

 代码如下 复制代码
# vim /usr/local/nagios/etc/objects/contacts.cfg
define contact{
        contact_name                    mobei
        alias                           mobei
        service_notification_period     24x7
        host_notification_period        24x7
        service_notification_options    w,u,c
        host_notification_options       d,u
        service_notification_commands   notify-service-by-email
        host_notification_commands      notify-host-by-email
        email                           【You email address】
        }

3. 创建一个组

 代码如下 复制代码
define contactgroup{
        contactgroup_name       ops
        alias                   ops
        members                 mobei
        }

4. 修改发送邮件命令

 代码如下 复制代码
# vim /usr/local/nagios/etc/objects/commands.cfg
# 'notify-host-by-email' command definition
define command{
        command_name    notify-host-by-email
        command_line  /usr/local/bin/sendEmail -l /tmp/sendEmail.log -f jiank@126.com -t $CONTACTEMAIL$ -s smtp.126.com -u "$HOSTALIAS$/$SERVICEDESC$ is $SERVICESTATE$" -xu jiank@126.com -xp jiankong -m "Service: $SERVICEDESC$\nHost: $HOSTALIAS$\nAddress: $HOSTADDRESS$  State: $SERVICESTATE$\nDate/Time: $SHORTDATETIME$\nInfo:$SERVICEOUTPUT$"
        }
 
# 'notify-service-by-email' command definition
define command{
        command_name    notify-service-by-email
        command_line  /usr/local/bin/sendEmail -l /tmp/sendEmail.log -f jiank@126.com -t $CONTACTEMAIL$ -s smtp.126.com -u "$HOSTALIAS$/$SERVICEDESC$ is $SERVICESTATE$" -xu jiank@126.com -xp jiankong -m "Service: $SERVICEDESC$\nHost: $HOSTALIAS$\nAddress: $HOSTADDRESS$  State: $SERVICESTATE$\nDate/Time: $SHORTDATETIME$\nInfo:$SERVICEOUTPUT$"
        }

5. 指定监控项目。如:

 代码如下 复制代码
define service {
    use                 generic-service
    hostgroup_name          Mongo Servers
    service_description     Mongo Mapped Memory Usage
    check_command           check_mongodb!10.0.0.160!12345!'ttlsa'!'www.111cn.net'!memory_mapped!20!28
    contact_groups          ops
}

解决nagios报警不发邮件通知
同样也用个例子来介绍。

内容如下

 代码如下 复制代码

    # vi genericdef.cfg

      1 define host{
      2     name                                                generic-host
      3     check_period                                  24x7
      4     notifications_enabled                   1
      5     event_handler_enabled               1
      6     process_perf_data                       1
      7     retain_nonstatus_information    0
      8     contact_groups                              admins
      9     notification_interval                       60
    10     notification_period                        24x7
    11     notification_options                      d,u,r
    12     stalking_options                           o,d,u
    13     register                                           0
    14 }
    15
    16 define service{
    17     name                                               generic-service
    18     active_checks_enabled               1
    19     passive_checks_enabled           1
    20     notifications_enabled                   1
    21     event_handler_enabled               1
    22     check_period                                  24x7
    23     max_check_attempts                   3
    24     normal_check_interval                10
    25     retry_check_interval                      2
    26     contact_groups                             admins
    27     notification_options                      w,u,c,r
    28     notification_interval                       60
    29     notification_period                        24x7
    30     register                                            0
    31 }

从上面service定义来看,通知选项已经加入了c(CRITICAL)这个参数了,看了问题不是出在这里。

第二个我想到的地方就是contract的配置文件,打开看了一下

 代码如下 复制代码

    1 define contact{
    2         contact_name                                    nagios-msn-admin      
    3         alias                                                     Nagios msn Admin      
    4         email                                                    harvey_liu@wenzizone.com
    5         host_notification_commands         notify-host-by-msn
    6         host_notification_options                d,u
    7         host_notification_period                  24x7
    8         service_notification_period             24x7
    9         service_notification_options           w,u,r,c         //这个位置之前是没有c
    10       service_notification_commands   notify-service-by-msn
    11       }
    12           
    13 define contact{
    14         contact_name                                   nagios-mail-admin
    15         alias                                                    Nagios mail Admin
    16         email                                                   hanzhao.liu@wenzizone.com
    17         host_notification_commands        notify-host-by-email
    18         host_notification_options               d,u
    19         host_notification_period                 24x7
    20         service_notification_period            24x7
    21         service_notification_options          w,u,r,c    //这个位置之前没有c
    22         service_notification_commands   notify-service-by-email
    23         }

在上面的第9和21行的位置加上c之后,然后重新reload一下nagios,如果没有报错,说明配置更新完毕,很快蚊子又可以收到报警的邮件了。

nagios调整是一个细致的活,看了蚊子还需要做很多的工作才行了

时间: 2024-07-30 21:33:45

Linux中nagios mail实现服务器状态监控例子的相关文章

PHP实现服务器状态监控的方法_php技巧

本文实例讲述了PHP实现服务器状态监控的方法.分享给大家供大家参考.具体分析如下: PHP服务器状态监控对于很多朋友来讲都没做,只有看到网站挂了才知道,这种半夜网站关了是不知道情况了,对于网站也非常不好,为此这两天抽空写了个网页服务器状态监控,看到有朋友说需要,那我就放出来吧.很简单的东西. 使用方法: 打开压缩包里面的status.php文件.编辑这里的内容为你自己的邮箱信息.代码如下: 复制代码 代码如下: $mail->Host       = 'smtp.exmail.qq.com'; 

linux中Nagios监控LVS连接数方法

LVS 介绍 LVS是Linux Virtual Server的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统.本项目在1998年5月由章文嵩博士成立,是中国国内最早出现的自由软件项目之一. 可伸缩网络服务的几种结构,它们都需要一个前端的负载调度器(或者多个进行主从备份).我们先分析实现虚拟网络服务的主要技术,指出IP负载均衡技术是在负载调度器的实现技术中效率最高的.在已有的IP负载均衡技术中,主要有通过网络地址转换(Network Address Translation)将一组服务

Linux中,创建聊天服务器、移除冗余软件包的实用命令

这里,我们来看Linux命令行实用技巧的下一个部分.如果你错过了Linux Tracks之前的文章,可以从这里找到. 5个有趣的Linux命令行技巧 本篇中,我们将会介绍6个命令行小技巧,包括使用Netcat命令创建Linux命令行聊天,从某个命令的输出中对某一列做加法,移除Debian和CentOS上多余的包,从命令行中获取本地与远程的IP地址,在终端获得彩色的输出与解码各样的颜色,最后是Linux命令行里井号标签的使用.让我们来一个一个地看一下. 6个实用的命令行技巧 1. 创建Linux命

nginx下server status服务器状态配置例子

在用的一个服务器监控平台 http://jiankong.cn 这上面就可以监控你的服务器状态,并且进行了一系列的分析,它可以监控常用的服务器软件的状态,还有其它不错的功能,建议各位站长使用. 介绍下如何安装及配置nginx的stub_status. Nginx中的stub_status模块主要用于查看Nginx的一些状态信息. 本模块默认是不会编译进Nginx的,如果你要使用该模块,则要在编译安装Nginx时指定:    代码如下 复制代码 ./configure –with-http_stu

Linux中grep命令的12个实践例子

你是否遇到过需要在文件中查找一个特定的字符串或者样式,但是不知道从哪儿开始?那么,就请grep来帮你吧. grep是每个Linux发行版都预装的一个强有力的文件模式搜索工具.无论何种原因,如果你的系统没有预装它的话,你可以很容易的通过系统的包管理器来安装它(Debian/Ubuntu系中的apt-get和RHEl/CentOS/Fedora系中的yum). $ sudo apt-get install grep #Debian/Ubuntu $ sudo yum install grep #RH

Linux中管理Memcached的Service脚本的例子

Memcached需要libevent支持,所以需要先检查libevent是否已经安装. 下面是Memcached的安装过程: # tar zvxf memcached-1.4.9.tar.gz # cd memcached-1.4.9 # ./configure --prefix=/usr/local/memcached # make # make install 启动Memcached: # /usr/local/memcached/bin/memcached -d -m 128 -l 12

linux中nagios pnp4nagios 图形监控 mysql

nagios图形界面还是比较麻烦的,下面以mysql为例来说一下.监控mysql的插件比较多,在这里了解方法,而不是死搬硬套. 一,安装pnp4nagios [root@localhost objects]# yum install pnp4nagios rrdtool  如果找不到包换epel源,博客里面有搜一下.关于nagios的安装,请参考:nagios 安装配置 详解 二,配置nagios 1,修改nagios.cfg   [root@localhost objects]# vim /e

linux中nagios check_mk监控juniper的配置

一.开启juniper snmp配置  代码如下 复制代码 #设备标识信息和联系信息 set snmp location 361way_office set snmp contact "admin@361way.com" #配置snmp及允许连接的客户端IP set snmp community public authorization read-only set snmp community public clients 192.168.1.0/24 以在配置完成后可以通过snmpw

linux中load average判断服务器负载情况

top命令:top 显示如下: load average后面三个值分别是1分钟.5分钟.15分钟的负载情况.数据是每隔5秒钟检查一次活跃的进程数,然后根据这个数值算出来的.如果这个数除以CPU的数目,结果高于5的时候就表明系统在超负荷运转了. 查询cpu内核数: cat /proc/cpuinfo 很显然第二幅图中top后显示load average: 185.87,149.43,489.26 即可看出一分钟内185.87/4  远远大于5,此时服务器已经超负荷运转,必然很缓慢.(正常情况应该为