Nagios详解(基础、安装、配置文件解析及监控实例)

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群版 2核4GB 100GB
推荐场景:
搭建个人博客
全局流量管理 GTM,标准版 1个月
简介: 一、Nagios基础 1.简介Nagios是一款开源网络监视工具。可监控网络服务(SMTP、POP3、HTTP、NNTP、ICMP、SNMP、FTP、SSH、PING~~~)、监控主机资源、根据需求设置相关插件监控、通过Email,短信及用户自定义方式实施警报、可选的web界面查看当前网络状态、通知和故障历史、日志文件等。

一、Nagios基础

1.简介
Nagios是一款开源网络监视工具。
可监控网络服务(SMTP、POP3、HTTP、NNTP、ICMP、SNMP、FTP、SSH、PING~~~)、监控主机资源、根据需求设置相关插件监控、通过Email,短信及用户自定义方式实施警报、可选的web界面查看当前网络状态、通知和故障历史、日志文件等。
2.工作原理
Nagios的功能是监控服务和主机,但其监控、检测功能时通过插件完成。
3.工作对象
1).主机(交换机、路由器、虚拟机~~~),由多个主机组成组称为的主机组;
2).服务(通过监听在某个套接字上对外输出信息),由多个服务组成的组称为服务组;
3).联系人,由多个联系人组成的组称为联系人组;
4).时段(定义监控对象在指定时间段处于非正常情况下时发出告警),无时段组概念;
5).命令(对不同监控对象所设定的告警阀值不同,即需将对其监控工具的插件做相应修改后应用与监控对象)。
4.监控状态
状态 正常 警告 严重 未知错误
代码 OK WARNING CRITICAL UNKOWN
颜色 绿色 黄色 红色 深黄色
5.图示

  Nagios系统提供插件NRPE,其通过周期性运行插件获得远端服务器各种状态信息并管理。
1)Nagios执行check_nrpe插件,同时确定检测服务对象;
2)通过SSL,check_nrpe连接远端机器上的NRPE daemon;
3)NRPE运行本地插件检测本地服务与状态(check_disk,check_etc~~~);
4)NRPE将检测结果传输给主机端的check_nrpe,再送到Nagios状态队列;
5)Nagios依次读取队列信息,显示结果。
6.软件版本

7.object:各种对象的配置文件所存放的目录
定义命令对象:commands.cfg

1 define command{
2 command_name check-host-alive
3 command_line $USER1$/check_ping -H $HOSTADDRESS$ -w 3000.0,80% -c 5000.0,100% -p 5
4 }

command_name:定义命令名称,可自定义,必须全局唯一;
command_line:定义真正执行的自定义模板,即将各种对被监控主机的特殊属性传递给模板,应用到被监控对象;
-H:指定被监控对象的主机名或IP,其主机地址通过宏变量$HOSTADDRESS$进行引用,该变量会根据上下文自动引用当前被监控主机的地址;
-w:warning的阈值(-w 3000.0,80% 意:延迟3000ms,丢包率达80%时告警);
-c:critical的阈值(-c 5000.0,100% 意:延迟5000ms,丢包率达100%处于critical状态);
-p:定义总共统计数据包数量。

定义上下文内容:contacts.cfg

1 define contact{
2 contact_name nagiosadmin 
3 use generic-contact 
4 alias Nagios Admin 
5 email kazihuo888@sina.com 
6 }

contact_name:定义联系人名字,必须全局唯一;
use:指定从哪个模板继承属性;
alias:对contact_name定义描述性名称;
email:接收邮件的地址。

定义时段:timeperiods.cfg

 1 define timeperiod{
 2 timeperiod_name 24x7
 3 alias 24 Hours A Day, 7 Days A Week
 4 sunday 00:00-24:00
 5 monday 00:00-24:00
 6 tuesday 00:00-24:00
 7 wednesday 00:00-24:00
 8 thursday 00:00-24:00
 9 friday 00:00-24:00
10 saturday 00:00-24:00
11 }

定义模板:templates.cfg

 1 define host{
 2 name generic-host 
 3 notifications_enabled 1 
 4 event_handler_enabled 1 
 5 flap_detection_enabled 1 
 6 process_perf_data 1 
 7 retain_status_information 1 
 8 retain_nonstatus_information 1 
 9 notification_period 24x7 
10 register 0 
11 }

notifications_enabled:是否发送通知;
event_handler_enabled:是否启动额外的处理器;
flap_detection_enabled:是否检测flap,即是否对状态频繁转换的服务或主机做特定检测;
process_perf_data:进程性能数据是否输出;
retain_status_information:是否保存状态信息;
retain_nonstatus_information:是否保存非状态信息;
notification_period:指定发送通知时间(使用timeperiods.cfg文件中时段);
register :定义为模板,即可被其他主机或服务引用。

 

 1 define host{
 2 name linux-server 
 3 use generic-host 
 4 check_period 24x7 
 5 check_interval 5 
 6 retry_interval 1 
 7 max_check_attempts 10 
 8 check_command check-host-alive 
 9 notification_period workhours 
10 notification_interval 120 
11 notification_options d,u,r 
12 contact_groups admins 
13 register 0 
14 }
define host

check_command:定义检测主机命令;
notification_period:定义发送通知时间(workhours,即为timeperiods.cfg中定义的workhours的时间段):
notification_interval:发送警告信息的时间间隔,单位为分钟;
notification_options:被监控对象达到某状态时发送警告信息(d:done 服务宕机;u:unknown 未知状态;r:recovery 已重新上线);

定义被监控主机与被监控主机上的被监控对象的配置文件:localhost.cfg

1 define host{
2 use linux-server 
3 host_name localhost
4 alias localhost
5 address 127.0.0.1
6 }

use:引用模板,并继承引用其模板的属性信息;
address:当前主机的IP地址。

 

1 define service{
2 use local-service 
3 host_name localhost
4 service_description PING
5 check_command check_ping!100.0,20%!500.0,60%
6 }
define service

host_name:指定被监控的服务运行在哪个主机上,因实现使用define host定义;

 

二、Nagios安装

实验前建议关闭selinux

Nagios安装:
1.解决依赖关系
#yum install -y gcc glibc glibc-common gd gd-devel php php-mysql mysql mysql-server mysql-devel openssl-devel
2.添加用户与组
#groupadd -r nagcmd
#useradd -G nagcmd -r -s /sbin/nologin nagios
#echo 'redhat'|passwd --stdin nagios &> /dev/null
#usermod -a -G nagcmd apache 添加apache用户到nagcmd组
3.编译安装
#tar -zxvf nagios-3.3.1.tar.gz
#cd nagios-3.3.1
#./configure --sysconfdir=/etc/nagios --with-command-group=nagcmd --enable-event-broker --prefix=/usr/local/nagios
--enable-event-broker 选项是为NDOUtils提供服务。
#make all
#make install
#make install-init 初始化脚本
#make install-commandmode 设置运行目录权限
#make install-config 配置文件
#make install-webconf web接口,其用于识别nagios程序的位置,而实际nagios网页目录在/usr/local/nagios/share
4.修改默认联系人
#vim /etc/nagios/objects/contacts.cfg
email nagios@localhost ==> xxx@xxx
5.创建web接口管理员
#htpasswd -c /etc/nagios/htpasswd.users nagiosadmin
#cat /etc/httpd/conf.d/nagios.conf 验证web认证用户身份时是否是读取/etc/nagios/htpasswd.users文件
6.启动httpd
#/etc/init.d/httpd start
7.安装插件
#tar -zvxf nagios-plugins-1.4.15.tar.gz
#cd nagios-plugins-1.4.15
#./configure --with-nagios-user=nagios --with-nagios-group=nagios
注:若需监控mysql服务器需在编译时指定其安装路径 --with-mysql=DIR
8.启动nagios
#chown -R nagios.nagcmd /etc/nagios
#chown -R apache.nagcmd /etc/httpd
#chown -R nagios.nagcmd /usr/local/nagios
#chkconfig --add nagios
#chkconfig nagios on
#/etc/init. nagios start

 

三、Linux监控实例

监控Linux服务器
监控端IP:192.168.11.128 被监控端:192.168.11.132
监控端:
1.启用check_nrpe插件
#vim /etc/nagios/objects/command.cfg
define command{
command_name check_nrpe
command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
}
2.编辑Nagios配置文件,添加Linux服务器模板文件
#vim /etc/nagios/nagios.cfg
# Definitions for monitoring a Linux machine
cfg_file=/usr/local/nagios/etc/objects/linux.cfg
3.安装nrpe
#cd /tmp
#tar -zxvf nrpe-2.15.tar.gz
#cd nrpe-2.15
#./configure
#make all
#make install-plugin
#ls /usr/local/nagios/libexec/check_nrpe

被监控端:
1.添加用户
#useradd nagios
#echo "000" |passwd --stdin nagios &> /dev/null
2.安装plugins
#cd /tmp
#tar -xzvf nagios-plugins-2.1.1.tar.gz
#./configure --with-nagios-user=nagios --with-nagios-group=nagios
#make
#make install
#chown -R nagios.nagios /usr/local/nagios/
#ll /usr/local/nagios/
3.安装nrpe
#cd /tmp
#tar -zxvf nrpe-2.15.tar.gz
#cd nrpe-2.15.tar.gz
#./configure
#make all
#make install-daemon
#make install-daemon-config
4.配置nrpe信息
#vim /usr/local/nagios/etc/nrpe.cfg
allowed_hosts=192.168.11.128 监控端主机IP
5.启动nrpe
#usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -d
或添加到开机启动
#vim /etc/rc.d/rc.local
/usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -d
#netstat -atunpl |grep nrpe
tcp 0 0 0.0.0.0:5666 0.0.0.0:* LISTEN 24735/nrpe

监控端:
1.测试
#cd /usr/local/nagios/libexec
#./check_nrpe -H 192.168.11.132
NRPE v2.15
2.配置linux.cfg文件
#cd /etc/nagios/objects
#cp -p windows.cfg linux.cfg

 1 define host{
 2 use linux-server
 3 host_name linux_server
 4 alias My linux Server
 5 address 192.168.79.132
 6 }
 7 
 8 define service{
 9 use generic-service
10 host_name linux_server
11 service_description check-swap
12 check_command check_nrpe!check_swap
13 }
14 define service{
15 use generic-service
16 host_name linux_server
17 service_description check-disk
18 check_command check_nrpe!check_sda1
19 }
linux.cfg

注:被监控端添加:
command[check_sda1]=/usr/local/nagios/libexec/check_disk -w 20% -c 10% -p /dev/sda1
command[check_swap]=/usr/local/nagios/libexec/check_swap -w 20% -c 10%
被监控端重启nrpe:
#kill -9 `ps aux | grep nrpe | grep -v grep | awk -F" " '{ print $2 }'`
#/usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -d
监控端重启nagios:
/etc/init.d/nagios restart
登录WEB接口:192.168.11.128/nagios检测服务。

-------------------------------------------------------------

作者: 罗穆瑞

转载请保留此段声明,且在文章页面明显位置给出原文链接,谢谢!

------------------------------------------------------------------------------

如果觉得这篇文章对你有小小的帮助的话,记得在右下角点个“推荐”哦,博主在此感谢!

------------------------------------------------------------------------------

目录
相关文章
|
1月前
|
弹性计算 缓存 应用服务中间件
阿里云服务器2核2G99元和2核4G199元实例规格性能及适用场景解析
2024年阿里云推出了两款云服务器,2核2G3M带宽40G ESSD Entry盘价格只要99元1年,2核4G5M带宽80G ESSD Entry盘价格只要199元1年,这两款云服务器的活动截止日期为2026年3月31日,活动期间新购、续费同价。那么这两款云服务器怎么样呢?可以用来做什么?本文将对这两款云服务器进行深度解析,包括配置介绍、实例规格、使用场景以及购买建议,以供选择参考。
阿里云服务器2核2G99元和2核4G199元实例规格性能及适用场景解析
|
23天前
|
存储 JSON 监控
Elasticsearch索引监控全面解析
Elasticsearch索引监控全面解析
15 0
|
1月前
|
缓存 负载均衡 应用服务中间件
深入解析Nginx配置文件
Nginx是一个高性能HTTP服务器和反向代理,其配置文件`nginx.conf`包含全局、事件、HTTP、Server和Location块。全局块设置如用户和工作进程数,事件块设定连接数,HTTP块涉及MIME类型、日志和包含其他配置。Server块定义虚拟主机,Location块处理URI匹配。Nginx常用于反向代理和负载均衡,如`proxy_pass`指令转发请求至后端服务器组。理解这些配置有助于服务器优化和测试。
29 0
|
3天前
|
存储 弹性计算 应用服务中间件
阿里云经济型e与通用算力型u1实例长效特价云服务器解析,性能与性价比的完美平衡
阿里云目前有两款深受个人和普通企业用户喜欢的特价云服务器,ECS 经济型e实例2核2G,3M固定带宽,40G ESSD Entry云盘,仅需99元1年。ECS u1实例2核4G,5M固定带宽,80G ESSD Entry盘,仅需199元1年。新老同享,活动期间新购、续费同价。很多用户关心这两款云服务器性能怎么样?本文将对阿里云2024年推出的特价云服务器进行深度解析,从性能、价格、适用场景等多个维度进行详细探讨,以供选择参考。
阿里云经济型e与通用算力型u1实例长效特价云服务器解析,性能与性价比的完美平衡
|
1月前
|
消息中间件 监控 Java
「布道师系列文章」宝兰德徐清康解析 Kafka 和 AutoMQ 的监控
本文由北京宝兰德公司解决方案总监徐清康撰写,探讨了Kafka和AutoMQ集群的监控。
179 2
「布道师系列文章」宝兰德徐清康解析 Kafka 和 AutoMQ 的监控
|
1月前
|
存储 机器学习/深度学习 编解码
深度解析阿里云服务器计算型c7与计算型c8y实例区别与选择参考
在阿里云提供的众多计算型云服务器实例规格中,计算型c7和计算型c8y实例是两款备受关注的云服务器规格。主要适用于网站应用、批量计算、视频编码等各种类型和规模的企业级应用,对于初次接触阿里云服务器的新手用户来说,可能并不是很清楚他们之间的区别,因此可能不知道怎么选择。本文将从实例的架构、处理器、存储与网络能力、使用场景、指标数据、收费标准以及实时活动价格等多个维度,对计算型c7和计算型c8y实例进行深度解析,以供参考和选择。
深度解析阿里云服务器计算型c7与计算型c8y实例区别与选择参考
|
27天前
|
数据采集 前端开发 JavaScript
python语言通过简单爬虫实例了解文本解析与读写
python|通过一个简单爬虫实例简单了解文本解析与读写
|
24天前
|
存储 数据安全/隐私保护 虚拟化
CloudStack Agent 配置文件解析与含义
CloudStack Agent 配置文件解析与含义
15 0
|
24天前
|
Unix Shell Perl
技术心得:实例解析shell子进程(subshell)
技术心得:实例解析shell子进程(subshell)
|
24天前
|
域名解析 网络协议 程序员
程序员必知:【转】adns解析库——域名解析实例(C++、linux)
程序员必知:【转】adns解析库——域名解析实例(C++、linux)
27 0

推荐镜像

更多