#===============================================================================
# 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
#===========
# BROKER
#====================================================================
define broker {
#======== 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 ===============
# 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
0
#======== Master or spare selection =========
# 1 = is a spare, 0 = is not a spare# max_check_attempts: how many fail check to consider this daemon as DEAD
max_check_attempts 3
spare# Check this daemon every X seconds
check_interval 0 60
# spare_daemon: name of the daemon that will take this daemon job if it dies======== Modules to enable for this daemon =========
# IMPORTANTAvailable:
# - WebUI * a spare_daemon can only be the spare of 1 (and only one) master daemon
# * a spare_daemon cannot have: aVisualisation spare_daemoninterface
# - * the spare must have modules with the same module_type as the masterGraphite-Perfdata : Save all metrics into a graphite database
# - sla - depending of the value of the broker__manage_spare__spare_must_have_the_same_list_of_module_type parameter
# Example: spare_daemon : Save sla into a broker-spare
spare_daemon
database
# - Livestatus # 1 = (default) the spare defined with spare_daemon must have the same module_type as this master
: TCP API to #query 0element =state, theused spareby module_typenagios areexternal nottools checked
like NagVis or Thruk
# broker__manage_spare__spare_must_have_the_same_list_of_module_type # - 1
broker-module-livedata #======== Daemon connection: timeoutREST andAPI downto statequery limit =========
# timeout: how many seconds to consider a node don't answer
all monitored element data (host, cluster or check)
# - event-manager-writer timeout : Save events for events manager (do not forget to activate the module in 3
your webui to see # data_timeout: how many second to consider a configuration transfer to be failed
data)
# - Simple-log # because the network bandwidth is too small.
data_timeout: Save all logs into a common file, Use this module only if you 120
need to have all #the max_check_attempts: how many fail check to consider this daemon as DEAD
max_check_attempts 3
# Check this daemon every X seconds
check_intervalcheck 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
60
#======== ModulesRealm toand enablearchitecture for thissettings daemon =========
# Available:
# - WebUI ==
# Realm to set this : Visualisation interfacedaemon into
#realm - Graphite-Perfdata : Save all metrics intoAll
a graphite database
# 1 = #take -data slafrom the daemon realm and its sub realms
# 0 = take data only from the daemon realm
manage_sub_realms : Save sla into a database1
# - Livestatus In NATted environments, you declare each satellite ip[:port] as seen by
# *this* daemon (if port not set, the port declared : TCP API to query element state, used by nagios external tools like NagVis or Thrukby satellite itself
# is used)
#satellitemap scheduler-1=1.2.3.4:7768, scheduler-2=1.2.3.5:7771
# Exchange -between brokers broker<-module-livedata schedulers can be limited by packet size (in :kB)
REST API to query# allNote: monitoredas elementcompression datais (hostautomatic, clusterthis or check)
# - event-manager-writer is a higher limit, and in real case the
# : Save events for events manager (dopackets notwill forgetbe tolower activatethan thethis modulevalue
in your webui to see data)# broks_packet_size 1024
# - Simple-log======== Memory protection =========
# Are the daemon module process and worker process are waiting for enough
# memory :to Savebe allavailable logsbefore intobeing alaunch. commonDefault: 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 11 (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
# In NATted environments, you declare each satellite ip[:port] as seen by
# *this* Broker (if port not set, the port declared by satellite itself======== Brok pusher worker =========
# The broker spawn broks pusher sub process to push to external modules (like WebUI)
# is used)
#satellitemap scheduler-1=1.2.3.4:7768, poller-1=1.2.3.5:7771
the broker will look at this worker execution time, and will kill if it timeout
# ExchangeThe betweenbroker Brokerswill <-compute Schedulersthe canaverage beexecution limitedtime byof packetprevious size (in kB)workers to
# Note:decide asabout compressionhow ismany automatic,time this isworker awill higher limit, and in real case thetake based on:
# number of broks to send / packets will be lower than this value
# broks_packet_size 1024
#======== Memory protection =========past average send speed (broks/s)
# If this time is reach, it means that the pusher process is killed
# AreFor thesmall daemonamount moduleof processbroks andto workersend, processit areshould waitinglead forto enough
ridiculously small allowed execution #time
memory to be available# beforeand beingthe launch.fac Default:to 1 (enabled)
broker__manage_brok__enable_sub_processes_memory_usage_protection 1
# The sub process memory usage protection can have a system reserved memoryspawn the sub process can be higher than this value, so we are using a minimal
# execution timeout
# that won't be used by theses sub process when launched
Default: 5 (second)
broker__manage_brok__sub_process_broks_pusher_min_execution_timeout # By default: 0 (no reserved memory)5
# Example: 10 (means 10% ofIn order to manage the fact that the totalserver can memoryslow isdown reservedduring forthis the system)
broker__manage_brok__sub_process_memory_usage_system_reserved_memorysend, you can setup a
# 0
ratio that will be #used Ifto aincrease subthe processallowed cannottimeout beby startedmultiply becauseit
of the protection, how# manyDefault: seconds5
# it will be retry and wait that the system memory is freed until it fail to startbroker__manage_brok__sub_process_broks_pusher_security_ratio 5
# ByAt default:the 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)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
# the Broker will look at this worker execution time, and will kill if it timeoutIf a sub process reach a timeout, it will be killed and relaunched. After max retry,
# Thethe attached Brokermodule will computebe therestarted
average execution time of# previous workers toDefault: 3
# decide about how many time this worker will take based on:
broker__manage_brok__sub_process_broks_pusher_max_retry # number of broks to send3
/ past average send speed (broks/s)# broker__manage_brok__sub_process_broks_pusher_queue_batch_size:
# If this* timedefines isthe reach,maximum itnumber meansof thatbroks the pusher"queue process is killed
brok pusher"
# For small amount ofprocess brokswill tohandle send,per itsend shouldto leadexternal tomodule ridiculously( smalllike allowedWebUI execution) time.
# * andRemaining thebroks facwill tobe spawnhandled thein subnext processsend.
can be higher than# this value, so* weIMPORTANT: areincrease usingthis avalue minimal
can lead to error #on executionthe timeoutsocket
# Default: 5100000 (secondbroks/batch)
# broker__manage_brok__sub_process_broks_pusher_minqueue_executionbatch_timeoutsize 5100000
# InBroks orderwhose toserialization 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 ittime exceeds this threshold will generate a warning
# Default: 5100 (milliseconds)
# broker__manage_brok__suboversized_data_processwarning_broksthreshold_pusher_securityserialization_ratiotime 5100
# AtBroks thewhose Brokerserialization starttime withoutexceeds stats, this validthreshold will begenerate used for the timeoutan error
# Default: 240500 (secondsmilliseconds)
# broker__manage_brok__suboversized_processdata_brokserror_pusherthreshold_max_executionserialization_timeouttime 240
# If a sub process reach a timeout, it will be killed and relaunched. After max retry,500
# the attached module will be restarted======== VMWare / ESXi ==========
# Default: 3
broker__manage_brok__sub_process_broks_pusher_max_retry 1 (default) = if vmware get the ESXi CPU stats value, 0 = do not get value
vmware__statistics_compute_enable 31
#======== Enable or not this daemon =========
# 1 = is enabled, 0 = is disabled
enabled 1
}
|