Skip to content

Commit 47ec303

Browse files
authored
Merge pull request #174 from xenadmin/patch-4
feat(proxy_conf): Reworked jinja Template for Zabbix Proxy 7.0 LTS
2 parents 01b29e2 + bcfdc14 commit 47ec303

File tree

1 file changed

+162
-20
lines changed

1 file changed

+162
-20
lines changed

zabbix/files/default/etc/zabbix/zabbix_proxy.conf.jinja

Lines changed: 162 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
{% endif -%}
88
# Managed by saltstack
99
# This is a configuration file for Zabbix proxy daemon
10-
# To get more information about Zabbix, visit http://www.zabbix.com
10+
# To get more information about Zabbix, visit https://www.zabbix.com
1111

1212
############ GENERAL PARAMETERS #################
1313

@@ -186,6 +186,10 @@
186186
{% if settings.get('socketdir', defaults.get('socketdir', False)) %}SocketDir={{ settings.get('socketdir', defaults.socketdir) }}{% endif %}
187187
{% endif %}
188188

189+
{% if zabbix.version_repo|float >= 7.0 -%}
190+
### NOTE: Support for Oracle DB is deprecated since Zabbix 7.0 and will be removed in future versions.
191+
{% endif %}
192+
189193
### Option: DBHost
190194
# Database host name.
191195
# If set to localhost, socket is used for MySQL.
@@ -287,6 +291,54 @@
287291
# ProxyOfflineBuffer=1
288292
{% if settings.get('proxyofflinebuffer', defaults.get('proxyofflinebuffer', False)) %}ProxyOfflineBuffer={{ settings.get('proxyofflinebuffer', defaults.proxyofflinebuffer) }}{% endif %}
289293

294+
{% if zabbix.version_repo|float >= 7.0 -%}
295+
### Option: ProxyBufferMode
296+
# Specifies history, discovery and auto registration data storage mechanism:
297+
# disk - data are stored in database and uploaded from database
298+
# memory - data are stored in memory and uploaded from memory.
299+
# If buffer runs out of memory the old data will be discarded.
300+
# On shutdown the buffer is discarded.
301+
# hybrid - the proxy buffer normally works like in memory mode until it runs out of memory or
302+
# the oldest record exceeds the configured age. If that happens the buffer is flushed
303+
# to database and it works like in disk mode until all data have been uploaded and
304+
# it starts working with memory again. On shutdown the memory buffer is flushed
305+
# to database.
306+
#
307+
# Mandatory: no
308+
# Values: disk, memory, hybrid
309+
# Default:
310+
# ProxyBufferMode=disk
311+
{% if settings.get('proxybuffermode', defaults.get('proxybuffermode', False)) %}ProxyBufferMode={{ settings.get('proxybuffermode', defaults.proxybuffermode) }}{% endif %}
312+
{% endif %}
313+
314+
{% if zabbix.version_repo|float >= 7.0 -%}
315+
### Option: ProxyMemoryBufferSize
316+
# Size of shared memory cache for collected history, discovery and auto registration data, in bytes.
317+
# If enabled (not zero) proxy will keep history discovery and auto registration data in memory unless
318+
# cache is full or stored records are older than defined ProxyMemoryBufferAge.
319+
# This parameter cannot be used together with ProxyLocalBuffer parameter.
320+
#
321+
# Mandatory: no
322+
# Range: 0,128K-2G
323+
# Default:
324+
# ProxyMemoryBufferSize=0
325+
{% if settings.get('proxymemorybuffersize', defaults.get('proxymemorybuffersize', False)) %}ProxyMemoryBufferSize={{ settings.get('proxymemorybuffersize', defaults.proxymemorybuffersize) }}{% endif %}
326+
{% endif %}
327+
328+
{% if zabbix.version_repo|float >= 7.0 -%}
329+
### Option: ProxyMemoryBufferAge
330+
# Maximum age of data in proxy memory buffer, in seconds.
331+
# When enabled (not zero) and records in proxy memory buffer are older, then it forces proxy buffer
332+
# to switch to database mode until all records are uploaded to server.
333+
# This parameter must be less or equal to ProxyOfflineBuffer parameter (note different units).
334+
#
335+
# Mandatory: no
336+
# Range: 0,600-864000
337+
# Default:
338+
# ProxyMemoryBufferAge=0
339+
{% if settings.get('proxymemorybufferage', defaults.get('proxymemorybufferage', False)) %}ProxyMemoryBufferAge={{ settings.get('proxymemorybufferage', defaults.proxymemorybufferage) }}{% endif %}
340+
{% endif %}
341+
290342
{% if zabbix.version_repo|float <= 6.2 -%}
291343
### Option: HeartbeatFrequency
292344
# Frequency of heartbeat messages in seconds.
@@ -351,6 +403,50 @@
351403
# StartPollers=5
352404
{% if settings.get('startpollers', defaults.get('startpollers', False)) %}StartPollers={{ settings.get('startpollers', defaults.startpollers) }}{% endif %}
353405

406+
{% if zabbix.version_repo|float >= 7.0 -%}
407+
### Option: StartAgentPollers
408+
# Number of pre-forked instances of asynchronous Zabbix agent pollers. Also see MaxConcurrentChecksPerPoller.
409+
#
410+
# Mandatory: no
411+
# Range: 0-1000
412+
# Default:
413+
# StartAgentPollers=1
414+
{% if settings.get('startagentpollers', defaults.get('startagentpollers', False)) %}StartAgentPollers={{ settings.get('startagentpollers', defaults.startagentpollers) }}{% endif %}
415+
{% endif %}
416+
417+
{% if zabbix.version_repo|float >= 7.0 -%}
418+
### Option: StartHTTPAgentPollers
419+
# Number of pre-forked instances of asynchronous HTTP agent pollers. Also see MaxConcurrentChecksPerPoller.
420+
#
421+
# Mandatory: no
422+
# Range: 0-1000
423+
# Default:
424+
# StartHTTPAgentPollers=1
425+
{% if settings.get('starthttpagentpollers', defaults.get('starthttpagentpollers', False)) %}StartHTTPAgentPollers={{ settings.get('starthttpagentpollers', defaults.starthttpagentpollers) }}{% endif %}
426+
{% endif %}
427+
428+
{% if zabbix.version_repo|float >= 7.0 -%}
429+
### Option: StartSNMPPollers
430+
# Number of pre-forked instances of asynchronous SNMP pollers. Also see MaxConcurrentChecksPerPoller.
431+
#
432+
# Mandatory: no
433+
# Range: 0-1000
434+
# Default:
435+
# StartSNMPPollers=1
436+
{% if settings.get('startsnmppollers', defaults.get('startsnmppollers', False)) %}StartSNMPPollers={{ settings.get('startsnmppollers', defaults.startsnmppollers) }}{% endif %}
437+
{% endif %}
438+
439+
{% if zabbix.version_repo|float >= 7.0 -%}
440+
### Option: MaxConcurrentChecksPerPoller
441+
# Maximum number of asynchronous checks that can be executed at once by each HTTP agent poller or agent poller.
442+
#
443+
# Mandatory: no
444+
# Range: 1-1000
445+
# Default:
446+
# MaxConcurrentChecksPerPoller=1000
447+
{% if settings.get('maxconcurrentcheckspollers', defaults.get('maxconcurrentcheckspollers', False)) %}MaxConcurrentChecksPerPoller={{ settings.get('maxconcurrentcheckspollers', defaults.maxconcurrentcheckspollers) }}{% endif %}
448+
{% endif %}
449+
354450
### Option: StartIPMIPollers
355451
# Number of pre-forked instances of IPMI pollers.
356452
# The IPMI manager process is automatically started when at least one IPMI poller is started.
@@ -363,12 +459,14 @@
363459

364460
{% if zabbix.version_repo|float >= 4.2 -%}
365461
### Option: StartPreprocessors
366-
# Number of pre-started instances of preprocessing workers.
462+
# Number of pre-started instances of preprocessing worker threads should be set to no less than
463+
# the available CPU core count. More workers should be set if preprocessing is not CPU-bound and has
464+
# lots of network requests.
367465
#
368466
# Mandatory: no
369467
# Range: 1-1000
370468
# Default:
371-
# StartPreprocessors=3
469+
# StartPreprocessors=16
372470
{% if settings.get('startpreprocessors', defaults.get('startpreprocessors', False)) %}StartPreprocessors={{ settings.get('startpreprocessors', defaults.startpreprocessors) }}{% endif %}
373471
{% endif %}
374472

@@ -383,7 +481,7 @@
383481
# StartPollersUnreachable=1
384482
{% if settings.get('startpollersunreachable', defaults.get('startpollersunreachable', False)) %}StartPollersUnreachable={{ settings.get('startpollersunreachable', defaults.startpollersunreachable) }}{% endif %}
385483

386-
{% if zabbix.version_repo|float >= 6.0 -%}
484+
{% if zabbix.version_repo|float <= 6.0 -%}
387485
### Option: StartHistoryPollers
388486
# Number of pre-forked instances of history pollers.
389487
# Only required for internal checks.
@@ -416,12 +514,12 @@
416514
{% if settings.get('startpingers', defaults.get('startpingers', False)) %}StartPingers={{ settings.get('startpingers', defaults.startpingers) }}{% endif %}
417515

418516
### Option: StartDiscoverers
419-
# Number of pre-forked instances of discoverers.
517+
# Number of pre-started instances of discovery workers.
420518
#
421519
# Mandatory: no
422-
# Range: 0-250
520+
# Range: 0-1000
423521
# Default:
424-
# StartDiscoverers=1
522+
# StartDiscoverers=5
425523
{% if settings.get('startdiscoverers', defaults.get('startdiscoverers', False)) %}StartDiscoverers={{ settings.get('startdiscoverers', defaults.startdiscoverers) }}{% endif %}
426524

427525
### Option: StartHTTPPollers
@@ -440,8 +538,7 @@
440538
# Mandatory: no
441539
# Default:
442540
# JavaGateway=
443-
{% if settings.get('javagateway', defaults.get('javagateway', False)) %}
444-
JavaGateway={{ settings.get('javagateway', defaults.javagateway) }}
541+
{% if settings.get('javagateway', defaults.get('javagateway', False)) %}JavaGateway={{ settings.get('javagateway', defaults.javagateway) }}{% endif %}
445542

446543
### Option: JavaGatewayPort
447544
# Port that Zabbix Java gateway listens on.
@@ -450,7 +547,7 @@ JavaGateway={{ settings.get('javagateway', defaults.javagateway) }}
450547
# Range: 1024-32767
451548
# Default:
452549
# JavaGatewayPort=10052
453-
JavaGatewayPort={{ settings.get('javagatewayport', defaults.javagatewayport) }}
550+
{% if settings.get('javagatewayport', defaults.get('javagatewayport', False)) %}JavaGatewayPort={{ settings.get('javagatewayport', defaults.javagatewayport) }}{% endif %}
454551

455552
### Option: StartJavaPollers
456553
# Number of pre-forked instances of Java pollers.
@@ -459,8 +556,7 @@ JavaGatewayPort={{ settings.get('javagatewayport', defaults.javagatewayport) }}
459556
# Range: 0-1000
460557
# Default:
461558
# StartJavaPollers=0
462-
StartJavaPollers={{ settings.get('startjavapollers', defaults.startjavapollers) }}
463-
{% endif %}
559+
{% if settings.get('startjavapollers', defaults.get('startjavapollers', False)) %}StartJavaPollers={{ settings.get('startjavapollers', defaults.startjavapollers) }}{% endif %}
464560

465561
### Option: StartVMwareCollectors
466562
# Number of pre-forked vmware collector instances.
@@ -617,7 +713,7 @@ StartJavaPollers={{ settings.get('startjavapollers', defaults.startjavapollers)
617713
{% endif %}
618714

619715
### Option: Timeout
620-
# Specifies how long we wait for agent, SNMP device or external check (in seconds).
716+
# Specifies how long to wait (in seconds) for establishing connection and exchanging data with Zabbix server, agent, web service, and for SNMP checks (except SNMP `walk[OID]` and `get[OID]` items) and `icmpping[*]` item.
621717
#
622718
# Mandatory: no
623719
# Range: 1-30
@@ -626,7 +722,9 @@ StartJavaPollers={{ settings.get('startjavapollers', defaults.startjavapollers)
626722
{% if settings.get('timeout', defaults.get('timeout', False)) %}Timeout={{ settings.get('timeout', defaults.timeout) }}{% endif %}
627723

628724
### Option: TrapperTimeout
629-
# Specifies how many seconds trapper may spend processing new data.
725+
# Specifies timeout in seconds for:
726+
# Retrieval of configuration data from Zabbix server
727+
# Global script / remote command execution
630728
#
631729
# Mandatory: no
632730
# Range: 1-300
@@ -768,7 +866,7 @@ Include={{ include }}
768866
{% if zabbix.version_repo|float >= 2.4 -%}
769867
### Option: SSLCertLocation
770868
# Location of SSL client certificates.
771-
# This parameter is used only in web monitoring.
869+
# This parameter is used in web monitoring and for communication with Vault.
772870
# Default depends on compilation options.
773871
# To see the default path run command "zabbix_proxy --help".
774872
#
@@ -779,7 +877,7 @@ Include={{ include }}
779877

780878
### Option: SSLKeyLocation
781879
# Location of private keys for SSL client certificates.
782-
# This parameter is used only in web monitoring.
880+
# This parameter is used in web monitoring and for communication with Vault.
783881
# Default depends on compilation options.
784882
# To see the default path run command "zabbix_proxy --help".
785883
#
@@ -1071,6 +1169,7 @@ LoadModule={{ loadmodule }}
10711169
# Default:
10721170
# DBTLSCipher13=
10731171
{% if settings.get('dbtlscipher13', defaults.get('dbtlscipher13', False)) %}DBTLSCipher13={{ settings.get('dbtlscipher13', defaults.dbtlscipher13) }}{% endif %}
1172+
{% endif %}
10741173

10751174
{% if zabbix.version_repo|float >= 6.2 -%}
10761175
### Option: Vault
@@ -1095,23 +1194,44 @@ LoadModule={{ loadmodule }}
10951194
# Default:
10961195
# VaultToken=
10971196
{% if settings.get('vaulttoken', defaults.get('vaulttoken', False)) %}VaultToken={{ settings.get('vaulttoken', defaults.vaulttoken) }}{% endif %}
1197+
{% endif %}
10981198

1199+
{% if zabbix.version_repo|float >= 6.0 -%}
10991200
### Option: VaultURL
11001201
# Vault server HTTP[S] URL. System-wide CA certificates directory will be used if SSLCALocation is not specified.
11011202
#
11021203
# Mandatory: no
11031204
# Default:
11041205
# VaultURL=https://127.0.0.1:8200
11051206
{% if settings.get('vaulturl', defaults.get('vaulturl', False)) %}VaultURL={{ settings.get('vaulturl', defaults.vaulturl) }}{% endif %}
1207+
{% endif %}
11061208

1209+
{% if zabbix.version_repo|float >= 7.0 -%}
1210+
### Option: VaultPrefix
1211+
# Custom prefix for Vault path or query depending on the Vault.
1212+
# Most suitable defaults will be used if not specified.
1213+
# Note that 'data' is automatically appended after mountpoint for HashiCorp if VaultPrefix is not specified.
1214+
# Example prefix for HashiCorp:
1215+
# /v1/secret/data/zabbix/
1216+
# Example prefix for CyberArk:
1217+
# /AIMWebService/api/Accounts?
1218+
# Mandatory: no
1219+
# Default:
1220+
# VaultPrefix=
1221+
{% if settings.get('vaultprefix', defaults.get('vaultprefix', False)) %}VaultPrefix={{ settings.get('vaultprefix', defaults.vaultprefix) }}{% endif %}
1222+
{% endif %}
1223+
1224+
{% if zabbix.version_repo|float >= 6.0 -%}
11071225
### Option: VaultDBPath
11081226
# Vault path or query depending on the Vault from where credentials for database will be retrieved by keys.
11091227
# Keys used for HashiCorp are 'password' and 'username'.
1110-
# Example path:
1111-
# secret/zabbix/database
1228+
# Example path with VaultPrefix=/v1/secret/data/zabbix/:
1229+
# database
1230+
# Example path without VaultPrefix:
1231+
# secret/zabbix/database
11121232
# Keys used for CyberArk are 'Content' and 'UserName'.
1113-
# Example query:
1114-
# AppID=zabbix_server&Query=Safe=passwordSafe;Object=zabbix_proxy_database
1233+
# Example query:
1234+
# AppID=zabbix_server&Query=Safe=passwordSafe;Object=zabbix_proxy_database
11151235
# This option can only be used if DBUser and DBPassword are not specified.
11161236
#
11171237
# Mandatory: no
@@ -1130,7 +1250,9 @@ LoadModule={{ loadmodule }}
11301250
# Default:
11311251
# VaultTLSCertFile=
11321252
{% if settings.get('vaulttlscertfile', defaults.get('vaulttlscertfile', False)) %}VaultTLSCertFile={{ settings.get('vaulttlscertfile', defaults.vaulttlscertfile) }}{% endif %}
1253+
{% endif %}
11331254

1255+
{% if zabbix.version_repo|float >= 6.2 -%}
11341256
### Option: VaultTLSKeyFile
11351257
# Name of the SSL private key file used for client authentication. The private key file must be in PEM1 format.
11361258
# The directory containing this file is specified by configuration parameter SSLKeyLocation.
@@ -1152,6 +1274,26 @@ LoadModule={{ loadmodule }}
11521274
# Default: SOMAXCONN (hard-coded constant, depends on system)
11531275
# ListenBacklog=
11541276
{% if settings.get('listenbacklog', defaults.get('listenbacklog', False)) %}ListenBacklog={{ settings.get('listenbacklog', defaults.listenbacklog) }}{% endif %}
1277+
1278+
{% if zabbix.version_repo|float >= 7.0 -%}
1279+
####### Browser monitoring #######
1280+
1281+
### Option: WebDriverURL
1282+
# WebDriver interface HTTP[S] URL. For example http://localhost:4444 used with Selenium WebDriver standalone server.
1283+
#
1284+
# Mandatory: no
1285+
# Default:
1286+
# WebDriverURL=
1287+
{% if settings.get('webdriverurl', defaults.get('webdriverurl', False)) %}WebDriverURL={{ settings.get('webdriverurl', defaults.webdriverurl) }}{% endif %}
1288+
1289+
### Option: StartBrowserPollers
1290+
# Number of pre-forked instances of browser item pollers.
1291+
#
1292+
# Mandatory: no
1293+
# Range: 0-1000
1294+
# Default:
1295+
# StartBrowserPollers=1
1296+
{% if settings.get('startbrowserpollers', defaults.get('startbrowserpollers', False)) %}StartBrowserPollers={{ settings.get('startbrowserpollers', defaults.startbrowserpollers) }}{% endif %}
11551297
{% endif %}
11561298

11571299
{{ settings.get('extra_conf','') }}

0 commit comments

Comments
 (0)