Nagios 安装配置与开发Word文档下载推荐.docx
《Nagios 安装配置与开发Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《Nagios 安装配置与开发Word文档下载推荐.docx(43页珍藏版)》请在冰点文库上搜索。
![Nagios 安装配置与开发Word文档下载推荐.docx](https://file1.bingdoc.com/fileroot1/2023-5/5/05f43f10-b167-4672-9fb3-02da6f4934f4/05f43f10-b167-4672-9fb3-02da6f4934f41.gif)
5.Nagios依次读取队列中的信息,再把结果显示出来。
3配置过程中的关系
在nagios的配置过程中涉及到的几个定义有:
主机、主机组,服务、服务组,联系人、联系人组,监控时间,监控命令等,从这些定义可以看出,nagios各个配置文件之间是互为关联,彼此引用的。
成功配置出一台nagios监控系统,必须要弄清楚每个配置文件之间依赖与被依赖的关系,最重要的有四点:
第一:
定义监控哪些主机、主机组、服务和服务组;
第二:
定义这个监控要用什么命令实现;
第三:
定义监控的时间段;
第四:
定义主机或服务出现问题时要通知的联系人和联系人组
二、安装
1在Vmware上安装和配置RHEL6.6
在Vmwareworkstation上分配了2G内存和80G硬盘空间,一定不要选择快速安装。
1)安装RHEL6.6
安装包,选择【基本服务器】安装:
在虚拟机上安装很快,大约30分钟:
2)设置虚拟机中的网络
在虚拟机中采用NAT网卡模式,
启用网卡
#vi/etc/sysconfig/network-scripts/ifcfg-eth0
ONBOOT=yes
重启网络服务
#servicenetworkrestart
测试网络是否正常
#ping
测试主机到虚拟机的访问是否正常,用SecureCRT进行连接。
注意要更改SecureCRT的终端显示设置,否则回显汉字会乱码:
3)配置yum本地更新源
#mount/dev/cdrom/mnt
#cd/etc/yum.repos.d
#virhel-source.repo
注释掉下面的三行内容,然后替换为新值
[rhel-source]
name=RedHatEnterpriseLinux$releasever-$basearch-Source
#baseurl=ftp:
//
#enabled=0
#gpgcheck=1
baseurl=file:
///mnt
enabled=1
gpgcheck=0
然后测试
#yumlist
2安装Nagios前准备
1)安装依赖关系包
#yuminstall-yhttpdphpgccgdnet-snmpxinetdopenssl-devel
注:
能查询和下载各个版本的RPM包的网站
安装gd-devel
#wgetftp:
//195.220.108.108/linux/centos/6.6/os/x86_64/Packages/gd-devel-2.0.35-11.el6.x86_64.rpm
#yuminstall-ygd-devel-2.0.35-11.e16.x86_64.rpm
2)Nagios四类组件的作用
NagiosCore
NagiosCore顾名思义,它是Nagios系统的核心部分,包含核心监测引擎和一个基本的web界面。
下载地址http:
//www.nagios.org/download/core。
NagiosPlugins
NagiosPlugins是Nagios插件包,通过它来监视服务,应用程序,指标,等等。
像NRPE、NSClient++等,下载地址http:
//www.nagios.org/download/plugins/。
NagiosFrontends
NagiosFrontends是Nagios的皮肤前端,可以通过它得到一些比较个性化、绚丽的Web监控界面。
NagiosAddons
NagiosAddons是Nagios扩展项目,http:
//www.nagios.org/download/addons/
3)下载安装包
在界面上点击,逐步取得下载安装包的下载地址
下载NagiosCore
#cd/tmp
#wget
下载NagiosPlugins
#wgethttp:
//nagios-plugins.org/download/nagios-plugins-2.0.3.tar.gz
4)创建Nagios用户
#useraddnagios
#mkdir/usr/local/nagios
#chown-Rnagios.nagios/usr/local/nagios/
3安装NagiosCore
#tarzxvfnagios-4.0.8.tar.gz
#cdnagios-4.0.8
#./configure--prefix=/usr/local/nagios/
#makeall
#makeinstall
#makeinstall-init
#makeinstall-commandmode
#makeinstall-config
#makeinstall-webconf
4建立NagiosCore服务
#chkconfig--addnagios
#chkconfig--level35nagioson
#chkconfig--listnagios
5验证NagiosCore配置是否正确
#cd/tmp/nagios-4.0.8
#cp-Rcontrib/eventhandlers//usr/local/nagios/libexec/
#chown-Rnagios:
nagios/usr/local/nagios/libexec/eventhandlers
#/usr/local/nagios/bin/nagios-v/usr/local/nagios/etc/nagios.cfg
切换目录到安装路径(这里是/usr/local/nagios),看是否存在etc、bin、sbin、share、var这五个目录,如果存在则可以表明程序被正确的安装到系统了。
Nagios各个目录用途说明如下:
bin--Nagios可执行程序所在目录
etc--Nagios配置文件所在目录
sbin--NagiosCGI文件所在目录,也就是执行外部命令所需文件所在的目录
share--Nagios网页文件所在的目录
libexec--Nagios外部插件所在目录
var--Nagios日志文件、lock等文件所在的目录
var/archives--Nagios日志自动归档目录
var/rw--用来存放外部命令文件的目录
6重启nagios、httpd
#/etc/init.d/nagiosstart
#/etc/init.d/httpdstart
7设置WEB管理员用户访问密码
#htpasswd-c/usr/local/nagios/etc/htpasswd.usersnagiosadmin
8安装NagiosPlugins
#tarzxvfnagios-plugins-2.0.3.tar.gz
#cdnagios-plugins-2.0.3
#./configure--prefix=/usr/local/nagios
#make
三、后续配置与问题处理
1关闭防火墙
#serviceiptablesstop
#chkconfigiptablesoff
2关闭SELinux
#vi/etc/selinux/config
更改如下:
#SELINUX=enforcing
SELINUX=disabled
不关闭SELinux或是永久性变更它的方法是让CGI模块在SELinux下指定强制目标模式:
chcon-R-thttpd_sys_content_t/usr/local/nagios/sbin/
chcon-R-thttpd_sys_content_t/usr/local/nagios/share/
3Apache权限配置
#cd/etc/httpd/conf
#vihttpd.conf
修改如下用户和群组
#Userapache
#Groupapache
Usernagios
Groupnagios
重新启动httpd服务
#servicehttpdrestart
4查看httpd是否报错
#vi/var/log/httpd/error_log
四、测试安装结果
访问虚拟机地址
http:
//192.168.72.129/nagios
输入nagiosadmin/password
点击左侧Services
五、配置
1精简界面
用浏览器打开后只显示那个广告框架。
发现加载的是main.php。
我们想要的是直接加载service标签。
#cd/usr/local/nagios/share
#viindex.php
做如下修改:
//$url='
main.php'
;
$url='
cgi-bin/status.cgi'
#再次打开http:
//ip/nagios直接加载的就是service标签了。
#viside.php
删除最开始的如下广告导航代码
<
divclass="
navsection"
>
navsectiontitle"
General<
/div>
navsectionlinks"
ulclass="
li>
ahref="
main.php"
target="
?
phpecho$link_target;
"
Home<
/a>
/li>
_blank"
Documentation<
/ul>
2处理一个报错信息
当nagios监测http时,会报错“HTTPWARNING:
HTTP/1.1403Forbidden~~~”,解决方案如下:
报错前提:
刚刚添加监控HTTP服务时,Nagios就报错了!
错误内容如下:
HTTPWARNING:
HTTP/1.1403Forbidden-5240bytesin0.001secondresponsetime|time=0.001260s;
0.000000size=5240B;
原因是nagios监控HTTP时,会监控到/var/www/html/下面的index.html文件,若没有就会提示错误,创建一个文件即可!
#touch/var/www/html/index.html
附录:
常见问题与排错
Nagios是一套强大的监控报警系统,但是你不花一些时间,是绝对不可能很好地配置它的。
除非你只需要监控主机的alive等简单的情况(例如ping),否则请放弃幻想,以极大的耐心去研究它吧。
(1)默认安装情况下主配置文件
Nagios的主配置文件为:
/usr/local/nagios/etc/nagios.cfg
打开这个文件,可以清楚地看到它指定了其他的配置文件:
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
所以你要注意了,不要以为“objects”目录下的只是示例文件而已,它们默认被当作了实际上使用的配置文件,你不需要麻烦地拷贝一份出来到/usr/local/nagios/etc/目录下再修改,直接修改这些配置文件就好了。
文章来源:
(2)“Map”、“Trends”功能无法使用
错误提示为:
TherequestedURL/nagios/cgi-bin/statusmap.cgiwasnotfoundonthisserver.
TherequestedURL/nagios/cgi-bin/trends.cgiwasnotfoundonthisserver.
是因为编译Nagios的时候没有编译出相应的CGI文件(默认安装时,在/usr/local/nagios/sbin/目录下)。
编译依赖项:
libgd
libgd-devel
libpng
libpng-devel
libjpeg
libjpeg-devel
zlib
zlib-devel
查询安装情况:
rpm-qa|grepzlib
其中gd的两个包名分别类似于:
gd-2.0.33-9.4.el5_1.1.x86_64.rpm
gd-devel-2.0.33-9.4.el5_1.1.x86_64.rpm
安装相应的RPM包后,重新编译安装Nagios:
./configure--with-gd-lib=/usr/lib--with-gd-inc=/usr/include
makeall
makeinstall
(3)重新编译安装Nagios(configure、makeall、makeinstall)不用担心配置文件会丢失
因为makeinstall只会把Nagios主程序、CGI、HTML给安装上。
(4)如果你在defineservice的时候,使用了一个模板
例如:
uselocal-service;
Nameofservicetemplatetouse
那么你可以在这个service中覆盖模板里的配置。
例如,模板里设置了:
notifications_enabled1
你却可以在这个service中设置:
notifications_enabled0
这样,对这个service来说,触发条件时也不会报警的。
(5)报警邮件通过sendmail发不出去?
请查看邮件日志文件(/var/log/maillog)的内容查找原因。
当然,最好用mail试一下:
mail-vyourmail@
然后依次输入邮件的标题、正文以及抄送地址,回车发送!
然后再去邮件日志文件里看日志,是成功了还是失败了,分析原因。
(6)如果配置了短信发送报警信息,但是却收不到短信
要提醒你的是:
①在definecommand的地方,command_line里写的发送报警短信的命令行中,用于发送报警短信的程序要写全路径,例如/usr/local/bin/sendsms,不要以为写一个“sendsms”就可以了,尽管你在Linux命令行下可以找到这个命令(因为它在/usr/local/bin/目录下),但是对Nagios来说,它却找不到,所以要写全路径。
这个规律我是试验发现的,至于是不是普遍现象,或者是不是所有版本的Nagios都是这样,我不知道,我只是通过试验知道这样能解决问题。
②短信接口的70个字符限制,有时候超过了是发不出短信的!
请确认你的短信接口允许的单条短信字符数限制。
(7)在montoringserver上执行命令出错
/usr/local/nagios/libexec/check_nrpe-H192.168.17.2-ccheck_disk
提示错误:
NRPE:
Command'
check_disk'
notdefined
这是因为没有配置好两端的NRPE和Nagios,使得monitoringserver不能远程执行check_disk命令。
在被监控服务器端,需要修改nrpe.cfg文件:
dont_blame_nrpe=1
这将允许命令带参数执行。
另外,在nrpe.cfg文件的最后,原来有几行注释掉的内容:
#command[check_users]=/usr/local/nagios/libexec/check_users-w$ARG1$-c$ARG2$
#command[check_load]=/usr/local/nagios/libexec/check_load-w$ARG1$-c$ARG2$
#command[check_disk]=/usr/local/nagios/libexec/check_disk-w$ARG1$-c$ARG2$-p$ARG3$
#command[check_procs]=/usr/local/nagios/libexec/check_procs-w$ARG1$-c$ARG2$-s$ARG3$
把它们取消注释。
处于注释状态的话,NRPE当然找不到这些命令了。
修改完之后,需要重启服务:
servicexinetdrestart
(8)错误“CHECK_NRPE:
Received0bytesfromdaemon.Checktheremoteserverlogsforerrormessages.”的解决
这篇文章详细地讲解了解决办法:
Nagios:
HowtoEnablecheck_nrpeCommandLineArguments
看完之后你可能很后悔你没有早看到这篇文章吧?
没错,和我一样,要重新编译安装NRPE,不过配置Nagios、NRPE的过程就是这样,折腾来折腾去,不费点劲是解决不了问题的。
(9)在Nagios中,你会看到类似于“RTA=455.04ms”的数据,RTA是什么呢?
引用网上的话作答:
RoundTripAverage.Theaveragetimeittooktoreceivearesponsetoyourpingpackets.
(10)在Nagios中,检测时间周期
默认是以分钟为单位的,例如“normal_check_interval”的值为5时,代表正常检测周期为5分钟。
假设你想以5秒钟检测一次,怎么办?
这时候你需要修改配置文件nagios.cfg中的“interval_length”参数的值,默认值为60,代表基数是60秒,你改成1,代表基数是1秒,这时,“normal_check_interval”的值为5就表示正常