##############################################################################
监控:
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 //如果有报警邮件,就可以在这里查看