Nagios服务端安装
5.1 基础支持套件:gcc glibc glibc-common gd gd-devel xinetd openssl-devel
# rpm -q gcc glibc glibc-common gd gd-devel xinetd openssl-devel
如果系统中没有这些套件,使用yum 安装
# yum install -y gcc glibc glibc-common gd gd-devel xinetd openssl-devel
5.2 创建nagios用户和用户组
# useradd -s /sbin/nologin nagios
# mkdir /usr/local/nagios
# chown -R nagios.nagios /usr/local/nagios
查看nagios 目录的权限
# ll -d /usr/local/nagios/
5.3 编译安装Nagios
wget http://downloads.sourceforge.net/project/nagios/nagios-4.x/nagios-4.2.0/nagios-4.2.0.tar.gz# make all
# make install
# make install-init
# make install-commandmode
# make install-config
# chkconfig --add nagios
# chkconfig --level 35 nagios on
# chkconfig --list nagios
5.4 验证程序是否被正确安装
切换目录到安装路径(这里是/usr/local/nagios),看是否存在etc、bin、sbin、share、var 这五个目录,如果存在则可以表明程序被正确的安装到系统了。Nagios 各个目录用途说明如下:
bin | Nagios 可执行程序所在目录 |
etc | Nagios 配置文件所在目录 |
sbin | Nagios CGI 文件所在目录,也就是执行外部命令所需文件所在的目录 |
share | Nagios网页文件所在的目录 |
libexec | Nagios 外部插件所在目录 |
var | Nagios 日志文件、lock 等文件所在的目录 |
var/archives | Nagios 日志自动归档目录 |
var/rw | 用来存放外部命令文件的目录 |
5.5 安装Nagios 插件
wget http://nagios-plugins.org/download/nagios-plugins-2.1.2.tar.gz5.6 安装与配置Apache和Php
Apache 和Php 不是安装nagios 所必须的,但是nagios提供了web监控界面,通过web监控界面可以清晰的看到被监控主机、资源的运行状态,因此,安装一个web服务是很必要的。
需要注意的是,nagios在nagios3.1.x版本以后,配置web监控界面时需要php的支持。这里我们下载的nagios版本为nagios-3.4.3,因此在编译安装完成apache后,还需要编译php模块,这里选取的php版本为php5.4.10。
a. 安装Apache
wget http://archive.apache.org/dist/httpd/httpd-2.2.23.tar.gz若出现错误:
则在编译时入加 --with-included-apr 即可解决。
b. 安装Php
wget http://cn2.php.net/distributions/php-5.4.26.tar.gz
有报错信息:
Configuring extensions
checking size of long... (cached) 8
checking size of int... (cached) 4
checking for int32_t... yes
checking for uint32_t... yes
checking for sys/types.h... (cached) yes
checking for inttypes.h... (cached) yes
checking for stdint.h... (cached) yes
checking for string.h... (cached) yes
checking for stdlib.h... (cached) yes
checking for strtoll... yes
checking for atoll... yes
checking for strftime... (cached) yes
checking which regex library to use... php
checking whether to enable LIBXML support... yes
checking libxml2 install dir... no
checking for xml2-config path...
configure: error: xml2-config not found. Please check your libxml2 installation.
需要重新安装lib包
yum install libxml2 –y
yum install libxml2-devel –y
如果有问题:
yum install libpng-devel
yum install libpng
之后继续make,成功了
# make && make install
c. 配置apache
找到apache 的配置文件/usr/local/apache2/conf/httpd.conf
找到:
User daemon
Group daemon
修改为
User nagios
Group nagios
然后找到
<IfModule dir_module> DirectoryIndex index.html IfModule>
修改为
<IfModule dir_module> DirectoryIndex index.html index.php IfModule>
接着增加如下内容:
AddType application/x-httpd-php .php
最后修改添加 ServerName 127.0.0.1:80
为了安全起见,一般情况下要让nagios 的web 监控页面必须经过授权才能访问,这需要增加验证配置,即在httpd.conf 文件最后添加如下信息:
#setting for nagiosd. 创建apache目录验证文件
在上面的配置中,指定了目录验证文件htpasswd,下面要创建这个文件:
# /usr/local/apache2/bin/htpasswd -c /usr/local/nagios/etc/htpasswd david
这样就在/usr/local/nagios/etc 目录下创建了一个htpasswd 验证文件,当通过http://192.168.1.108/nagios/ 访问时就需要输入用户名和密码了。
e. 查看认证文件的内容
# cat /usr/local/nagios/etc/htpasswd
f. 启动apache 服务
# /usr/local/apache2/bin/apachectl start
到这里nagios 的安装也就基本完成了,你可以通过web来访问了。
配置Nagios
Nagios 主要用于监控一台或者多台本地主机及远程的各种信息,包括本机资源及对外的服务等。默认的Nagios 配置没有任何监控内容,仅是一些模板文件。若要让Nagios 提供服务,就必须修改配置文件,增加要监控的主机和服务,下面将详细介绍。
6.1 默认配置文件介绍
Nagios 安装完毕后,默认的配置文件在/usr/local/nagios/etc目录下。
每个文件或目录含义如下表所示:
文件名或目录名 | 用途 |
cgi.cfg | 控制CGI访问的配置文件 |
nagios.cfg | Nagios 主配置文件 |
resource.cfg | 变量定义文件,又称为资源文件,在些文件中定义变量,以便由其他配置文件引用,如$USER1$ |
objects | objects 是一个目录,在此目录下有很多配置文件模板,用于定义Nagios 对象 |
objects/commands.cfg | 命令定义配置文件,其中定义的命令可以被其他配置文件引用 |
objects/contacts.cfg | 定义联系人和联系人组的配置文件 |
objects/localhost.cfg | 定义监控本地主机的配置文件 |
objects/printer.cfg | 定义监控打印机的一个配置文件模板,默认没有启用此文件 |
objects/switch.cfg | 定义监控路由器的一个配置文件模板,默认没有启用此文件 |
objects/templates.cfg | 定义主机和服务的一个模板配置文件,可以在其他配置文件中引用 |
objects/timeperiods.cfg | 定义Nagios 监控时间段的配置文件 |
objects/windows.cfg | 监控Windows 主机的一个配置文件模板,默认没有启用此文件 |
6.2 配置文件之间的关系
在nagios的配置过程中涉及到的几个定义有:主机、主机组,服务、服务组,联系人、联系人组,监控时间,监控命令等,从这些定义可以看出,nagios各个配置文件之间是互为关联,彼此引用的。
成功配置出一台nagios监控系统,必须要弄清楚每个配置文件之间依赖与被依赖的关系,最重要的有四点:
第一:定义监控哪些主机、主机组、服务和服务组;
第二:定义这个监控要用什么命令实现;
第三:定义监控的时间段;
第四:定义主机或服务出现问题时要通知的联系人和联系人组。
6.3 配置Nagios
为了能更清楚的说明问题,同时也为了维护方便,建议将nagios各个定义对象创建独立的配置文件:
define command{
command_name check_nt
command_line $USER1$/check_nt -H $HOSTADDRESS$ -p 12489 -s 123456 -v $ARG1$ $ARG2$
}
cgi.cfg文件
此文件用来控制相关cgi脚本,如果想在nagios的web监控界面执行cgi脚本,例如重启nagios进程、关闭nagios通知、停止nagios主机检测等,这时就需要配置cgi.cfg文件了。
由于nagios的web监控界面验证用户为david,所以只需在cgi.cfg文件中添加此用户的执行权限就可以了,需要修改的配置信息如下:
nagios.cfg文件
nagios.cfg默认的路径为/usr/local/nagios/etc/nagios.cfg,是nagios的核心配置文件,所有的对象配置文件都必须在这个文件中进行定义才能发挥其作用,这里只需将对象配置文件在Nagios.cfg文件中进行引用即可。
6.4 验证Nagios 配置文件的正确性
Nagios 在验证配置文件方面做的非常到位,只需通过一个命令即可完成:
# /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
看到上面这些信息就说明没问题了,然后启动Nagios 服务。
7.1 启动Nagios
a. 通过初始化脚本启动nagios
# /etc/init.d/nagios start
or
# service nagios start
b. 手工方式启动nagios
# /usr/local/nagios/bin/nagios -d /usr/local/nagios/etc/nagios.cfg
7.2 重启Nagios
当修改了配置文件让其生效时,需要重启/重载Nagios服务。
a. 通过初始化脚本来重启nagios
# /etc/init.d/nagios reload
or
# /etc/init.d/nagios restart
or
# service nagios restart
b. 通过web监控页重启nagios
可以通过web监控页的 "Process Info" -> "Restart the Nagios process"来重启nagios
c. 手工方式平滑重启
# kill -HUP <nagios_pid>
7.3 停止Nagios
a. 通过初始化脚本关闭nagios服务
# /etc/init.d/nagios stop
or
# service nagios stop
b. 通过web监控页停止nagios
可以通过web监控页的 "Process Info" -> "Shutdown the Nagios process"来停止nagios
c. 手工方式停止Nagios
# kill <nagios_pid>
八、查看初步配置情况
8.1 启动完成之后,登录Nagios Web监控页http://192.168.1.108/nagios/ 查看相关信息。
8.2 点击左面的Current Status -> Hosts 可以看到所定义的三台主机已经全部UP了。
8.3 点击Current Status -> Services 查看服务监控情况。
看到Nagios-Linux和Nagios-Server的服务状态已经OK了,但是Nagios-Windows的服务状态为CRITICAL,Status Information 提示Connection refused。因为Nagios-Windows上还未安装插件,内部服务还无法查看,所以出现这种情况。将在下面具体讲解。