Merge branch 'master' of ssh://lausser,shinken@shinken.git.sourceforge.net/gitroot...
[shinken.git] / etc / shinken-specific-high-availability.cfg
blob59b8fcca04dd046d2e401d93a4468fcf360ead5a
1 #This config file defines Shinken specific objects like
2 #satellites or Realms
4 #This file is for defining a pure high availability environnement
5 #That means that if a satellite die, it will be replaced
6 #There is only one Realm with every components into it
7 #All you need to to is to replace "node1" and "node2" by the DNS
8 #names of your Shinken servers
11 #The scheduler is a "Host manager". It gets the hosts and theirs
12 #services and it schedules the checks for the pollers.
13 define scheduler{
14        scheduler_name   scheduler-master
15        address  node1
16        port     7768
17        spare    0       ;is not a spare
18        realm    All
19        weight           1       ;optionnal : 1
20        }
23 #The second scheduler, the slave one
24 define scheduler{
25        scheduler_name   scheduler-slave
26        address  node2
27        port     7768
28        spare    1       ;is a spare
29        realm    All
30        weight           1       ;optionnal : 1
31        }
34 #Reactionner launches notifications
35 define reactionner{
36        reactionner_name reactionner-master
37        address  node1
38        port     7769
39        spare    0
40        realm    All
41        manage_sub_realms 0      ;optionnal : 1
42        min_workers       1      ;optionnal : 1
43        max_workers       15     ;optionnal : 30
44        polling_interval         1       ;optionnal : 1
45        }
48 #Reactionner launches notifications
49 #The slave one
50 define reactionner{
51        reactionner_name reactionner-slave
52        address  node2
53        port     7769
54        spare    1
55        realm    All
56        manage_sub_realms 0      ;optionnal : 1
57        min_workers       1      ;optionnal : 1
58        max_workers       15     ;optionnal : 30
59        polling_interval         1       ;optionnal : 1
60        }
63 #Pollers are here to launch checks
64 define poller{
65        poller_name     poller-master
66        address  node1
67        port     7771
68        realm    All
69        spare    0
70        manage_sub_realms 0      ;optionnal : 0
71        min_workers       4      ;optionnal : 1
72        max_workers       4      ;optionnal : 30
73        processes_by_worker      256        ;optionnal : 256
74        polling_interval         1       ;optionnal : 1
78 #Pollers are here to launch checks
79 define poller{
80        poller_name     poller-slave
81        address  node2
82        port     7771
83        realm    All
84        spare    1
85        manage_sub_realms 0      ;optionnal : 0
86        min_workers       4      ;optionnal : 1
87        max_workers       4      ;optionnal : 30
88        processes_by_worker      256        ;optionnal : 256
89        polling_interval         1       ;optionnal : 1
93 #The arbiter definition IS important : without 2 defined arbiter,
94 #there is no high availability
95 define arbiter{
96        arbiter_name     Arbiter-master
97        host_name        node1       ;result of the get_hostname.py command (or hostname under Unix)
98        address  node1
99        port     7770
100        spare    0
101        #modules          No module for now
102        }
104 #the slave, waiting patiently for its master to die
105 define arbiter{
106        arbiter_name     Arbiter-slave
107        host_name        node2       ;result of the get_hostname.py command (or hostname under Unix)
108        address  node2
109        port     7770
110        spare    1
111        #modules          No module for now
112        }
116 #The broker manages data export (in flat file or in database)
117 #Here just log files and status.dat file
118 define broker{
119        broker_name      broker-master
120        address  node1
121        port     7772
122        spare    0
123        realm    All
124        manage_sub_realms 1
125        manage_arbiters   1
126        modules           Status-Dat, Simple-log
127        }
131 #The broker manages data export (in flat file or in database)
132 #Here just log files and status.dat file
133 define broker{
134        broker_name      broker-slave
135        address  node2
136        port     7772
137        spare    1
138        realm    All
139        manage_sub_realms 1
140        manage_arbiters   1
141        modules           Status-Dat, Simple-log
142        }
145 ##Now the modules for broker
147 #Here the NDO/MySQL module
148 #So you can use with NagVis or Centreon
149 define module{
150        module_name      ToNdodb_Mysql
151        module_type      ndodb_mysql
152        database         ndo      ; database name
153        user             root     ; user of the database
154        password         root     ; must be changed
155        host             localhost ; host to connect
156        character_set    utf8     ;optionnal, UTF8 is the default
159 #Here a NDO/Oracle module. For Icinga web connexion
160 #Or for database admin that do not like MySQL
161 define module{
162        module_name      ToNdodb_Oracle
163        module_type      ndodb_oracle
164        database         XE              ;database name (listener in fact)
165        user             system
166        password         password        ;Yes I know I have to change my default password...
167        oracle_home      /usr/lib/oracle/xe/app/oracle/product/10.2.0/server     ;optional
171 #Here for Merlin/MySQL. for Ninja connexion
172 define module{
173        module_name      ToMerlindb_Mysql
174        module_type      merlindb
175        backend          mysql    ;backend to use, here mysql databse
176        database         merlin   ;database name
177        user             root
178        password         root
179        host             localhost
180        character_set    utf8     ;optionnal, UTF8 is the default
184 #Here the Merlin/Sqlite. No one uses it for now :)
185 define module{
186        module_name      ToMerlindb_Sqlite
187        module_type      merlindb
188        backend          sqlite    ;like the mysql, but sqlite :)
189        database_path    /tmp/mabase.sqlite  ;path of the sqlite file
193 #Here the couchdb export. Maybe use one day...
194 define module{
195        module_name      ToCouchdb
196        module_type      couchdb
197        user             root
198        password         root
199        host             localhost
203 #Export services perfdata to file
204 define module{
205        module_name      Service-Perfdata
206        module_type      service_perfdata
207        path             /usr/local/shinken/var/service-perfdata
211 #For hosts this time
212 define module{
213        module_name      Host-Perfdata
214        module_type      host_perfdata
215        path             /usr/local/shinken/var/host-perfdata
219 #The log managment
220 define module{
221        module_name      Simple-log
222        module_type      simple_log
223        path             /usr/local/shinken/var/nagios.log
227 #Status.dat and objects.cache export. For the old Nagios
228 #interface
229 define module{
230        module_name      Status-Dat
231        module_type      status_dat
232        status_file      /usr/local/shinken/var/status.dat
233        object_cache_file        /usr/local/shinken/var/objects.cache
234        status_update_interval   15
238 #A global Realm
239 define realm{
240        realm_name  All
241        default          1
247 ##Now addon about standard configuration :
248 #resultmodulation : change "on te fly" a check result, without negate or something like it
249 #escalation : like service_escalation, but a generic that host/service can call
251 #A result modulation is use to module a check result, like CRITICAL->WARNING here
252 define resultmodulation{
253        resultmodulation_name     critical_is_warning           ;required
254        exit_codes_match          2                ;optionnal, list of code to change
255        output_match              //               ;optionnal, regexp for activation of exit_code if output match
256        exit_code_modulation      1                ;code that will be put if the code match
257        output_modulation         s///        ;optionnal regexp to change output
258        longoutput_modulation     s///      ;optionnal regexp to change long_output
259        modulation_period         24×7    ;period when to apply the modulation
263 #Escalation is a generic version of service_escalation and host_escalation
264 #It can be called by services/hosts so it will be far more easier to be
265 #configured
266 define escalation{
267        escalation_name          ToLevel2           ;required
268        first_notification       2
269        last_notification        5
270        notification_interval    1
271        escalation_period        24x7          ;optionnal, if none, always true
272        escalation_options       d,u,r,w,c     ,optionnal, if none, all states (d,u,r,w,c)
273        contacts                 dbrosseau
274 #       contact_groups          admins