nagios 监控程序安装

来源:互联网 发布:男装淘宝店铺运营外包 编辑:程序博客网 时间:2024/04/29 21:19
一、服务端
1.安装依赖包
yum install gcc glibc glibc-common
yum install gd gd-devel
yum install httpd php php-gd
yum install mysql*
2.增加用户
useradd apache
groupadd nagcmd
useradd -G nagcmd nagios
usermod -a -G nagcmd nagios
usermod -a -G apache apache
3.安装程序包
tar xzvf nagios-3.5.1.tar.gz
chown -R nagios.nagios nagios
./configure --with-command-group=nagcmd
make all
make install
make install-init
make install-commandmode
make install-config
make install-webconf


4.增加http访问用户
htpasswd -cb /usr/local/nagios/etc/htpasswd.users admin 123456


5.修改配置文件


vi /usr/local/nagios/etc/nagios.cfg
增加 
cfg_file=/usr/local/nagios/etc/objects/hosts.cfg
cfg_file=/usr/local/nagios/etc/objects/services.cfg
注释掉
#cfg_file=/usr/local/nagios/etc/objects/localhost.cfg


vi /usr/local/nagios/etc/objects/hosts.cfg 
define host{
        use                     linux-server
        host_name               192.168.2.101
        alias                   as6u3-64-2-201
        address                 192.168.2.101
        }
define host{
        use                     linux-server
        host_name               192.168.2.102
        alias                   as6u3-64-2-202
        address                 192.168.2.102
        }
define hostgroup{
        hostgroup_name  linux-servers ; The name of the hostgroup
        alias           Linux Servers ; Long name of the group
        members         192.168.2.101,192.168.2.102; Comma separated list of hosts that belong to this group
        }


vi /usr/local/nagios/etc/objects/services.cfg
define service {
        use                             generic-service
        host_name                       192.168.2.101,192.168.2.102
        service_description             Current Load
        check_command                   check_nrpe!check_load
}
define service {
        use                             generic-service
        host_name                       192.168.2.101,192.168.2.102
        service_description             Swap Useage
        check_command               check_nrpe!check_swap
}
define service {
        use                             generic-service
        host_name                       192.168.2.101,192.168.2.102
        service_description             User Useage
        check_command               check_nrpe!check_users
}


vi /usr/local/nagios/etc/objects/commands.cfg 增加


# 'check_nrpe' command definition
define command{
        command_name    check_nrpe
        command_line    $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
        }


编辑
vi /usr/local/nagios/etc/cgi.cfg
#将用户nagiosadmin替换为原来htpasswd 新建的用户
authorized_for_system_information=admin




二、客户端安装
1.新建用户
useradd nagios -M -s /sbin/nologin
2.安装程序包
tar xzvf nagios-plugins-1.4.16.tar.gz
./configure --with-nagios-user=nagios --with-nagios-group=nagios --enable-perl-modules
make
make install


tar xzvf nrpe-2.12.tar.gz 
./configure
make all
make install-plugin
make install-daemon
make install-daemon-config
make install-xinetd


3.修改配置文件
vi /etc/xinetd.d/nrpe
only_from 127.0.0.1 192.168.2.105 #增加服务器的IP


vi /etc/services 
nrpe            5666/tcp                # nrpe #增加一行


service xinetd restart


vim /usr/local/nagios/etc/nrpe.cfg
allowed_hosts=127.0.0.1,192.168.2.105 #增加服务器的IP




service xinetd restart
或 /usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -d


三、nagios 自定义检查工具,检查硬盘是否只读
自定义检查输出有退出状态码(0 正常,1 告警,2 严重 ,3 未知)和告警信息,


1.在客户端编写检查脚本
vim /usr/local/nagios/libexec/check_diskrw.sh
#!/bin/bash


for dir in `df|grep -v Filesystem |awk '/%/ {print $NF}'`
do
        cd $dir
        touch .aa  2>/dev/null
        if [ $? -eq 0 ] ;then
                rm -f .aa 2>/dev/null
        else
                echo "Have Disk Read-only file system"
                exit 2
        fi
done
echo "Check Disk Read-only is OK"
exit 0


2.修改配置文件/usr/local/nagios/etc/nrpe.cfg,增加一行,注意:这里使用了sudo命令,默认是nagios用户执行因为上面检查要使用root用户,所以这里增加sudo命令
command[check_diskrw]=/usr/bin/sudo /usr/local/nagios/libexec/check_diskrw.sh
3.上面执行sudo命令是还需要输入密码,修改sudo配置文件不使用密码
vi /etc/sudoers
#Defaults    requiretty 注释掉这一行


nagios ALL=(ALL) NOPASSWD:/usr/local/nagios/libexec/check_diskrw.sh 增加这一行
修改完后wq!强制退出保存


4.在服务端测试
/usr/local/nagios/libexec/check_nrpe -H 192.168.2.101 -c check_diskrw




sed 使用&代理匹配到的内容
sed 's/username/#&/g' test.txt 在username前另一个#号
sed 替换换行符
sed ":a;N;s/\n/,/g;ta" hostlist
原创粉丝点击