资讯专栏INFORMATION COLUMN

网络监控工具nagios介绍

IT那活儿 / 1851人阅读
网络监控工具nagios介绍
点击上方“IT那活儿”公众号,关注后了解更多内容,不管IT什么活儿,干就完了!!!

简 介

Nagios是一款开源免费的网路监视工具,可以监控的设备:Windows,Linux,Unix,Router,Switch,具有报警功能,是一个网络监控系统。
它可以监视你指定的主机和服务,并在那些设备“变坏”和“变好”的时候通知管理员。在系统或服务状态异常时发出邮件或短信报警第一时间通知网站运维人员,在状态恢复后发出正常的邮件或短信通知。

Nagios Core 原先设计在Linux下运行,当然,它在其他的Unix系统下应该也能进行工作。


组件和插件

2.1 说明
针对于Nagios,我们需要配合许多组件和插件来工作.Nagios提供了许多插件,利用这些插件可以方便的监控很多服务状态。
安装完成后,在nagios主目录下的/libexec里放有nagios自带的可以使用的所有插件,如:check_disk是检查磁盘空间的插件,check_load是检查CPU负载的,等等。每一个插件可以通过运行./check_xxx –h 来查看其使用方法和功能。也可以去网上下载。
2.2 下载网站
https://www.nagios.org/downloads/nagios-core-frontends/      //Nagios界面很不美观,可以更换主题;
https://www.nagios.org/downloads/nagios-core-addons/     //Nagios插件;
https://exchange.nagios.org     //各类拓展组件官方网站,包括脚本;

https://exchange.nagios.org/directory/Addons    //监控插件或脚本。


优 点

  • 1)监控网路服务状态(HTTPD,FTP,SSH,MySql……)。
  • 2)监控主机资源(处理器符合,硬盘利用率……)。
  • 3)拓展,根据自己的需求实现拓展检测功能(插件开发)。
  • 4)自动日志回滚。
  • 5)具备定义网络分层结构的能力,用“parent”主机定义来表达网络主机间的关系。
  • 6)警告,基于状态的警告:OK,Warning(警告),critical(关键),unknown(未知)。
  • 7)可以支持并实现对主机的冗余监控。
  • 8)WEB界面。


运行原理

4.1 原理
Nagios的功能是监控服务和主机,但是他自身并不包括这部分功能,所有的监控、检测功能都是通过各种插件来完成的。
启动Nagios后,它会周期性的自动调用插件去检测服务器状态,同时Nagios会维持一个队列,所有插件返回来的状态信息都进入队列,Nagios每次都从队首开始读取信息,并进行处理后,把状态结果通过web显示出来。在大规模生产环境中,如果需要浏览历史数据,需要结合数据库。

4.2 获取数据的方式

  • 主动发送
  • NRPE插件
  • SNMP
  • NSClient++
4.3 通过NRPE来远端管理服务
Nagios 执行安装在它里面的check_nrpe 插件,并告诉check_nrpe 去检测哪些服务。
通过SSL,check_nrpe 连接远端机子上的NRPE daemon。
NRPE 运行本地的各种插件去检测本地的服务和状态(check_disk,..etc)。
最后,NRPE 把检测的结果传给主机端的check_nrpe,check_nrpe 再把结果送到Nagios状态队列中。

Nagios 依次读取队列中的信息,再把结果显示出来。


所需软件

  • 1)lamp环境(可以不需要mysql);
  • 2)nagios-3.5.1.tar.gz #Nagios核心文件,Nagios服务文件,不建议用最新,很多插件没做好;
  • 3)nagios-plugins-2.1.1.tar.gz #Nagios 插件,用于存放脚本和命令;
  • 4)NSCP-0.5.0 #也就是Nsclient++,用来监控Windows,分为64为何32位版本;
  • 5)nrpe-2.15.tar.gz #代理服务,用于监控非Nagios服务器的服务器本地私有信息代理;
  • 6)vautour_style.zip #主题包;


部署nagios

6.1 准备环境

[root@Bob10 ~]# yum install -y gcc glibc glibc-common gd gd-devel libpng libmng libjpegzlib #安装依赖
[root@Bob10 ~]# yum install -y httpd mysql-server mysql php php-mysql mysql-devel #安装lamp环境,在使用check_mysql插件时需要使用mysql客户端和mysql-devel
[root@Bob10 ~]# service httpd restart
[root@Bob10 ~]# chkconfig httpd on
[root@Bob10 ~]# service mysqld restart
[root@Bob10 ~]# chkconfig mysqld on
[root@Bob10 ~]# ll /root/nagios/ #准备软件包
total 9204
-rw-r--r-- 1 root root 1763584 May 31  2016 nagios-3.5.1.tar.gz
-rw-r--r-- 1 root root 2677352 May 31  2016 nagios-plugins-2.1.1.tar.gz
-rw-r--r-- 1 root root 419695 May 31  2016 nrpe-2.15.tar.gz
-rw-r--r-- 1 root root 2013184 Oct 30  2016 NSClient.-0.3.3-Win32.msi
-rw-r--r-- 1 root root 2541568 Oct 30  2016 NSClient.-0.3.3-x64.msi

6.2 安装nagios

1)配置用户
[root@Bob10 ~]# useradd nagios
[root@Bob10 ~]# groupadd nagcmd
[root@Bob10 ~]# usermod -G nagcmd nagios
[root@Bob10 ~]# usermod -G nagcmd apache
2)安装
[root@Bob10 ~]# tar -xf /root/nagios/nagios-3.5.1.tar.gz -C /usr/local/src/
[root@Bob10 ~]# cd /usr/local/src/nagios/
[root@Bob10 nagios]# ./configure --with-command-group=nagcmd #指定用户组
[root@Bob10 nagios]# make install #安装生成/usr/local/nagios/,其中/usr/local/nagios/share即nagiosWEB访问界面的站点目录
[root@Bob10 nagios]# make install-init #安装生成/etc/rc.d/init.d/nagios 启动脚本
[root@Bob10 nagios]# make install-commandmode #设定相应nagios工作目录的权限
[root@Bob10 nagios]# make install-config #安装生成/usr/local/nagios/etc下的nagios相关配置文件
[root@Bob10 nagios]# make install-webconf #安装Nagios的WEB配置文件到Apache的conf.d目录下
[root@Bob10 nagios]# make install-exfoliation
[root@Bob10 nagios]# make install-classicui
3)查看
[root@Bob10 nagios]# ll /usr/local/nagios/ # 查看安装路径
total 24
drwxrwxr-x 2 nagios nagios 4096 Jun 10 16:55 bin #Nagios执行程序所在目录
drwxrwxr-x 3 nagios nagios 4096 Jun 10 16:56 etc #nagios配置文件所在目录,初始安装只有几个*.cfg文件
drwxrwxr-x 2 nagios nagios 4096 Jun 10 16:55 libexec #监控所用命令,需要安装了nagios-plugins插件了才会有,检测命令,不装是空的
drwxrwxr-x 2 nagios nagios 4096 Jun 10 16:55 sbin #Nagios的Cgi文件所在目录,外部命令所需要的文件存放目录
drwxrwxr-x 10 nagios nagios 4096 Jun 10 16:55 share #访问界面目录
drwxrwxr-x 5 nagios nagios 4096 Jun 10 17:01 var #日志文件,pid文件等
[root@Bob10 ~]# ll /etc/init.d/nagios
-rwxr-xr-x 1 root root 5310 Jun 10 16:56 /etc/init.d/nagios #其实就是在/etc/rc.d/init.d/nagios.在make install-config的时候,生成了Nagios的相关配置文件
[root@Bob10 ~]# ll /usr/local/nagios/etc/ #查看配置文件,包括以后安装了plugin等软件后,配置文件也会放入此目录
total 64
-rw-rw-r-- 1 nagios nagios 11669 Jun 10 16:56 cgi.cfg
-rw-rw-r-- 1 nagios nagios 44710 Jun 10 16:56 nagios.cfg
drwxrwxr-x 2 nagios nagios 4096 Jun 10 16:56 objects
-rw-rw---- 1 nagios nagios 1340 Jun 10 16:56 resource.cfg #定义了很多资源变量的调用.在make install-webconf的时候,已经把web-conf的相配置文件放入了/etc/httpd/conf.d/下面
[root@Bob10 ~]# vim /etc/httpd/conf.d/nagios.conf
26 Alias /nagios "/usr/local/nagios/share" #配置了一个别名,直接引用了/usr/local/nagios/share目录
28 "/usr/local/nagios/share">
29 # SSLRequireSSL
30    Options None
31    AllowOverride None
32    Order allow,deny
33    Allow from all
34 # Order deny,allow
35 # Deny from all
36 # Allow from 127.0.0.1
37    AuthName "Nagios Access"
38    AuthType Basic
39    AuthUserFile /usr/local/nagios/etc/htpasswd.users #网页用户名密码路径,在打开http://192.168.1.63/nagios是需要的用户名密码路径
40    Require valid-user
41 

[root@Bob10 ~]# vim /usr/local/nagios/etc/nagios.cfg #看一下配置文件
log_file=/var/log/nagios/nagios.log #日志位置
cfg_file=/etc/nagios/objects/commands.cfg #这个文件定义了很多命令
cfg_file=/etc/nagios/objects/contacts.cfg #定义联系人,怎么联系
cfg_file=/etc/nagios/objects/timeperiods.cfg #定义了时间段
cfg_file=/etc/nagios/objects/templates.cfg #模板(联系人,主机,时间)
cfg_file=/etc/nagios/objects/localhost.cfg #监控本机相关配置文件
#cfg_file=/etc/nagios/objects/windows.cfg #windows,默认不监控
#cfg_file=/etc/nagios/objects/switch.cfg #交换机路由器监控,默认不监控
#cfg_file=/etc/nagios/objects/printer.cfg #打印机监控,默认不监控
#cfg_dir=/etc/nagios/servers #定义了服务合集(多个使用)
#cfg_dir=/etc/nagios/printers #定义了打印机合集(多个使用)
#cfg_dir=/etc/nagios/switches #定义了交换合集(多个使用)
#cfg_dir=/etc/nagios/routers #定义了路由合集(多个使用)
resource_file=/etc/nagios/private/resource.cfg 资源变量配置文件,包括$USER1$变量(一个路径)等
status_update_interval=10                                   #状态更新时间,单位s
log_rotation_method=d #日志滚动,默认天
service_check_timeout=60                                    #服务检查超时时间
host_check_timeout=30                                       #主机检查超时时间
[root@Bob10 ~]# vim /usr/local/nagios/etc/cgi.cfg #此配置文件的优先级比nagios.cfg高
15 main_config_file=/usr/local/nagios/etc/nagios.cfg #主配置文件
24 physical_html_path=/usr/local/nagios/share #物理路径
36 url_html_path=/nagios #在URL后面加上/nagios才能访问
78 use_authentication=1 #使用认证
88 use_ssl_authentication=0 #不使用ssl
119 authorized_for_system_information=nagiosadmin #认证用户
4)配置
[root@Bob10 ~]# htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin #创建用户名密码文件,nagios 默认使用nagiosadmin来管理,如果使用其他用户名,对应的配置文件也要修改
[root@Bob10 ~]# /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg #在nagios的目录下,bin目录下有一个nagios命令,这个命令可以帮助我们对配置文件的检查工作以及指定相关配置文件.-v=--verify-config 验证配置文件是否有误.
[root@Bob10 ~]# service httpd restart #重启httpd
[root@Bob10 ~]# /usr/local/nagios/bin/nagios -d /usr/local/nagios/etc/nagios.cfg #指定配置文件,以守护进程的方式启动
5)测试
[root@Bob10 ~]# elinks 192.168.1.63/nagios #但是现在还没有做任何深入配置,所以现在只是可以登录而已!

6.3 安装Nagios-plugins插件

1)介绍
Nagios-plugins含有丰富的检测命令插件,安装完成之后放在了/usr/local/Nagios/libexec下面。
2)安装
[root@Bob10 ~]# tar -xf /root/nagios/nagios-plugins-2.1.1.tar.gz -C /usr/local/src/
[root@Bob10 ~]# cd /usr/local/src/nagios-plugins-2.1.1/
[root@Bob10 nagios-plugins-2.1.1]# ./configure --with-nagios-user=nagios --with-nagios-group=nagcmd
[root@Bob10 nagios-plugins-2.1.1]# make
[root@Bob10 nagios-plugins-2.1.1]# make install
[root@Bob10 ~]# cd /usr/local/nagios/libexec/ #刚才安装的插件都在这个目录下
[root@Bob10 libexec]# ./check_mysql -h #查看插件的使用方法
[root@Bob10 ~]# /etc/init.d/nagios restart
[root@Bob10 ~]# elinks 192.168.1.63/nagios #浏览器测试:登陆之后,点击hosts,可以看到,默认监控的是本机,说明环境没有什么问题

nagios监控本机服务

监控本机nfs状态:
1)搭建nfs服务
[root@Bob10 ~]# vim /etc/exports #创建一个共享
1 /tmp *(rw)
[root@Bob10 ~]# /etc/init.d/nfs restart #启动服务
[root@Bob10 ~]# showmount -e 192.168.1.63 #检测NFS目前是否正常
2)配置监控
[root@Bob10 ~]# cp -ar /usr/local/nagios/etc/objects/localhost.cfg /usr/local/nagios/etc/objects/localhost.cfg.bak #备份配置文件
[root@Bob10 ~]# vim /usr/local/nagios/etc/objects/localhost.cfg #修改配置文件
158 define service{ #添加监控的服务
159         use local-service
160         host_name localhost
161         service_description NFS
162         check_command check_tcp!2049 #在使用check命令之前,要确保下/usr/local/nagios/libexec/ 目录下有没有你需要的check命令,如果有,直接调用,如果没有,检测端口来代替,检测格式:check_tcp!端口号
163         }
[root@Bob10 ~]# /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg #检查配置文件是否有误
[root@Bob10 ~]# service httpd restart
[root@Bob10 ~]# service nagios restart
[root@Bob10 ~]# elinks 192.168.1.63/nagios #测试,浏览器的service里面多了一个nfs服务
[root@Bob10 ~]# service nfs stop #停止nfs服务。
[root@Bob10 ~]# elinks 192.168.1.63/nagios #我们可以再去网页看状态,般没回立马又显示出来状态,需要一段时间,最好最快的方法就是手动强制刷新,否则你需要等待,强制刷新,点击NFS后有一个Re-schedule the next check of this service,强制刷新。


nagios监控远程主机服务

8.1 步骤
定义主机,定义服务,定义命令。
8.2 监控远程mysql主机
1)远程主机上部署mysql
[root@Bob11 ~]# yum install -y mysql-server mysql
[root@Bob11 ~]# service mysqld restart
mysql> grant select on *.* to nagios@192.168.XX.XX; #创建授权用户
2)配置nagios服务器
[root@Bob10 ~]# vim /usr/local/nagios/etc/nagios.cfg #修改主配置文件
35 # Definitions for monitoring the local (Linux) host
36 cfg_file=/usr/local/nagios/etc/objects/localhost.cfg
37 cfg_file=/usr/local/nagios/etc/objects/hosts.cfg #添加此行
38 cfg_file=/usr/local/nagios/etc/objects/service.cfg #添加此行
[root@Bob10 ~]# vim /usr/local/nagios/etc/objects/hosts.cfg #定义主机
1 define host{
2         use linux-server
3         host_name Bob11
4         address 192.168.xx.11
5 }
[root@Bob10 ~]# vim /usr/local/nagios/etc/objects/service.cfg #定义服务
1 define service{
2         use local-service
3         host_name Bob11
4         service_description MySqlSev
5         check_command check_mysql
6 }
[root@Bob10 ~]# vim /usr/local/nagios/etc/objects/commands.cfg #定义命令
241 # check_mysql command definition
242 define command{
243         command_name check_mysql
244         command_line $USER1$/check_mysql -H $HOSTADDRESS$ -u nagios # $USER1$这个变量是在/usr/local/nagios/etc/cgi.cfg中定义的.$USER1$对应的就是/usr/local/nagios/libexec,
245 }
[root@Bob10 ~]# /usr/local/nagios/libexec/check_mysql -H 192.168.xx.11 -u nagios #检查check_command命令是否正确
Uptime: 1848  Threads: 1  Questions: 6  Slow queries: 0  Opens: 15  Flush tables: 1  Open tables: 8  Queries per second avg: 0.3|Connections=4c;;; Open_files=16;;; Open_tables=8;;; Qcache_free_memory=0;;; Qcache_hits=0c;;; Qcache_inserts=0c;;; Qcache_lowmem_prunes=0c;;; Qcache_not_cached=0c;;; Qcache_queries_in_cache=0;;; Queries=6c;;; Questions=6c;;; Table_locks_waited=0c;;; Threads_connected=1;;; Threads_running=1;;; Uptime=1848c;;;
[root@Bob10 ~]# service httpd restart
[root@Bob10 ~]# service nagios restart
3)注意
所有的check_command字段中的所使用的命令,必须在command.cfg中定义好才能使用,而command.cfg中的command_line中使用的命令,必须在/usr/local/Nagios/libexec/目录下存在,安装plugins会生成.手动检测command.cfg的命令有效性。
服务器要安装了mysql客户端软件,然后再重新编译安装下plugins 才会生成check_mysql。



本文作者李帅帅(上海新炬中北团队)

本文来源:“IT那活儿”公众号

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/129132.html

相关文章

  • nagios-herald 介绍

    摘要:文章地址的顺带标记下其他两个自动化部署的工具的地址的地址 注:该篇文章由 Ryan Frantz 编写,详情请阅读原文 这篇文章主要介绍了 nagios-herald 这个工具以及报警的设计,该工具的作用是结合上下文报警,原文有时间翻译,先标记下,主要由下面两幅图做下对比,你们感受下 和上下文不关联的监控设计 disk-space-no-context showImg...

    stdying 评论0 收藏0
  • Nagios披露11个安全漏洞 严重可致黑客接管IT基础设施

    摘要:网络管理系统需要广泛的信任和对网络组件的访问,以便正确监控网络行为和性能是否出现故障和效率低下,称。今年月早些时候,披露了网络监控应用程序中的个安全漏洞,这些漏洞可能被攻击者滥用,在没有任何运营商干预的情况下劫持基础设施。 .markdown-body{word-break:break-word;line-height:1.75;font-weight:400;font-size:15px...

    pkwenda 评论0 收藏0
  • Centos-7下Nagios的安装及配置(完整版)

    简介 Nagios 是一款自动化运维工具,可以协助运维人员监控服务器的运行状况,并且拥有报警功能。本文章将介绍其安装方法和详细的配置方法。 nagios 监控服务应用指南本地资源:负载,CPU,磁盘,内存。IO,RAID,温度,passwd文件变化,本地所有文件指纹识别网络服务:端口,URL,丢包,进程,网络流量其他设备:交换机,打印机,windows等。业务数据:用户登录失败次数,用户登录网站...

    wawor4827 评论0 收藏0
  • 如何把关联性的告警智能添加到 Nagios 上?(2)

    摘要:告警关联唯一使监控和报警都步入正轨的好办法,就是通过告警关联。企业如果适应了告警关联,信息告警的图表盘上确实能减少很多压力。 上节回顾 对于许多 IT 和运维团队来说,Nagios 既是一个福音也是一个诅咒。一方面,Naigos 在 IT 应用的工作领域中,给予了你可以实时查看告警数据的可能性;但是另一方面,Nagios 也能够生成超级多的告警,对于任何一个运维人员或是运维团队来说都是...

    娣辩孩 评论0 收藏0
  • 为什么Nagios会那么吵?你又能做些什么呢?(1)

    摘要:自动化监控这里我需要问两个重要的问题为什么洪水警戒会一直发生并且为什么会愈演愈烈问题的根源其实是基于告警监控的积极一面自动化。所以,我们对配置好阈值,并把这项艰巨的工作委派给它。开发人员通过吸收客户的反馈指导,会选择短平快的项目。 如果你受困于 Nagios 的告警洪潮中不能自拔,那么这两篇连载博客就是为你而生的。让我们来详细的阐述下这个问题! showImg(https://segm...

    kaka 评论0 收藏0

发表评论

0条评论

IT那活儿

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<