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
原文地址:https://www.cnblogs.com/fyy-hhzzj/p/8207185.html