nagios服务搭建与监控创建使用
ip | 主机名 | 备注 |
---|---|---|
172.16.121.227 | nagios | 服务端,关闭防火墙 |
172.16.121.228 | client | 客户端,关闭防火墙 |
我也有去百度他人的学习的他是lamp和lnmp两种都有接受我是直接yum源安装了php和httpd服务,大家也可以看一下他的博客的文章:https://www.jianshu.com/p/3476d98a4703
1.服务端安装nagios
需要在httpd或者是nginx的基础下所以还得额外安装httpd和nginx服务
创建一个目录存放安装包
[root@nagios ~] mkdir wjh
[root@nagios ~]# cd wjh/
[root@nagioswjh]# wget https://assets.nagios.com/downloads/nagioscore/releases/nagios-4.3.1.tar.gz
[root@nagios wjh]# wget https://nagios-plugins.org/download/nagios-plugins-2.2.1.tar.gz
[root@nagios wjh]# wget https://sourceforge.net/projects/nagios/files/nrpe-3.x/nrpe-3.1.0.tar.gz
安装php和httpd服务
[root@nagios wjh]# yum -y install php php-fpm
[root@nagios wjh]# yum -y install httpd
[root@nagios wjh]# service httpd start
开始安装nagios-server服务端
安装依赖包
[root@nagios wjh]# yum -y install httpd httpd-devel gcc glibc glibc-common gd gd-devel perl-devel perl-CPAN fcgi perl-FCGI perl-FCGI-ProcManager
解压nagios源码包
[root@nagios wjh]# tar zxvf nagios-4.3.1.tar.gz
进入解压目录
创建ngaios用户和组(把httpd启动用apache加入到nagios相关组)
[root@nagios wjh]# cd nagios-4.3.1
[root@nagios nagios-4.3.1]# useradd nagios -s /sbin/nologin
[root@nagios nagios-4.3.1]# id apache
[root@nagios nagios-4.3.1]# groupadd nagcmd
[root@nagios nagios-4.3.1]# usermod -a -G nagcmd nagios
[root@nagios nagios-4.3.1]# usermod -a -G nagcmd apache
[root@nagios nagios-4.3.1]# id -n -G nagios
[root@nagios nagios-4.3.1]# id -n -G apache
配置nagios 编译安装
[root@client1 nagios-4.3.1]# ./configure --with-command-group=nagcmd
[root@nagios nagios-4.3.1]# make all
[root@nagios nagios-4.3.1]# make install-init
[root@nagios nagios-4.3.1]# make install-commandmode
[root@nagios nagios-4.3.1]# make install-config
[root@nagios nagios-4.3.1]# make install
[root@nagios nagios-4.3.1]# cp -R contrib/eventhandlers/ /usr/local/nagios/libexec/
[root@nagios nagios-4.3.1]# chown -R nagios:nagios /usr/local/nagios/libexec/eventhandlers
[root@nagios nagios-4.3.1]# /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
生成apache配置文件
[root@nagios nagios-4.3.1]# make install-webconf
生成nagios web界面的验证信息 设置自己的密码
[root@nagios nagios-4.3.1]# htpasswd -c /usr/local/nagios/etc/htpasswd.users nagios
修改httpd.conf配置文件
# vi /etc/httpd/conf/httpd.conf
DirectoryIndex index.html ===> 修改为 DirectoryIndex index.php index.html
AddType application/x-gzip .gz .tgz ===> 下面添加一行内容 AddHandler application/x-httpd-php .php
# LoadModule foo_module modules/mod_foo.so ===> 下面添加一行内容
LoadModule php5_module modules/libphp5.so
修改管理员(否则不是管理员无法使用一些操作,比如监控)
可以直接关闭身份验证
#vi /usr/local/nagios/etc/cgi.cfg
use_authentication=1 ==> use_authentication=0 1改为0
重启httpd
systemctl start httpd
systemctl enable httpd
启动nagios
chkconfig nagios on
/etc/init.d/nagios start
网页访问 172.16.121.227/nagios
安装监控插件:
安装依赖包
安装nagios-plugins插件
解压nagios-plugins源码包
[root@nagios nagios-4.3.1]# yum install -y gcc glibc glibc-common make gettext automake autoconf wget openssl-devel net-snmp net-snmp-utils epel-release
[root@nagios nagios-4.3.1]# yum -y install perl-Net-SNMP
[root@nagios httpd]# cd /root/wjh/
[root@nagios wjh]# tar zxvf nagios-plugins-2.2.1.tar.gz
进入解压后的目录进行配置
[root@nagios wjh]# cd nagios-plugins-2.2.1/
[root@nagios nagios-plugins-2.2.1]# ./configure --with-nagios-user=nagios --with-nagios-group=nagcmd --enable-perl-modules
编译及安装
[root@nagios nagios-plugins-2.2.1]# make && make install
安装nrpe
解压nrpe源码包
[root@nagios nagios-plugins-2.2.1]# cd /root/wjh/
[root@nagios wjh]# tar zxvf nrpe-3.1.0.tar.gz
进去解压后的目录进行配置
[root@nagios wjh]# cd nrpe-3.1.0/
[root@nagios nrpe-3.1.0]# ./configure
编译及安装
[root@nagios nrpe-3.1.0]# make all
[root@nagios nrpe-3.1.0]# make install-plugin
[root@nagios nrpe-3.1.0]# make install-daemon
[root@nagios nrpe-3.1.0]# make install-daemon-config
[root@nagios nrpe-3.1.0]# cp sample-config/nrpe.cfg /usr/local/nagios/etc/nrpe.cfg
启动nrpe,并测试服务端本地是否可以连通
[root@nagios nrpe-3.1.0]# /usr/local/nagios/bin/nrpe -d -c /usr/local/nagios/etc/nrpe.cfg
[root@nagios nrpe-3.1.0]# echo "/usr/local/nagios/bin/nrpe -d -c /usr/local/nagios/etc/nrpe.cfg" >> /etc/rc.local
[root@nagios nrpe-3.1.0]# chmod +x /etc/rc.d/rc.local
[root@nagios nrpe-3.1.0]# netstat -lnput|grep 5666
tcp 0 0 0.0.0.0:5666 0.0.0.0:* LISTEN 67176/nrpe
tcp6 0 0 :::5666 :::* LISTEN 67176/nrpe
[root@nagios nrpe-3.1.0]# /usr/local/nagios/libexec/check_nrpe -H localhost
NRPE v3.1.0-rc1
添加nagios服务器IP,运行服务器连接nrpe
[root@nagios nrpe-3.1.0]# vi /usr/local/nagios/etc/nrpe.cfg
allowed_hosts=127.0.0.1,::1,172.16.121.228
dont_blame_nrpe=1
修改这两条命令
并在最后添加这5条
command[check_users]=/usr/local/nagios/libexec/check_users -w 5 -c 10
command[check_load]=/usr/local/nagios/libexec/check_load -r -w .15,.10,.05 -c .30,.25,.20
command[check_disk]=/usr/local/nagios/libexec/check_disk -w 20% -c 10% -p /
command[check_mem]=/usr/local/nagios/libexec/check_mem.pl -w 90% -c 95%
command[check_swap]=/usr/local/nagios/libexec/check_swap -w 20% -c 10%
启动服务并测试:
[root@nagios nrpe-3.1.0]# /usr/local/nagios/bin/nrpe -d -c /usr/local/nagios/etc/nrpe.cfg
[root@nagios nrpe-3.1.0]# /usr/local/nagios/libexec/check_nrpe -H 127.0.0.1 -c check_load
OK - load average per CPU: 0.00, 0.01, 0.03|load1=0.000;0.150;0.300;0; load5=0.005;0.100;0.250;0; load15=0.025;0.050;0.200;0;
到这里本机的监控就完成了
接下来进行远程监控配置
在客户端先配置监控脚本
[root@client ~]# cd /usr/local/nagios/libexec/
[root@client libexec]# vi wjh.sh
#!/bin/bash
OK=0
CRITICAL=2
nginx=`ss -lnt | grep 80 | wc -l`
mysql=`ss -lnt | grep 3306 | wc -l`
apache=`ss -lnt | grep 8080 | wc -l`
case $1 in
nginx)
if [ $nginx -ge 1 ];then
echo "OK,nginx is working!"
exit $OK;
else
echo "CRITICAL,nginx is not working!"
exit $CRITICAL
fi
;;
mysql)
if [ $mysql -ge 1 ];then
echo "OK,Mysql is working!"
exit $OK;
else
echo "CRITICAL,Mysql is not working!"
exit $CRITICAL
fi
;;
apache)
if [ $apache -ge 1 ];then
echo "OK,Apache is working!"
exit $OK;
else
echo "CRITICAL,Apache is not working!"
exit $CRITICAL
fi
;;
*)
echo "Usage: $0 nginx|mysql|apache"
exit;;
esac
然后授权验证
[root@client libexec]# chmod 755 wjh.sh
[root@client libexec]# chown nagios.nagios wjh.sh
[root@client libexec]# ./wjh.sh nginx
OK,nginx is working!
[root@client libexec]# ./wjh.sh mysql
OK,Mysql is not working!
[root@client libexec]# ./wjh.sh apache
OK,Apache is working!
这里的mysql和nginx服务安装我没有细写出大家可以百度找一下或者是采用lnmp一键部署。
在向/usr/local/nagios/etc/nrpe.cfg配置文件中加入如下内容
command[check_nginx]=/usr/local/nagios/libexec/wjh.sh nginx -c 2
command[check_mysql]=/usr/local/nagios/libexec/wjh.sh mysql -c 2
command[check_apache]=/usr/local/nagios/libexec/wjh.sh apache -c 2
在重启nrpe这里可以安装一下nrpe的启动脚本
[root@client ~]# vim /etc/init.d/nrpe
#!/bin/bash
#chkconfig: 2345 10 90
#description: nrpe
NRPE=/usr/local/nagios/bin/nrpe
NRPECONF=/usr/local/nagios/etc/nrpe.cfg
case "$1" in
start)
echo -n "Starting NRPE daemon..."
$NRPE -c $NRPECONF -d
echo " done."
;;
stop)
echo -n "Stopping NRPE daemon..."
pkill -u nagios nrpe
echo " done."
;;
restart)
$0 stop
sleep 2
$0 start
;;
*)
echo "Usage: $0 start|stop|restart"
;;
esac
然后授权重启
[root@client ~]# chmod 755 /etc/init.d/nrpe
[root@client ~]# chkconfig --add nrpe
[root@client ~]# systemctl restart nrpe
在服务端进行基础配置
向/usr/local/nagios/etc/objects/commands.cfg中添加如下内容
[root@nagios objects]# cat commands.cfg
在/usr/local/nagios/etc/nagios.cfg配置文件中加入
cfg_file=/usr/local/nagios/etc/objects/hosts.cfg
配置监控客户端服务文件
[root@nagios objects]# cat hosts.cfg
define host{
use linux-server
host_name client
address 172.16.121.228
}
define service {
use local-service
host_name client
service_description Nginx
check_command check_nrpe!check_nginx
normal_check_interval 1
}
define service {
use local-service
host_name client
service_description Mysql
check_command check_nrpe!check_mysql
normal_check_interval 1
}
define service {
use local-service
host_name client
service_description Apache
check_command check_nrpe!check_apache
normal_check_interval 1
}
重启两个服务
[root@nagios objects]# service nagios restart
Restarting nagios (via systemctl): [ OK ]
[root@nagios objects]# systemctl restart nrpe
网页查看