IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    CentOS 6.5 安装nagios监控

    admin发表于 2015-05-15 06:45:45
    love 0


    Nagios是一款开源的免费网络监视工具,能有效监控Windows、Linux和Unix的主机状态,交换机路由器等网络设置,打印机等。在系统或服务状态异常时发出邮件或短信报警第一时间通知网站运维人员,在状态恢复后发出正常的邮件或短信通知。


    nagios官方网站:http://www.nagios.org/

    关于nagios的安装官网有文档已经说的比较清楚了http://nagios.sourceforge.net/docs/3_0/quickstart-fedora.html


    我这里安装的均为当前最新的稳定版本:

    nagios-4.0.8

    nagios-plugins-2.0.3


    安装如下:

    安装前准备工作

    使用root用户操作服务器,需要以下软件环境:

    Apache

    PHP

    DCC编译器

    GD开发库

    可通过yum进行安装:

    yum install httpd php

    yum install gcc glibc glibc-common

    yum install gd gd-devel


    1. 创建用户和用户组

    useradd -m nagios

    passwd nagios



    Create a new nagcmd group for allowing external commands to be submitted through the web interface. Add both the nagios user and the apache user to the group.

    /usr/sbin/groupadd nagcmd
    
    /usr/sbin/usermod -a -G nagcmd nagios
    
    /usr/sbin/usermod -a -G nagcmd apache


    2. 下载Nagios和Nagios插件

    创建文件夹/software 将下载的文件放到/software目录下

    官网下载:http://www.nagios.org/download

    本地下载:

    nagios-4.0.8.tar.gz

    nagios-plugins-2.0.3.tar.gz



    3. 编译安装nagios

    # cd /software

    # tar -zxvf nagios-4.0.8.tar.gz

    # cd nagios-4.0.8

    Run the Nagios configure script, passing the name of the group you created earlier like so:

    ./configure --with-command-group=nagcmd

    Compile the Nagios source code.

    make all

    Install binaries, init script, sample config files and set permissions on the external command directory.

    make install
    
    make install-init
    
    make install-config
    
    make install-commandmode

    Don't start Nagios yet - there's still more that needs to be done...


    4. Customize Configuration

    Sample configuration files have now been installed in the /usr/local/nagios/etc directory. These sample files should work fine for getting started with Nagios. You'll need to make just one change before you proceed...

    Edit the /usr/local/nagios/etc/objects/contacts.cfg config file with your favorite editor and change the email address associated with the nagiosadmin contact definition to the address you'd like to use for receiving alerts.

    vi /usr/local/nagios/etc/objects/contacts.cfg


    5. Configure the Web Interface


    Install the Nagios web config file in the Apache conf.d directory.

    make install-webconf

    Create a nagiosadmin account for logging into the Nagios web interface. Remember the password you assign to this account - you'll need it later.

    htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin                //这里我将密码设为123456

    Restart Apache to make the new settings take effect.

    service httpd restart

    Note: Consider implementing the ehanced CGI security measures described here to ensure that your web authentication credentials are not compromised.


    6. 安装nagios插件

    cd /software

    tar -zxvf nagios-plugins-2.0.3.tar.gz

    cd nagios-plugins-2.0.3

    ./configure --with-nagios-user=nagios --with-nagios-group=nagios

    make

    make install


    7. 启动nagios

    将nagios加入开机启动

    chkconfig --add nagios

    chkconfig nagios on


    验证nagios配置文件是否有错:

    /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg


    如果没有错误,则启动nagios:

    service nagios start


    8. 关闭selinux

    vim /etc/selinux/config

    将SELINUX=enforcing 改为 SELINUX=disabled

    修改后需重启系统生效。

    临时生效:

    # setenforce 0


    9. 在浏览器中登录

    用户名为nagiosadmin 密码为刚才配置的123456

    http://localhost/nagios/


    我这里吧默认80端口改成了800了,如下图:

    1431931305101085.png


    当前系统默认监控的本机的项目:

    1431931516613472.png


    10. nagios配置文件说明

    nagios安装完成后主目录为/usr/local/nagios 所有的配置文件在/usr/local/nagios/etc目录下:

    blob.png

    cgi.cfg

    htpasswd.users //用于web端登录时的验证,上文中添加的

    nagios.cfg //nagios主配置文件,如果监控其他主机,需要在里面添加其他主机的配置文件

    resource.cfg //定义了nagios插件的位置


    其中objects目录也是非常重要的目录,绝大部分操作都会在这里进行,他的默认文件有:

    blob.png

    commands.cfg //命令定义文件,其中的命令可被其他配置文件引用

    contacts.cfg //定义联系人和联系人组的文件

    localhost.cfg //监控本机的文件

    printer.cfg //监控打印机的模板文件,默认没有启用

    switch.cfg //监控路由器的模板文件,默认没有启用

    templates.cfg //定义主机和服务的模板配置文件,可在其他配置文件中引用

    timeperiods.cfg //定义nagios监控时间段的配置文件

    windows.cfg //监控windows主机的配置文件,默认没有启用


    监控本机:

    在/usr/local/nagios/etc/nagios.cfg中加入本机的监控,默认已经添加:

    cfg_file=/usr/local/nagios/etc/objects/localhost.cfg


    本机配置文件默认监控了8项服务Current load,Current Users,HTTP,PING,Root Partition,SSH,Swap Usage,Total Processes

    添加一个对本机/data分区的监控:

    vim localhost.cfg

    在后面添加

    define service{

    use local-service

    host_name localhost

    service_description Data Partition

    check_command check_local_disk!20%!10%!/data

    notifications_enabled 1

    }


    保存重启nagios服务,登录web即可看到。



    Nagios发送邮件的设置:

    参照:http://xiaosa.blog.51cto.com/665033/381310/

    下载sendmail http://caspian.dotconf.net/menu/Software/SendEmail/

    本地下载:sendEmail-v1.56.tar.gz


    cd /usr/local/

    tar -zxvf sendEmail-v1.56.tar.gz

    复制执行程序 cp sendEmail-v1.56/sendEmail /usr/local/bin/

    发件测试:

    # sendEmail -f nagios@domain.com -t 7344506@qq.com -s mail.domain.com -u "This is subject" -xu nagios -xp passpwd -m This is content.

    解释:

    -f 表示发送者的邮箱

    -t 表示接收者的邮箱

    -s 表示SMTP服务器的域名或者ip

    -u 表示邮件的主题

    -xu 表示SMTP验证的用户名

    -xp 表示SMTP验证的密码(注意,这个密码貌似有限制,例如我用d!5neyland就不能被正确识别)

    -m 表示邮件的内容


    修改commands.cfg

    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/bin/printf "%b" "***** Nagios *****\n\nNotification Type: $NOTIFICATIONTYPE$\nHost: $HOSTNAME$\nState: $HOSTSTATE$\nAddress: $HOSTADDRESS$

    \nInfo: $HOSTOUTPUT$\n\nDate/Time: $LONGDATETIME$\n" | /usr/local/bin/sendEmail -f nagios@domain.com -t $CONTACTEMAIL$ -s mail.domain.com -u "** $NOTIFICATIONTYPE$ Host Alert: $HOSTNAM

    E$ is $HOSTSTATE$ **" $CONTACTEMAIL$ -xu nagios -xp password

    }


    # 'notify-service-by-email' command definition

    define command{

    command_name notify-service-by-email

    command_line /usr/bin/printf "%b" "***** Nagios *****\n\nNotification Type: $NOTIFICATIONTYPE$\n\nService: $SERVICEDESC$\nHost: $HOSTALIAS$\nAddress: $HOSTA

    DDRESS$\nState: $SERVICESTATE$\n\nDate/Time: $LONGDATETIME$\n\nAdditional Info:\n\n$SERVICEOUTPUT$\n" | /usr/local/bin/sendEmail -f nagios@domain.com -t $CONTACTEMAIL$ -s mail.domain.com -u "** $NOTIFIC

    ATIONTYPE$ Service Alert: $HOSTALIAS$/$SERVICEDESC$ is $SERVICESTATE$ **" $CONTACTEMAIL$ -xu nagios -xp password

    }


    保存并重启nagios服务。


    以下在被监控机上安装:

    可参考此文档:

    NRPE.pdf


    建立nagios用户和组:

    # useradd nagios


    创建存放软件的目录:

    # mkdir /software

    # cd /softeware


    下载nagios-plugins-2.0.3.tar.gz和nrpe-2.15.tar.gz

    # wget http://nagios-plugins.org/download/nagios-plugins-2.0.3.tar.gz

    # wget http://sourceforge.net/projects/nagios/files/nrpe-2.x/nrpe-2.15/nrpe-2.15.tar.gz/download


    安装nagios-plugins-2.0.3.tar.gz

    # tar -zxvf nagios-plugins-2.0.3.tar.gz

    # cd nagios-plugins-2.0.3

    # ./configure

    # make && make install

    授权:

    # chown nagios.nagios /usr/local/nagios/

    # chown -R nagios.nagios /usr/local/nagios/libexec/


    安装xinetd:

    # yum install xinetd


    安装nrpe-2.15.tar.gz

    # tar -zxvf nrpe-2.15.tar.gz

    # cd nrpe-2.15/

    # ./configure

    # make all

    Install the NRPE plugin (for testing), daemon, and sample daemon config file.

    # make install-plugin

    # make install-daemon

    # make install-daemon-config

    Install the NRPE daemon as a service under xinetd.

    # make install-xinetd


    添加nagios监控服务器地址到/etc/xinetd.d/nrpe

    only_from = 127.0.0.1 12.92.117.15

    追加nrpe服务到/etc/services

    # echo "nrpe 5666/tcp # nrpe" >> /etc/services

    重启xinetd服务:

    # /etc/init.d/xinetd restart

    查看有没有起来:

    # netstat -at|grep nrpe //如下已启动

    tcp 0 0 *:nrpe *:* LISTEN


    因为刚才在/etc/xinetd.d/nrpe中添加了可以连接到本机的地址,一个是本机地址127.0.0.1,另一个是182.92.187.15,现在测试一下能够正常连接:

    在被监控机上:

    # /usr/local/nagios/libexec/check_nrpe -H 127.0.0.1

    NRPE v2.15 //如果出现了版本信息表示成功。


    在监控端机器上:

    # /usr/local/nagios/libexec/check_nrpe -H www.iub.com.sg

    NRPE v2.15 //如果出现了版本信息表示成功。


    开放被监控机的5666端口:

    iptables -I RH-Firewall-1-INPUT -p tcp -m tcp –dport 5666 -j ACCEPT



    在监控端服务器上:

    # cd /usr/local/nagios/etc/objects/

    添加以下到commands.cfg

    define command{

    command_name check_nrpe

    command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$

    }



    创建文件www.domain.com.cfg,添加以下内容:

    define host{

    use linux-server

    host_name www.domain.com

    alias www.domain.com

    address 115.11.115.222

    }


    define service{

    use generic-service

    host_name www.domain.com

    service_description CPU Load

    check_command check_nrpe!check_load

    }


    添加此配置文件到nagios.cfg

    # vim /usr/local/nagios/etc/nagios.cfg

    加入:

    cfg_file=/usr/local/nagios/etc/objects/www.domain.com.cfg


    重启nagios服务,登录web界面查看。





    待续...



沪ICP备19023445号-2号
友情链接