设为首页 收藏本站
查看: 2141|回复: 0

Nagios监控系统

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2016-11-21 11:33:44 | 显示全部楼层 |阅读模式
                                 第十章 Nagios监控系统
前言:Nagios是一款开源的免费网络监视工具,可以监控Windows、Linux和Unix的主机状态,交换机路由器等网络设备,在系统或服务状态异常时发出邮件或短信报警,第一时间通知网站运维人员。流量监控不是他的强项,流量监控建议使用cacti(可以绘制非常直观的图形)。
首先总结一下nagios主要可以监控以下方面:
1、主机是否宕机(通过ping命令,如果ping不通会认为主机属于宕机状态,但不影响所监控的其他服务)
2、服务器资源(cpu使用率、硬盘剩余空间等)
3、网络服务(smtp\pop3\http\)
4、监控网络设备(路由器、交换机等)
一、 需要了解的知识点
1、 nagios工作原理
Nagios本身不包括监控主机和服务的功能。所有的监控、监测功能都是通过各种插件来完成的。安装完nagios之后,在nagios主目录下的/libexex里面放有nagios自带的插件,如:check_disk是检查磁盘空间的插件,check_load是检查cpu负载的插件,每一个插件可以通过运行./check_xxx-h命令来检查其使用方法和功能。
1、 nagios的四种监控状态
Nagios可以识别四种状态返回信息。0(OK)表示状态正常(绿色显示),1(WARNING)表示出现警告(黄色),2(CRITICAL)表示出现非常严重错误(红色),3(UNKNOWN)表示未知错误(深黄色),nagios根据插件返回来的值来判断监控对象的状态,并通过web显示出来,以供管理员即时发现故障。
3、 nagios通过nrpe插件来远程管理服务的工作过程
1) Nagios执行安装在它里面的check_nrpe插件,并告诉check_nrpe去检测哪些服务。
2) 通过ssl,check_nrpe连接远端机器上的NRPE daemon。
3) NRPE运行本地的各种插件去检测本地服务器和状态(check_disk,...etc)。
4) NRPE把检测的结果传给主机端的check_nrpe,check_nrpe再把结果送到nagios状态队列中。
5) Nagios依次读取队列中的信息,再把结果显示出来。
二、 实验环境
1、 实验拓扑
wKioL1gxZtaQq15UAABpy4A1o98213.jpg
三、 实验步骤
1、 搭建nagios监控系统
1) 关闭防火墙
wKioL1gxXXTTs-DIAAAmYIFuPYE485.jpg
wKiom1gxXZTwk7NqAAAmYIFuPYE946.jpg
2) 创建nagios用户和用户组
wKiom1gxXUWgUctUAAAqyz5qKB0479.jpg
3) 编译安装nagios(需要提前配置yum)
安装支持包:
wKiom1gxXWWgMxHbAAAnxtVQmoQ553.jpg
配置:
wKiom1gxXejQHapiAAAxPOqUS80360.jpg
编译和安装:
wKioL1gxXgLyq6RoAAAtGJNo1_k322.jpg
注意:
A、安装install-webconf是为了生成配置文件,后面在/etc/httpd/conf/httpd.conf最后添加的信息就不用手工打了,可以到/etc/httpd/conf.d/nagios.conf文件中复制。
B、以上命令的解释:
make install      //安装主程序,CGI和HTML文件
make install-init  //在/etc/rc.d/init.d安装启动脚本
make install-commandmode  //配置目录权限
make install-config  //安装示例配置文件
make install-webconf  //安装nagios的web接口,会在/etc/httpd/conf.d目录中创建nagios.conf文件。
C、安装完成之后会在/usr/local/nagios目录下产生6个目录,下面分别解释一下。
bin:nagios执行程序所在的目录,nagios文件即为主程序。
etc:nagios配置文件目录,当make install-config完以后etc下面就会出现默认的配置文件。
sbin:nagios CGI文件所在目录,这里存放的是一些外部命令执行程序。
share:nagios网页文件目录,存放一些html文件。
var:nagios日志文件、pid等文件目录。
Libexec:系统默认插件的存储位置
4) 添加为系统服务器
wKiom1gxXknyvmA5AAAqb40AQ2c359.jpg
5) 安装nagios插件(监控功能通过插件完成)
wKiom1gxXmKgf0tDAAA4lkxHXWs574.jpg
编译并安装:
wKioL1gxXnLjEsb6AAAo_XxATl8713.jpg
6)安装nrpe(为了监控远程服务器)
wKiom1gxXoOx9CdZAAAw9lTnJNc146.jpg
7)在/etc/httpd/conf/httpd.conf文件最后添加授权,我们可以到/etc/httpd/conf.d/nagios.conf文件中复制
wKioL1gxXpiTJbITAAAnSKt0-6E756.jpg
使用:r导入即可
wKioL1gxXsOjUM2RAAFwHcygk_g918.jpg
wKiom1gxXvOza06OAABqH5hEPz4544.jpg
8)执行htpasswd命令添加一个访问nagios页面的授权用户
wKioL1gxXwmgJDvtAAAzWDL-51A035.jpg
用户名和密码都是nagiosadmin
9)启动nagios和httpd服务
wKioL1gxXymwNqICAAF3DRFRhE0297.jpg
10)在浏览器上访问nagios页面
wKiom1gxX12h5Zj2AAE83qsly7A808.jpg
wKiom1gxX3fjw7xSAADkAJUhJNw517.jpg
目前只能是打开网页,很多的监控选项不能看到,如果需要监控远程的服务器,还需要做很多配置,下面开始配置。
2、 配置nagios监控系统涉及知识点
1)nagios的配置文件:
Nagios.cfg:主配置文件,定义各种配置文件的名称和位置
Cgi.cfg:控制CGI的配置文件
Resource.cfg:资源文件,定义各种变量,以便于其他文件调用
Objects:其他配置文件存放目录,此目录下主要有:
Command.cfg:命令配置文件,定义各种命令格式,以备其他文件调用
contacts.cfg:联系人和组,发邮件等告警信息时可以调用
localhost.cfg:监控本机的配置文件
timeperiods.cfg:定义监控时间的配置文件,便于其他文件调用
Hostgroups.cfg:定义监控的主机(组),需手动创建。
2) 配置文件之间的关系
在nagios的配置过程中涉及的几个定义有主机、主机组、服务、服务组、联系人、联系人组、监控时间和监控命令等。从这些定义可以看出,nagios各个配置文件之间互为关联、彼此引用的。成功配置出一台nagios监控系统,必须要弄清楚每个配置文件之间依赖与被依赖的关系,最重要的有四点
a)定义监控那些主机,主机组,服务和服务组
b)定义这个监控要用什么命令实现
c)定义监控的时间段
d)定义主机或服务器出现问题时要通知的联系人和联系人祖
3) 配置nagios
为了能更清楚的说明问题,同时也为了维护方便,建议将nagios各个定义的对象创建独立的配置文件。
a)创建conf目录来定义host主机
b)创建hostgroups.cfg文件来定义主机组
c)用默认的contacts.cfg文件来定义联系人和联系人组
d)用默认的commands.cfg文件来定义命令
e)用默认的timeperiods.cfg来定义监控时间段
f)用默认的templetes.cfg文件作为资源引用文件
3、 配置nagios
1) 修改/usr/local/nagios/etc/nagios.cgf主配置文件
wKioL1gxX8Lh4_6LAAGAtK6ed5U082.jpg
2)修改/usr/local/nagios/etc/objects/commands.cfg
添加如下内容(定义check_nrpe监控命令)
wKiom1gxYNGwEpnlAAAnYmmNFM0068.jpg
wKioL1gxYKnxmj8yAACOSXLiMkE912.jpg
3)修改/usr/local/nagios/etc/objects/contacts.cfg(定义监控服务器联系人)
wKioL1gxYPmSiCK8AAE0SGiMfRM800.jpg
4) 新建/usr/local/nagios/etc/objects/hostgroups.cfg(定义主机组)
wKiom1gxYSHAEJdeAAApA_jztPI325.jpg
5) 在/usr/local/nagios/etc/conf下面新建192.168.1.20.cfg文件(用于监控192.168.1.20的主机存活,负载,进程)(所有内容需要手工输入)
wKiom1gxYTrDrJSbAAAzOzAV7Cg911.jpg
wKioL1gxYVDx6kstAABWaR2ta5g179.jpg
wKioL1gxYWSTJu9-AABcU0AsS8Q019.jpg
未完接下图:
wKiom1gxYXOQU6oVAAAzzprRGo0515.jpg
注意:命令解释:
define host{  
       use         linux-server  //定义使用的模板
       host_name   nagios  //被监控主机的名称,最好别带空格  
       alias         nagios  //别名        
       address      127.0.0.1  //被监控主机的IP地址        
       check_command    check-host-alive  
normal_check_interval   3    //正常检测间隔时间
retry_check_interval    2     //重试检测间隔时间
//监控的命令check-host-alive,这个命令来自commands.cfg,用来监控主机是否存活  
max_check_attempts    5 //检查失败后重试的次数  
check_period        24x7   //检查的时间段24x7,同样来自timeperiods.cfg中定义
notification_interval  10  //提醒的间隔,每隔10秒提醒一次
notification_period   24x7  //提醒的周期, 24x7,同样来自timeperiods.cfg中定义
contact_groups   admins  //联系人组,上面在contactgroups.cfg中定义的admins
notification_options            d,u,r  //指定什么情况下提醒
6) 重启nagios服务
wKiom1gxYZWgWQZXAAAxjla7sjM888.jpg
7) 访问网页查看状态
(注意:关闭selinux或者开例外)
wKioL1gxYb2yISg-AAEIp-tqxvk365.jpg
或者:
如果你开启了selinux 需要配置如下二步:
chcon -R -t httpd_sys_content_t /usr/local/nagios/sbin/
chcon -R -t httpd_sys_content_t /usr/local/nagios/share/
wKioL1gxYdjR5J2CAAKMjzUaEfc602.jpg
点击上图中的localhost,可以查看本机的状态
wKioL1gxYjmS8FutAAC_EvX1JzE501.jpg

4、 配置被控端192.168.1.20(mysql和web)
1) 安装nagios插件
本章的实验步骤比较多,安装软件太麻烦了,接下来我就使用脚本直接安装了,脚本内容如下:
wKiom1gxYxHRLy1hAAAyOq4_H3E438.jpg
wKioL1gxYzHh95DOAABTKi4yYZg352.jpg
然后执行脚本
2)安装完成之后,需要打开vim /usr/local/nagios/etc/nrpe.cfg
添加nagios服务器的地址
wKiom1gxY1Lx7FtcAAEBySBmH1Q618.jpg
3)启动nrpe
wKiom1gxY3DxdHWWAAAo8Gkwpog574.jpg
4) 在nagios服务器上测试nrpe运行是否正常.
/usr/local/nagios/libexec/check_nrpe -H 192.168.1.20
以同样的方法在http服务器安装即可,这里不再赘述
5) 在浏览器上访问
wKioL1gxY57hkFYfAAIeQEMi80Q733.jpg
wKioL1gxY7iSuvG5AAJ2dy8Bw6s794.jpg
5、 补充
也可在services.cfg文件中添加192.168.1.20.cgf文件中的参数
#vi  /usr/local/nagios/etc/objects/services.cfg
内容如下:
wKiom1gxZA7STzgNAAAmvQQjaDY242.jpg

wKiom1gxZCyC9UdEAAAavdS2NPw420.jpg
check_local_users!20!50  //监测远程主机当前的登录用户数量,如果大于20用户则报warning,如果大于50则报critical
check_local_disk!20%!10%!/   //如果可用空间低于20%会报Warning,如果可用空间低于10%则报Critical:
check_local_procs!250!400!RSZDT   //监测远程主机当前的进程总数,如果大于250进程则报warning,如果大于400进程则报critical,S(休眠)、R(运行)、Z(僵死)、D (不可中断)、T (停止)
check_load -w 5,4,3 -c 10,6,4这个命令的意义如下
当1分钟多于5个进程等待,5分钟多于4个,15分钟多于3个则为warning状态
当1分钟多于10个进程等待,5分钟多于6个,15分钟多于4个则为critical状态
服务组并不是必须的,这是配合nagios的监控页面的显示


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-303433-1-1.html 上篇帖子: nagios——docker容器监控 下篇帖子: nagios通过脚本对系统进行定制监控 监控系统
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表