diff --git a/zabbix/files/default/etc/zabbix/zabbix_server.conf.jinja b/zabbix/files/default/etc/zabbix/zabbix_server.conf.jinja index 66b6829..64870a9 100644 --- a/zabbix/files/default/etc/zabbix/zabbix_server.conf.jinja +++ b/zabbix/files/default/etc/zabbix/zabbix_server.conf.jinja @@ -3,7 +3,7 @@ {% set defaults = zabbix.get('server', {}) -%} # Managed by saltstack. Do not edit this file. # This is a configuration file for Zabbix server daemon -# To get more information about Zabbix, visit http://www.zabbix.com +# To get more information about Zabbix, visit https://www.zabbix.com ############ GENERAL PARAMETERS ################# @@ -14,7 +14,7 @@ # Range: 1024-32767 # Default: # ListenPort=10051 -{% if settings.get('listenport', defaults.get('listenport', False)) -%} +{% if settings.get('listenport', defaults.get('listenport', False)) %} ListenPort={{ settings.get('listenport', defaults.listenport) }} {% endif %} ### Option: SourceIP @@ -23,7 +23,7 @@ ListenPort={{ settings.get('listenport', defaults.listenport) }} # Mandatory: no # Default: # SourceIP= -{% if settings.get('sourceip', defaults.get('sourceip', False)) -%} +{% if settings.get('sourceip', defaults.get('sourceip', False)) %} SourceIP={{ settings.get('sourceip', defaults.sourceip) }} {% endif %} ### Option: LogType @@ -35,7 +35,7 @@ SourceIP={{ settings.get('sourceip', defaults.sourceip) }} # Mandatory: no # Default: # LogType=file -{% if settings.get('logtype', defaults.get('logtype', 'file')) != 'file' -%} +{% if settings.get('logtype', defaults.get('logtype', 'file')) != 'file' %} LogType={{ settings.get('logtype', defaults.logtype) }} {% endif %} ### Option: LogFile @@ -71,7 +71,7 @@ LogFileSize={{ settings.get('logfilesize', defaults.logfilesize)|int }} # Range: 0-5 # Default: # DebugLevel=3 -{% if settings.get('debuglevel', defaults.get('debuglevel', False)) -%} +{% if settings.get('debuglevel', defaults.get('debuglevel', False)) %} DebugLevel={{ settings.get('debuglevel', defaults.debuglevel) }} {% endif %} ### Option: PidFile @@ -95,20 +95,28 @@ PidFile={{ settings.get('pidfile', defaults.pidfile) }} SocketDir={{ settings.get('socketdir', defaults.socketdir) }} {% endif %} {% endif -%} +{% if zabbix.version_repo|float >= 7.0 -%} + +### NOTE: Support for Oracle DB is deprecated since Zabbix 7.0 and will be removed in future versions. +{% endif %} ### Option: DBHost # Database host name. # If set to localhost, socket is used for MySQL. # If set to empty string, socket is used for PostgreSQL. +# If set to empty string, the Net Service Name connection method is used to connection method is used to connect to Oracle database; also see +# the TNS_ADMIN environment variable to specify the directory where the tnsnames.ora file is located. # # Mandatory: no # Default: # DBHost=localhost -{% if settings.get('dbhost', defaults.get('dbhost', False)) -%} +{% if settings.get('dbhost', defaults.get('dbhost', False)) %} DBHost={{ settings.get('dbhost', defaults.dbhost) }} {% endif %} ### Option: DBName # Database name. -# For SQLite3 path to database file must be provided. DBUser and DBPassword are ignored. +# If the Net Service Name connection method is used to connect to Oracle database, specify the service name from +# the tnsnames.ora file or set to empty string; also see the TWO_TASK environment variable if DBName is set to +# empty string. # # Mandatory: yes # Default: @@ -122,7 +130,7 @@ DBName={{ settings.get('dbname', defaults.dbname) }} # Mandatory: no # Default: # DBSchema= -{% if settings.get('dbschema', defaults.get('dbschema', False)) -%} +{% if settings.get('dbschema', defaults.get('dbschema', False)) %} DBSchema={{ settings.get('dbschema', defaults.dbschema) }} {% endif %} ### Option: DBUser @@ -141,7 +149,7 @@ DBUser={{ settings.get('dbuser', defaults.dbuser) }} # Mandatory: no # Default: # DBPassword= -{% if settings.get('dbpassword', defaults.get('dbpassword', False)) -%} +{% if settings.get('dbpassword', defaults.get('dbpassword', False)) %} DBPassword={{ settings.get('dbpassword', defaults.dbpassword) }} {% endif %} ### Option: DBSocket @@ -150,19 +158,32 @@ DBPassword={{ settings.get('dbpassword', defaults.dbpassword) }} # Mandatory: no # Default: # DBSocket=/tmp/mysql.sock -{% if settings.get('dbsocket', defaults.get('dbsocket', False)) -%} +{% if settings.get('dbsocket', defaults.get('dbsocket', False)) %} DBSocket={{ settings.get('dbsocket', defaults.dbsocket) }} {% endif %} ### Option: DBPort -# Database port when not using local socket. Ignored for SQLite. +# If the Net Service Name connection method is used to connect to Oracle database, the port number from the +# tnsnames.ora file will be used. The port number set here will be ignored. # # Mandatory: no # Range: 1024-65535 # Default (for MySQL): # DBPort=3306 -{% if settings.get('dbport', defaults.get('dbport', False)) -%} +{% if settings.get('dbport', defaults.get('dbport', False)) %} DBPort={{ settings.get('dbport', defaults.dbport) }} {% endif %} +{% if zabbix.version_repo|float >= 6.0 -%} +### Option: AllowUnsupportedDBVersions +# Allow server to work with unsupported database versions. +# 0 - do not allow +# 1 - allow +# +# Mandatory: no +# Default: +{% if settings.get('allowunsupporteddbversions', defaults.get('allowunsupporteddbversions', False)) %} +AllowUnsupportedDBVersions={{ settings.get('allowunsupporteddbversions', defaults.allowunsupporteddbversions) }} +{% endif %} +{% endif -%} {% if zabbix.version_repo|float >= 3.4 -%} ### Option: HistoryStorageURL # History storage HTTP[S] URL. @@ -170,7 +191,7 @@ DBPort={{ settings.get('dbport', defaults.dbport) }} # Mandatory: no # Default: # HistoryStorageURL= -{% if settings.get('historystorageurl', defaults.get('historystorageurl', False)) -%} +{% if settings.get('historystorageurl', defaults.get('historystorageurl', False)) %} HistoryStorageURL={{ settings.get('historystorageurl', defaults.historystorageurl) }} {% endif %} ### Option: HistoryStorageTypes @@ -179,7 +200,7 @@ HistoryStorageURL={{ settings.get('historystorageurl', defaults.historystorageur # Mandatory: no # Default: # HistoryStorageTypes=uint,dbl,str,log,text -{% if settings.get('historystoragetypes', defaults.get('historystoragetypes', False)) -%} +{% if settings.get('historystoragetypes', defaults.get('historystoragetypes', False)) %} HistoryStorageTypes={{ settings.get('historystoragetypes', defaults.historystoragetypes) }} {% endif %} {% endif -%} @@ -192,10 +213,52 @@ HistoryStorageTypes={{ settings.get('historystoragetypes', defaults.historystora # Range: 0-1000 # Default: # StartPollers=5 -{% if settings.get('startpollers', defaults.get('startpollers', False)) -%} +{% if settings.get('startpollers', defaults.get('startpollers', False)) %} StartPollers={{ settings.get('startpollers', defaults.startpollers) }} {% endif %} -### Option: StartIPMIPollers +{% if zabbix.version_repo|float >= 7.0 -%} +### Option: StartAgentPollers +# Number of pre-forked instances of asynchronous Zabbix agent pollers. Also see MaxConcurrentChecksPerPoller. +# +# Mandatory: no +# Range: 0-1000 +# Default: +# StartAgentPollers=1 +{% if settings.get('startagentpollers', defaults.get('startagentpollers', False)) %} +StartAgentPollers={{ settings.get('startagentpollers', defaults.startagentpollers) }} +{% endif %} +### Option: StartHTTPAgentPollers +# Number of pre-forked instances of asynchronous HTTP agent pollers. Also see MaxConcurrentChecksPerPoller. +# +# Mandatory: no +# Range: 0-1000 +# Default: +# StartHTTPAgentPollers=1 +{% if settings.get('starthttppollers', defaults.get('starthttppollers', False)) %} +StartHTTPPollers={{ settings.get('starthttppollers', defaults.starthttppollers) }} +{% endif %} +### Option: StartSNMPPollers +# Number of pre-forked instances of asynchronous SNMP pollers. Also see MaxConcurrentChecksPerPoller. +# +# Mandatory: no +# Range: 0-1000 +# Default: +# StartSNMPPollers=1 +{% if settings.get('startsnmppollers', defaults.get('startsnmppollers', False)) %} +StartSNMPPollers={{ settings.get('startsnmppollers', defaults.startsnmppollers) }} +{% endif %} +### Option: MaxConcurrentChecksPerPoller +# Maximum number of asynchronous checks that can be executed at once by each HTTP agent poller or agent poller. +# +# Mandatory: no +# Range: 1-1000 +# Default: +# MaxConcurrentChecksPerPoller=1000 +{% if settings.get('maxconcurrentchecksperpoller', defaults.get('maxconcurrentchecksperpoller', False)) %} +MaxConcurrentChecksPerPoller={{ settings.get('maxconcurrentchecksperpoller', defaults.maxconcurrentchecksperpoller) }} +{% endif %} +{% endif -%} +### Option : StartIPMIPollers # Number of pre-forked instances of IPMI pollers. {% if zabbix.version_repo|float >= 3.4 -%} # The IPMI manager process is automatically started when at least one IPMI poller is started. @@ -205,19 +268,41 @@ StartPollers={{ settings.get('startpollers', defaults.startpollers) }} # Range: 0-1000 # Default: # StartIPMIPollers=0 -{% if settings.get('startipmipollers', defaults.get('startipmipollers', False)) -%} +{% if settings.get('startipmipollers', defaults.get('startipmipollers', False)) %} StartIPMIPollers={{ settings.get('startipmipollers', defaults.startipmipollers) }} {% endif %} {% if zabbix.version_repo|float >= 3.4 -%} ### Option: StartPreprocessors +{% if zabbix.version_repo|float >= 7.0 -%} +# Number of pre-started instances of preprocessing worker threads should be set to no less than +# the available CPU core count. More workers should be set if preprocessing is not CPU-bound and has +# lots of network requests. +{% else -%} # Number of pre-forked instances of preprocessing workers. # The preprocessing manager process is automatically started when preprocessor worker is started. +{% endif -%} # # Mandatory: no # Range: 1-1000 # Default: # StartPreprocessors=3 +{% if settings.get('startpreprocessors', defaults.get('startpreprocessors', False)) %} +StartPreprocessors={{ settings.get('startpreprocessors', defaults.startpreprocessors) }} {% endif %} +{% endif -%} +{% if zabbix.version_repo|float >= 7.0 -%} +### Option: StartConnectors +# Number of pre-forked instances of connector workers. +# The connector manager process is automatically started when connector worker is started. +# +# Mandatory: no +# Range: 0-1000 +# Default: +# StartConnectors=0 +{% if settings.get('startconnectors', defaults.get('startconnectors', False)) %} +StartConnectors={{ settings.get('startconnectors', defaults.startconnectors) }} +{% endif %} +{% endif -%} ### Option: StartPollersUnreachable # Number of pre-forked instances of pollers for unreachable hosts (including IPMI and Java). # At least one poller for unreachable hosts must be running if regular, IPMI or Java pollers @@ -227,9 +312,27 @@ StartIPMIPollers={{ settings.get('startipmipollers', defaults.startipmipollers) # Range: 0-1000 # Default: # StartPollersUnreachable=1 -{% if settings.get('startpollersunreachable', defaults.get('startpollersunreachable', False)) -%} +{% if settings.get('startpollersunreachable', defaults.get('startpollersunreachable', False)) %} StartPollersUnreachable={{ settings.get('startpollersunreachable', defaults.startpollersunreachable) }} {% endif %} +{% if zabbix.version_repo|float >= 6.0 -%} +### Option: StartHistoryPollers +# Number of pre-forked instances of history pollers. +{% if zabbix.version_repo|float >= 7.0 -%} +# Only required for calculated checks. +{% else -%} +# Only required for calculated and internal checks. +{% endif -%} +# A database connection is required for each history poller instance. +# +# Mandatory: no +# Range: 0-1000 +# Default: +# StartHistoryPollers=5 +{% if settings.get('starthistorypollers', defaults.get('starthistorypollers', False)) %} +StartHistoryPollers={{ settings.get('starthistorypollers', defaults.starthistorypollers) }} +{% endif %} +{% endif -%} ### Option: StartTrappers # Number of pre-forked instances of trappers. # Trappers accept incoming connections from Zabbix sender, active agents and active proxies. @@ -240,7 +343,7 @@ StartPollersUnreachable={{ settings.get('startpollersunreachable', defaults.star # Range: 0-1000 # Default: # StartTrappers=5 -{% if settings.get('starttrappers', defaults.get('starttrappers', False)) -%} +{% if settings.get('starttrappers', defaults.get('starttrappers', False)) %} StartTrappers={{ settings.get('starttrappers', defaults.starttrappers) }} {% endif %} ### Option: StartPingers @@ -250,17 +353,21 @@ StartTrappers={{ settings.get('starttrappers', defaults.starttrappers) }} # Range: 0-1000 # Default: # StartPingers=1 -{% if settings.get('startpingers', defaults.get('startpingers', False)) -%} +{% if settings.get('startpingers', defaults.get('startpingers', False)) %} StartPingers={{ settings.get('startpingers', defaults.startpingers) }} {% endif %} ### Option: StartDiscoverers +{% if zabbix.version_repo|float >= 7.0 -%} +# Number of pre-started instances of discovery workers. +{% else -%} # Number of pre-forked instances of discoverers. +{% endif -%} # # Mandatory: no # Range: 0-250 # Default: # StartDiscoverers=1 -{% if settings.get('startdiscoverers', defaults.get('startdiscoverers', False)) -%} +{% if settings.get('startdiscoverers', defaults.get('startdiscoverers', False)) %} StartDiscoverers={{ settings.get('startdiscoverers', defaults.startdiscoverers) }} {% endif %} ### Option: StartHTTPPollers @@ -270,7 +377,7 @@ StartDiscoverers={{ settings.get('startdiscoverers', defaults.startdiscoverers) # Range: 0-1000 # Default: # StartHTTPPollers=1 -{% if settings.get('starthttppollers', defaults.get('starthttppollers', False)) -%} +{% if settings.get('starthttppollers', defaults.get('starthttppollers', False)) %} StartHTTPPollers={{ settings.get('starthttppollers', defaults.starthttppollers) }} {% endif %} ### Option: StartTimers @@ -282,7 +389,7 @@ StartHTTPPollers={{ settings.get('starthttppollers', defaults.starthttppollers) # Range: 1-1000 # Default: # StartTimers=1 -{% if settings.get('starttimers', defaults.get('starttimers', False)) -%} +{% if settings.get('starttimers', defaults.get('starttimers', False)) %} StartTimers={{ settings.get('starttimers', defaults.starttimers) }} {% endif %} ### Option: StartEscalators @@ -292,7 +399,7 @@ StartTimers={{ settings.get('starttimers', defaults.starttimers) }} # Range: 0-100 # Default: # StartEscalators=1 -{% if settings.get('startescalators', defaults.get('startescalators', False)) -%} +{% if settings.get('startescalators', defaults.get('startescalators', False)) %} StartEscalators={{ settings.get('startescalators', defaults.startescalators) }} {% endif %} {% if zabbix.version_repo|float >= 3.4 -%} @@ -304,7 +411,7 @@ StartEscalators={{ settings.get('startescalators', defaults.startescalators) }} # Range: 0-100 # Default: # StartAlerters=3 -{% if settings.get('startalerters', defaults.get('startalerters', False)) -%} +{% if settings.get('startalerters', defaults.get('startalerters', False)) %} StartAlerters={{ settings.get('startalerters', defaults.startalerters) }} {% endif %} {% endif -%} @@ -315,7 +422,7 @@ StartAlerters={{ settings.get('startalerters', defaults.startalerters) }} # Mandatory: no # Default: # JavaGateway= -{% if settings.get('javagateway', defaults.get('javagateway', False)) -%} +{% if settings.get('javagateway', defaults.get('javagateway', False)) %} JavaGateway={{ settings.get('javagateway', defaults.javagateway) }} {% endif %} ### Option: JavaGatewayPort @@ -325,7 +432,7 @@ JavaGateway={{ settings.get('javagateway', defaults.javagateway) }} # Range: 1024-32767 # Default: # JavaGatewayPort=10052 -{% if settings.get('javagatewayport', defaults.get('javagatewayport', False)) -%} +{% if settings.get('javagatewayport', defaults.get('javagatewayport', False)) %} JavaGatewayPort={{ settings.get('javagatewayport', defaults.javagatewayport) }} {% endif %} ### Option: StartJavaPollers @@ -335,7 +442,7 @@ JavaGatewayPort={{ settings.get('javagatewayport', defaults.javagatewayport) }} # Range: 0-1000 # Default: # StartJavaPollers=0 -{% if settings.get('startjavapollers', defaults.get('startjavapollers', False)) -%} +{% if settings.get('startjavapollers', defaults.get('startjavapollers', False)) %} StartJavaPollers={{ settings.get('startjavapollers', defaults.startjavapollers) }} {% endif %} ### Option: StartVMwareCollectors @@ -345,7 +452,7 @@ StartJavaPollers={{ settings.get('startjavapollers', defaults.startjavapollers) # Range: 0-250 # Default: # StartVMwareCollectors=0 -{% if settings.get('startvmwarecollectors', defaults.get('startvmwarecollectors', False)) -%} +{% if settings.get('startvmwarecollectors', defaults.get('startvmwarecollectors', False)) %} StartVMwareCollectors={{ settings.get('startvmwarecollectors', defaults.startvmwarecollectors) }} {% endif %} ### Option: VMwareFrequency @@ -355,7 +462,7 @@ StartVMwareCollectors={{ settings.get('startvmwarecollectors', defaults.startvmw # Range: 10-86400 # Default: # VMwareFrequency=60 -{% if settings.get('vmwarefrequency', defaults.get('vmwarefrequency', False)) -%} +{% if settings.get('vmwarefrequency', defaults.get('vmwarefrequency', False)) %} VMwareFrequency={{ settings.get('vmwarefrequency', defaults.vmwarefrequency) }} {% endif %} ### Option: VMwarePerfFrequency @@ -365,7 +472,7 @@ VMwareFrequency={{ settings.get('vmwarefrequency', defaults.vmwarefrequency) }} # Range: 10-86400 # Default: # VMwarePerfFrequency=60 -{% if settings.get('vmwareperffrequency', defaults.get('vmwareperffrequency', False)) -%} +{% if settings.get('vmwareperffrequency', defaults.get('vmwareperffrequency', False)) %} VMwarePerfFrequency={{ settings.get('vmwareperffrequency', defaults.vmwareperffrequency) }} {% endif %} ### Option: VMwareCacheSize @@ -377,7 +484,7 @@ VMwarePerfFrequency={{ settings.get('vmwareperffrequency', defaults.vmwareperffr # Range: 256K-2G # Default: # VMwareCacheSize=8M -{% if settings.get('vmwarecachesize', defaults.get('vmwarecachesize', False)) -%} +{% if settings.get('vmwarecachesize', defaults.get('vmwarecachesize', False)) %} VMwareCacheSize={{ settings.get('vmwarecachesize', defaults.vmwarecachesize) }} {% endif %} ### Option: VMwareTimeout @@ -387,7 +494,7 @@ VMwareCacheSize={{ settings.get('vmwarecachesize', defaults.vmwarecachesize) }} # Range: 1-300 # Default: # VMwareTimeout=10 -{% if settings.get('vmwaretimeout', defaults.get('vmwaretimeout', False)) -%} +{% if settings.get('vmwaretimeout', defaults.get('vmwaretimeout', False)) %} VMwareTimeout={{ settings.get('vmwaretimeout', defaults.vmwaretimeout) }} {% endif %} ### Option: SNMPTrapperFile @@ -407,7 +514,7 @@ SNMPTrapperFile={{ settings.get('snmptrapperfile', defaults.snmptrapperfile) }} # Range: 0-1 # Default: # StartSNMPTrapper=0 -{% if settings.get('startsnmptrapper', defaults.get('startsnmptrapper', False)) -%} +{% if settings.get('startsnmptrapper', defaults.get('startsnmptrapper', False)) %} StartSNMPTrapper={{ settings.get('startsnmptrapper', defaults.startsnmptrapper) }} {% endif %} ### Option: ListenIP @@ -417,7 +524,7 @@ StartSNMPTrapper={{ settings.get('startsnmptrapper', defaults.startsnmptrapper) # Mandatory: no # Default: # ListenIP=0.0.0.0 -{% if settings.get('listenip', defaults.get('listenip', False)) -%} +{% if settings.get('listenip', defaults.get('listenip', False)) %} ListenIP={{ settings.get('listenip', defaults.listenip) }} {% endif %} ### Option: HousekeepingFrequency @@ -434,7 +541,7 @@ ListenIP={{ settings.get('listenip', defaults.listenip) }} # Range: 0-24 # Default: # HousekeepingFrequency=1 -{% if settings.get('housekeepingfrequency', defaults.get('housekeepingfrequency', False)) -%} +{% if settings.get('housekeepingfrequency', defaults.get('housekeepingfrequency', False)) %} HousekeepingFrequency={{ settings.get('housekeepingfrequency', defaults.housekeepingfrequency) }} {% endif %} ### Option: MaxHousekeeperDelete @@ -449,7 +556,7 @@ HousekeepingFrequency={{ settings.get('housekeepingfrequency', defaults.housekee # Range: 0-1000000 # Default: # MaxHousekeeperDelete=5000 -{% if settings.get('maxhousekeeperdelete', defaults.get('maxhousekeeperdelete', False)) -%} +{% if settings.get('maxhousekeeperdelete', defaults.get('maxhousekeeperdelete', False)) %} MaxHousekeeperDelete={{ settings.get('maxhousekeeperdelete', defaults.maxhousekeeperdelete) }} {% endif %} {% if zabbix.version_repo|float < 3.4 -%} @@ -460,7 +567,7 @@ MaxHousekeeperDelete={{ settings.get('maxhousekeeperdelete', defaults.maxhouseke # Range: 5-3600 # Default: # SenderFrequency=30 -{% if settings.get('senderfrequency', defaults.get('senderfrequency', False)) -%} +{% if settings.get('senderfrequency', defaults.get('senderfrequency', False)) %} SenderFrequency={{ settings.get('senderfrequency', defaults.senderfrequency) }} {% endif %} {% endif -%} @@ -472,7 +579,7 @@ SenderFrequency={{ settings.get('senderfrequency', defaults.senderfrequency) }} # Range: 128K-8G # Default: # CacheSize=8M -{% if settings.get('cachesize', defaults.get('cachesize', False)) -%} +{% if settings.get('cachesize', defaults.get('cachesize', False)) %} CacheSize={{ settings.get('cachesize', defaults.cachesize) }} {% endif %} ### Option: CacheUpdateFrequency @@ -482,7 +589,7 @@ CacheSize={{ settings.get('cachesize', defaults.cachesize) }} # Range: 1-3600 # Default: # CacheUpdateFrequency=60 -{% if settings.get('cacheupdatefrequency', defaults.get('cacheupdatefrequency', False)) -%} +{% if settings.get('cacheupdatefrequency', defaults.get('cacheupdatefrequency', False)) %} CacheUpdateFrequency={{ settings.get('cacheupdatefrequency', defaults.cacheupdatefrequency) }} {% endif %} ### Option: StartDBSyncers @@ -492,7 +599,7 @@ CacheUpdateFrequency={{ settings.get('cacheupdatefrequency', defaults.cacheupdat # Range: 1-100 # Default: # StartDBSyncers=4 -{% if settings.get('startdbsyncers', defaults.get('startdbsyncers', False)) -%} +{% if settings.get('startdbsyncers', defaults.get('startdbsyncers', False)) %} StartDBSyncers={{ settings.get('startdbsyncers', defaults.startdbsyncers) }} {% endif %} ### Option: HistoryCacheSize @@ -503,7 +610,7 @@ StartDBSyncers={{ settings.get('startdbsyncers', defaults.startdbsyncers) }} # Range: 128K-2G # Default: # HistoryCacheSize=16M -{% if settings.get('historycachesize', defaults.get('historycachesize', False)) -%} +{% if settings.get('historycachesize', defaults.get('historycachesize', False)) %} HistoryCacheSize={{ settings.get('historycachesize', defaults.historycachesize) }} {% endif %} ### Option: HistoryIndexCacheSize @@ -514,20 +621,37 @@ HistoryCacheSize={{ settings.get('historycachesize', defaults.historycachesize) # Range: 128K-2G # Default: # HistoryIndexCacheSize=4M -{% if settings.get('historyindexcachesize', defaults.get('historyindexcachesize', False)) -%} +{% if settings.get('historyindexcachesize', defaults.get('historyindexcachesize', False)) %} HistoryIndexCacheSize={{ settings.get('historyindexcachesize', defaults.historyindexcachesize) }} {% endif %} ### Option: TrendCacheSize +{% if zabbix.version_repo|float < 6.0 -%} # Size of trend cache, in bytes. +{% else -%} +# Size of trend write cache, in bytes. +{% endif -%} # Shared memory size for storing trends data. # # Mandatory: no # Range: 128K-2G # Default: # TrendCacheSize=4M -{% if settings.get('trendcachesize', defaults.get('trendcachesize', False)) -%} +{% if settings.get('trendcachesize', defaults.get('trendcachesize', False)) %} TrendCacheSize={{ settings.get('trendcachesize', defaults.trendcachesize) }} {% endif %} +{% if zabbix.version_repo|float >= 6.0 -%} +### Option: TrendFunctionCacheSize +# Size of trend function cache, in bytes. +# Shared memory size for caching calculated trend function data. +# +# Mandatory: no +# Range: 128K-2G +# Default: +# TrendFunctionCacheSize=4M +{% if settings.get('trendfunctioncachesize', defaults.get('trendfunctioncachesize', False)) %} +TrendFunctionCacheSize={{ settings.get('trendfunctioncachesize', defaults.trendfunctioncachesize) }} +{% endif %} +{% endif -%} ### Option: ValueCacheSize # Size of history value cache, in bytes. # Shared memory size for caching item history data requests. @@ -537,11 +661,15 @@ TrendCacheSize={{ settings.get('trendcachesize', defaults.trendcachesize) }} # Range: 0,128K-64G # Default: # ValueCacheSize=8M -{% if settings.get('valuecachesize', defaults.get('valuecachesize', False)) -%} +{% if settings.get('valuecachesize', defaults.get('valuecachesize', False)) %} ValueCacheSize={{ settings.get('valuecachesize', defaults.valuecachesize) }} {% endif %} ### Option: Timeout +{% if zabbix.version_repo|float >= 7.0 -%} +# Specifies how long to wait (in seconds) for establishing connection and exchanging data with Zabbix proxy, agent, web service, and for SNMP checks (except SNMP `walk[OID]` and `get[OID]` items) and `icmpping[*]` item. +{% else -%} # Specifies how long we wait for agent, SNMP device or external check (in seconds). +{% endif -%} # # Mandatory: no # Range: 1-30 @@ -551,13 +679,20 @@ ValueCacheSize={{ settings.get('valuecachesize', defaults.valuecachesize) }} Timeout={{ settings.get('timeout', defaults.timeout) }} {% endif %} ### Option: TrapperTimeout +{% if zabbix.version_repo|float >= 7.0 -%} +# Specifies timeout in seconds for: +# retrieval of historical data from Zabbix proxy +# sending configuration data to Zabbix proxy +# Global script / remote command execution on Zabbix proxy / server +{% else -%} # Specifies how many seconds trapper may spend processing new data. +{% endif -%} # # Mandatory: no # Range: 1-300 # Default: # TrapperTimeout=300 -{% if settings.get('trappertimeout', defaults.get('trappertimeout', False)) -%} +{% if settings.get('trappertimeout', defaults.get('trappertimeout', False)) %} TrapperTimeout={{ settings.get('trappertimeout', defaults.trappertimeout) }} {% endif %} ### Option: UnreachablePeriod @@ -567,7 +702,7 @@ TrapperTimeout={{ settings.get('trappertimeout', defaults.trappertimeout) }} # Range: 1-3600 # Default: # UnreachablePeriod=45 -{% if settings.get('unreachableperiod', defaults.get('unreachableperiod', False)) -%} +{% if settings.get('unreachableperiod', defaults.get('unreachableperiod', False)) %} UnreachablePeriod={{ settings.get('unreachableperiod', defaults.unreachableperiod) }} {% endif %} ### Option: UnavailableDelay @@ -577,7 +712,7 @@ UnreachablePeriod={{ settings.get('unreachableperiod', defaults.unreachableperio # Range: 1-3600 # Default: # UnavailableDelay=60 -{% if settings.get('unavailabledelay', defaults.get('unavailabledelay', False)) -%} +{% if settings.get('unavailabledelay', defaults.get('unavailabledelay', False)) %} UnavailableDelay={{ settings.get('unavailabledelay', defaults.unavailabledelay) }} {% endif %} ### Option: UnreachableDelay @@ -587,7 +722,7 @@ UnavailableDelay={{ settings.get('unavailabledelay', defaults.unavailabledelay) # Range: 1-3600 # Default: # UnreachableDelay=15 -{% if settings.get('unreachabledelay', defaults.get('unreachabledelay', False)) -%} +{% if settings.get('unreachabledelay', defaults.get('unreachabledelay', False)) %} UnreachableDelay={{ settings.get('unreachabledelay', defaults.unreachabledelay) }} {% endif %} ### Option: AlertScriptsPath @@ -637,7 +772,7 @@ Fping6Location={{ settings.get('fping6location', defaults.fping6location) }} # Mandatory: no # Default: # SSHKeyLocation= -{% if settings.get('sshkeylocation', defaults.get('sshkeylocation', False)) -%} +{% if settings.get('sshkeylocation', defaults.get('sshkeylocation', False)) %} SSHKeyLocation={{ settings.get('sshkeylocation', defaults.sshkeylocation) }} {% endif %} ### Option: LogSlowQueries @@ -658,7 +793,7 @@ LogSlowQueries={{ settings.get('logslowqueries', defaults.logslowqueries) }} # Mandatory: no # Default: # TmpDir=/tmp -{% if settings.get('tmpdir', defaults.get('tmpdir', False)) -%} +{% if settings.get('tmpdir', defaults.get('tmpdir', False)) %} TmpDir={{ settings.get('tmpdir', defaults.tmpdir) }} {% endif %} ### Option: StartProxyPollers @@ -668,7 +803,7 @@ TmpDir={{ settings.get('tmpdir', defaults.tmpdir) }} # Range: 0-250 # Default: # StartProxyPollers=1 -{% if settings.get('startproxypollers', defaults.get('startproxypollers', False)) -%} +{% if settings.get('startproxypollers', defaults.get('startproxypollers', False)) %} StartProxyPollers={{ settings.get('startproxypollers', defaults.startproxypollers) }} {% endif %} ### Option: ProxyConfigFrequency @@ -679,7 +814,7 @@ StartProxyPollers={{ settings.get('startproxypollers', defaults.startproxypoller # Range: 1-3600*24*7 # Default: # ProxyConfigFrequency=3600 -{% if settings.get('proxyconfigfrequency', defaults.get('proxyconfigfrequency', False)) -%} +{% if settings.get('proxyconfigfrequency', defaults.get('proxyconfigfrequency', False)) %} ProxyConfigFrequency={{ settings.get('proxyconfigfrequency', defaults.proxyconfigfrequency) }} {% endif %} ### Option: ProxyDataFrequency @@ -690,7 +825,7 @@ ProxyConfigFrequency={{ settings.get('proxyconfigfrequency', defaults.proxyconfi # Range: 1-3600 # Default: # ProxyDataFrequency=1 -{% if settings.get('proxydatafrequency', defaults.get('proxydatafrequency', False)) -%} +{% if settings.get('proxydatafrequency', defaults.get('proxydatafrequency', False)) %} ProxyDataFrequency={{ settings.get('proxydatafrequency', defaults.proxydatafrequency) }} {% endif %} ### Option: AllowRoot @@ -703,7 +838,7 @@ ProxyDataFrequency={{ settings.get('proxydatafrequency', defaults.proxydatafrequ # Mandatory: no # Default: # AllowRoot=0 -{% if settings.get('allowroot', defaults.get('allowroot', False)) -%} +{% if settings.get('allowroot', defaults.get('allowroot', False)) %} AllowRoot={{ settings.get('allowroot', defaults.allowroot) }} {% endif %} ### Option: User @@ -730,8 +865,7 @@ User={{ settings.get('user', defaults.user) }} {% for include in settings.get('includes', defaults.get('includes', [])) %} Include={{ include }} {%- endfor %} -{%- endif %} - +{%- endif -%} ### Option: SSLCertLocation # Location of SSL client certificates. # This parameter is used only in web monitoring. @@ -739,7 +873,7 @@ Include={{ include }} # Mandatory: no # Default: # SSLCertLocation=${datadir}/zabbix/ssl/certs -{% if settings.get('sslcertlocation', defaults.get('sslcertlocation', False)) -%} +{% if settings.get('sslcertlocation', defaults.get('sslcertlocation', False)) %} SSLCertLocation={{ settings.get('sslcertlocation', defaults.sslcertlocation) }} {% endif %} ### Option: SSLKeyLocation @@ -749,20 +883,41 @@ SSLCertLocation={{ settings.get('sslcertlocation', defaults.sslcertlocation) }} # Mandatory: no # Default: # SSLKeyLocation=${datadir}/zabbix/ssl/keys -{% if settings.get('sslkeylocation', defaults.get('sslkeylocation', False)) -%} +{% if settings.get('sslkeylocation', defaults.get('sslkeylocation', False)) %} SSLKeyLocation={{ settings.get('sslkeylocation', defaults.sslkeylocation) }} {% endif %} ### Option: SSLCALocation # Override the location of certificate authority (CA) files for SSL server certificate verification. # If not set, system-wide directory will be used. +{% if zabbix.version_repo|float < 6.0 -%} # This parameter is used only in web monitoring and SMTP authentication. +{% else -%} +# This parameter is used in web monitoring, SMTP authentication, HTTP agent items and for communication with Vault. +{% endif -%} # # Mandatory: no # Default: # SSLCALocation= -{% if settings.get('sslcalocation', defaults.get('sslcalocation', False)) -%} +{% if settings.get('sslcalocation', defaults.get('sslcalocation', False)) %} SSLCALocation={{ settings.get('sslcalocation', defaults.sslcalocation) }} {% endif %} +{% if zabbix.version_repo|float >= 5.0 -%} +### Option: StatsAllowedIP +# List of comma delimited IP addresses, optionally in CIDR notation, or DNS names of external Zabbix instances. +# Stats request will be accepted only from the addresses listed here. If this parameter is not set no stats requests +# will be accepted. +# If IPv6 support is enabled then '127.0.0.1', '::127.0.0.1', '::ffff:127.0.0.1' are treated equally +# and '::/0' will allow any IPv4 or IPv6 address. +# '0.0.0.0/0' can be used to allow any IPv4 address. +# Example: StatsAllowedIP=127.0.0.1,192.168.1.0/24,::1,2001:db8::/32,zabbix.example.com +# +# Mandatory: no +# Default: +# StatsAllowedIP +{% if settings.get('statsallowedip', defaults.get('statsallowedip', False)) %} +StatsAllowedIP={{ settings.get('statsallowedip', defaults.statsallowedip) }} +{% endif %} +{% endif -%} ####### LOADABLE MODULES ####### ### Option: LoadModulePath @@ -772,7 +927,7 @@ SSLCALocation={{ settings.get('sslcalocation', defaults.sslcalocation) }} # Mandatory: no # Default: # LoadModulePath=${libdir}/modules -{% if settings.get('loadmodulepath', defaults.get('loadmodulepath', False)) -%} +{% if settings.get('loadmodulepath', defaults.get('loadmodulepath', False)) %} LoadModulePath={{ settings.get('loadmodulepath', defaults.loadmodulepath) }} {% endif %} ### Option: LoadModule @@ -784,7 +939,7 @@ LoadModulePath={{ settings.get('loadmodulepath', defaults.loadmodulepath) }} # Mandatory: no # Default: # LoadModule= -{% for loadmodule in settings.get('loadmodules', []) -%} +{% for loadmodule in settings.get('loadmodules', []) %} LoadModule={{ loadmodule }} {% endfor %} ####### TLS-RELATED PARAMETERS ####### @@ -796,7 +951,7 @@ LoadModule={{ loadmodule }} # Mandatory: no # Default: # TLSCAFile= -{% if settings.get('tlscafile', defaults.get('tlscafile', False)) -%} +{% if settings.get('tlscafile', defaults.get('tlscafile', False)) %} TLSCAFile={{ settings.get('tlscafile', defaults.tlscafile) }} {% endif %} ### Option: TLSCRLFile @@ -805,7 +960,7 @@ TLSCAFile={{ settings.get('tlscafile', defaults.tlscafile) }} # Mandatory: no # Default: # TLSCRLFile= -{% if settings.get('tlscrlfile', defaults.get('tlscrlfile', False)) -%} +{% if settings.get('tlscrlfile', defaults.get('tlscrlfile', False)) %} TLSCRLFile={{ settings.get('tlscrlfile', defaults.tlscrlfile) }} {% endif %} ### Option: TLSCertFile @@ -814,7 +969,7 @@ TLSCRLFile={{ settings.get('tlscrlfile', defaults.tlscrlfile) }} # Mandatory: no # Default: # TLSCertFile= -{% if settings.get('tlscertfile', defaults.get('tlscertfile', False)) -%} +{% if settings.get('tlscertfile', defaults.get('tlscertfile', False)) %} TLSCertFile={{ settings.get('tlscertfile', defaults.tlscertfile) }} {% endif %} ### Option: TLSKeyFile @@ -823,7 +978,407 @@ TLSCertFile={{ settings.get('tlscertfile', defaults.tlscertfile) }} # Mandatory: no # Default: # TLSKeyFile= -{% if settings.get('tlskeyfile', defaults.get('tlskeyfile', False)) -%} +{% if settings.get('tlskeyfile', defaults.get('tlskeyfile', False)) %} TLSKeyFile={{ settings.get('tlskeyfile', defaults.tlskeyfile) }} {% endif %} -{{ settings.get('extra_conf','') }} \ No newline at end of file +{% if zabbix.version_repo|float >= 5.0 -%} +####### For advanced users - TLS ciphersuite selection criteria ####### + +### Option: TLSCipherCert13 +# Cipher string for OpenSSL 1.1.1 or newer in TLS 1.3. +# Override the default ciphersuite selection criteria for certificate-based encryption. +# +# Mandatory: no +# Default: +# TLSCipherCert13= +{% if settings.get('tlsciphercert13', defaults.get('tlsciphercert13', False)) %} +TLSCipherCert13={{ settings.get('tlsciphercert13', defaults.tlsciphercert13) }} +{% endif %} + +### Option: TLSCipherCert +# GnuTLS priority string or OpenSSL (TLS 1.2) cipher string. +# Override the default ciphersuite selection criteria for certificate-based encryption. +# Example for GnuTLS: +# NONE:+VERS-TLS1.2:+ECDHE-RSA:+RSA:+AES-128-GCM:+AES-128-CBC:+AEAD:+SHA256:+SHA1:+CURVE-ALL:+COMP-NULL:+SIGN-ALL:+CTYPE-X.509 +# Example for OpenSSL: +# EECDH+aRSA+AES128:RSA+aRSA+AES128 +# +# Mandatory: no +# Default: +# TLSCipherCert= +{% if settings.get('tlsciphercert', defaults.get('tlsciphercert', False)) %} +TLSCipherCert={{ settings.get('tlsciphercert', defaults.tlsciphercert) }} +{% endif %} +### Option: TLSCipherPSK13 +# Cipher string for OpenSSL 1.1.1 or newer in TLS 1.3. +# Override the default ciphersuite selection criteria for PSK-based encryption. +# Example: +# TLS_CHACHA20_POLY1305_SHA256:TLS_AES_128_GCM_SHA256 +# +# Mandatory: no +# Default: +# TLSCipherPSK13= +{% if settings.get('tlscipherpsk13', defaults.get('tlscipherpsk13', False)) %} +TLSCipherPSK13={{ settings.get('tlscipherpsk13', defaults.tlscipherpsk13) }} +{% endif %} +### Option: TLSCipherPSK +# GnuTLS priority string or OpenSSL (TLS 1.2) cipher string. +# Override the default ciphersuite selection criteria for PSK-based encryption. +# Example for GnuTLS: +# NONE:+VERS-TLS1.2:+ECDHE-PSK:+PSK:+AES-128-GCM:+AES-128-CBC:+AEAD:+SHA256:+SHA1:+CURVE-ALL:+COMP-NULL:+SIGN-ALL +# Example for OpenSSL: +# kECDHEPSK+AES128:kPSK+AES128 +# +# Mandatory: no +# Default: +# TLSCipherPSK= +{% if settings.get('tlscipherpsk', defaults.get('tlscipherpsk', False)) %} +TLSCipherPSK={{ settings.get('tlscipherpsk', defaults.tlscipherpsk) }} +{% endif %} +### Option: TLSCipherAll13 +# Cipher string for OpenSSL 1.1.1 or newer in TLS 1.3. +# Override the default ciphersuite selection criteria for certificate- and PSK-based encryption. +# Example: +# TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_128_GCM_SHA256 +# +# Mandatory: no +# Default: +# TLSCipherAll13= +{% if settings.get('tlscipherall13', defaults.get('tlscipherall13', False)) %} +TLSCipherAll13={{ settings.get('tlscipherall13', defaults.tlscipherall13) }} +{% endif %} +### Option: TLSCipherAll +# GnuTLS priority string or OpenSSL (TLS 1.2) cipher string. +# Override the default ciphersuite selection criteria for certificate- and PSK-based encryption. +# Example for GnuTLS: +# NONE:+VERS-TLS1.2:+ECDHE-RSA:+RSA:+ECDHE-PSK:+PSK:+AES-128-GCM:+AES-128-CBC:+AEAD:+SHA256:+SHA1:+CURVE-ALL:+COMP-NULL:+SIGN-ALL:+CTYPE-X.509 +# Example for OpenSSL: +# EECDH+aRSA+AES128:RSA+aRSA+AES128:kECDHEPSK+AES128:kPSK+AES128 +# +# Mandatory: no +# Default: +# TLSCipherAll= +{% if settings.get('tlscipherall', defaults.get('tlscipherall', False)) %} +TLSCipherAll={{ settings.get('tlscipherall', defaults.tlscipherall) }} +{% endif %} +### Option: DBTLSConnect +# Setting this option enforces to use TLS connection to database. +# required - connect using TLS +# verify_ca - connect using TLS and verify certificate +# verify_full - connect using TLS, verify certificate and verify that database identity specified by DBHost +# matches its certificate +# On MySQL starting from 5.7.11 and PostgreSQL following values are supported: "required", "verify_ca" and +# "verify_full". +# On MariaDB starting from version 10.2.6 "required" and "verify_full" values are supported. +# Default is not to set any option and behavior depends on database configuration +# +# Mandatory: no +# Default: +# DBTLSConnect= +{% if settings.get('dbtlsconnect', defaults.get('dbtlsconnect', False)) %} +DBTLSConnect={{ settings.get('dbtlsconnect', defaults.dbtlsconnect) }} +{% endif %} +### Option: DBTLSCAFile +# Full pathname of a file containing the top-level CA(s) certificates for database certificate verification. +# Supported only for MySQL and PostgreSQL +# +# Mandatory: no +# (yes, if DBTLSConnect set to one of: verify_ca, verify_full) +# Default: +# DBTLSCAFile= +{% if settings.get('dbtlscafile', defaults.get('dbtlscafile', False)) %} +DBTLSCAFile={{ settings.get('dbtlscafile', defaults.dbtlscafile) }} +{% endif %} +### Option: DBTLSCertFile +# Full pathname of file containing Zabbix server certificate for authenticating to database. +# Supported only for MySQL and PostgreSQL +# +# Mandatory: no +# Default: +# DBTLSCertFile= +{% if settings.get('dbtlscertfile', defaults.get('dbtlscertfile', False)) %} +DBTLSCertFile={{ settings.get('dbtlscertfile', defaults.dbtlscertfile) }} +{% endif %} +### Option: DBTLSKeyFile +# Full pathname of file containing the private key for authenticating to database. +# Supported only for MySQL and PostgreSQL +# +# Mandatory: no +# Default: +# DBTLSKeyFile= +{% if settings.get('dbtlskeyfile', defaults.get('dbtlskeyfile', False)) %} +DBTLSKeyFile={{ settings.get('dbtlskeyfile', defaults.dbtlskeyfile) }} +{% endif %} +### Option: DBTLSCipher +# The list of encryption ciphers that Zabbix server permits for TLS protocols up through TLSv1.2 +# Supported only for MySQL +# +# Mandatory no +# Default: +# DBTLSCipher= +{% if settings.get('dbtlscipher', defaults.get('dbtlscipher', False)) %} +DBTLSCipher={{ settings.get('dbtlscipher', defaults.dbtlscipher) }} +{% endif %} +### Option: DBTLSCipher13 +# The list of encryption ciphersuites that Zabbix server permits for TLSv1.3 protocol +# Supported only for MySQL, starting from version 8.0.16 +# +# Mandatory no +# Default: +# DBTLSCipher13= +{% if settings.get('dbtlscipher13', defaults.get('dbtlscipher13', False)) %} +DBTLSCipher13={{ settings.get('dbtlscipher13', defaults.dbtlscipher13) }} +{% endif %} +{% if zabbix.version_repo|float >= 6.0 -%} +{% if zabbix.version_repo|float >= 6.2 -%} +### Option: Vault +# Specifies vault: +# HashiCorp - HashiCorp KV Secrets Engine - Version 2 +# CyberArk - CyberArk Central Credential Provider +# +# Mandatory: no +# Default: +# Vault=HashiCorp +{% if settings.get('vault', defaults.get('vault', False)) %} +Vault={{ settings.get('vault', defaults.vault) }} +{% endif %} +{% endif -%} +### Option: VaultToken +# Vault authentication token that should have been generated exclusively for Zabbix server with read only permission +# to paths specified in Vault macros and read only permission to path specified in optional VaultDBPath +# configuration parameter. +# It is an error if VaultToken and VAULT_TOKEN environment variable are defined at the same time. +# +# Mandatory: no +{% if zabbix.version_repo|float >= 6.2 %} +# (yes, if Vault is explicitly set to HashiCorp) +{% endif -%} +# Default: +# VaultToken= +{% if settings.get('vaulttoken', defaults.get('vaulttoken', False)) %} +VaultToken={{ settings.get('vaulttoken', defaults.vaulttoken) }} +{% endif %} +### Option: VaultURL +# Vault server HTTP[S] URL. System-wide CA certificates directory will be used if SSLCALocation is not specified. +# +# Mandatory: no +# Default: +# VaultURL=https://127.0.0.1:8200 +{% if settings.get('vaulturl', defaults.get('vaulturl', False)) %} +VaultURL={{ settings.get('vaulturl', defaults.vaulturl) }} +{% endif %} +{% if zabbix.version_repo|float >= 6.2 -%} +### Option: VaultPrefix +# Custom prefix for Vault path or query depending on the Vault. +# Most suitable defaults will be used if not specified. +# Note that 'data' is automatically appended after mountpoint for HashiCorp if VaultPrefix is not specified. +# Example prefix for HashiCorp: +# /v1/secret/data/zabbix/ +# Example prefix for CyberArk: +# /AIMWebService/api/Accounts? +# Mandatory: no +# Default: +# VaultPrefix= +{% if settings.get('vaultprefix', defaults.get('vaultprefix', False)) %} +VaultPrefix={{ settings.get('vaultprefix', defaults.vaultprefix) }} +{% endif %} +{% endif -%} +### Option: VaultDBPath +{% if zabbix.version_repo|float >= 6.2 -%} +# Vault path or query depending on the Vault from where credentials for database will be retrieved by keys. +# Keys used for HashiCorp are 'password' and 'username'. +# Example path with VaultPrefix=/v1/secret/data/zabbix/: +# database +# Example path without VaultPrefix: +# secret/zabbix/database +# Keys used for CyberArk are 'Content' and 'UserName'. +# Example query: +# AppID=zabbix_server&Query=Safe=passwordSafe;Object=zabbix_server_database +{% else -%} +# Vault path from where credentials for database will be retrieved by keys 'password' and 'username'. +# Example: secret/zabbix/database +{% endif -%} +# This option can only be used if DBUser and DBPassword are not specified. +# +# Mandatory: no +# Default: +# VaultDBPath= +{% if settings.get('vaultdbpath', defaults.get('vaultdbpath', False)) %} +VaultDBPath={{ settings.get('vaultdbpath', defaults.vaultdbpath) }} +{% endif %} +{% if zabbix.version_repo|float >= 6.2 -%} +### Option: VaultTLSCertFile +# Name of the SSL certificate file used for client authentication. The certificate file must be in PEM1 format. +# If the certificate file contains also the private key, leave the SSL key file field empty. The directory +# containing this file is specified by configuration parameter SSLCertLocation. +# +# Mandatory: no +# Default: +# VaultTLSCertFile= +{% if settings.get('vaulttlscertfile', defaults.get('vaulttlscertfile', False)) %} +VaultTLSCertFile={{ settings.get('vaulttlscertfile', defaults.vaulttlscertfile) }} +{% endif %} +### Option: VaultTLSKeyFile +# Name of the SSL private key file used for client authentication. The private key file must be in PEM1 format. +# The directory containing this file is specified by configuration parameter SSLKeyLocation. +# +# Mandatory: no +# Default: +# VaultTLSKeyFile= +{% if settings.get('vaulttlskeyfile', defaults.get('vaulttlskeyfile', False)) %} +VaultTLSKeyFile={{ settings.get('vaulttlskeyfile', defaults.vaulttlskeyfile) }} +{% endif %} +{% endif -%} +### Option: StartReportWriters +# Number of pre-forked report writer instances. +# +# Mandatory: no +# Range: 0-100 +# Default: +# StartReportWriters=0 +{% if settings.get('startreportwriters', defaults.get('startreportwriters', False)) %} +StartReportWriters={{ settings.get('startreportwriters', defaults.startreportwriters) }} +{% endif %} +### Option: WebServiceURL +# URL to Zabbix web service, used to perform web related tasks. +# Example: http://localhost:10053/report +# +# Mandatory: no +# Default: +# WebServiceURL= +{% if settings.get('webserviceurl', defaults.get('webserviceurl', False)) %} +WebServiceURL={{ settings.get('webserviceurl', defaults.webserviceurl) }} +{% endif %} +### Option: ServiceManagerSyncFrequency +# How often Zabbix will synchronize configuration of a service manager (in seconds). +# +# Mandatory: no +# Range: 1-3600 +# Default: +# ServiceManagerSyncFrequency=60 +{% if settings.get('serviceManagersyncfrequency', defaults.get('serviceManagersyncfrequency', False)) %} +ServiceManagerSyncFrequency={{ settings.get('serviceManagersyncfrequency', defaults.serviceManagersyncfrequency) }} +{% endif %} +### Option: ProblemHousekeepingFrequency +# How often Zabbix will delete problems for deleted triggers (in seconds). +# +# Mandatory: no +# Range: 1-3600 +# Default: +# ProblemHousekeepingFrequency=60 +{% if settings.get('problemhousekeepingfrequency', defaults.get('problemhousekeepingfrequency', False)) %} +ProblemHousekeepingFrequency={{ settings.get('problemhousekeepingfrequency', defaults.problemhousekeepingfrequency) }} +{% endif %} +## Option: StartODBCPollers +# Number of pre-forked ODBC poller instances. +# +# Mandatory: no +# Range: 0-1000 +# Default: +# StartODBCPollers=1 +{% if settings.get('startodbcpollers', defaults.get('startodbcpollers', False)) %} +StartODBCPollers={{ settings.get('startodbcpollers', defaults.startodbcpollers) }} +{% endif %} +{% endif -%} +{% if zabbix.version_repo|float >= 7.0 -%} +### Option: EnableGlobalScripts +# Enable global scripts on Zabbix server. +# 0 - disable +# 1 - enable +# +# Mandatory: no +# Default: +# EnableGlobalScripts=1 +{% if settings.get('enableglobalscripts', defaults.get('enableglobalscripts', False)) %} +EnableGlobalScripts={{ settings.get('enableglobalscripts', defaults.enableglobalscripts) }} +{% endif %} +# Option: AllowSoftwareUpdateCheck +# Allow Zabbix UI to receive information about software updates from zabbix.com +# 0 - disable software update checks +# 1 - enable software update checks +# +# Mandatory: no +# Default: +# AllowSoftwareUpdateCheck=1 +{% if settings.get('allowsoftwareupdatecheck', defaults.get('allowsoftwareupdatecheck', False)) %} +AllowSoftwareUpdateCheck={{ settings.get('allowsoftwareupdatecheck', defaults.allowsoftwareupdatecheck) }} +{% endif %} +### Option: SMSDevices +# List of comma delimited modem files allowed to use Zabbix server +# SMS sending not possible if this parameter is not set +# Example: SMSDevices=/dev/ttyUSB0,/dev/ttyUSB1 +# +# Mandatory: no +# Default: +# SMSDevices= +{% if settings.get('smsdevices', defaults.get('smsdevices', False)) %} +SMSDevices={{ settings.get('smsdevices', defaults.smsdevices) }} +{% endif %} +{% endif -%} +####### For advanced users - TCP-related fine-tuning parameters ####### + +## Option: ListenBacklog +# The maximum number of pending connections in the queue. This parameter is passed to +# listen() function as argument 'backlog' (see "man listen"). +# +# Mandatory: no +# Range: 0 - INT_MAX (depends on system, too large values may be silently truncated to implementation-specified maximum) +# Default: SOMAXCONN (hard-coded constant, depends on system) +# ListenBacklog= +{% if settings.get('listenbacklog', defaults.get('listenbacklog', False)) %} +ListenBacklog={{ settings.get('listenbacklog', defaults.listenbacklog) }} +{% endif %} +{% if zabbix.version_repo|float >= 6.0 -%} + +####### High availability cluster parameters ####### + +## Option: HANodeName +# The high availability cluster node name. +# When empty, server is working in standalone mode; a node with empty name is registered with address for the frontend to connect to. +# +# Mandatory: no +# Default: +# HANodeName= +{% if settings.get('hanodename', defaults.get('hanodename', False)) %} +HANodeName={{ settings.get('hanodename', defaults.hanodename) }} +{% endif %} +## Option: NodeAddress +# IP or hostname with optional port to specify how frontend should connect to the server. +# Format:
[: