这几天研究了下 Nagios
,目前有个10多个vps 手动监控要累死
还是搞个程序靠谱 ~ ~
以下内容基于 CentOS 6.5 系统
先编译安装 nagios
找了个目前的最新版本,反正是个人用,不在乎稳定性。
我安装的时候几乎没有遇到什么依赖性问题,但是不代表没有依赖性问题,因为我之前安装了非常的多程序,我猜大部份的依赖我早就已经安装了。
下载 && 编译 && 安装 Nagios
wget http://sourceforge.net/projects/nagios/files/nagios-4.x/nagios-4.1.1/nagios-4.1.1.tar.gz/download tar xf nagios-4.1.1.tar.gz cd nagios-4.1.1 ./configure --prefix=/usr/local/nagios make all make install make install-init make install-commandmode make install-config chkconfig --add nagios chkconfig --level 35 nagios on
安装成功之后有如下目录:
bin
Nagios 可执行程序所在目录
etc
Nagios 配置文件所在目录
include
这个暂时不知道,知道了再补上 ~ ~
libexec
Nagios 外部插件所在目录
sbin
Nagios CGI 文件所在目录,也就是执行外部命令所需文件所在的目录
share
Nagios网页文件所在的目录
var
Nagios 日志文件、lock 等文件所在的目录
下载 && 编译 && 安装 Nagios-plugins
上面所安装的只是一个Nagios
核心框架,但是具体的实用功能还是得靠插件才能使用。
wget http://www.nagios-plugins.org/download/nagios-plugins-2.1.1.tar.gz tar xf nagios-plugins-2.1.1.tar.gz cd nagios-plugins-2.1.1 ./configure --prefix=/usr/local/nagios make && make install
现在安装web支持,可以在网页查看监控,一目了然,但是网上的教程基本上都是Apache
和Php
组合,我更喜欢Nginx
和Php
的组合,毕竟我的Vps只有768Mb内存,跑几个网站也不容易啊。
要用Nginx
和Php
还得先安装几个依赖:
1、FCGI
2、FCGI-ProcManager
3、IO
4、IO:ALL
5、Perl-fcgi启动脚本
下载 && 编译 && 安装 FCGI
wget http://search.cpan.org/CPAN/authors/id/E/ET/ETHER/FCGI-0.77.tar.gz tar xf FCGI-0.77.tar cd FCGI-0.77 perl Makefile.PL make && make install
下载 && 编译 && 安装 FCGI-ProcManager
http://search.cpan.org/CPAN/authors/id/A/AR/ARODLAND/FCGI-ProcManager-0.25.tar.gz tar xf FCGI-ProcManager-0.25.tar.gz cd FCGI-ProcManager-0.25 perl Makefile.PL make && make install
下载 && 编译 && 安装 IO
wget http://search.cpan.org/CPAN/authors/id/G/GB/GBARR/IO-1.25.tar.gz tar xf IO-1.25.tar.gz cd IO-1.25 perl Makefile.PL make make install
下载 && 编译 && 安装 IO-All
http://search.cpan.org/CPAN/authors/id/I/IN/INGY/IO-All-0.86.tar.gz tar xf IO-All-0.86.tar.gz cd IO-All-0.86 perl Makefile.PL make make install
下载perl-fcgi
脚本
wget http://www.linuxeye.com/uploads/allimg/120806/perl-fcgi.pl cp perl-fcgi.pl /usr/local/nginx/ chmod 755 /usr/local/nginx/perl-fcgi.pl
创建cgi
启动/停止脚本
vim /usr/local/nginx/sperlcgi
文件名称随意
以下是内容,其中www
是nginx
用户,保存之前改成实际的。
比如我这里全部更改为:nobody
#!/bin/bash #set -x dir=/usr/local/nginx/ stop () { #pkill -f $dir/perl-fcgi.pl kill $(cat $dir/logs/perl-fcgi.pid) rm $dir/logs/perl-fcgi.pid 2>/dev/null rm $dir/logs/perl-fcgi.sock 2>/dev/null echo "stop perl-fcgi done" } start () { rm $dir/now_start_perl_fcgi.sh 2>/dev/null chown nobody.nobody $dir/logs echo "$dir/perl-fcgi.pl -l $dir/logs/perl-fcgi.log -pid $dir/logs/perl-fcgi.pid -S $dir/logs/perl-fcgi.sock" >>$dir/now_start_perl_fcgi.sh chown nobody.nobody $dir/now_start_perl_fcgi.sh chmod u+x $dir/now_start_perl_fcgi.sh sudo -u nobody $dir/now_start_perl_fcgi.sh echo "start perl-fcgi done" } case $1 in stop) stop ;; start) start ;; restart) stop start ;; esac
保存之后更改权限
chmod 755 /etc/init.d/sperlcgi
添加到开机启动
chkconfig --add sperlcgi
设置启动级别
chkconfig --level 35 sperlcgi on
启动
service sperlcgi start
正常情况下会在 /usr/local/nginx/logs
目录下生成 perl-fcgi.sock
文件 ,如果没有肯定是以上哪个步骤出错了。
接下来配置 Nginx
首先呢,我的Nginx
和Php
环境以前就安装好了 这里就不说了 这个不属于本文范畴
主要是贴一下 Nginx.conf
中的配置内容
域名是我本地随意 hosts
的一个
/usr/local/nagios/share/passwd
这个是认证文件
可以在这个网站在线生成:http://tool.oschina.net/htpasswd
比较方便
/usr/local/nagios/share/
这个目录是 Nagios
的web 目录
server { listen 80; server_name www.123.com 123.com; root /usr/local/nagios/share; location / { root /usr/local/nagios/share; index index.html index.htm index.php; auth_basic "Login"; auth_basic_user_file /usr/local/nagios/share/passwd; } location ~ .*\.(php|php5)?$ { include fastcgi_params; fastcgi_pass unix:/tmp/php-fcgi.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /usr/local/nagios/share$fastcgi_script_name; include fastcgi.conf; } location /nagios { alias /usr/local/nagios/share; } location /cgi-bin/images { alias /usr/local/nagios/share/images; } location /cgi-bin/stylesheets { alias /usr/local/nagios/share/stylesheets; } location /cgi-bin { alias /usr/local/nagios/sbin; } location ~ .*\.(cgi|pl)?$ { gzip off; root /usr/local/nagios/sbin; rewrite ^/nagios/cgi-bin/(.*)\.cgi /$1.cgi break; fastcgi_pass unix:/usr/local/nginx/logs/perl-fcgi.sock; fastcgi_index index.cgi; include fastcgi.conf; fastcgi_read_timeout 60; } }
最后启动Nagios
service nagios start
当然 nginx
php
这些服务都要启动啊
浏览器中输入目标地址,应该就可以打开了
这个只是最基本的安装,还不能监控什么,边实验边记录吧
参考文章:http://www.cnblogs.com/mchina/archive/2013/02/20/2883404.html
http://www.linuxeye.com/configuration/733.html
http://chenhao6.blog.51cto.com/6228054/1323192