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

CentOS7安装Nagios并配置出图详解

213次阅读
没有评论

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

目录

  • 开始之前
    • 系统环境
    • 监控内容
    • 所需软件包
    • CentOS7 重要变化
  • 配置开发环境
    • 同步时间
    • 关闭 Selinux
    • 使用 CRT 上传软件包
    • 安装邮件服务
  • 监控主机安装
    • 常用到的命令
    • 安装 nagios 所需要的运行环境
    • 增加用户
    • 安装 nagios
    • 配置权限
    • 安装插件
    • 安装 nrpe
  • 远程主机安装
    • 常用到的命令
    • 配置运行环境
    • 安装 nagios-plugin
    • 安装 nrpe
    • 启动 nrpe
    • 监控主机安装 PNP
    • 配置开发环境
    • 安装 pnp4nagios(版本号为 0.6)
    • 配置 pnp4nagios
    • 图表展示
  • 问题集合
    • 在首次配置了 nagios 监控端后,在浏览器输入地址后连接不上
    • 启动 nrpe 后却不能互相通信
    • 安装 pnp4nagios 后出现 The requested URL /pnp4nagios/graph was not found on this server.
    • 出现“CHECK_NRPE: Error – Could not complete SSL handshake.”的错误
    • 执行 ./configure 时报错:configure error cannot find ssl headers
    • 解压./configure 后,在 nagios-4.0.8 进行 make all 报错
    • 安装 nrpe 时执行.configure 出错
    • 错误:perfdata directory “/usr/local/pnp4nagios/var/perfdata/” is empty

开始之前

声明:本文中的命令都经过了测试,但难免有所纰漏,如果你发现命令粘贴后运行有错,可能是由于符号的格式(尤其是破折号)导致的,此时你应该自己手打一遍命令。对于本文中发现的错误和建议,请发送邮件给我:
kylinlingh@foxmail.com,请在邮件主题里注明“关于 nagios 的问题(建议)”。

————————————– 分割线 ————————————–

在 Ubuntu 下配置 Mrtg 监控 Nginx 和服务器系统资源 http://www.linuxidc.com/Linux/2013-08/88417.htm

使用 snmp+Mrtg 监控 Linux 系统 http://www.linuxidc.com/Linux/2012-11/73561.htm

Mrtg 服务器搭建(监控网络流量)http://www.linuxidc.com/Linux/2012-07/64315.htm

网络监控器 Nagios 全攻略 http://www.linuxidc.com/Linux/2013-07/87067.htm

Nagios 搭建与配置详解 http://www.linuxidc.com/Linux/2013-05/84848.htm

Nginx 环境下构建 Nagios 监控平台 http://www.linuxidc.com/Linux/2011-07/38112.htm

在 RHEL5.3 上配置基本的 Nagios 系统(使用 Nagios-3.1.2) http://www.linuxidc.com/Linux/2011-07/38129.htm

CentOS 5.5+Nginx+Nagios 监控端和被控端安装配置指南 http://www.linuxidc.com/Linux/2011-09/44018.htm

Ubuntu 13.10 Server 安装 Nagios Core 网络监控运用 http://www.linuxidc.com/Linux/2013-11/93047.htm

————————————– 分割线 ————————————–

系统环境

一共 3 台机器,全都按照 CentOS7 最小化模式安装系统

系统版本号

[root@localhost ~]# cat  /etc/RedHat-release

CentOS Linux release 7.0.1406 (Core)

监控主机

(一台)

IP 地址:192.168.1.204

主机名称:nagios_server_204

远程主机

(两台)

IP 地址:192.168.1.112

主机名称:nagios_slave_112

IP 地址:192.168.1.113

主机名称:nagios_slave_113

分区情况

安装时使用默认分区(使用 df 命令来查看)

[root@localhost ~]# df -h

监控内容

要监控的服务

监控命令

cpu 负载

(check_linux_state.pl -C)

当前用户登录数量

(check_users)

磁盘使用情况

(check_disk)

总进程数

(check_procs)

内存使用情况

(check_linux_stats.pl -M)

负载均衡

(check_load)

磁盘 IO

(check_linux_stats.pl -I)

网络流量

(check_linux_stats.pl -N)

打开的文件数量

(check_linux_stats.pl -F)

socket 连接数

(check_linux_stats.pl -S)

进程使用的内存和 CPU

(check_linux_stats.pl -T)

指定的网站是否可连接

(check_http)

系统在线时长

(check_uptime)

所需软件包

监控主机

软件包

下载地址

nagios-4.0.8.tar.gz

请到我的 github 地址里下载:

https://github.com/Kylinlin/install_nagios_automatically/tree/master/nagios_tools_for_server

注明:我的 github 项目 install_nagios_automatically 是一个一键自动化安装 nagios 的项目(能运行,但还在完善中)

nagios-plugins-2.0.3.tar.gz

nrpe-2.15.tar.gz

pnp4nagios-0.6.25.tar.gz

Sys-Statistics-Linux-0.66.tar.gz

libxml2-2.7.1.tar.gz

远程主机

软件包

下载地址

nagios-plugins-2.0.3.tar.gz

请到我的 github 地址里下载:

https://github.com/Kylinlin/install_nagios_automatically/tree/master/nagios_tools_for_client

nrpe-2.15.tar.gz

Sys-Statistics-Linux-0.66.tar.gz

Centos7 重要变化

Centos7 相比较以前的 Centos 有一些涉及到常用命令的变化,如果不事先了解,会在使用命令的时候造成巨大的困扰

Centos7 默认没有 ifconfig 和 netstat 两个命令了,ip addr 命令代替了 ifconfig,只要安装上 net-tools 包就可以继续使用 ifconfig 和 netstat 两个命令了

systemctl 命令的出现(systemctl 可以看作是 service 和 chkconfig 的组合), 虽然仍然可以使用以前的命令,但是会重定向到新的命令中,下面以 http 服务为例

job

以前的系统

CentOS7

服务开机启动

chkconfig –level 3 httpd on

systemctl enable httpd.service

服务不开机启动

chkconfig –level 3 httpd off

systemctl disable httpd

服务状态

service httpd status

systemctl status httpd

所有服务的启动状态

chkconfig –list

systemctl

启动服务

service httpd start

systemctl start httpd.service

停止服务

service httpd stop

systemctl stop httpd.service

重启服务

service httpd restart

systemctl restart httpd.service

配置开发环境
同步时间
把监控系统里的所有机器都同步一次网络时间(非常重要)
[root@localhost ~]timedatectl  #该命令用来检查当前时间和时区
 
如果发现所有机器的时区不一致,此时就要使用命令
[root@localhost ~]timedatectl list-timezones  #该命令列出了所有的时区
[root@localhost ~]timedatectl set-timezone Asia/Shanghai #该命令把时区设置为上海
 
ntpdate time.nist.gov #该命令同步网络当前的时间
如果提示没有 ntpdate 命令,则安装 ntp,并且配置系统自动更新时间
[root@localhost ~]# yum install ntp -y
[root@localhost ~]# /usr/sbin/ntpdate time.nist.gov
[root@localhost ~]# echo ‘#time sync’>>/var/spool/cron/root
[root@localhost ~]# echo ‘*/10**** /usr/sbin/ntpdate time.nist.gov >/dev/null 2>&1’>>/var/spool/cron/root
 
关闭 Selinux
不关闭 selinux 可能会导致一些难以察觉的错误,为了保险起见,首先关闭 selinux:
[root@localhost ~]vi /etc/selinux/config

CentOS7 安装 Nagios 并配置出图详解

重启机器
检查 selinux 是否关闭:
[root@localhost ~]getenforce #如果显示 enforcing 则没有关闭
 
使用 SecureCRT 上传软件包
我在这里使用的 SSH 连接工具是 SecureCRT7.2,通过这个工具上传文件到 Linux 的步骤如下:
1.        首先在 Linux 中安装传送文件命令:
[root@localhost ~] yum install lrzsz -y
2.        然后在 Linux 中跳转到 /usr/local/src 目录下
[root@localhost ~] cd /usr/local/src
3.        运行 CRT 的传送文件命令

CentOS7 安装 Nagios 并配置出图详解

更多详情见请继续阅读下一页的精彩内容:http://www.linuxidc.com/Linux/2015-12/125777p2.htm

安装邮件服务
因为邮件报警服务需要安装 mail 功能
[root@localhost ~]yum install –y mailx
[root@localhost ~]yum install –y sendmail
 
[root@localhost ~]systemctl restart sendmail.service
[root@localhost ~]mail –s Test xxx@xxx.com(你的邮箱地址)
# 此时进入输入模式,输入完邮件内容后按 ctrl + d 退出并且发送
 
监控主机安装
常用到的命令

命令内容

命令格式

检查 nagios 的配置文件是否有错

/etc/init.d/nagios checkconfig

或者

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

启动 nagios

systemctl start nagios.service

或者

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

修改了 nagios 的配置文件后重新加载配置文件

/etc/init

安装 nagios 所需要的运行环境
[root@localhost ~]# yum install gcc glibc glibc-common -y
[root@localhost ~]# yum install php php-gd perl -y
[root@localhost ~]# yum install httpd gd gd-devel openssl openssl-devel -y
[root@localhost ~]# systemctl enable httpd.service #设置 CentOS 开机启动服务

增加用户
[root@localhost ~]useradd -m nagios                               
并将 nagios 以及 apache 用户加入到 nagcmd 组中
[root@localhost ~]groupadd nagcmd                                 
[root@localhost ~]usermod -G nagcmd nagios                         
[root@localhost ~]usermod -a -G nagcmd apache  #把 apace 用户添加到与 nagios 的一个组(apache 用户会在安装 apache 时自动创建)
 
安装 nagios
[root@localhost src]# tar -zxvf nagios-4.0.8.tar.gz
[root@localhost src]# cd nagios-4.0.8
 
首先初始化和建立编译的环境
[root@localhost nagios-4.0.8]#./configure –with-command-group=nagcmd
 
如果能看到下面的基本配置信息则说明初始的环境已经成功配置完成:
 
之后按照提示执行命令来进行编译:
[root@localhost nagios-4.0.8]# make all                               
[root@localhost nagios-4.0.8]# make install                           
[root@localhost nagios-4.0.8]# make install-init                     
[root@localhost nagios-4.0.8]# make install-config                   
[root@localhost nagios-4.0.8]# make install-commandmode             
[root@localhost nagios-4.0.8]# make install-webconf
 
 
安装完成之后,在 /usr/local/nagios 目录下如果能够看到这些目录:
 
就表示 Naigos 安装成功了。
 
Nagios 的样例配置文件默认安装在 /usr/local/nagios/etc 目录下,配置这些文件就可以使得 nagios 按要求运行(详细的配置过程请参考我的另一篇博文:nagios 服务配置详解)
 
此时应该为 email 指定您想用来接收 nagios 警告信息的邮件地址,默认是本机的 nagios 用户:
[root@localhost]# vi /usr/local/nagios/etc/objects/contacts.cfg
email        nagios@localhost      #把描红的地方修改为你的 email 地址
 
创建一个登录 nagios web 程序的用户(用户名配置为 nagiosadmin 则不需要配置权限,设置为其他用户名就要配置权限),我在这里把用户名设置为 kylinlin,密码为 123456,这个用户帐号在以后通过 web 登录 nagios 认证时所用:
[root@localhost ~]# htpasswd -bc /usr/local/nagios/etc/htpasswd.users kylinlin 123456 #把描红的地方修改为你的用户名和密码
 
配置权限
如果在上面创建登陆 nagios web 程序的用户名不是 nagiosadmin(我在上面已经设置为 kylinlin),在登陆 nagios 的 web 界面后(此时我们还不能登录,但如果你忽略了这一小节的配置,那么在后面的登陆中就会看到如下的界面),点击 Hosts 或 Services 会显示图片红色的错误提示

CentOS7 安装 Nagios 并配置出图详解

是因为 nagios 默认把全部的权限给 nagiosadmin,所以可以通过修改 cgi.cfg 文件赋予 kylinlin 权限,切换到 /usr/local/nagios/etc 目录下
[root@localhost etc]# sed -i ‘s#nagiosadmin#kylinlin#g’ cgi.cfg #这条命令将 nagiosadmin 用户名替换为 kylinlin
[root@localhost etc]# grep kylinlin cgi.cfg  #这条命令检查是否修改成功

CentOS7 安装 Nagios 并配置出图详解
 
以上过程配置结束以后需要重新启动 httpd:
[root@localhost etc]# systemctl restart  httpd.service
 
检查其主配置文件的语法是否正确:
[root@localhost etc]# /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
 
或者使用下面这个命令来检查语法
[root@localhost etc]# /etc/init.d/nagios checkconfig

CentOS7 安装 Nagios 并配置出图详解

显示错误数为 0 才正确
配置成功

安装插件
刚才已经提到 Nagios 主程序只是一个控制中心,而能够起到服务监测和系统监测等功能的是众多 Nagios 的插件,没有插件的 Nagios 系统其实只是一个空壳。因此在安装了 Nagios 平台之后我们还需要安装插件。
 
Nagios 插件同样是在其官方网站下载,目前版本是 1.4.15。我将下载的源码包放到 /usr/local 目录下,按照下面的步骤进行解压,编译和安装:
[root@localhost src]# tar zxf nagios-plugins-2.0.3.tar.gz
[root@localhost src]# cd nagios-plugins-2.0.3
 
[root@localhost nagios-plugins-2.0.3]# ./configure –with-nagios-user=nagios –with-nagios-group=nagios
[root@localhost nagios-plugins-2.0.3]#make
[root@localhost nagios-plugins-2.0.3]#make install   
 
通过下面的命令查看安装了多少个插件
[root@localhost nagios-plugins-2.0.3]#ls /usr/local/nagios/libexec/|wc -l
然后把 Nagios 加入到服务列表中以使之在系统启动时自动启动:
[root@localhost nagios-plugins-2.0.3]# chkconfig –add nagios                                             
[root@localhost nagios-plugins-2.0.3]# chkconfig nagios on                                             
执行下面的命令来验证 Nagios 的样例配置文件:
[root@localhost ~]# /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg             
 
CentOS7 安装 Nagios 并配置出图详解
 
 
在防火墙中打开 http 端口
firewall-cmd –add-service=http(即时打开)
firewall-cmd –permanent –add-service=http(写入配置文件)
firewall-cmd –reload(重启防火墙)
 
启动 nagios 服务
[root@localhost ~]# /usr/local/nagios/bin/nagios -d /usr/local/nagios/etc/nagios.cfg
 
之后可以在浏览器上访问链接 http://192.168.1.204/nagios,输入登陆名和密码,如果能够正常看到页面,证明主程序和插件都安装和配置成功(如上图所示)!点击“Service”的链接来查看你本机的监视详情。此时可能需要给点时间让 Nagios 来检测你机器上所依赖的服务。
 
 
CentOS7 安装 Nagios 并配置出图详解
 
 
CentOS7 安装 Nagios 并配置出图详解
注意上图中出现了一个处于 WARNING 状态的服务,所以我配置过的邮箱里已经收到了报警信息,如果你没有收到报警信息,此时检查你是否已经配置了接收报警信息的邮箱,同时检查是否被当做垃圾邮件而屏蔽了。
安装 nrpe
[root@localhost src]# tar -zxf nrpe-2.15.tar.gz
[root@localhost src]# cd nrpe-2.15
[root@localhost nrpe-2.15]# ./configure –with-nrpe-user=nagios \
    –with-nrpe-group=nagios \
    –with-nagios-user=nagios \
    –with-nagios-group=nagios \
    –enable-command-args \
    –enable-ssl
CentOS7 安装 Nagios 并配置出图详解
[root@localhost nrpe-2.15]# make all
[root@localhost nrpe-2.15]# make install-plugin
[root@localhost nrpe-2.15]# make install-daemon
[root@localhost nrpe-2.15]# make install-daemon-config
检查一下 /usr/local/nagios/libexec 目录下是否已经安装了 check_nrpe 插件
[root@localhost libexec]# ls | grep check_nrpe
check_nrpe
至此,监控主机已经完成了 nagios 的安装

目录

  • 开始之前
    • 系统环境
    • 监控内容
    • 所需软件包
    • CentOS7 重要变化
  • 配置开发环境
    • 同步时间
    • 关闭 Selinux
    • 使用 CRT 上传软件包
    • 安装邮件服务
  • 监控主机安装
    • 常用到的命令
    • 安装 nagios 所需要的运行环境
    • 增加用户
    • 安装 nagios
    • 配置权限
    • 安装插件
    • 安装 nrpe
  • 远程主机安装
    • 常用到的命令
    • 配置运行环境
    • 安装 nagios-plugin
    • 安装 nrpe
    • 启动 nrpe
    • 监控主机安装 PNP
    • 配置开发环境
    • 安装 pnp4nagios(版本号为 0.6)
    • 配置 pnp4nagios
    • 图表展示
  • 问题集合
    • 在首次配置了 nagios 监控端后,在浏览器输入地址后连接不上
    • 启动 nrpe 后却不能互相通信
    • 安装 pnp4nagios 后出现 The requested URL /pnp4nagios/graph was not found on this server.
    • 出现“CHECK_NRPE: Error – Could not complete SSL handshake.”的错误
    • 执行 ./configure 时报错:configure error cannot find ssl headers
    • 解压./configure 后,在 nagios-4.0.8 进行 make all 报错
    • 安装 nrpe 时执行.configure 出错
    • 错误:perfdata directory “/usr/local/pnp4nagios/var/perfdata/” is empty

开始之前

声明:本文中的命令都经过了测试,但难免有所纰漏,如果你发现命令粘贴后运行有错,可能是由于符号的格式(尤其是破折号)导致的,此时你应该自己手打一遍命令。对于本文中发现的错误和建议,请发送邮件给我:
kylinlingh@foxmail.com,请在邮件主题里注明“关于 nagios 的问题(建议)”。

————————————– 分割线 ————————————–

在 Ubuntu 下配置 Mrtg 监控 Nginx 和服务器系统资源 http://www.linuxidc.com/Linux/2013-08/88417.htm

使用 snmp+Mrtg 监控 Linux 系统 http://www.linuxidc.com/Linux/2012-11/73561.htm

Mrtg 服务器搭建(监控网络流量)http://www.linuxidc.com/Linux/2012-07/64315.htm

网络监控器 Nagios 全攻略 http://www.linuxidc.com/Linux/2013-07/87067.htm

Nagios 搭建与配置详解 http://www.linuxidc.com/Linux/2013-05/84848.htm

Nginx 环境下构建 Nagios 监控平台 http://www.linuxidc.com/Linux/2011-07/38112.htm

在 RHEL5.3 上配置基本的 Nagios 系统(使用 Nagios-3.1.2) http://www.linuxidc.com/Linux/2011-07/38129.htm

CentOS 5.5+Nginx+Nagios 监控端和被控端安装配置指南 http://www.linuxidc.com/Linux/2011-09/44018.htm

Ubuntu 13.10 Server 安装 Nagios Core 网络监控运用 http://www.linuxidc.com/Linux/2013-11/93047.htm

————————————– 分割线 ————————————–

系统环境

一共 3 台机器,全都按照 CentOS7 最小化模式安装系统

系统版本号

[root@localhost ~]# cat  /etc/RedHat-release

CentOS Linux release 7.0.1406 (Core)

监控主机

(一台)

IP 地址:192.168.1.204

主机名称:nagios_server_204

远程主机

(两台)

IP 地址:192.168.1.112

主机名称:nagios_slave_112

IP 地址:192.168.1.113

主机名称:nagios_slave_113

分区情况

安装时使用默认分区(使用 df 命令来查看)

[root@localhost ~]# df -h

监控内容

要监控的服务

监控命令

cpu 负载

(check_linux_state.pl -C)

当前用户登录数量

(check_users)

磁盘使用情况

(check_disk)

总进程数

(check_procs)

内存使用情况

(check_linux_stats.pl -M)

负载均衡

(check_load)

磁盘 IO

(check_linux_stats.pl -I)

网络流量

(check_linux_stats.pl -N)

打开的文件数量

(check_linux_stats.pl -F)

socket 连接数

(check_linux_stats.pl -S)

进程使用的内存和 CPU

(check_linux_stats.pl -T)

指定的网站是否可连接

(check_http)

系统在线时长

(check_uptime)

所需软件包

监控主机

软件包

下载地址

nagios-4.0.8.tar.gz

请到我的 github 地址里下载:

https://github.com/Kylinlin/install_nagios_automatically/tree/master/nagios_tools_for_server

注明:我的 github 项目 install_nagios_automatically 是一个一键自动化安装 nagios 的项目(能运行,但还在完善中)

nagios-plugins-2.0.3.tar.gz

nrpe-2.15.tar.gz

pnp4nagios-0.6.25.tar.gz

Sys-Statistics-Linux-0.66.tar.gz

libxml2-2.7.1.tar.gz

远程主机

软件包

下载地址

nagios-plugins-2.0.3.tar.gz

请到我的 github 地址里下载:

https://github.com/Kylinlin/install_nagios_automatically/tree/master/nagios_tools_for_client

nrpe-2.15.tar.gz

Sys-Statistics-Linux-0.66.tar.gz

Centos7 重要变化

Centos7 相比较以前的 Centos 有一些涉及到常用命令的变化,如果不事先了解,会在使用命令的时候造成巨大的困扰

Centos7 默认没有 ifconfig 和 netstat 两个命令了,ip addr 命令代替了 ifconfig,只要安装上 net-tools 包就可以继续使用 ifconfig 和 netstat 两个命令了

systemctl 命令的出现(systemctl 可以看作是 service 和 chkconfig 的组合), 虽然仍然可以使用以前的命令,但是会重定向到新的命令中,下面以 http 服务为例

job

以前的系统

CentOS7

服务开机启动

chkconfig –level 3 httpd on

systemctl enable httpd.service

服务不开机启动

chkconfig –level 3 httpd off

systemctl disable httpd

服务状态

service httpd status

systemctl status httpd

所有服务的启动状态

chkconfig –list

systemctl

启动服务

service httpd start

systemctl start httpd.service

停止服务

service httpd stop

systemctl stop httpd.service

重启服务

service httpd restart

systemctl restart httpd.service

配置开发环境
同步时间
把监控系统里的所有机器都同步一次网络时间(非常重要)
[root@localhost ~]timedatectl  #该命令用来检查当前时间和时区
 
如果发现所有机器的时区不一致,此时就要使用命令
[root@localhost ~]timedatectl list-timezones  #该命令列出了所有的时区
[root@localhost ~]timedatectl set-timezone Asia/Shanghai #该命令把时区设置为上海
 
ntpdate time.nist.gov #该命令同步网络当前的时间
如果提示没有 ntpdate 命令,则安装 ntp,并且配置系统自动更新时间
[root@localhost ~]# yum install ntp -y
[root@localhost ~]# /usr/sbin/ntpdate time.nist.gov
[root@localhost ~]# echo ‘#time sync’>>/var/spool/cron/root
[root@localhost ~]# echo ‘*/10**** /usr/sbin/ntpdate time.nist.gov >/dev/null 2>&1’>>/var/spool/cron/root
 
关闭 Selinux
不关闭 selinux 可能会导致一些难以察觉的错误,为了保险起见,首先关闭 selinux:
[root@localhost ~]vi /etc/selinux/config

CentOS7 安装 Nagios 并配置出图详解

重启机器
检查 selinux 是否关闭:
[root@localhost ~]getenforce #如果显示 enforcing 则没有关闭
 
使用 SecureCRT 上传软件包
我在这里使用的 SSH 连接工具是 SecureCRT7.2,通过这个工具上传文件到 Linux 的步骤如下:
1.        首先在 Linux 中安装传送文件命令:
[root@localhost ~] yum install lrzsz -y
2.        然后在 Linux 中跳转到 /usr/local/src 目录下
[root@localhost ~] cd /usr/local/src
3.        运行 CRT 的传送文件命令

CentOS7 安装 Nagios 并配置出图详解

更多详情见请继续阅读下一页的精彩内容:http://www.linuxidc.com/Linux/2015-12/125777p2.htm

远程主机安装

常用到的命令

命令内容

命令格式

关闭 nrpe

pkill nrpe

启动 nrpe

/usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -d

启动 nrpe(只适用于有编写 nrpe 脚本的情况)

systemctl start nrpe.service

检查 nrpe 是否启动

netstat -lnt
(通过检查 5666 端口是否打开)

配置运行环境

首先关闭防火墙:

[root@localhost ~]# systemctl stop firewalld.service

[root@localhost ~]# yum install gcc glibc glibc-common -y

[root@localhost ~]# yum install gd gd-devel openssl openssl-devel -y

[root@localhost ~]# yum install php php-gd perl net-tools -y

安装 nagios-plugin

1)先添加 nagios 用户

[root@localhost ~]# useradd -s /sbin/nologin nagios #禁止 nagios 用户登录

2)NRPE 依赖于 nagios-plugins,因此,需要先安装之

进入到 /usr/local/src 目录下开始执行下面的命令

[root@localhost src]# tar zxf nagios-plugins-2.0.3.tar.gz

[root@localhost src]# cd nagios-plugins-2.0.3

[root@localhost nagios-plugins-2.0.3]# ./configure –with-nagios-user=nagios –with-nagios-group=nagios

[root@localhost nagios-plugins-2.0.3]# make all

[root@localhost nagios-plugins-2.0.3]# make install

安装 nrpe

进入到 /usr/local/src 目录下开始执行下面的命令

[root@localhost src]# tar -zxf nrpe-2.15.tar.gz

[root@localhost src]# cd nrpe-2.15

[root@localhost nrpe-2.15]# ./configure –with-nrpe-user=nagios \

 –with-nrpe-group=nagios \

 –with-nagios-user=nagios \

 –with-nagios-group=nagios \

 –enable-command-args \

 –enable-ssl

CentOS7 安装 Nagios 并配置出图详解

[root@localhost nrpe-2.15]# make all

[root@localhost nrpe-2.15]# make install-plugin

[root@localhost nrpe-2.15]# make install-daemon

[root@localhost nrpe-2.15]# make install-daemon-config

[root@localhost nrpe-2.15]# ls /usr/local/nagios/libexec/    #如果安装成功里面有好多 NRPE 的插件

CentOS7 安装 Nagios 并配置出图详解

注意是否有 check_nrpe 这个插件(没有的话就说明了 nrpe 没有安装成功)

启动 nrpe

方法一:用命令启动 nrpe

[root@localhost ~]# /usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -d

# 这条命令启动 nrpe

如果要重启 nrpe,先执行命令:

[root@localhost ~]# pkill nrpe  #关闭 nrpe

[root@localhost ~]# netstat -lnt  #这条命令用来检查端口,看 5666 端口是否已经被关闭

[root@localhost ~]# /usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -d

# 重启 nrpe 进程

方法二:创建启动 nrpe 的脚本

为了便于 NRPE 服务的启动,可以将如下内容定义为 /etc/init.d/nrpe 脚本,在 /etc/init.d 目录下新建一个名为 nrpe 的文件,把下面内容复制进去

#!/bin/bash

# chkconfig: 2345 88 12

# description: NRPE DAEMON

NRPE=/usr/local/nagios/bin/nrpe

NRPECONF=/usr/local/nagios/etc/nrpe.cfg

case “$1” in

      start)

              echo -n “Starting NRPE daemon…”

              $NRPE -c $NRPECONF -d

              echo ” done.”

              ;;

      stop)

              echo -n “Stopping NRPE daemon…”

              pkill -u nagios nrpe

              echo ” done.”

      ;;

      restart)

              $0 stop

              sleep 2

              $0 start

              ;;

      *)

              echo “Usage: $0 start|stop|restart”

              ;;

      esac

exit 0
 

然后添加运行权限:

[root@localhost ~]# chmod +x /etc/init.d/nrpe

启动 nrpe

[root@localhost ~]# systemctl start nrpe.service

检查 5666 端口是否成功启动

[root@localhost ~]# netstat -tnlp

CentOS7 安装 Nagios 并配置出图详解

5666 端口已经成功启动

在 /usr/local/nagios/etc/nrpe.cfg 文件中添加监控主机的 ip 地址

[root@localhost etc]# vi nrpe.cfg  +81

将 allowed_hosts=127.0.0.1 修改为 allowed_hosts=127.0.0.1,192.168.1.204(这是监控主机的 ip 地址,本机的 ip 地址为 192.168.1.112)

然后重启 nrpe

[root@localhost ~]# pkill nrpe

[root@localhost ~]# /usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -d

在监控主机上(ip 地址为 192.168.1.204)输入下面的命令来检查两个机器之间是否成功通信

[root@localhost ~]# cd /usr/local/nagios/libexec/

[root@localhost libexec]# ./check_nrpe -H 192.168.1.113

NRPE v2.15  #通信成功

至此,远程主机安装 nagios 完毕。

监控主机安装 PNP   

重要提醒:看清楚你要安装的 pnp4nagios 的版本,因为 0.4 和 0.6 的配置方式是不一致的

配置开发环境

[root@localhost ~]# yum install rrdtool librrds-perl -y

安装 pnp4nagios(版本号为 0.6)

进入到 /usr/local/src 目录下开始执行下面的命令

[root@localhost src]# tar zxf pnp4nagios-0.6.25.tar.gz

[root@localhost src]# cd pnp4nagios-0.6.25

[root@localhost pnp4nagios-0.6.25]# ./configure –with-nagios-user=nagios –with-nagios-group=nagios

CentOS7 安装 Nagios 并配置出图详解
 

[root@localhost pnp4nagios-0.6.25]# make all

[root@localhost pnp4nagios-0.6.25]# make install

[root@localhost pnp4nagios-0.6.25]# make install-webconf

[root@localhost pnp4nagios-0.6.25]# make install-config

[root@localhost pnp4nagios-0.6.25]# make install-init

[root@localhost pnp4nagios-0.6.25]# cd ./sample-config

[root@localhost pnp4nagios-0.6.25]# make install-webconf

配置 pnp4nagios

[root@localhost pnp4nagios-0.6.25]# cd /usr/local/pnp4nagios/etc/

[root@localhost etc]# mv misccommands.cfg-sample misccommands.cfg

[root@localhost etc]# mv rra.cfg-sample rra.cfg

[root@localhost etc]# mv nagios.cfg-sample nagios.cfg

[root@localhost etc]# cd pages/

[root@localhost pages]# mv web_traffic.cfg-sample web_traffic.cfg

[root@localhost pages]# cd ../check_commands/

[root@localhost check_commands]# mv check_all_local_disks.cfg-sample check_all_local_disks.cfg

[root@localhost check_commands]# mv check_nrpe.cfg-sample check_nrpe.cfg

[root@localhost check_commands]# mv check_nwstat.cfg-sample check_nwstat.cfg

[root@localhost check_commands]# /etc/init.d/npcd start

[root@localhost check_commands]# chkconfig npcd on

配置 Nagios 数据输出接口 (以 BULK 模式运行) 详情参考官网 https://docs.pnp4nagios.org/pnp-0.6/config#bulk_mode:

[root@localhost ~]# vi /usr/local/nagios/etc/nagios.cfg

process_performance_data=1 #默认为 0,修改为 1

并在该文件中添加下面的内容

#

# service performance data

#

service_perfdata_file=/usr/local/pnp4nagios/var/service-perfdata

service_perfdata_file_template=DATATYPE::SERVICEPERFDATA\tTIMET::$TIMET$\tHOSTNAME::$HOSTNAME$\tSERVICEDESC::$SERVICEDESC$\tSERVICEPERFDATA::$SERVICEPERFDATA$\tSERVICECHECKCOMMAND::$SERVICECHECKCOMMAND$\tHOSTSTATE::$HOSTSTATE$\tHOSTSTATETYPE::$HOSTSTATETYPE$\tSERVICESTATE::$SERVICESTATE$\tSERVICESTATETYPE::$SERVICESTATETYPE$

service_perfdata_file_mode=a

service_perfdata_file_processing_interval=15

service_perfdata_file_processing_command=process-service-perfdata-file

#

# host performance data starting with Nagios 3.0

#

host_perfdata_file=/usr/local/pnp4nagios/var/host-perfdata

host_perfdata_file_template=DATATYPE::HOSTPERFDATA\tTIMET::$TIMET$\tHOSTNAME::$HOSTNAME$\tHOSTPERFDATA::$HOSTPERFDATA$\tHOSTCHECKCOMMAND::$HOSTCHECKCOMMAND$\tHOSTSTATE::$HOSTSTATE$\tHOSTSTATETYPE::$HOSTSTATETYPE$

host_perfdata_file_mode=a

host_perfdata_file_processing_interval=15

host_perfdata_file_processing_command=process-host-perfdata-file
 

配置 command.cfg

[root@localhost ~]# vi /usr/local/nagios/etc/objects/commands.cfg

在该文件中添加下面的内容

define command{

      command_name    process-service-perfdata-file

      command_line    /usr/local/pnp4nagios/libexec/process_perfdata.pl –bulk=/usr/local/pnp4nagios/var/service-perfdata

}

define command{

      command_name    process-host-perfdata-file

      command_line    /usr/local/pnp4nagios/libexec/process_perfdata.pl –bulk=/usr/local/pnp4nagios/var/host-perfdata

}
 

在模板配置文件中添加图表图标模板:

[root@localhost ~]# vi /usr/local/nagios/etc/objects/templates.cfg

在该文件中添加下面的内容

define host {

  name      host-pnp

  action_url /pnp4nagios/index.php/graph?host=$HOSTNAME$&srv=_HOST_

  register  0

}

define service {

  name      service-pnp

  action_url /pnp4nagios/index.php/graph?host=$HOSTNAME$&srv=$SERVICEDESC$

  register  0

}
 

在监控主机和服务中调用图表模板(在主机和服务后面添加新的模板):

[root@localhost ~]# vi /usr/local/nagios/etc/objects/localhost.cfg

按下面的内容修改(不是添加)该文件

define host{

        use                    linux-server,host-pnp                         

        host_name              localhost

        alias                  localhost

        address                127.0.0.1

        }

define service{

        use                            local-service,service-pnp

        host_name                      localhost

        service_description            PING

        check_command          check_ping!100.0,20%!500.0,60%

        }

define service{

        use                            local-service,service-pnp

        host_name                      localhost

        service_description            Root Partition

        check_command          check_local_disk!20%!10%!/

        }


 

图表展示

重启 nagios 和 apache

[root@localhost ~]# systemctl restart nagios.service

[root@localhost ~]# systemctl restart httpd.service

访问 nagios 界面即可看到图表小图标:

CentOS7 安装 Nagios 并配置出图详解

点击图标会显示 pnp4nagios 测试页面:

CentOS7 安装 Nagios 并配置出图详解

全是绿色代表配置正常,如果不是全绿,要逐个解决错误。然后移除或修改 install.php 文件:

[root@localhost ~]# rm -rf /usr/local/pnp4nagios/share/install.php

再次点击图标就会显示当前监控服务由 pnp4nagios 生成的图表了:

CentOS7 安装 Nagios 并配置出图详解

至此,nagios 监控主机的出图配置已经全部完成。

问题集合

在首次配置了 nagios 监控端后,在浏览器输入地址后连接不上

可能是防火墙屏蔽了 80 端口,此时打开防火墙的 80 端口即可:

firewall-cmd –add-service=http(即时打开)

firewall-cmd –permanent –add-service=http(写入配置文件)

firewall-cmd –reload(重启防火墙)

如果出现如下错误:

You don’t have permission to access /nagios/ on this server.nagios

此时要安装 php

yum install php –y

然后重启 httpd:

systemctl restart httpd.service

启动 nrpe 后却不能互相通信

首先启动 nrpe 进程

systemctl restart nrped.service

此时可以检查 nrpe 绑定的 5666 端口是否被防火墙屏蔽了:

netstat -tnpl(观察是否有下面的两个服务之一)

如果 5666 端口没有打开就打开防火墙的 5666 端口:

firewall-cmd –zone=public –add-port=5666/tcp –permanent(添加 5666 端口)

firewall-cmd –reload(重启防火墙)

或者直接关闭防火墙

[root@localhost ~]# systemctl stop firewalld.service

安装 pnp4nagios 后出现 The requested URL /pnp4nagios/graph was not found on this server.

原因,当你在 pnp4nagios 安装的时候执行了 make install-webconf,注意它生成了一个 apache 的配置文件。

你把这个文件:/etc/httpd/conf.d/pnp4nagios.conf 中的所有内容全部添加到 apache 的 httpd.conf 文件最后,再重新启动 nagios 和 apache 就应该可以啦。

跳转到 /usr/local/src/pnp4nagios-0.6.25 目录下执行命令

[root@nagios-test pnp4nagios-0.6.25]# make install-webconf

[root@nagios-test pnp4nagios-0.6.25]# cd ./sample-config && make install-webconf

[root@nagios-test pnp4nagios-0.6.25]# service nagios restart

[root@nagios-test pnp4nagios-0.6.25]# systemctl restart httpd.service

出现“CHECK_NRPE: Error – Could not complete SSL handshake.”的错误

先安装开发环境:

yum install openssl openssl-devel

检查 nagios 监控端的允许地址和目标端的 nrpe 允许地址配置正确。比如被监控端的配置(命令:vi  /usr/local/nagios/etc/nrpe.cfg):

allowed_hosts=127.0.0.1,192.168.1.112(两个地址之间只有一个逗号,不能有空格)

执行 ./configure 时报错:configure error cannot find ssl headers

原因是缺少 openssl-devel 包,

yum -y install openssl-devel

解压./configure 后,在 nagios-4.0.8 进行 make all 报错

报出如下错误:

cd ./base && make

make[1]:Entering directory ‘/tmp/nagios/base’

make[1]:*** No rule to make target ‘/include/locations.h’, needed by ‘broker.o’. Stop.

make[1]:Leaving directory ‘/tmp/nagios/base’

make:***[all]Error 2

安装好 perl 就不出这个问题了!命令如下:

yum -y install perl

     

注意,install perl 之后需要重新./configure 一下,要不然还是提示这个错误

安装 nrpe 时执行.configure 出错

在监控主机上安装 check-nrpe 插件时(实际上就是 nrpe 的整个安装)

./configure 提示报错:

checking for SSL headers… configure: error: Cannot find ssl headers

如果这时运行命令 make all,则会报错:make: *** 没有规则可以创建目标“all”。停止。

解决办法:

yum -y install openssl-devel

记得:装完 openssl-devel 之后,要执行 ./configure

然后再 make all

make install-plugin

错误:perfdata directory “/usr/local/pnp4nagios/var/perfdata/” is empty.

查阅了很多资料,最终根据官网 http://docs.pnp4nagios.org/pnp-0.6/config 上的 Bulk 模式重新配置了 PNP 的相关文件(可以参照我上文的内容进行)

Nagios 的详细介绍:请点这里
Nagios 的下载地址:请点这里

本文永久更新链接地址:http://www.linuxidc.com/Linux/2015-12/125777.htm

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