您的位置:首页 > 运维架构 > Nginx

nginx平台架设nagios监控

2010-06-28 17:58 579 查看
[align=left]操作系统:rhel5.4[/align]
[align=left]一、 [/b]安装支持包[/b][/align]
[align=left]yum -y install gcc gcc-c++ gd gd-devel openssl-devel httpd[/align]
[align=left] [/align]
[align=left]二、安装nagios[/b][/align]
[align=left]CODE:[/align]
[align=left]useradd nagios 添加nagios 用户[/align]
[align=left]passwd nagios 设置个密码[/align]
[align=left]groupadd nagcmd[/align]
[align=left]usermod -G nagcmd nagios[/align]
[align=left]usermod -G nagcmd www 把运行nginx的用户www加入组[/align]
[align=left] [/align]
[align=left][root@webserver src]#tar -zxvf nagios-3.2.0.tar.gz[/align]
[align=left][root@webserver src]#cd nagios-3.2.0[/align]
[align=left][root@webserver nagios-3.2.0]# ./configure --with-group=nagios[/align]
[align=left]--with-user=nagios --with-command-group=nagcmd --with-gd-lib=/usr/lib[/align]
[align=left]--with-gd-inc=/usr/include[/align]
[align=left][root@webserver nagios-3.2.0]#make all[/align]
[align=left][root@webserver nagios-3.2.0]# make install[/align]
[align=left][root@webserver nagios-3.2.0]#make install-init[/align]
[align=left][root@webserver nagios-3.2.0]#make install-config[/align]
[align=left][root@webserver nagios-3.2.0]#make install-commandmode[/align]
[align=left] [/align]
[align=left]nagios目录功能的简要说明:
bin Nagios执行程序所在目录,nagios文件即为主程序
etc Nagios配置文件位置
sbin Nagios Cgi文件所在目录,也就是执行外部命令所需文件所在的目录
Share Nagios网页文件所在的目录
var Nagios日志文件、spid 等文件所在的目录
var/archives 日志归档目录
var/rw 用来存放外部命令文件[/align]
[align=left] [/align]
[align=left]然后vi /usr/local/nagios/etc/objects/contacts.cfg ,更改nagiosadmin 的联系人定义信息中的E-mail 信息为你的E-mail 信息以接收报警内容。[/align]
[align=left]创建一个nagiosadmin 的用户用于Nagios 的WEB 接口登录。记下你所设置的登[/align]
[align=left]录口令,一会儿你会用到它这里要借助于apache 的htpasswd,在有apache 机器[/align]
[align=left]上执行下列命令[/align]
[align=left]htpasswd -c /usr/local/server/nginx/conf/htpasswd nagiosadmin[/align]
[align=left] [/align]
[align=left]三、安装nagios插件[/b][/align]
[align=left]CODE:[/align]
[align=left][root@webserver nagios]# tar -zxvf nagios-plugins-1.4.14[/align]
[align=left][root@webserver nagios]# ./configure --with-nagios-user=nagios --with-nagios-group=nagios --prefix=/usr/local/nagios[/align]
[align=left][root@webserver nagios]# make & make install[/align]
[align=left] [/align]
[align=left]四、启动nagios[/b][/align]
[align=left]chkconfig --add nagios 添加到service 中[/align]
[align=left]chkconfig nagios on 设置成开机启动[/align]
[align=left]service nagios start 启动服务 这里要关掉selinux 要么会出错,一会访[/align]
问的时候。也可以不关闭selinux,解决办法为:
#chcon -R -t httpd_sys_content_t /usr/local/nagios/sbin/[/b]
[align=left]#chcon -R -t httpd_sys_content_t /usr/local/nagios/share/[/b][/align]
[align=left] [/align]
[align=left]Nagios必须要有cgi支持,否则打开页面会出现502错误,查看服务器是否已开启[/align]
[align=left]cgi支持,可参考http://bizchen.blog.51cto.com/1802248/340398[/align]
[align=left]下来vi nginx.conf[/align]
[align=left]CODE:[/align]
[align=left]server[/align]
[align=left]{[/align]
[align=left]listen 80;[/align]
[align=left]server_name www.mynagios.com;[/align]
[align=left]root /usr/local/nagios/share;[/align]
[align=left]index index.php;[/align]
[align=left]location ~ .*\.(php|php5)?$[/align]
[align=left]{[/align]
[align=left]#root /usr/local/nagios/share;[/align]
[align=left]fastcgi_pass unix:/tmp/php-cgi.sock;[/align]
[align=left]fastcgi_index index.php;[/align]
[align=left]fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;[/align]
[align=left]fastcgi_param HTTP_ACCEPT_LANGUAGE zh-cn;[/align]
[align=left]include fcgi.conf;[/align]
[align=left]auth_basic "Nagios Login pain";[/align]
[align=left]auth_basic_user_file /usr/local/nginx/conf/htpasswd;[/align]
[align=left]}[/align]
[align=left]location ~ .*\.cgi$ {[/align]
[align=left]root /usr/local/nagios/sbin;[/align]
[align=left]rewrite ^/nagios/cgi-bin/(.*)\.cgi /$1.cgi break;[/align]
[align=left]#fastcgi_pass unix:/var/run/nginx-fcgi.sock;[/align]
[align=left]fastcgi_pass 127.0.0.1:8999;[/align]
[align=left]include fastcgi_params;[/align]
[align=left]fastcgi_index index.cgi;[/align]
[align=left]fastcgi_param SCRIPT_FILENAME[/align]
[align=left]/usr/local/nagios/sbin/$fastcgi_script_name;[/align]
[align=left]fastcgi_param HTTP_ACCEPT_LANGUAGE zh-cn;[/align]
[align=left]include fcgi.conf;[/align]
[align=left]auth_basic "Nagios Login pain";[/align]
[align=left]auth_basic_user_file /usr/local/nginx/conf/htpasswd;[/align]
[align=left]}[/align]
[align=left]location /nagios {[/align]
[align=left]alias /usr/local/nagios/share/;[/align]
[align=left]#index index.html index.htm index.php;[/align]
[align=left]#auth_basic "Nagios Login pain";[/align]
[align=left]#auth_basic_user_file /usr/local/nginx/conf/htpasswd;[/align]
[align=left]}[/align]
[align=left]access_log /var/log/nagios.log;[/align]
[align=left]}[/align]
[align=left] [/align]
五、安装nrpe
#tar xzvf nrpe-2.12.tar.gz
#cd nrpe-2.12
#./configure
#make all
#make install-plugin #服务器端只要安装nrpe监控插件就行
在/usr/local/nagios/etc/objects/commands.cfg中定义check_nrpe命令
#vi /usr/local/nagios/etc/objects/commands.cfg

# 'check_nrpe ' command definition
define command{
command_name check_nrpe
command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
}
[align=left] [/align]
[align=left]这里基本上就成功了[/align]

监控页面若出现
It appears as though you do not have permission to view information for any of the hosts you requested...
If you believe this is an error, check the HTTP server authentication requirements for accessing this CGI
and check the authorization options in your CGI configuration file.

修改/etc/cgi.cfg
vi /usr/local/nagios/etc/cgi.cfg
use_authentication=1

六、在被监控机上安装nagios插件和nrpe
#useradd nagios
#tar xzvf nagios-plugins-1.4.13.tar.gz
#cd nagios-plugins-1.4.13
#./configure
#make
#make install
#chown nagios.nagios /usr/local/nagios/
#chown -R nagios.nagios /usr/local/nagios/libexec/

tar xzvf nrpe-2.12.tar.gz
cd nrpe-2.12
./configure
make all
make install-plugin #安装nrpe插件,本监控端可以不装
make install-daemon # 安装nrpe守护进程
make install-daemon-config #安装nrpe配置文件
#vi /usr/local/nagios/etc/nrpe.cfg #修改nrpe配置文件,允许Nagios监控服务器(192.168.1.246)监控
allowed_hosts=127.0.0.1,192.168.1.246 #多台机器用逗号隔开

#/usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -d 以独立守护进程启动nrpe,也可以使用xinetd启动nrpe,具体清查看nrpe官方文档。

#cat >> /etc/rc.d/rc.local << EOF #开机自动启动nrpe
/usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -d
EOF

# /usr/local/nagios/libexec/check_nrpe -H localhost #检查nrpe是否安装正常
NRPE v2.12

#netstat -tlunp #查看是否有5666端口
tcp 0 0 0.0.0.0:5666 0.0.0.0:*
我们需要在/usr/local/nagios/etc/nrpe.cfg中定义我们用到的监控本地资源的命令。
下面的命令是默认定义的:
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
下面的命令是自己定义的:
#监控交换分区的使用情况,使用超过20%时为警告状态,超过10%时为严重状态
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 /
command[check_mem]=/usr/local/nagios/libexec/check_mem -w 150 -c 200
监控内存(其实LINUX服务器监控内存没有必要,因为LINUX的机制是最大限度使用内存)
command[check_iftraffic]=/usr/local/nagios/libexec/check_iftraffic -i eth0 -w 50 -c 100 -b 100 -u m
监控eth0的流量
command[check_iostat]=/usr/local/nagios/libexec/check_iostat -w 5 -c 10
监控磁盘IO

找了很多帖子看,借鉴了很多经验,然后经过自己在服务器上实际操作实现。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: