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=nagiosndo2db_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 socketsocket_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 featureuse_ssl=0# DATABASE SERVER TYPE# This option determines what type of DB server the daemon should connect to.# Values:# mysql = MySQLdb_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 portdb_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 hoursmax_timedevents_age=1440# Keep system commands for 1 weekmax_systemcommands_age=10080# Keep service checks for 1 weekmax_servicechecks_age=10080# Keep host checks for 1 weekmax_hostchecks_age=10080# Keep event handlers for 31 daysmax_eventhandlers_age=44640# Keep external commands for 31 daysmax_externalcommands_age=44640# Keep notifications for 31 daysmax_notifications_age=44640# Keep contactnotifications for 31 daysmax_contactnotifications_age=44640# Keep contactnotificationmethods for 31 daysmax_contactnotificationmethods_age=44640# Keep logentries for 90 daysmax_logentries_age=129600# Keep acknowledgements for 31 daysmax_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 queriesdebug_level=0# DEBUG VERBOSITY# This option determines how verbose the debug log out will be.# Values: 0 = Brief output# 1 = More detailed# 2 = Very detaileddebug_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=655364.设置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 |

浙公网安备 33010602011771号