Nginx+nagios安裝配置

來源:互聯網
上載者:User

標籤:

 

Nginx+nagios安裝配置

 

[[email protected] ~]# vi /etc/nginx/nginx.conf    server {        listen  80;        server_name     localhost;        auth_basic "Nagios Access";        auth_basic_user_file /usr/local/nagios/passwd;        location / {            root   /usr/local/nagios/share;            index  index.html index.htm index.php;        }        location ~ .*\.(php|php5)?$ {            root /usr/local/nagios/share;            fastcgi_pass  127.0.0.1:9000;            fastcgi_index index.php;            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:/var/run/perl-fastcgi.sock;            fastcgi_param SCRIPT_FILENAME /usr/local/nagios/sbin$fastcgi_script_name;            fastcgi_index index.cgi;            fastcgi_param  REMOTE_USER        $remote_user;            fastcgi_param HTTP_ACCEPT_LANGUAGE en_US;            include fastcgi_params;            fastcgi_read_timeout   60;         }                  location /nagiosql/ {            alias /usr/local/nagios/nagiosql;         }    }[[email protected] ~]# echo -en ‘nagios:‘>/usr/local/nagios/share/passwd [[email protected] ~]# perl -e ‘print crypt($ARGV[0], "nagios")‘ passwd >>/usr/local/nagios/share/passwd

 

 

# 安裝 PHP php-fpm[[email protected] ~]# yum install -y php php-fpm[[email protected] ~]# /etc/init.d/php-fpm start

 

# 安裝perl FCGI[[email protected] ~]# yum install -y perl-devel[[email protected] src]# wget http://www.cpan.org/modules/by-module/FCGI/FCGI-0.74.tar.gz[[email protected] src]# tar zxf FCGI-0.74.tar.gz[[email protected] src]# cd FCGI-0.74[[email protected] FCGI-0.74]# perl Makefile.PL[[email protected] FCGI-0.74]# make && make install[[email protected] ~]# touch /usr/bin/fastcgi-wrapper.pl [[email protected] ~]# chmod 755 /usr/bin/fastcgi-wrapper.pl [[email protected] ~]# vi /usr/bin/fastcgi-wrapper.pl#!/usr/bin/perl use FCGI;use Socket;use POSIX qw(setsid); require ‘syscall.ph‘; &daemonize; #this keeps the program alive or something after exec‘ing perl scriptsEND() { } BEGIN() { }*CORE::GLOBAL::exit = sub { die "fakeexit\nrc=".shift()."\n"; };eval q{exit};if ([email protected]) {    exit unless [email protected] =~ /^fakeexit/;}; &main; sub daemonize() {    chdir ‘/‘                 or die "Can‘t chdir to /: $!";    defined(my $pid = fork)   or die "Can‘t fork: $!";    exit if $pid;    setsid                    or die "Can‘t start a new session: $!";    umask 0;} sub main {        #$socket = FCGI::OpenSocket( "127.0.0.1:8999", 10 ); #use IP sockets        $socket = FCGI::OpenSocket( "/var/run/perl-fastcgi.sock", 10 );        $request = FCGI::Request( \*STDIN, \*STDOUT, \*STDERR, \%req_params, $socket );        if ($request) { request_loop()};            FCGI::CloseSocket( $socket );} sub request_loop {        while( $request->Accept() >= 0 ) {            #processing any STDIN input from WebServer (for CGI-POST actions)           $stdin_passthrough =‘‘;           $req_len = 0 + $req_params{‘CONTENT_LENGTH‘};           if (($req_params{‘REQUEST_METHOD‘} eq ‘POST‘) && ($req_len != 0) ){                my $bytes_read = 0;                while ($bytes_read < $req_len) {                        my $data = ‘‘;                        my $bytes = read(STDIN, $data, ($req_len - $bytes_read));                        last if ($bytes == 0 || !defined($bytes));                        $stdin_passthrough .= $data;                        $bytes_read += $bytes;                }            }             #running the cgi app            if ( (-x $req_params{SCRIPT_FILENAME}) &&  #can I execute this?                 (-s $req_params{SCRIPT_FILENAME}) &&  #Is this file empty?                 (-r $req_params{SCRIPT_FILENAME})     #can I read this file?            ){        pipe(CHILD_RD, PARENT_WR);        my $pid = open(KID_TO_READ, "-|");        unless(defined($pid)) {            print("Content-type: text/plain\r\n\r\n");                        print "Error: CGI app returned no output - ";                        print "Executing $req_params{SCRIPT_FILENAME} failed !\n";            next;        }        if ($pid > 0) {            close(CHILD_RD);            print PARENT_WR $stdin_passthrough;            close(PARENT_WR);             while(my $s = <KID_TO_READ>) { print $s; }            close KID_TO_READ;            waitpid($pid, 0);        } else {                    foreach $key ( keys %req_params){                       $ENV{$key} = $req_params{$key};                    }                    # cd to the script‘s local directory                    if ($req_params{SCRIPT_FILENAME} =~ /^(.*)\/[^\/]+$/) {                            chdir $1;                    }             close(PARENT_WR);            close(STDIN);            #fcntl(CHILD_RD, F_DUPFD, 0);            syscall(&SYS_dup2, fileno(CHILD_RD), 0);            #open(STDIN, "<&CHILD_RD");            exec($req_params{SCRIPT_FILENAME});            die("exec failed");        }            }            else {                print("Content-type: text/plain\r\n\r\n");                print "Error: No such CGI app - $req_params{SCRIPT_FILENAME} may not ";                print "exist or is not executable by this process.\n";            }         }}[[email protected] ~]# touch /etc/init.d/perl-fastcgi[[email protected] ~]# chmod 755 /etc/init.d/perl-fastcgi [[email protected] ~]# vi /etc/init.d/perl-fastcgi#!/bin/sh## nginx – this script starts and stops the nginx daemon## chkconfig: - 85 15# description: Nginx is an HTTP(S) server, HTTP(S) reverse # proxy and IMAP/POP3 proxy server# processname: nginx# config: /opt/nginx/conf/nginx.conf# pidfile: /opt/nginx/logs/nginx.pid # Source function library.. /etc/rc.d/init.d/functions # Source networking configuration.. /etc/sysconfig/network # Check that networking is up.[ "$NETWORKING" = "no" ] && exit 0 perlfastcgi="/usr/bin/fastcgi-wrapper.pl"prog=$(basename perl) lockfile=/var/lock/subsys/perl-fastcgi start() {    [ -x $perlfastcgi ] || exit 5    echo -n $"Starting $prog: "    daemon $perlfastcgi    retval=$?    echo    [ $retval -eq 0 ] && touch $lockfile    return $retval} stop() {    echo -n $"Stopping $prog: "    killproc $prog -QUIT    retval=$?    echo    [ $retval -eq 0 ] && rm -f $lockfile    return $retval} restart() {    stop    start} reload() {    echo -n $”Reloading $prog: ”    killproc $nginx -HUP    RETVAL=$?    echo} force_reload() {    restart}rh_status() {    status $prog} rh_status_q() {    rh_status >/dev/null 2>&1} case "$1" in    start)        rh_status_q && exit 0        $1        ;;    stop)        rh_status_q || exit 0        $1        ;;    restart)        $1        ;;    reload)        rh_status_q || exit 7        $1        ;;    force-reload)        force_reload        ;;    status)        rh_status        ;;    condrestart|try-restart)        rh_status_q || exit 0        ;;    *)        echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload}"        exit 2    esac

 

nagios安裝請參考該篇:http://www.cnblogs.com/caoguo/p/4981903.html

Nginx+nagios安裝配置

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.