nagios监控

环境:192.168.80.101 监控 主机名zlf2
192.168.80.102被监控 主机名zlf3
安装nagios服务需要安装LAMP环境
相关的软件包
在这里插入图片描述
关闭防火墙并关闭selinux服务
systemctl stop firewalld
setenforce 0

这个用本地仓库安装用网上的会报错
yum install -y httpd php*

添加C语言
yum install gcc gcc-c++ make -y

vi /etc/httpd/conf/httpd.conf
ServerName 去掉#
在这里插入图片描述
DirectoryIndex index.html index.php
在这里插入图片描述
AddType application/x-httpd-php .php
在这里插入图片描述

vi /etc/httpd/conf.d/php.conf

LoadModule php5_module modules/libphp5.so
在这里插入图片描述

vi /etc/php.ini
在这里插入图片描述

在这里插入图片描述

开启http服务并自启
systemctl start httpd && systemctl enable httpd

编辑网页测试文件
vi /var/www/html/index.php

<?php phpinfo(); ?>

测试httpd 和php是否协同工作,在浏览器中输入192.168.80.101
在这里插入图片描述
如上图所示,表示httpd和php协同工作
到此,lap架构已搭建成功

配置nagios服务器端
yum -y install
httpd httpd-devel
gcc glibc glibc-common
gd gd-devel perl-devel
perl-CPAN
fcgi perl-FCGI
perl-FCGI-ProcManager
unzip
openssl-devel
在这里插入图片描述

添加组nagcmd将nagios放到nagcmd组中
groupadd nagcmd
useradd -G nagcmd nagios
usermod -a -G nagcmd apache
id -n -G apache
在这里插入图片描述

tar xf nagios-4.3.4.tar.gz -C /opt/
cd /opt/nagios-4.3.4/
./configure
–prefix=/usr/local/nagios
在这里插入图片描述
make all
make install //安装主程序,CGI和HTML文件
make install-init //在/etc/rc.d/init.d安装启动脚本 初始化
在这里插入图片描述

make install-config //安装示例配置文件,安装路径是/usr/local/nagios/etc
在这里插入图片描述

make install-commandmode //对应的命令
在这里插入图片描述

复制软件包自带的插件至nagios/libexec目录下
cp -R contrib/eventhandlers/ /usr/local/nagios/libexec/

chown -R nagios:nagios /usr/local/nagios/libexec/eventhandlers

检查配置文件
/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
在这里插入图片描述

检查配置问题
/etc/init.d/nagios checkconfig
在这里插入图片描述

配置nagios跟apache整合
make install-webconf
在这里插入图片描述

htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin
nagiosadmin是我们用来登录nagios的管理员,而cgi.cfg就是用来验证管理员身份的。
如果生成的管理员用户不是nagiosadmin,验证的时候就会失败,也就会出现错误。
解决方法:
改/usr/local/nagios/etc/cgi.cfg文件里的一个参数 use_authentication=1 将1改为0,重启nagios即可

systemctl restart httpd
测试,在浏览器中输入http://192.168.80.101/nagios/
在这里插入图片描述
输入之前用htpasswd 创建的用户名和密码,点击确定进入
在这里插入图片描述
出现上图,表示nagios网页界面正常

安装nagios-plugins插件--------Nagios提供的各种监控功能都是通过插件来完成的
tar xf nagios-plugins-2.2.1.tar.gz -C /opt/

cd /opt/nagios-plugins-2.2.1
./configure
–with-nagios-user=nagios
–with-nagios-group=nagcmd
–enable-perl-modules

make && make install

安装nrpe软件nagios作为服务端,本地资源需要监控,同时也需要check_nrpe插件做被动检查
tar xf nrpe-3.2.1.tar.gz -C /opt/
cd /opt/nrpe-3.2.1/
./configure

make all

将check_nrpe插件安装到/usr/local/nagios/libexec目录下
make install-plugin
在这里插入图片描述

make install-daemon
在这里插入图片描述

cp sample-config/nrpe.cfg /usr/local/nagios/etc/nrpe.cfg

ls /usr/local/nagios/libexec/ //检查插件安装情况
在这里插入图片描述

/usr/local/nagios/bin/nrpe -d -c /usr/local/nagios/etc/nrpe.cfg //启动

echo “/usr/local/nagios/bin/nrpe -d -c /usr/local/nagios/etc/nrpe.cfg” >> /etc/rc.local //开机启动

chmod +x /etc/rc.d/rc.local
在这里插入图片描述
netstat -lnput | grep 5666
在这里插入图片描述
/usr/local/nagios/libexec/check_nrpe -H localhost
//测试本地连接
在这里插入图片描述
出现上图,说明启动成功

安装nagios-plugins插件nagios提供的各种监控功能都是通过插件来完成的。
cd /opt/nagios-plugins-2.2.1
./configure
–with-nagios-user=nagios
–with-nagios-group=nagcmd
–enable-perl-modules

make && make install

去刷新以下网页http://192.168.80.101/nagios/
在这里插入图片描述
看见up说明就好了

客户端:192.168.80.102上用户名zlf3
安装nrpe软件nagios作为服务端,本地资源需要监控,同时也需要check_nrpe插件做被动检查
yum install -y perl-devel perl-CPAN openssl-devel
yum install -y gcc gcc-c++ make
在这里插入图片描述
tar xf nagios-plugins-2.2.1.tar.gz /opt
tar xf nrpe-3.2.1.tar.gz /opt

groupadd nagcmd
useradd -G nagcmd nagios -M
cd /opt/nagios-plugins-2.2.1
./configure
–with-nagios-user=nagios
–with-nagios-group=nagios
–enable-perl-modules

make && make install

make && make install
ls /usr/local/nagios/libexec/
在这里插入图片描述
cd /opt/nrpe-3.2.1
./configure 要一段时间
在这里插入图片描述
make all
make install-plugin
make install-daemon

mkdir /usr/local/nagios/etc/
cp sample-config/nrpe.cfg /usr/local/nagios/etc/nrpe.cfg

ls /usr/local/nagios/libexec/

/usr/local/nagios/bin/nrpe -d -c /usr/local/nagios/etc/nrpe.cfg //启动

echo “/usr/local/nagios/bin/nrpe -d -c /usr/local/nagios/etc/nrpe.cfg” >> /etc/rc.local //开机启动

chmod +x /etc/rc.d/rc.local
netstat -lnput|grep 5666
在这里插入图片描述
/usr/local/nagios/libexec/check_nrpe -H localhost
在这里插入图片描述
cd /usr/local/nagios/etc/

vi nrpe.cfg

allowed_hosts=127.0.0.1,::1,192.168.80.101 //允许服务端连接
在这里插入图片描述
---------修改以下行--------
298 command[check_users]=/usr/local/nagios/libexec/check_users -w 5 -c 10
299 command[check_load]=/usr/local/nagios/libexec/check_load -r -w .15,.10, .05 -c .30,.25,.20
300 command[check_hda1]=/usr/local/nagios/libexec/check_disk -w 20% -c 10% -p /dev/hda1
301 command[check_zombie_procs]=/usr/local/nagios/libexec/check_procs -w 5 -c 10 -s Z
302 command[check_total_procs]=/usr/local/nagios/libexec/check_procs -w 150 -c 200
在这里插入图片描述
/usr/local/nagios/libexec/check_nrpe -H localhost -c check_total_procs //测试本地命令执行情况
在这里插入图片描述
以上意思依次是:
定义命令check_users,当登录系统用户超过5个warning,超过10个报critical错误
定义命令check_load,当一分钟超过15个进程等待;5分钟超过10个进程等待;15分钟超过5进程等待则提升至Waining状态;当一分钟超过30个进程等待;5分钟超过25个进程等待;15分钟超过20进程等待则提升至Critical状态
定义命令check_sda1,当/dev/sda1空闲容量少于20%报warning,低于10%状态变为critical
定义命令check_ zombie_procs,当僵尸进程超过5个警告,超过10个提示critical错误,并显示进程状态
定义命令check_total_procs,当总进程超过150个警告,超过200提示critical,这两个阀值根据服务器性能做相应调整
定义命令check_mem,当服务器内存使用超过90%警告,超过95%提示critical
定义命令check_swap,当交换分区空闲空间低于20%警告,低于10%提升状态critical
注:由于nrpe和nagios-plugins都没有提供check_mem插件,我们必须自己创建check_mem.pl的perl脚本用于监控服务器的内存。

修改文件后重启以下
pkill -9 nrpe

/usr/local/nagios/bin/nrpe -d -c /usr/local/nagios/etc/nrpe.cfg

/usr/local/nagios/libexec/check_nrpe -H localhost -c check_total_procs //测试本地命令执行情况
在这里插入图片描述

在服务器端测试192.168.80.101上
/usr/local/nagios/libexec/check_nrpe -H 192.168.80.102
在这里插入图片描述
/usr/local/nagios/libexec/check_nrpe -H 192.168.80.102 -c check_sda2
在这里插入图片描述
cd /usr/local/nagios/etc
grep nagiosadmin cgi.cfg //检查配置文件中相关授权的用户组默认只有nagiosadmin
在这里插入图片描述
sed -i ‘s/nagiosadmin/nagiosadmin,nagios/g’ cgi.cfg //增加nagios组授权
在这里插入图片描述
修改后如上图

mkdir /usr/local/nagios/etc/conf
vi nagios.cfg

cfg_dir=/usr/local/nagios/etc/conf //配置子配置文件目录
在这里插入图片描述

vi objects/commands.cfg //在最后新增

define command{
command_name check_nrpe
command_line U S E R 1 USER1 USER1/check_nrpe -H H O S T A D D R E S S HOSTADDRESS HOSTADDRESS -c A R G 1 ARG1 ARG1
}
在这里插入图片描述
vi objects/contacts.cfg //修改电子邮箱

email 2124434358@qq.com;
在这里插入图片描述

cd /usr/local/nagios/etc/conf
在这里插入图片描述
vi 192.168.80.101.cfg //新建的定义主机和主机组
define host{
use linux-server
host_name mysql //监控平台上显示的名称 可写IP地址
alias www.ab.com //监控平台上显示的名称
address 192.168.80.102 //被控端地址
}
define hostgroup{ //定义主机组
hostgroup_name testgroup
alias mysql
members mysql
}
在这里插入图片描述

vi 192.168.80.102.cfg //使用的check_command要在commands.cfg中定义过

define service{
host_name mysql 主机名称
service_description check-host-alive 描述
check_command check-host-alive 用什么命令去检测
max_check_attempts 3
nagios对主机的最大检查次数,也就是nagios在检查发现某主机异常时,并不马上判断为异常状况
check_interval 2
nagios对主机的检查时间间隔,这里是2分钟。
retry_interval 2 重试检查时间间隔,单位是分钟
check_period 24x7
这里的check_period告诉nagios检查主机的时间段
notification_interval 300
在主机出现异常后,故障一直没有解决,nagios再次对使用者发出通知的时间。单位是分钟
notification_period 24x7
主机故障时,发送通知的时间范围,其中“workhours”在timeperiods.cfg中进行了定义;
notification_options w,u,c,r
定义主机在什么状态下可以发送通知给使用者,d即down,表示宕机状态;
#contact_groups admins
指定联系人组,这个“admins”在contacts.cfg文件中定义。
process_perf_data 1
其值可以为0或1,其作用为是否启用Nagios的数据输出功能; 如果将此项赋值为1,那么Nagios就会将收集的数据写入某个文件中,以备提取。
}
define service{
host_name mysql
service_description check-procs 检测进程数
check_command check_nrpe!check_total_procs
max_check_attempts 3
check_interval 2
retry_interval 2
check_period 24x7
notification_interval 300
notification_period 24x7
notification_options w,u,c,r
#contact_groups admins
process_perf_data 1
}
define service{
host_name mysql
service_description check-load
check_command check_nrpe!check_load
max_check_attempts 3
check_interval 2
retry_interval 2
check_period 24x7
notification_interval 300
notification_period 24x7
notification_options w,u,c,r
#contact_groups admins
process_perf_data 1
}
define service{
host_name mysql
service_description check-ssh
check_command check_ssh
max_check_attempts 3
check_interval 2
retry_interval 2
check_period 24x7
notification_interval 300
notification_period 24x7
notification_options w,u,c,r
#contact_groups admins
process_perf_data 1
}
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

/etc/init.d/nagios checkconfig //检查语法错误
在这里插入图片描述

service nagios restart
在这里插入图片描述
测试:在浏览器中输入http://192.168.80.101/nagios/
在这里插入图片描述
在这里插入图片描述

配置图表
yum install -y
cairo pango
perl-rrdtool rrdtool
librrds-perl
zlib zlib-devel
freetype freetype-devel
gd gd-devel
在这里插入图片描述

tar xf pnp4nagios-0.6.26.tar.gz -C /opt/
cd /opt/pnp4nagios-0.6.26/
./configure
–prefix=/usr/local/pnp4nagios
–with-nagios-user=nagios
–with-nagios-group=nagios
在这里插入图片描述

rrdtool源码安装解决上面报错
yum -y install gcc cairo-devel libxml2-devel pango-devel pango libpng-devel freetype freetype-devel libart_lgpl-devel //安装rrdtool编译时,所需要的基础库。
yum -y install perl-ExtUtils-MakeMaker

tar xf rrdtool-1.4.5.tar.gz -C /opt/
cd /opt/rrdtool-1.4.5
./configure --prefix=/usr/local/rrdtool
make && make install
tar xf pnp4nagios-0.6.26.tar.gz -C /opt/
cd /opt/pnp4nagios-0.6.26
./configure
–prefix=/usr/local/pnp4nagios
–with-nagios-user=nagios
–with-nagios-group=nagios
就完成上面的报错了

make all
make install
在这里插入图片描述
make install-webconf
在这里插入图片描述
make install-config
在这里插入图片描述
make install-init
在这里插入图片描述

cd sample-config/
make install-webconf
在这里插入图片描述

cd /usr/local/pnp4nagios/etc/

mv misccommands.cfg-sample misccommands.cfg
mv rra.cfg-sample rra.cfg
mv nagios.cfg-sample nagios.cfg
在这里插入图片描述

cd pages/
cp web_traffic.cfg-sample web_traffic.cfg
在这里插入图片描述

cd …/check_commands/
mv check_all_local_disks.cfg-sample check_all_local_disks.cfg
mv check_nrpe.cfg-sample check_nrpe.cfg
mv check_nwstat.cfg-sample check_nwstat.cfg
在这里插入图片描述

systemctl start npcd && systemctl enable npcd
ps aux | grep npcd
在这里插入图片描述

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

process_performance_data=1 //改成1
在这里插入图片描述

host_perfdata_file=/usr/local/pnp4nagios/var/host-perfdata
service_perfdata_file=/usr/local/pnp4nagios/var/service-perfdata
在这里插入图片描述
host_perfdata_file_mode=a
service_perfdata_file_mode=a
在这里插入图片描述
host_perfdata_file_processing_interval=15
service_perfdata_file_processing_interval=15
在这里插入图片描述
host_perfdata_file_processing_command=process-host-perfdata-file
service_perfdata_file_processing_command=process-service-perfdata-file
在这里插入图片描述

host_perfdata_file_template=DATATYPE::HOSTPERFDATA\tTIMET:: T I M E T TIMET TIMET\tHOSTNAME:: H O S T N A M E HOSTNAME HOSTNAME\tHOSTPERFDATA:: H O S T P E R F D A T A HOSTPERFDATA HOSTPERFDATA\tHOSTCHECKCOMMAND:: H O S T C H E C K C O M M A N D HOSTCHECKCOMMAND HOSTCHECKCOMMAND\tHOSTSTATE:: H O S T S T A T E HOSTSTATE HOSTSTATE\tHOSTSTATETYPE:: H O S T S T A T E T Y P E HOSTSTATETYPE HOSTSTATETYPE

service_perfdata_file_template=DATATYPE::SERVICEPERFDATA\tTIMET:: T I M E T TIMET TIMET\tHOSTNAME:: H O S T N A M E HOSTNAME HOSTNAME\tSERVICEDESC:: S E R V I C E D E S C SERVICEDESC SERVICEDESC\tSERVICEPERFDATA:: S E R V I C E P E R F D A T A SERVICEPERFDATA SERVICEPERFDATA\tSERVICECHECKCOMMAND:: S E R V I C E C H E C K C O M M A N D SERVICECHECKCOMMAND SERVICECHECKCOMMAND\tHOSTSTATE:: H O S T S T A T E HOSTSTATE HOSTSTATE\tHOSTSTATETYPE:: H O S T S T A T E T Y P E HOSTSTATETYPE HOSTSTATETYPE\tSERVICESTATE:: S E R V I C E S T A T E SERVICESTATE SERVICESTATE\tSERVICESTATETYPE:: S E R V I C E S T A T E T Y P E SERVICESTATETYPE SERVICESTATETYPE
在这里插入图片描述
在这里插入图片描述

末尾新增:
define command{
command_name process-service-perfdata-file
command_line /usr/local/pnp4nagios/libexec/process_perfdata.pl --bulk=/usr/local/pnp4nagios/var/service-perfdata
}
define command{
command_name process-host-perfdata-file
command_line /usr/local/pnp4nagios/libexec/process_perfdata.pl --bulk=/usr/local/pnp4nagios/var/host-perfdata
}
在这里插入图片描述

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

action_url /pnp4nagios/index.php/graph?host= H O S T N A M E HOSTNAME HOSTNAME&srv= S E R V I C E D E S C SERVICEDESC SERVICEDESC
在这里插入图片描述

/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg //检查配置文件
在这里插入图片描述
/etc/init.d/nagios checkconfig //检查配置问题
在这里插入图片描述
service nagios restart
service httpd restart

浏览器测试图表
http://192.168.80.101/pnp4nagios
在这里插入图片描述
rm -rf /usr/local/pnp4nagios/share/install.php
在这里插入图片描述
监控服务器主机的状态

现在检查监控客户端状态:
vi /usr/local/nagios/etc/objects/templates.cfg

define host {
name host-pnp
action_url /pnp4nagios/index.php/graph?host= H O S T N A M E HOSTNAME HOSTNAME&srv=HOST
register 0
}

define service {
name service-pnp
action_url /pnp4nagios/index.php/graph?host= H O S T N A M E HOSTNAME HOSTNAME&srv= S E R V I C E D E S C SERVICEDESC SERVICEDESC
register 0
}
在这里插入图片描述

cd /usr/local/nagios/etc/conf

vi 192.168.80.101.cfg
define host{ //每个都要新增
use linux-server,host-pnp //调用
在这里插入图片描述

vi 192.168.80.102.cfg

define service{ //每个都要新增
use generic-service,service-pnp //调用
在这里插入图片描述

service nagios restart
service httpd restart
测试,在浏览器中http://192.168.80.101/nagios/
在这里插入图片描述

在这里插入图片描述

配置邮件报警--------
配置mailx使能发送邮件

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

#‘notify-host-by-email’ command definition
define command{
command_name notify-host-by-email
}

#‘notify-service-by-email’ command definition
define command{
command_name notify-service-by-email
}
在这里插入图片描述

yum install mailx senmail* -y
在这里插入图片描述

vi /etc/mail.rc
set bsdcompat
set from=zlf1570380578@163.com
set smtp=smtp.163.com
set smtp-auth-user=zlf1570380578@163.com
set smtp-auth-password=zlf123456
set smtp-auth=login
在这里插入图片描述

先登录
在这里插入图片描述
在这里插入图片描述
设置发送给自己邮箱地址
echo “测试邮件”|mail -s “测试” zlf1570380578@163.com 发给我自己网易邮箱
在这里插入图片描述

echo “测试邮件”|mail -s “测试” 2124434358@qq.com 发给我自己qq邮箱
在这里插入图片描述

在客户端192.168.80.102上,去设置一下被监控端NRPE daemon插件监控的阀值来模拟报警
vi /usr/local/nagios/etc/nrpe.cfg

在这里插入图片描述
修改这两项,当磁盘空闲空间低于98%warning 低于97%critical

pkill -9 nrpe
/usr/local/nagios/bin/nrpe -d -c /usr/local/nagios/etc/nrpe.cfg
在这里插入图片描述
实测过了大概30秒才收到报警邮件
再邮箱查看

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值