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
|