#This config file defined Shinken specific objects like #satellites or Realms # #This file is for defined a pure load balanced environnement #That mean that if a satellite die, it will not 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-1 address node1 port 7768 spare 0 ;is not a spare realm All weight 1 ;optionnal : 1 } #The second scheduler define scheduler{ scheduler_name scheduler-2 address node2 port 7768 spare 0 realm All weight 1 ;optionnal : 1 } #There is only one reactionner, because it does not need #load balancing load define reactionner{ reactionner_name reactionner 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 } #Pollers are here to launch checks define poller{ poller_name poller-All address node1 port 7771 realm All 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-2 address node2 port 7771 realm All 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 optionnal #Like reactionner and broker, it does not need load balanced define arbiter{ arbiter_name Arbiter 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 broker manage data export (in flat file or in database) #Here just log files and status.dat file define broker{ broker_name broker address node1 port 7772 spare 0 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 }