本例在CentOS 6.5 64位系统测试
rpm -ivh http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm yum update yum upgrade
关闭防火墙和SELINUX
chkconfig --level 35 iptables off vi /etc/selinux/config
将SELINUX=enforcing 修改为:SELINUX=disabled
然后重启系统
reboot
首先安装APACHE 也可根据情况安装NGINX
yum install httpd usermod -U apache
安装GD库
yum install gd fontconfig-devel libjpeg-devel libpng-devel gd-devel perl-GD
安装MySQL数据库
yum install openssl-devel perl-DBD-MySQL mysql-server mysql-devel
安装PHP和扩展
yum install php php-mysql php-gd php-ldap php-xml php-mbstring
安装Perl扩展
yum install perl-Config-IniFiles perl-DBI
安装RRDtool
yum install rrdtool perl-rrdtool
安装SNMP
yum install perl-Crypt-DES perl-Digest-SHA1 perl-Digest-HMAC net-snmp-utils yum install perl-Socket6 perl-IO-Socket-INET6 net-snmp yum install php-snmp dmidecode lm_sensors perl-Net-SNMP net-snmp-perl
安装开发库
yum groupinstall "Development Tools"
其他库
yum install fping glib2-devel
安装PEAR
yum install php-pear pear channel-update pear.php.net pear upgrade-all
现在我们下载所需用的的软件
wget http://jaist.dl.sourceforge.net/project/nagios/nagios-4.x/nagios-4.0.4/nagios-4.0.4.tar.gz wget http://jaist.dl.sourceforge.net/project/nagios/ndoutils-2.x/ndoutils-2.0.0/ndoutils-2.0.0.tar.gz wget http://nagios-plugins.org/download/nagios-plugins-2.0.tar.gz wget http://download.centreon.com/centreon/centreon-2.5.0.tar.gz wget http://downloads.sourceforge.net/project/nagios/nrpe-2.x/nrpe-2.15/nrpe-2.15.tar.gz
centreon-clapi-1.5.2 下载地址 http://download.centreon.com/index.php?id=4296
安装Nagios
[root@jk soft]# useradd nagios [root@jk soft]# groupadd nagcmd [root@jk soft]# usermod -G nagios,nagcmd nagios [root@jk soft]# tar xvzf nagios-4.0.4.tar.gz [root@jk soft]# cd nagios-4.0.4 [root@jk nagios-4.0.4]# ./configure --prefix=/usr/local/nagios --with-command-group=nagcmd --enable-nanosleep --enable-event-broker --enable-embedded-perl [root@jk nagios-4.0.4]# make all&&make install&&make install-init&&make install-commandmode&&make install-config&&make install-webconf
安装Nagios插件
[root@jk nagios-4.0.4]# cd .. [root@jk soft]# tar xvzf nagios-plugins-2.0.tar.gz [root@jk nagios-plugins-2.0]# ./configure --with-nagios-user=nagios --with-nagios-group=nagios --with-openssl=/usr/bin/openssl --enable-perl-modules [root@jk nagios-plugins-2.0]# make&&make install
如果出现类似如下错误:
Working in: /soft/nagios-plugins-2.0/perlmods/Test-Simple-0.98 Using Makefile.PL Can't locate ExtUtils/MakeMaker.pm in @INC (@INC contains: /soft/nagios-plugins-2.0/perlmods/Test-Simple- 0.98/blib/lib /soft/nagios-plugins-2.0/perlmods/Test-Simple-0.98/blib/arch /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 .) at Makefile.PL line 6. BEGIN failed--compilation aborted at Makefile.PL line 6. make[3]: Entering directory `/soft/nagios-plugins-2.0/perlmods/Test-Simple-0.98' make[3]: *** No targets specified and no makefile found. Stop. make[3]: Leaving directory `/soft/nagios-plugins-2.0/perlmods/Test-Simple-0.98' Can't run make. Please rm -rf /soft/nagios-plugins-2.0/perlmods/Test-Simple-0.98 to remake from this point) at ../tools/build_perl_modules line 235. make[2]: *** [all-local] Error 2 make[2]: Leaving directory `/soft/nagios-plugins-2.0/perlmods' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/soft/nagios-plugins-2.0' make: *** [all] Error 2
这个是缺少Perl模块导致 安装
yum install perl-ExtUtils-MakeMaker
然后再次make&&make install
安装Nrpe
[root@jk nagios-plugins-2.0]# cd .. [root@jk soft]# tar xvzf nrpe-2.15.tar.gz [root@jk soft]# cd nrpe-2.15 [root@jk nrpe-2.15]# ./configure [root@jk nrpe-2.15]# make all&&make install-plugin&&make install-daemon&&make install-daemon-config
安装Ndoutils
[root@jk nrpe-2.15]# cd .. [root@jk soft]# tar xvzf ndoutils-2.0.0.tar.gz [root@jk soft]# cd ndoutils-2.0.0 [root@jk ndoutils-2.0.0]# ./configure --prefix=/usr/local/nagios/ --enable-mysql --with-ndo2db-user=nagios --with-ndo2db-group=nagios [root@jk ndoutils-2.0.0]# make&&make install [root@jk ndoutils-2.0.0]# cp ./config/ndo2db.cfg-sample /usr/local/nagios/etc/ndo2db.cfg [root@jk ndoutils-2.0.0]# cp ./config/ndomod.cfg-sample /usr/local/nagios/etc/ndomod.cfg [root@jk ndoutils-2.0.0]# cp daemon-init /etc/init.d/ndo2db
修改启动脚本killproc_ndo2db()和 stop)的内容 修改成以下内容:
[root@jk ndoutils-2.0.0]# vi /etc/init.d/ndo2db killproc_ndo2db () { kill `pidof ndo2db |cut -f1 -d " "` >/dev/null 2>&1 kill `pidof ndo2db |cut -f1 -d " "` >/dev/null 2>&1 } stop) echo "Stopping $servicename..." killproc_ndo2db ;; [root@jk ndoutils-2.0.0]# chmod +x /etc/init.d/ndo2db [root@jk ndoutils-2.0.0]# chkconfig --add ndo2db [root@jk ndoutils-2.0.0]# chkconfig --level 345 ndo2db on
安装Centreon
[root@jk ndoutils-2.0.0]# cd ../ [root@jk soft]# tar xvzf centreon-2.5.0.tar.gz [root@jk soft]# cd centreon-2.5.0 [root@jk centreon-2.5.0]# ./install.sh -i
------------------------------------------------------------------------ Checking all needed binaries ------------------------------------------------------------------------ rm OK cp OK mv OK /bin/chmod OK /bin/chown OK echo OK more OK mkdir OK find OK /bin/grep OK /bin/cat OK /bin/sed OK You will now read Centreon Licence. Press enter to continue. 安装回车和Q键 然后按Y Do you accept GPL license ? [y/n], default to [n]: > y ------------------------------------------------------------------------ Please choose what you want to install ------------------------------------------------------------------------ Do you want to install : Centreon Web Front [y/n], default to [n]: > y Do you want to install : Centreon CentCore [y/n], default to [n]: > y Do you want to install : Centreon Nagios Plugins [y/n], default to [n]: > y Do you want to install : Centreon Snmp Traps process [y/n], default to [n]: > y ------------------------------------------------------------------------ Start CentWeb Installation ------------------------------------------------------------------------ Where is your Centreon directory? default to [/usr/local/centreon] > Do you want me to create this directory ? [/usr/local/centreon] [y/n], default to [n]: > y Path /usr/local/centreon OK Where is your Centreon log directory default to [/usr/local/centreon/log] > Do you want me to create this directory ? [/usr/local/centreon/log] [y/n], default to [n]: > y Path /usr/local/centreon/log OK Where is your Centreon etc directory default to [/etc/centreon] > Do you want me to create this directory ? [/etc/centreon] [y/n], default to [n]: > y Path /etc/centreon OK Where is your Centreon binaries directory default to [/usr/local/centreon/bin] > Do you want me to create this directory ? [/usr/local/centreon/bin] [y/n], default to [n]: > y Path /usr/local/centreon/bin OK Where is your Centreon data informations directory default to [/usr/local/centreon/data] > Do you want me to create this directory ? [/usr/local/centreon/data] [y/n], default to [n]: > y Path /usr/local/centreon/data OK Where is your Centreon variable library directory? default to [/var/lib/centreon] > Do you want me to create this directory ? [/var/lib/centreon] [y/n], default to [n]: > y Path /var/lib/centreon OK /usr/bin/rrdtool OK /bin/mail OK /usr/bin/php OK Where is PEAR [PEAR.php] default to [/usr/share/php/PEAR.php] > /usr/share/pear/PEAR.php Path /usr/share/pear OK /usr/bin/perl OK Finding Apache user : apache Finding Apache group : apache What is the Centreon group ? [centreon] default to [centreon] > Do you want me to create this group ? [centreon] [y/n], default to [n]: > y What is the Centreon user ? [centreon] default to [centreon] > Do you want me to create this user ? [centreon] [y/n], default to [n]: > y What is the Monitoring engine user ? > nagios What is the Broker user ? (optional) > nagios What is the Monitoring engine log directory ? > /usr/local/nagios/var/log Where is your monitoring plugins (libexec) directory ? default to [/usr/lib/nagios/plugins] > /usr/local/nagios/libexec Path /usr/local/nagios/libexec OK Add group centreon to user apache OK Add group centreon to user nagios OK Add group nagios to user apache OK Add group nagios to user centreon OK ------------------------------------------------------------------------ Configure Sudo ------------------------------------------------------------------------ Where is sudo configuration file default to [/etc/sudoers] > /etc/sudoers OK What is the Monitoring engine init.d script ? > /etc/init.d/nagios What is the Monitoring engine binary ? > /usr/local/nagios/bin/nagios What is the Monitoring engine configuration directory ? > /usr/local/nagios/etc Where is the configuration directory for broker module ? > /usr/local/nagios/etc Where is the init script for broker module daemon ? > /etc/init.d/ndo2db Your sudo is not configured Do you want me to configure your sudo ? (WARNING) [y/n], default to [n]: > y Configuring Sudo OK Configure Apache server ------------------------------------------------------------------------ Do you want to add Centreon Apache sub configuration file ? [y/n], default to [n]: > y Create '/etc/httpd/conf.d/centreon.conf' OK Configuring Apache OK Do you want to reload your Apache ? [y/n], default to [n]: > y Reloading Apache service FAIL Preparing Centreon temporary files Change right on /usr/local/centreon/log OK Change right on /etc/centreon OK Change macros for insertBaseConf.sql OK Change macros for sql update files OK Change macros for php files OK Change macros for perl binary OK Change right on /usr/local/nagios/etc OK Add group nagios to user apache OK Add group nagios to user nagios OK Add group centreon to user nagios OK Copy CentWeb in system directory Install CentWeb (web front of centreon) OK Change right for install directory Change right for install directory OK Install libraries OK Write right to Smarty Cache OK Copying libinstall OK Change macros for centreon.cron OK Install Centreon cron.d file OK Change macros for centAcl.php OK Change macros for downtimeManager.php OK Install cron directory OK Change right for eventReportBuilder OK Change right for dashboardBuilder OK Change macros for centreon.logrotate OK Install Centreon logrotate.d file OK Prepare centFillTrapDB OK Install centFillTrapDB OK Prepare centreon_trap_send OK Install centreon_trap_send OK Prepare centreon_check_perfdata OK Install centreon_check_perfdata OK Prepare centreonSyncPlugins OK Install centreonSyncPlugins OK Prepare centreonSyncArchives OK Install centreonSyncArchives OK Install generateSqlLite OK Install changeRrdDsName.pl OK Prepare export-mysql-indexes OK Install export-mysql-indexes OK Prepare import-mysql-indexes OK Install import-mysql-indexes OK Centreon Web Perl lib installed OK ------------------------------------------------------------------------ Pear Modules ------------------------------------------------------------------------ Check PEAR modules PEAR 1.4.9 1.9.4 OK DB 1.7.6 NOK DB_DataObject 1.8.4 NOK DB_DataObject_FormBuilder 1.0.0RC4 NOK MDB2 2.0.0 NOK Date 1.4.6 NOK HTML_Common 1.2.2 NOK HTML_QuickForm 3.2.5 NOK HTML_QuickForm_advmultiselect 1.1.0 NOK HTML_Table 1.6.1 NOK Archive_Tar 1.1 1.3.11 OK Auth_SASL 1.0.1 NOK Console_Getopt 1.2 1.3.1 OK Net_SMTP 1.2.8 NOK Net_Socket 1.0.1 NOK Net_Traceroute 0.21 NOK Net_Ping 2.4.1 NOK Validate 0.6.2 NOK XML_RPC 1.4.5 1.5.5 OK SOAP 0.10.1 NOK Log 1.9.11 NOK Archive_Zip 0.1.2 NOK Do you want me to install/upgrade your PEAR modules [y/n], default to [y]: > y Upgrading PEAR modules Installing PEAR modules DB_DataObject_FormBuilder 1.0.0RC4 1.0.2 OK Check PEAR modules PEAR 1.4.9 1.9.4 OK DB 1.7.6 1.7.14 OK DB_DataObject 1.8.4 1.11.2 OK DB_DataObject_FormBuilder 1.0.0RC4 1.0.2 OK MDB2 2.0.0 2.4.1 OK Date 1.4.6 1.4.7 OK HTML_Common 1.2.2 1.2.5 OK HTML_QuickForm 3.2.5 3.2.13 OK HTML_QuickForm_advmultiselect 1.1.0 1.5.1 OK HTML_Table 1.6.1 1.8.3 OK Archive_Tar 1.1 1.3.11 OK Auth_SASL 1.0.1 1.0.6 OK Console_Getopt 1.2 1.3.1 OK Net_SMTP 1.2.8 1.6.2 OK Net_Socket 1.0.1 1.0.14 OK Net_Traceroute 0.21 0.21.3 OK Net_Ping 2.4.1 2.4.5 OK Validate 0.6.2 0.8.5 OK XML_RPC 1.4.5 1.5.5 OK SOAP 0.10.1 0.13.0 OK Log 1.9.11 1.12.7 OK Archive_Zip 0.1.2 0.1.2 OK All PEAR modules OK ------------------------------------------------------------------------ Centreon Post Install ------------------------------------------------------------------------ Create /usr/local/centreon/www/install/install.conf.php OK Create /etc/centreon/instCentWeb.conf OK ------------------------------------------------------------------------ Start CentStorage Installation ------------------------------------------------------------------------ Where is your Centreon Run Dir directory? default to [/var/run/centreon] > Do you want me to create this directory ? [/var/run/centreon] [y/n], default to [n]: > y Path /var/run/centreon OK Where is your CentStorage binary directory default to [/usr/local/centreon/bin] > Path /usr/local/centreon/bin OK Where is your CentStorage RRD directory default to [/var/lib/centreon] > Path /var/lib/centreon OK Preparing Centreon temporary files /tmp/centreon-setup exists, it will be moved... install www/install/createTablesCentstorage.sql OK Creating Centreon Directory '/var/lib/centreon/status' OK Creating Centreon Directory '/var/lib/centreon/metrics' OK Install CentStorage binary OK Change right : /var/run/centreon OK Change macros for centstorage init script OK Replace CentStorage sysconfig script Macro OK Do you want me to install CentStorage init script ? [y/n], default to [n]: > y CentStorage init script installed OK CentStorage sysconfig script installed OK Do you want me to install CentStorage run level ? [y/n], default to [n]: > y CentStorage Perl lib installed OK Install logAnalyser OK Install logAnalyserBroker OK Install nagiosPerfTrace OK Change macros for centstorage.cron OK Install CentStorage cron OK Change macros for centstorage.logrotate OK Install Centreon Storage logrotate.d file OK Create /etc/centreon/instCentStorage.conf OK ------------------------------------------------------------------------ Start CentCore Installation ------------------------------------------------------------------------ Where is your CentCore binary directory default to [/usr/local/centreon/bin] > Path /usr/local/centreon/bin OK Preparing Centreon temporary files /tmp/centreon-setup exists, it will be moved... Copy CentCore in binary directory OK Change right : /var/run/centreon OK Change right : /var/lib/centreon OK Change macros for centcore.logrotate OK Install Centreon Core logrotate.d file OK Replace CentCore init script Macro OK Replace CentCore sysconfig script Macro OK Do you want me to install CentCore init script ? [y/n], default to [n]: > y CentCore init script installed OK CentCore sysconfig script installed OK Do you want me to install CentCore run level ? [y/n], default to [n]: > y CentCore Perl lib installed OK Create /etc/centreon/instCentCore.conf OK ------------------------------------------------------------------------ Start CentPlugins Installation ------------------------------------------------------------------------ Where is your CentPlugins lib directory default to [/var/lib/centreon/centplugins] > /usr/local/nagios/libexec Path /usr/local/nagios/libexec OK Preparing Centreon temporary files /tmp/centreon-setup exists, it will be moved... Change macros for CentPlugins OK Installing the plugins OK Change right on centreon.conf OK CentPlugins is installed ------------------------------------------------------------------------ Start CentPlugins Traps Installation ------------------------------------------------------------------------ Where is your SNMP configuration directory default to [/etc/snmp] > /etc/snmp OK Where is your CentreonTrapd binaries directory default to [/usr/local/centreon/bin] > /usr/local/centreon/bin OK Finding Apache user : apache Preparing Centreon temporary files /tmp/centreon-setup exists, it will be moved... Change macros for snmptrapd.conf OK Replace CentreonTrapd init script Macro OK Replace CentreonTrapd sysconfig script Macro OK Do you want me to install CentreonTrapd init script ? [y/n], default to [n]: > y CentreonTrapd init script installed OK CentreonTrapd sysconfig script installed OK Do you want me to install CentreonTrapd run level ? [y/n], default to [n]: > y trapd Perl lib installed OK Install : snmptrapd.conf OK Install : centreontrapdforward OK Install : centreontrapd OK Create /etc/centreon/instCentPlugins.conf OK
安装完后,启动服务
[root@jk centreon-2.5.0]# /etc/init.d/httpd start Starting httpd: [ OK ] [root@jk centreon-2.5.0]# /etc/init.d/mysqld start Starting mysqld: [ OK ] [root@jk centreon-2.5.0]# mysqladmin -u root -p password 'mysqlpasswd' [root@jk centreon-2.5.0]# /etc/init.d/ndo2db start Starting ndo2db: done.
启动nrpe
修改/usr/local/nagios/etc/nrpe.cfg
#allowed_hosts=127.0.0.1 这句修改为
allowed_hosts=127.0.0.1,192.168.1.225
command[check_hda1]=/usr/local/nagios/libexec/check_disk -w 20% -c 10% -p /dev/hda1这句修改如下
command[check_disk]=/usr/local/nagios/libexec/check_disk -w 20% -c 10% -p /
启动
/usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -d
把上面这句加到/etc/rc.d/rc.loal
这个步骤完成后,我们进行网页端安装
http://192.168.1.225/centreon 打开安装程序
如图:
填写正确的路径
填写管理员密码和邮箱
填写数据库用户名和密码
遇到下面这个错误
在/etc/my.cn 的MYSQLD段添加下面一句
innodb_file_per_table=1
然后重新启动MYSQL
service mysqld restart
Configuration->Monitoring Engines->Generate 勾选所有,然后点击Export
先把默认服务删除
添加一个check_ping命令
$USER1$/check_ping -H $HOSTADDRESS$ -w $ARG1$ -c $ARG2$ -p $ARG3$
Configuration->Commands->Add
$USER1$/check_ping -H $HOSTADDRESS$ -w $ARG1$ -c $ARG2$ -p $ARG3$
接着添加一个服务模板
Configuration->Services-Templates->Add
检查是否正确并生成配置:管理-》nagios 勾选所有动作-》导出
再添加一个命令check_nrpe ,Configuration->Commands->Add
$USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
下面添加服务
配置-》服务-》模板-》增加
添加check_load
添加check_users
添加check_ disk
添加check_zombie_procs
添加check_total_procs
关联模板:因为 Centreon-Server继承的是Servers-Linux主机模板,所以我们在Servers-Linux模板里将刚才的服务模板都关联上
检查是否正确并生成配置:管理-》nagios 勾选所有动作-》导出
过一会 如下图
下面说说nrpe监控WINDOWS
首先现在NRPE客户端 下载地址如下:
http://nsclient.org/nscp/downloads
在这里我们下载的是NSCP-0.4.2.88-x64.msi
然后安装这个软件
由于系统自带check_nt_cpu /check_nt_disk/check_memuse 我们再添加两个
添加一个check_nt_uptime命令
$USER1$/check_nt -H $HOSTADDRESS$ -p $ARG1$ -v UPTIME -s $ARG2$
再添加一个check_nt_service命令
$USER1$/check_nt -H $HOSTADDRESS$ -p $ARG1$ -v SERVICESTATE -d SHOWALL -l $ARG2$ -s $ARG3$
添加完成后我们依次添加服务模板
添加check_nt_cpu
添加check_nt_disk
添加check_nt_mem
添加check_nt_uptime
添加check_nt_services
添加完成后我们添加一台WINDOWS主机
添加完成后我们关联模板
检查是否正确并生成配置:管理-》nagios 勾选所有动作-》导出
过一会儿如下:
我们现在说说批量添加 这个要用脚本
脚本名称 add_host.pl
内容如下:
#!/usr/bin/perl ## ==================================================== use strict; use warnings; use DBI; use DBD::mysql; # ---------------------------------------------------- my $DB_HOST = "127.0.0.1"; //数据IP my $DB_USER = "root"; //数据库用户名 my $DB_PASSWD = "passwd"; //数据库密码 my $DB_NAME = "centreon"; //数据库名称 my $dbh = DBI->connect("DBI:mysql:database=$DB_NAME;host=$DB_HOST", "$DB_USER", "$DB_PASSWD", { RaiseError => 1 }); # ---------------------------------------------------- my $file_path = "./hosts"; //HOST文件 my $tpl_name = "Servers-Linux"; //模板 my $nagios_name = "Central"; foreach my $arg (@ARGV) { # == file of hostname and ipaddress == if ($arg eq '-f') { $file_path = shift; } # == name of template == elsif ($arg eq '-t') { $tpl_name = shift; } # == name of nagios name == elsif ($arg eq '-n') { $nagios_name = shift; } else { &print_help(); exit 1; } } # ----------------------------------------------------- open (HOST, "$file_path") || die "Cannot open $file_path for read"; my $sql; my $sth; my $line; my ($host, $ipaddr); my ($host_id, $tpl_id, $nagios_id) = (0, 0, 0); while (defined($line = <HOST>)) { # == skip blank lines ================= next if ($line =~ /^\s*$/); # == skip if # ======================== next if ($line =~ /^\s*#/); # == get host and ipaddress =========== ($ipaddr, $host) = split(/\s+/, $line); next if ($ipaddr eq '' || $host eq ''); # == insert the host to table host ==== $sql = "insert host set host_template_model_htm_id='2',host_name='$host',host_alias='$host',host_address='$ipaddr',host_active_checks_ enabled='2',host_passive_checks_enabled= '2',host_checks_enabled='2',host_event_handler_enabled='2',host_flap_detection_enabled='2',host_process_perf_ data='2',host_retain_status_information= '2',host_retain_nonstatus_information='2',host_notifications_enabled='2',host_register='1',host_activate='1'"; $sth = $dbh->do($sql); sleep(1); # == get host_id ====================== $sql = "select host_id from host where host_name='$host'"; $sth = $dbh->prepare($sql); $sth->execute(); while (my $ref = $sth->fetchrow_hashref()) { $host_id = $ref->{'host_id'}; print "host_id is $host_id\n"; } next if ($host_id == 0); # == insert extended_host_information == $sql = "insert extended_host_information set host_host_id='$host_id'"; $sth = $dbh->do($sql); # == insert host_template_relation ===== $sql = "select host_id from host where host_name='$tpl_name'"; $sth = $dbh->prepare($sql); $sth->execute(); while (my $ref = $sth->fetchrow_hashref()) { $tpl_id = $ref->{'host_id'}; print "template id is $tpl_id\n"; } next if ($tpl_id == 0); $sql = "insert host_template_relation set host_host_id='$host_id',host_tpl_id='$tpl_id',`order`='1'"; $sth = $dbh->prepare($sql); $sth->execute(); # == insert ns_host_relation =========== $sql = "select id from nagios_server where name='$nagios_name'"; $sth = $dbh->prepare($sql); $sth->execute(); while (my $ref = $sth->fetchrow_hashref()) { $nagios_id = $ref->{'id'}; print "nagios id is $nagios_id\n"; } next if ($nagios_id == 0); $sql = "insert ns_host_relation set host_host_id='$host_id',nagios_server_id='$nagios_id'"; $sth = $dbh->prepare($sql); $sth->execute(); # == insert complete == print "insert $host to centreon complete\n"; } close(HOST); $dbh->disconnect(); exit 0; # -------------------------------------------------------------------------------- sub print_help { print "Usage ./insert_host.pl [-f path of host file] [-n nagios name] [-t template name]\n"; print "\n"; }
hosts文件格式如下:
192.168.1.222webserver1
192.168.1.223webserver2
.........
这个脚本只能批量添加主机无法添加服务,所以我们还得安装centreon-clapi
[root@jk soft]# tar xvzf centreon-clapi-1.5.2.tar.gz [root@jk soft]# cd centreon-clapi-1.5.2 [root@jk centreon-clapi-1.5.2]# ./install.sh -i ############################################################################## # # # # Module : Centreon CLAPI version 1.5 # # # ############################################################################## # ------------------------------------------------------------------------ Checking all needed binaries ------------------------------------------------------------------------ rm OK cp OK mv OK /bin/chmod OK /bin/chown OK echo OK more OK mkdir OK find OK /bin/grep OK /bin/cat OK /bin/sed OK ------------------------------------------------------------------------ Load parameters ------------------------------------------------------------------------ Please specify the directory that contains "instCentWeb.conf" > /etc/centreon/ ------------------------------------------------------------------------ Centreon CLAPI Module Installation ------------------------------------------------------------------------ Replacing macros OK Setting right OK Setting owner/group OK Create module directory OK Copying module OK Delete temp install directory OK The centreon-clapi.1.5 installation is finished OK [root@jk centreon-clapi-1.5.2]# cd /usr/local/centreon/www/modules/centreon-clapi/core/ vi centreon
require_once
"$centreon_etc/centreon.conf.php"
;
改为
require_once "/etc/centreon/centreon.conf.php";
查看主机
[root@jk core]# ./centreon -uadmin -p111222 -o HOST -a show
id;name;alias;address;activate
14;Centreon-Server;Monitoring Server;127.0.0.1;1
16;windows;windows;192.168.1.254;1
应用关联模板 对WebServer1应用模板
./centreon -uadmin -p111111 -o HOST -a applytpl -v "WebServer1"
设置引导自动启动服务
[root@jk ~]# chkconfig --level 345 nagios on
[root@jk ~]# chkconfig --level 345 centcore on
[root@jk ~]# chkconfig --level 345 centstorage on
[root@jk ~]# chkconfig --level 345 ndo2db on
[root@jk ~]# chkconfig --level 345 httpd on
[root@jk ~]# chkconfig --level 345 mysqld on
[root@jk var]# service centstorage restart
Stopping centstorage: [FAILED]
Starting centstorage: [ OK ]
这个服务一直启动不起来,多方测试均不可以 如下方法解决
/usr/bin/perl /usr/local/centreon/bin/centstorage --logfile=/usr/local/centreon/log/centstorage.log --severity=error
--config=/etc/centreon/conf.pm &
这样启动
如果要查看Nagios的页面要新建一个用户 如下 用户名必须是nagiosadmin
[root@jk ~]# htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin
New password:
Re-type new password:
Adding password for user nagiosadmin
[root@jk ~]#
现在可以通过http://www.xxx.com/nagios访问
如果Poller States 红色状态,请查看/var/log/message
jk ndo2db: mysql_error: 'Unknown column 'importance' in 'field list''
如果有类似上面的错误,请重新新建一个nagios的数据库
到ndoutils-2.0.0的安装目录的 db目录
本例是/soft/ndoutils-2.0.0/db执行
./installdb -u root -p passwd -h localhost -d nagios
改成自己的mysql的用户名和密码
改完之后请在NDO2DB.CFG修改数据库名为nagios
查看/usr/local/centreon/log/sql-error.log文件 如果有以下错误
2014-04-10 13:36|0|0|DB Error: no such table QUERY : DELETE FROM centreon_acl WHERE group_id NOT IN (SELECT
DISTINCT acl_group_id FROM centreon.acl_res_group_relations)
这个是缺少个字段 解决办法如下:
mysql -u root -p
use nagios;
CREATE TABLE IF NOT EXISTS `centreon_acl` (
`id` int(11) NOT NULL auto_increment,
`host_name` varchar(255) default NULL,
`service_description` varchar(255) default NULL,
`group_id` int(11) default NULL,
PRIMARY KEY (`id`),
KEY `host_name` (`host_name`),
KEY `service_description` (`service_description`),
KEY `group_id` (`group_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
如果系统日志不显示NOD2DB的相关日志 系统日志提示如下:
ndo2db: Warning: Retrying message send. This can occur because you have too few messages allowed or too few
total bytes allowed in message queues. You are currently using 64 of 3739 messages and 65536 of 65536 bytes in the
queue. See README for kernel tuning options.
那么修改 /etc/sysctl.conf
如果没有则添加,如果有则修改数值
kernel.msgmnb = 431072000
kernel.msgmni = 100000
kernel.msgmax = 6553600
修改完成之后 sysctl -p
汉化
mkdir -p /usr/local/centreon/www/locale/zh_CN/LC_MESSAGES/ cd /usr/local/centreon/www/locale/zh_CN/LC_MESSAGES/ wget http://cacti-nagios.googlecode.com/files/messages.mo
然后再页面里面更改 如下图:
如果还有其他错误 请检查nagios配置一些路径 在网页端对照一下