实验环境如下:
| Host Name | OS | IP | Software |
|---|---|---|---|
| Nagios-Server | CentOS 7 | 192.168.32.140 | Apache、Php、Nagios、nagios-plugins |
| Nagios-Client | CentOS 7 | 192.168.32.139 | nagios-plugins、nrpe |
本文基于centos最小化安装
本文分为以下几个部分:
1. Nagios介绍和yum 安装web环境
2. Nagios4.2源码包编译
3. Nagios插件源码编译安装以及配置解读
4. Nagios实现邮件告警
5. Nagios 使用nrpe监控远程Linux
6. Nagios安装pnp4nagios实现绘图
一 Nagios介绍和yum安装web环境
1.1 安装apache+php环境
yum install -y httpd php
讯享网
1.2 设置apache和自动启动
讯享网systemctl restart httpd #启动httpd systemclt enable httpd #设置为开机默认启动
1.3 测试apache是否启动 /var/www/html/index.html
<html> <head>test apache</head> <body> <h1>test apache </h1> </body> </html>
1.4 测试apache+php是否启动成功/var/www/html/test.php
讯享网<?php echo "test php " ?>
1.5 ntpdata统一系统时间
yum install -y ntpdate ntpdate cn.pool.ntp.org
二 Nagios4.2源码包编译
2.1 安装nagios依赖包
讯享网yum install -y gcc glibc glibc-common gd gd-devel xinetd openssl-devel unzip perl
2.2 添加用户并授权
mkdir /usr/local/nagios useradd nagios -s /sbin/nologin -M chown nagios:nagios /usr/local/nagios/ ll -d /usr/local/nagios/
2.3 下载并安装nagios4.2.4
讯享网tar zxvf nagios-4.2.4.tar.gz cd nagios-4.2.4 ./configure --prefix=/usr/local/nagios make all #编译 make install #安装 make install-init #管理nagios服务的脚本 make install-commandmode #权限配置 make install-config #配置文件安装 make install-webconf #httpd支持nagios的配置(需要重启httpd)
2.4 检测nagios core是否安装成功
2.4.1 查看nagios core安装版本
[root@anan nagios-4.2.4]# /usr/local/nagios/bin/nagios --version Nagios Core 4.2.4 Copyright (c) 2009-present Nagios Core Development Team and Community Contributors Copyright (c) 1999-2009 Ethan Galstad Last Modified: 2017-08-24 License: GPL Website: https://www.nagios.org This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
2.4.2 检查是否生成了对应httpd的web配置文件
讯享网ls -al /etc/httpd/conf.d/
2.4.2 cd /usr/local/nagios/ #查看是否有以下几个目录
bin:Nagios #可执行程序所在目录 etc:Nagios #配置文件所在目录 sbin:nagios #CGI文件所在目录,也就是执行外部命令所需要文件的所在的目录 share: #nagios网页文件所在的目录 libexec: #nagios外部插件 所在目录 var: #nagios日志文件,lock等文件所在的目录
2.5 为nagios添加默认登陆名nagiosadmin 并设置密码
讯享网htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin
2.6 配置页面检测是否正常并添加别名放入.bashrc中
alias nagioscheck='/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg'
2.7 nagios服务器管理
讯享网chkconfig --add nagios #nagios加入服务管理 systemctl enable nagios #设置开机启动 systemctl restart nagios #启动nagios systemctl restart httpd #重启httpd
2.8 登陆网页localhost/nagios输入用户名和密码进入网站

三 Nagios插件源码编译安装以及配置解读
3.1 下载并安装
wget https://nagios-plugins.org/download/nagios-plugins-2.2.1.tar.gz tar zxvf nagios-plugins-2.2.1.tar.gz cd zxvf nagios-plugins-2.2.1 ./configure --prefix=/usr/local/nagios/ --with-nagios-user=nagios --with-nagios-group=nagios make && make install
3.2 检查nagios插件是否安装成功
讯享网ll -h /usr/local/nagios/libexec/

3.3 修改主机配置文件 添加或者减少需要监控的内容
vi /usr/local/nagios/etc/objects/localhost.cfg
3.4 简化nagios配置
讯享网cat /usr/local/nagios/etc/nagios.cfg | egrep -v '^#|^$'
3.5 nagios配置简要说明

log_file=/usr/local/nagios/var/nagios.log cfg_file=/usr/local/nagios/etc/objects/commands.cfg #命令配置文件 cfg_file=/usr/local/nagios/etc/objects/contacts.cfg #联系人配置文件 cfg_file=/usr/local/nagios/etc/objects/timeperiods.cfg #检测时间配置 cfg_file=/usr/local/nagios/etc/objects/templates.cfg #模板配置 cfg_file=/usr/local/nagios/etc/objects/localhost.cfg #主机配置 cfg_file=/usr/local/nagios/etc/objects/resource.cf #宏定义配置
3.6 添加主机监控目录/usr/local/nagios/etc/nagios.cfg
讯享网cfg_dir=/usr/local/nagios/etc/objects/hosts #需要创建文件夹 该目录下的所有配置文件都会被加载
3.7 自定义添加监控主机 监控主机组以及监控对象 vi /usr/local/nagios/etc/objects/hosts/140.cfg
定义主机 define host{ use linux-server host_name nagios_192.168.32.140 address 192.168.32.140 } 定义主机组 define hostgroup{ hostgroup_name localgroup alias localgroup members nagios_192.168.32.140 } 定义监控服务 define service{ use generic-service host_name nagios_192.168.32.140 service_description ping_www check_command check_ping!30.0,10%!100.0,40% } define service { use generic-service host_name nagios_192.168.32.140 service_description check_Port 80 check_command check_tcp!80 } define service { use generic-service host_name nagios_192.168.32.140 service_description check_Port82 check_command check_tcp!80 }
四 Nagios实现邮件告警
4.1 编写邮件脚本 /usr/local/nagios/libexec/nagios_email.py
讯享网#!/usr/bin/python # -*- coding: utf-8 -*- from email.mime.text import MIMEText from email.header import Header import smtplib import sys smtpaddr = 'smtp.163.com' #smtpaddr = 'smtp..com' myemail='@163.com' #password='password' #输入你的密码 #f = open('/usr/local/nagios/libexec/password','r') #password = f.readline() recvmail=sys.argv[1] subject=sys.argv[2] content=sys.argv[3] msg = MIMEText("""%s"""%(content), "html", "utf-8") msg['Subject'] = Header(subject, 'utf-8').encode() msg['From'] = myemail msg['To'] = recvmail try: server = smtplib.SMTP() server.connect(smtpaddr, "25") server.starttls() server.login(myemail, password) server.sendmail(myemail, recvmail.split(','), msg.as_string()) server.quit() print("success") except Exception, e: print("fail: "+str(e))
4.2 测试邮件接收是否正常
chmod a+x /usr/local/nagios/libexec/nagios_email.py /usr/local/nagios/libexec/nagios_email.py "@163.com" "disk not enough" "disk is <20"
4.3 定义邮件接收人:contacts.cfg
讯享网define contact{ contact_name nagiosadmin use generic.contact alias Nagios Admin email nagios@localhost #这里改为需要接收信息的邮箱 }
4.4 更改默认的告警配置,使用python脚本发送
/usr/local/nagios/etc/objects/commands.cfg
define command{ command_name notify-service-by-email command_line python /usr/local/nagios/libexec/nagios_email.py $CONTACTEMAIL$ " $NOTIFICATIONTYPE$ Service Alert: $HOSTALIAS$/$SERVICEDESC$ is $SERVICESTATE$ " "* Nagios *<br /><br />Notification Type: $NOTIFICATIONTYPE$<br /><br />Service: $SERVICEDESC$<br />Host: $HOSTALIAS$<br />Address: $HOSTADDRESS$<br />State: $SERVICESTATE$<br /><br />Date/Time: $LONGDATETIME$<br /><br />Additional Info:<br /><br />$SERVICEOUTPUT$<br />" }
五 Nagios 使用nrpe监控远程Linux
注:nagios需要安装nrpe和nagios-plugins
5.1 安装nrpe插件 :
讯享网 yum install gcc gcc-c++ openssl-devel openssl make #安装基本依赖 wget https://github.com/NagiosEnterprises/nrpe/releases/download/nrpe-3.2.1/nrpe-3.2.1.tar.gz tar zxvf nrpe-3.2.1.tar.gz cd nrpe-3.2.1 ./configure --prefix=/usr/local/nagios make all make install make install-config
5.2 nrpe是否安装成功
ll -h /usr/local/nagios/libexec/check_nrpe /usr/local/nagios/bin/nrpe

5.3 简化 nrpe配置并添加nagios_server可以监控nagios_client
讯享网cp /usr/local/nagios/etc/nrpe.cfg /usr/local/nagios/etc/nrpe.cfg_bak cat /usr/local/nagios/etc/nrpe.cfg |egrep -v '^#|^$'
nagios_client修改/usr/local/nagios/etc/nrpe.cfg
allowed_hosts=127.0.0.1,::1,192.168.32.140 #添加nagios_server服务器ip
5.4 启动nrpe
讯享网/usr/local/nagios/bin/nrpe -d -c /usr/local/nagios/etc/nrpe.cfg
5.5 查看5666端口是否启动
netstat -tulnp |grep nrpe

5.6 nrpe启动测试
讯享网/usr/local/nagios/libexec/check_nrpe -H 192.168.32.139 #远程服务器ip
5.7 nagios_service添加被监控主机服务 (参考主机监控)
定义主机 define host{ use linux-server host_name nagios_192.168.32.139 address 192.168.32.139 } 定义主机组 define hostgroup{ hostgroup_name 192.168.32.139 alias localgroup members nagios_192.168.32.139 } 定义监控服务 define service{ use generic-service host_name nagios_192.168.32.139 service_description ping_www check_command check_ping!30.0,10%!100.0,40% } define service { use generic-service host_name nagios_192.168.32.139 service_description check_Port 80 check_command check_tcp!80 } define service { use generic-service host_name nagios_192.168.32.139 service_description check_Port82 check_command check_tcp!80 }

使用NRPE监控Linux cpu信息
讯享网define command{ command_name check_nrpe command_line $USER1$/check_nrpe -H $HOSTADDRESS$ $ARG1$ }
define service{ use generic-service host_name nagios_192.168.32.139 service_description check_Load check_command check_nrpe!check_load }
六:Nagios安装pnp4nagios实现绘图
6.1 pnp4nagios的安装
讯享网yum -y install rrdtool rrdtool-devel perl-rrdtool perl-Time-HiRes php-gd cd /usr/local/src/ wget 'https://jaist.dl.sourceforge.net/project/pnp4nagios/PNP-0.6/pnp4nagios-0.6.26.tar.gz' tar -zxvf pnp4nagios-0.6.26.tar.gz cd pnp4nagios-0.6.26 ./configure --prefix=/usr/local/pnp4nagios --with-nagios-user=nagios --with-nagios-group=nagios make all make install #安装pnp4nagios的主程序和web文件 make install-config #安装配置文件 make install-init #安装启动脚本 make install-webconf #安装网页配置(重启httpd)
6.2 验证pnp4nagios的安装
/usr/local/pnp4nagios/bin/npcd --version
6.3 更新pnp4nagios的配置
讯享网cd /usr/local/pnp4nagios/etc/ cp misccommands.cfg-sample misccommands.cfg cp nagios.cfg-sample.nagios.cfg cp rra.cfg-sample rra.cfg
未完待续……
错误记录:
问题一:连接失败
[root@anan var]# /usr/local/nagios/libexec/check_nrpe -H 192.168.32.139 connect to address 192.168.32.139 port 5666: No route to host connect to host 192.168.32.139 port 5666: No route to host
原因:防火墙未关闭,关闭防火墙后正常
问题二:没有/usr/local/nagios/etc/nrpe.cfg该文件
原因:未在安装nrpe时没有执行make install-config命令
问题三:安装pnp4nagios不要放在/usr/local/nagios下 否则会覆盖nagios页面 导致页面失败
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/123221.html