thfff 发表于 2014-12-24 08:39:18

nagios安装及报警设置

Nagios是一款Linux上成熟的监视系统运行状态和网络信息的开原IT基础设施监视系统,Nagios能监视所指定的本地或远程主机及服务,例如HTTP服务、FTP服务等,同时提供异常通知、事件处理等功能,当主机或服务出现故障时,Nagios还可以通过邮件、手机短信等形式在第一时间进行通知。Nagios可运行在Linux和Unix平台上,同时提供一个可选的基于浏览器的Web界面,方便系统管理员查看系统的运行状态、网络状态、各种系统问题及日志异常等。
环境: 192.168.0.201      mysql主机      rhel6.4
             192.186.0.202      nagios主机    rhel6.4
安装相关软件包:
    yum install httpd gcc make perl-ExtUtils-Embed.x86_64 -y
    yum localinstall gd-devel-2.0.35-11.el6.x86_64.rpm   -y
安装nagios:

    useradd nagios
    usermod -G nagios apache
    #编译所需软件包
    #运行 nagios 服务的用户
    #使 apache 用户对 nagios 目录具有写权限,不然 web 页面操作失败
    tar jxf nagios-cn-3.2.3.tar.bz2
    #nagios 软件安装
    cd nagios-cn-3.2.3
    ./configure –enable-embedded-perl
    make all         //根据提示完成安装
    make install
    make install-init
    make install-commandmode
    make install-config
    make install-webconf   //在apache下通过这条命令可以快速整合

安装nagios-plugins:

    yum install mysql-devel openssl-devel -y
    tar zxf nagios-plugins-1.4.15.tar.gz
    cd nagios-plugins-1.4.15
    ./configure --with-nagios-user=nagios --with-nagios-group=nagios --enable-extra-opts --enable-libtap --enable-perl-modules
    make
    make install

配置nagios:

    vi /usr/local/nagios/etc/nagios.cfg
         #cfg_file=/usr/local/nagios/etc/objects/localhost.cfg#注释掉localhost.cfg文件
         cfg_file=/usr/local/nagios/etc/objects/services.cfg    #新建 services.cfg 文件,存放服务与服务组定义
         cfg_file=/usr/local/nagios/etc/objects/hosts.cfg      #新建 hosts.cfg 文件,存放主机与主机组定义

配置hosts.cfg:

    vi /usr/local/nagios/etc/objects/hosts.cfg
    define host{                                          //主机的管理
    use linux-server                                    //使用默认的主机规则
    host_name vm2.example.com                //主机名
    alias Nagios vm2                                    //主机别名
    address 127.0.0.1                                  //主机ip地址
    icon_image switch.gif                            //图标
    statusmap_image switch.gd2                  
    2d_coords 100,200                              //2D图像坐标
    3d_coords 100,200,100                        //3D图像坐标
    }
    define hostgroup{                              //主机组的管理
    hostgroup_name linux-servers               //主机组名字
    alias Linux Servers                              //别名
    members *                                           //*代表上面所有主机
    }

配置services.cfg:

    define servicegroup{
    servicegroup_name系统负荷检查
    alias 负荷检查
    members vm2.example.com,进程总数,vm2.example.com,登录用户数,vm2.example.com,根分区,vm2.example.com,交换空间利用率
    }
    define service{
    use local-service ; Name of service template to use
    host_name *
    service_description PING    //表示监控ping服务
    check_command check_ping!100.0,20%!500.0,60%
    }
    define service{
    use local-service ; Name of service template to use
    host_name vm2.example.com
    service_description 根分区
    check_command check_local_disk!20%!10%!/
    }
    define service{
    use local-service ; Name of service template to use
    host_name vm2.example.com
    service_description 登录用户数
    check_command check_local_users!20!50
    }
    define service{
    use local-service ; Name of service template to use
    host_name vm2.example.com
    service_description 进程总数
    check_command check_local_procs!250!400!RSZDT
    }
    define service{
    use local-service ; Name of service template to use
    host_name vm2.example.com
    service_description 系统负荷
    check_command check_local_load!5.0,4.0,3.0!10.0,6.0,4.0
    }
    define service{
    use local-service ; Name of service template to use
    host_name vm2.example.com
    service_description 交换空间利用率
    check_command check_local_swap!20!10
    }
    define service{
    use local-service ; Name of service template to use
    host_name vm2.example.com
    service_description SSH
    check_command check_tcp!22!1.0!10.0
    notifications_enabled 1 //这里表示进行通知
    }
    define service{
    use local-service ; Name of service template to use
    host_name vm2.example.com
    service_description HTTP
    check_command check_http
    notifications_enabled 1
    }

/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg       校验 nagios 配置文件的正确性
如果没有error的话,开启服务
/etc/init.d/nagiosstart
/etc/init.d/httpd   start
htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin   nagios 监控页面访问用户和密码
打开浏览器,输入帐号密码:



过一会儿,你就可以看到主机状况了

OK,现在我们来监控Mysql主机192.168.0.201
在Mysql主机上进行操作

    mysql> create database nagdb;
    mysql> grant select on nagdb.* to nagdb@'192.168.0.202';
    mysql> flush privileges;

在Nagios主机上检测是否能连接到Mysql主机上的mysql服务
# /usr/local/nagios/libexec/check_mysql -H 192.168.0.201 -u nagdb -d nagdb
Uptime: 19056Threads: 12Questions: 102960Slow queries: 0Opens: 317Flush tables: 1Open tables: 63Queries per second avg: 5.403
更改配置文件hosts.cfgservices.cfgcommands.cfg增加对Mysql主机的监控

    vi /usr/local/nagios/etc/objects/hosts.cfg   添加下面内容
    define host{
    use                     linux-server
    host_name            mysql主机   
    alias                      mysql服务器
    address               192.168.0.201
    icon_image            server.gif
    statusmap_image   server.gd2
    2d_coords            500,200
    3d_coords            500,200,100
    }

    vi /usr/local/nagios/etc/objects/services.cfg 添加以下内容
    define service{
    use                        local-service
    host_name               mysql主机
    servce_groups          mysql服务组
    service_description    mysql服务
    check_command      check_mysql
    }
    define servicegroup{
    servicegroup_name    mysql服务组
    alias                        mysql服务器
    }

    vi /usr/local/nagios/etc/objects/commands.cfg 添加下面内容
    define command{
    command_name check_mysql
    command_line $USER1$/check_mysql -H $HOSTADDRESS$ -u nagdb -d nagdb
    }

/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg      检测配置文件
service nagios reload       reload服务
截取的监控图:


利用NRPE和Nagios-plugin监控远程主机:

NRPE是Nagios的一个功能扩展,它可以在远程Linux和Unix主机上执行插件程序。通过在远程服务器上安装NRPE构件及Nagios插件程序来向Nagios监控主机提供该服务器的一些本地情况,例如,CPU负载、内存使用、磁盘使用等。
远程主机配置


    useradd nagios
    tar -xzf nagios-plugins-1.4.15.tar.gz
    cd nagios-plugins-1.4.15
    ./configure--with-nagios-user=nagios --with-nagios-group=nagios
    make
    make install
    yum install xinetd -y
    tar zxf nrpe-2.12.tar.gz
    cd nrpe-2.12
    ./configure
    make all
    make install-plugin
    make install-daemon
    make install-daemon-config
    make install-xinetd
    vim   /etc/xinetd.d/nrpe
      only_from= 192.168.0.202   //添加Nagios监控主机ip
    vim   /etc/services
      nrpe    5666/tcp      //跟/etc/xinetd.d/nrp端口一样
    /etc/init.d/xinetdstart
    netstat -anlpte | grep 5666   //检测nrpe是否启动成功

Nagoi主机配置:

    tar zxf nrpe-2.12.tar.gz
    cd nrpe-2.12
    ./configure --with-nagios-user=nagios --with-nagios-group=nagios
    make all
    make install-plugin

检测:
# /usr/local/nagios/libexec/check_nrpe -H 192.168.0.201
NRPE v2.12
看到以上输出说明与远程主机连接正常
修改配置文件commands.cfg   services.cfg

    vi /usr/local/nagios/etc/objects/commands.cfg
    define command{
    command_name      check_nrpe
    command_line         $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
    }

    vi /usr/local/nagios/etc/objects/services.cfg
    define service{
    use   generic-service
    host_name       mysql主机
    service_description   CPU Load
    check_command   check_nrpe!check_load
    }
    define service{
    use   generic-service
    host_name       mysql主机
    service_description   Current Users
    check_command   check_nrpe!check_users
    }
    define service{
    use   generic-service
    host_name       mysql主机
    service_description   /Free Space
    check_command   check_nrpe!check_disk
    }

/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg   检测配置文件
没有错误reload服务
service nagios reload
忙活了这么久,看下劳动成果:


明天再来折腾下Nagios报警,今天就到这里啦

页: [1]
查看完整版本: nagios安装及报警设置