zoukankan      html  css  js  c++  java
  • Nagios+Centreon+Nagvis等构建海量运维监控系统

    echo '此文件是安装Nagios+Centreon+Nagvis一套的脚本'
    sed -i 's/enforcing/disabled/g' /etc/selinux/config > /dev/null
    sed -i 's/permissive/disabled/g' /etc/selinux/config > /dev/null
    setenforce 0
    chkconfig iptables off
    service iptables stop
    chkfile() {

    if [ $? -ne 0 ];then
    echo '/usr/local/src/ 此目录没有此文件 ----> nagios-4.3.2.tar.gz'
    exit
    fi
    }
    chkerr() {
    if [ $? -ne 0 ];then
    exit
    }
    grep nameserver /etc/resolv.conf

    chkerr
    ping -c4 www.baidu.com
    chkerr

    rpm -ivh mysql-community-release-el6-5.noarch.rpm

    yum -y install httpd gd fontconfig-devel libjpeg-devel libpng-devel gd-devel perl-GD openssl-devel perl-DBD-MySQL mysql-community-server mysql-community-devel php php-devel php-mysql php-gd php-ldap php-xml php-mbstring
    perl-Config-IniFiles perl-DBI perl-DBD-MySQL perl-Crypt-DES perl-Digest-SHA1
    perl-Digest-HMAC net-snmp-utils perl-Socket6 perl-IO-Socket-INET6 net-snmp net-snmp-libs php-snmp rrdtool perl-rrdtool dmidecode lm_sensors perl-Net-SNMP net-snmp-perl fping cpp gcc gcc-c++ libstdc++ glib2-devel php-pear php-pear-DB php-intl xinetd

    groupadd -g 9000 nagios && groupadd -g 9001 nagcmd && useradd -u 9000 -g nagios -G nagcmd -d /home/nagios -c "Nagios Admin" nagios && usermod -G nagcmd apache

    mkdir /usr/local/nagios && chown -R nagios:nagios /usr/local/nagios
    ls /usr/local/src/nagios-4.3.2.tar.gz

    chkfile

    cd /usr/local/src/ && tar xf nagios-plugins-2.2.1.tar.gz && cd nagios-plugins-2.2.1 && ./configure --prefix=/usr/local/nagios --with-nagios-user=nagios --with-nagios-group=nagios --with-openssl=/usr/bin/openssl --enable-perl-modules && make && make install

    chkfile

    cd /usr/local/src/ && tar xf nagios-4.3.2.tar.gz && cd nagios-4.3.2 && ./configure --prefix=/usr/local/nagios --with-nagios-user=nagios --with-nagios-group=nagios --with-command-group=nagcmd --enable-embedded-perl --with-perlcache --enable-nanosleep --enable-broker
    make all && make install && make install-init && make install-commandmode && make install-webconf && make install-config

    htpasswd -cb /usr/local/nagios/etc/htpasswd.users nagiosadmin mima
    htpasswd -cb /usr/local/nagios/etc/htpasswd.users fang mima
    chmod g+w /usr/local/nagios/etc/htpasswd.users && chown nagios:nagios /usr/local/nagios/etc/htpasswd.users
    service httpd start
    service nagios start
    service nagios restart
    service httpd restart

    chkfile

    cd /usr/local/src/nrpe-3.1.0 && ./configure --prefix=/usr/local/nagios && make all && make install && make install-config && make install-plugin

    pear install DB_DataObject DB_DataObject_FormBuilder MDB2 Date HTML_Common HTML_QuickForm HTML_QuickForm_advmultiselect HTML_Table Arc_Tar Auth_SASL Console_Getopt Image_GraphViz Net_DIME ET- ET-IDNA_0.8.1 Net_SMTP Net_Socket Net_Traceroute-0.21.3 Net_Ping Numbers_Words-0.16.4 PHPUnit PHP_Compat Validate-0.8.5 XML_RPC SOAP-0.13.0 Log Mail Net_IDNA Archive_Zip --alldeps

    四、配置Nagios的WEB用户界面

     1.配置/etc/httpd/conf.d/nagios.conf文件 #前提已经安装上述步骤执行了 make install-webconf

    # SAMPLE CONFIG SNIPPETS FOR APACHE WEB SERVER
    #
    # This file contains examples of entries that need
    # to be incorporated into your Apache web server
    # configuration file. Customize the paths, etc. as
    # needed to fit your system.
    #可以参考此配置文件来配置

    ScriptAlias /nagios/cgi-bin "/usr/local/nagios/sbin"

    <Directory "/usr/local/nagios/sbin">
    # SSLRequireSSL
    Options ExecCGI
    AllowOverride None
    <IfVersion >= 2.3>
    <RequireAll>
    Require all granted
    # Require host 127.0.0.1

    AuthName "Nagios Access"
    AuthType Basic
    AuthUserFile /usr/local/nagios/etc/htpasswd.users
    Require valid-user
    </RequireAll>
    </IfVersion>
    <IfVersion < 2.3>
    # Order allow,deny
    # Allow from all
    Order deny,allow #默认的配置文件是注释的
    Deny from all #默认的配置文件是注释的
    Allow from 127.0.0.1 #默认的配置文件是注释的
    # Allow from 192.168.0.0/24 #此处是可以修改的或者是自己添加
    Allow from 10000
    AuthName "Nagios Access"
    AuthType Basic
    AuthUserFile /usr/local/nagios/etc/htpasswd.users
    Require valid-user
    </IfVersion>
    </Directory>

    Alias /nagios "/usr/local/nagios/share"

    <Directory "/usr/local/nagios/share">
    # SSLRequireSSL
    Options None
    AllowOverride None
    <IfVersion >= 2.3>
    <RequireAll>
    Require all granted
    # Require host 127.0.0.1

    AuthName "Nagios Access"
    AuthType Basic
    AuthUserFile /usr/local/nagios/etc/htpasswd.users
    Require valid-user
    </RequireAll>
    </IfVersion>
    <IfVersion < 2.3>
    Order allow,deny
    Allow from all
    # Order deny,allow
    # Deny from all
    # Allow from 127.0.0.1

    AuthName "Nagios Access"
    AuthType Basic
    AuthUserFile /usr/local/nagios/etc/htpasswd.users
    Require valid-user
    </IfVersion>
    </Directory>

    登录http://IP/nagios输入用户名密码查看是否正常。

    3.配置守护进程启动:/etc/xinetd.d/nrpe

    # default: on

    # description: NRPE (Nagios Remote Plugin Executor)
    service nrpe
    {
            flags           = REUSE
            socket_type     = stream   
        port        = 5666   
            wait            = no
            user            = nagios
        group       = nagios
            server          = /usr/local/nagios/bin/nrpe
            server_args     = -c /usr/local/nagios/etc/nrpe.cfg --inetd
        log_type        = file /tmp/nrpe.log
            log_on_failure  += USERID
            disable         = no
        only_from       = 10.124.151.248
    }
     

    第二部分:Ndoutils的安装

    3.检查和配置mysql配置文件/etc/my.cnf

    # For advice on how to change settings please see
    # http://dev.mysql.com/doc/refman/5.6/en/server-configuration-defaults.html
    [client]
    default-character-set=utf8
    socket=/var/lib/mysql/mysql.sock
    host=localhost
    user=ndodb
    password='ndodb111'
    [mysqld]
    open_files_limit=32000
    # Remove leading # and set to the amount of RAM for the most important data
    # cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
    # innodb_buffer_pool_size = 128M
    #
    # Remove leading # to turn on a very important data integrity option: logging
    # changes to the binary log between backups.
    # log_bin
    #
    # Remove leading # to set options mainly useful for reporting servers.
    # The server defaults are faster for transactions and fast SELECTs.
    # Adjust sizes as needed, experiment to find the optimal values.
    # join_buffer_size = 128M
    # sort_buffer_size = 2M
    # read_rnd_buffer_size = 2M
    #datadir=/var/lib/mysql
    datadir=/home/mysql/data
    port=33070
    skip-name-resolve
    character-set-server=utf8
    collation-server=utf8_general_ci
    max_connections=1000 #设置最大连接数为1000
    max_user_connections=500 #设置每用户最大连接数为500
    wait_timeout=200 #设置200秒后关闭空闲(IDLE)的连接,但是对正在工作的连接不影响
    socket=/var/lib/mysql/mysql.sock

    # Disabling symbolic-links is recommended to prevent assorted security risks
    symbolic-links=0

    # Recommended in standard MySQL setup
    sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
    server-id = 1
    log-bin=mysqlmaster-bin
    #binlog-do-db = cad #指定需要进行主从的数据库
    binlog_cache_size = 4M
    binlog_format=mixed
    expire_logs_days=3
    binlog-ignore-db=test #不记录test库的binlog
    replicate-ignore-db=test #不复制test库的binlog
    sync_binlog=1
    sql_mod=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
    [mysqld_safe]
    log-error=/var/log/mysqld.log
    pid-file=/var/run/mysqld/mysqld.pid

    配置文件ndo2db.cfg修改如下:(主要修改三处地方:mysql端口、mysql用户名、mysql用户名密码)

    #####################################################################

    # NDO2DB DAEMON CONFIG FILE
    #
    # Last Modified: 01-02-2009
    #####################################################################
     
     
     
    # LOCK FILE
    # This is the lockfile that NDO2DB will use to store its PID number
    # in when it is running in daemon mode.
     
    lock_file=/usr/local/nagios/var/ndo2db.pid
     
     
     
    # USER/GROUP PRIVILEGES
    # These options determine the user/group that the daemon should run as.
    # You can specify a number (uid/gid) or a name for either option.
     
    ndo2db_user=nagios
    ndo2db_group=nagios
     
     
     
    # SOCKET TYPE
    # This option determines what type of socket the daemon will create
    # an accept connections from.
    # Value:
    #   unix = Unix domain socket (default)
    #   tcp  = TCP socket
     
    socket_type=unix
    #socket_type=tcp
     
     
     
    # SOCKET NAME
    # This option determines the name and path of the UNIX domain
    # socket that the daemon will create and accept connections from.
    # This option is only valid if the socket type specified above
    # is "unix".
     
    socket_name=/usr/local/nagios/var/ndo.sock
     
     
     
    # TCP PORT
    # This option determines what port the daemon will listen for
    # connections on.  This option is only vlaid if the socket type
    # specified above is "tcp".
     
    tcp_port=5668
     
     
     
    # ENCRYPTION
    # This option determines if the ndo2db daemon will accept SSL to encrypt the
    # network traffic between module and ndo2db daemon.
    # Both sides have to enable this feature which depends on SSL Libraries
    # like openssl or kerberos
    # This option is only valid if the output type
    # option specified above is "tcpsocket".
    #
    # A value of '1' will enable this feature
     
    use_ssl=0
     
     
     
    # DATABASE SERVER TYPE
    # This option determines what type of DB server the daemon should connect to.
    # Values:
    #   mysql = MySQL
     
    db_servertype=mysql
     
     
     
    # DATABASE HOST
    # This option specifies what host the DB server is running on.
     
    db_host=localhost
     
     
     
    # DATABASE PORT
    # This option specifies the port that the DB server is running on.
    # Values:
    #  3306 = Default MySQL port
     
    db_port=33070 # 这里修改成mysql监听的端口
     
     
     
    # DATABASE SOCKET
    # This option specifies the path to the socket to use for local DB connections.
    #
    # MySQL's default location is /tmp/mysql.sock, but /var/lib/mysql/mysql.sock
    # is common for RPM distributions, and /var/run/mysqld/mysqld.sock is seen on
    # Ubuntu...
    #
    # You normally do not need to set this option unless you experience connection
    # problems with messages in NDO2DB's log like:
    #   "Can't connect to local MySQL server through socket ..."
     
    #db_socket=/var/lib/mysql/mysql.sock
     
     
     
    # DATABASE NAME
    # This option specifies the name of the database that should be used.
     
    db_name=nagios
     
     
     
    # DATABASE TABLE PREFIX
    # Determines the prefix (if any) that should be prepended to table names.
    # If you modify the table prefix, you'll need to modify the SQL script for
    # creating the database!
     
    db_prefix=nagios_
     
     
     
    # DATABASE USERNAME/PASSWORD
    # This is the username/password that will be used to authenticate to the DB.
    # The user needs at least SELECT, INSERT, UPDATE, and DELETE privileges on
    # the database.
     
    db_user=ndodb  #这里要改,改成在mysql授权给一个用户的那个用户名
    db_pass=ndodb  #这里要改,改成在mysql授权给一个用户的那个密码
     
     
     
    ## TABLE TRIMMING OPTIONS
    # Several database tables containing Nagios event data can become quite large
    # over time.  Most admins will want to trim these tables and keep only a
    # certain amount of data in them.  The options below are used to specify the
    # age (in MINUTES) that data should be allowd to remain in various tables
    # before it is deleted.  Using a value of zero (0) for any value means that
    # that particular table should NOT be automatically trimmed.
     
    # Keep timed events for 24 hours
    max_timedevents_age=1440
     
    # Keep system commands for 1 week
    max_systemcommands_age=10080
     
    # Keep service checks for 1 week
    max_servicechecks_age=10080
     
    # Keep host checks for 1 week
    max_hostchecks_age=10080
     
    # Keep event handlers for 31 days
    max_eventhandlers_age=44640
     
    # Keep external commands for 31 days
    max_externalcommands_age=44640
     
    # Keep notifications for 31 days
    max_notifications_age=44640
     
    # Keep contactnotifications for 31 days
    max_contactnotifications_age=44640
     
    # Keep contactnotificationmethods for 31 days
    max_contactnotificationmethods_age=44640
     
    # Keep logentries for 90 days
    max_logentries_age=129600
     
    # Keep acknowledgements for 31 days
    max_acknowledgements_age=44640
     
     
     
    # DEBUG LEVEL
    # This option determines how much (if any) debugging information will
    # be written to the debug file.  OR values together to log multiple
    # types of information.
    # Values: -1 = Everything
    #          0 = Nothing
    #          1 = Process info
    #      2 = SQL queries
     
    debug_level=0
     
     
     
    # DEBUG VERBOSITY
    # This option determines how verbose the debug log out will be.
    # Values: 0 = Brief output
    #         1 = More detailed
    #         2 = Very detailed
     
    debug_verbosity=1
     
     
     
    # DEBUG FILE
    # This option determines where the daemon should write debugging information.
     
    debug_file=/usr/local/nagios/var/ndo2db.debug
     
     
     
    # MAX DEBUG FILE SIZE
    # This option determines the maximum size (in bytes) of the debug file.  If
    # the file grows larger than this size, it will be renamed with a .old
    # extension.  If a file already exists with a .old extension it will
    # automatically be deleted.  This helps ensure your disk space usage doesn't
    # get out of control when debugging.
     
    max_debug_file_size=1000000
     
     
    # MAX OUTPUT BUFFER SIZE
    # This option determines the maximum size (in bytes) of the output buffer.
    # NDO2DB will start truncating characters after this value.
    # If you have very large long output and you're not seeing it all in the database,
    # try increasing this number.
    # IMPORTANT NOTE: The 'long_output' fields in the database are set to TEXT fields, and the maximum
    # size of a TEXT field is 64KB, so if you really want to make use of this field, you'll need to set
    # the long_output fields to MEDIUMTEXT OR LONGTEXT.
    # the long_output column exists in the following tables:
    #  _eventhandlers, _hostchecks, _hoststatus, _notifications, _servicechecks, _servicestatus, _statehistory, _systemcommands
    # An example sql alter statement might look like this:
    # ALTER TABLE nagios_hoststatus MODIFY COLUMN long_output LONGTEXT NOT NULL DEFAULT '';
    max_output_buffer_size=65536

    4.设置ndo2db启动方式:

    1
    2
    3
    4
    5
    6
    7
    #源码中有多种方式可以启动nd02db,这里设置成init方式管理
    cp /usr/local/src/ndoutils-2.1.3/startup/default-init /etc/init.d/ndo2db
    #修改/etc/init.d/ndo2db
    修改
    NDO2DB_BIN=/usr/local/nagios/bin/ndo2db-4x 
    #设置成开机自启
    chkconfig ndo2db on
  • 相关阅读:
    30道四则运算
    《梦断代码》第0章读书随笔
    《梦断代码》阅读计划
    [记录] Mybatis原理
    GitLab登录密码重置后无法使用idea拉取代码提交代码问题解决
    写邮件和回复邮件
    XMLDocument 方法中实现post发送消息
    愿我温柔如水,坚强如钢!
    第6届蓝桥杯javaA组第7题,牌型种数,一道简单的题带来的思考
    IE兼容性问题解决方案2--css样式兼容标签
  • 原文地址:https://www.cnblogs.com/fyy-hhzzj/p/8207185.html
Copyright © 2011-2022 走看看