监控的本质就是收集获取软硬件资源的状态信息,例如 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',就会进入详细信息页,显示出当前的负载状况
安装过程
下面以 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界面