用nagios实现服务器状态监控

前言

  Nagios是一款开源的电脑系统和网络监视工具,能有效监控Windows、Linux和Unix的主机状态,交换机路由器等网络设置,打印机等。在系统或服务状态异常时发出邮件或短信报警第一时间通知网站运维人员,在状态恢复后发出正常的邮件或短信通知。


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界面可以查看当前网络状态,通知,问题历史,日志文件等

NRPE是监控软件nagios的一个扩展,它被用于被监控的服务器上,向nagios监控平台提供该服务器的一些本地的情况。例如,cpu负载、内存使用、硬

盘使用等等。NRPE可以称为nagios的for linux 客户端。

1. nagios执行安装的check_nrpe插件,并告诉check_nrpe去检测哪些服务。

2. 通过SSL,check_nrpe连接到远端主机上的nrpe daemon

3. NRPE运行本地的各种插件去检测本地的主机状态和服务(check_disk,check_cpu)。

4. NRPE把检测到的结果回传给check_nrpe,check_nrpe再把结果送到nagios状态队列中

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


Nagios监控工作原理如下图,Nagios通过NRPE来获取远程主机各种信息。

用nagios实现服务器状态监控



一 提前关闭SELinux

查看SELinux状态:

1、/usr/sbin/sestatus -v          ##如果SELinux status参数为enabled即为开启状态

SELinux status:                 enabled

2、getenforce                 ##也可以用这个命令检查

关闭SELinux:

1、临时关闭(不用重启机器):

setenforce 0                  ##设置SELinux 成为permissive模式

                          ##setenforce 1 设置SELinux 成为enforcing模式

2、修改配置文件需要重启机器:

修改/etc/selinux/config 文件

将SELINUX=enforcing改为SELINUX=disabled

重启机器即可

二 提前关闭防火墙 

临时关闭,即时生效,重启失效

service iptables stop  # 关闭防火墙

service iptables start # 开启防火墙
永久关闭,重启生效
chkconfig iptables off # 关闭防火墙

chkconfig iptables on  # 开启防火墙


三 安装gcc等环境

四 安装Apache和PHP

五 添加用户和用户组

useradd nagios

groupadd nagcmd

usermod -a -G nagios,nagcmd apache

六 安装nagios-core

tar zxvf nagios-4.2.0.tar.gz

./configure --with-command-group=nagcmd

make all

make install

make install-init

make install-config

make install-commandmode

make install-webconf

cp -R contrib/eventhandlers/ /usr/local/nagios/libexec/

chown -R nagios:nagios /usr/local/nagios/libexec/eventhandlers

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

/etc/init.d/httpd start

/etc/init.d/nagios start

htpasswd –c /usr/local/nagios/etc/htpasswd.users nagiosadmin  #创建一个web访问的用户

七 安装nagios-plugin

cd /tmp/nagios-plugins-2.1.2

./configure --with-nagios-user=nagios --with-nagios-group=nagios

make

make install

八 添加自启动服务

chkconfig --add nagios

chkconfig --level 35 nagios on

chkconfig --add httpd

chkconfig --level 35 httpd on


文章引用

http://bguncle.blog.51cto.com/3184079/957315/

http://os.51cto.com/art/201403/433062.htm

http://tieba.baidu.com/p/3230029862?see_lz=1&pn=1

http://www.cnblogs.com/mchina/archive/2013/02/20/2883404.html