原文鏈接:
本文引用了一位同事的文檔及網絡文章,在此感謝~ 實驗的部分自己完成
一、centreon批量添加主機
本部分參考了同事的文檔和鏈接:http://blog.chinaunix.net/uid-17196076-id-2817703.html
centreon的模板功能是做的非常強大的,而且優化過的nagios配置十分簡單,加host的時候只需要輸入了hostname,alias和ip 地址就可以加一臺host上去,service配在hostgroup上,這樣只要把host添加到hostgroup上就可以了。
#!/usr/bin/perl
## ====================================================
#
# File name: insert_host.pl
# Use: insert host into centreon database
# Creater: lianming
# Date: 2009-04-24
# Last_change: 2009-04-24
#
## ====================================================
use strict;
use warnings;
use DBI;
use DBD::mysql;
# ----------------------------------------------------
my $DB_HOST = "db_ipaddress";
my $DB_USER = "db_user";
my $DB_PASSWD = "db_password";
my $DB_NAME = "centreon";
my $dbh = DBI->connect("DBI:mysql:database=$DB_NAME;host=$DB_HOST",
# ----------------------------------------------------
my $file_path = "./hosts";
my $tpl_name = "generic-host";
my $nagios_name = "nagios_name";
foreach my $arg (@ARGV) {
# -----------------------------------------------------
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>)) {
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'";
close(HOST);
$dbh->disconnect();
exit 0;
# --------------------------------------------------------------------------------
sub print_help {
演示:
上面的腳本名我換成了add_host.pl,並創建hosts文件:
添加主機前:
執行腳本:
刷新WEB頁面:
二、批量生成和主機相關聯的服務
注:此部分引用了同事的文檔和腳本~
上面的腳本能夠批量添加主機,但是不能自動生成和主機相關聯的服務,如果對每一臺主機增加一個服務,要一個一個在頁面點擊,非常麻煩。
使用 Centreon CLAPI
http://forge.centreon.com/projects/centreon-clapi/wiki
安裝clapi:
[root@centreon ~]# cd /usr/local/src/
[root@centreon src]# tar zxf centreon-clapi-1.1.tar.gz
[root@centreon src]# cd centreon-clapi-1.1
[root@centreon centreon-clapi-1.1]# ./install.sh -i
提示輸入instCentWeb.conf配置文件的路徑:/usr/local/centreon/etc/
[root@centreon centreon-clapi-1.1]# cd /usr/local/centreon/www/modules/centreon-clapi/core/
[root@centreon core]# vi +64 centreon
require_once "$centreon_etc/centreon.conf.php";
改爲:
require_once "/usr/local/centreon/etc/centreon.conf.php";
查看所有主機:
[root@centreon core]# ./centreon -uadmin -p111111 -o HOST -a show
查看主機名包含client-1的主機,如果是輸入client,則會顯示client,client-1,client-2
[root@centreon core]# ./centreon -uadmin -p111111 -o HOST -a show -v "client-1"
對client主機應用所關聯的模板服務:
[root@centreon core]# ./centreon -uadmin -p111111 -o HOST -a applytpl -v "client-1"
執行命令前的服務:
執行後client-1服務都已添加:
通過以上命令可以關聯模板的服務,如果需要批量添加,只需寫個簡單的腳本就能實現,見下圖,執行前可刪除剛纔手動執行的命令添加的client服務:
WEB刷新服務:
批量添加完主機和服務要需要重新生成nagios配置後生效。