Linux监控系统之Nagios

Linux监控系统之Nagios

Nagios工作原理

Nagios的功能是监控服务和主机,但是其自身并不包括这部分功能,所有的监控、检测功能都是听过各种插件去完成的。在启动Nagios后,它会周期性地去自动调用插件去检测服务器状态,同时Nagios会维持一个队列,所有插件返回的状态信息都进入队列,Nagios每次都会将从队首读取信息,进行处理后,再将状态结果通过web显示出来。

Nagios模式

被动模式:就如同上图所显示的那样,客户端起nrpe进程,服务端通过check_nrpe插件向客户端发送命令,客户端根据服务端的指示来调用相应的插件,插件可以获取到本机的相关信息,并把获取到的结果发送给服务端。因为需要调用客户端的插件去等带客户端返回的信息,所以叫做被动模式

主动模式:主动模式不需要调用客户端的插件,而是通过自己的插件主动去探测客户端的相关信息。
那么,因为主动模式和被动模式的区别这两种模式所擅长监控的服务也是不同的。

Nagios功能

  • 监控网络服务(SMTP、POP3、HTTP、NNTP、PING等);
  • 监控主机资源(处理器负荷、磁盘利用率等);
  • 简单地插件设计使得用户可以方便地扩展自己服务的检测方法;
  • 并行服务检查机制;
  • 具备定义网络分层结构的能力,用"parent"主机定义来表达网络主机间的关系,这种关系可被用来发现和明晰主机宕机或不可达状态;
  • 当服务或主机问题产生与解决时将告警发送给联系人(通过EMail、短信、用户定义方式);
  • 可以定义一些处理程序,使之能够在服务或者主机发生故障时起到预防作用;
  • 自动的日志滚动功能;
  • 可以支持并实现对主机的冗余监控;
  • 可选的WEB界面用于查看当前的网络状态、通知和故障历史、日志文件等;
  • 可以通过手机查看系统监控信息;
  • 可指定自定义的事件处理控制器

试验环境

角色 IP地址
监控主机 192.168.58.146
被监控主机 192.168.58.149

实验实施

首先我们需要搭建LAMP服务,这个前面已经介绍过,这里就不多加赘述

安装Nagios所需要的依赖包

[[email protected] ~]# yum install -y gcc glibc glibc-common gd gd-devel xinetd openssl-devel

添加用于管理Nagios的进程用户

[[email protected] ~]# useradd -s /sbin/nologin nagios

创建用于安装Nagios的目录

[[email protected] ~]# mkdir /usr/local/nagios

改变Nagios安装目录的属主和属组

[[email protected] ~]# chown -R nagios.nagios /usr/local/nagios

下面进行编译安装Nagios

[[email protected] ~]# tar xf nagios-4.0.1.tar.gz -C /opt/
#将安装包解压到/opt目录下面
[[email protected] ~]# cd /opt/nagios-4.0.1/
#切换至解压路径下
[[email protected] nagios-4.0.1]# ./configure --prefix=/usr/local/nagios
#配置Nagios安装路径
[[email protected] nagios-4.0.1]# make all
由于nagios分很多单独的文件,所以使用make all来编译所有的的单独的文件
[[email protected] nagios-4.0.1]# make install
#这是编译安装主程序包括CGI和HTML文件
[[email protected] nagios-4.0.1]# make install-init
#编译安装一些初始化脚本
[[email protected] nagios-4.0.1]# make install-commandmode
#这是为外部命令文件所在的目录安装和配置权限
[[email protected] nagios-4.0.1]# make install-config
#这是安装一些配置的模板文件,主要在/usr/local/nagios/etc目录下面
[[email protected] nagios-4.0.1]# chkconfig --add /etc/rc.d/init.d/nagios
#将nagios添加到chkconfig系统管理中
[[email protected] nagios-4.0.1]# chkconfig --level 35 nagios on
#设置nagios在35级别开启自启动


这时候我们可以去/usr/local/nagios/目录下查看是否生成相关文件目录

[[email protected] nagios-4.0.1]# ls /usr/local/nagios/
bin  etc  libexec  sbin  share  var

安装nagios-plugins服务

[[email protected] ~]# tar xf nagios-plugins-1.5.tar.gz -C /opt/
[[email protected] ~]# cd /opt/nagios-plugins-1.5
[[email protected] nagios-plugins-1.5]#  ./configure --prefix=/usr/local/nagios
#将它安装到nagios目录下
[[email protected] nagios-plugins-1.5]# make && make install
#编译安装

修改apache服务的配置文件

[[email protected] ~]# vim /etc/httpd.conf  




创建httpd账户验证文件

[[email protected] ~]# htpasswd -c /usr/local/nagios/etc/htpasswd jack
[[email protected] ~]# cat /usr/local/nagios/etc/htpasswd
jack:$apr1$cTieBr/D$vWomztP4eURmUTxxv1WFv0
#可以看到我们添加的账户以及密码

修改nagios配置文件,配置文件一般在/usr/local/nagios/etc/objects下面

  • templates.cfi文件

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

[[email protected] etc]# cd /usr/local/nagios/etc/objects/
[[email protected] objects]# ls
commands.cfg  hosts.cfg      printer.cfg   switch.cfg     timeperiods.cfg
contacts.cfg  localhost.cfg  services.cfg  templates.cfg  windows.cfg
[[email protected] ~]# sed -i ‘contact_groups/s/admins/ts/g‘ /usr/local/nagios/etc/objects/templates.cfg 

  • resource.cfg文件

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

  • commands.cfg文件

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

  • hosts.cfg文件

此文件默认不存在,需要手动创建,hosts.cfg主要用来指定被监控的主机地址以及相关属性信息。

[[email protected] objects]# vim hosts.cfg 

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

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

  • windows.cfg文件

用来监控windows 这里无需使用

  • services.cfg文件

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

[[email protected] objects]# vim services.cfg

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

contacts.cfg是一个定义联系人和联系人组的配置文件。

[[email protected] objects]# vim contacts.cfg 

define contact{
        contact_name                    jack#联系人的名称,这个地方不要有空格
        use                             generic-contact#引用generic-contact的属性信息,其中“generic-contact”在templates.cfg文件中进行定义
        alias                           Nagios Admin
        email                           [email protected]
        }
define contactgroup{
        contactgroup_name       ts#联系人组的名称,同样不能空格
        alias                   Technical Support#联系人组描述
        members                 jack#联系人组成员,其中“jack”就是上面定义的联系人,如果有多个联系人则以逗号相隔
        }
  • cgi.cfg文件

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

[[email protected] objects]# cd ../
[[email protected] etc]# ls
cgi.cfg  htpasswd  nagios.cfg  objects  resource.cfg
[[email protected] etc]# vim cgi.cfg 

在最后加入

default_user_name=jack
authorized_for_system_information=nagiosadmin,jack
authorized_for_configuration_information=nagiosadmin,jack
authorized_for_system_commands=jack
authorized_for_all_services=nagiosadmin,jack
authorized_for_all_hosts=nagiosadmin,jack
authorized_for_all_service_commands=nagiosadmin,jack
authorized_for_all_host_commands=nagiosadmin,jack
  • nagios.cfg文件

将对象配置文件在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对外部命令检测的时间间隔

都配置完了我们可以通过相关命令进行检测。

[[email protected] objects]# /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg

如果出现下面回应,说明配置成功。

最后开启nagios服务

[[email protected] ~]# /usr/local/nagios/bin/nagios -d /usr/local/nagios/etc/nagios.cfg

重启mysql和httpd服务,进行网页测试访问http://192.168.58.146/nagios



原文地址:http://blog.51cto.com/10693404/2164296

时间: 2024-08-09 08:41:05

Linux监控系统之Nagios的相关文章

Linux 监控系统---zabbix

监控系统及zabbix基础(一) =========================================================================== 概述: =========================================================================== 监控系统  1.监控系统介绍 ★监控指标: 硬件:如:cpu使用率,内存空间等 软件:软件程序如:nginx,进程数量等 业务:并发在线数量,事物数量等

Linux监控系统之Zabbix

Linux监控系统之Zabbix Zabbix介绍 Zabbix是由 Zabbix 是由 Alexei Vladishev 开发的一种网络监视.管理系统,基于 Server-Client 架构.可用于监视各种网络服务.服务器和网络机器等状态.整合了Catic和Nagios的特性. 使用各种 Database-end 如 MySQL, PostgreSQL, SQLite, Oracle 或 IBM DB2 储存资料.Server 端基于 C语言.Web 管理端 frontend 则是基于 PHP

Linux监控软件之 Nagios

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

细述:Linux 监控系统 Linux-dash

Linux-dash 是一个低开销 Linux 服务器监控系统,基于 Web 的监控界面.Linux-dash 的界面提供了一个详细的概述您的服务器的所有重要方面,包括内存和磁盘使用情况,网络,安装软件,用户,运行的流程.所有信息被组织成widget 部件,你可以跳转到一个特定的部分使用的主要工具栏中的按钮.Linux Dash不是最先进的监控工具,但它可能是一个适合用户寻找一个光滑,轻便,易于部署应用程序. 特性 漂亮的操作面板 在线,按需监控 RAM, Load, Uptime, Disk

生产环境监控系统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

linux监控系统的状态

1.命令w的第一行和uptime或者用upload2.system load averages 表示单位时间短内活动的进程数3.查看cpu的个数和核数processor.physical id 4.vmstat5.vmstat 1 10 查看cpu信息cat /proc/cpuinfoproc显示进程的相关信息 r:表示允许和等待cpu时间片的进程数,如果长期大于服务器cpu的个数,则说明cpu不够用了. b:表示等待资源的进程数,比如等待I/O.内存等.该数值如果长时间大于11,则需要关注一下

linux监控系统_Zabbix_agent_配置(4)V1.0

本次实验以Centos 7.2:    Ip= 172.16.79.74******************************************************************************************agent可用端口:    agent:    IPMI:    SNMP:强烈不推荐使用!    JMX:**********************************************************************

linux监控系统_Zabbix3.0安装过程(n)

环境说明:     CentOS 7.2 :        HoseName:C7R1        IP: 172.16.79.71        Zabbix server    mysql      CentOS 7.2 :         HoseName:C7R2        IP:172.16.79. 72        Zabbix agent          ++++++++++++++++++++++++++++++++++server+++++++++++++++++++

linux监控系统_Zabbix_Tiggers_web(6)V0.9

什么是触发器: Tiggers:触发器,用来把采集来的数据做条件判断的表达式            逻辑表达式,闸值,是否在合理区间内,通常用于定义数据的不合理区间;                OK-->:正常状态  --> 较老的版本,其为FALSE:                PROBLEM:非正常 状态 --> 较老版本 其为TRRUE:     触发器状态改变时才会触发 事件(events)  注意:触发器的表达式 可以用最后一次数据 或最后几次数据的avg做数据  做条