zabbix_export: version: '7.0' template_groups: - uuid: a571c0d144b14fd4a87a9d9b2aa9fcd6 name: Templates/Applications templates: - uuid: 812073bf8df143bcae2a84b32c3965e5 template: 'HAProxy by Zabbix agent' name: 'HAProxy by Zabbix agent' description: | Get metrics from status page using Zabbix agent https://www.haproxy.com/blog/exploring-the-haproxy-stats-page/. Example configuration of HAProxy: frontend stats bind *:8404 stats enable stats uri /stats stats refresh 10s You can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback/393527-discussion-thread-for-official-zabbix-template-haproxy Generated by official Zabbix template tool "Templator" 2.0.0 vendor: name: Zabbix version: 7.0-0 groups: - name: Templates/Applications items: - uuid: ca85e2fda99b42a4ad2b373211a6b07d name: 'HAProxy: Get nodes' type: DEPENDENT key: haproxy.get.nodes delay: '0' history: '0' trends: '0' value_type: TEXT description: 'Array for LLD rules.' preprocessing: - type: JAVASCRIPT parameters: - 'return JSON.stringify(JSON.parse(value),[''mode'',''pxname'',''svname''])' - type: DISCARD_UNCHANGED_HEARTBEAT parameters: - 1h master_item: key: 'web.page.get["{$HAPROXY.STATS.SCHEME}://{HOST.CONN}:{$HAPROXY.STATS.PORT}/{$HAPROXY.STATS.PATH};csv"]' tags: - tag: component value: raw - uuid: 29381f1e0bdc4628a82ef1b7724f2e6f name: 'HAProxy: Uptime' type: DEPENDENT key: haproxy.uptime delay: '0' history: 7d value_type: FLOAT units: s preprocessing: - type: JAVASCRIPT parameters: - | try { var t = value.match(/(\d+)d (\d+)h(\d+)m(\d+)s/); return t[1] * 86400 + t[2] * 3600 + t[3] * 60 + t[4] * 1; } catch (error) { throw "HAProxy uptime is not found : " + error; } master_item: key: 'web.page.get["{$HAPROXY.STATS.SCHEME}://{HOST.CONN}:{$HAPROXY.STATS.PORT}/{$HAPROXY.STATS.PATH}"]' tags: - tag: component value: application triggers: - uuid: e76d5b82b0ad421ea62cd1dc069e036b expression: 'last(/HAProxy by Zabbix agent/haproxy.uptime)<10m' name: 'HAProxy: has been restarted' event_name: 'HAProxy: has been restarted (uptime < 10m)' priority: INFO description: 'Uptime is less than 10 minutes.' manual_close: 'YES' tags: - tag: scope value: notice - uuid: e930e70fb1b44d9cbe673f35133c6e77 name: 'HAProxy: Version' type: DEPENDENT key: haproxy.version delay: '0' trends: '0' value_type: CHAR preprocessing: - type: REGEX parameters: - 'HAProxy version ([^,]*),' - \1 error_handler: CUSTOM_ERROR error_handler_params: 'HAProxy version is not found' - type: DISCARD_UNCHANGED_HEARTBEAT parameters: - 1d master_item: key: 'web.page.get["{$HAPROXY.STATS.SCHEME}://{HOST.CONN}:{$HAPROXY.STATS.PORT}/{$HAPROXY.STATS.PATH}"]' tags: - tag: component value: application triggers: - uuid: db6ef8f306f64f0f81a590e4b45b370c expression: 'last(/HAProxy by Zabbix agent/haproxy.version,#1)<>last(/HAProxy by Zabbix agent/haproxy.version,#2) and length(last(/HAProxy by Zabbix agent/haproxy.version))>0' name: 'HAProxy: Version has changed' event_name: 'HAProxy: Version has changed (new version: {ITEM.VALUE})' priority: INFO description: 'HAProxy version has changed. Acknowledge to close the problem manually.' manual_close: 'YES' tags: - tag: scope value: notice - uuid: c224cfe9b7474f9e80618dde78cfcb11 name: 'HAProxy: Service response time' key: 'net.tcp.service.perf["{$HAPROXY.STATS.SCHEME}","{HOST.CONN}","{$HAPROXY.STATS.PORT}"]' history: 7d value_type: FLOAT units: s tags: - tag: component value: health - tag: component value: network triggers: - uuid: 4e881047bbd54c5984922d1189567ece expression: 'min(/HAProxy by Zabbix agent/net.tcp.service.perf["{$HAPROXY.STATS.SCHEME}","{HOST.CONN}","{$HAPROXY.STATS.PORT}"],5m)>{$HAPROXY.RESPONSE_TIME.MAX.WARN}' name: 'HAProxy: Service response time is too high' event_name: 'HAProxy: Service response time is too high (over {$HAPROXY.RESPONSE_TIME.MAX.WARN} for 5m)' priority: WARNING manual_close: 'YES' dependencies: - name: 'HAProxy: Service is down' expression: 'last(/HAProxy by Zabbix agent/net.tcp.service["{$HAPROXY.STATS.SCHEME}","{HOST.CONN}","{$HAPROXY.STATS.PORT}"])=0' tags: - tag: scope value: performance - uuid: 97e45c508f5a4df78fc783382088e233 name: 'HAProxy: Service status' key: 'net.tcp.service["{$HAPROXY.STATS.SCHEME}","{HOST.CONN}","{$HAPROXY.STATS.PORT}"]' history: 7d valuemap: name: 'Service state' preprocessing: - type: DISCARD_UNCHANGED_HEARTBEAT parameters: - 10m tags: - tag: component value: health - tag: component value: network triggers: - uuid: 8d5c7940e5924b469b3e7804043ea7b6 expression: 'last(/HAProxy by Zabbix agent/net.tcp.service["{$HAPROXY.STATS.SCHEME}","{HOST.CONN}","{$HAPROXY.STATS.PORT}"])=0' name: 'HAProxy: Service is down' priority: AVERAGE manual_close: 'YES' tags: - tag: scope value: availability - uuid: e70009bd4e3041a3952738673ebb5c29 name: 'HAProxy: Get stats page' key: 'web.page.get["{$HAPROXY.STATS.SCHEME}://{HOST.CONN}:{$HAPROXY.STATS.PORT}/{$HAPROXY.STATS.PATH}"]' history: '0' trends: '0' value_type: TEXT description: 'HAProxy Statistics Report HTML' tags: - tag: component value: raw - uuid: aabdb5706b6744379561f269e0709141 name: 'HAProxy: Get stats' key: 'web.page.get["{$HAPROXY.STATS.SCHEME}://{HOST.CONN}:{$HAPROXY.STATS.PORT}/{$HAPROXY.STATS.PATH};csv"]' history: '0' trends: '0' value_type: TEXT description: 'HAProxy Statistics Report in CSV format' preprocessing: - type: REGEX parameters: - '# ([\s\S]*)' - \1 - type: CSV_TO_JSON parameters: - '' - '' - '1' tags: - tag: component value: raw discovery_rules: - uuid: 9899f0a11ece4b9194ca44a8fc34b066 name: 'Backend discovery' type: DEPENDENT key: haproxy.backend.discovery delay: '0' filter: evaltype: AND conditions: - macro: '{#SVNAME}' value: BACKEND formulaid: B - macro: '{#MODE}' value: http|tcp formulaid: A description: 'Discovery backends' item_prototypes: - uuid: 1ee660a3cfbd4e76a20a32524cdb707f name: 'HAProxy Backend {#PXNAME}: Number of active servers' type: DEPENDENT key: 'haproxy.backend.act[{#PXNAME},{#SVNAME}]' delay: '0' history: 7d description: 'Number of active servers.' preprocessing: - type: JSONPATH parameters: - $.act - type: DISCARD_UNCHANGED_HEARTBEAT parameters: - 1h master_item: key: 'haproxy.backend.raw[{#PXNAME},{#SVNAME}]' tags: - tag: backend value: '{#PXNAME}' - tag: component value: servers - uuid: 6c4b8a679428455aadbd307162635e6e name: 'HAProxy Backend {#PXNAME}: Number of backup servers' type: DEPENDENT key: 'haproxy.backend.bck[{#PXNAME},{#SVNAME}]' delay: '0' history: 7d description: 'Number of backup servers.' preprocessing: - type: JSONPATH parameters: - $.bck - type: DISCARD_UNCHANGED_HEARTBEAT parameters: - 1h master_item: key: 'haproxy.backend.raw[{#PXNAME},{#SVNAME}]' tags: - tag: backend value: '{#PXNAME}' - tag: component value: servers - uuid: 7d5a7b04e836417b96f2301d91fabab4 name: 'HAProxy Backend {#PXNAME}: Incoming traffic' type: DEPENDENT key: 'haproxy.backend.bin.rate[{#PXNAME},{#SVNAME}]' delay: '0' history: 7d value_type: FLOAT units: bps description: 'Number of bits received by the backend' preprocessing: - type: JSONPATH parameters: - $.bin - type: MULTIPLIER parameters: - '8' - type: CHANGE_PER_SECOND parameters: - '' master_item: key: 'haproxy.backend.raw[{#PXNAME},{#SVNAME}]' tags: - tag: backend value: '{#PXNAME}' - tag: component value: network - uuid: fc353e7b680648698ecf949f784ca0ce name: 'HAProxy Backend {#PXNAME}: Outgoing traffic' type: DEPENDENT key: 'haproxy.backend.bout.rate[{#PXNAME},{#SVNAME}]' delay: '0' history: 7d value_type: FLOAT units: bps description: 'Number of bits sent by the backend' preprocessing: - type: JSONPATH parameters: - $.bout - type: MULTIPLIER parameters: - '8' - type: CHANGE_PER_SECOND parameters: - '' master_item: key: 'haproxy.backend.raw[{#PXNAME},{#SVNAME}]' tags: - tag: backend value: '{#PXNAME}' - tag: component value: network - uuid: 3df452e68f144fc3a8e5ff7644ace606 name: 'HAProxy Backend {#PXNAME}: Responses denied per second' type: DEPENDENT key: 'haproxy.backend.dresp.rate[{#PXNAME},{#SVNAME}]' delay: '0' history: 7d value_type: FLOAT description: 'Responses denied due to security concerns (ACL-restricted).' preprocessing: - type: JSONPATH parameters: - $.dresp - type: CHANGE_PER_SECOND parameters: - '' master_item: key: 'haproxy.backend.raw[{#PXNAME},{#SVNAME}]' tags: - tag: backend value: '{#PXNAME}' - tag: component value: responses - uuid: 5e315f24828d45b285e92971d5456234 name: 'HAProxy Backend {#PXNAME}: Errors connection per second' type: DEPENDENT key: 'haproxy.backend.econ.rate[{#PXNAME},{#SVNAME}]' delay: '0' history: 7d value_type: FLOAT description: 'Number of requests that encountered an error attempting to connect to a backend server.' preprocessing: - type: JSONPATH parameters: - $.econ - type: CHANGE_PER_SECOND parameters: - '' master_item: key: 'haproxy.backend.raw[{#PXNAME},{#SVNAME}]' tags: - tag: backend value: '{#PXNAME}' - tag: component value: connections - uuid: f1ca728c571e4cf4ac9ebc36e96df27e name: 'HAProxy Backend {#PXNAME}: Response errors per second' type: DEPENDENT key: 'haproxy.backend.eresp.rate[{#PXNAME},{#SVNAME}]' delay: '0' history: 7d value_type: FLOAT description: 'Number of requests whose responses yielded an error' preprocessing: - type: JSONPATH parameters: - $.eresp - type: CHANGE_PER_SECOND parameters: - '' master_item: key: 'haproxy.backend.raw[{#PXNAME},{#SVNAME}]' tags: - tag: backend value: '{#PXNAME}' - tag: component value: responses trigger_prototypes: - uuid: 892d6f67eeff4520aadbf4f3841f8174 expression: 'min(/HAProxy by Zabbix agent/haproxy.backend.eresp.rate[{#PXNAME},{#SVNAME}],5m)>{$HAPROXY.BACK_ERESP.MAX.WARN}' name: 'HAProxy backend {#PXNAME}: Number of responses with error is high' event_name: 'HAProxy backend {#PXNAME}: Number of responses with error is more than {$HAPROXY.BACK_ERESP.MAX.WARN} for 5m' priority: WARNING description: 'Number of requests on backend, whose responses yielded an error, is more than {$HAPROXY.BACK_ERESP.MAX.WARN}.' tags: - tag: scope value: notice - uuid: a32d07355a9c4e9f9f63bac4ef2ef342 name: 'HAProxy Backend {#PXNAME}: Number of responses with codes 1xx per second' type: DEPENDENT key: 'haproxy.backend.hrsp_1xx.rate[{#PXNAME},{#SVNAME}]' delay: '0' history: 7d value_type: FLOAT description: 'Number of informational HTTP responses per second.' preprocessing: - type: JSONPATH parameters: - $.hrsp_1xx - type: CHANGE_PER_SECOND parameters: - '' master_item: key: 'haproxy.backend.raw[{#PXNAME},{#SVNAME}]' tags: - tag: backend value: '{#PXNAME}' - tag: component value: responses - uuid: 2b02a86c01a245859ad4305d25569ab0 name: 'HAProxy Backend {#PXNAME}: Number of responses with codes 2xx per second' type: DEPENDENT key: 'haproxy.backend.hrsp_2xx.rate[{#PXNAME},{#SVNAME}]' delay: '0' history: 7d value_type: FLOAT description: 'Number of successful HTTP responses per second.' preprocessing: - type: JSONPATH parameters: - $.hrsp_2xx - type: CHANGE_PER_SECOND parameters: - '' master_item: key: 'haproxy.backend.raw[{#PXNAME},{#SVNAME}]' tags: - tag: backend value: '{#PXNAME}' - tag: component value: responses - uuid: 24de211953f8480c9e1118abde731344 name: 'HAProxy Backend {#PXNAME}: Number of responses with codes 3xx per second' type: DEPENDENT key: 'haproxy.backend.hrsp_3xx.rate[{#PXNAME},{#SVNAME}]' delay: '0' history: 7d value_type: FLOAT description: 'Number of HTTP redirections per second.' preprocessing: - type: JSONPATH parameters: - $.hrsp_3xx - type: CHANGE_PER_SECOND parameters: - '' master_item: key: 'haproxy.backend.raw[{#PXNAME},{#SVNAME}]' tags: - tag: backend value: '{#PXNAME}' - tag: component value: responses - uuid: 221ef133420f4140a17146eb976744eb name: 'HAProxy Backend {#PXNAME}: Number of responses with codes 4xx per second' type: DEPENDENT key: 'haproxy.backend.hrsp_4xx.rate[{#PXNAME},{#SVNAME}]' delay: '0' history: 7d value_type: FLOAT description: 'Number of HTTP client errors per second.' preprocessing: - type: JSONPATH parameters: - $.hrsp_4xx - type: CHANGE_PER_SECOND parameters: - '' master_item: key: 'haproxy.backend.raw[{#PXNAME},{#SVNAME}]' tags: - tag: backend value: '{#PXNAME}' - tag: component value: responses - uuid: 3a3f40a93c184673bdbd220add5ef458 name: 'HAProxy Backend {#PXNAME}: Number of responses with codes 5xx per second' type: DEPENDENT key: 'haproxy.backend.hrsp_5xx.rate[{#PXNAME},{#SVNAME}]' delay: '0' history: 7d value_type: FLOAT description: 'Number of HTTP server errors per second.' preprocessing: - type: JSONPATH parameters: - $.hrsp_5xx - type: CHANGE_PER_SECOND parameters: - '' master_item: key: 'haproxy.backend.raw[{#PXNAME},{#SVNAME}]' tags: - tag: backend value: '{#PXNAME}' - tag: component value: responses - uuid: 389e5f77b422419386c2fa21db612697 name: 'HAProxy Backend {#PXNAME}: Unassigned requests' type: DEPENDENT key: 'haproxy.backend.qcur[{#PXNAME},{#SVNAME}]' delay: '0' history: 7d description: 'Current number of requests unassigned in queue.' preprocessing: - type: JSONPATH parameters: - $.qcur master_item: key: 'haproxy.backend.raw[{#PXNAME},{#SVNAME}]' tags: - tag: backend value: '{#PXNAME}' - tag: component value: requests trigger_prototypes: - uuid: 89ccc4b4a55349c7869c2202881dcb2a expression: 'min(/HAProxy by Zabbix agent/haproxy.backend.qcur[{#PXNAME},{#SVNAME}],5m)>{$HAPROXY.BACK_QCUR.MAX.WARN}' name: 'HAProxy backend {#PXNAME}: Current number of requests unassigned in queue is high' event_name: 'HAProxy backend {#PXNAME}: Current number of requests unassigned in queue is more than {$HAPROXY.BACK_QCUR.MAX.WARN} for 5m' priority: WARNING description: 'Current number of requests on backend unassigned in queue is more than {$HAPROXY.BACK_QCUR.MAX.WARN}.' tags: - tag: scope value: notice - uuid: a58ff94387824acb81b27cab5cfc680a name: 'HAProxy Backend {#PXNAME}: Time in queue' type: DEPENDENT key: 'haproxy.backend.qtime[{#PXNAME},{#SVNAME}]' delay: '0' history: 7d value_type: FLOAT units: s description: 'Average time spent in queue (in ms) for the last 1,024 requests' preprocessing: - type: JSONPATH parameters: - $.qtime - type: MULTIPLIER parameters: - '0.001' master_item: key: 'haproxy.backend.raw[{#PXNAME},{#SVNAME}]' tags: - tag: backend value: '{#PXNAME}' - tag: component value: requests trigger_prototypes: - uuid: 1aff4be13f0f4aee8a512d4b962215a6 expression: 'min(/HAProxy by Zabbix agent/haproxy.backend.qtime[{#PXNAME},{#SVNAME}],5m)>{$HAPROXY.BACK_QTIME.MAX.WARN}' name: 'HAProxy backend {#PXNAME}: Average time spent in queue is high' event_name: 'HAProxy backend {#PXNAME}: Average time spent in queue is more than {$HAPROXY.BACK_QTIME.MAX.WARN} for 5m' priority: WARNING description: 'Average time spent in queue (in ms) for the last 1,024 requests is more than {$HAPROXY.BACK_QTIME.MAX.WARN}.' tags: - tag: scope value: performance - uuid: 109438f053a24866a8c001c2260f1c37 name: 'HAProxy Backend {#PXNAME}: Raw data' type: DEPENDENT key: 'haproxy.backend.raw[{#PXNAME},{#SVNAME}]' delay: '0' history: '0' trends: '0' value_type: TEXT description: 'The raw data of the Backend with the name `{#PXNAME}`' preprocessing: - type: JSONPATH parameters: - '$.[?(@.pxname == ''{#PXNAME}'' && @.svname == ''{#SVNAME}'')].first()' master_item: key: 'web.page.get["{$HAPROXY.STATS.SCHEME}://{HOST.CONN}:{$HAPROXY.STATS.PORT}/{$HAPROXY.STATS.PATH};csv"]' tags: - tag: backend value: '{#PXNAME}' - tag: component value: raw - uuid: 7e801fd81fed448db7dd6c6eeaa398d5 name: 'HAProxy Backend {#PXNAME}: Responses time' type: DEPENDENT key: 'haproxy.backend.rtime[{#PXNAME},{#SVNAME}]' delay: '0' history: 7d value_type: FLOAT units: s description: 'Average backend response time (in ms) for the last 1,024 requests' preprocessing: - type: JSONPATH parameters: - $.rtime - type: MULTIPLIER parameters: - '0.001' master_item: key: 'haproxy.backend.raw[{#PXNAME},{#SVNAME}]' tags: - tag: backend value: '{#PXNAME}' - tag: component value: responses trigger_prototypes: - uuid: e0dd27ac272a4fbf9495c09f3291db8f expression: 'min(/HAProxy by Zabbix agent/haproxy.backend.rtime[{#PXNAME},{#SVNAME}],5m)>{$HAPROXY.BACK_RTIME.MAX.WARN}' name: 'HAProxy backend {#PXNAME}: Average response time is high' event_name: 'HAProxy backend {#PXNAME}: Average response time is more than {$HAPROXY.BACK_RTIME.MAX.WARN} for 5m' priority: WARNING description: 'Average backend response time (in ms) for the last 1,024 requests is more than {$HAPROXY.BACK_RTIME.MAX.WARN}.' tags: - tag: scope value: performance - uuid: 5826a63314314ef297c81749561574d2 name: 'HAProxy Backend {#PXNAME}: Status' type: DEPENDENT key: 'haproxy.backend.status[{#PXNAME},{#SVNAME}]' delay: '0' history: 7d trends: '0' value_type: CHAR description: | Possible values: UP - The server is reporting as healthy. DOWN - The server is reporting as unhealthy and unable to receive requests. NOLB - You've added http-check disable-on-404 to the backend and the health checked URL has returned an HTTP 404 response. MAINT - The server has been disabled or put into maintenance mode. DRAIN - The server has been put into drain mode. no check - Health checks are not enabled for this server. preprocessing: - type: JSONPATH parameters: - $.status - type: DISCARD_UNCHANGED_HEARTBEAT parameters: - 10m master_item: key: 'haproxy.backend.raw[{#PXNAME},{#SVNAME}]' tags: - tag: backend value: '{#PXNAME}' - tag: component value: health trigger_prototypes: - uuid: 51452fd94c12448fab0703e867f69fd2 expression: 'count(/HAProxy by Zabbix agent/haproxy.backend.status[{#PXNAME},{#SVNAME}],#5,"eq","DOWN")=5' name: 'HAProxy backend {#PXNAME}: Server is DOWN' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: AVERAGE description: 'Backend is not available.' tags: - tag: scope value: availability - uuid: d11c9b4c7027475e897456e712675cc9 name: 'HAProxy Backend {#PXNAME}: Sessions per second' type: DEPENDENT key: 'haproxy.backend.stot.rate[{#PXNAME},{#SVNAME}]' delay: '0' history: 7d value_type: FLOAT description: 'Cumulative number of sessions (end-to-end connections) per second.' preprocessing: - type: JSONPATH parameters: - $.stot - type: CHANGE_PER_SECOND parameters: - '' master_item: key: 'haproxy.backend.raw[{#PXNAME},{#SVNAME}]' tags: - tag: backend value: '{#PXNAME}' - tag: component value: sessions - uuid: 21cc9c7a1b7042f0bb14eeab91464ae8 name: 'HAProxy Backend {#PXNAME}: Weight' type: DEPENDENT key: 'haproxy.backend.weight[{#PXNAME},{#SVNAME}]' delay: '0' history: 7d description: 'Total effective weight.' preprocessing: - type: JSONPATH parameters: - $.weight - type: DISCARD_UNCHANGED_HEARTBEAT parameters: - 1h master_item: key: 'haproxy.backend.raw[{#PXNAME},{#SVNAME}]' tags: - tag: backend value: '{#PXNAME}' - tag: component value: balancer - uuid: bebad9eb0731474db798eacde7771238 name: 'HAProxy Backend {#PXNAME}: Redispatched requests per second' type: DEPENDENT key: 'haproxy.backend.wredis.rate[{#PXNAME},{#SVNAME}]' delay: '0' history: 7d value_type: FLOAT description: 'Number of times a request was redispatched to a different backend.' preprocessing: - type: JSONPATH parameters: - $.wredis - type: CHANGE_PER_SECOND parameters: - '' master_item: key: 'haproxy.backend.raw[{#PXNAME},{#SVNAME}]' tags: - tag: backend value: '{#PXNAME}' - tag: component value: requests - uuid: 0f09a6b800d747f4beed96a25b5cfa49 name: 'HAProxy Backend {#PXNAME}: Retried connections per second' type: DEPENDENT key: 'haproxy.backend.wretr.rate[{#PXNAME},{#SVNAME}]' delay: '0' history: 7d value_type: FLOAT description: 'Number of times a connection was retried.' preprocessing: - type: JSONPATH parameters: - $.wretr - type: CHANGE_PER_SECOND parameters: - '' master_item: key: 'haproxy.backend.raw[{#PXNAME},{#SVNAME}]' tags: - tag: backend value: '{#PXNAME}' - tag: component value: connections graph_prototypes: - uuid: 70bf1a17304e495dae74b86b93ac9773 name: 'HAProxy: Backend {#PXNAME} In/Out traffic' graph_items: - drawtype: GRADIENT_LINE color: 199C0D item: host: 'HAProxy by Zabbix agent' key: 'haproxy.backend.bin.rate[{#PXNAME},{#SVNAME}]' - sortorder: '1' drawtype: GRADIENT_LINE color: F63100 item: host: 'HAProxy by Zabbix agent' key: 'haproxy.backend.bout.rate[{#PXNAME},{#SVNAME}]' - uuid: a8518997e8ce40339f5d2384a011f3ba name: 'HAProxy: Backend {#PXNAME} Redispatched requests and retried connections per second' graph_items: - color: 199C0D item: host: 'HAProxy by Zabbix agent' key: 'haproxy.backend.wredis.rate[{#PXNAME},{#SVNAME}]' - sortorder: '1' color: F63100 item: host: 'HAProxy by Zabbix agent' key: 'haproxy.backend.wretr.rate[{#PXNAME},{#SVNAME}]' - uuid: 50d592985cd74d0a95904971dc40767d name: 'HAProxy: Backend {#PXNAME} Responses by HTTP code' type: STACKED graph_items: - color: 199C0D item: host: 'HAProxy by Zabbix agent' key: 'haproxy.backend.hrsp_1xx.rate[{#PXNAME},{#SVNAME}]' - sortorder: '1' color: F63100 item: host: 'HAProxy by Zabbix agent' key: 'haproxy.backend.hrsp_2xx.rate[{#PXNAME},{#SVNAME}]' - sortorder: '2' color: 00611C item: host: 'HAProxy by Zabbix agent' key: 'haproxy.backend.hrsp_3xx.rate[{#PXNAME},{#SVNAME}]' - sortorder: '3' color: F7941D item: host: 'HAProxy by Zabbix agent' key: 'haproxy.backend.hrsp_4xx.rate[{#PXNAME},{#SVNAME}]' - sortorder: '4' color: FC6EA3 item: host: 'HAProxy by Zabbix agent' key: 'haproxy.backend.hrsp_5xx.rate[{#PXNAME},{#SVNAME}]' master_item: key: haproxy.get.nodes lld_macro_paths: - lld_macro: '{#MODE}' path: $.mode - lld_macro: '{#PXNAME}' path: $.pxname - lld_macro: '{#SVNAME}' path: $.svname overrides: - name: 'Discard HTTP status codes' step: '1' filter: conditions: - macro: '{#MODE}' value: tcp formulaid: A operations: - operationobject: ITEM_PROTOTYPE operator: LIKE value: 'Number of responses with codes' status: ENABLED discover: NO_DISCOVER - uuid: 69264415d8644ef597affd3dc95d42b2 name: 'Frontend discovery' type: DEPENDENT key: haproxy.frontend.discovery delay: '0' filter: evaltype: AND conditions: - macro: '{#SVNAME}' value: FRONTEND formulaid: B - macro: '{#MODE}' value: http|tcp formulaid: A description: 'Discovery frontends' item_prototypes: - uuid: 434f9c1dd63946d3a181c42bcee94e07 name: 'HAProxy Frontend {#PXNAME}: Incoming traffic' type: DEPENDENT key: 'haproxy.frontend.bin.rate[{#PXNAME},{#SVNAME}]' delay: '0' history: 7d value_type: FLOAT units: bps description: 'Number of bits received by the frontend' preprocessing: - type: JSONPATH parameters: - $.bin - type: MULTIPLIER parameters: - '8' - type: CHANGE_PER_SECOND parameters: - '' master_item: key: 'haproxy.frontend.raw[{#PXNAME},{#SVNAME}]' tags: - tag: component value: network - tag: frontend value: '{#PXNAME}' - uuid: 047ec4b444af4bc38f74eb7fabf2fb94 name: 'HAProxy Frontend {#PXNAME}: Outgoing traffic' type: DEPENDENT key: 'haproxy.frontend.bout.rate[{#PXNAME},{#SVNAME}]' delay: '0' history: 7d value_type: FLOAT units: bps description: 'Number of bits sent by the frontend' preprocessing: - type: JSONPATH parameters: - $.bout - type: MULTIPLIER parameters: - '8' - type: CHANGE_PER_SECOND parameters: - '' master_item: key: 'haproxy.frontend.raw[{#PXNAME},{#SVNAME}]' tags: - tag: component value: network - tag: frontend value: '{#PXNAME}' - uuid: 4542ee3da6334468b6a146083bfa1208 name: 'HAProxy Frontend {#PXNAME}: Denied requests per second' type: DEPENDENT key: 'haproxy.frontend.dreq.rate[{#PXNAME},{#SVNAME}]' delay: '0' history: 7d value_type: FLOAT description: 'Requests denied due to security concerns (ACL-restricted) per second.' preprocessing: - type: JSONPATH parameters: - $.dreq - type: CHANGE_PER_SECOND parameters: - '' master_item: key: 'haproxy.frontend.raw[{#PXNAME},{#SVNAME}]' tags: - tag: component value: requests - tag: frontend value: '{#PXNAME}' trigger_prototypes: - uuid: 269d5e491e3d41b6be5257c8a8a85efb expression: 'min(/HAProxy by Zabbix agent/haproxy.frontend.dreq.rate[{#PXNAME},{#SVNAME}],5m)>{$HAPROXY.FRONT_DREQ.MAX.WARN}' name: 'HAProxy frontend {#PXNAME}: Number of requests denied is high' event_name: 'HAProxy frontend {#PXNAME}: Number of requests denied is more than {$HAPROXY.FRONT_DREQ.MAX.WARN} for 5m' priority: WARNING description: 'Number of requests denied due to security concerns (ACL-restricted) is more than {$HAPROXY.FRONT_DREQ.MAX.WARN}.' tags: - tag: scope value: notice - uuid: 2da48ea7b7fb4432b041b9706017778e name: 'HAProxy Frontend {#PXNAME}: Request errors per second' type: DEPENDENT key: 'haproxy.frontend.ereq.rate[{#PXNAME},{#SVNAME}]' delay: '0' history: 7d value_type: FLOAT description: 'Number of request errors per second.' preprocessing: - type: JSONPATH parameters: - $.ereq - type: CHANGE_PER_SECOND parameters: - '' master_item: key: 'haproxy.frontend.raw[{#PXNAME},{#SVNAME}]' tags: - tag: component value: requests - tag: frontend value: '{#PXNAME}' trigger_prototypes: - uuid: 8361fb028aed4bd9bf3356249699d424 expression: 'min(/HAProxy by Zabbix agent/haproxy.frontend.ereq.rate[{#PXNAME},{#SVNAME}],5m)>{$HAPROXY.FRONT_EREQ.MAX.WARN}' name: 'HAProxy frontend {#PXNAME}: Number of request errors is high' event_name: 'HAProxy frontend {#PXNAME}: Number of request errors is more than {$HAPROXY.FRONT_EREQ.MAX.WARN} for 5m' priority: WARNING description: 'Number of request errors is more than {$HAPROXY.FRONT_EREQ.MAX.WARN}.' tags: - tag: scope value: notice - uuid: d4d6d7092c524a4aa9ac83f9506fcb44 name: 'HAProxy Frontend {#PXNAME}: Number of responses with codes 1xx per second' type: DEPENDENT key: 'haproxy.frontend.hrsp_1xx.rate[{#PXNAME},{#SVNAME}]' delay: '0' history: 7d value_type: FLOAT description: 'Number of informational HTTP responses per second.' preprocessing: - type: JSONPATH parameters: - $.hrsp_1xx - type: CHANGE_PER_SECOND parameters: - '' master_item: key: 'haproxy.frontend.raw[{#PXNAME},{#SVNAME}]' tags: - tag: component value: responses - tag: frontend value: '{#PXNAME}' - uuid: 34bb4142cb4c48678f1136ed7a582ff7 name: 'HAProxy Frontend {#PXNAME}: Number of responses with codes 2xx per second' type: DEPENDENT key: 'haproxy.frontend.hrsp_2xx.rate[{#PXNAME},{#SVNAME}]' delay: '0' history: 7d value_type: FLOAT description: 'Number of successful HTTP responses per second.' preprocessing: - type: JSONPATH parameters: - $.hrsp_2xx - type: CHANGE_PER_SECOND parameters: - '' master_item: key: 'haproxy.frontend.raw[{#PXNAME},{#SVNAME}]' tags: - tag: component value: responses - tag: frontend value: '{#PXNAME}' - uuid: 3d6966759c864b0d94daceead022e421 name: 'HAProxy Frontend {#PXNAME}: Number of responses with codes 3xx per second' type: DEPENDENT key: 'haproxy.frontend.hrsp_3xx.rate[{#PXNAME},{#SVNAME}]' delay: '0' history: 7d value_type: FLOAT description: 'Number of HTTP redirections per second.' preprocessing: - type: JSONPATH parameters: - $.hrsp_3xx - type: CHANGE_PER_SECOND parameters: - '' master_item: key: 'haproxy.frontend.raw[{#PXNAME},{#SVNAME}]' tags: - tag: component value: responses - tag: frontend value: '{#PXNAME}' - uuid: 3fe3871812254cf0a228b6607f02ea12 name: 'HAProxy Frontend {#PXNAME}: Number of responses with codes 4xx per second' type: DEPENDENT key: 'haproxy.frontend.hrsp_4xx.rate[{#PXNAME},{#SVNAME}]' delay: '0' history: 7d value_type: FLOAT description: 'Number of HTTP client errors per second.' preprocessing: - type: JSONPATH parameters: - $.hrsp_4xx - type: CHANGE_PER_SECOND parameters: - '' master_item: key: 'haproxy.frontend.raw[{#PXNAME},{#SVNAME}]' tags: - tag: component value: responses - tag: frontend value: '{#PXNAME}' - uuid: 85d7aa81598b48ee9d40ce3e5b7fc7ea name: 'HAProxy Frontend {#PXNAME}: Number of responses with codes 5xx per second' type: DEPENDENT key: 'haproxy.frontend.hrsp_5xx.rate[{#PXNAME},{#SVNAME}]' delay: '0' history: 7d value_type: FLOAT description: 'Number of HTTP server errors per second.' preprocessing: - type: JSONPATH parameters: - $.hrsp_5xx - type: CHANGE_PER_SECOND parameters: - '' master_item: key: 'haproxy.frontend.raw[{#PXNAME},{#SVNAME}]' tags: - tag: component value: responses - tag: frontend value: '{#PXNAME}' - uuid: 24ee024f493e47f4b4405bc469976c8e name: 'HAProxy Frontend {#PXNAME}: Sessions rate' type: DEPENDENT key: 'haproxy.frontend.rate[{#PXNAME},{#SVNAME}]' delay: '0' history: 7d description: 'Number of sessions created per second' preprocessing: - type: JSONPATH parameters: - $.rate master_item: key: 'haproxy.frontend.raw[{#PXNAME},{#SVNAME}]' tags: - tag: component value: sessions - tag: frontend value: '{#PXNAME}' - uuid: 8cac0a6b219e49c2ae1fd61e78be4ee0 name: 'HAProxy Frontend {#PXNAME}: Raw data' type: DEPENDENT key: 'haproxy.frontend.raw[{#PXNAME},{#SVNAME}]' delay: '0' history: '0' trends: '0' value_type: TEXT description: 'The raw data of the Frontend with the name `{#PXNAME}`' preprocessing: - type: JSONPATH parameters: - '$.[?(@.pxname == ''{#PXNAME}'' && @.svname == ''{#SVNAME}'')].first()' master_item: key: 'web.page.get["{$HAPROXY.STATS.SCHEME}://{HOST.CONN}:{$HAPROXY.STATS.PORT}/{$HAPROXY.STATS.PATH};csv"]' tags: - tag: component value: raw - tag: frontend value: '{#PXNAME}' - uuid: 2290bc0944774d54a89d5b6195f81ad4 name: 'HAProxy Frontend {#PXNAME}: Requests rate' type: DEPENDENT key: 'haproxy.frontend.req_rate[{#PXNAME},{#SVNAME}]' delay: '0' history: 7d description: 'HTTP requests per second' preprocessing: - type: JSONPATH parameters: - $.req_rate master_item: key: 'haproxy.frontend.raw[{#PXNAME},{#SVNAME}]' tags: - tag: component value: requests - tag: frontend value: '{#PXNAME}' - uuid: b01d1b02b9da4609acaa278cf5f2ebbd name: 'HAProxy Frontend {#PXNAME}: Established sessions' type: DEPENDENT key: 'haproxy.frontend.scur[{#PXNAME},{#SVNAME}]' delay: '0' history: 7d description: 'The current number of established sessions.' preprocessing: - type: JSONPATH parameters: - $.scur master_item: key: 'haproxy.frontend.raw[{#PXNAME},{#SVNAME}]' tags: - tag: component value: sessions - tag: frontend value: '{#PXNAME}' - uuid: 4ed338fd24e14aeda1f6058a36371455 name: 'HAProxy Frontend {#PXNAME}: Session limits' type: DEPENDENT key: 'haproxy.frontend.slim[{#PXNAME},{#SVNAME}]' delay: '0' history: 7d description: 'The most simultaneous sessions that are allowed, as defined by the maxconn setting in the frontend.' preprocessing: - type: JSONPATH parameters: - $.slim - type: DISCARD_UNCHANGED_HEARTBEAT parameters: - 1h master_item: key: 'haproxy.frontend.raw[{#PXNAME},{#SVNAME}]' tags: - tag: component value: sessions - tag: frontend value: '{#PXNAME}' - uuid: 5a48a087c07c4cbbaf0332930d59244b name: 'HAProxy Frontend {#PXNAME}: Status' type: DEPENDENT key: 'haproxy.frontend.status[{#PXNAME},{#SVNAME}]' delay: '0' history: 7d trends: '0' value_type: CHAR description: | Possible values: OPEN, STOP. When Status is OPEN, the frontend is operating normally and ready to receive traffic. preprocessing: - type: JSONPATH parameters: - $.status - type: DISCARD_UNCHANGED_HEARTBEAT parameters: - 6h master_item: key: 'haproxy.frontend.raw[{#PXNAME},{#SVNAME}]' tags: - tag: component value: health - tag: frontend value: '{#PXNAME}' - uuid: 4aedda0904954ade92a4aad6460d759b name: 'HAProxy Frontend {#PXNAME}: Session utilization' type: CALCULATED key: 'haproxy.frontend.sutil[{#PXNAME},{#SVNAME}]' history: 7d value_type: FLOAT units: '%' params: 'last(//haproxy.frontend.scur[{#PXNAME},{#SVNAME}]) / last(//haproxy.frontend.slim[{#PXNAME},{#SVNAME}]) * 100' description: 'Percentage of sessions used (scur / slim * 100).' tags: - tag: component value: sessions - tag: frontend value: '{#PXNAME}' trigger_prototypes: - uuid: 9af44a07b1a347979492063ee756b025 expression: 'min(/HAProxy by Zabbix agent/haproxy.frontend.sutil[{#PXNAME},{#SVNAME}],5m)>{$HAPROXY.FRONT_SUTIL.MAX.WARN}' name: 'HAProxy frontend {#PXNAME}: Session utilization is high' event_name: 'HAProxy frontend {#PXNAME}: Session utilization is more than {$HAPROXY.FRONT_SUTIL.MAX.WARN}% for 5m' priority: WARNING description: 'Alerting on this metric is essential to ensure your server has sufficient capacity to handle all concurrent sessions. Unlike requests, upon reaching the session limit HAProxy will deny additional clients until resource consumption drops. Furthermore, if you find your session usage percentage to be hovering above 80%, it could be time to either modify HAProxy''s configuration to allow more sessions, or migrate your HAProxy server to a bigger box.' tags: - tag: scope value: performance graph_prototypes: - uuid: 30141ef1c5bf4c4a9cca0f8ce2ea3373 name: 'HAProxy: Frontend {#PXNAME} Errors and denials per second' graph_items: - color: 199C0D item: host: 'HAProxy by Zabbix agent' key: 'haproxy.frontend.ereq.rate[{#PXNAME},{#SVNAME}]' - sortorder: '1' color: F63100 item: host: 'HAProxy by Zabbix agent' key: 'haproxy.frontend.dreq.rate[{#PXNAME},{#SVNAME}]' - uuid: f6a6bb900b4e45c9af863e6e0aa9af8a name: 'HAProxy: Frontend {#PXNAME} In/Out traffic' graph_items: - drawtype: GRADIENT_LINE color: 199C0D item: host: 'HAProxy by Zabbix agent' key: 'haproxy.frontend.bin.rate[{#PXNAME},{#SVNAME}]' - sortorder: '1' drawtype: GRADIENT_LINE color: F63100 item: host: 'HAProxy by Zabbix agent' key: 'haproxy.frontend.bout.rate[{#PXNAME},{#SVNAME}]' - uuid: 065d1ef09a404cf1bcc67f0e987482ab name: 'HAProxy: Frontend {#PXNAME} Requests and sessions per second' graph_items: - color: 199C0D item: host: 'HAProxy by Zabbix agent' key: 'haproxy.frontend.req_rate[{#PXNAME},{#SVNAME}]' - sortorder: '1' color: F63100 item: host: 'HAProxy by Zabbix agent' key: 'haproxy.frontend.rate[{#PXNAME},{#SVNAME}]' - uuid: 3ce6177d02a045219cec0d348b970860 name: 'HAProxy: Frontend {#PXNAME} Responses by HTTP code' type: STACKED graph_items: - color: 199C0D item: host: 'HAProxy by Zabbix agent' key: 'haproxy.frontend.hrsp_1xx.rate[{#PXNAME},{#SVNAME}]' - sortorder: '1' color: F63100 item: host: 'HAProxy by Zabbix agent' key: 'haproxy.frontend.hrsp_2xx.rate[{#PXNAME},{#SVNAME}]' - sortorder: '2' color: 00611C item: host: 'HAProxy by Zabbix agent' key: 'haproxy.frontend.hrsp_3xx.rate[{#PXNAME},{#SVNAME}]' - sortorder: '3' color: F7941D item: host: 'HAProxy by Zabbix agent' key: 'haproxy.frontend.hrsp_4xx.rate[{#PXNAME},{#SVNAME}]' - sortorder: '4' color: FC6EA3 item: host: 'HAProxy by Zabbix agent' key: 'haproxy.frontend.hrsp_5xx.rate[{#PXNAME},{#SVNAME}]' master_item: key: haproxy.get.nodes lld_macro_paths: - lld_macro: '{#MODE}' path: $.mode - lld_macro: '{#PXNAME}' path: $.pxname - lld_macro: '{#SVNAME}' path: $.svname overrides: - name: 'Discard HTTP status codes' step: '1' filter: conditions: - macro: '{#MODE}' value: tcp formulaid: A operations: - operationobject: ITEM_PROTOTYPE operator: LIKE value: 'Number of responses with codes' status: ENABLED discover: NO_DISCOVER - uuid: a2f7f79b8f094afd93648f62f99d3369 name: 'Server discovery' type: DEPENDENT key: haproxy.server.discovery delay: '0' filter: evaltype: AND conditions: - macro: '{#SVNAME}' value: FRONTEND|BACKEND operator: NOT_MATCHES_REGEX formulaid: B - macro: '{#MODE}' value: http|tcp formulaid: A description: 'Discovery servers' item_prototypes: - uuid: 82b1f8a01ba04818a990c336eb7154e3 name: 'HAProxy {#PXNAME} {#SVNAME}: Server is active' type: DEPENDENT key: 'haproxy.server.act[{#PXNAME},{#SVNAME}]' delay: '0' history: 7d description: 'Shows whether the server is active (marked with a Y) or a backup (marked with a -).' valuemap: name: 'Server mode' preprocessing: - type: JSONPATH parameters: - $.act - type: DISCARD_UNCHANGED_HEARTBEAT parameters: - 1h master_item: key: 'haproxy.server.raw[{#PXNAME},{#SVNAME}]' tags: - tag: component value: role - tag: server value: '{#PXNAME}' - tag: service value: '{#SVNAME}' - uuid: 3617492e9cfd49b6b5576ed231dc2614 name: 'HAProxy {#PXNAME} {#SVNAME}: Server is backup' type: DEPENDENT key: 'haproxy.server.bck[{#PXNAME},{#SVNAME}]' delay: '0' history: 7d description: 'Shows whether the server is a backup (marked with a Y) or active (marked with a -).' valuemap: name: 'Server mode' preprocessing: - type: JSONPATH parameters: - $.bck - type: DISCARD_UNCHANGED_HEARTBEAT parameters: - 1h master_item: key: 'haproxy.server.raw[{#PXNAME},{#SVNAME}]' tags: - tag: component value: role - tag: server value: '{#PXNAME}' - tag: service value: '{#SVNAME}' - uuid: 20d5a69a9aa24fc6abf21c1c317ac425 name: 'HAProxy {#PXNAME} {#SVNAME}: Incoming traffic' type: DEPENDENT key: 'haproxy.server.bin.rate[{#PXNAME},{#SVNAME}]' delay: '0' history: 7d value_type: FLOAT units: bps description: 'Number of bits received by the backend' preprocessing: - type: JSONPATH parameters: - $.bin - type: MULTIPLIER parameters: - '8' - type: CHANGE_PER_SECOND parameters: - '' master_item: key: 'haproxy.server.raw[{#PXNAME},{#SVNAME}]' tags: - tag: component value: network - tag: server value: '{#PXNAME}' - tag: service value: '{#SVNAME}' - uuid: 7fbc335144b74c08ba6a79a108e8e894 name: 'HAProxy {#PXNAME} {#SVNAME}: Outgoing traffic' type: DEPENDENT key: 'haproxy.server.bout.rate[{#PXNAME},{#SVNAME}]' delay: '0' history: 7d value_type: FLOAT units: bps description: 'Number of bits sent by the backend' preprocessing: - type: JSONPATH parameters: - $.bout - type: MULTIPLIER parameters: - '8' - type: CHANGE_PER_SECOND parameters: - '' master_item: key: 'haproxy.server.raw[{#PXNAME},{#SVNAME}]' tags: - tag: component value: network - tag: server value: '{#PXNAME}' - tag: service value: '{#SVNAME}' - uuid: c46228518a3a460b894aea999ca0feab name: 'HAProxy {#PXNAME} {#SVNAME}: Status of last health check' type: DEPENDENT key: 'haproxy.server.check_status[{#PXNAME},{#SVNAME}]' delay: '0' history: 7d trends: '0' value_type: CHAR description: | Status of last health check, one of: UNK -> unknown INI -> initializing SOCKERR -> socket error L4OK -> check passed on layer 4, no upper layers testing enabled L4TOUT -> layer 1-4 timeout L4CON -> layer 1-4 connection problem, for example "Connection refused" (tcp rst) or "No route to host" (icmp) L6OK -> check passed on layer 6 L6TOUT -> layer 6 (SSL) timeout L6RSP -> layer 6 invalid response - protocol error L7OK -> check passed on layer 7 L7OKC -> check conditionally passed on layer 7, for example 404 with disable-on-404 L7TOUT -> layer 7 (HTTP/SMTP) timeout L7RSP -> layer 7 invalid response - protocol error L7STS -> layer 7 response error, for example HTTP 5xx Notice: If a check is currently running, the last known status will be reported, prefixed with "* ". e. g. "* L7OK". preprocessing: - type: JSONPATH parameters: - $.check_status - type: DISCARD_UNCHANGED_HEARTBEAT parameters: - 10m master_item: key: 'haproxy.server.raw[{#PXNAME},{#SVNAME}]' tags: - tag: component value: health - tag: server value: '{#PXNAME}' - tag: service value: '{#SVNAME}' trigger_prototypes: - uuid: 1378f45ad65a498aae7b571a69547352 expression: 'find(/HAProxy by Zabbix agent/haproxy.server.check_status[{#PXNAME},{#SVNAME}],#3,"regexp","(?:L[4-7]OK|^$)")=0' name: 'HAProxy {#PXNAME} {#SVNAME}: Health check error' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING description: 'Please check the server for faults.' dependencies: - name: 'HAProxy {#PXNAME} {#SVNAME}: Server is DOWN' expression: 'count(/HAProxy by Zabbix agent/haproxy.server.status[{#PXNAME},{#SVNAME}],#5,"eq","DOWN")=5' tags: - tag: scope value: notice - uuid: 537f0b807f784b6cba1032ff77fad499 name: 'HAProxy {#PXNAME} {#SVNAME}: Responses denied per second' type: DEPENDENT key: 'haproxy.server.dresp.rate[{#PXNAME},{#SVNAME}]' delay: '0' history: 7d value_type: FLOAT description: 'Responses denied due to security concerns (ACL-restricted).' preprocessing: - type: JSONPATH parameters: - $.dresp - type: CHANGE_PER_SECOND parameters: - '' master_item: key: 'haproxy.server.raw[{#PXNAME},{#SVNAME}]' tags: - tag: component value: responses - tag: server value: '{#PXNAME}' - tag: service value: '{#SVNAME}' - uuid: f688e1e62fa94d1db1d59735094f0bc4 name: 'HAProxy {#PXNAME} {#SVNAME}: Errors connection per second' type: DEPENDENT key: 'haproxy.server.econ.rate[{#PXNAME},{#SVNAME}]' delay: '0' history: 7d value_type: FLOAT description: 'Number of requests that encountered an error attempting to connect to a backend server.' preprocessing: - type: JSONPATH parameters: - $.econ - type: CHANGE_PER_SECOND parameters: - '' master_item: key: 'haproxy.server.raw[{#PXNAME},{#SVNAME}]' tags: - tag: component value: connections - tag: server value: '{#PXNAME}' - tag: service value: '{#SVNAME}' - uuid: bdcac24a8b1e4dd5a441edb61ca13156 name: 'HAProxy {#PXNAME} {#SVNAME}: Response errors per second' type: DEPENDENT key: 'haproxy.server.eresp.rate[{#PXNAME},{#SVNAME}]' delay: '0' history: 7d value_type: FLOAT description: 'Number of requests whose responses yielded an error.' preprocessing: - type: JSONPATH parameters: - $.eresp - type: CHANGE_PER_SECOND parameters: - '' master_item: key: 'haproxy.server.raw[{#PXNAME},{#SVNAME}]' tags: - tag: component value: responses - tag: server value: '{#PXNAME}' - tag: service value: '{#SVNAME}' trigger_prototypes: - uuid: 5a982a97f812468eb8e7163f06f0ee77 expression: 'min(/HAProxy by Zabbix agent/haproxy.server.eresp.rate[{#PXNAME},{#SVNAME}],5m)>{$HAPROXY.SERVER_ERESP.MAX.WARN}' name: 'HAProxy {#PXNAME} {#SVNAME}: Number of responses with error is high' event_name: 'HAProxy {#PXNAME} {#SVNAME}: Number of responses with error is more than {$HAPROXY.SERVER_ERESP.MAX.WARN} for 5m' priority: WARNING description: 'Number of requests on server, whose responses yielded an error, is more than {$HAPROXY.SERVER_ERESP.MAX.WARN}.' tags: - tag: scope value: notice - uuid: 71fbb982c23c498fb52b68b3f839c642 name: 'HAProxy {#PXNAME} {#SVNAME}: Number of responses with codes 1xx per second' type: DEPENDENT key: 'haproxy.server.hrsp_1xx.rate[{#PXNAME},{#SVNAME}]' delay: '0' history: 7d value_type: FLOAT description: 'Number of informational HTTP responses per second.' preprocessing: - type: JSONPATH parameters: - $.hrsp_1xx - type: CHANGE_PER_SECOND parameters: - '' master_item: key: 'haproxy.server.raw[{#PXNAME},{#SVNAME}]' tags: - tag: component value: responses - tag: server value: '{#PXNAME}' - tag: service value: '{#SVNAME}' - uuid: a1aa6301ea1445bdbc509ec31cc9ebfc name: 'HAProxy {#PXNAME} {#SVNAME}: Number of responses with codes 2xx per second' type: DEPENDENT key: 'haproxy.server.hrsp_2xx.rate[{#PXNAME},{#SVNAME}]' delay: '0' history: 7d value_type: FLOAT description: 'Number of successful HTTP responses per second.' preprocessing: - type: JSONPATH parameters: - $.hrsp_2xx - type: CHANGE_PER_SECOND parameters: - '' master_item: key: 'haproxy.server.raw[{#PXNAME},{#SVNAME}]' tags: - tag: component value: responses - tag: server value: '{#PXNAME}' - tag: service value: '{#SVNAME}' - uuid: 5b5576604886429ca22db333c9886c25 name: 'HAProxy {#PXNAME} {#SVNAME}: Number of responses with codes 3xx per second' type: DEPENDENT key: 'haproxy.server.hrsp_3xx.rate[{#PXNAME},{#SVNAME}]' delay: '0' history: 7d value_type: FLOAT description: 'Number of HTTP redirections per second.' preprocessing: - type: JSONPATH parameters: - $.hrsp_3xx - type: CHANGE_PER_SECOND parameters: - '' master_item: key: 'haproxy.server.raw[{#PXNAME},{#SVNAME}]' tags: - tag: component value: responses - tag: server value: '{#PXNAME}' - tag: service value: '{#SVNAME}' - uuid: 3af9ae3041bb4cd588cc6048370d9be7 name: 'HAProxy {#PXNAME} {#SVNAME}: Number of responses with codes 4xx per second' type: DEPENDENT key: 'haproxy.server.hrsp_4xx.rate[{#PXNAME},{#SVNAME}]' delay: '0' history: 7d value_type: FLOAT description: 'Number of HTTP client errors per second.' preprocessing: - type: JSONPATH parameters: - $.hrsp_4xx - type: CHANGE_PER_SECOND parameters: - '' master_item: key: 'haproxy.server.raw[{#PXNAME},{#SVNAME}]' tags: - tag: component value: responses - tag: server value: '{#PXNAME}' - tag: service value: '{#SVNAME}' - uuid: 9f2f6e181dca47ab8e1ae9064ab9fe15 name: 'HAProxy {#PXNAME} {#SVNAME}: Number of responses with codes 5xx per second' type: DEPENDENT key: 'haproxy.server.hrsp_5xx.rate[{#PXNAME},{#SVNAME}]' delay: '0' history: 7d value_type: FLOAT description: 'Number of HTTP server errors per second.' preprocessing: - type: JSONPATH parameters: - $.hrsp_5xx - type: CHANGE_PER_SECOND parameters: - '' master_item: key: 'haproxy.server.raw[{#PXNAME},{#SVNAME}]' tags: - tag: component value: responses - tag: server value: '{#PXNAME}' - tag: service value: '{#SVNAME}' - uuid: 8a7257e803b84783a8c9964807a336a5 name: 'HAProxy {#PXNAME} {#SVNAME}: Server was selected per second' type: DEPENDENT key: 'haproxy.server.lbtot.rate[{#PXNAME},{#SVNAME}]' delay: '0' history: 7d value_type: FLOAT description: 'Number of times that server was selected.' preprocessing: - type: JSONPATH parameters: - $.lbtot - type: CHANGE_PER_SECOND parameters: - '' master_item: key: 'haproxy.server.raw[{#PXNAME},{#SVNAME}]' tags: - tag: component value: connections - tag: server value: '{#PXNAME}' - tag: service value: '{#SVNAME}' - uuid: 03c6d54204104fa0a320ff76204fc825 name: 'HAProxy {#PXNAME} {#SVNAME}: Unassigned requests' type: DEPENDENT key: 'haproxy.server.qcur[{#PXNAME},{#SVNAME}]' delay: '0' history: 7d description: 'Current number of requests unassigned in queue.' preprocessing: - type: JSONPATH parameters: - $.qcur master_item: key: 'haproxy.server.raw[{#PXNAME},{#SVNAME}]' tags: - tag: component value: requests - tag: server value: '{#PXNAME}' - tag: service value: '{#SVNAME}' trigger_prototypes: - uuid: b88e0b4baa2e4738a161a7fc437d6e1c expression: 'min(/HAProxy by Zabbix agent/haproxy.server.qcur[{#PXNAME},{#SVNAME}],5m)>{$HAPROXY.SERVER_QCUR.MAX.WARN}' name: 'HAProxy {#PXNAME} {#SVNAME}: Current number of requests unassigned in queue is high' event_name: 'HAProxy {#PXNAME} {#SVNAME}: Current number of requests unassigned in queue is more than {$HAPROXY.SERVER_QCUR.MAX.WARN} for 5m' priority: WARNING description: 'Current number of requests unassigned in queue is more than {$HAPROXY.SERVER_QCUR.MAX.WARN}.' tags: - tag: scope value: notice - uuid: 50a837b40d624492b0248324d8b62694 name: 'HAProxy {#PXNAME} {#SVNAME}: Configured maxqueue' type: DEPENDENT key: 'haproxy.server.qlimit[{#PXNAME},{#SVNAME}]' delay: '0' history: 7d description: 'Configured maxqueue for the server, or nothing in the value is 0 (default, meaning no limit).' preprocessing: - type: JSONPATH parameters: - $.qlimit - type: DISCARD_UNCHANGED_HEARTBEAT parameters: - 6h - type: MATCHES_REGEX parameters: - ^\d+$ error_handler: CUSTOM_VALUE error_handler_params: '0' master_item: key: 'haproxy.server.raw[{#PXNAME},{#SVNAME}]' tags: - tag: component value: queues - tag: server value: '{#PXNAME}' - tag: service value: '{#SVNAME}' - uuid: 58c074ebc26145a6847d425d51f7cbca name: 'HAProxy {#PXNAME} {#SVNAME}: Time in queue' type: DEPENDENT key: 'haproxy.server.qtime[{#PXNAME},{#SVNAME}]' delay: '0' history: 7d value_type: FLOAT units: s description: 'Average time spent in queue (in ms) for the last 1,024 requests.' preprocessing: - type: JSONPATH parameters: - $.qtime - type: MULTIPLIER parameters: - '0.001' master_item: key: 'haproxy.server.raw[{#PXNAME},{#SVNAME}]' tags: - tag: component value: requests - tag: server value: '{#PXNAME}' - tag: service value: '{#SVNAME}' trigger_prototypes: - uuid: abf3d9e3f6fa43d8bf722bcc58c37388 expression: 'min(/HAProxy by Zabbix agent/haproxy.server.qtime[{#PXNAME},{#SVNAME}],5m)>{$HAPROXY.SERVER_QTIME.MAX.WARN}' name: 'HAProxy {#PXNAME} {#SVNAME}: Average time spent in queue is high' event_name: 'HAProxy {#PXNAME} {#SVNAME}: Average time spent in queue is more than {$HAPROXY.SERVER_QTIME.MAX.WARN} for 5m' priority: WARNING description: 'Average time spent in queue (in ms) for the last 1,024 requests is more than {$HAPROXY.SERVER_QTIME.MAX.WARN}.' tags: - tag: scope value: performance - uuid: 3db97a60d637466bb7038dd08b9f5c7e name: 'HAProxy Server {#PXNAME} {#SVNAME}: Raw data' type: DEPENDENT key: 'haproxy.server.raw[{#PXNAME},{#SVNAME}]' delay: '0' history: '0' trends: '0' value_type: TEXT description: 'The raw data of the Server named `{#SVNAME}` and the proxy with the name `{#PXNAME}`' preprocessing: - type: JSONPATH parameters: - '$.[?(@.pxname == ''{#PXNAME}'' && @.svname == ''{#SVNAME}'')].first()' master_item: key: 'web.page.get["{$HAPROXY.STATS.SCHEME}://{HOST.CONN}:{$HAPROXY.STATS.PORT}/{$HAPROXY.STATS.PATH};csv"]' tags: - tag: component value: raw - tag: server value: '{#PXNAME}' - tag: service value: '{#SVNAME}' - uuid: 25c22d3eca2d4eb7b83791d36edcf470 name: 'HAProxy {#PXNAME} {#SVNAME}: Responses time' type: DEPENDENT key: 'haproxy.server.rtime[{#PXNAME},{#SVNAME}]' delay: '0' history: 7d value_type: FLOAT units: s description: 'Average server response time (in ms) for the last 1,024 requests.' preprocessing: - type: JSONPATH parameters: - $.rtime - type: MULTIPLIER parameters: - '0.001' master_item: key: 'haproxy.server.raw[{#PXNAME},{#SVNAME}]' tags: - tag: component value: health - tag: server value: '{#PXNAME}' - tag: service value: '{#SVNAME}' trigger_prototypes: - uuid: 51ae2aca459b453cb433c5cc0f043a25 expression: 'min(/HAProxy by Zabbix agent/haproxy.server.rtime[{#PXNAME},{#SVNAME}],5m)>{$HAPROXY.SERVER_RTIME.MAX.WARN}' name: 'HAProxy {#PXNAME} {#SVNAME}: Average response time is high' event_name: 'HAProxy {#PXNAME} {#SVNAME}: Average response time is more than {$HAPROXY.SERVER_RTIME.MAX.WARN} for 5m' priority: WARNING description: 'Average server response time (in ms) for the last 1,024 requests is more than {$HAPROXY.SERVER_RTIME.MAX.WARN}.' tags: - tag: scope value: performance - uuid: 973e886a54374bd4815f71d9f9174e80 name: 'HAProxy {#PXNAME} {#SVNAME}: Status' type: DEPENDENT key: 'haproxy.server.status[{#PXNAME},{#SVNAME}]' delay: '0' history: 7d trends: '0' value_type: CHAR preprocessing: - type: JSONPATH parameters: - $.status - type: DISCARD_UNCHANGED_HEARTBEAT parameters: - 10m master_item: key: 'haproxy.server.raw[{#PXNAME},{#SVNAME}]' tags: - tag: component value: health - tag: server value: '{#PXNAME}' - tag: service value: '{#SVNAME}' trigger_prototypes: - uuid: ec64ec00aa164ac09faf90794264907a expression: 'count(/HAProxy by Zabbix agent/haproxy.server.status[{#PXNAME},{#SVNAME}],#5,"eq","DOWN")=5' name: 'HAProxy {#PXNAME} {#SVNAME}: Server is DOWN' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING description: 'Server is not available.' tags: - tag: scope value: availability - uuid: 6f5c20d65ba34afbb47cd65af1d1b368 name: 'HAProxy {#PXNAME} {#SVNAME}: Sessions per second' type: DEPENDENT key: 'haproxy.server.stot.rate[{#PXNAME},{#SVNAME}]' delay: '0' history: 7d value_type: FLOAT description: 'Cumulative number of sessions (end-to-end connections) per second.' preprocessing: - type: JSONPATH parameters: - $.stot - type: CHANGE_PER_SECOND parameters: - '' master_item: key: 'haproxy.server.raw[{#PXNAME},{#SVNAME}]' tags: - tag: component value: sessions - tag: server value: '{#PXNAME}' - tag: service value: '{#SVNAME}' - uuid: 02605cd644e14e2398af89433a6d976d name: 'HAProxy {#PXNAME} {#SVNAME}: Weight' type: DEPENDENT key: 'haproxy.server.weight[{#PXNAME},{#SVNAME}]' delay: '0' history: 7d description: 'Effective weight.' preprocessing: - type: JSONPATH parameters: - $.weight - type: DISCARD_UNCHANGED_HEARTBEAT parameters: - 1h master_item: key: 'haproxy.server.raw[{#PXNAME},{#SVNAME}]' tags: - tag: component value: balancer - tag: server value: '{#PXNAME}' - tag: service value: '{#SVNAME}' - uuid: 606acc119e0d4d9c934e200e037434fe name: 'HAProxy {#PXNAME} {#SVNAME}: Redispatched requests per second' type: DEPENDENT key: 'haproxy.server.wredis.rate[{#PXNAME},{#SVNAME}]' delay: '0' history: 7d value_type: FLOAT description: 'Number of times a request was redispatched to a different backend.' preprocessing: - type: JSONPATH parameters: - $.wredis - type: CHANGE_PER_SECOND parameters: - '' master_item: key: 'haproxy.server.raw[{#PXNAME},{#SVNAME}]' tags: - tag: component value: requests - tag: server value: '{#PXNAME}' - tag: service value: '{#SVNAME}' - uuid: 1e2188320b834562b6b33e96f90a5b44 name: 'HAProxy {#PXNAME} {#SVNAME}: Retried connections per second' type: DEPENDENT key: 'haproxy.server.wretr.rate[{#PXNAME},{#SVNAME}]' delay: '0' history: 7d value_type: FLOAT description: 'Number of times a connection was retried.' preprocessing: - type: JSONPATH parameters: - $.wretr - type: CHANGE_PER_SECOND parameters: - '' master_item: key: 'haproxy.server.raw[{#PXNAME},{#SVNAME}]' tags: - tag: component value: connections - tag: server value: '{#PXNAME}' - tag: service value: '{#SVNAME}' graph_prototypes: - uuid: 15210cbf31ab459ca77d35206255f317 name: 'HAProxy: {#PXNAME} {#SVNAME} In/Out traffic' graph_items: - drawtype: GRADIENT_LINE color: 199C0D item: host: 'HAProxy by Zabbix agent' key: 'haproxy.server.bin.rate[{#PXNAME},{#SVNAME}]' - sortorder: '1' drawtype: GRADIENT_LINE color: F63100 item: host: 'HAProxy by Zabbix agent' key: 'haproxy.server.bout.rate[{#PXNAME},{#SVNAME}]' - uuid: 09fb856698f441b29103e3b8c8bcb8dd name: 'HAProxy: {#PXNAME} {#SVNAME} Responses by HTTP code' type: STACKED graph_items: - color: 199C0D item: host: 'HAProxy by Zabbix agent' key: 'haproxy.server.hrsp_1xx.rate[{#PXNAME},{#SVNAME}]' - sortorder: '1' color: F63100 item: host: 'HAProxy by Zabbix agent' key: 'haproxy.server.hrsp_2xx.rate[{#PXNAME},{#SVNAME}]' - sortorder: '2' color: 00611C item: host: 'HAProxy by Zabbix agent' key: 'haproxy.server.hrsp_3xx.rate[{#PXNAME},{#SVNAME}]' - sortorder: '3' color: F7941D item: host: 'HAProxy by Zabbix agent' key: 'haproxy.server.hrsp_4xx.rate[{#PXNAME},{#SVNAME}]' - sortorder: '4' color: FC6EA3 item: host: 'HAProxy by Zabbix agent' key: 'haproxy.server.hrsp_5xx.rate[{#PXNAME},{#SVNAME}]' - uuid: e3e10b66deb14b33a436481cc34eeb84 name: 'HAProxy: {#PXNAME} {#SVNAME} Response time and time in queue' graph_items: - color: 199C0D item: host: 'HAProxy by Zabbix agent' key: 'haproxy.server.rtime[{#PXNAME},{#SVNAME}]' - sortorder: '1' color: F63100 item: host: 'HAProxy by Zabbix agent' key: 'haproxy.server.qtime[{#PXNAME},{#SVNAME}]' master_item: key: haproxy.get.nodes lld_macro_paths: - lld_macro: '{#MODE}' path: $.mode - lld_macro: '{#PXNAME}' path: $.pxname - lld_macro: '{#SVNAME}' path: $.svname overrides: - name: 'Discard HTTP status codes' step: '1' filter: conditions: - macro: '{#MODE}' value: tcp formulaid: A operations: - operationobject: ITEM_PROTOTYPE operator: LIKE value: 'Number of responses with codes' status: ENABLED discover: NO_DISCOVER tags: - tag: class value: software - tag: target value: haproxy macros: - macro: '{$HAPROXY.BACK_ERESP.MAX.WARN}' value: '10' description: 'Maximum of responses with error on BACKEND for trigger expression.' - macro: '{$HAPROXY.BACK_QCUR.MAX.WARN}' value: '10' description: 'Maximum number of requests on BACKEND unassigned in queue for trigger expression.' - macro: '{$HAPROXY.BACK_QTIME.MAX.WARN}' value: 10s description: 'Maximum of average time spent in queue on BACKEND for trigger expression.' - macro: '{$HAPROXY.BACK_RTIME.MAX.WARN}' value: 10s description: 'Maximum of average BACKEND response time for trigger expression.' - macro: '{$HAPROXY.FRONT_DREQ.MAX.WARN}' value: '10' description: 'The HAProxy maximum denied requests for trigger expression.' - macro: '{$HAPROXY.FRONT_EREQ.MAX.WARN}' value: '10' description: 'The HAProxy maximum number of request errors for trigger expression.' - macro: '{$HAPROXY.FRONT_SUTIL.MAX.WARN}' value: '80' description: 'Maximum of session usage percentage on frontend for trigger expression.' - macro: '{$HAPROXY.RESPONSE_TIME.MAX.WARN}' value: 10s description: 'The HAProxy stats page maximum response time in seconds for trigger expression.' - macro: '{$HAPROXY.SERVER_ERESP.MAX.WARN}' value: '10' description: 'Maximum of responses with error on server for trigger expression.' - macro: '{$HAPROXY.SERVER_QCUR.MAX.WARN}' value: '10' description: 'Maximum number of requests on server unassigned in queue for trigger expression.' - macro: '{$HAPROXY.SERVER_QTIME.MAX.WARN}' value: 10s description: 'Maximum of average time spent in queue on server for trigger expression.' - macro: '{$HAPROXY.SERVER_RTIME.MAX.WARN}' value: 10s description: 'Maximum of average server response time for trigger expression.' - macro: '{$HAPROXY.STATS.PATH}' value: stats description: 'The path of HAProxy stats page.' - macro: '{$HAPROXY.STATS.PORT}' value: '8404' description: 'The port of the HAProxy stats host or container.' - macro: '{$HAPROXY.STATS.SCHEME}' value: http description: 'The scheme of HAProxy stats page(http/https).' dashboards: - uuid: 6d515de988274ac6b31938eebd175973 name: 'HAProxy Backend performance' pages: - widgets: - type: graphprototype width: '24' height: '5' fields: - type: INTEGER name: columns value: '1' - type: INTEGER name: rows value: '1' - type: GRAPH_PROTOTYPE name: graphid value: host: 'HAProxy by Zabbix agent' name: 'HAProxy: Backend {#PXNAME} Redispatched requests and retried connections per second' - type: graphprototype 'y': '5' width: '24' height: '5' fields: - type: INTEGER name: columns value: '1' - type: INTEGER name: rows value: '1' - type: GRAPH_PROTOTYPE name: graphid value: host: 'HAProxy by Zabbix agent' name: 'HAProxy: Backend {#PXNAME} Responses by HTTP code' - type: graphprototype 'y': '10' width: '24' height: '5' fields: - type: INTEGER name: columns value: '1' - type: INTEGER name: rows value: '1' - type: GRAPH_PROTOTYPE name: graphid value: host: 'HAProxy by Zabbix agent' name: 'HAProxy: Backend {#PXNAME} In/Out traffic' - uuid: 7c4decb2fefc4cfe9c4a3f8717d710ca name: 'HAProxy Frontend performance' pages: - widgets: - type: graphprototype width: '24' height: '5' fields: - type: INTEGER name: columns value: '1' - type: INTEGER name: rows value: '1' - type: GRAPH_PROTOTYPE name: graphid value: host: 'HAProxy by Zabbix agent' name: 'HAProxy: Frontend {#PXNAME} Requests and sessions per second' - type: graphprototype 'y': '5' width: '24' height: '5' fields: - type: INTEGER name: columns value: '1' - type: INTEGER name: rows value: '1' - type: GRAPH_PROTOTYPE name: graphid value: host: 'HAProxy by Zabbix agent' name: 'HAProxy: Frontend {#PXNAME} Errors and denials per second' - type: graphprototype 'y': '10' width: '24' height: '5' fields: - type: INTEGER name: columns value: '1' - type: INTEGER name: rows value: '1' - type: GRAPH_PROTOTYPE name: graphid value: host: 'HAProxy by Zabbix agent' name: 'HAProxy: Frontend {#PXNAME} Responses by HTTP code' - type: graphprototype 'y': '15' width: '24' height: '5' fields: - type: INTEGER name: columns value: '1' - type: INTEGER name: rows value: '1' - type: GRAPH_PROTOTYPE name: graphid value: host: 'HAProxy by Zabbix agent' name: 'HAProxy: Frontend {#PXNAME} In/Out traffic' - uuid: ebc5a517fa544fada42550059c014c5b name: 'HAProxy Server performance' pages: - widgets: - type: graphprototype width: '24' height: '5' fields: - type: INTEGER name: columns value: '1' - type: INTEGER name: rows value: '1' - type: GRAPH_PROTOTYPE name: graphid value: host: 'HAProxy by Zabbix agent' name: 'HAProxy: {#PXNAME} {#SVNAME} Response time and time in queue' - type: graphprototype 'y': '5' width: '24' height: '5' fields: - type: INTEGER name: columns value: '1' - type: INTEGER name: rows value: '1' - type: GRAPH_PROTOTYPE name: graphid value: host: 'HAProxy by Zabbix agent' name: 'HAProxy: {#PXNAME} {#SVNAME} Responses by HTTP code' - type: graphprototype 'y': '10' width: '24' height: '5' fields: - type: INTEGER name: columns value: '1' - type: INTEGER name: rows value: '1' - type: GRAPH_PROTOTYPE name: graphid value: host: 'HAProxy by Zabbix agent' name: 'HAProxy: {#PXNAME} {#SVNAME} In/Out traffic' valuemaps: - uuid: bf2e9463450d4f4899abcac85cde0a92 name: 'Server mode' mappings: - value: '0' newvalue: '-' - value: '1' newvalue: 'Y' - uuid: 4980ec41c6644ecb9d5b52027a381fd8 name: 'Service state' mappings: - value: '0' newvalue: Down - value: '1' newvalue: Up