nagios用NRPE监控Linux主机 服务端和客户端的安装配置

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介:

安装配置nagios服务端

安装前的准备工作

1
2
3
4
5
yum -y install httpd gcc glibc glibc-common gd gd-devel php php-mysql mysql mysql-devel mysql-server
groupadd nagcmd
useradd -G nagcmd nagios
passwd nagios
usermod -a -G nagcmd apache


vim /etc/httpd/conf/httpd.conf

DirectoryIndex index.php index.html index.html.var  #找到这一行,添加index.php


编译安装nagios:

1
2
3
4
5
6
7
8
9
wget http: //prdownloads.sourceforge.net/sourceforge/nagios/nagios-4.0.5.tar.gz
tar zxf nagios- 4.0 . 5 .tar.gz
cd nagios- 4.0 . 5
./configure -- with -command-group=nagcmd --enable-event-broker
make all
make install
make install-init
make install-commandmode
make install-config

附:在解压的时候如果提示下面的错误,是因为系统时间不对

tar: nagios-4.0.5/xdata/xsddefault.c: time stamp 2014-04-12 02:37:42 is 250653.223481153 s in the future

tar: nagios-4.0.5/xdata/xsddefault.h: time stamp 2014-04-12 02:37:42 is 250653.223419364 s in the future

tar: nagios-4.0.5/xdata: time stamp 2014-04-12 02:37:42 is 250653.223359922 s in the future

修改系统时间

cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime  

service ntpd stop

ntpdate asia.pool.ntp.org ; hwclock -w


需要在httpd的配置文件目录(conf.d)中生成Nagios的Web程序配置文件,继续在此编译安装目录输入一条命令:

# make install-webconf

创建一个登录nagios web程序的用户,这个用户帐号在以后通过web登录nagios认证时所用:

# htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin #输入登陆nagios的密码

# service httpd restart

编译、安装nagios-plugins

nagios的所有监控工作都是通过插件完成的,因此,在启动nagios之前还需要为其安装官方提供的插件。http://exchange.nagios.org/directory/Plugins nagios插件链接

1
2
3
4
5
6
wget http: //nagios-plugins.org/download/nagios-plugins-2.0.tar.gz
tar zxf nagios-plugins- 2.0 .tar.gz
cd nagios-plugins- 2.0
./configure -- with -nagios-user=nagios -- with -nagios-group=nagios
make
make install

配置并启动Nagios

# chkconfig --add nagios

# chkconfig nagios on

检查其主配置文件

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

# service nagios start


关闭selinux,

vim /etc/sysconfig/selinux  将其中的selinux后面的值“force”修改为“disable”或者

临时性的改动selinux也可以

1
2
3
# setenforce 0
# getenforce
Permissive

或者将nagios的CGI程序运行于SELinux/targeted模式而不用关闭selinux:

# chcon -R -t httpd_sys_content_t /usr/local/nagios/sbin

# chcon -R -t httpd_sys_content_t /usr/local/nagios/share

通过web界面查看nagios:

http://your_nagios_IP/nagios

输入帐号和密码

这时候可以看到本机的服务状态,如果没有出现页面,请检查iptables的80端口是否开放

如果出现下面提示,说明是selinux的问题,setenforce 0即可

1
2
3
4
Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.
Please contact the server administrator, root@localhost and inform them of the  time  the error occurred, and anything you might have  done  that may have caused the error.
More information about this error may be available  in  the server error log.


安装NRPE,服务端需要自己的check_nrpe,和被监控端联系

下载页面

1
http: //downloads .sourceforge.net /project/nagios/nrpe-2 .x /nrpe-2 .15 /nrpe-2 .15. tar .gz?r=&ts=1363788540&use_mirror=hivelocity
1
2
3
4
5
6
7
8
9
10
11
12
tar  -zxvf nrpe-2.15. tar .gz
cd  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
make  all
make  install -plugin
make  install -daemon
make  install -daemon-config

如果./configure时候出现下面错误

1
2
checking  for  SSL headers... SSL headers found  in  /usr/local/ssl
checking  for  SSL libraries... configure: error: Cannot  find  ssl libraries

1
2
3
# find /usr/ -name libssl.so
/usr/local/ssl/lib/libssl .so
# ./configure --with-nrpe-user=nagios --with-nrpe-group=nagios --with-nagios-user=nagios  --with-nagios-group=nagios --enable-command-args --enable-ssl --with-ssl-lib=/usr/local/ssl/lib


安装配置被监控端

yum -y install gcc glibc glibc-common gd gd-devel 

或者

yum grouplist  #检查  yum -y groupinstall "Development Tools" "Development Libraries"


添加nagios用户

1
2
3
4
5
6
useradd -s /sbin/nologin nagios
tar zxf nagios-plugins- 2.0 .tar.gz
cd nagios-plugins- 2.0
./configure -- with -nagios-user=nagios -- with -nagios-group=nagios -- with -mysql=/usr/local/mysql
make all
make install

安装NRPE

下载页面

1
http: //downloads.sourceforge.net/project/nagios/nrpe-2.x/nrpe-2.15/nrpe-2.15.tar.gz?r=&ts=1363788540&use_mirror=hivelocity


1
2
3
4
5
6
7
8
9
10
11
12
tar -zxvf nrpe- 2.15 .tar.gz
cd 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
make all
make install-plugin
make install-daemon
make install-daemon-config

 注:如果./configure有下面提示,请 yum install openssl-devel
checking for SSL headers... SSL headers found in /usr/local/ssl
checking for SSL libraries... configure: error: Cannot find ssl libraries


配置NRPE

# vim /usr/local/nagios/etc/nrpe.cfg  找到相应的做修改

1
2
3
4
5
6
7
8
9
10
log_facility=daemon
pid_file=/ var /run/nrpe.pid
server_address= 172.16 . 100.11   #本机ip,本机提供nrpe服务,所以自己为服务端,此行需手动添加
server_port= 5666
nrpe_user=nagios
nrpe_group=nagios
allowed_hosts= 172.16 . 100.1   #监控端的ip
command_timeout= 60
connection_timeout= 300
debug= 0

启动NRPE

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

为了便于NRPE服务的启动,可以将如下内容定义为/etc/init.d/nrped脚本,用service nrped start 启动:vim /etc/init.d/nrped

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#!/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

chmod +x /etc/init.d/nrped


基于NRPE的监控

配置允许远程主机监控的对象

vim /usr/local/nagios/etc/nrpe.cfg

command[check_users]=/usr/local/nagios/libexec/check_users -w 5 -c 10

command[check_load]=/usr/local/nagios/libexec/check_load -w 15,10,5 -c 30,25,20

command[check_hda1]=/usr/local/nagios/libexec/check_disk -w 20% -c 10% -p /dev/hda1

command[check_zombie_procs]=/usr/local/nagios/libexec/check_procs -w 5 -c 10 -s Z

command[check_total_procs]=/usr/local/nagios/libexec/check_procs -w 150 -c 200

上面是系统自带的,下面是添加的

1
2
3
4
5
6
7
8
9
10
11
12
command[check_rootdisk]=/usr/local/nagios/libexec/check_disk -w  20 % -c  10 % -p /
command[check_swap]=/usr/local/nagios/libexec/check_disk -w  40 % -c  20 %
command[check_sensors]=/usr/local/nagios/libexec/check_sensors
command[check_zombies]=/usr/local/nagios/libexec/check_procs -w  5  -c  10  -s Z
command[check_sda1]=/usr/local/nagios/libexec/check_disk -w  20 % -c  10 % -p /dev/sda1
command[check_sda3]=/usr/local/nagios/libexec/check_disk -w  20 % -c  10 % -p /dev/sda3
#对mysql监控:
command[check_mysql]=/usr/local/nagios/libexec/check_mysql -utest -ptest -s / var /lib/mysql/mysql.sock -H localhost
#为了监控mysql需要在被监控的mysql加授权
#create database test;
#grant select on test.* to test@localhost identified by  "test" ;
#flush privileges;

因为我这里是sda1和sda3,磁盘检测请添加自己的

wKiom1Nd-R2TjoZNAACw3fjViGA932.jpg

# service nrped restart



再回到nagios服务端  定义配置

cd /usr/local/nagios/libexec

./check_nrpe -H 172.16.100.11 #测试一下

如果提示CHECK_NRPE: Socket timeout after 10 seconds. 那就把iptables的5666端口打开


/usr/local/nagios/libexec/check_nrpe -H 172.16.100.11 -c check_load

OK - load average: 1.55, 1.31, 1.30|load1=1.550;15.000;30.000;0; load5=1.310;10.000;25.000;0; load15=1.300;5.000;20.000;0; 


配置服务端

先定义命令  commands.cfg  

vim /usr/local/nagios/etc/objects/commands.cfg

在最后添加

define command{

 command_name check_nrpe

 command_line $USER1$/check_nrpe -H "$HOSTADDRESS$" -c $ARG1$

       }

再定义主机和服务

vim /usr/local/nagios/etc/objects/linuxhost.cfg  

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
define host{
         use                      linux-server
         host_name               my linux server
         alias                   mylinux server
         address                  172.16 . 100.11  #被监控端的ip
         }
define service{
         use                              generic-service
         host_name                       my linux server
         service_description             check users
         check_command                   check_nrpe!check_users
         }
define service{
         use                              generic-service
         host_name                       my linux server
         service_description             check load
         check_command                   check_nrpe!check_load
         }
define service{
         use                              generic-service
         host_name                       my linux server
         service_description             check zombie proce
         check_command                   check_nrpe!check_zombie_procs
         }
define service{
         use                              generic-service
         host_name                       my linux server
         service_description             check total proce
         check_command                   check_nrpe!check_total_procs
         }
define service{
         use                              generic-service
         host_name                       my linux server
         service_description             check rootdisk
         check_command                   check_nrpe!check_rootdisk
         }
define service{
         use                              generic-service
         host_name                       my linux server
         service_description             check swap
         check_command                   check_nrpe!check_swap
         }
define service{
         use                              generic-service
         host_name                       my linux server
         service_description             check sda1
         check_command                   check_nrpe!check_sda1
         }
define service{
         use                              generic-service
         host_name                       my linux server
         service_description             check sda3
         check_command                   check_nrpe!check_sda3
         }
define service{
         use                              generic-service
         host_name                       my linux server
         service_description             check mysql
         check_command                   check_nrpe!check_mysql
         }

vim /usr/local/nagios/etc/nagios.cfg  #添加刚才的配置文件

cfg_file=/usr/local/nagios/etc/objects/linuxhost.cfg


/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg #检查配置是否正确

service nagios restart

到网页查看nagios

wKioL1Nd-TSAgbZdAAYEmSefDcw860.jpg


如果出现下面的提示,是说明iptables开启了,不过开启的是udp 5666端口,而不是tcp,这里需要开启tcp的5666

[1416991726] Warning: Return code of 255 for check of service 'check total proce' on  host 'my linux server' was out of bounds










本文转自 bbotte 51CTO博客,原文链接:http://blog.51cto.com/bbotte/1403997,如需转载请自行联系原作者
相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
3天前
|
Prometheus 运维 监控
Prometheus+Grafana+NodeExporter:构建出色的Linux监控解决方案,让你的运维更轻松
本文介绍如何使用 Prometheus + Grafana + Node Exporter 搭建 Linux 主机监控系统。Prometheus 负责收集和存储指标数据,Grafana 用于可视化展示,Node Exporter 则采集主机的性能数据。通过 Docker 容器化部署,简化安装配置过程。完成安装后,配置 Prometheus 抓取节点数据,并在 Grafana 中添加数据源及导入仪表盘模板,实现对 Linux 主机的全面监控。整个过程简单易行,帮助运维人员轻松掌握系统状态。
29 3
|
28天前
|
数据库连接 Linux Shell
Linux下ODBC与 南大通用GBase 8s数据库的无缝连接配置指南
本文详细介绍在Linux系统下配置GBase 8s数据库ODBC的过程,涵盖环境变量设置、ODBC配置文件编辑及连接测试等步骤。首先配置数据库环境变量如GBASEDBTDIR、PATH等,接着修改odbcinst.ini和odbc.ini文件,指定驱动路径、数据库名称等信息,最后通过catalog.c工具或isql命令验证ODBC连接是否成功。
|
1月前
|
缓存 资源调度 安全
深入探索Linux操作系统的心脏——内核配置与优化####
本文作为一篇技术性深度解析文章,旨在引领读者踏上一场揭秘Linux内核配置与优化的奇妙之旅。不同于传统的摘要概述,本文将以实战为导向,直接跳入核心内容,探讨如何通过精细调整内核参数来提升系统性能、增强安全性及实现资源高效利用。从基础概念到高级技巧,逐步揭示那些隐藏在命令行背后的强大功能,为系统管理员和高级用户打开一扇通往极致性能与定制化体验的大门。 --- ###
70 9
|
3月前
|
网络协议 安全 Linux
如何配置Linux端的ftp?
如何配置Linux端的ftp?
163 64
|
1月前
|
存储 安全 数据管理
如何在 Rocky Linux 8 上安装和配置 Elasticsearch
本文详细介绍了在 Rocky Linux 8 上安装和配置 Elasticsearch 的步骤,包括添加仓库、安装 Elasticsearch、配置文件修改、设置内存和文件描述符、启动和验证 Elasticsearch,以及常见问题的解决方法。通过这些步骤,你可以快速搭建起这个强大的分布式搜索和分析引擎。
54 5
|
2月前
|
Java Linux 网络安全
NIFI在Linux服务区上的部署配置过程是什么?
【10月更文挑战第21天】NIFI在Linux服务区上的部署配置过程是什么?
75 2
|
2月前
|
Ubuntu Linux 编译器
Linux/Ubuntu下使用VS Code配置C/C++项目环境调用OpenCV
通过以上步骤,您已经成功在Ubuntu系统下的VS Code中配置了C/C++项目环境,并能够调用OpenCV库进行开发。请确保每一步都按照您的系统实际情况进行适当调整。
571 3
|
2月前
|
监控 安全 网络协议
快速配置Linux云服务器
【10月更文挑战第3天】快速配置Linux云服务器
|
2月前
|
监控 安全 Linux
使用NRPE和Nagios监控Linux系统资源的方法
通过遵循以上步骤,可以有效地使用NRPE和Nagios监控Linux系统资源,确保系统运行稳定,并及时响应任何潜在的问题。这种方法提供了高度的可定制性和灵活性,适用于从小型环境到大型分布式系统的各种监控需求。
54 2
|
3月前
|
Oracle Java 关系型数据库
Linux下JDK环境的配置及 bash: /usr/local/java/bin/java: cannot execute binary file: exec format error问题的解决
如果遇到"exec format error"问题,文章建议先检查Linux操作系统是32位还是64位,并确保安装了与系统匹配的JDK版本。如果系统是64位的,但出现了错误,可能是因为下载了错误的JDK版本。文章提供了一个链接,指向Oracle官网上的JDK 17 Linux版本下载页面,并附有截图说明。
Linux下JDK环境的配置及 bash: /usr/local/java/bin/java: cannot execute binary file: exec format error问题的解决