summaryrefslogtreecommitdiffstats
path: root/Monitoring/shinken/shinken-specific-high-availability.cfg
diff options
context:
space:
mode:
authorroot <root@kremium>2011-11-18 10:10:13 +0100
committerroot <root@kremium>2011-11-18 10:10:13 +0100
commitbfa204a580a503a216cedbedd36586fb00458181 (patch)
tree4d277410a2ed9d497669d597b05826fc4e6a3814 /Monitoring/shinken/shinken-specific-high-availability.cfg
parentcda7ac879c8791d7b59f9b726136efa274a12e4b (diff)
//Monitoring: add shinken configs
Diffstat (limited to 'Monitoring/shinken/shinken-specific-high-availability.cfg')
-rw-r--r--Monitoring/shinken/shinken-specific-high-availability.cfg275
1 files changed, 275 insertions, 0 deletions
diff --git a/Monitoring/shinken/shinken-specific-high-availability.cfg b/Monitoring/shinken/shinken-specific-high-availability.cfg
new file mode 100644
index 00000000..f8c6001d
--- /dev/null
+++ b/Monitoring/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
+}