监控三剑客之Nagios

Nagios是一个流行的电脑系统和网络监控程序,它检测主机和服务,当异常发生和解除时能提醒用户。它是基于GPLv2开发的开源软件,可免费获得及使用。

nagios工作原理

nagios的功能是监控服务和主机,但是其自身并不包括这些功能,所有的监控、检测功能都是通过各种插件来完成的。启动nagios后,它会周期性的自动调用插件去检测服务器状态,同时nagios会维持一个队列,所有插件返回的状态信息都进入队列,nagios每次都从队首读取信息,进行处理后,再把状态结果通过web显示出来。这就是被动模式,经常用于监控主机的系统资源,比如系统负载、磁盘使用率、内存使用率、网络状态、系统进程数等等。另一种是主动模式,主要是nagios服务器主动去获取数据,常用于探测URL的监控和服务的状态监控。相比于主动模式中服务器主动去被监控机上轮询获取监控数据的方式,这样做的一个很大优势就是将除去数据处理的其他工作都放在了被监控机上面(包括数据的传输),就避免了被监控机数量大时一次轮询时间过长而导致监控反应延迟,这也是被动模式能承担更大监控量的关键。nagios提供了许多插件,利用这些插件可以方便的监控很多服务状态。安装完成后,在nagios主目录下的/libxec里放有nagios自带的可以使用的所有插件。

nagios主要功能

  • 网络服务监控(SMTP、POP3、HTTP、NNTP、ICMP、SNMP、FTP、SSH)
  • 主机资源监控(CPU load、disk usage、system logs),也包括Windows主机(使用NSClient++ plugin)
  • 指定自己编写的Plugin通过网络收集数据来监控任何情况(温度、警告……)
  • 通过配置Nagios远程执行插件远程执行脚本
  • 远程监控支持SSH或SSL加通道方式进行监控
  • 简单的plugin设计允许用户很容易的开发自己需要的检查服务,支持很多开发语言(shell scripts、C++、Perl、ruby、Python、PHP、C#等)
  • 包含很多图形化数据Plugins(Nagiosgraph、Nagiosgrapher、PNP4Nagios等)
  • 可并行服务检查
  • 能够定义网络主机的层次, 允许逐级检查, 就是从父主机开始向下检查
  • 当服务或主机出现问题时发出通告,可通过email, pager, sms 或任意用户自定义的plugin进行通知
  • 能够自定义事件处理机制重新激活出问题的服务或主机
  • 自动日志循环
  • 支持冗余监控
  • Web界面可以查看当前网络状态,通知,问题历史,日志文件等

本次项目主要介绍如何部署nagios,如何对nagios进行配置,使其能够对指定的主机进行监控操作

项目环境准备

关闭防火墙及selinux

系统版本:centos 7.4

虚拟机分配

本次项目只对被监控端做简单测试,所以被监控端不需安装nagios插件。
角色
IP地址 所用软件
监控端 172.16.10.34 nagios-4.4.2、nagios-plugins-2.2.1
被监控端 172.16.10.20
被监控端 172.16.10.23

部署nagios监控系统

因为nagios监控系统的网页需要动态网页支持,所以需要安装httpd和php软件,或者直接在lamp环境下安装,所以实验前要准备好虚拟机环境,对于lamp架构的搭建,在这里就不多赘述。

安装环境包

yum install -y -- gcc -- glibc -- glibc-common -- gd -- gd-devel -- xinetd -- openssl-devel

创建管理用户

useradd -s /sbin/nologin nagios

创建安装目录,指定属主属组

mkdir /usr/local/nagios
chown -R nagios.nagios /usr/local/nagios

编译安装nagios

tar -zxvf nagios-4.4.2.tar.gz -C /opt

cd /opt/nagios-4.4.2
./configure --prefix=/usr/local/nagios
make all
make install
make install-init
make install-commandmode
make install-config

验证安装结果

ls /usr/local/nagios

安装nagios-plugins

tar xvzf nagios-plugins-2.2.1.tar.gz -C /opt

cd /opt/nagios-plugins-2.2.1
./configure --prefix=/usr/local/nagios
make && make install

配置nagios监控系统

修改httpd.conf

vim /etc/httpd/conf/httpd.conf
User nagios
Group nagios  //修改原用户名apache为nagios

<IfModule dir_module>
  DirectoryIndex index.html index.php    //增加index.php
</IfModule>
AddType application/x-httpd-php .php   //插入该句

增加安全验证配置

为了安全起见,一般情况下要让nagios 的web 监控页面必须经过授权才能访问,这需要增加验证配置,即在httpd.conf 文件最后插入如下信息:

vim /etc/httpd/conf/httpd.conf
#setting for nagios
ScriptAlias /nagios/cgi-bin "/usr/local/nagios/sbin"
<Directory "/usr/local/nagios/sbin">
     AuthType Basic
     Options ExecCGI
     AllowOverride None
     Order allow,deny
     Allow from all
     AuthName "Nagios Access"
     AuthUserFile /usr/local/nagios/etc/htpasswd
     Require valid-user
</Directory>
Alias /nagios "/usr/local/nagios/share"
<Directory "/usr/local/nagios/share">
     AuthType Basic
     Options None
     AllowOverride None
     Order allow,deny
     Allow from all
     AuthName "nagios Access"
     AuthUserFile /usr/local/nagios/etc/htpasswd
     Require valid-user
</Directory> 

设置登陆用户名及密码

htpasswd -c /usr/local/nagios/etc/htpasswd chen

配置nagios

配置nagois 一般在目录/usr/local/nagios/etc/下

templates.cfg

主要用于监控主机资源以及服务,在nagios配置中称为对象,为了不必重复定义一些监控对象,Nagios引入了一个模板配置文件,将一些共性的属性定义成模板,以便于多次引用。contact_groups 联系组属性改成 np 将在后面的contacts.cfg文件中定义

vim /usr/local/nagios/etc/object/templates.cfg
contact_groups                  np   //文中有五处都需修改

resource.cfg文件

resource.cfg是nagios的变量定义文件 一般无需更改

commands.cfg文件

此文件默认是存在的,无需修改即可使用,当然如果有新的命令需要加入时,在此文件进行添加即可

hosts.cfg文件

此文件默认不存在,需要手动创建,hosts.cfg主要用来指定被监控的主机地址以及相关属性信息,注意书写格式,不要有多余的空格

vim /usr/local/nagios/etc/objects/hosts.cfg
define host{
        use                     linux-server            //引用主机linux-server的属性信息,linux-server主机在templates.cfg文件中进行了定义。
        host_name               Nagios-Linux     //主机名,自定义
        alias                   Nagios-Linux     //主机别名
        address                 172.16.10.20     //被监控的主机地址,这个地址可以是ip,也可以是域名。
        }
define hostgroup{                                 //定义一个主机组
        hostgroup_name          bsmart-servers    //主机组名称,可以随意指定。
        alias                   bsmart servers    //主机组别名
        members                 Nagios-Linux      //主机组成员,其中“Nagios-Linux”就是上面定义的主机。
        }

localhost.cfg

用来监控本机 一般无需更改

services.cfg

此文件默认也不存在,需要手动创建,主要用于定义监控的服务和主机资源

vim /usr/local/nagios/etc/objects/services.cfg
define service{
        use                     local-service      //引用local-service服务的属性值,local-service在templates.cfg文件中进行了定义。
        host_name               Nagios-Linux       //指定要监控哪个主机上的服务,“Nagios-Server”在hosts.cfg文件中进行了定义。
        service_description     check-host-alive   //对监控服务内容的描述,以供维护人员参考。
        check_command           check-host-alive   //指定检查的命令。
        }  

contacts.cfg

contacts.cfg是一个定义联系人和联系人组的配置文件,注意书写格式。

vim /usr/local/nagios/etc/objects/contacts.cfg
define contact{
        contact_name                    chen            //联系人的名称,这个地方不要有空格
        use                             generic-contact //引用generic-contact的属性信息,其中“generic-contact”在templates.cfg文件中进行定义
        alias                           Nagios Admin
        email                           46****[email protected] //填入真实可用邮箱,也可不写
        }
define contactgroup{
        contactgroup_name       np                      //联系人组的名称,同样不能空格
        alias                   Technical Support       //联系人组描述,言简意赅,能懂什么意思就行
        members                 chen                    //联系人组成员,其中“chen”就是上面定义的联系人,如果有多个联系人则以逗号相隔
        }

cgi.cfg

此文件用来控制相关cgi脚本,由于nagios的web监控界面验证用户为chen,所以只需在cgi.cfg文件中添加此用户的执行权限

default_user_name=chen
authorized_for_system_information=nagiosadmin,chen
authorized_for_configuration_information=nagiosadmin,chen
authorized_for_system_commands=chen
authorized_for_all_services=nagiosadmin,chen
authorized_for_all_hosts=nagiosadmin,chen
authorized_for_all_service_commands=nagiosadmin,chen
authorized_for_all_host_commands=nagiosadmin,chen             //配置文件末尾插入

nagios.cfg

将对象配置文件在Nagios.cfg文件中进行引用

vim /usr/local/nagios/etc/nagios.cfg
cfg_file=/usr/local/nagios/etc/objects/hosts.cfg
cfg_file=/usr/local/nagios/etc/objects/services.cfg    //合适的位置插入
command_check_interval=10s  //该变量用于设置nagios对外部命令检测的时间间隔,插入即可。

验证配置文件准确性

/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg

重启服务

systemctl restart httpd。service
systemctl restart nagios.service

访问nagios网站

该网站设置了登陆验证,所以在访问网站是输入之前设置的用户名和密码即可登陆网站。

http://172.16.10.34/nagios/


增加主机数

修改hosts.cfg文件

此文件默认不存在,需要手动创建,hosts.cfg主要用来指定被监控的主机地址以及相关属性信息,注意书写格式,不要有多余的空格

vim /usr/local/nagios/etc/objects/hosts.cfg
define host{
        use                     linux-server            //引用主机linux-server的属性信息,linux-server主机在templates.cfg文件中进行了定义。
        host_name               Nagios-Linux     //主机名,自定义
        alias                   Nagios-Linux     //主机别名
        address                 172.16.10.20     //被监控的主机地址,这个地址可以是ip,也可以是域名。
        }
define host{
        use                     linux-server
        host_name               Nagios-Linu
        alias                   Nagios-Linu
        address                 172.16.10.23
        }

define hostgroup{                                 //定义一个主机组
        hostgroup_name          bsmart-servers    //主机组名称,可以随意指定。
        alias                   bsmart servers    //主机组别名
        members                 Nagios-Linux,Nagios-Linu      //主机组成员,其中“Nagios-Linux”就是上面定义的主机。
        }

重启服务

systemctl restart httpd。service
systemctl restart nagios.service

原文地址:http://blog.51cto.com/13643643/2163630

时间: 2024-09-30 08:16:33

监控三剑客之Nagios的相关文章

监控服务之nagios服务

监控服务之nagios服务搭建 Nagios是一款开源的监控软件,与cacti,zabbix等开源监控软件并驾齐驱,它能够有效监控windows,linux,unix,交换机和路由器的主机状态和相关运行的服务,在系统或者服务异常时发出邮件或者短信报警,通知运维人员解决问题.ngios本身并没有监控功能,他是通过nagios-plugin插件完成的,插件将结果返回给nagios,然后nagios再以web界面的方式将信息呈现出来,出错了就告警,通过轻量级服务nrpe和nagios-plugin可以

SECURITY 04: Nagios监控实战 、 监控概述 、 Nagios监控服务

抓包: tcpdump 选项 过滤条件协议分析软件 : wireshark 搭建CA服务器: CA 配置CA服务的过程:192.168.4.55 ca.tedu.cn tarena1 部署证书签发环境:/etc/pki/tls/openssl.conf 工作目录 证书存放目录私钥文件名 根证书文件名证书编号文件证书索引文件证书识别: 国家 省 城市 公司 部门 匹配策略: 2 创建私钥文件名: 命令 存储目录 文件名3 创建根证书文件名:命令 存储目录 文件名输入:国家 省 城市 公司 部门 邮

Linux监控系统之Nagios

Linux监控系统之Nagios Nagios工作原理 Nagios的功能是监控服务和主机,但是其自身并不包括这部分功能,所有的监控.检测功能都是听过各种插件去完成的.在启动Nagios后,它会周期性地去自动调用插件去检测服务器状态,同时Nagios会维持一个队列,所有插件返回的状态信息都进入队列,Nagios每次都会将从队首读取信息,进行处理后,再将状态结果通过web显示出来. Nagios模式 被动模式:就如同上图所显示的那样,客户端起nrpe进程,服务端通过check_nrpe插件向客户端

部署监控三剑客 Nagios 服务器监控

Nagios 简介 : Nagios是一款开源的免费网络监视工具,能有效监控Windows.Linux和Unix的主机状态,交换机路由器等网络设备,打印机等.在系统或服务状态异常时发出邮件或短信报警第一时间通知网站运维人员,在状态恢复后发出正常的邮件或短信通知. Nagios 可以监控的功能有: 1.监控网络服务(SMTP.POP3.HTTP.NNTP.PING等): 2.监控主机资源(处理器负荷.磁盘利用率等): 3.简单地插件设计使得用户可以方便地扩展自己服务的检测方法: 4.并行服务检查机

nagios 监控 mongodb 解决nagios界面显示null 问题

网上有很多关于nagios 监控mongodb 的介绍,但是无一例外,手工执行 python 能获取客户端的值,nagios 监控界面上面显示null, 针对该问题,本人用shell 脚本重新封装了部分监控选项,让nagios 能正常监控mongodb 服务器 如果想了解nagios 监控mongodb的部署过程,请点击: http://www.2cto.com/database/201410/341855.html https://github.com/mzupan/nagios-plugin

nagios二次开发(四)---nagios监控原理和nagios架构简介

nagios监控原理 下面根据上面摘自网络的原理图对nagios的监控原理进行一下简单的说明: 1.nagios通过nsca进行被动监控.那么什么是被动监控呢?被动监测:就是指由被监测的服务器主动上传数据到nagios监控系统中.这种监测方式提高了实时性(出现问题的时候,被监测的服务器可以及时上传数据通知nagios,从而使管理员可以尽快作出处理,而不用像主动监测中一样,非要等到下一个监测周期才能获知被监测服务器的状态).NSCA就是可以实现Nagios被动监测的一个程序.目前所知道的,只能通过

Linux监控软件之 Nagios

一.简介 Nagios是一款开源的电脑系统和网络监视工具,能有效监控Windows.Linux和Unix的主机状态,交换机路由器等网络设置,打印机等.在系统或服务状态异常时发出邮件或短信报警第一时间通知网站运维人员,在状态恢复后发出正常的邮件或短信通知. Nagios原名为NetSaint,由Ethan Galstad开发并维护至今.NAGIOS是一个缩写形式: "Nagios Ain't Gonna Insist On Sainthood" Sainthood 翻译为圣徒,而&quo

生产环境监控系统Nginx+Nagios+Cacti+Nconf大整合(最新源码安装)【转载】

在此部署方案基础上可以加入对网络设备监控的组件NTOP,原Cacti运行环境标配的组件为Apache,另针对windows系统的监控插件为NSClient++ 文章转载自:https://blog.linuxeye.com/314.html 此文是成功在<Nginx下搭建Nagios监控平台>基础上继续,安装整合Cacti.Nconf.其中花了很多时间来排错.1.下载所需要最新稳定源码包 cd nagios-cacti wget http://www.cacti.net/downloads/c

mysql 主从备份监控slave状态nagios脚本

#!/bin/bash cmd='mysql -uslave -ppasswd -P3306 -h 192.168.0.72 -Be' status=`$cmd 'show slave status\G'` Seconds_Behind_Master=`echo "$status"|awk '/Seconds_Behind_Master/{FS=":";print $2}'` Read_Master_Log_Pos=`echo "$status"