设为首页 收藏本站
查看: 1357|回复: 0

Nginx支持Nagios相关配置

[复制链接]

尚未签到

发表于 2015-11-23 09:52:18 | 显示全部楼层 |阅读模式
  由于公司使用Nginx作为web监控服务器,但是Nagios依赖PHP环境和perl环境。由于Nginx不支持Perl的CGI,这里就需要先来搭建Perl环境,经过试验使用spawn-fcgi+fcgiwrap为最佳的选择。
  
  安装spawn-fcgi
# wget
http://download.lighttpd.net/spawn-fcgi/releases-1.6.x/spawn-fcgi-1.6.3.tar.gz  -P /usr/src
# tar xf spawn-fcgi-1.6.3.tar.gz
# cd  /usr/local/src/spawn-fcgi-1.6.3
# ./configure
# make && make install
  
  安装fcgi库
# wget
http://dl.fedoraproject.org/pub/epel/6/x86_64/fcgi-2.4.0-10.el6.x86_64.rpm  -P /usr/src
# wget
http://dl.fedoraproject.org/pub/epel/6/x86_64/fcgi-devel-2.4.0-10.el6.x86_64.rpm  -P /usr/src
# rpm -ivh fcgi-2.4.0-10.el6.x86_64.rpm fcgi-devel-2.4.0-10.el6.x86_64.rpm
  【以上fcgi软件的rpm为RHEL6对应版本的,如果是5系列请安装RHEL5对应版本的fcgi库,RHEL5软件下载地址如下:
  fcgi:
http://flexbox.sourceforge.net/centos/5/x86_64/fcgi-2.4.0-10.el5.x86_64.rpm
  fcgi-devel:http://flexbox.sourceforge.net/centos/5/x86_64/fcgi-devel-2.4.0-10.el5.x86_64.rpm


  安装fcgiwrap
  fcgiwrap wiki --> http://nginx.localdomain.pl/wiki/FcgiWrap
  最新版本为gnosek-fcgiwrap-1.1.0-0-g333ff99.tar.gz
# cd gnosek-fcgiwrap-333ff99/
# autoreconf -i
# ./configure
# make && make install
  
  nginx.conf相关nagios配置
        location ~ \.php$ {
             root/usr/local/nagios/share/;
             fastcgi_pass                   127.0.0.1:9000;
            fastcgi_index       index.php;
             fastcgi_param    SCRIPT_FILENAME /web_url$fastcgi_script_name;
             include        fastcgi_params;
        }

        location ~.*\.(cgi|pl)?$ {
                    gzip off;
                    root       /usr/local/nagios/sbin;
                    rewrite   ^/nagios/cgi-bin/(.*)\.cgi /$1.cgi break;
                   fastcgi_pass  127.0.0.1:10000;
                   fastcgi_param  SCRIPT_FILENAME/usr/local/nagios/sbin$fastcgi_script_name;
                   fastcgi_index  index.cgi;
                   fastcgi_read_timeout   60;
                    include            fastcgi_params;
                   fastcgi_param       REMOTE_USER        $remote_user;
                    auth_basic    "Nagios Access";
                   auth_basic_user_file   /usr/local/nagios/etc/.nagiospasswd;
        }

        location /nagios {
                    index      index.php;
                    auth_basic   "Nagios Access";
                   auth_basic_user_file    /usr/local/nagios/etc/.nagiospasswd;
                    alias   /usr/local/nagios/share;
        }
  
  建立nagios链接
# ln -s /usr/local/nagios/share/www/nagios
  
  配置Nagios Nginxweb认证
# htpasswd -c /usr/local/nagios/etc/.nagiospasswd  nagiosadmin
  【注:
  1、htpasswd这个工具由Apache安装包所提供,如果没有,可安装httpd-tools这个软件包
  2、如果想添加非nagiosadmin的用户则需要修改配置文件cgi.cfg,在cgi配置文件中添加指定用户,以逗号隔开,如下我想加入admin用户并且赋予它所有的权限:
  # grep -Ev '^#|^$'/usr/local/nagios/etc/cgi.cfg | grep authorized
  authorized_for_system_information=nagiosadmin,admin
  authorized_for_configuration_information=nagiosadmin,admin
  authorized_for_system_commands=nagiosadmin,admin
  authorized_for_all_services=nagiosadmin,admin
  authorized_for_all_hosts=nagiosadmin,admin
  authorized_for_all_service_commands=nagiosadmin,admin
  authorized_for_all_host_commands=nagiosadmin,admin
  】
  
  创建一个shell脚本来用spawn-fcgi 启动fcgiwrap实例
# cat /usr/local/bin/fcgiwrap_phpcgi.sh
#!/bin/bash

/usr/local/bin/spawn-fcgi-f /usr/bin/php-cgi -a 127.0.0.1 -p 9000 -C 10 -u daemon -g daemon
/usr/local/bin/spawn-fcgi-f /usr/local/sbin/fcgiwrap -a 127.0.0.1 -p 10000 -F 10 -u daemon -g daemon
# chmod +x /usr/local/bin/fcgiwrap_phpcgi.sh
  
  参数含义如下:
  -f <fcgiapp> 指定调用FastCGI的进程的执行程序位置
  -a <addr> 绑定到地址addr
  -p <port> 绑定到端口port
  -s <path> 绑定到unixsocket的路径path
  -C < children> 指定产生的FastCGI的进程数(仅用于PHP)
  -F <children> 指定产生的FastCGI的进程数
  -P <path> 指定产生的进程的PID文件路径
  -u和-g FastCGI使用什么身份(-u用户-g用户组)运行,这里使用nginx的用户和组daemon运行
  
  编写启动脚本
# cat /etc/init.d/fcgiwrap_phpcgi

#!/bin/bash
# fcgiwrap_phpcgi - this script starts and stops the fcgiwrap && php-cgi instance
#
# chkconfig:   - 96 28
# description:fcgiwrap_phpcgi
# processname:fcgiwrap_phpcgi
C_SCRIPT=/usr/local/bin/fcgiwrap_phpcgi.sh
RETVAL=0
case &quot;$1&quot; in
start)
echo &quot;Starting cgi&quot;
$C_SCRIPT
RETVAL=$?
;;
stop)
echo &quot;Stopping cgi&quot;
killall -9 fcgiwrap
killall -9 php-cgi
RETVAL=$?
;;
restart)
echo &quot;Restarting cgi&quot;
killall -9 fcgiwrap
killall -9 php-cgi
$C_SCRIPT
RETVAL=$?
;;
*)
echo &quot;Usage: fcgiwrap_phpcgi {start|stop|restart}&quot;
exit 1
;;
esac
exit $RETVAL
# <span style=&quot;color: #0000ff;&quot;>chkconfig --add fcgiwrap_phpcgi</span>
# <span style=&quot;color: #0000ff;&quot;>chkconfig fcgiwrap_phpcgi on</span>
# <span style=&quot;color: #0000ff;&quot;>service fcgiwrap_phpcgi start</span>
  
# chmod &#43;x /etc/init.d/fcgiwrap_phpcgi
# chkconfig --add fcgiwrap_phpcgi
# chkconfig --level 2345 fcgiwrap_phpcgi on
# service fcgiwrap_phpcgi restart
# netstat -tulnp | grep -E '9000|10000'
tcp        0      0 127.0.0.1:9000              0.0.0.0:*                   LISTEN      17588/php-cgi      
tcp        0      0 127.0.0.1:10000             0.0.0.0:*                   LISTEN      17600/fcgiwrap
  
  参考文档:
  http://salogs.com/2009/09/nagios%E5%B9%B3%E5%8F%B0%E4%BB%8Eapache%E8%BF%81%E7%A7%BB%E5%88%B0nginx/

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-142461-1-1.html 上篇帖子: Nagios服务端安装 下篇帖子: icinga安装PNP4Nagios
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表