• {{ item.name }}
  • Home
  • Linux
  • Programming
    • Python
  • Life
  • Other
  • Tools
  • 投资者该如何参与优秀的区块链项目- NuLink社区圆桌会议
  • 什么是NuLink?- 项目中文社区与项目研究组成员 Rookie 对话实录
  • NuLink 融资 400 万美元用于开发隐私保护技术
  • NuLink的零知识证明介绍(1)
  • 用bitwarden_rs搭建属于自己的密码管理器
  • 修复 CentOS vps 网卡失效
  • 记录用mac给Nexus6P刷Android10的错误
  • Centos 6.8启用 TCP BBR拥塞控制算法
  • Nginx 启用HTTP2功能
  • Mac 安装adb工具
  • WordPress 默认编辑器代码按钮

CentOS安装Nagios结合Nginx

  • iansiu
  • 2015-12-17
  • 0

这几天研究了下 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

© 2025 laowang's blog
Theme by Wing