Nagios 系统介绍
Nagios是一个用来监视系统和网络的开源应用软件,它通常运行于一个主服务器上,
这个服务器运行 Liunx 或 Unix 操作系统。Nagios 利用其众多的插件实现对本机和远端服务的监控,当被监控对象出现异常,Nagios 就会及时给管理人员告警。它是一个基于 TCP/IP
协议的软件包,包含有nagios主程序和它的各个插件,配置非常灵活,可以监视的项目很多,也可以通过自定义 shell 脚本进行监控服务,非常适合各类企业的网络应用。
Nagios 系统的主要特点
Nagios 系统的特点主要有下面几点:
1.监控主机资源和网络服务
2.允许用户通过设计实现简单的插件来监控自己特定的服务
3.当被监控对象出现问题时,会及时通知管理人员
4.事先定义事件处理程序,当对象出现问题时自动调用对应的处理程序
5.通过 web 页面来监视对象状态,警告提示和日志文件。
可见,Nagios 采用分布--集中的管理模式。在 Nagios 服务器上安装 Nagios 主程序,
在被监控主机上安装 Nagios 代理程序。通过 Nagios 主程序和 Nagios 代理程序之间的通讯,监视对象的状态。
以下是我在RHEL5.4上进行的配置过程:
准备软件包 <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
nagios-<?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" />3.2.1.tar.gz
nagios-plugins-1.4.14.tar.gz
nrpe-2.12.tar.gz
安装必备软件包:
[root@station1 ~]# yum -y install httpd gcc glibc glibc-common gd gd-devel php
支持
PHP
[root@station1 ~]# vim /etc/httpd/conf/httpd.conf
DirectoryIndex index.html index.html.var index.php index.phps
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
[root@station1 html]# cat index.php
<?php
phpinfo();
?>
[root@station1 html]#
<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" />

创建
nagios
用户与组
(
用户组
nagcmd
用于从
web
接口执行外部命令
.)
[root@station1 ~]# useradd nagios;passwd nagios
Changing password for user nagios.
New UNIX password:
BAD PASSWORD: it is too short
Retype new UNIX password:
passwd: all authentication tokens updated successfully.
[root@station1 ~]# groupadd nagcmd
[root@station1 ~]# usermod -G nagcmd nagios
[root@station1 ~]# usermod -G nagcmd apache
[root@station1 ~]#
[root@station1 src]# cd /usr/local/src/
[root@station1 src]# ls
nagios-3.2.1.tar.gz nagios-plugins-1.4.14.tar.gz nrpe-2.12.tar.gz
[root@station1 src]# tar zxvf nagios-3.2.1.tar.gz
[root@station1 src]# cd nagios-3.2.1
[root@station1nagios-3.2.1]#./configure–with-command-group=nagcmd –prefix=/usr/local/nagios
[root@station1nagios-3.2.1]#make all
[root@station1nagios-3.2.1]#make install #
安装主程序
,CGI
和
HTML
文件
[root@station1nagios-3.2.1]#make install-init #
在
/etc/rc.d/init.d
安装启动脚本
[root@station1nagios-3.2.1]#make install-config #
安装示例配置文件
[root@station1nagios-3.2.1]#make install-commandmode #
配置目录权限
验证是否安装成功
:
[root@station1 nagios]# pwd
/usr/local/nagios
[root@station1 nagios]# ls
bin etc libexec sbin share var
[root@station1 nagios]# cd var/
[root@station1 var]# ls
archives rw spool
[root@station1 var]
编译并安装nagios插件 nagios‐plugins
[root@station1 src]# tar zxvf nagios-plugins-1.4.14.tar.gz
[root@station1 src]# cd nagios-plugins-1.4.14
[root@station1nagios-plugins-1.4.14]#./configure--with-nagios-user=nagios --with-nagios-group=nagios --prefix=/usr/local/nagios/
[root@station1nagios-plugins-1.4.14]# make && make install
验证插件是否安装成功
:
[root@station1 nagios]# du -h libexec/
3.4M
libexec/
[root@station1 nagios]#
配置
Apache
[root@station1 ~]# vim /etc/httpd/conf/httpd.conf
###############################
# setting for nagios 20100719 #
###############################
ScriptAlias /nagios/cgi-bin/ "/usr/local/nagios/sbin"
<Directory "/usr/local/nagios/sbin">
Options ExecCGI
Order allow,deny
Allow from all
AllowOverride None
AuthName "Nagios Access"
AuthType basic
AuthUserFile /usr/local/nagios/etc/htpasswd
Require valid-user
</Directory>
Alias /nagios "/usr/local/nagios/share"
<Directory "/usr/local/nagios/share">
Options None
Order allow,deny
Allow from all
AllowOverride None
AuthName "Nagios Access"
AuthType basic
AuthUserFile /usr/local/nagios/etc/htpasswd
Require valid-user
</Directory>
创建
apache
目录验证文件
[root@station1 ~]# htpasswd -cm /usr/local/nagios/etc/htpasswd nagiosadmin
New password:
Re-type new password:
Adding password for user nagiosadmin
查看
cgi.cfg
是否允许
nagiosadmin
用户的认证
[root@station1 etc]# pwd
/usr/local/nagios/etc
[root@station1 etc]# grep authorized < cgi.cfg
authorized_for_system_information=nagiosadmin
authorized_for_configuration_information=nagiosadmin
authorized_for_system_commands=nagiosadmin
authorized_for_all_services=nagiosadmin
authorized_for_all_hosts=nagiosadmin
authorized_for_all_service_commands=nagiosadmin
authorized_for_all_host_commands=nagiosadmin
#authorized_for_read_only=user1,user2
[root@station1 etc]#
配置
nagios
配置文件
#vi /usr/local/nagios/etc/objects/contacts.cfg
修改
email
地址为自己的
email
地址
.
启动
nagios
[root@station1 ~]# chkconfig --add nagios
[root@station1 ~]# chkconfig nagios on
[root@station1 ~]#
检查配置文件
[root@station1 ~]# /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
Total Warnings: 0
Total Errors: 0
[root@station1 ~]# service nagios start
Starting nagios: done.
[root@station1 ~]# service httpd start
Starting httpd: [ OK ]
[root@station1 ~]#
访问
http://localhost/nagios
输入用户名密码

安装附加插件
nrpe
[root@station1 src]# tar zxvf nrpe-2.12.tar.gz
[root@station1 src]# cd nrpe-2.12
[root@station1 nrpe-2.12]# ./configure
[root@station1 nrpe-2.12]# make all
[root@station1 nrpe-2.12]# make install-plugin #
服务器端只要安装
nrpe
监控插件就行
[root@station1 nrpe-2.12]# make install-daemon
[root@station1 nrpe-2.12]# make install-daemon-config
添加要监控的主机
[root@station1 ~]# vim /usr/local/nagios/etc/nrpe.cfg
allowed_hosts=127.0.0.1
以独立守护进程启动
nrpe
[root@station1 ~]# /usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg –d
写入开机脚本
[root@station1 ~]# echo "/usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -d">> /etc/rc.d/rc.local
检查
nrpe
是否安装正常
[root@station1 ~]# /usr/local/nagios/libexec/check_nrpe -H localhost
NRPE v2.12
[root@station1 ~]# netstat -tln | grep 5666
tcp 0 0 0.0.0.0:5666 0.0.0.0:* LISTEN
[root@station1 ~]#
定义监控命令
[root@station1 ~]# vim /usr/local/nagios/etc/nrpe.cfg
以下是默认定义好的:
# The following examples use hardcoded command arguments...
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
自定义监控命令:
command[check_swap]=/usr/local/nagios/libexec/check_swap -w 20% -c 10%
command[check_disk_root]=/usr/local/nagios/libexec/check_disk -w 20% -c 10% -p /
测试:
[root@station1 ~]# /usr/local/nagios/libexec/check_disk -w 20% -c 10% -p /home
DISK OK - free space: /home 86 MB (93% inode=99%);| /home=5MB;76;86;0;96
[root@station1 ~]#
[root@station1 etc]# pwd
/usr/local/nagios/etc
[root@station1 etc]# vim resource.cfg
$USER1$=/usr/local/nagios/libexec #
定义插件路径
例
:SWAP
监控
[root@station1 etc]# vim objects/commands.cfg #
命令配置文件
# 'check_local_swap' command definition
define command{
command_name check_local_swap
command_line $USER1$/check_swap -w $ARG1$ -c $ARG2$
}
[root@station1 objects]# vim localhost.cfg #
监控对象控制
define service{
use local-service ; Name of service template to use
host_name localhost
service_description Swap Usage
check_command check_local_swap!20!10
}


转载于:https://blog.51cto.com/xxfvert/352989