| Scroll Ignore | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
...
|
Rôle
Le démon Broker exporte et gère les données du Scheduler ( les objets Broks ).
- Sa gestion ne peut se faire qu'à travers des modules.
- Plusieurs modules de gestion peuvent être activés en même temps.
Exemples de modules du Broker :
- Module pour exporter les données de métrologie: Graphite-Perfdata
- Module pour l'API Livedata
- Module pour l'affichage de l'interface de visualisation : WebUI
Données : les Broks
Le Broker reçoit toutes les données des Schedulers. Ce sont les objets Broks.
| Info | ||
|---|---|---|
| ||
Les Broks sont des |
...
conteneurs de données échangées entre les Schedulers et les Brokers. Il y a plusieurs |
...
types de Broks :
|
Le rôle du démon Broker est de donner ces données ( Broks ) à tous ses modules.
| Panel |
|---|
Données de métrologie
Les données de métrologie sont sauvegardées sur le serveur du Broker dans l'application graphite.
Cette application écoute le port 2003, et cette connexion se fait sans authentification.
Cette application doit donc écouter exclusivement sur l'interface réseau locale ( loopback ) du serveur du Broker.
Logique interne du
...
Broker
| Panel |
|---|
Résumé des connexions du Broker
| Source | Destination | Port | Protocole | Note |
|---|---|---|---|---|
| Broker | Scheduler | 7768 | HTTP/HTTPS |
Description des variables
| Scroll Title | ||||
|---|---|---|---|---|
| ||||
|
...
|
...
|
...
|
...
enabled...
Définit si le Broker est activé ou non.
Valeurs possibles:
- 1 ( Activé )
- 0 ( Désactivé )
Définition - exemple
Dans le répertoire /etc/shinken/brokers/, voici un exemple de définition qui permet la définition du Broker ( à placer dans un fichier CFG ) :
Il est conseillé d'éditer les fichiers .cfg avec l'encodage utf-8
...
| language | js |
|---|---|
| theme | Confluence |
...
|
Définition - exemple
Dans le répertoire /etc/shinken/brokers/, voici un exemple de définition qui permet la définition du Broker ( à placer dans un fichier CFG ) :
Il est conseillé d'éditer les fichiers .cfg avec l'encodage utf-8
| Code Block | ||||
|---|---|---|---|---|
| ||||
#=================== |
...
============================================================ # BROKER #=================== |
...
======== |
...
==================================================== # Description: The broker is responsible for: # |
...
- |
...
Exporting |
...
centralized |
...
logs |
...
of all Shinken |
...
daemon processes # - Exporting status data # - Exporting performance data # - Exposing Shinken APIs: # - Status data # - Performance data # - Command interface #=============================================================================== define broker { # Shinken Enterprise. Lines added by import core. Do not remove it, it's used by Shinken Enterprise to update your objects if you re-import them. _SE_UUID core-broker-060340145ade11e5b703080027f08538 _SE_UUID_HASH |
...
8e00136f9e61061e07ca0f4a63509b68 # End of Shinken Enterprise part #======== |
...
Daemon |
...
name |
...
and |
...
address ========= # |
...
Daemon |
...
name. |
...
Must |
...
be |
...
unique |
...
|
...
|
...
|
...
broker_name |
...
|
...
|
...
broker-master # IP/fqdn of this daemon (note: you MUST |
...
change it by the |
...
real ip/fqdn of this server) address |
...
|
...
|
...
|
...
|
...
localhost # Port (HTTP/HTTPS) exposed by this daemon |
...
port |
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
7772 |
...
|
...
|
...
|
...
# |
...
0 |
...
= use HTTP, 1 |
...
= use HTTPS |
...
|
...
use_ssl |
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
0 #======== Master or |
...
spare |
...
|
...
selection ========= # 1 = is a spare, 0 = |
...
is not a spare |
...
|
...
spare |
...
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
0 # |
...
spare_daemon: name of the daemon that will take this daemon job if it dies # IMPORTANT: # |
...
|
...
|
...
* |
...
a |
...
spare_daemon |
...
can |
...
only |
...
be |
...
the spare of 1 (and only one) master daemon # * a spare_daemon cannot have a spare_daemon |
...
# |
...
* the spare must have modules with the same module_type as the master # |
...
|
...
|
...
|
...
|
...
- |
...
depending |
...
of the value |
...
of the broker__manage_spare__spare_must_have_the_same_list_of_module_type parameter # Example: spare_daemon |
...
|
...
|
...
|
...
|
...
broker-spare |
...
|
...
|
...
|
...
spare_daemon |
...
|
...
|
...
|
...
# 1 = |
...
(default) the spare defined with spare_daemon must have the same module_type as this master |
...
# 0 = the spare module_type are not |
...
checked # |
...
broker__manage_spare__spare_must_have_the_same_list_of_module_type 1 #======== |
...
Daemon connection timeout |
...
and |
...
down state limit |
...
========= # timeout: how many seconds to consider a node don't answer timeout |
...
|
...
|
...
|
...
|
...
3 # data_timeout: how many second to consider a configuration transfer |
...
to |
...
be failed # |
...
because |
...
the network bandwidth is too small. data_timeout 120 # max_check_attempts: |
...
how |
...
many |
...
fail |
...
check to consider this daemon as DEAD max_check_attempts 3 # Check this daemon every X seconds |
...
|
...
|
...
|
...
check_interval |
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
60 # |
...
======== Modules to enable for this daemon ========= # Available: # - |
...
WebUI |
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
: |
...
Visualisation interface # - |
...
Graphite- |
...
Perfdata : Save all metrics into a graphite |
...
database |
...
|
...
|
...
|
...
# |
...
- |
...
sla |
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
: |
...
Save sla into a database |
...
# - Livestatus |
...
|
...
|
...
|
...
: TCP API to query element state, used by nagios external tools like NagVis or Thruk # - broker-module-livedata : REST API to query all monitored element data (host, cluster or |
...
check) |
...
# |
...
- event-manager-writer : Save events for events manager (do not forget to activate the module in your webui to see data) # - Simple-log : Save all logs into a common file, Use this module only if you need to have all the check results in one file. # - broker--module-report-builder : External module used by webui--module-report-handler to generate reports modules WebUI, Graphite-Perfdata, sla, event-manager-writer #======== Realm and |
...
architecture |
...
settings ========= # |
...
Realm |
...
to |
...
set |
...
this |
...
daemon |
...
into |
...
|
...
|
...
|
...
realm |
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
All # |
...
1 |
...
= |
...
take |
...
data |
...
from |
...
the |
...
daemon |
...
realm |
...
and |
...
its |
...
sub |
...
realms # |
...
0 = take data only from the daemon realm manage_sub_realms 1 # |
...
In |
...
NATted environments, |
...
you |
...
declare |
...
each |
...
satellite ip[:port] as seen by |
...
# *this* daemon (if port not set, the port declared by satellite itself # is used) #satellitemap scheduler-1=1.2.3.4:7768, scheduler-2=1.2.3.5:7771 # Exchange between brokers <- schedulers can be limited by packet size (in kB) # |
...
Note: |
...
as compression is automatic, this is a higher limit, and in real case the # |
...
|
...
|
...
|
...
|
...
|
...
|
...
packets |
...
will |
...
be |
...
lower |
...
than |
...
this value # |
...
broks_packet_size 1024 #======== Memory protection ========= # Are the daemon module process and worker process are waiting for enough # memory to be available before being launch. Default: 1 (enabled) broker__manage_brok__enable_sub_processes_memory_usage_protection 1 # |
...
The |
...
sub |
...
process |
...
memory |
...
usage |
...
protection |
...
can |
...
have a |
...
system |
...
reserved memory # |
...
that |
...
won't |
...
be |
...
used |
...
by |
...
theses |
...
sub process |
...
when |
...
launched |
...
# |
...
By |
...
default: |
...
0 |
...
(no |
...
reserved |
...
memory) |
...
|
...
|
...
|
...
# |
...
Example: |
...
10 |
...
|
...
(means |
...
10% of the total memory is reserved for the |
...
system) |
...
|
...
|
...
broker__manage_brok__sub_process_memory_usage_system_reserved_memory 0 # If a sub process cannot be started because of the protection, how many seconds # it will be retry and wait that the system memory is freed until it fail to start # By default: 5 (seconds) broker__manage_brok__sub_processes_memory_usage_protection_max_retry_time 5 #======== Brok pusher worker ========= # The broker spawn broks pusher sub process to push to external modules (like WebUI) # the broker will look at this worker execution time, and will kill if it timeout # |
...
The |
...
broker |
...
will |
...
compute |
...
the |
...
average |
...
execution |
...
time |
...
of previous workers to # decide about how many time this worker will take based on: # number of broks to send / past average send speed (broks/s) # If |
...
this |
...
time |
...
is reach, |
...
it means that the pusher process is killed # For small amount of broks to send, it should lead to ridiculously small allowed execution time # |
...
and the fac to spawn the sub process can be higher than this value, so we are using a minimal # execution timeout # Default: 5 (second) broker__manage_brok__sub_process_broks_pusher_ |
...
min_execution_ |
...
timeout 5 # In order to manage the fact that |
...
the server can |
...
slow down during this send, you can setup a # |
...
ratio |
...
that |
...
will |
...
be |
...
used |
...
to |
...
increase |
...
the allowed timeout by |
...
multiply it # Default: 5 broker__manage_brok__sub_process_broks_pusher_security_ratio |
...
5
# At the broker start without stats, this valid will be used for the timeout
# Default: 240 (seconds)
broker__manage_brok__sub_process_broks_pusher_max_execution_timeout 240
# If a sub process reach a timeout, it will be killed and relaunched. After max retry,
# the attached module will be restarted
# Default: 3
broker__manage_brok__sub_process_broks_pusher_max_retry 3
# broker__manage_brok__sub_process_broks_pusher_queue_batch_size:
# * defines the maximum number of broks the "queue brok pusher"
# process will handle per send to external module ( like WebUI ) .
# * Remaining broks will be handled in next send.
# * IMPORTANT: increase this value can lead to error on the socket
# Default: 100000 (broks/batch)
# broker__manage_brok__sub_process_broks_pusher_queue_batch_size 100000
# Broks whose serialization time exceeds this threshold will generate a warning
# Default: 100 (milliseconds)
# broker__manage_brok__oversized_data_warning_threshold__serialization_time 100
# Broks whose serialization time exceeds this threshold will generate an error
# Default: 500 (milliseconds)
# broker__manage_brok__oversized_data_error_threshold__serialization_time 500
#======== VMWare / ESXi ==========
# 1 (default) = if vmware get the ESXi CPU stats value, 0 = do not get value
vmware__statistics_compute_enable 1
#======== Enable or not this daemon =========
# 1 = is enabled, 0 = is disabled
enabled 1
}
|
| Excerpt | |||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||||||||||||
|

