阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Linux下Nagios安装配置详解

164次阅读
没有评论

共计 8176 个字符,预计需要花费 21 分钟才能阅读完成。

控对于对于系统管理人员的日常运维工作来说是非常重要的,而比较知名的开源监控软件有 Ganglia、Cacti、Nagios、Zabbix 等等,而本次就简单的说下 Nagios 的安装部署,因为 Nagios 是基于 web 页面查看管理的,那可以选用 lamp 或者是 lnmp 这些比较容易实现的 web 系统框架来实现即可,Nagios 的官网是:https://www.nagios.org/downloads/,当然下载版本建议用最新的稳定版。Nagios 的监控实现是由各个插件来完成的它本身是没有监控功能的,所以 Nagios 使用非常灵活,而在需要监控不同的平台主机、硬件时用不同的插件,下面从网页上找的一张图能很好的说明:

Linux 下 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 后使用浏览器测试下

Linux 下 Nagios 安装配置详解

此时的 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 已经可以自行监控本机。

Linux 下 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 的家目录或文件的含义也很简单,如下:

目录 解释
binNagios 的二进制文件的目录
sbinNagios CGI 文件所在目录,也就是执行外部命令所需文件所在的目录
shareNagios 网页文件所在的目录,建议这里去找一下中文的资料便于查阅
libexecNagios 外部插件所在目录
varNagios 日志文件、lock 等文件所在的目录
var/archivesNagios 日志自动归档目录
var/rw 用来存放外部命令文件的目录

当然我这里是指定 Nagios 的配置文件路径在 /etc/nagios 路径下,如果没有指定的话默认缺省是在 Nagios 的家目录下,而配置的一些文件或目录的含义也很简单,关系如下:

文件名或目录名 用途
cgi.cfg 控制 CGI 访问的配置文件
nagios.cfgNagios 主配置文件
resource.cfg 变量定义文件,又称为资源文件,在些文件中定义变量,以便由其他配置文件引用,如 $USER1$
objectsobjects 是一个目录,在此目录下有很多配置文件模板,用于定义 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

正文完
星哥说事-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-21发表,共计8176字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中