##############################################################################

监控:

1、监控

监视和控制

2、监控对象

服务器

3、监控的资源

硬件使用率(cpu、内存、存储)

服务的状态(启动 停止)

操作系统的运行情况(用户数 进程数)

网络接口的流量

4、方法

使用cron的执行,自定义监控脚本

系统对应的命令查看

监控软件


###############################################################################


nagios监控软件:


一、部署LAMP环境

#yum -y install httpd

#yum -y install mariadb

#yum -y install php php-mysql

#systemctl restart httpd

#systemctl enable httpd

#systemctl start mariadb.service

#systemctl enbale mariadb.service


####################################


二、安装nagios(源码)

2.1、安装准备


编译环境

#yum -y install gcc gcc-c++

创建运行nagios服务的用户和组

#useradd nagios

#groupadd nagcmd

#usermod -G nagcmd nagios

2.2、装包


1、解压

#tar xzf nagios-4.2.4.tar.gz

#cd nagios-4.2.4/


2、配置

#./configure --with-nagios-user=nagios  --with-nagios-group=nagcmd --with-command-user=nagios  --with-command-group=nagcmd


3、编译

#make all //根据提示进行安装


4、安装

# make install //安装主程序

#make install-init //控制脚本

#make install-commandmode //调权限

#make install-config //安装配置文件

#make install-webconf //网站配置

#make install-exfoliation //网站风格


5、安装目录说明

#ls /usr/local/nagios

bin //可执行命令

etc //配置文件

libexec //监控插件

sbin //cgi文件

share //网页文件

var //日志文件状态信息文件


2.3、安装监控插件

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

#cd nagios-plugins-2.1.4/

#./configure  

#make

#make  install

#ls /usr/local/nagios/libexec/check_*


2.4、设置登陆监控网页的用户和密码

#rpm -q httpd-tools-2.4.6-40.el7.x86_64 //提供htpasswd命令

# htpasswd -c /usr/local/nagios/etc/htpasswd.users //文件名以及路径必须正确,用户名必须为nagiosadmin

#cat /usr/local/nagios/etc/htpasswd.users 

# grep  "nagiosadmin"   /usr/local/nagios/etc/cgi.cfg 


2.5、启动nagios服务

#/etc/rc.d/init.d/nagios    start|stop|status


2.6、在客户端254访问监控服务器的监控页面

#http://192.168.4.21/nagios //192.168.4.21监控服务器地址


##############################################################

三、


1、默认监控本机:


cpu负载     check_load

登陆用户数     check_user

http服务   check_http

PING                     check_ping

根分区                     check_disk 

ssh服务                   check_ssh

交换分区                 check_swap

进程数量                 check_procs

连接目标主机的tcp协议端口     check_tcp


2、监控状态

正常 ok

警告 warning

不知道 unknown

严重错误 critical

监控中 pending



###############################################################################


四、配置nagios服务


4.1、监控过程


nagios服务加载主配置文件nagios.cfg,主配置文件调用监控插件,运维人员可以设置监控的监控阀值(警告值 和 错误值)

nagios服务的插件将监控到的数据和监控阀值进行比较,根据结果来显示监控状态


监控到的数据     <    警告值                        显示    ok  

监控到的数据     >    警告值    <    错误值    显示  WARNING

监控到的数据     >    错误值                        显示    critical


UNKNOWN   配置有问题 

pending        正在获取数据



##############################################


4.2、监控插件的使用


#cd /usr/local/nagios/libexec/ //切换到监控插件目录下

#./插件名


#监控插件目录路径/插件名 --help //查看帮助


举例:

#./check_user  -w  10  -c 20  

//当前系统登陆用户数超过10则警告,超过20则严重错误


###############################################


4.3、配置文件说明

#ls /usr/local/nagios/etc

cgi.cfg //授权文件(访问权限)

htpasswd.users //登陆监控页面的用户信息文件

nagios.cfg //主配置文件

objects //监控插件配置文件目录

resource.cfg //宏定义文件


#ls /usr/local/nagios/etc/objects

commands.cfg //定义监控命令的配置文件

timeperiods.cfg //定义监控时间的文件

templates.cfg //定义监控模块文件

contacts.cfg //定义报警邮件发送的文件

localhost.cfg //监控本机配置文件


###############################################################

4.4、监控本机

1、默认监控本机的几种服务以及系统运行情况。


2、添加监控项:

2.1、自定义监控命令

格式:

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

#vim commands.cfg

define command {

        command_name 命令名 //自定义

        command_line 监控命令

}


举例:自定义监控本机/boot分区的容量

define command {

        command_name check_local_boot

        command_line /usr/local/nagios/libexec/check_disk -w 50% -c 25% -p /boot

}


//监控本机/boot分区,剩余空间小于50%发警告邮件,少于25%发严重错误邮件


2.2、配置监控本机配置文件

格式:

#vim localhost.cfg

define host {

use linux-server //模块名templates.cfg文件中,有各个模块的配置

host_name 主机名 //自定义

address   被监控主机的ip地址

define service{

        use                             local-service //模块名

        host_name                       主机名 //和define host一致,监控本机就是localhost

        service_description             服务描述 //对被监控服务的简单描述

        check_command                   监控命令 //commands.cfg文件中定义的命令名称

}


举例:

#vim localhost.cfg

define host {

use linux-server

host_name localhost

address  192.168.4.21

}

define service {

use local-service

host_name localhost

service_description boot

check_command check_local_boot

}


#############################################################

2.3、重启服务

#/etc/rc.d/init.d/nagios restart


#############################################################

2.4、验证

http://192.168.4.21/nagios

//查看service下的结果


########################################################################################


五、监控远端主机

(一)监控远端主机进程:因为进程和服务不同的在于。服务可以通过监控对应的端口来获取状态,进程时没有端口的,所以进程的监控需要通过以下步骤来实现

原理:

监控端:nagios+check_nrpe

被监控端:NPRE+check_disk check_load ...


被监控端的NRPE服务,被监控端的NPRE服务获取到本地监控插件的监控数据,监控端通过check_nrpe插件来连接被监控端的NRPE服务来获取数据,交给nagios处理。这个获取过程采用的时SSL加密通信。


1、配置被监控端


装监控插件

#yum -y install  gcc gcc-c++

#tar xzf nagios-plugins-2.1.4.tar.gz 

#cd nagios-plugins-2.1.4/ 

#./configure 

#make && make install


装NRPE服务

#yum -y install openssl openssl-devel //加密通信

#useradd nagios //NRPE服务运行的用户

#tar xzf nrpe-3.0.1.tar.gz 

#cd nrpe-3.0.1/ 

#./configure 

#make //列出所有安装项

#make all //编译

#ls /root/nrpe-3.0.1/docs/ //NRPE.pdf安装说明书

#make install //安装NRPE和check_nrpe插件

#make install-config //安装配置文件

#make install-init //安装控制脚本


修改配置文件

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

98 allowed_hosts=127.0.0.1, 192.168.4.21 //默认仅允许本机连接,添加监控服务器的地址192.168.4.21

287 command[nrpe_check_users]=/usr/local/nagios/libexec/check_users -w 1 -c 2

288 command[nrpe_check_load]=/usr/local/nagios/libexec/check_load -w 15,10,5 -c 30,25,20

289 command[nrpe_check_root]=/usr/local/nagios/libexec/check_disk -w 20% -c 10% -p /

290 command[nrpe_check_zombie_procs]=/usr/local/nagios/libexec/check_procs -w 5 -c 10 -s Z

291 command[nrpe_check_total_procs]=/usr/local/nagios/libexec/check_procs -w 150 -c 200

//定义监控命令


重启本机测试:

#systemctl restart nrpe

#/usr/local/nagios/libexec/check_nrpe -H 127.0.0.1 -p 5666 -c nrpe_check_users

//调用check_nrpe插件 -H 被监控主机地址(测试NRPE服务,所以使用本机回环地址) -p (NRPE服务的端口) -c 监控命令(nrpe.cfg中定义)


##############################################################################


2、配置监控端


安装check_nrpe插件

#tar -zxf nrpe-3.0.1.tar.gz 

#cd nrpe-3.0.1/

#./configure 

#make

#make all

#make install-plugin


测试插件

#/usr/local/nagios/libexec/check_nrpe -H 192.168.4.19 -p 5666 -c nrpe_check_users


修改配置文件

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

#vim commands.cfg


define command {

        command_name check_19_user //自定义

        command_line $USER1$/check_nrpe -H 192.168.4.19 -p 5666 -c nrpe_check_users //调用插件

}

//进程需要通过nrpe来获取192.168.4.19上的监控数据

define command {

        command_name check_19_http

        command_line $USER1$/check_http -H 192.168.4.19 -p 80

}

//监控服务



#vim monitor19.cfg //自己创建

define host {

        use linux-server

        host_name www.tarena.com

        address  192.168.4.19

}

define service {

        use local-service

        host_name www.tarena.com

        service_description  http

        check_command check_19_http


define service {

        use local-service

        host_name www.tarena.com

        service_description users

        check_command check_19_user

}


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

cfg_file=/usr/local/nagios/etc/objects/monitor19.cfg //主配置文件添加,重启服务读取monitor.cfg文件


##################################################################


3、验证

#systemctl restart nagios 

#http://192.168.4.21/nagios


4、设置本机nagios用户接收报警邮件

#yum -y install postfix

#systemctl restart postfix

#vim /usr/local/nagios/etc/contacks.cfg //文件中默认的收件用户为nagios

#mail -u nagios //如果有报警邮件,就可以在这里查看