Nagios 系统监控

Nagios 系统监控

Nagios 是一款免费的开源 IT 基础设施监控系统,功能强大,灵活性强,能有效监控 Windows、Linux、VMware 和 Unix 主机状态,交换机、路由器等网络设置等。一旦主机或服务状态出现异常时,会发出邮件或短信报警第一时间通知 IT 运营人员,在恢复后发出正常的邮件或短信。Nagios 结构简单,可维护性强,提供一个可选的基于浏览器的 Web 界面,方便管理人员查看系统的运行状态,网络状态、服务状态、日志信息,以及其它异常现象。

一、Nagios 结构简单说明

Nagios 结构上来说,可分为核心和插件两个部分。Nagios 的核心部分只提供了很少的监控功能,因此要搭建一个完善的 IT 监控管理系统,用户还需要在 Nagios 服务器安装相应的插件,插件可以从 Nagios 官方网站下载 http://www.nagios.org/,也可以根据实际要求自己编写所需的插件。

二、Nagios 可实现的功能特性

  1. 监控网络服务(SMTP、POP3、HTTP、FTP、PING等)
  2. 监控本机及远程主机资源(CPU负荷、磁盘使用率、进程等)
  3. 允许用户编写自己的插件来监控特定的服务,支持多种开发语言(Shell、Perl、Python、PHP、C等)
  4. 具备定义网络分层结构的能力
  5. 当服务或主机问题产生与解决时将告警发送给联系人(通过Email、短信、自定义方式)
  6. 可以支持并实现对主机的冗余监控
  7. 可用 web 界面用于查看当前的网络状态、通知和故障历史、日志文件等

三、Nagios 监控实现原理

Nagios 软件需安装在一台独立的服务器上运行,这台服务器称为监控中心,监控中心服务器可以采用 Linux 或 Unix 操作系统;每一台被监视的硬件主机或服务都运行一个与监控中心服务器进行通信的 Nagios 软件后台程序,也可以理解为 Agent 或插件均可。监控中心服务器读取配置文件中的指令与远程的守护程序进行通信,并且指示远程的守护程序进行必要的检查。虽然 Nagios 软件必须在 Linux 或 Unix 操作系统上运行,但是远程被监控的机器可以是任何能够与其进行通信的主机,根据远程主机返回的应答,Naigos 将依据配置进行回应;接着 Nagios 将通过本地的机器进行测试,如果检测返回值不正确,Nagios 将通过一种或多种方式报警。

四、监控中心服务器安装配置

1. 中心服务器基本环境

操作系统:CentOS 6.4 x86_64
IP 地址:192.168.0.8

2. 安装epel扩展源(nagios)

[[email protected] ~]# yum install epel-release -y

3. 安装nagios系列软件

[[email protected] ~]# yum install httpd nagios nagios-plugins-all nagios-plugins-nrpe

4. 设置修改后台用户密码

[[email protected] ~]# htpasswd -c /etc/nagios/passwd nagiosadmin

默认用户名:nagiosadmin 密码:nagiosadmin 通过此命令可以修改密码。

5. 配置文件修改

[[email protected] ~]# vim /etc/nagios/nagios.cfg    # 配置文件基本不用修改

检查配置文件是否有语法错误:

[[email protected] ~]# nagios -v /etc/nagios/nagios.cfg

6. 启动nagios相关服务

[[email protected] ~]# service nagios start
[[email protected] ~]# service httpd  start

7. 浏览器访问

http://192.168.0.8/nagios    # 注意最好要关闭iptables和selinux

通过浏览器访问上述的地址,输入后台用户名和密码。默认:nagiosadmin nagiosadmin

五、监控客户端基本网络服务

1. 说明

对于客户端类似ping、ssh、http等基础网络服务,只需要在服务器端执行简单网络探测的命令即可查看相应的服务是否正常运行,因此对于这些服务的监控在客户端不需要安装任何的插件及服务。

2. 客户端环境

操作系统:CentOS 6.4 x86_64
IP 地址:192.168.0.28

3. 添加基本服务

在服务器端添加配置文件:
vim /etc/nagios/conf.d/192.168.0.28.cfg    # 添加如下内容

define host{    # 定义主机:192.168.0.28
        use                     linux-server
        host_name               192.168.0.28
        alias                   0.28
        address                 192.168.0.28
}

define service{    # 添加 ping 监控服务
        use                     generic-service
        host_name               192.168.0.28
        service_description     check_ping
        check_command           check_ping!100.0,20%!200.0,50%
        max_check_attempts      5
        normal_check_interval   1
}

define service{    # 添加 ssh 监控服务
        use                     generic-service
        host_name               192.168.0.28
        service_description     check_ssh
        check_command           check_ssh
        max_check_attempts      5
        normal_check_interval   1
}

define service{    # 添加 http 监控服务
        use                     generic-service
        host_name               192.168.0.28
        service_description     check_http
        check_command           check_http
        max_check_attempts      5
        normal_check_interval   1
}

4. 重新加载nagios配置文件

service nagios reload

通过浏览器访问 http://192.168.0.8/nagios  通过 Current Status --> Service可以看到添加的主机 192.168.0.28 对应的3个服务的列表,刚开始都是 pending 状态,过一段时间 Status 会变成 OK 字样。

5. 配置文件解释说明

我们定义的配置文件中一共监控了三个 service: ssh ping http 这三个项目是使用本地的 nagios 工具去连接远程机器,及时没有安装任何的插件也是可以监测到的。

max_check_attempts 5:尝试检测到5次有问题才会告警,如果设置为1,一旦检测到问题立马告警
normal_check_interval 1:重新检测的时间间隔,单位是分钟,默认是 3 分钟。
notification_interval 60:出现异常后故障一直没有解决,nagios再次对使用者发出通知的时间。设置为0,仅通知一次。

六、监控客户端本地系统服务

其它的一些 service 诸如负载、磁盘使用等需要服务端通过 nrpe 去连接到远程主机获得信息,所以需要远程主机安装 nrpe 服务以及相应的插件程序。

1. 监控客户端

IP 地址:192.168.0.28

2. 客户端需要安装的软件

[[email protected] ~]# yum install epel-release -y        # 安装epel源
[[email protected] ~]# yum install nrpe -y                # 安装nrpe服务软件
[[email protected] ~]# yum install nagios-plugins-all -y  # 安装所有nagios插件

3. 配置客户端nrpe服务能被监控

[[email protected] ~]# vim /etc/nagios/nrpe.cfg    # 修改如下内容
allowed_hosts=127.0.0.1,192.168.0.8          # 添加192.168.0.8来监控
dont_blame_nrpe=1                            # 修改0为1,设置可以传递参数command[check_hda1]=/usr/lib64/nagios/plugins/check_disk -w 20% -c 10% -p /dev/sda1

4. 客户端启动nrpe服务

[[email protected] ~]# service nrpe start
Starting nrpe:                                             [确定]

5. 服务器端配置来监控客户端

[[email protected] ~]# vim /etc/nagios/objects/commands.cfg
在最后面增加如下:
define command{
         command_name    check_nrpe
         command_line    $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
}

[[email protected] ~]# vim /etc/nagios/conf.d/192.168.0.28.cfg
增加如下内容:

define service{    # 添加监控负载
        use     generic-service
        host_name       192.168.0.28
        service_description     check_load
        check_command           check_nrpe!check_load
        max_check_attempts 5
        normal_check_interval 1
}
define service{    # 添加监控sda1磁盘
        use     generic-service
        host_name       192.168.0.28
        service_description     check_disk_hda1
        check_command           check_nrpe!check_hda1
        max_check_attempts 5
        normal_check_interval 1
}

6. 重新加载服务器配置

[[email protected] ~]# service nagios reload

通过浏览器访问 http://192.168.0.8/nagios 正常显示。

七、Nagios 配置图形显示

Nagios 对服务或主机监控的是一个瞬时状态,有时候系统管理员需要了解主机在一段时间内的性能及服务的响应状态,并且形成图表,这就需要通过查看日志数据来分析。但是这种方式不仅烦琐,而且抽象。为了能更直观的查看主机运行状态,这里采用 PNP 来实现此功能。PNP 是一个小巧的开源软件包,它是基于 PHP 和 Perl 脚本编写,PNP 可以利用 rrdtoul 工具将 Nagios 采集的数据绘制成图表,然后显示主机或者服务在一段时间内运行的状况。注:以下操作都是针对中心服务器的。

1. 安装pnp4nagios软件

[[email protected] ~]# yum install -y pnp4nagios rrdtool

2. 修改主配置文件

[[email protected] ~]# vim /etc/nagios/nagios.cfg
修改如下配置:
process_performance_data=1
host_perfdata_command=process-host-perfdata
service_perfdata_command=process-service-perfdata
enable_environment_macros=1

3. 修改command.cfg配置文件

[[email protected] ~]# vim /etc/nagios/objects/commands.cfg
注释掉原有对process-host-perfdata和process-service-perfdata重新定义

define command {
       command_name    process-service-perfdata
       command_line    /usr/bin/perl /usr/libexec/pnp4nagios/process_perfdata.pl
}  

define command {
       command_name    process-host-perfdata
       command_line    /usr/bin/perl /usr/libexec/pnp4nagios/process_perfdata.pl -d HOSTPERFDATA
}

4. 修改templates.cfg配置文件

vim /etc/nagios/objects/templates.cfg
define host {
        name       hosts-pnp
        register   0
        action_url /pnp4nagios/index.php/graph?host=$HOSTNAME$&srv=_HOST_
        process_perf_data               1
}
define service {
        name       srv-pnp
        register   0
        action_url /pnp4nagios/index.php/graph?host=$HOSTNAME$&srv=$SERVICEDESC$
        process_perf_data               1
}

5. 修改host和service的配置

[[email protected] ~]# vim /etc/nagios/conf.d/192.168.0.28.cfg

所有主机使用的模板后边添加hosts-pnp:

define host{
        use                     linux-server,hosts-pnp

所有服务使用的模板后边添加srv-pnp:

define service{
         use     generic-service,srv-pnp
         host_name       192.168.0.48
         service_description     check_disk_hda1
         check_command           check_nrpe!check_hda1
}

6. 重启服务,再次访问

[[email protected] conf.d]# service nagios restart
[[email protected] conf.d]# service httpd  restart
[[email protected]vip conf.d]# service npcd   start

浏览器访问:http://192.168.0.8/nagios 点击 Current Status -> service 即可显示出"曲线"图标,等待一段时间,点击图标即可看到数据。

八、配置邮件告警

1. 增加联系人组

vim /etc/nagios/objects/contacts.cfg

增加如下内容:

define contact{
        contact_name               123
        use                        generic-contact
        alias                      aming
        email                      [email protected]
        }

define contact{
        contact_name               456
        use                        generic-contact
        alias                      aaa
        email                      [email protected]
        }

define contactgroup{
        contactgroup_name          common
        alias                      common
        members                    123,456
        }

2. 在需要告警的相关服务中添加告警联系人

然后在要需要告警的服务里面加上contactgroup ,这里示例中以 http 服务为例:

define service{
        use                     generic-service,srv-pnp
        host_name               192.168.0.48
        service_description     check_http
        check_command           check_http
        max_check_attempts      5
        normal_check_interval   1
        contact_groups          common    # 添加告警联系人
}

重启服务,ok。

时间: 2024-08-26 12:48:02

Nagios 系统监控的相关文章

《Nagios系统监控实践》PDF

下载链接:http://pan.baidu.com/s/1gdngLDh 解压密码:[email protected]#0623

shell编程之【nagios自定义监控系统磁盘脚本】

之前写了一篇文章主要介绍nagios的搭建使用 http://msiyuetian.blog.51cto.com/8637744/1704346 下面这篇文章主要介绍nagios自定义监控系统磁盘的脚本实现. Nagios可以识别4种状态返回信息,即 0 表示状态正常(OK).1 表示出现警告(WARNING).2 表示出现非常严重的错误(CRITICAL),3 表示未知错误(UNKNOWN).Nagios根据插件返回来的值,来判断监控对象的状态,并通过web显示出来.我们就可以利用上面这个特性

Linux、windows系统监控平台Nagios的安装与部分错误整理

Nagios作为一款强大的跨平台监控软件,其专业性已经得到了广大系统运维人员的一致认可,友好的Web界面与数量庞大的扩展插件也为其增色不少,但其配置略微复杂,有必要予以记录: 网上有前辈已经整理了一份超级详细的配置流程,在此: Linux下Nagios的安装与配置 其中已经罗列了Linux和Windows服务器加装Nagios软件的详细步骤,只不过其中有几点需要注意: 1.在Nagios配置文件中注释是以英文分号 ';' 来表示的,不要直接复制教程中的 '#': 2.在添加和创建配置文件时,注意

Security基础(四):OpenSSL及证书服务常用系统监控命令、搭建nagios监控服务器、配置文件及插件使用、监控远程主机的公有数据、监控远程主机的私有数据

一.OpenSSL及证书服务常用系统监控命令 目标: 本案例要求练习常用的系统监控命令完成以下任务: 使用vmstat命令监控内存及磁盘I/O信息 使用iostat命令监控CPU处理器及磁盘的I/O信息 使用sar命令监控系统最近的CPU/内存等活动 步骤: 步骤一:使用vmstat命令监控内存及磁盘I/O信息 1)报告内存.交换分区.CPU等活动信息,每2秒更新一次数据 [[email protected] ~]# vmstat 2    procs -----------memory----

关于nagios系统下使用shell脚本自定义监控插件的编写以及没有实时监控图的问题

关于nagios系统下shell自定义监控插件的编写.脚本规范以及没有实时监控图的问题的解决办法 在自已编写监控插件之前我们首先需要对nagios监控原理有一定的了解 Nagios的功能是监控服务和主机,但是他自身并不包括这部分功能,所有的监控.检测功能都是通过各种插件来完成的. 启动Nagios后,它会周期性的自动调用插件去检测服务器状态,同时Nagios会维持一个队列,所有插件返回来的状态信息都进入队列, Nagios每次都从队首开始读取信息,并进行处理后,把状态结果通过web显示出来. N

搭建基于Nagios的监控系统——之监控远程Windows服务器

分享了如何监控Linux服务器,我们来看看使用Nagios如何监控Windows服务器. 第一部分:配置被监控的Windows服务器   首先,访问 http://sourceforge.net/projects/nscplus/,下载符合自己服务器的 NSClinent++.我下载下来以后的文件名为:NSCP-0.4.1.73-Win32.msi 双击安装程序,选择 Complete Install,并且选择生成实例配置文件,其他的就一路下一步就OK了. 其次,在 NSClient++ 的安装

实战Nagios网络监控(1)——监控本机运行状态和Mysq主机

Nagios是一个监视系统运行状态和网络信息的监视系统.Nagios能监视所指定的本地或远程主机以及服务,同时提供异常通知功能等. Nagios可运行在Linux/Unix平台之上,同时提供一个可选的基于浏览器的WEB界面以方便系统管理人员查看网络状态,各种系统问题,以及日志等等 实验环境: 物理主机 redhat7.0 内核版本 3.10.0-123.el7.x86_64 虚拟机 redhat6.5 内核版本 2.6.32-431.el6.x86_64 服务器端: server1.exampl

经典难过死(nagios)监控详解及其配置 附件

·nagios特征 Nagios 是一款用于系统和网络监控的应用程序.它可以在你设定的条件下对主 机和服务进行监控,在状态变差和变好的时候给出告警信息. 1.网络服务监控(SMTP.POP3.HTTP.NNTP.ICMP.SNMP.FTP.SSH) 2.主机资源监控(CPU load.disk usage.system logs),也包括Windows主机(使用NSClient++ plugin) 3.可以指定自己编写的Plugin通过网络收集数据来监控任何情况(温度.警告--) 4.可以通过配

【linux之进程管理,系统监控】

一.进程管理 前台进程:一般是指占据着标准输入和/或标准输出的进程后台进程:不占据默认开启的进程都是前台进程ctrl+C 中断ctrl+z 从前台转入后台bg 后台进程编号 让其在后台运行ls -R / & 让其在后台进行 使一个进程在后台进行1.ctrl+z将前台进程调入后台,默认进行到后台后处于停止状态 若想要在后台运行该后台进程,使用 bg # (#表示后台进程编号),此时ctrl+c不管用2.在开启进程的时候,使用&符号缀在命令之后,也是在后台运行该进程 使用fg命令可以将已被调入