diff options
author | euer <root@euer.krebsco.de> | 2012-12-23 00:21:25 +0100 |
---|---|---|
committer | euer <root@euer.krebsco.de> | 2012-12-23 00:21:25 +0100 |
commit | 9456cfffea015812acf5dcdd2d074e98ca54e720 (patch) | |
tree | e57111b7d1499bb6f1ef49937f5f62de158ae5db /god/Monitoring/nagios/shinken/shinken-specific-high-availability.cfg | |
parent | 3649aff46c8bace238c3cf22abcfbfe8be9dce8a (diff) |
//Monitoring -> //god/Monitoring
Diffstat (limited to 'god/Monitoring/nagios/shinken/shinken-specific-high-availability.cfg')
-rw-r--r-- | god/Monitoring/nagios/shinken/shinken-specific-high-availability.cfg | 275 |
1 files changed, 275 insertions, 0 deletions
diff --git a/god/Monitoring/nagios/shinken/shinken-specific-high-availability.cfg b/god/Monitoring/nagios/shinken/shinken-specific-high-availability.cfg new file mode 100644 index 00000000..f8c6001d --- /dev/null +++ b/god/Monitoring/nagios/shinken/shinken-specific-high-availability.cfg @@ -0,0 +1,275 @@ +#This config file defines Shinken specific objects like +#satellites or Realms +# +#This file is for defining a pure high availability environnement +#That means that if a satellite die, it will be replaced +#There is only one Realm with every components into it +#All you need to to is to replace "node1" and "node2" by the DNS +#names of your Shinken servers + + +#The scheduler is a "Host manager". It gets the hosts and theirs +#services and it schedules the checks for the pollers. +define scheduler{ + scheduler_name scheduler-master + address node1 + port 7768 + spare 0 ;is not a spare + realm All + weight 1 ;optionnal : 1 + } + + +#The second scheduler, the slave one +define scheduler{ + scheduler_name scheduler-slave + address node2 + port 7768 + spare 1 ;is a spare + realm All + weight 1 ;optionnal : 1 + } + + +#Reactionner launches notifications +define reactionner{ + reactionner_name reactionner-master + address node1 + port 7769 + spare 0 + realm All + manage_sub_realms 0 ;optionnal : 1 + min_workers 1 ;optionnal : 1 + max_workers 15 ;optionnal : 30 + polling_interval 1 ;optionnal : 1 + } + + +#Reactionner launches notifications +#The slave one +define reactionner{ + reactionner_name reactionner-slave + address node2 + port 7769 + spare 1 + realm All + manage_sub_realms 0 ;optionnal : 1 + min_workers 1 ;optionnal : 1 + max_workers 15 ;optionnal : 30 + polling_interval 1 ;optionnal : 1 + } + + +#Pollers are here to launch checks +define poller{ + poller_name poller-master + address node1 + port 7771 + realm All + spare 0 + manage_sub_realms 0 ;optionnal : 0 + min_workers 4 ;optionnal : 1 + max_workers 4 ;optionnal : 30 + processes_by_worker 256 ;optionnal : 256 + polling_interval 1 ;optionnal : 1 +} + + +#Pollers are here to launch checks +define poller{ + poller_name poller-slave + address node2 + port 7771 + realm All + spare 1 + manage_sub_realms 0 ;optionnal : 0 + min_workers 4 ;optionnal : 1 + max_workers 4 ;optionnal : 30 + processes_by_worker 256 ;optionnal : 256 + polling_interval 1 ;optionnal : 1 +} + + +#The arbiter definition IS important : without 2 defined arbiter, +#there is no high availability +define arbiter{ + arbiter_name Arbiter-master + host_name node1 ;result of the get_hostname.py command (or hostname under Unix) + address node1 + port 7770 + spare 0 + #modules No module for now + } + +#the slave, waiting patiently for its master to die +define arbiter{ + arbiter_name Arbiter-slave + host_name node2 ;result of the get_hostname.py command (or hostname under Unix) + address node2 + port 7770 + spare 1 + #modules No module for now + } + + + +#The broker manages data export (in flat file or in database) +#Here just log files and status.dat file +define broker{ + broker_name broker-master + address node1 + port 7772 + spare 0 + realm All + manage_sub_realms 1 + manage_arbiters 1 + modules Status-Dat, Simple-log + } + + + +#The broker manages data export (in flat file or in database) +#Here just log files and status.dat file +define broker{ + broker_name broker-slave + address node2 + port 7772 + spare 1 + realm All + manage_sub_realms 1 + manage_arbiters 1 + modules Status-Dat, Simple-log + } + + +##Now the modules for broker + +#Here the NDO/MySQL module +#So you can use with NagVis or Centreon +define module{ + module_name ToNdodb_Mysql + module_type ndodb_mysql + database ndo ; database name + user root ; user of the database + password root ; must be changed + host localhost ; host to connect + character_set utf8 ;optionnal, UTF8 is the default +} + +#Here a NDO/Oracle module. For Icinga web connection +#Or for database admin that do not like MySQL +define module{ + module_name ToNdodb_Oracle + module_type ndodb_oracle + database XE ;database name (listener in fact) + user system + password password ;Yes I know I have to change my default password... + oracle_home /usr/lib/oracle/xe/app/oracle/product/10.2.0/server ;optional +} + + +#Here for Merlin/MySQL. for Ninja connection +define module{ + module_name ToMerlindb_Mysql + module_type merlindb + backend mysql ;backend to use, here mysql databse + database merlin ;database name + user root + password root + host localhost + character_set utf8 ;optionnal, UTF8 is the default +} + + +#Here the Merlin/Sqlite. No one uses it for now :) +define module{ + module_name ToMerlindb_Sqlite + module_type merlindb + backend sqlite ;like the mysql, but sqlite :) + database_path /tmp/mabase.sqlite ;path of the sqlite file +} + + +#Here the couchdb export. Maybe use one day... +define module{ + module_name ToCouchdb + module_type couchdb + user root + password root + host localhost +} + + +#Export services perfdata to file +define module{ + module_name Service-Perfdata + module_type service_perfdata + path service-perfdata +} + + +#For hosts this time +define module{ + module_name Host-Perfdata + module_type host_perfdata + path host-perfdata +} + + +#The log managment +define module{ + module_name Simple-log + module_type simple_log + path /var/log/shinken/nagios.log +} + + +#Status.dat and objects.cache export. For the old Nagios +#interface +define module{ + module_name Status-Dat + module_type status_dat + status_file status.dat + object_cache_file objects.cache + status_update_interval 15 +} + + +#A global Realm +define realm{ + realm_name All + default 1 +} + + + + +##Now addon about standard configuration : +#resultmodulation : change "on te fly" a check result, without negate or something like it +#escalation : like service_escalation, but a generic that host/service can call + +#A result modulation is use to module a check result, like CRITICAL->WARNING here +define resultmodulation{ + resultmodulation_name critical_is_warning ;required + exit_codes_match 2 ;optionnal, list of code to change + output_match // ;optionnal, regexp for activation of exit_code if output match + exit_code_modulation 1 ;code that will be put if the code match + output_modulation s/// ;optionnal regexp to change output + longoutput_modulation s/// ;optionnal regexp to change long_output + modulation_period 24×7 ;period when to apply the modulation +} + + +#Escalation is a generic version of service_escalation and host_escalation +#It can be called by services/hosts so it will be far more easier to be +#configured +define escalation{ + escalation_name ToLevel2 ;required + first_notification 2 + last_notification 5 + notification_interval 1 + escalation_period 24x7 ;optionnal, if none, always true + escalation_options d,u,r,w,c ,optionnal, if none, all states (d,u,r,w,c) + contacts dbrosseau +# contact_groups admins +} |