共计 8176 个字符,预计需要花费 21 分钟才能阅读完成。
控对于对于系统管理人员的日常运维工作来说是非常重要的,而比较知名的开源监控软件有 Ganglia、Cacti、Nagios、Zabbix 等等,而本次就简单的说下 Nagios 的安装部署,因为 Nagios 是基于 web 页面查看管理的,那可以选用 lamp 或者是 lnmp 这些比较容易实现的 web 系统框架来实现即可,Nagios 的官网是:https://www.nagios.org/downloads/,当然下载版本建议用最新的稳定版。Nagios 的监控实现是由各个插件来完成的它本身是没有监控功能的,所以 Nagios 使用非常灵活,而在需要监控不同的平台主机、硬件时用不同的插件,下面从网页上找的一张图能很好的说明:
从图中得知 Nagios 监控中的插件 SNMP 在不同平台的主机、硬件上都有用到,而 Linux 中有 send-nsca 和 NRPE 一般我们常用的是 NRPE,监听的是 tcp 的 5666 端口;而在 Windows 主机上使用的是 NSClient++,监听的是 12489 和 5666 端口,这一点很重要做为被监控的主机上一定要开放这些端口。
在安装 Nagios 之前需要先安装 Nagios 的监控主机(server 端),然后再到被监控主机(clinet 端)上安装相应的插件。
1、server 端:
在安装之前先要检查依赖包
[root@localhost ~]# yum -y groupinstall “Development Tools” “Development Libraries”# 在配置好 yum 源的主机上,先检查下开发包组是否安装
[root@localhost ~]# yum -y install httpd php php-mysql gd gd-devel sendmail openssl-devel# 这里是测试就没有用编译包的 php 和 apache,一般来说建议使用编译包
在依赖关系解决后就开始正常的 Nagios 安装,先安装 Nagios 的核心引擎和 web 页面
[root@linuxidc ~]# groupadd -r nagcmd# 添加 nagcmd 组
[root@linuxidc ~]# useradd -M -G nagcmd -r -s /sbin/nologin nagios
[root@linuxidc ~]# passwd nagios
[root@linuxidc ~]# usermod -a -G nagcmd apache# 把 nagcmd 组附属在 apache 组
[root@linuxidc ~]# cd /usr/local/src/nagios-4.3.1
[root@linuxidc nagios-4.3.1]# ./configure –sysconfdir=/etc/nagios –prefix=/usr/local/nagios –with-command-group=nagcmd –enable-event-broker
[root@linuxidc nagios-4.3.1]# make all && make install
[root@linuxidc nagios-4.3.1]# make install-init && make install-commandmode && make install-config# 添加相应的插件
[root@linuxidc nagios-4.3.1]# vim /etc/nagios/objects/contacts.cfg# 修改邮件接收人的配置文件,在此就不做过多的说明,配置文件的注释里都有,主要改的就是邮箱地址
[root@linuxidc nagios-4.3.1]# make install-webconf# 配置 web 配置文件
[root@linuxidc nagios-4.3.1]# htpasswd -c /etc/nagios/htpasswd.users nagiosadmin# 配置 Nagios 的页面密码
New password:
Re-type new password:
Adding password for user nagiosadmin
到此 nagios 的核心引擎和基本 web 页面就已经安装完毕,在此直接启动 httpd 后使用浏览器测试下
此时的 Nagios 是不具备任何监控功能,因为这台 Nagios 主机是 Linux 服务器,所以监控插件在这里选比较常用的 nrpe,在安装 nrpe 之前要先安装好 Nagios 的插件 plugins
[root@localhost nagios-4.3.1]# cd ../nagios-plugins-2.1.4
[root@localhost nagios-plugins-2.1.4]# ./configure –with-nagios-user=nagios –with-nagios-group=nagios
[root@localhost nagios-plugins-2.1.4]# make && make install
[root@localhost nagios-plugins-2.1.4]# chkconfig –add nagios# 添加 Nagios 的服务
[root@localhost nagios-plugins-2.1.4]# chkconfig nagios on#Nagios 开机自启动
[root@localhost nagios-plugins-2.1.4]# /etc/init.d/nagios start
[root@localhost nagios-plugins-2.1.4]# getenforce# 此处要注意的是要检查是否服务器上有开启 selinux,如果有开启要选择关闭吧或者在 selinux 中添加 nagios 的相应文件到可以执行的标签中
Enforcing
[root@localhost nagios-plugins-2.1.4]# chcon -R -t httpd_sys_content_t /usr/local/nagios/sbin/
[root@localhost nagios-plugins-2.1.4]# chcon -R -t httpd_sys_content_t /usr/local/nagios/share/
此时在 server 端上的 Nagios 的插件就已经安装完毕,此时便可以安装 Nagios 的 nrpe 插件
[root@localhost nagios-plugins-2.1.4]# cd ../nrpe-3.0.1/
[root@localhost nrpe-3.0.1]# ./configure –with-nrpe-user=nagios –with-nrpe-group=nagios –with-nagios-user=nagios –with-nagios-group=nagios –enable-command-args –enable-ssl –sysconfdir=/etc/nagios
[root@localhost nrpe-3.0.1]# make all && make install-plugin
这样在 server 端上的 Nagios 就已经安装部署完毕,此时 Nagios 已经可以自行监控本机。
2、clinet 端:
此处的客户端为了快速简单的部署实现,在这里就用另外一台 Linux 服务器来搭建。同理,在 Nagios 的 client 端下也要添加相应的用户。当然,也要先安装好 Nagios 的插件
[root@linuxidc ~]# useradd -M -r -s /sbin/nologin nagios
[root@linuxidc ~]# cd /usr/local/src/
[root@linuxidc src]# cd nagios-plugins-2.1.4
[root@linuxidc nagios-plugins-2.1.4]# ./configure –with-nagios-user=nagios –with-nagios-group=nagios
[root@linuxidc nagios-plugins-2.1.4]# make all && make install
在插件安装完毕后开始安装 nrpe
[root@linuxidc nagios-plugins-2.1.4]# cd ../nrpe-3.0.1/
[root@linuxidc nrpe-3.0.1]# ./configure –with-nrpe-user=nagios –with-nrpe-group=nagios –with-nagios-user=nagios –with-nagios-group=nagios –enable-command-args –enable-ssl –sysconfdir=/etc/nagios
[root@linuxidc nrpe-3.0.1]# make all && make install-plugin
[root@linuxidc nrpe-3.0.1]# make install-daemon && make install-config && make install-init && make install-inetd
到这里 Nagios 的 nrpe 部分就安装结束了,以下做一些基本配置
[root@linuxidc nrpe-3.0.1]# vim /etc/nagios/nrpe.cfg
…略…
allowed_hosts=192.168.218.128
# 在这里的 ip 改成 server 端的 Nagios 的监听 ip
…略…
command[check_hda1]=/usr/local/nagios/libexec/check_disk -w 20% -c 10% -p /dev/hda1
# 此处根据磁盘的实际使用的盘符情况修改
…略…
[root@linuxidc nrpe-3.0.1]# /etc/init.d/nrpe start
在安装好后做一些基本的验证,这里要注意的是这些验证需要在监控 server 主机上做,被监控主机需要开启 5666 端口
[root@linuxidc nrpe-3.0.1]# cd /usr/local/nagios/libexec/
[root@linuxidc libexec]# ./check_nrpe -H 192.168.218.129# 检查被监控主机的 IP,这样有打印出版本号就是正常的
NRPE v3.0.1
这样 Nagios 的安装就完成了,而 Nagios 的家目录或文件的含义也很简单,如下:
目录 | 解释 |
---|---|
bin | Nagios 的二进制文件的目录 |
sbin | Nagios CGI 文件所在目录,也就是执行外部命令所需文件所在的目录 |
share | Nagios 网页文件所在的目录,建议这里去找一下中文的资料便于查阅 |
libexec | Nagios 外部插件所在目录 |
var | Nagios 日志文件、lock 等文件所在的目录 |
var/archives | Nagios 日志自动归档目录 |
var/rw | 用来存放外部命令文件的目录 |
当然我这里是指定 Nagios 的配置文件路径在 /etc/nagios 路径下,如果没有指定的话默认缺省是在 Nagios 的家目录下,而配置的一些文件或目录的含义也很简单,关系如下:
文件名或目录名 | 用途 |
---|---|
cgi.cfg | 控制 CGI 访问的配置文件 |
nagios.cfg | Nagios 主配置文件 |
resource.cfg | 变量定义文件,又称为资源文件,在些文件中定义变量,以便由其他配置文件引用,如 $USER1$ |
objects | objects 是一个目录,在此目录下有很多配置文件模板,用于定义 Nagios 对象 |
objects/commands.cfg | 命令定义配置文件,其中定义的命令可以被其他配置文件引用 |
objects/contacts.cfg | 定义联系人和联系人组的配置文件 |
objects/localhost.cfg | 定义监控本地主机的配置文件 |
objects/printer.cfg | 定义监控打印机的一个配置文件模板,默认没有启用此文件 |
objects/switch.cfg | 定义监控路由器的一个配置文件模板,默认没有启用此文件 |
objects/templates.cfg | 定义主机和服务的一个模板配置文件,可以在其他配置文件中引用 |
objects/timeperiods.cfg | 定义 Nagios 监控时间段的配置文件 |
objects/windows.cfg | 监控 Windows 主机的一个配置文件模板,默认没有启用此文件 |
在此时 Nagios 还是不能用的还有一些基础配置需要修改才能正常的使用,在 server 端进入 sysconfigdir 目录, 先要根据实际情况修改一下 commandss.cfg 文件, 添加以下内容:
[root@linuxidc nagios]# vim objects/commands.cfg
define command{
command_name check_nrpe
command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
}
在 Nagios 的默认配置文件下是没有 Linux 的配置文件所以如果是用于监控 Linux 主机,需要自行定义写配置文件,在此就用简单的写了一个 Linux 下使用的模板:
[root@linuxidc nagios]# vim objects/linux.cfg
define host{
use linux-server
host_name linuxhost
alias My linux Server
address 192.168.218.129 ; 这里填被监控主机的 IP
}
define service{
use generic-service
host_name linuxhost
service_description CHECK_USERS
check_command check_nrpe!check_users
}
define service{
use generic-service
host_name linuxhost
service_description CHECK_LOAD
check_command check_nrpe!check_load
}
define service{
use generic-service
host_name linuxhost
service_description CHECK_SDA1
check_command check_nrpe!check_sda1
}
define service{
use generic-service
host_name linuxhost
service_description CHECK_ZOMBIE_PROCS
check_command check_nrpe!check_zombie_procs
}
define service{
use generic-service
host_name linuxhost
service_description CHECK_TOTAL_PROCS
check_command check_nrpe!check_total_procs
}
[root@linuxidc nagios]# chown nagios:nagios linux.cfg# 修改下配置文件的属组
在 linux.cfg 配置文件修改好后还需要 在 nagios.cfg 添加环境变量:
[root@linuxidc nagios]# vim nagios.cfg
…略…
cfg_file=/etc/nagios/objects/linux.cfg
…略…
正在修改后可以用 Nagios 的配置文件验证检查
[root@linuxidc nagios]# /usr/local/nagios/bin/nagios -v /etc/nagios/nagios.cfg
Nagios Core 4.3.1
Copyright (c) 2009-present Nagios Core Development Team and Community Contributors
Copyright (c) 1999-2009 Ethan Galstad
Last Modified: 02-23-2017
License: GPL
Website: https://www.nagios.org
Reading configuration data…
Read main config file okay…
Read object config files okay…
Running pre-flight check on configuration data…
Checking objects…
Checked 13 services.
Checked 2 hosts.
Checked 1 host groups.
Checked 0 service groups.
Checked 1 contacts.
Checked 1 contact groups.
Checked 25 commands.
Checked 5 time periods.
Checked 0 host escalations.
Checked 0 service escalations.
Checking for circular paths…
Checked 2 hosts
Checked 0 service dependencies
Checked 0 host dependencies
Checked 5 timeperiods
Checking global event handlers…
Checking obsessive compulsive processor commands…
Checking misc settings…
Total Warnings: 0
Total Errors: 0
Things look okay – No serious problems were detected during the pre-flight check
[root@linuxidc nagios]# /etc/init.d/nagios restart
像这样就是没有报错的,再重启下 Nagios 就可以了, 这样基本的 Nagios 的安装就完毕了, 这里需要注意的是在 Nagios 的 server 端需要开启 80、443 端口用于 Web 管理页面的正常浏览, 当然这也是一些基本的配置部署,如果要实现更多的功能还需要进一步的修改配置文件。
CentOS 7 下安装配置 Nagios 监控图文详解 http://www.linuxidc.com/Linux/2017-05/143886.htm
Nagios 邮件报警配置简述 http://www.linuxidc.com/Linux/2017-02/140834.htm
Nagios 本机及其他主机监控安装部署详解 http://www.linuxidc.com/Linux/2017-03/141600.htm
Nagios 系统监控基本安装配置过程详解 http://www.linuxidc.com/Linux/2017-01/139758.htm
Linux 下 Nagios+PNP4Nagios 的安装与配置 http://www.linuxidc.com/Linux/2016-09/135534.htm
CentOS7 安装 Nagios 并配置出图详解 http://www.linuxidc.com/Linux/2015-12/125777.htm
Nagios 的详细介绍 :请点这里
Nagios 的下载地址 :请点这里
本文永久更新链接地址 :http://www.linuxidc.com/Linux/2017-05/144032.htm