这几天研究了下 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
Leave a Reply
You must be logged in to post a comment.