监控的本质就是收集获取软硬件资源的状态信息,例如 CPU 的使用率、内存空间、磁盘余量、WEB服务可达状态……,然后分析各部分是否工作正常,当发现某个地方异常时,发出报警信息


什么情况算是异常?需要我们来定义


所以,监控系统的基础部分就包括:


1. 采集目标点的状态信息


2. 定义正常与异常的临界值


3. 异常警告


Nagios 是一款成熟的开源监控工具,可以监控远程主机,指定监控的目标点和临界值,出现异常后自动给管理员发送邮件或短信,提供了WEB界面,方便查看各主机的各项状态



Nagios 工作原理


Nagios 由 core 和 plugin 构成,core 提供监控的处理、任务调度、下发指令的功能,plugin 执行具体的监控指令、返回监控的结果


Nagios 系统中的角色可以分为:1)Nagios服务器,2)被监控主机


Nagios服务器中安装 core,负责整体调度和WEB展示


被监控主机中安装 plugin 和 代理模块


Nagios服务器向代理模块发送请求,代理模块调用各个插件获取具体资源的状态信息,然后返回给Nagios服务器,最后对收集到的信息进行分析,通过WEB应用进行展示



Nagios 安装


Nagios的安装分为Nagios服务器的安装,和被监控主机中相应程序的安装和配置


过程有些复杂,所以分为两个部分来介绍,本文先介绍Nagios服务器的安装


目标是成功运行Nagios的WEB服务,并能监控本机的状态指标,大概了解Nagios的WEB界面功能


后面的文章会继续介绍如何添加被监控主机


下面是Nagios的WEB界面示例图






overview 中会列出各被监控主机的整体状态,例如网络中断的主机数量、在线的数量、当掉的数量、所有监控点的状况






Services 中列出各个被监控主机,及其被监控的服务,和状态信息


点击某项服务名,例如 'Current Load',就会进入详细信息页,显示出当前的负载状况



监控工具 Nagios_java



安装过程



下面以 centos7 服务器为例,实践 Nagios 的安装过程


(1)保险起见,先禁用 SELinux


修改 /etc/selinux/config,把 enforcing 的值改为 disabled


(2)安装依赖


$ yum install httpd php php-cli gcc glibc glibc-common gd gd-devel net-snmp openssl-devel wget unzip -y


(3)新建用户和组


useradd nagios

groupadd nagcmd

usermod -a -G nagcmd nagios

usermod -a -G nagcmd apache


(4)下载安装Nagios


下载 Nagios 和 Nagios Plugins


cd /tmp

wget https://assets.nagios.com/downloads/nagioscore/releases/nagios-4.1.1.tar.gz

wget http://www.nagios-plugins.org/download/nagios-plugins-2.1.1.tar.gz

tar zxf nagios-4.1.1.tar.gz

tar zxf nagios-plugins-2.1.1.tar.gz


编译Nagios


cd nagios-4.1.1

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

make all

make install

make install-init

make install-config

make install-commandmode

make install-webconf


(5)为 nagiosadmin 创建一个密码,在登录WEB时需要


htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin


(6)安装 Nagios Plugins


cd /tmp/nagios-plugins-2.1.1

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

make all

make install


(7)启动 Nagios


service httpd start

service nagios start


然后就可以访问 http://nagios ip/nagios/,输入用户名 nagiosadmin 和之前创建的密码,便进入了web界面