基于Centos的Nagios安装
Nagios 的安装 1. 进行环境安装
#yuminstall -y gcc glibcglibc-common gd gd-devel xinetd openssl-devel httpd php
2. 进行selinux设置(如果服务器不做selinux防护)
查看当前系统的selinux状态,#getenforce,
(Permissive/Enforcing),当状态为Permissive才是关闭selinux,需设置selinux为permissive
a. 临时关闭(不用重启机器) #setenforce 0
b. 修改配置文件需要重启机器生效,永久关闭: # vim /etc/selinux/config
将SELINUX=enforcing改为SELINUX=disabled
多提一点,系统防火墙iptables的设定。 如果开启防火墙,需要放开端口 不开启防火墙也可以
3. 建立用户和用户组
# useradd -s /sbin/nologin nagios # mkdir /usr/local/nagios
# chown -R nagios.nagios /usr/local/nagios/
4. 完成之后将下载的nagios压缩包拷贝到制定目录,切换到目录
# tar –zxvf nagios-xxxx(version-id).tar.gz # cd nagios
进行初始化和建立编译的环境
# ./configure --prefix=/usr/local/nagios #------------指定目录 # make all
# make install #------------安装二进制文件 #make install-init #-------------初始化脚本 #make install-config #-------------示例配置文件 #make install-commandmode#-------------设置目录权限
#make install-webconf #--------------web配置文件
(web配置文件默认安装到Apache的conf.d的目录下,下面还会有相关步骤)
如果安装完成之后使用命令:# ls /usr/local/nagios
能够在/usr/local/nagios的目录下面看到这些目录(bin etc sbin share var)就说明nagios安装成功了。
5. 添加nagios的服务启动
#chkconfig --add nagios
#chkconfig --list nagios
6. nagios插件nagios-plugins-xxx(version-id).tar.gz的安装
# tar –zxvf nagios-plugins-xxx(version-id).tar.gz # ./configure --prefix=/usr/local/nagios # make && make install
7. 检查配置文件的正确性
#/usr/local/nagios/bin/nagios –v/usr/local/nagios/etc/nagios.cfg 这条命令很关键,每次重启前一定要检查,有详细的报错信息
报错信息没有,即可启动nagios #service nagios start
#service httpd start --------------- 前提是已经安装了Apache服务
8. 使用apache来创建基本的web页认证方式
在apache中使用基本认证的方式创建一个admin的用户用于nagios的web界面的登录。 注意记住你所设置的登录口令,而该用户会的帐号和密码会被存储到/usr/local/nagios/etc/passwd.users文件中。
如果想要查看也只能看到用户,而密码却是经过MD5加密的,无法看到。 # htpasswd –c /usr/local/nagios/etc/htpasswd.users admin
9. 登录界面出现的故障
如果监控的页面出现下面的错误提示,那么就需要修改nagios的配置文件来进行修复了。
#vim /usr/local/nagios/etc/cgi.cfg
找到use_authentication=1 #把1修改为0,然后保存 #service nagios restart #service httpd restart
10. 重启nagios出现故障
A.Nagios新建用户后启动nagios服务报Starting nagios:This account is currently not available.
这个账户目前不可用:
解决办法: # vim /etc/passwd
把 nagios:x:501:501::/home/nagios:/sbin/nologin
修改为
nagios:x:501:501::/home/nagios:/bin/bash
重启nagios
#service nagios restart
B.nagios.log permission # service nagios start
Starting nagios:touch: cannot touch `/usr/local/nagios/var/nagios.log': Permission denieddone. 解决办法
#ls -alt /usr/local/nagios/var/nagios.log
#chown nagios:nagios /usr/local/nagios/var/nagios.log #service nagios restart
11. Nagios HTTP WARNING: HTTP/1.1 403 Forbidden
Whenever I newly setup the nagios server I mostly get this error “Nagios HTTP WARNING: HTTP/1.1 403 Forbidden”.
In dashboard it shows alert on localhost i.e our own newly set up nagios server.
To solve this alert, create a index.html file inside /var/www/html in server: #touch /var/www/html/index.html #service nagios restart #service httpd restart
Nagios 配置
Nagios 的配置过程涉及几个定义有:主机、主机组、服务、服务组、联系人、联系人组、监控时间和监控命令等,从这些定义可以看出,Nagios 的各个配置文件之间是互为关联、彼此引用的。
/usr/local/nagios/目录下会生成 nagios 相关目录及配置文件,默认的的配置文件在/usr/local/nagios/etc 目录下。
例如在/usr/local/nagios/etc/object下,可以看到以下模板(先忽略倒数三个,那是笔者自己添加的模板):
/usr/local/nagios/etc 目录如下:
1、templates.cfg 文件介绍
这是一个默认模板配置文件,在此可以定义模板,在其他文件中引用。
通用模板定义,包括监控主机模板generic-host,linux_server;监控服务模板local_service;联系人模板generic-contact(并非真正的联系人,真正的联系人在contacts.cfg中定义)。很重要!!!
后边的pnp会用到此模板来编辑添加,这个后边会再讲。 里面具体的数据配置自行搜索,很多资料都可以网上找到。
2、host.cfg 文件
此文件默认情况下不存在,需要手动创建。hosts.cfg 主要用来指定被监控的主机地址及相关属性信息。这里笔者编制的不是这个文件名,文件名可以自行编辑,也可以一个文件里添加多台服务器,也可以添加多个host.cfg(只要不嫌麻烦,但有针对性)。 以下是一个定义主机配置实例: define host {
use linux-server #引用主机 linux-server 的属性信息,linux-server 主机在 templates.cfg 文件中进行了定义。
host_name DirHost162 #被监控主机名
alias RHEL6.3_CSDA-FVT-Server #被监控主机别名 address 192.168.1.162 ##被监控主机 IP 地址 }
3、services.cfg 文件
此文件在默认情况下也不存在,需要手动创建。services.cfg 文件主要用于定义监控的服务和主机资源,例如监控 HTTP 服务、FTP 服务、主机磁盘空间、主机系统负载等。 以下是一个定义服务配置: #Define DirHost162 define service{
use local-service #引用服务 local-service 的属性信息,local-service 主机在 templates.cfg 文件中进行了定义。 host_name DirHost162 #被监控主机名 service_description SSH #监控的服务
check_command check_ssh # nagios 插件监控指令 }
define service{
use local-service,services-pnp host_name DirHost162 service_description SSHD
check_command check_tcp!22 # 使用的检测命令, 同时多个参数匹配用 “!” 分隔,如:check_ping!100.0,20%!500.0,60% }
笔者留:在服务器上,本人并没有添加两个文件,而是将两个文件合在一个一起写。 如下:
hosts-pnp,srv-pnp这两个忽略,先视而不见 这个文件里包括了host,service,hostgroup。 host,我这边定义了两个(win7和win2003-1.111)。 hostgroup,在members里添加2个,多出来的用“,” 隔开。 service,也是一样,多出来的用“,” 隔开,包括service的use也是
4、配置一个简单主机监控
创建完这个文件,还需要连接到主配置文件。 编辑 Nagios配置文件,添加所要监控的主机 #vim /usr/local/nagios/etc/nagios.cfg
#/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg 记得检查一下 确定配置文件无误后
service nagios restart
再登录nagios界面,就可以看到漂亮的页面出现
Nagios 的多功能插件安装应用 一、pnp4nagios性能分析图标的作用
Nagios 对服务或主机监控的是一个瞬时状态,有时候系统管理员需要了解主机在一段时间内的性能及服务的响应状态,并且形成图表,这就需要通过查看日志数据来分析。但是这种方式不仅烦琐,而且抽象。为了能更直观的查看主机运行状态,这里采用 PNP 来实现此功能。PNP 是一个小巧的开源软件包,它是基于 PHP 和 Perl 脚本编写,PNP 可以利用rrdtool(有些文档可能介绍的是rrdtoul,都一样的。)工具将 Nagios 采集的数据绘制成图表,然后显示主机或者服务在一段时间内运行的状况。以下详细介绍 PNP 安装配置流程:
1、安装 RDDtool 工具
#wget http://down1.chinaunix.net/distfiles/rrdtool-1.4.5.tar.gz -----链接地址以实际为准 #tar zxvf rrdtool-1.4.5.tar.gz #cd rrdtool-1.4.5
#./configure --prefix=/usr/local/rrdtool #make && make install
注:在安装rrdtool时候可能会报错
configure: error: Please fix the library issues listed above and try again
解决方法,安装如下:
yum -y install zlib libpng freetype libart_lgpl libart_lgpl-devel libxml* pango*
我用的是centos系统所以直接用的yum来安装方便,如果系统没有yum源,网上还有其他的方法,没试过,也不确定是不是可以,贴一下网上的方法如下:
2、安装pnp工具
#wget http://down1.chinaunix.net/distfiles/pnp4nagios-0.6.14.tar.gz #tar zxvf pnp4nagios-0.6.14.tar.gz #cd pnp4nagios-0.6.14
#./configure --with-nagios-user=nagios \\
--with-nagios-group-nagios \\
--with-rrdtool=/usr/local/rrdtool/bin/rrdtool \\ --with-perfdata-dir=/usr/local/nagios/share/perfdata #make all #make install #make install-config #make install-init
注:在编译PNP的时候有可能会出现如下的错误报告:
WARNING: The RRDs Perl Modules are not found on your system Using RRDs will speedup things in larger installations.
这个错误的原因是没有找到RRD perl模块,查看RRDTool的安装包,找到路径
ll /usr/local/rrdtool/lib/perl/5.10.1/x86_-linux-thread-multi/
这是我系统上的路径,一般都是在这里,实在不知道,就/usr/local/rrdtool/lib/这个目录找下去。
刚刚如果configure不过去,再加上一条如下: #./configure --with-nagios-user=nagios \\ --with-nagios-group-nagios \\
--with-rrdtool=/usr/local/rrdtool/bin/rrdtool \\
--with-perfdata-dir=/usr/local/nagios/share/perfdata\\
--with-perl_lib_path=/usr/local/rrdtool/lib/perl/5.10.1/x86_-linux-thread-multi/
3、配置PNP
# cd /usr/local/pnp4nagios/etc/
# cp process_perfdata.cfg-sample process_perfdata.cfg # cp npcd.cfg-sample npcd.cfg # cp rra.cfg-sample rra.cfg
# chown -R nagios:nagios /usr/local/nagios/etc/pnp
4、修改process_perfdata.cfg文件
#vim process_perfdata.cfg
将“LOG_LEVEL = 0”中的 0 改为 2,这是开启了日志的调试功能,保存。
5、修改 Nagios 相关配置文件
a.修改nagios.cfg
#vim /usr/local/nagios/etc/nagios.cfg
如果想让nagios将数据输出,首先要修改nagios的主配置文件nagios.cfg,找到如下几项,如有注释的将其去掉。修改后的信息如下: process_performance_data=1
host_perfdata_command=process-host-perfdata
service_perfdata_command=process-service-perfdata
b.修改templates.cfg
#cd /usr/local/nagios/etc/objects/ #vim templates.cfg
修改templates.cfg,增加一个定义PNP的host和service。修改后的内容如下图所示:
c.修改commands.cfg #vim commands.cfg
process-host-perfdata和process-service-perfdata指令声明了nagios输出哪些值到输出文件中。不过这些定义相对简单,而PNP提供了一个Perl脚本,非常详细地定义了一个输出数据的方法,process_perfdata.pl就是PNP自带的一个脚本,这个脚本在PNP安装完成后会自动生成。因此,可以将
process-host-perfdata
和
process-service-perfdata指令中对应的执行命令的内容替换成此脚本。
注意command_line那一行,原有那行不起效可以注释掉,再添加一行,注意看路径。
d、修改hosts.cfg文件和services.cfg文件
将hosts-pnp和services-pnp引用到hosts.cfg和services.cfg中。 上文已经介绍,这里我把两个文件合在一个了,所以我的修改如下:
这样子,一个可以看实时流量的模板就出来了。
这个是监控Windows系统的模板,在Windows客户端要下载相应的软件NSClient++。