nagios安装与配置脚本

    以下为nagios的安装与配置脚本脚本中server:192.168.1.114、client:192.168.1.113,主要监控host-
    alive、disk、cpu_procs、load、ssh、swap、users、zombie_procs等,请根据实际环境修改配置文件。
    脚本中开源软件版本(最新稳定版):

    httpd-2.2.22.tar.gz
    libiconv-1.13.1.tar.gz
    php-5.3.10.tar.gz
    nagios-3.3.1.tar.gz
    nagios-plugins-1.4.15.tar.gz
    nrpe-2.13.tar.gz

    使用方法:

    cd /root
    wget //linuxeye.com/wp-content/uploads/nagios.zip
    unzip nagios.zip
    cd nagios
    sh nagios_install.sh

    脚本内容:
    server

    #!/bin/bash
    #by LinuxEye
    #BLOG: //linuxeye.com
    #安装依赖包
    yum -y install gcc gcc-c++ autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5-devel libidn libidn-devel openssl openssl-devel nss_ldap openldap openldap-devel  openldap-clients openldap-servers libxslt-devel libevent-devel ntp  libtool-ltdl bison libtool vim-enhanced gd gd-devel
    useradd -M -s /sbin/nologin www
    if [ -e "/root/nagios" ];then
    echo -e "e[0;34m start installe[0m"
    cd /root/nagios/
    else
    echo -e "e[1;31mPlease send nagios directory moved to /roote[0m"
    exit 1
    fi
    #安装apache
    tar xzf httpd-2.2.22.tar.gz
    cd httpd-2.2.22
    ./configure --prefix=/usr/local/apache --enable-so --enable-rewrite --enable-headers --enable-deflate --with-mpm=worker
    make && make install
    cp /usr/local/apache/bin/apachectl  /etc/init.d/httpd
    sed -i '2a # chkconfig: - 85 15' /etc/init.d/httpd
    sed -i '3a # description: Apache is a World Wide Web server. It is used to serve' /etc/init.d/httpd
    chmod 755 /etc/init.d/httpd
    chkconfig --add httpd
    chkconfig httpd on
    cd ..
     
    #安装php
    tar xzf libiconv-1.13.1.tar.gz
    cd libiconv-1.13.1
    ./configure --prefix=/usr/local/libiconv
    make && make install
    cd ..
    tar xzf php-5.3.10.tar.gz
    cd php-5.3.10
    ./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache/bin/apxs --enable-mbregex --enable-bcmath --enable-mbstring --with-curl --enable-ftp --with-libxml-dir --with-libexpat-dir --with-zlib-dir --with-jpeg-dir --with-freetype-dir --with-png-dir --with-zlib-dir --with-gd --disable-debug --with-iconv=/usr/local/libiconv
    make && make install
    cp php.ini-production /usr/local/php/lib/php.ini
    cd ..
     
    #修改配置文件
    sed -i 's@;date.timezone =@date.timezone = Asia/Shanghai@g' /usr/local/php/lib/php.ini
    if [ "$(hostname -i)" == "127.0.0.1" ];then
    echo "OK"
    else
    sed -i "s/127.0.0.1.*$/127.0.0.1       `hostname`  localhost.localdomain localhost/g" /etc/hosts
    fi
    sed -i 's/User daemon/User www/g' /usr/local/apache/conf/httpd.conf
    sed -i 's/Group daemon/User www/g' /usr/local/apache/conf/httpd.conf
    sed -i 's/#ServerName www.example.com:80/ServerName 127.0.0.1:80/g' /usr/local/apache/conf/httpd.conf
    sed -i '288a AddType application/x-httpd-php .php .phtml' /usr/local/apache/conf/httpd.conf
    sed -i '289a AddType application/x-httpd-php-source .phps' /usr/local/apache/conf/httpd.conf
    sed -i 's@DirectoryIndex index.html@DirectoryIndex index.html index.php@g' /usr/local/apache/conf/httpd.conf
    cat >> /usr/local/apache/conf/httpd.conf << EOF
    Alias /nagios/cgi-bin /usr/local/nagios/sbin
    <Directory "/usr/local/nagios/sbin">
    AuthType Basic
    Options ExecCGI
    AddHandler cgi-script .cgi
    AllowOverride None
    Order allow,deny
    Allow from all
    AuthName "Nagios Access"
    AuthUserFile /usr/local/nagios/etc/htpasswd
    Require valid-user
    </Directory>
    Alias /nagios /usr/local/nagios/share
    <Directory "/usr/local/nagios/share">
    AuthType Basic
    Options None
    AllowOverride None
    Order allow,deny
    Allow from all
    AuthName "nagios Access"
    AuthUserFile /usr/local/nagios/etc/htpasswd
    Require valid-user
    </Directory>
    EOF
     
    useradd nagios;usermod -G nagios www
    tar xzf nagios-3.3.1.tar.gz
    cd nagios
    ./configure --prefix=/usr/local/nagios --with-nagios-user=nagios --with-nagios-group=nagios --with-command-user=nagios
    make all && make install && make install-init && make install-commandmode && make install-config
    cd ../
    tar xzf nagios-plugins-1.4.15.tar.gz
    cd nagios-plugins-1.4.15
    ./configure --prefix=/usr/local/nagios --with-nagios-user=nagios --with-nagios-group=nagios  && make && make install
    chkconfig --add nagios
    sed -i '138a              chmod 777 $NagiosVarDir/rw/nagios.cmd' /etc/init.d/nagios
    cd ..
     
    #安装nrpe
    tar xzf nrpe-2.13.tar.gz
    cd nrpe-2.13
    ./configure
    make && make install
    cp sample-config/nrpe.cfg  /usr/local/nagios/etc/
    chown nagios.nagios /usr/local/nagios/etc/nrpe.cfg
    cd ..
     
    sed -i 's@#server_address=127.0.0.1@server_address=192.168.1.114@g' /usr/local/nagios/etc/nrpe.cfg
    sed -i 's@allowed_hosts=.*$@allowed_hosts=127.0.0.1,192.168.1.114,192.168.1.113@g' /usr/local/nagios/etc/nrpe.cfg
    sed -i 's@command[check_hda1].*$@@g' /usr/local/nagios/etc/nrpe.cfg
    sed -i '205a command[check_df]=/usr/local/nagios/libexec/check_disk -w 20 -c 10' /usr/local/nagios/etc/nrpe.cfg
    sed -i '206a command[check_cpu_procs]=/usr/local/nagios/libexec/check_procs -w 50 -c 90 --metric=CPU' /usr/local/nagios/etc/nrpe.cfg
    sed -i '207a command[check_swap]=/usr/local/nagios/libexec/check_swap -w 20% -c 10%' /usr/local/nagios/etc/nrpe.cfg
    echo '/usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -d' >> /etc/rc.local
    /usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -d
    iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 5666 -j ACCEPT
    #创建web验证用户
    /usr/local/apache/bin/htpasswd -nb admin 123456 > /usr/local/nagios/etc/htpasswd;chown nagios.nagios /usr/local/nagios/etc/htpasswd
    #修改配置文件归类
    sed -i 's@cfg_file=/usr/local/nagios/etc/objects/templates.cfg@#cfg_file=/usr/local/nagios/etc/objects/templates.cfg@g' /usr/local/nagios/etc/nagios.cfg
    sed -i 's@cfg_file=/usr/local/nagios/etc/objects/localhost.cfg@#cfg_file=/usr/local/nagios/etc/objects/localhost.cfg@g' /usr/local/nagios/etc/nagios.cfg
    sed -i '32a cfg_file=/usr/local/nagios/etc/objects/hosts.cfg' /usr/local/nagios/etc/nagios.cfg
    sed -i '33a cfg_file=/usr/local/nagios/etc/objects/hostgroups.cfg' /usr/local/nagios/etc/nagios.cfg
    sed -i '34a cfg_file=/usr/local/nagios/etc/objects/contactsgroups.cfg' /usr/local/nagios/etc/nagios.cfg
    sed -i '35a cfg_file=/usr/local/nagios/etc/objects/services.cfg' /usr/local/nagios/etc/nagios.cfg
    #命令检查时间间隔
    sed -i 's@^command_check_interval.*$@command_check_interval=10s@g' /usr/local/nagios/etc/nagios.cfg
    #指定用户admin可以通过浏览器操纵nagios服务的关闭、重启等各种操作
    sed -i 's@authorized_for_system_information=.*$@authorized_for_system_information=admin@g' /usr/local/nagios/etc/cgi.cfg
    sed -i 's@authorized_for_configuration_information=.*$@authorized_for_configuration_information=admin@g' /usr/local/nagios/etc/cgi.cfg
    sed -i 's@authorized_for_system_commands=.*$@authorized_for_system_commands=admin@g' /usr/local/nagios/etc/cgi.cfg
    sed -i 's@authorized_for_all_services=.*$@authorized_for_all_services=admin@g' /usr/local/nagios/etc/cgi.cfg
    sed -i 's@authorized_for_all_hosts=.*$@authorized_for_all_hosts=admin@g' /usr/local/nagios/etc/cgi.cfg
    sed -i 's@authorized_for_all_service_commands=.*$@authorized_for_all_service_commands=admin@g' /usr/local/nagios/etc/cgi.cfg
    sed -i 's@authorized_for_all_host_commands=.*$@authorized_for_all_host_commands=admin@g' /usr/local/nagios/etc/cgi.cfg
     
    #hosts.cfg
    cat > /usr/local/nagios/etc/objects/hosts.cfg << EOF
    define host {
    host_name                 linux4
    alias                     nagios-server
    address                   192.168.1.114
    contact_groups            sagroup
    check_command             check-host-alive
    max_check_attempts          10
    notification_interval       5
    notification_period         24x7
    notification_options        d,u,r
    }
    define host {
    host_name                 linux3
    alias                     192.168.1.113
    address                   192.168.1.113
    contact_groups            sagroup
    check_command             check-host-alive
    max_check_attempts          10
    notification_interval       5
    notification_period         24x7
    notification_options        d,u,r
    }
    EOF
    chown nagios.nagios /usr/local/nagios/etc/objects/hosts.cfg
    chmod 664 /usr/local/nagios/etc/objects/hosts.cfg
    #hostgroups.cfg
    cat > /usr/local/nagios/etc/objects/hostgroups.cfg << EOF
    define hostgroup {
    hostgroup_name  sa-servers
    alias           sa servers
    members         linux4,linux3
    }
    EOF
    chown nagios.nagios /usr/local/nagios/etc/objects/hostgroups.cfg
    chmod 664 /usr/local/nagios/etc/objects/hostgroups.cfg
    #contacts.cfg
    cp /usr/local/nagios/etc/objects/contacts.cfg /usr/local/nagios/etc/objects/contacts.cfg.bk
    cat > /usr/local/nagios/etc/objects/contacts.cfg << EOF
    define contact {
    contact_name    admin
    alias           system administrator
    service_notification_period    24x7
    host_notification_period       24x7
    service_notification_options   w,u,c,r
    host_notification_options       d,u,r
    host_notification_commands     notify-host-by-email
    service_notification_commands  notify-service-by-email
    email                          go@linuxeye.com
    }
    EOF
    #services.cfg
    cat > /usr/local/nagios/etc/objects/services.cfg << EOF
    define service {
    host_name             linux4,linux3
    service_description   check-host-alive
    check_period          24x7
    max_check_attempts    4
    normal_check_interval 3
    retry_check_interval  2
    contact_groups        sagroup
    notification_interval   10
    notification_period     24x7
    notification_options    w,u,c,r
    check_command           check-host-alive
    }
    define service{
    host_name               linux4,linux3
    service_description     check_ssh
    check_command           check_ssh
    max_check_attempts      4
    normal_check_interval   3
    retry_check_interval    2
    check_period            24x7
    notification_interval   10
    notification_period     24x7
    notification_options    w,u,c,r
    contact_groups          sagroup
    }
    define service{
    host_name             linux4,linux3
    service_description     check-disk
    check_command           check_nrpe!check_df
    max_check_attempts      4
    normal_check_interval   3
    retry_check_interval    2
    check_period            24x7
    notification_interval   10
    notification_period     24x7
    notification_options    w,u,c,r
    contact_groups          sagroup
    }
    define service{
    host_name             linux4,linux3
    service_description     check_cpu_procs
    check_command           check_nrpe!check_cpu_procs
    max_check_attempts      4
    normal_check_interval   3
    retry_check_interval    2
    check_period            24x7
    notification_interval   10
    notification_period     24x7
    notification_options    w,u,c,r
    contact_groups          sagroup
    }
    define service{
    host_name             linux4,linux3
    service_description     check_load
    check_command           check_nrpe!check_load
    max_check_attempts      4
    normal_check_interval   3
    retry_check_interval    2
    check_period            24x7
    notification_interval   10
    notification_period     24x7
    notification_options    w,u,c,r
    contact_groups          sagroup
    }
    define service{
    host_name             linux4,linux3
    service_description     check_users
    check_command           check_nrpe!check_users
    max_check_attempts      4
    normal_check_interval   3
    retry_check_interval    2
    check_period            24x7
    notification_interval   10
    notification_period     24x7
    notification_options    w,u,c,r
    contact_groups          sagroup
    }
    define service{
    host_name             linux4,linux3
    service_description     check_swap
    check_command           check_nrpe!check_swap
    max_check_attempts      4
    normal_check_interval   3
    retry_check_interval    2
    check_period            24x7
    notification_interval   10
    notification_period     24x7
    notification_options    w,u,c,r
    contact_groups          sagroup
    }
    define service{
    host_name             linux4,linux3
    service_description     check_zombie_procs
    check_command           check_nrpe!check_zombie_procs
    max_check_attempts      4
    normal_check_interval   3
    retry_check_interval    2
    check_period            24x7
    notification_interval   10
    notification_period     24x7
    notification_options    w,u,c,r
    contact_groups          sagroup
    }
    EOF
    chown nagios.nagios /usr/local/nagios/etc/objects/services.cfg
    chmod 664 /usr/local/nagios/etc/objects/services.cfg
    #commands.cfg
    echo 'define command{
    command_name check_nrpe
    command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
    }' >> /usr/local/nagios/etc/objects/commands.cfg
    #contactsgroups.cfg
    cat > /usr/local/nagios/etc/objects/contactsgroups.cfg << EOF
    define contactgroup {
    contactgroup_name    sagroup
    alias                system administrator group
    members              admin
    }
    EOF
    chown nagios.nagios /usr/local/nagios/etc/objects/contactsgroups.cfg
    chmod 664 /usr/local/nagios/etc/objects/contactsgroups.cfg
    service nagios start
    service httpd start

    client

    #!/bin/bash
    #by LinuxEye
    #BLOG: //linuxeye.com
    if [ -e "/root/nagios" ];then
    echo -e "e[0;34m start installe[0m"
    cd /root/nagios/
    else
    echo -e "e[1;31mPlease send nagios directory moved to /roote[0m"
    exit 1
    fi
    useradd -M -s /sbin/nologin nagios
    cd nagios
    tar xzf nagios-plugins-1.4.15.tar.gz
    cd nagios-plugins-1.4.15
    ./configure --prefix=/usr/local/nagios --with-nagios-user=nagios --with-nagios-group=nagios  && make && make install
    cd ..
     
    #安装nrpe
    tar xzf nrpe-2.13.tar.gz
    cd nrpe-2.13
    ./configure
    make && make install
    mkdir /usr/local/nagios/etc/
    cp sample-config/nrpe.cfg  /usr/local/nagios/etc/
    chown nagios.nagios /usr/local/nagios/etc/nrpe.cfg
    cd ..
     
    sed -i 's@#server_address=127.0.0.1@server_address=192.168.1.113@g' /usr/local/nagios/etc/nrpe.cfg
    sed -i 's@allowed_hosts=.*$@allowed_hosts=192.168.1.114@g' /usr/local/nagios/etc/nrpe.cfg
    sed -i 's@command[check_hda1].*$@@g' /usr/local/nagios/etc/nrpe.cfg
    sed -i '205a command[check_df]=/usr/local/nagios/libexec/check_disk -w 20 -c 10' /usr/local/nagios/etc/nrpe.cfg
    sed -i '206a command[check_cpu_procs]=/usr/local/nagios/libexec/check_procs -w 50 -c 90 --metric=CPU' /usr/local/nagios/etc/nrpe.cfg
    sed -i '207a command[check_swap]=/usr/local/nagios/libexec/check_swap -w 20% -c 10%' /usr/local/nagios/etc/nrpe.cfg
    echo '/usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -d' >> /etc/rc.local
    /usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -d
    iptables -A INPUT -p tcp -s 192.168.1.114 -m state --state NEW -m tcp --dport 5666 -j ACCEPT

    • 本文由 发表于 2012-02-09
    • 转载请务必保留本文链接:https://linuxeye.com/46.html
    Apache mod_deflate压缩模块bug解决方法 Linux

    Apache mod_deflate压缩模块bug解决方法

    Apahce使用mod_deflate压缩模块,客户端(如浏览器)每次都会去服务器取数据(ps:Expires没有过期等情况下),即http请求头的状态码永远为200,而不会访回 304 Not Mo...
    CentOS6.6下安装Redmine2.6(整合Apache2.4) Linux

    CentOS6.6下安装Redmine2.6(整合Apache2.4)

    Redmine是一个开源的、基于Web的项目管理和缺陷跟踪工具。它用日历和甘特图辅助项目及进度可视化显示。同时它又支持多项目管理。Redmine是一个自由开放源码软件解决方案,它提供集成的项目管理功能...
    CentOS 6、7下IPSEC/L2TP VPN一键安装脚本(openswan+xl2tpd) 脚本

    CentOS 6、7下IPSEC/L2TP VPN一键安装脚本(openswan+xl2tpd)

    概念性的东西这里不再赘述,网上有太多,一键安装脚本也有很多,但是很多不能用,能用的也仅仅只是在CentOS6下使用,CentOS7基本没看到这些安装脚本。于是花了一些时间来折腾测试,写这个脚本方便以后...
    匿名

    发表评论

    匿名网友