diff options
author | Anton Fayantsev <anton.fayantsev@zabbix.com> | 2021-05-10 08:15:35 +0300 |
---|---|---|
committer | Anton Fayantsev <anton.fayantsev@zabbix.com> | 2021-05-10 08:15:35 +0300 |
commit | 70c15fc125cb0e7f81994e12333f24e1aad6fa73 (patch) | |
tree | 77f6bdb2df675b35b8bd4a9f21ffdbf2788fd837 /templates | |
parent | 7e35f9722b2a2535a23b2b92f8fc836ae396539b (diff) |
.........T [ZBXNEXT-6544] updated all template files to support the new trigger syntax
Diffstat (limited to 'templates')
147 files changed, 4205 insertions, 5933 deletions
diff --git a/templates/app/activemq_jmx/template_app_activemq_jmx.yaml b/templates/app/activemq_jmx/template_app_activemq_jmx.yaml index 28c34424a58..1fce967f3c9 100644 --- a/templates/app/activemq_jmx/template_app_activemq_jmx.yaml +++ b/templates/app/activemq_jmx/template_app_activemq_jmx.yaml @@ -1,6 +1,6 @@ zabbix_export: version: '5.4' - date: '2021-02-23T11:04:38Z' + date: '2021-05-09T00:00:00Z' groups: - name: Templates/Applications @@ -65,7 +65,7 @@ zabbix_export: value: '{#JMXBROKERNAME}' trigger_prototypes: - - expression: '{diff()}=1 and {strlen()}>0' + expression: '(last(/Apache ActiveMQ by JMX/jmx[{#JMXOBJ},BrokerVersion],#1)<>last(/Apache ActiveMQ by JMX/jmx[{#JMXOBJ},BrokerVersion],#2))=1 and length(last(/Apache ActiveMQ by JMX/jmx[{#JMXOBJ},BrokerVersion]))>0' name: 'Broker {#JMXBROKERNAME}: Version has been changed' priority: INFO description: 'Broker {#JMXBROKERNAME} version has changed. Ack to close.' @@ -105,17 +105,17 @@ zabbix_export: value: '{#JMXBROKERNAME}' trigger_prototypes: - - expression: '{min({$ACTIVEMQ.MEM.TIME:"{#JMXBROKERNAME}"})}>{$ACTIVEMQ.MEM.MAX.HIGH:"{#JMXBROKERNAME}"}' + expression: 'min(/Apache ActiveMQ by JMX/jmx[{#JMXOBJ}, MemoryPercentUsage],{$ACTIVEMQ.MEM.TIME:"{#JMXBROKERNAME}"})>{$ACTIVEMQ.MEM.MAX.HIGH:"{#JMXBROKERNAME}"}' name: 'Broker {#JMXBROKERNAME}: Memory usage is too high (over {$ACTIVEMQ.MEM.MAX.HIGH:"{#JMXBROKERNAME}"}%)' priority: HIGH - - expression: '{min({$ACTIVEMQ.MEM.TIME:"{#JMXBROKERNAME}"})}>{$ACTIVEMQ.MEM.MAX.WARN:"{#JMXBROKERNAME}"}' + expression: 'min(/Apache ActiveMQ by JMX/jmx[{#JMXOBJ}, MemoryPercentUsage],{$ACTIVEMQ.MEM.TIME:"{#JMXBROKERNAME}"})>{$ACTIVEMQ.MEM.MAX.WARN:"{#JMXBROKERNAME}"}' name: 'Broker {#JMXBROKERNAME}: Memory usage is too high (over {$ACTIVEMQ.MEM.MAX.WARN:"{#JMXBROKERNAME}"}%)' priority: AVERAGE dependencies: - name: 'Broker {#JMXBROKERNAME}: Memory usage is too high (over {$ACTIVEMQ.MEM.MAX.HIGH:"{#JMXBROKERNAME}"}%)' - expression: '{Apache ActiveMQ by JMX:jmx[{#JMXOBJ}, MemoryPercentUsage].min({$ACTIVEMQ.MEM.TIME:"{#JMXBROKERNAME}"})}>{$ACTIVEMQ.MEM.MAX.HIGH:"{#JMXBROKERNAME}"}' + expression: 'min(/Apache ActiveMQ by JMX/jmx[{#JMXOBJ}, MemoryPercentUsage],{$ACTIVEMQ.MEM.TIME:"{#JMXBROKERNAME}"})>{$ACTIVEMQ.MEM.MAX.HIGH:"{#JMXBROKERNAME}"}' - name: 'Broker {#JMXBROKERNAME}: Storage limit' type: JMX @@ -151,17 +151,17 @@ zabbix_export: value: '{#JMXBROKERNAME}' trigger_prototypes: - - expression: '{min({$ACTIVEMQ.STORE.TIME:"{#JMXBROKERNAME}"})}>{$ACTIVEMQ.STORE.MAX.HIGH:"{#JMXBROKERNAME}"}' + expression: 'min(/Apache ActiveMQ by JMX/jmx[{#JMXOBJ},StorePercentUsage],{$ACTIVEMQ.STORE.TIME:"{#JMXBROKERNAME}"})>{$ACTIVEMQ.STORE.MAX.HIGH:"{#JMXBROKERNAME}"}' name: 'Broker {#JMXBROKERNAME}: Storage usage is too high (over {$ACTIVEMQ.STORE.MAX.HIGH:"{#JMXBROKERNAME}"}%)' priority: HIGH - - expression: '{min({$ACTIVEMQ.STORE.TIME:"{#JMXBROKERNAME}"})}>{$ACTIVEMQ.STORE.MAX.WARN:"{#JMXBROKERNAME}"}' + expression: 'min(/Apache ActiveMQ by JMX/jmx[{#JMXOBJ},StorePercentUsage],{$ACTIVEMQ.STORE.TIME:"{#JMXBROKERNAME}"})>{$ACTIVEMQ.STORE.MAX.WARN:"{#JMXBROKERNAME}"}' name: 'Broker {#JMXBROKERNAME}: Storage usage is too high (over {$ACTIVEMQ.STORE.MAX.WARN:"{#JMXBROKERNAME}"}%)' priority: AVERAGE dependencies: - name: 'Broker {#JMXBROKERNAME}: Storage usage is too high (over {$ACTIVEMQ.STORE.MAX.HIGH:"{#JMXBROKERNAME}"}%)' - expression: '{Apache ActiveMQ by JMX:jmx[{#JMXOBJ},StorePercentUsage].min({$ACTIVEMQ.STORE.TIME:"{#JMXBROKERNAME}"})}>{$ACTIVEMQ.STORE.MAX.HIGH:"{#JMXBROKERNAME}"}' + expression: 'min(/Apache ActiveMQ by JMX/jmx[{#JMXOBJ},StorePercentUsage],{$ACTIVEMQ.STORE.TIME:"{#JMXBROKERNAME}"})>{$ACTIVEMQ.STORE.MAX.HIGH:"{#JMXBROKERNAME}"}' - name: 'Broker {#JMXBROKERNAME}: Temp limit' type: JMX @@ -197,17 +197,17 @@ zabbix_export: value: '{#JMXBROKERNAME}' trigger_prototypes: - - expression: '{min({$ACTIVEMQ.TEMP.TIME:"{#JMXBROKERNAME}"})}>{$ACTIVEMQ.TEMP.MAX.HIGH}' + expression: 'min(/Apache ActiveMQ by JMX/jmx[{#JMXOBJ},TempPercentUsage],{$ACTIVEMQ.TEMP.TIME:"{#JMXBROKERNAME}"})>{$ACTIVEMQ.TEMP.MAX.HIGH}' name: 'Broker {#JMXBROKERNAME}: Temp usage is too high (over {$ACTIVEMQ.TEMP.MAX.WARN:"{#JMXBROKERNAME}"}%)' priority: HIGH - - expression: '{min({$ACTIVEMQ.TEMP.TIME:"{#JMXBROKERNAME}"})}>{$ACTIVEMQ.TEMP.MAX.WARN}' + expression: 'min(/Apache ActiveMQ by JMX/jmx[{#JMXOBJ},TempPercentUsage],{$ACTIVEMQ.TEMP.TIME:"{#JMXBROKERNAME}"})>{$ACTIVEMQ.TEMP.MAX.WARN}' name: 'Broker {#JMXBROKERNAME}: Temp usage is too high (over {$ACTIVEMQ.TEMP.MAX.WARN:"{#JMXBROKERNAME}"}%)' priority: AVERAGE dependencies: - name: 'Broker {#JMXBROKERNAME}: Temp usage is too high (over {$ACTIVEMQ.TEMP.MAX.WARN:"{#JMXBROKERNAME}"}%)' - expression: '{Apache ActiveMQ by JMX:jmx[{#JMXOBJ},TempPercentUsage].min({$ACTIVEMQ.TEMP.TIME:"{#JMXBROKERNAME}"})}>{$ACTIVEMQ.TEMP.MAX.HIGH}' + expression: 'min(/Apache ActiveMQ by JMX/jmx[{#JMXOBJ},TempPercentUsage],{$ACTIVEMQ.TEMP.TIME:"{#JMXBROKERNAME}"})>{$ACTIVEMQ.TEMP.MAX.HIGH}' - name: 'Broker {#JMXBROKERNAME}: Consumers count total' type: JMX @@ -223,7 +223,7 @@ zabbix_export: value: '{#JMXBROKERNAME}' trigger_prototypes: - - expression: '{max({$ACTIVEMQ.BROKER.CONSUMERS.MIN.TIME:"{#JMXBROKERNAME}"})}<{$ACTIVEMQ.BROKER.CONSUMERS.MIN.HIGH:"{#JMXBROKERNAME}"}' + expression: 'max(/Apache ActiveMQ by JMX/jmx[{#JMXOBJ},TotalConsumerCount],{$ACTIVEMQ.BROKER.CONSUMERS.MIN.TIME:"{#JMXBROKERNAME}"})<{$ACTIVEMQ.BROKER.CONSUMERS.MIN.HIGH:"{#JMXBROKERNAME}"}' name: 'Broker {#JMXBROKERNAME}: Consumers count is too low (below {$ACTIVEMQ.BROKER.CONSUMERS.MIN.HIGH:"{#JMXBROKERNAME}"} for {$ACTIVEMQ.BROKER.CONSUMERS.MIN.TIME:"{#JMXBROKERNAME}"})' priority: HIGH - @@ -266,7 +266,7 @@ zabbix_export: value: '{#JMXBROKERNAME}' trigger_prototypes: - - expression: '{avg({$ACTIVEMQ.MSG.RATE.WARN.TIME:"{#JMXBROKERNAME}"})}>{avg({$ACTIVEMQ.MSG.RATE.WARN.TIME:"{#JMXBROKERNAME}"})}' + expression: 'avg(/Apache ActiveMQ by JMX/jmx[{#JMXOBJ},TotalEnqueueCount],{$ACTIVEMQ.MSG.RATE.WARN.TIME:"{#JMXBROKERNAME}"})>avg(/Apache ActiveMQ by JMX/jmx[{#JMXOBJ},TotalEnqueueCount],{$ACTIVEMQ.MSG.RATE.WARN.TIME:"{#JMXBROKERNAME}"})' name: 'Broker {#JMXBROKERNAME}: Message enqueue rate is higher than dequeue rate for {$ACTIVEMQ.MSG.RATE.WARN.TIME:"{#JMXBROKERNAME}"}' priority: AVERAGE description: 'Enqueue rate is higher than dequeue rate. It may indicate performance problems.' @@ -285,7 +285,7 @@ zabbix_export: value: '{#JMXBROKERNAME}' trigger_prototypes: - - expression: '{max({$ACTIVEMQ.BROKER.PRODUCERS.MIN.TIME:"{#JMXBROKERNAME}"})}<{$ACTIVEMQ.BROKER.PRODUCERS.MIN.HIGH:"{#JMXBROKERNAME}"}' + expression: 'max(/Apache ActiveMQ by JMX/jmx[{#JMXOBJ},TotalProducerCount],{$ACTIVEMQ.BROKER.PRODUCERS.MIN.TIME:"{#JMXBROKERNAME}"})<{$ACTIVEMQ.BROKER.PRODUCERS.MIN.HIGH:"{#JMXBROKERNAME}"}' name: 'Broker {#JMXBROKERNAME}: Producers count is too low (below {$ACTIVEMQ.BROKER.PRODUCERS.MIN.HIGH:"{#JMXBROKERNAME}"} for {$ACTIVEMQ.BROKER.PRODUCERS.MIN.TIME:"{#JMXBROKERNAME}"})' priority: HIGH - @@ -309,7 +309,7 @@ zabbix_export: value: '{#JMXBROKERNAME}' trigger_prototypes: - - expression: '{last()}<10m' + expression: 'last(/Apache ActiveMQ by JMX/jmx[{#JMXOBJ},UptimeMillis])<10m' name: 'Broker {#JMXBROKERNAME}: Broker has been restarted (uptime < 10m)' priority: INFO description: 'Uptime is less than 10 minutes' @@ -514,7 +514,7 @@ zabbix_export: value: '{#JMXBROKERNAME}' trigger_prototypes: - - expression: '{last()}>{$ACTIVEMQ.EXPIRIED.WARN:"{#JMXDESTINATIONNAME}"}' + expression: 'last(/Apache ActiveMQ by JMX/jmx[{#JMXOBJ},ExpiredCount])>{$ACTIVEMQ.EXPIRIED.WARN:"{#JMXDESTINATIONNAME}"}' name: '{#JMXBROKERNAME}: {#JMXDESTINATIONTYPE} {#JMXDESTINATIONNAME}: Expired messages count higher than {$ACTIVEMQ.EXPIRIED.WARN:"{#JMXDESTINATIONNAME}"}' priority: AVERAGE description: 'This metric represents the number of messages that expired before they could be delivered. If you expect all messages to be delivered and acknowledged within a certain amount of time, you can set an expiration for each message, and investigate if your ExpiredCount metric rises above zero.' @@ -534,11 +534,11 @@ zabbix_export: value: '{#JMXBROKERNAME}' trigger_prototypes: - - expression: '{last()}>{$ACTIVEMQ.MEM.MAX.HIGH:"{#JMXDESTINATIONNAME}"}' + expression: 'last(/Apache ActiveMQ by JMX/jmx[{#JMXOBJ},MemoryPercentUsage])>{$ACTIVEMQ.MEM.MAX.HIGH:"{#JMXDESTINATIONNAME}"}' name: '{#JMXBROKERNAME}: {#JMXDESTINATIONTYPE} {#JMXDESTINATIONNAME}: Memory usage is too high (over {$ACTIVEMQ.MEM.MAX.HIGH:"{#JMXDESTINATIONNAME}"}%)' priority: HIGH - - expression: '{last()}>{$ACTIVEMQ.MEM.MAX.WARN:"{#JMXDESTINATIONNAME}"}' + expression: 'last(/Apache ActiveMQ by JMX/jmx[{#JMXOBJ},MemoryPercentUsage])>{$ACTIVEMQ.MEM.MAX.WARN:"{#JMXDESTINATIONNAME}"}' name: '{#JMXBROKERNAME}: {#JMXDESTINATIONTYPE} {#JMXDESTINATIONNAME}: Memory usage is too high (over {$ACTIVEMQ.MEM.MAX.WARN:"{#JMXDESTINATIONNAME}"}%)' priority: AVERAGE - @@ -569,27 +569,27 @@ zabbix_export: value: '{#JMXBROKERNAME}' trigger_prototypes: - - expression: '{min({$ACTIVEMQ.QUEUE.TIME:"{#JMXDESTINATIONNAME}"})}>{$ACTIVEMQ.QUEUE.WARN:"{#JMXDESTINATIONNAME}"} and {$ACTIVEMQ.QUEUE.ENABLED:"{#JMXDESTINATIONNAME}"}=1' + expression: 'min(/Apache ActiveMQ by JMX/jmx[{#JMXOBJ},QueueSize],{$ACTIVEMQ.QUEUE.TIME:"{#JMXDESTINATIONNAME}"})>{$ACTIVEMQ.QUEUE.WARN:"{#JMXDESTINATIONNAME}"} and {$ACTIVEMQ.QUEUE.ENABLED:"{#JMXDESTINATIONNAME}"}=1' name: '{#JMXBROKERNAME}: {#JMXDESTINATIONTYPE} {#JMXDESTINATIONNAME}: Queue size higher than {$ACTIVEMQ.QUEUE.WARN:"{#JMXDESTINATIONNAME}"} for {$ACTIVEMQ.QUEUE.TIME:"{#JMXDESTINATIONNAME}"}' priority: AVERAGE description: 'Queue size is higher than threshold. It may indicate performance problems.' trigger_prototypes: - - expression: '{Apache ActiveMQ by JMX:jmx[{#JMXOBJ},ConsumerCount].max({$ACTIVEMQ.DESTINATION.CONSUMERS.MIN.TIME:"{#JMXDESTINATIONNAME}"})}<{$ACTIVEMQ.DESTINATION.CONSUMERS.MIN.HIGH:"{#JMXDESTINATIONNAME}"} and {Apache ActiveMQ by JMX:jmx["org.apache.activemq:type=Broker,brokerName={#JMXBROKERNAME}",{$ACTIVEMQ.TOTAL.CONSUMERS.COUNT: "{#JMXDESTINATIONNAME}"}].last()}>{$ACTIVEMQ.BROKER.CONSUMERS.MIN.HIGH:"{#JMXBROKERNAME}"}' + expression: 'max(/Apache ActiveMQ by JMX/jmx[{#JMXOBJ},ConsumerCount],{$ACTIVEMQ.DESTINATION.CONSUMERS.MIN.TIME:"{#JMXDESTINATIONNAME}"})<{$ACTIVEMQ.DESTINATION.CONSUMERS.MIN.HIGH:"{#JMXDESTINATIONNAME}"} and last(/Apache ActiveMQ by JMX/jmx["org.apache.activemq:type=Broker,brokerName={#JMXBROKERNAME}",{$ACTIVEMQ.TOTAL.CONSUMERS.COUNT: "{#JMXDESTINATIONNAME}"}])>{$ACTIVEMQ.BROKER.CONSUMERS.MIN.HIGH:"{#JMXBROKERNAME}"}' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{Apache ActiveMQ by JMX:jmx[{#JMXOBJ},ConsumerCount].min({$ACTIVEMQ.DESTINATION.CONSUMERS.MIN.TIME:"{#JMXDESTINATIONNAME}"})}>={$ACTIVEMQ.DESTINATION.CONSUMERS.MIN.HIGH:"{#JMXDESTINATIONNAME}"}' + recovery_expression: 'min(/Apache ActiveMQ by JMX/jmx[{#JMXOBJ},ConsumerCount],{$ACTIVEMQ.DESTINATION.CONSUMERS.MIN.TIME:"{#JMXDESTINATIONNAME}"})>={$ACTIVEMQ.DESTINATION.CONSUMERS.MIN.HIGH:"{#JMXDESTINATIONNAME}"}' name: '{#JMXBROKERNAME}: {#JMXDESTINATIONTYPE} {#JMXDESTINATIONNAME}: Consumers count is too low (below {$ACTIVEMQ.DESTINATION.CONSUMERS.MIN.HIGH:"{#JMXDESTINATIONNAME}"} for {$ACTIVEMQ.DESTINATION.CONSUMERS.MIN.TIME:"{#JMXDESTINATIONNAME}"})' priority: AVERAGE manual_close: 'YES' - - expression: '{Apache ActiveMQ by JMX:jmx[{#JMXOBJ},EnqueueCount].avg({$ACTIVEMQ.MSG.RATE.WARN.TIME:"{#JMXDESTINATIONNAME}"})}>{Apache ActiveMQ by JMX:jmx[{#JMXOBJ},DequeueCount].avg({$ACTIVEMQ.MSG.RATE.WARN.TIME:"{#JMXDESTINATIONNAME}"})}' + expression: 'avg(/Apache ActiveMQ by JMX/jmx[{#JMXOBJ},EnqueueCount],{$ACTIVEMQ.MSG.RATE.WARN.TIME:"{#JMXDESTINATIONNAME}"})>avg(/Apache ActiveMQ by JMX/jmx[{#JMXOBJ},DequeueCount],{$ACTIVEMQ.MSG.RATE.WARN.TIME:"{#JMXDESTINATIONNAME}"})' name: '{#JMXBROKERNAME}: {#JMXDESTINATIONTYPE} {#JMXDESTINATIONNAME}: Message enqueue rate is higher than dequeue rate for {$ACTIVEMQ.MSG.RATE.WARN.TIME:"{#JMXDESTINATIONNAME}"}' priority: AVERAGE description: 'Enqueue rate is higher than dequeue rate. It may indicate performance problems.' - - expression: '{Apache ActiveMQ by JMX:jmx[{#JMXOBJ},ProducerCount].max({$ACTIVEMQ.DESTINATION.PRODUCERS.MIN.TIME:"{#JMXDESTINATIONNAME}"})}<{$ACTIVEMQ.DESTINATION.PRODUCERS.MIN.HIGH:"{#JMXDESTINATIONNAME}"} and {Apache ActiveMQ by JMX:jmx["org.apache.activemq:type=Broker,brokerName={#JMXBROKERNAME}",{$ACTIVEMQ.TOTAL.PRODUCERS.COUNT: "{#JMXDESTINATIONNAME}"}].last()}>{$ACTIVEMQ.BROKER.PRODUCERS.MIN.HIGH:"{#JMXBROKERNAME}"}' + expression: 'max(/Apache ActiveMQ by JMX/jmx[{#JMXOBJ},ProducerCount],{$ACTIVEMQ.DESTINATION.PRODUCERS.MIN.TIME:"{#JMXDESTINATIONNAME}"})<{$ACTIVEMQ.DESTINATION.PRODUCERS.MIN.HIGH:"{#JMXDESTINATIONNAME}"} and last(/Apache ActiveMQ by JMX/jmx["org.apache.activemq:type=Broker,brokerName={#JMXBROKERNAME}",{$ACTIVEMQ.TOTAL.PRODUCERS.COUNT: "{#JMXDESTINATIONNAME}"}])>{$ACTIVEMQ.BROKER.PRODUCERS.MIN.HIGH:"{#JMXBROKERNAME}"}' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{Apache ActiveMQ by JMX:jmx[{#JMXOBJ},ProducerCount].min({$ACTIVEMQ.DESTINATION.PRODUCERS.MIN.TIME:"{#JMXDESTINATIONNAME}"})}>={$ACTIVEMQ.DESTINATION.PRODUCERS.MIN.HIGH:"{#JMXDESTINATIONNAME}"}' + recovery_expression: 'min(/Apache ActiveMQ by JMX/jmx[{#JMXOBJ},ProducerCount],{$ACTIVEMQ.DESTINATION.PRODUCERS.MIN.TIME:"{#JMXDESTINATIONNAME}"})>={$ACTIVEMQ.DESTINATION.PRODUCERS.MIN.HIGH:"{#JMXDESTINATIONNAME}"}' name: '{#JMXBROKERNAME}: {#JMXDESTINATIONTYPE} {#JMXDESTINATIONNAME}: Producers count is too low (below {$ACTIVEMQ.DESTINATION.PRODUCERS.MIN.HIGH:"{#JMXDESTINATIONNAME}"} for {$ACTIVEMQ.DESTINATION.PRODUCERS.MIN.TIME:"{#JMXDESTINATIONNAME}"})' priority: AVERAGE manual_close: 'YES' diff --git a/templates/app/apache_agent/template_app_apache_agent.yaml b/templates/app/apache_agent/template_app_apache_agent.yaml index aa296696109..add09d8df89 100644 --- a/templates/app/apache_agent/template_app_apache_agent.yaml +++ b/templates/app/apache_agent/template_app_apache_agent.yaml @@ -1,6 +1,6 @@ zabbix_export: version: '5.4' - date: '2021-04-22T11:27:43Z' + date: '2021-05-09T00:00:00Z' groups: - name: Templates/Applications @@ -137,7 +137,7 @@ zabbix_export: value: Apache triggers: - - expression: '{last()}<10m' + expression: 'last(/Apache by Zabbix agent/apache.uptime)<10m' name: 'Apache: has been restarted (uptime < 10m)' priority: INFO description: 'Uptime is less than 10 minutes' @@ -168,7 +168,7 @@ zabbix_export: value: Apache triggers: - - expression: '{diff()}=1 and {strlen()}>0' + expression: '(last(/Apache by Zabbix agent/apache.version,#1)<>last(/Apache by Zabbix agent/apache.version,#2))=1 and length(last(/Apache by Zabbix agent/apache.version))>0' name: 'Apache: Version has changed (new version: {ITEM.VALUE})' priority: INFO description: 'Apache version has changed. Ack to close.' @@ -419,17 +419,17 @@ zabbix_export: value: Apache triggers: - - expression: '{min(5m)}>{$APACHE.RESPONSE_TIME.MAX.WARN}' + expression: 'min(/Apache by Zabbix agent/net.tcp.service.perf[http,"{$APACHE.STATUS.HOST}","{$APACHE.STATUS.PORT}"],5m)>{$APACHE.RESPONSE_TIME.MAX.WARN}' name: 'Apache: Service response time is too high (over {$APACHE.RESPONSE_TIME.MAX.WARN}s for 5m)' priority: WARNING manual_close: 'YES' dependencies: - name: 'Apache: Process is not running' - expression: '{Apache by Zabbix agent:proc.num["{$APACHE.PROCESS_NAME}"].last()}=0' + expression: 'last(/Apache by Zabbix agent/proc.num["{$APACHE.PROCESS_NAME}"])=0' - name: 'Apache: Service is down' - expression: '{Apache by Zabbix agent:net.tcp.service[http,"{$APACHE.STATUS.HOST}","{$APACHE.STATUS.PORT}"].last()}=0' + expression: 'last(/Apache by Zabbix agent/net.tcp.service[http,"{$APACHE.STATUS.HOST}","{$APACHE.STATUS.PORT}"])=0' - name: 'Apache: Service ping' key: 'net.tcp.service[http,"{$APACHE.STATUS.HOST}","{$APACHE.STATUS.PORT}"]' @@ -447,14 +447,14 @@ zabbix_export: value: Apache triggers: - - expression: '{last()}=0' + expression: 'last(/Apache by Zabbix agent/net.tcp.service[http,"{$APACHE.STATUS.HOST}","{$APACHE.STATUS.PORT}"])=0' name: 'Apache: Service is down' priority: AVERAGE manual_close: 'YES' dependencies: - name: 'Apache: Process is not running' - expression: '{Apache by Zabbix agent:proc.num["{$APACHE.PROCESS_NAME}"].last()}=0' + expression: 'last(/Apache by Zabbix agent/proc.num["{$APACHE.PROCESS_NAME}"])=0' - name: 'Apache: CPU utilization' key: 'proc.cpu.util["{$APACHE.PROCESS_NAME}"]' @@ -496,7 +496,7 @@ zabbix_export: value: Apache triggers: - - expression: '{last()}=0' + expression: 'last(/Apache by Zabbix agent/proc.num["{$APACHE.PROCESS_NAME}"])=0' name: 'Apache: Process is not running' priority: HIGH - @@ -560,7 +560,7 @@ zabbix_export: value: 'Zabbix raw items' triggers: - - expression: '{nodata(30m)}=1' + expression: 'nodata(/Apache by Zabbix agent/web.page.get["{$APACHE.STATUS.SCHEME}://{$APACHE.STATUS.HOST}:{$APACHE.STATUS.PORT}/{$APACHE.STATUS.PATH}"],30m)=1' name: 'Apache: Failed to fetch status page (or no data for 30m)' priority: WARNING description: 'Zabbix has not received data for items for the last 30 minutes.' @@ -568,10 +568,10 @@ zabbix_export: dependencies: - name: 'Apache: Process is not running' - expression: '{Apache by Zabbix agent:proc.num["{$APACHE.PROCESS_NAME}"].last()}=0' + expression: 'last(/Apache by Zabbix agent/proc.num["{$APACHE.PROCESS_NAME}"])=0' - name: 'Apache: Service is down' - expression: '{Apache by Zabbix agent:net.tcp.service[http,"{$APACHE.STATUS.HOST}","{$APACHE.STATUS.PORT}"].last()}=0' + expression: 'last(/Apache by Zabbix agent/net.tcp.service[http,"{$APACHE.STATUS.HOST}","{$APACHE.STATUS.PORT}"])=0' discovery_rules: - name: 'Event MPM discovery' diff --git a/templates/app/apache_http/template_app_apache_http.yaml b/templates/app/apache_http/template_app_apache_http.yaml index dd4cf61b4ba..649e00b7a02 100644 --- a/templates/app/apache_http/template_app_apache_http.yaml +++ b/templates/app/apache_http/template_app_apache_http.yaml @@ -1,6 +1,6 @@ zabbix_export: version: '5.4' - date: '2021-04-22T11:27:36Z' + date: '2021-05-09T00:00:00Z' groups: - name: Templates/Applications @@ -137,7 +137,7 @@ zabbix_export: value: 'Zabbix raw items' triggers: - - expression: '{nodata(30m)}=1' + expression: 'nodata(/Apache by HTTP/apache.get_status,30m)=1' name: 'Apache: Failed to fetch status page (or no data for 30m)' priority: WARNING description: 'Zabbix has not received data for items for the last 30 minutes.' @@ -145,7 +145,7 @@ zabbix_export: dependencies: - name: 'Apache: Service is down' - expression: '{Apache by HTTP:net.tcp.service[http,"{HOST.CONN}","{$APACHE.STATUS.PORT}"].last()}=0' + expression: 'last(/Apache by HTTP/net.tcp.service[http,"{HOST.CONN}","{$APACHE.STATUS.PORT}"])=0' - name: 'Apache: Total requests' type: DEPENDENT @@ -210,7 +210,7 @@ zabbix_export: value: Apache triggers: - - expression: '{last()}<10m' + expression: 'last(/Apache by HTTP/apache.uptime)<10m' name: 'Apache: has been restarted (uptime < 10m)' priority: INFO description: 'Uptime is less than 10 minutes' @@ -241,7 +241,7 @@ zabbix_export: value: Apache triggers: - - expression: '{diff()}=1 and {strlen()}>0' + expression: '(last(/Apache by HTTP/apache.version,#1)<>last(/Apache by HTTP/apache.version,#2))=1 and length(last(/Apache by HTTP/apache.version))>0' name: 'Apache: Version has changed (new version: {ITEM.VALUE})' priority: INFO description: 'Apache version has changed. Ack to close.' @@ -493,14 +493,14 @@ zabbix_export: value: Apache triggers: - - expression: '{min(5m)}>{$APACHE.RESPONSE_TIME.MAX.WARN}' + expression: 'min(/Apache by HTTP/net.tcp.service.perf[http,"{HOST.CONN}","{$APACHE.STATUS.PORT}"],5m)>{$APACHE.RESPONSE_TIME.MAX.WARN}' name: 'Apache: Service response time is too high (over {$APACHE.RESPONSE_TIME.MAX.WARN}s for 5m)' priority: WARNING manual_close: 'YES' dependencies: - name: 'Apache: Service is down' - expression: '{Apache by HTTP:net.tcp.service[http,"{HOST.CONN}","{$APACHE.STATUS.PORT}"].last()}=0' + expression: 'last(/Apache by HTTP/net.tcp.service[http,"{HOST.CONN}","{$APACHE.STATUS.PORT}"])=0' - name: 'Apache: Service ping' type: SIMPLE @@ -519,7 +519,7 @@ zabbix_export: value: Apache triggers: - - expression: '{last()}=0' + expression: 'last(/Apache by HTTP/net.tcp.service[http,"{HOST.CONN}","{$APACHE.STATUS.PORT}"])=0' name: 'Apache: Service is down' priority: AVERAGE manual_close: 'YES' diff --git a/templates/app/aranet/aranet_cloud.yaml b/templates/app/aranet/aranet_cloud.yaml index b377e07774f..7a04f586605 100644 --- a/templates/app/aranet/aranet_cloud.yaml +++ b/templates/app/aranet/aranet_cloud.yaml @@ -1,6 +1,6 @@ zabbix_export: version: '5.4' - date: '2021-02-23T11:04:39Z' + date: '2021-05-09T00:00:00Z' groups: - name: Templates/Applications @@ -406,17 +406,17 @@ zabbix_export: value: '{#METRIC}' trigger_prototypes: - - expression: '{max(5m)} < {$ARANET.BATT.VOLTAGE.MIN.CRIT:"{#SENSOR_NAME}"}' + expression: 'max(/Aranet Cloud/aranet.battery.voltage["{#GATEWAY_ID}", "{#SENSOR_ID}"],5m) < {$ARANET.BATT.VOLTAGE.MIN.CRIT:"{#SENSOR_NAME}"}' name: '{#METRIC}: Critically low battery voltage on "[{#GATEWAY_NAME}] {#SENSOR_NAME}" (below {$ARANET.BATT.VOLTAGE.MIN.CRIT:"{#SENSOR_NAME}"}{#UNIT} for 5m)' priority: HIGH - - expression: '{max(5m)} < {$ARANET.BATT.VOLTAGE.MIN.WARN:"{#SENSOR_NAME}"}' + expression: 'max(/Aranet Cloud/aranet.battery.voltage["{#GATEWAY_ID}", "{#SENSOR_ID}"],5m) < {$ARANET.BATT.VOLTAGE.MIN.WARN:"{#SENSOR_NAME}"}' name: '{#METRIC}: Low battery voltage on "[{#GATEWAY_NAME}] {#SENSOR_NAME}" (below {$ARANET.BATT.VOLTAGE.MIN.WARN:"{#SENSOR_NAME}"}{#UNIT} for 5m)' priority: WARNING dependencies: - name: '{#METRIC}: Critically low battery voltage on "[{#GATEWAY_NAME}] {#SENSOR_NAME}" (below {$ARANET.BATT.VOLTAGE.MIN.CRIT:"{#SENSOR_NAME}"}{#UNIT} for 5m)' - expression: '{Aranet Cloud:aranet.battery.voltage["{#GATEWAY_ID}", "{#SENSOR_ID}"].max(5m)} < {$ARANET.BATT.VOLTAGE.MIN.CRIT:"{#SENSOR_NAME}"}' + expression: 'max(/Aranet Cloud/aranet.battery.voltage["{#GATEWAY_ID}", "{#SENSOR_ID}"],5m) < {$ARANET.BATT.VOLTAGE.MIN.CRIT:"{#SENSOR_NAME}"}' master_item: key: aranet.sensor.discovery - @@ -480,17 +480,17 @@ zabbix_export: value: '{#METRIC}' trigger_prototypes: - - expression: '{min(5m)} > {$ARANET.CO2.MAX.CRIT:"{#SENSOR_NAME}"}' + expression: 'min(/Aranet Cloud/aranet.co2["{#GATEWAY_ID}", "{#SENSOR_ID}"],5m) > {$ARANET.CO2.MAX.CRIT:"{#SENSOR_NAME}"}' name: '{#METRIC}: Critically high CO2 level on "[{#GATEWAY_NAME}] {#SENSOR_NAME}" (over {$ARANET.CO2.MAX.CRIT:"{#SENSOR_NAME}"}{#UNIT} for 5m)' priority: HIGH - - expression: '{min(5m)} > {$ARANET.CO2.MAX.WARN:"{#SENSOR_NAME}"}' + expression: 'min(/Aranet Cloud/aranet.co2["{#GATEWAY_ID}", "{#SENSOR_ID}"],5m) > {$ARANET.CO2.MAX.WARN:"{#SENSOR_NAME}"}' name: '{#METRIC}: High CO2 level on "[{#GATEWAY_NAME}] {#SENSOR_NAME}" (over {$ARANET.CO2.MAX.WARN:"{#SENSOR_NAME}"}{#UNIT} for 5m)' priority: WARNING dependencies: - name: '{#METRIC}: Critically high CO2 level on "[{#GATEWAY_NAME}] {#SENSOR_NAME}" (over {$ARANET.CO2.MAX.CRIT:"{#SENSOR_NAME}"}{#UNIT} for 5m)' - expression: '{Aranet Cloud:aranet.co2["{#GATEWAY_ID}", "{#SENSOR_ID}"].min(5m)} > {$ARANET.CO2.MAX.CRIT:"{#SENSOR_NAME}"}' + expression: 'min(/Aranet Cloud/aranet.co2["{#GATEWAY_ID}", "{#SENSOR_ID}"],5m) > {$ARANET.CO2.MAX.CRIT:"{#SENSOR_NAME}"}' master_item: key: aranet.sensor.discovery - @@ -737,17 +737,17 @@ zabbix_export: value: '{#METRIC}' trigger_prototypes: - - expression: '{min(5m)} > {$ARANET.HUMIDITY.MAX.WARN:"{#SENSOR_NAME}"}' + expression: 'min(/Aranet Cloud/aranet.humidity["{#GATEWAY_ID}", "{#SENSOR_ID}"],5m) > {$ARANET.HUMIDITY.MAX.WARN:"{#SENSOR_NAME}"}' name: '{#METRIC}: High humidity on "[{#GATEWAY_NAME}] {#SENSOR_NAME}" (over {$ARANET.HUMIDITY.MAX.WARN:"{#SENSOR_NAME}"}{#UNIT} for 5m)' priority: HIGH - - expression: '{max(5m)} < {$ARANET.HUMIDITY.MIN.WARN:"{#SENSOR_NAME}"}' + expression: 'max(/Aranet Cloud/aranet.humidity["{#GATEWAY_ID}", "{#SENSOR_ID}"],5m) < {$ARANET.HUMIDITY.MIN.WARN:"{#SENSOR_NAME}"}' name: '{#METRIC}: Low humidity on "[{#GATEWAY_NAME}] {#SENSOR_NAME}" (below {$ARANET.HUMIDITY.MIN.WARN:"{#SENSOR_NAME}"}{#UNIT} for 5m)' priority: WARNING dependencies: - name: '{#METRIC}: High humidity on "[{#GATEWAY_NAME}] {#SENSOR_NAME}" (over {$ARANET.HUMIDITY.MAX.WARN:"{#SENSOR_NAME}"}{#UNIT} for 5m)' - expression: '{Aranet Cloud:aranet.humidity["{#GATEWAY_ID}", "{#SENSOR_ID}"].min(5m)} > {$ARANET.HUMIDITY.MAX.WARN:"{#SENSOR_NAME}"}' + expression: 'min(/Aranet Cloud/aranet.humidity["{#GATEWAY_ID}", "{#SENSOR_ID}"],5m) > {$ARANET.HUMIDITY.MAX.WARN:"{#SENSOR_NAME}"}' master_item: key: aranet.sensor.discovery - @@ -875,7 +875,7 @@ zabbix_export: value: '{#METRIC}' trigger_prototypes: - - expression: '{last()} > {$ARANET.LAST_UPDATE.MAX.WARN:"{#SENSOR_NAME}"}' + expression: 'last(/Aranet Cloud/aranet.last_update["{#GATEWAY_ID}", "{#SENSOR_ID}"]) > {$ARANET.LAST_UPDATE.MAX.WARN:"{#SENSOR_NAME}"}' name: '{#METRIC}: Sensor data "[{#GATEWAY_NAME}] {#SENSOR_NAME}" is not updated (more than {$ARANET.LAST_UPDATE.MAX.WARN:"{#SENSOR_NAME}"})' priority: WARNING master_item: diff --git a/templates/app/ceph_agent2/template_app_ceph_agent2.yaml b/templates/app/ceph_agent2/template_app_ceph_agent2.yaml index 1faf820c98f..be6a432f40a 100644 --- a/templates/app/ceph_agent2/template_app_ceph_agent2.yaml +++ b/templates/app/ceph_agent2/template_app_ceph_agent2.yaml @@ -1,6 +1,6 @@ zabbix_export: version: '5.4' - date: '2021-02-23T11:04:35Z' + date: '2021-05-09T00:00:00Z' groups: - name: Templates/Applications @@ -52,7 +52,7 @@ zabbix_export: value: Ceph triggers: - - expression: '{diff()}=1 and {strlen()}>0' + expression: '(last(/Ceph by Zabbix Agent2/ceph.min_mon_release_name,#1)<>last(/Ceph by Zabbix Agent2/ceph.min_mon_release_name,#2))=1 and length(last(/Ceph by Zabbix Agent2/ceph.min_mon_release_name))>0' name: 'Ceph: Minimum monitor release version has changed (new version: {ITEM.VALUE})' priority: INFO description: 'Ceph version has changed. Ack to close.' @@ -555,21 +555,21 @@ zabbix_export: value: Ceph triggers: - - expression: '{last()}=2' + expression: 'last(/Ceph by Zabbix Agent2/ceph.overall_status)=2' name: 'Ceph: Cluster in ERROR state' priority: AVERAGE manual_close: 'YES' - - expression: '{last()}=1' + expression: 'last(/Ceph by Zabbix Agent2/ceph.overall_status)=1' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{last()}=0' + recovery_expression: 'last(/Ceph by Zabbix Agent2/ceph.overall_status)=0' name: 'Ceph: Cluster in WARNING state' priority: WARNING manual_close: 'YES' dependencies: - name: 'Ceph: Cluster in ERROR state' - expression: '{Ceph by Zabbix Agent2:ceph.overall_status.last()}=2' + expression: 'last(/Ceph by Zabbix Agent2/ceph.overall_status)=2' - name: 'Ceph: Number of Placement Groups in Active state' type: DEPENDENT @@ -839,7 +839,7 @@ zabbix_export: value: Ceph triggers: - - expression: '{last()}=0' + expression: 'last(/Ceph by Zabbix Agent2/ceph.ping["{$CEPH.CONNSTRING}","{$CEPH.USER}","{$CEPH.API.KEY}"])=0' name: 'Ceph: Can not connect to cluster' priority: AVERAGE description: 'Connection to Ceph RESTful module is broken (if there is any error presented including AUTH and configuration issues).' @@ -1150,7 +1150,7 @@ zabbix_export: value: 'Ceph {#HOST} OSD [{#CLASS}]' trigger_prototypes: - - expression: '{last()} = 0' + expression: 'last(/Ceph by Zabbix Agent2/ceph.osd[{#OSDNAME},up]) = 0' name: 'Ceph: OSD osd.{#OSDNAME} is down' priority: AVERAGE description: | @@ -1158,15 +1158,15 @@ zabbix_export: The OSD daemon may have been stopped, or peer OSDs may be unable to reach the OSD over the network. trigger_prototypes: - - expression: '{Ceph by Zabbix Agent2:ceph.osd[{#OSDNAME},fill].min(15m)} > {Ceph by Zabbix Agent2:ceph.osd_nearfull_ratio.last()}*100' + expression: 'min(/Ceph by Zabbix Agent2/ceph.osd[{#OSDNAME},fill],15m) > last(/Ceph by Zabbix Agent2/ceph.osd_nearfull_ratio)*100' name: 'Ceph: Ceph OSD osd.{#OSDNAME} is near full' priority: WARNING dependencies: - name: 'Ceph: OSD osd.{#OSDNAME} is full' - expression: '{Ceph by Zabbix Agent2:ceph.osd[{#OSDNAME},fill].min(15m)} > {Ceph by Zabbix Agent2:ceph.osd_full_ratio.last()}*100' + expression: 'min(/Ceph by Zabbix Agent2/ceph.osd[{#OSDNAME},fill],15m) > last(/Ceph by Zabbix Agent2/ceph.osd_full_ratio)*100' - - expression: '{Ceph by Zabbix Agent2:ceph.osd[{#OSDNAME},fill].min(15m)} > {Ceph by Zabbix Agent2:ceph.osd_full_ratio.last()}*100' + expression: 'min(/Ceph by Zabbix Agent2/ceph.osd[{#OSDNAME},fill],15m) > last(/Ceph by Zabbix Agent2/ceph.osd_full_ratio)*100' name: 'Ceph: OSD osd.{#OSDNAME} is full' priority: AVERAGE graph_prototypes: diff --git a/templates/app/docker/template_app_docker.yaml b/templates/app/docker/template_app_docker.yaml index a98e75ed7ee..456731f81dc 100644 --- a/templates/app/docker/template_app_docker.yaml +++ b/templates/app/docker/template_app_docker.yaml @@ -1,6 +1,6 @@ zabbix_export: version: '5.4' - date: '2021-04-22T11:26:28Z' + date: '2021-05-09T00:00:00Z' groups: - name: Templates/Applications @@ -692,7 +692,7 @@ zabbix_export: value: Docker triggers: - - expression: '{nodata(30m)}=1' + expression: 'nodata(/Docker/docker.name,30m)=1' name: 'Docker: Failed to fetch info data (or no data for 30m)' priority: WARNING description: 'Zabbix has not received data for items for the last 30 minutes' @@ -700,7 +700,7 @@ zabbix_export: dependencies: - name: 'Docker: Service is down' - expression: '{Docker:docker.ping.last()}=0' + expression: last(/Docker/docker.ping)=0 - name: 'Docker: NCPU' type: DEPENDENT @@ -868,7 +868,7 @@ zabbix_export: value: Docker triggers: - - expression: '{last()}=0' + expression: last(/Docker/docker.ping)=0 name: 'Docker: Service is down' priority: AVERAGE manual_close: 'YES' @@ -920,7 +920,7 @@ zabbix_export: value: Docker triggers: - - expression: '{diff()}=1 and {strlen()}>0' + expression: '(last(/Docker/docker.server_version,#1)<>last(/Docker/docker.server_version,#2))=1 and length(last(/Docker/docker.server_version))>0' name: 'Docker: Version has changed (new version: {ITEM.VALUE})' priority: INFO description: 'Docker version has changed. Ack to close.' @@ -1150,7 +1150,7 @@ zabbix_export: value: 'Docker: Container {#NAME}' trigger_prototypes: - - expression: '{diff()}=1 and {strlen()}>0' + expression: '(last(/Docker/docker.container_info.state.error["{#NAME}"],#1)<>last(/Docker/docker.container_info.state.error["{#NAME}"],#2))=1 and length(last(/Docker/docker.container_info.state.error["{#NAME}"]))>0' name: 'Container {#NAME}: An error has occurred in the container' priority: WARNING description: 'Container {#NAME} has an error. Ack to close.' @@ -1778,7 +1778,7 @@ zabbix_export: value: 'Docker: Container {#NAME}' trigger_prototypes: - - expression: '{Docker:docker.container_info.state.exitcode["{#NAME}"].last()}>0 and {Docker:docker.container_info.state.running["{#NAME}"].last()}=0' + expression: 'last(/Docker/docker.container_info.state.exitcode["{#NAME}"])>0 and last(/Docker/docker.container_info.state.running["{#NAME}"])=0' name: 'Container {#NAME}: Container has been stopped with error code' opdata: 'Exit code: {ITEM.LASTVALUE1}' priority: AVERAGE diff --git a/templates/app/elasticsearch_http/template_app_elasticsearch_http.yaml b/templates/app/elasticsearch_http/template_app_elasticsearch_http.yaml index 6a3cd866e71..378b486aa45 100644 --- a/templates/app/elasticsearch_http/template_app_elasticsearch_http.yaml +++ b/templates/app/elasticsearch_http/template_app_elasticsearch_http.yaml @@ -1,6 +1,6 @@ zabbix_export: version: '5.4' - date: '2021-03-24T06:36:43Z' + date: '2021-05-09T00:00:00Z' groups: - name: Templates/Applications @@ -121,7 +121,7 @@ zabbix_export: value: 'ES cluster' triggers: - - expression: '{min(10m)}>0' + expression: 'min(/Elasticsearch Cluster by HTTP/es.cluster.initializing_shards,10m)>0' name: 'ES: Cluster has the initializing shards' priority: AVERAGE description: 'The cluster has the initializing shards longer than 10 minutes.' @@ -171,12 +171,12 @@ zabbix_export: value: 'ES cluster' triggers: - - expression: '{change()}<0' + expression: 'change(/Elasticsearch Cluster by HTTP/es.cluster.number_of_nodes)<0' name: 'ES: The number of nodes within the cluster has decreased' priority: INFO manual_close: 'YES' - - expression: '{change()}>0' + expression: 'change(/Elasticsearch Cluster by HTTP/es.cluster.number_of_nodes)>0' name: 'ES: The number of nodes within the cluster has increased' priority: INFO manual_close: 'YES' @@ -256,19 +256,19 @@ zabbix_export: value: 'ES cluster' triggers: - - expression: '{last()}=2' + expression: 'last(/Elasticsearch Cluster by HTTP/es.cluster.status)=2' name: 'ES: Health is RED' priority: HIGH description: | One or more primary shards are unassigned, so some data is unavailable. This can occur briefly during cluster startup as primary shards are assigned. - - expression: '{last()}=255' + expression: 'last(/Elasticsearch Cluster by HTTP/es.cluster.status)=255' name: 'ES: Health is UNKNOWN' priority: HIGH description: 'The health status of the cluster is unknown or cannot be obtained.' - - expression: '{last()}=1' + expression: 'last(/Elasticsearch Cluster by HTTP/es.cluster.status)=1' name: 'ES: Health is YELLOW' priority: AVERAGE description: | @@ -318,7 +318,7 @@ zabbix_export: value: 'ES cluster' triggers: - - expression: '{min(10m)}>0' + expression: 'min(/Elasticsearch Cluster by HTTP/es.cluster.unassigned_shards,10m)>0' name: 'ES: Cluster has the unassigned shards' priority: AVERAGE description: 'The cluster has the unassigned shards longer than 10 minutes.' @@ -436,7 +436,7 @@ zabbix_export: value: 'ES cluster' triggers: - - expression: '{last()}=2' + expression: 'last(/Elasticsearch Cluster by HTTP/es.nodes.count.master)=2' name: 'ES: Cluster has only two master nodes' priority: DISASTER description: 'The cluster has only two nodes with a master role and will be unavailable if one of them breaks.' @@ -532,7 +532,7 @@ zabbix_export: value: 'ES cluster' triggers: - - expression: '{last()}<10m' + expression: 'last(/Elasticsearch Cluster by HTTP/es.nodes.jvm.max_uptime[{#ES.NODE}])<10m' name: 'ES: Cluster has been restarted (uptime < 10m)' priority: INFO description: 'Uptime is less than 10 minutes' @@ -551,7 +551,7 @@ zabbix_export: value: 'ES cluster' triggers: - - expression: '{min(5m)}>{$ELASTICSEARCH.RESPONSE_TIME.MAX.WARN}' + expression: 'min(/Elasticsearch Cluster by HTTP/net.tcp.service.perf["{$ELASTICSEARCH.SCHEME}","{HOST.CONN}","{$ELASTICSEARCH.PORT}"],5m)>{$ELASTICSEARCH.RESPONSE_TIME.MAX.WARN}' name: 'ES: Service response time is too high (over {$ELASTICSEARCH.RESPONSE_TIME.MAX.WARN} for 5m)' priority: WARNING description: 'The performance of the TCP service is very low.' @@ -559,7 +559,7 @@ zabbix_export: dependencies: - name: 'ES: Service is down' - expression: '{Elasticsearch Cluster by HTTP:net.tcp.service["{$ELASTICSEARCH.SCHEME}","{HOST.CONN}","{$ELASTICSEARCH.PORT}"].last()}=0' + expression: 'last(/Elasticsearch Cluster by HTTP/net.tcp.service["{$ELASTICSEARCH.SCHEME}","{HOST.CONN}","{$ELASTICSEARCH.PORT}"])=0' - name: 'ES: Service status' type: SIMPLE @@ -579,7 +579,7 @@ zabbix_export: value: 'ES cluster' triggers: - - expression: '{last()}=0' + expression: 'last(/Elasticsearch Cluster by HTTP/net.tcp.service["{$ELASTICSEARCH.SCHEME}","{HOST.CONN}","{$ELASTICSEARCH.PORT}"])=0' name: 'ES: Service is down' priority: AVERAGE description: 'The service is unavailable or does not accept TCP connections.' @@ -697,7 +697,7 @@ zabbix_export: history: 7d value_type: FLOAT units: ms - params: 'change(es.node.indices.flush.total_time_in_millis[{#ES.NODE}]) / ( change(es.node.indices.flush.total[{#ES.NODE}]) + (change(es.node.indices.flush.total[{#ES.NODE}]) = 0) )' + params: 'change(//es.node.indices.flush.total_time_in_millis[{#ES.NODE}]) / ( change(//es.node.indices.flush.total[{#ES.NODE}]) + (change(//es.node.indices.flush.total[{#ES.NODE}]) = 0) )' description: 'The average flush latency calculated from the available flush.total and flush.total_time_in_millis metrics.' tags: - @@ -705,7 +705,7 @@ zabbix_export: value: 'ES {#ES.NODE}' trigger_prototypes: - - expression: '{min(5m)}>{$ELASTICSEARCH.FLUSH_LATENCY.MAX.WARN}' + expression: 'min(/Elasticsearch Cluster by HTTP/es.node.indices.flush.latency[{#ES.NODE}],5m)>{$ELASTICSEARCH.FLUSH_LATENCY.MAX.WARN}' name: 'ES {#ES.NODE}: Flush latency is too high (over {$ELASTICSEARCH.FLUSH_LATENCY.MAX.WARN}ms for 5m)' priority: WARNING description: | @@ -785,7 +785,7 @@ zabbix_export: history: 7d value_type: FLOAT units: ms - params: 'change(es.node.indices.indexing.index_time_in_millis[{#ES.NODE}]) / ( change(es.node.indices.indexing.index_total[{#ES.NODE}]) + (change(es.node.indices.indexing.index_total[{#ES.NODE}]) = 0) )' + params: 'change(//es.node.indices.indexing.index_time_in_millis[{#ES.NODE}]) / ( change(//es.node.indices.indexing.index_total[{#ES.NODE}]) + (change(//es.node.indices.indexing.index_total[{#ES.NODE}]) = 0) )' description: 'The average indexing latency calculated from the available index_total and index_time_in_millis metrics.' tags: - @@ -793,7 +793,7 @@ zabbix_export: value: 'ES {#ES.NODE}' trigger_prototypes: - - expression: '{min(5m)}>{$ELASTICSEARCH.INDEXING_LATENCY.MAX.WARN}' + expression: 'min(/Elasticsearch Cluster by HTTP/es.node.indices.indexing.index_latency[{#ES.NODE}],5m)>{$ELASTICSEARCH.INDEXING_LATENCY.MAX.WARN}' name: 'ES {#ES.NODE}: Indexing latency is too high (over {$ELASTICSEARCH.INDEXING_LATENCY.MAX.WARN}ms for 5m)' priority: WARNING description: | @@ -1029,7 +1029,7 @@ zabbix_export: history: 7d value_type: FLOAT units: ms - params: 'change(es.node.indices.search.fetch_time_in_millis[{#ES.NODE}]) / ( change(es.node.indices.search.fetch_total[{#ES.NODE}]) + (change(es.node.indices.search.fetch_total[{#ES.NODE}]) = 0) )' + params: 'change(//es.node.indices.search.fetch_time_in_millis[{#ES.NODE}]) / ( change(//es.node.indices.search.fetch_total[{#ES.NODE}]) + (change(//es.node.indices.search.fetch_total[{#ES.NODE}]) = 0) )' description: 'The average fetch latency calculated by sampling the total number of fetches and the total elapsed time at regular intervals.' tags: - @@ -1037,7 +1037,7 @@ zabbix_export: value: 'ES {#ES.NODE}' trigger_prototypes: - - expression: '{min(5m)}>{$ELASTICSEARCH.FETCH_LATENCY.MAX.WARN}' + expression: 'min(/Elasticsearch Cluster by HTTP/es.node.indices.search.fetch_latency[{#ES.NODE}],5m)>{$ELASTICSEARCH.FETCH_LATENCY.MAX.WARN}' name: 'ES {#ES.NODE}: Fetch latency is too high (over {$ELASTICSEARCH.FETCH_LATENCY.MAX.WARN}ms for 5m)' priority: WARNING description: | @@ -1167,8 +1167,8 @@ zabbix_export: value_type: FLOAT units: ms params: | - change(es.node.indices.search.query_time_in_millis[{#ES.NODE}]) / - ( change(es.node.indices.search.query_total[{#ES.NODE}]) + (change(es.node.indices.search.query_total[{#ES.NODE}]) = 0) ) + change(//es.node.indices.search.query_time_in_millis[{#ES.NODE}]) / + ( change(//es.node.indices.search.query_total[{#ES.NODE}]) + (change(//es.node.indices.search.query_total[{#ES.NODE}]) = 0) ) description: 'The average query latency calculated by sampling the total number of queries and the total elapsed time at regular intervals.' tags: - @@ -1176,7 +1176,7 @@ zabbix_export: value: 'ES {#ES.NODE}' trigger_prototypes: - - expression: '{min(5m)}>{$ELASTICSEARCH.QUERY_LATENCY.MAX.WARN}' + expression: 'min(/Elasticsearch Cluster by HTTP/es.node.indices.search.query_latency[{#ES.NODE}],5m)>{$ELASTICSEARCH.QUERY_LATENCY.MAX.WARN}' name: 'ES {#ES.NODE}: Query latency is too high (over {$ELASTICSEARCH.QUERY_LATENCY.MAX.WARN}ms for 5m)' priority: WARNING description: 'If latency exceeds a threshold, look for potential resource bottlenecks, or investigate whether you need to optimize your queries.' @@ -1348,7 +1348,7 @@ zabbix_export: value: 'ES {#ES.NODE}' trigger_prototypes: - - expression: '{min(1h)}>{$ELASTICSEARCH.HEAP_USED.MAX.CRIT}' + expression: 'min(/Elasticsearch Cluster by HTTP/es.node.jvm.mem.heap_used_percent[{#ES.NODE}],1h)>{$ELASTICSEARCH.HEAP_USED.MAX.CRIT}' name: 'ES {#ES.NODE}: Percent of JVM heap in use is critical (over {$ELASTICSEARCH.HEAP_USED.MAX.CRIT}% for 1h)' priority: HIGH description: | @@ -1356,7 +1356,7 @@ zabbix_export: To address this problem, you can either increase your heap size (as long as it remains below the recommended guidelines stated above), or scale out the cluster by adding more nodes. - - expression: '{min(1h)}>{$ELASTICSEARCH.HEAP_USED.MAX.WARN}' + expression: 'min(/Elasticsearch Cluster by HTTP/es.node.jvm.mem.heap_used_percent[{#ES.NODE}],1h)>{$ELASTICSEARCH.HEAP_USED.MAX.WARN}' name: 'ES {#ES.NODE}: Percent of JVM heap in use is high (over {$ELASTICSEARCH.HEAP_USED.MAX.WARN}% for 1h)' priority: WARNING description: | @@ -1366,7 +1366,7 @@ zabbix_export: dependencies: - name: 'ES {#ES.NODE}: Percent of JVM heap in use is critical (over {$ELASTICSEARCH.HEAP_USED.MAX.CRIT}% for 1h)' - expression: '{Elasticsearch Cluster by HTTP:es.node.jvm.mem.heap_used_percent[{#ES.NODE}].min(1h)}>{$ELASTICSEARCH.HEAP_USED.MAX.CRIT}' + expression: 'min(/Elasticsearch Cluster by HTTP/es.node.jvm.mem.heap_used_percent[{#ES.NODE}],1h)>{$ELASTICSEARCH.HEAP_USED.MAX.CRIT}' - name: 'ES {#ES.NODE}: Node uptime' type: DEPENDENT @@ -1393,7 +1393,7 @@ zabbix_export: value: 'ES {#ES.NODE}' trigger_prototypes: - - expression: '{last()}<10m' + expression: 'last(/Elasticsearch Cluster by HTTP/es.node.jvm.uptime[{#ES.NODE}])<10m' name: 'ES {#ES.NODE}: Node {#ES.NODE} has been restarted (uptime < 10m)' priority: INFO description: 'Uptime is less than 10 minutes' @@ -1484,7 +1484,7 @@ zabbix_export: value: 'ES {#ES.NODE}' trigger_prototypes: - - expression: '{min(5m)}>0' + expression: 'min(/Elasticsearch Cluster by HTTP/es.node.thread_pool.refresh.rejected.rate[{#ES.NODE}],5m)>0' name: 'ES {#ES.NODE}: Refresh thread pool executor has the rejected tasks (for 5m)' priority: WARNING description: 'The number of tasks rejected by the refresh thread pool executor is over 0 for 5m.' @@ -1574,7 +1574,7 @@ zabbix_export: value: 'ES {#ES.NODE}' trigger_prototypes: - - expression: '{min(5m)}>0' + expression: 'min(/Elasticsearch Cluster by HTTP/es.node.thread_pool.search.rejected.rate[{#ES.NODE}],5m)>0' name: 'ES {#ES.NODE}: Search thread pool executor has the rejected tasks (for 5m)' priority: WARNING description: 'The number of tasks rejected by the search thread pool executor is over 0 for 5m.' @@ -1664,7 +1664,7 @@ zabbix_export: value: 'ES {#ES.NODE}' trigger_prototypes: - - expression: '{min(5m)}>0' + expression: 'min(/Elasticsearch Cluster by HTTP/es.node.thread_pool.write.rejected.rate[{#ES.NODE}],5m)>0' name: 'ES {#ES.NODE}: Write thread pool executor has the rejected tasks (for 5m)' priority: WARNING description: 'The number of tasks rejected by the write thread pool executor is over 0 for 5m.' @@ -1872,7 +1872,7 @@ zabbix_export: newvalue: Up triggers: - - expression: '({Elasticsearch Cluster by HTTP:es.nodes.fs.total_in_bytes.last()}-{Elasticsearch Cluster by HTTP:es.nodes.fs.available_in_bytes.last()})/({Elasticsearch Cluster by HTTP:es.cluster.number_of_data_nodes.last()}-1)>{Elasticsearch Cluster by HTTP:es.nodes.fs.available_in_bytes.last()}' + expression: '(last(/Elasticsearch Cluster by HTTP/es.nodes.fs.total_in_bytes)-last(/Elasticsearch Cluster by HTTP/es.nodes.fs.available_in_bytes))/(last(/Elasticsearch Cluster by HTTP/es.cluster.number_of_data_nodes)-1)>last(/Elasticsearch Cluster by HTTP/es.nodes.fs.available_in_bytes)' name: 'ES: Cluster does not have enough space for resharding' priority: HIGH description: 'There is not enough disk space for index resharding.' diff --git a/templates/app/etcd_http/template_app_etcd_http.yaml b/templates/app/etcd_http/template_app_etcd_http.yaml index eed9205462e..4ba06a7d039 100644 --- a/templates/app/etcd_http/template_app_etcd_http.yaml +++ b/templates/app/etcd_http/template_app_etcd_http.yaml @@ -1,6 +1,6 @@ zabbix_export: version: '5.4' - date: '2021-02-23T11:04:37Z' + date: '2021-05-09T00:00:00Z' groups: - name: Templates/Applications @@ -42,7 +42,7 @@ zabbix_export: value: Etcd triggers: - - expression: '{diff()}=1 and {strlen()}>0' + expression: '(last(/Etcd by HTTP/etcd.cluster.version,#1)<>last(/Etcd by HTTP/etcd.cluster.version,#2))=1 and length(last(/Etcd by HTTP/etcd.cluster.version))>0' name: 'Etcd: Cluster version has changed (new version: {ITEM.VALUE})' priority: INFO description: 'Etcd version has changed. Ack to close.' @@ -287,7 +287,7 @@ zabbix_export: value: Etcd triggers: - - expression: '{last()}=0' + expression: 'last(/Etcd by HTTP/etcd.has.leader)=0' name: 'Etcd: Member has no leader' priority: AVERAGE description: '"If a member does not have a leader, it is totally unavailable."' @@ -324,7 +324,7 @@ zabbix_export: value: Etcd triggers: - - expression: '{last()}=0' + expression: 'last(/Etcd by HTTP/etcd.health)=0' name: 'Etcd: Node healthcheck failed' opdata: 'Current state: {ITEM.LASTVALUE1}' priority: AVERAGE @@ -332,7 +332,7 @@ zabbix_export: dependencies: - name: 'Etcd: Service is unavailable' - expression: '{Etcd by HTTP:net.tcp.service["{$ETCD.SCHEME}","{HOST.CONN}","{$ETCD.PORT}"].last()}=0' + expression: 'last(/Etcd by HTTP/net.tcp.service["{$ETCD.SCHEME}","{HOST.CONN}","{$ETCD.PORT}"])=0' - name: 'Etcd: HTTP 4XX' type: DEPENDENT @@ -399,7 +399,7 @@ zabbix_export: value: Etcd triggers: - - expression: '{min(5m)}>{$ETCD.HTTP.FAIL.MAX.WARN}' + expression: 'min(/Etcd by HTTP/etcd.http.requests.5xx.rate,5m)>{$ETCD.HTTP.FAIL.MAX.WARN}' name: 'Etcd: Too many HTTP requests failures (over {$ETCD.HTTP.FAIL.MAX.WARN} for 5m)''' priority: WARNING description: '"Too many reqvests failed on etcd instance with 5xx HTTP code"' @@ -464,7 +464,7 @@ zabbix_export: value: Etcd triggers: - - expression: '{nodata(30m)}=1' + expression: 'nodata(/Etcd by HTTP/etcd.is.leader,30m)=1' name: 'Etcd: Failed to fetch info data (or no data for 30m)' priority: WARNING description: 'Zabbix has not received data for items for the last 30 minutes' @@ -472,7 +472,7 @@ zabbix_export: dependencies: - name: 'Etcd: Service is unavailable' - expression: '{Etcd by HTTP:net.tcp.service["{$ETCD.SCHEME}","{HOST.CONN}","{$ETCD.PORT}"].last()}=0' + expression: 'last(/Etcd by HTTP/net.tcp.service["{$ETCD.SCHEME}","{HOST.CONN}","{$ETCD.PORT}"])=0' - name: 'Etcd: Keys compacted per second' type: DEPENDENT @@ -563,7 +563,7 @@ zabbix_export: value: Etcd triggers: - - expression: '{delta(15m)}>{$ETCD.LEADER.CHANGES.MAX.WARN}' + expression: '(max(/Etcd by HTTP/etcd.leader.changes,15m)-min(/Etcd by HTTP/etcd.leader.changes,15m))>{$ETCD.LEADER.CHANGES.MAX.WARN}' name: 'Etcd: Instance has seen too many leader changes (over {$ETCD.LEADER.CHANGES.MAX.WARN} for 15m)''' priority: WARNING description: 'Rapid leadership changes impact the performance of etcd significantly. It also signals that the leader is unstable, perhaps due to network connectivity issues or excessive load hitting the etcd cluster.' @@ -731,7 +731,7 @@ zabbix_export: value: Etcd triggers: - - expression: '{min(5m)}>{$ETCD.PROPOSAL.FAIL.MAX.WARN}' + expression: 'min(/Etcd by HTTP/etcd.proposals.failed.rate,5m)>{$ETCD.PROPOSAL.FAIL.MAX.WARN}' name: 'Etcd: Too many proposal failures (over {$ETCD.PROPOSAL.FAIL.MAX.WARN} for 5m)''' priority: WARNING description: | @@ -758,7 +758,7 @@ zabbix_export: value: Etcd triggers: - - expression: '{min(5m)}>{$ETCD.PROPOSAL.PENDING.MAX.WARN}' + expression: 'min(/Etcd by HTTP/etcd.proposals.pending,5m)>{$ETCD.PROPOSAL.PENDING.MAX.WARN}' name: 'Etcd: Too many proposals are queued to commit (over {$ETCD.PROPOSAL.PENDING.MAX.WARN} for 5m)''' priority: WARNING description: '"Rising pending proposals suggests there is a high client load or the member cannot commit proposals."' @@ -892,7 +892,7 @@ zabbix_export: value: Etcd triggers: - - expression: '{diff()}=1 and {strlen()}>0' + expression: '(last(/Etcd by HTTP/etcd.server.version,#1)<>last(/Etcd by HTTP/etcd.server.version,#2))=1 and length(last(/Etcd by HTTP/etcd.server.version))>0' name: 'Etcd: Server version has changed (new version: {ITEM.VALUE})' priority: INFO description: 'Etcd version has changed. Ack to close.' @@ -951,7 +951,7 @@ zabbix_export: value: Etcd triggers: - - expression: '{last()}<10m' + expression: 'last(/Etcd by HTTP/etcd.uptime)<10m' name: 'Etcd: has been restarted (uptime < 10m)' priority: INFO description: 'Uptime is less than 10 minutes' @@ -1027,7 +1027,7 @@ zabbix_export: value: Etcd triggers: - - expression: '{last()}=0' + expression: 'last(/Etcd by HTTP/net.tcp.service["{$ETCD.SCHEME}","{HOST.CONN}","{$ETCD.PORT}"])=0' name: 'Etcd: Service is unavailable' priority: AVERAGE manual_close: 'YES' @@ -1084,7 +1084,7 @@ zabbix_export: value: Etcd trigger_prototypes: - - expression: '{min(5m)}>{$ETCD.GRPC.ERRORS.MAX.WARN}' + expression: 'min(/Etcd by HTTP/etcd.grpc.handled.rate[{#GRPC.CODE}],5m)>{$ETCD.GRPC.ERRORS.MAX.WARN}' name: 'Etcd: Too many failed gRPC requests with code: {#GRPC.CODE} (over {$ETCD.GRPC.ERRORS.MAX.WARN} in 5m)' priority: WARNING master_item: @@ -1334,7 +1334,7 @@ zabbix_export: newvalue: Up triggers: - - expression: '{Etcd by HTTP:etcd.open.fds.min(5m)}/{Etcd by HTTP:etcd.max.fds.last()}*100>{$ETCD.OPEN.FDS.MAX.WARN}' + expression: 'min(/Etcd by HTTP/etcd.open.fds,5m)/last(/Etcd by HTTP/etcd.max.fds)*100>{$ETCD.OPEN.FDS.MAX.WARN}' name: 'Etcd: Current number of open files is too high (over {$ETCD.OPEN.FDS.MAX.WARN}% for 5m)' priority: WARNING description: | diff --git a/templates/app/exchange/template_app_exchange.yaml b/templates/app/exchange/template_app_exchange.yaml index 23eeb588e85..4582e6d5c1f 100644 --- a/templates/app/exchange/template_app_exchange.yaml +++ b/templates/app/exchange/template_app_exchange.yaml @@ -1,6 +1,6 @@ zabbix_export: version: '5.4' - date: '2021-02-23T11:04:36Z' + date: '2021-05-09T00:00:00Z' groups: - name: Templates/Applications @@ -162,7 +162,7 @@ zabbix_export: value: 'Database {#INSTANCE}' trigger_prototypes: - - expression: '{min({$MS.EXCHANGE.DB.FAULTS.TIME})}>{$MS.EXCHANGE.DB.FAULTS.WARN}' + expression: 'min(/Microsoft Exchange Server 2016 by Zabbix agent/perf_counter_en["\MSExchange Database({#INF.STORE})\Database Page Fault Stalls/sec", {$MS.EXCHANGE.PERF.INTERVAL}],{$MS.EXCHANGE.DB.FAULTS.TIME})>{$MS.EXCHANGE.DB.FAULTS.WARN}' name: 'Information Store [{#INSTANCE}]: Page faults is too high (>{$MS.EXCHANGE.DB.FAULTS.WARN} for {$MS.EXCHANGE.DB.FAULTS.TIME})' priority: AVERAGE description: 'Too much page faults stalls for database "{#INSTANCE}". This counter should be 0 on production servers.' @@ -179,7 +179,7 @@ zabbix_export: value: 'Database {#INSTANCE}' trigger_prototypes: - - expression: '{avg({$MS.EXCHANGE.LOG.STALLS.TIME})}>{$MS.EXCHANGE.LOG.STALLS.WARN}' + expression: 'avg(/Microsoft Exchange Server 2016 by Zabbix agent/perf_counter_en["\MSExchange Database({#INF.STORE})\Log Record Stalls/sec", {$MS.EXCHANGE.PERF.INTERVAL}],{$MS.EXCHANGE.LOG.STALLS.TIME})>{$MS.EXCHANGE.LOG.STALLS.WARN}' name: 'Information Store [{#INSTANCE}]: Log records stalls is too high (>{$MS.EXCHANGE.LOG.STALLS.WARN} for {$MS.EXCHANGE.LOG.STALLS.TIME})' priority: AVERAGE description: 'Stalled log records too high. The average value should be less than 10 threads waiting.' @@ -224,7 +224,7 @@ zabbix_export: value: 'Database {#INSTANCE}' trigger_prototypes: - - expression: '{min({$MS.EXCHANGE.DB.ACTIVE.READ.TIME})}>{$MS.EXCHANGE.DB.ACTIVE.READ.WARN}' + expression: 'min(/Microsoft Exchange Server 2016 by Zabbix agent/perf_counter_en["\MSExchange Database ==> Instances({#INF.STORE}/_Total)\I/O Database Reads (Attached) Average Latency", {$MS.EXCHANGE.PERF.INTERVAL}],{$MS.EXCHANGE.DB.ACTIVE.READ.TIME})>{$MS.EXCHANGE.DB.ACTIVE.READ.WARN}' name: 'Database Counters [{#INSTANCE}]: Average read time latency is too high (>{$MS.EXCHANGE.DB.ACTIVE.READ.WARN}s for {$MS.EXCHANGE.DB.ACTIVE.READ.TIME})' priority: WARNING description: 'Should be less than 20ms on average.' @@ -247,7 +247,7 @@ zabbix_export: value: 'Database {#INSTANCE}' trigger_prototypes: - - expression: '{min({$MS.EXCHANGE.DB.PASSIVE.READ.TIME})}>{$MS.EXCHANGE.DB.PASSIVE.READ.WARN}' + expression: 'min(/Microsoft Exchange Server 2016 by Zabbix agent/perf_counter_en["\MSExchange Database ==> Instances({#INF.STORE}/_Total)\I/O Database Reads (Recovery) Average Latency", {$MS.EXCHANGE.PERF.INTERVAL}],{$MS.EXCHANGE.DB.PASSIVE.READ.TIME})>{$MS.EXCHANGE.DB.PASSIVE.READ.WARN}' name: 'Database Counters [{#INSTANCE}]: Average read time latency is too high (>{$MS.EXCHANGE.DB.PASSIVE.READ.WARN}s for {$MS.EXCHANGE.DB.PASSIVE.READ.TIME})' priority: WARNING description: 'Should be less than 200ms on average.' @@ -281,7 +281,7 @@ zabbix_export: value: 'Database {#INSTANCE}' trigger_prototypes: - - expression: '{min({$MS.EXCHANGE.DB.ACTIVE.WRITE.TIME})}>{$MS.EXCHANGE.DB.ACTIVE.WRITE.WARN}' + expression: 'min(/Microsoft Exchange Server 2016 by Zabbix agent/perf_counter_en["\MSExchange Database ==> Instances({#INF.STORE}/_Total)\I/O Database Writes (Attached) Average Latency", {$MS.EXCHANGE.PERF.INTERVAL}],{$MS.EXCHANGE.DB.ACTIVE.WRITE.TIME})>{$MS.EXCHANGE.DB.ACTIVE.WRITE.WARN}' name: 'Database Counters [{#INSTANCE}]: Average write time latency is too high for {$MS.EXCHANGE.DB.ACTIVE.WRITE.TIME}' priority: WARNING description: 'Should be less than 50ms on average.' @@ -354,7 +354,7 @@ zabbix_export: value: 'Database {#INSTANCE}' trigger_prototypes: - - expression: '{min({$MS.EXCHANGE.RPC.TIME})}>{$MS.EXCHANGE.RPC.WARN}' + expression: 'min(/Microsoft Exchange Server 2016 by Zabbix agent/perf_counter_en["\MSExchangeIS Store({#INSTANCE})\RPC Average Latency", {$MS.EXCHANGE.PERF.INTERVAL}],{$MS.EXCHANGE.RPC.TIME})>{$MS.EXCHANGE.RPC.WARN}' name: 'Information Store [{#INSTANCE}]: RPC Requests latency is too high (>{$MS.EXCHANGE.RPC.WARN}s for {$MS.EXCHANGE.RPC.TIME})' priority: WARNING description: 'Should be less than 50ms at all times, with spikes less than 100ms.' @@ -382,13 +382,13 @@ zabbix_export: value: 'Database {#INSTANCE}' trigger_prototypes: - - expression: '{min({$MS.EXCHANGE.RPC.COUNT.TIME})}>{$MS.EXCHANGE.RPC.COUNT.WARN}' + expression: 'min(/Microsoft Exchange Server 2016 by Zabbix agent/perf_counter_en["\MSExchangeIS Store({#INSTANCE})\RPC requests", {$MS.EXCHANGE.PERF.INTERVAL}],{$MS.EXCHANGE.RPC.COUNT.TIME})>{$MS.EXCHANGE.RPC.COUNT.WARN}' name: 'Information Store [{#INSTANCE}]: RPC Requests total count is too high (>{$MS.EXCHANGE.RPC.COUNT.WARN} for {$MS.EXCHANGE.RPC.COUNT.TIME})' priority: WARNING description: 'Should be below 70 at all times.' trigger_prototypes: - - expression: '{Microsoft Exchange Server 2016 by Zabbix agent:perf_counter_en["\MSExchange Database ==> Instances({#INF.STORE}/_Total)\I/O Database Writes (Recovery) Average Latency", {$MS.EXCHANGE.PERF.INTERVAL}].avg({$MS.EXCHANGE.DB.PASSIVE.WRITE.TIME})}>{Microsoft Exchange Server 2016 by Zabbix agent:perf_counter_en["\MSExchange Database ==> Instances({#INF.STORE}/_Total)\I/O Database Reads (Recovery) Average Latency", {$MS.EXCHANGE.PERF.INTERVAL}].avg({$MS.EXCHANGE.DB.PASSIVE.WRITE.TIME})}' + expression: 'avg(/Microsoft Exchange Server 2016 by Zabbix agent/perf_counter_en["\MSExchange Database ==> Instances({#INF.STORE}/_Total)\I/O Database Writes (Recovery) Average Latency", {$MS.EXCHANGE.PERF.INTERVAL}],{$MS.EXCHANGE.DB.PASSIVE.WRITE.TIME})>avg(/Microsoft Exchange Server 2016 by Zabbix agent/perf_counter_en["\MSExchange Database ==> Instances({#INF.STORE}/_Total)\I/O Database Reads (Recovery) Average Latency", {$MS.EXCHANGE.PERF.INTERVAL}],{$MS.EXCHANGE.DB.PASSIVE.WRITE.TIME})' name: 'Database Counters [{#INSTANCE}]: Average write time latency is higher than read time latency for {$MS.EXCHANGE.DB.PASSIVE.WRITE.TIME}' priority: WARNING description: 'Should be less than the read latency for the same instance, as measured by the MSExchange Database ==> Instances({#INF.STORE}/_Total)\I/O Database Reads (Recovery) Average Latency counter.' @@ -475,7 +475,7 @@ zabbix_export: value: 'MS Exchange' trigger_prototypes: - - expression: '{min({$MS.EXCHANGE.LDAP.TIME})}>{$MS.EXCHANGE.LDAP.WARN}' + expression: 'min(/Microsoft Exchange Server 2016 by Zabbix agent/perf_counter_en["\MSExchange ADAccess Domain Controllers({#INSTANCE})\LDAP Read Time", {$MS.EXCHANGE.PERF.INTERVAL}],{$MS.EXCHANGE.LDAP.TIME})>{$MS.EXCHANGE.LDAP.WARN}' name: 'Domain Controller [{#INSTANCE}]: LDAP read time is too high (>{$MS.EXCHANGE.LDAP.WARN}s for {$MS.EXCHANGE.LDAP.TIME})' priority: AVERAGE description: 'Should be less than 50ms at all times, with spikes less than 100ms.' @@ -498,7 +498,7 @@ zabbix_export: value: 'MS Exchange' trigger_prototypes: - - expression: '{min({$MS.EXCHANGE.LDAP.TIME})}>{$MS.EXCHANGE.LDAP.WARN}' + expression: 'min(/Microsoft Exchange Server 2016 by Zabbix agent/perf_counter_en["\MSExchange ADAccess Domain Controllers({#INSTANCE})\LDAP Search Time", {$MS.EXCHANGE.PERF.INTERVAL}],{$MS.EXCHANGE.LDAP.TIME})>{$MS.EXCHANGE.LDAP.WARN}' name: 'Domain Controller [{#INSTANCE}]: LDAP search time is too high (>{$MS.EXCHANGE.LDAP.WARN}s for {$MS.EXCHANGE.LDAP.TIME})' priority: AVERAGE description: 'Should be less than 50ms at all times, with spikes less than 100ms.' diff --git a/templates/app/exchange_active/template_app_exchange_active.yaml b/templates/app/exchange_active/template_app_exchange_active.yaml index 13791a4f873..5eb1c004825 100644 --- a/templates/app/exchange_active/template_app_exchange_active.yaml +++ b/templates/app/exchange_active/template_app_exchange_active.yaml @@ -1,6 +1,6 @@ zabbix_export: version: '5.4' - date: '2021-02-23T11:04:42Z' + date: '2021-05-09T00:00:00Z' groups: - name: Templates/Applications @@ -174,7 +174,7 @@ zabbix_export: value: 'Database {#INSTANCE}' trigger_prototypes: - - expression: '{min({$MS.EXCHANGE.DB.FAULTS.TIME})}>{$MS.EXCHANGE.DB.FAULTS.WARN}' + expression: 'min(/Microsoft Exchange Server 2016 by Zabbix agent active/perf_counter_en["\MSExchange Database({#INF.STORE})\Database Page Fault Stalls/sec", {$MS.EXCHANGE.PERF.INTERVAL}],{$MS.EXCHANGE.DB.FAULTS.TIME})>{$MS.EXCHANGE.DB.FAULTS.WARN}' name: 'Information Store [{#INSTANCE}]: Page faults is too high (>{$MS.EXCHANGE.DB.FAULTS.WARN} for {$MS.EXCHANGE.DB.FAULTS.TIME})' priority: AVERAGE description: 'Too much page faults stalls for database "{#INSTANCE}". This counter should be 0 on production servers.' @@ -192,7 +192,7 @@ zabbix_export: value: 'Database {#INSTANCE}' trigger_prototypes: - - expression: '{avg({$MS.EXCHANGE.LOG.STALLS.TIME})}>{$MS.EXCHANGE.LOG.STALLS.WARN}' + expression: 'avg(/Microsoft Exchange Server 2016 by Zabbix agent active/perf_counter_en["\MSExchange Database({#INF.STORE})\Log Record Stalls/sec", {$MS.EXCHANGE.PERF.INTERVAL}],{$MS.EXCHANGE.LOG.STALLS.TIME})>{$MS.EXCHANGE.LOG.STALLS.WARN}' name: 'Information Store [{#INSTANCE}]: Log records stalls is too high (>{$MS.EXCHANGE.LOG.STALLS.WARN} for {$MS.EXCHANGE.LOG.STALLS.TIME})' priority: AVERAGE description: 'Stalled log records too high. The average value should be less than 10 threads waiting.' @@ -240,7 +240,7 @@ zabbix_export: value: 'Database {#INSTANCE}' trigger_prototypes: - - expression: '{min({$MS.EXCHANGE.DB.ACTIVE.READ.TIME})}>{$MS.EXCHANGE.DB.ACTIVE.READ.WARN}' + expression: 'min(/Microsoft Exchange Server 2016 by Zabbix agent active/perf_counter_en["\MSExchange Database ==> Instances({#INF.STORE}/_Total)\I/O Database Reads (Attached) Average Latency", {$MS.EXCHANGE.PERF.INTERVAL}],{$MS.EXCHANGE.DB.ACTIVE.READ.TIME})>{$MS.EXCHANGE.DB.ACTIVE.READ.WARN}' name: 'Database Counters [{#INSTANCE}]: Average read time latency is too high (>{$MS.EXCHANGE.DB.ACTIVE.READ.WARN}s for {$MS.EXCHANGE.DB.ACTIVE.READ.TIME})' priority: WARNING description: 'Should be less than 20ms on average.' @@ -264,7 +264,7 @@ zabbix_export: value: 'Database {#INSTANCE}' trigger_prototypes: - - expression: '{min({$MS.EXCHANGE.DB.PASSIVE.READ.TIME})}>{$MS.EXCHANGE.DB.PASSIVE.READ.WARN}' + expression: 'min(/Microsoft Exchange Server 2016 by Zabbix agent active/perf_counter_en["\MSExchange Database ==> Instances({#INF.STORE}/_Total)\I/O Database Reads (Recovery) Average Latency", {$MS.EXCHANGE.PERF.INTERVAL}],{$MS.EXCHANGE.DB.PASSIVE.READ.TIME})>{$MS.EXCHANGE.DB.PASSIVE.READ.WARN}' name: 'Database Counters [{#INSTANCE}]: Average read time latency is too high (>{$MS.EXCHANGE.DB.PASSIVE.READ.WARN}s for {$MS.EXCHANGE.DB.PASSIVE.READ.TIME})' priority: WARNING description: 'Should be less than 200ms on average.' @@ -300,7 +300,7 @@ zabbix_export: value: 'Database {#INSTANCE}' trigger_prototypes: - - expression: '{min({$MS.EXCHANGE.DB.ACTIVE.WRITE.TIME})}>{$MS.EXCHANGE.DB.ACTIVE.WRITE.WARN}' + expression: 'min(/Microsoft Exchange Server 2016 by Zabbix agent active/perf_counter_en["\MSExchange Database ==> Instances({#INF.STORE}/_Total)\I/O Database Writes (Attached) Average Latency", {$MS.EXCHANGE.PERF.INTERVAL}],{$MS.EXCHANGE.DB.ACTIVE.WRITE.TIME})>{$MS.EXCHANGE.DB.ACTIVE.WRITE.WARN}' name: 'Database Counters [{#INSTANCE}]: Average write time latency is too high for {$MS.EXCHANGE.DB.ACTIVE.WRITE.TIME}' priority: WARNING description: 'Should be less than 50ms on average.' @@ -377,7 +377,7 @@ zabbix_export: value: 'Database {#INSTANCE}' trigger_prototypes: - - expression: '{min({$MS.EXCHANGE.RPC.TIME})}>{$MS.EXCHANGE.RPC.WARN}' + expression: 'min(/Microsoft Exchange Server 2016 by Zabbix agent active/perf_counter_en["\MSExchangeIS Store({#INSTANCE})\RPC Average Latency", {$MS.EXCHANGE.PERF.INTERVAL}],{$MS.EXCHANGE.RPC.TIME})>{$MS.EXCHANGE.RPC.WARN}' name: 'Information Store [{#INSTANCE}]: RPC Requests latency is too high (>{$MS.EXCHANGE.RPC.WARN}s for {$MS.EXCHANGE.RPC.TIME})' priority: WARNING description: 'Should be less than 50ms at all times, with spikes less than 100ms.' @@ -407,13 +407,13 @@ zabbix_export: value: 'Database {#INSTANCE}' trigger_prototypes: - - expression: '{min({$MS.EXCHANGE.RPC.COUNT.TIME})}>{$MS.EXCHANGE.RPC.COUNT.WARN}' + expression: 'min(/Microsoft Exchange Server 2016 by Zabbix agent active/perf_counter_en["\MSExchangeIS Store({#INSTANCE})\RPC requests", {$MS.EXCHANGE.PERF.INTERVAL}],{$MS.EXCHANGE.RPC.COUNT.TIME})>{$MS.EXCHANGE.RPC.COUNT.WARN}' name: 'Information Store [{#INSTANCE}]: RPC Requests total count is too high (>{$MS.EXCHANGE.RPC.COUNT.WARN} for {$MS.EXCHANGE.RPC.COUNT.TIME})' priority: WARNING description: 'Should be below 70 at all times.' trigger_prototypes: - - expression: '{Microsoft Exchange Server 2016 by Zabbix agent active:perf_counter_en["\MSExchange Database ==> Instances({#INF.STORE}/_Total)\I/O Database Writes (Recovery) Average Latency", {$MS.EXCHANGE.PERF.INTERVAL}].avg({$MS.EXCHANGE.DB.PASSIVE.WRITE.TIME})}>{Microsoft Exchange Server 2016 by Zabbix agent active:perf_counter_en["\MSExchange Database ==> Instances({#INF.STORE}/_Total)\I/O Database Reads (Recovery) Average Latency", {$MS.EXCHANGE.PERF.INTERVAL}].avg({$MS.EXCHANGE.DB.PASSIVE.WRITE.TIME})}' + expression: 'avg(/Microsoft Exchange Server 2016 by Zabbix agent active/perf_counter_en["\MSExchange Database ==> Instances({#INF.STORE}/_Total)\I/O Database Writes (Recovery) Average Latency", {$MS.EXCHANGE.PERF.INTERVAL}],{$MS.EXCHANGE.DB.PASSIVE.WRITE.TIME})>avg(/Microsoft Exchange Server 2016 by Zabbix agent active/perf_counter_en["\MSExchange Database ==> Instances({#INF.STORE}/_Total)\I/O Database Reads (Recovery) Average Latency", {$MS.EXCHANGE.PERF.INTERVAL}],{$MS.EXCHANGE.DB.PASSIVE.WRITE.TIME})' name: 'Database Counters [{#INSTANCE}]: Average write time latency is higher than read time latency for {$MS.EXCHANGE.DB.PASSIVE.WRITE.TIME}' priority: WARNING description: 'Should be less than the read latency for the same instance, as measured by the MSExchange Database ==> Instances({#INF.STORE}/_Total)\I/O Database Reads (Recovery) Average Latency counter.' @@ -502,7 +502,7 @@ zabbix_export: value: 'MS Exchange' trigger_prototypes: - - expression: '{min({$MS.EXCHANGE.LDAP.TIME})}>{$MS.EXCHANGE.LDAP.WARN}' + expression: 'min(/Microsoft Exchange Server 2016 by Zabbix agent active/perf_counter_en["\MSExchange ADAccess Domain Controllers({#INSTANCE})\LDAP Read Time", {$MS.EXCHANGE.PERF.INTERVAL}],{$MS.EXCHANGE.LDAP.TIME})>{$MS.EXCHANGE.LDAP.WARN}' name: 'Domain Controller [{#INSTANCE}]: LDAP read time is too high (>{$MS.EXCHANGE.LDAP.WARN}s for {$MS.EXCHANGE.LDAP.TIME})' priority: AVERAGE description: 'Should be less than 50ms at all times, with spikes less than 100ms.' @@ -526,7 +526,7 @@ zabbix_export: value: 'MS Exchange' trigger_prototypes: - - expression: '{min({$MS.EXCHANGE.LDAP.TIME})}>{$MS.EXCHANGE.LDAP.WARN}' + expression: 'min(/Microsoft Exchange Server 2016 by Zabbix agent active/perf_counter_en["\MSExchange ADAccess Domain Controllers({#INSTANCE})\LDAP Search Time", {$MS.EXCHANGE.PERF.INTERVAL}],{$MS.EXCHANGE.LDAP.TIME})>{$MS.EXCHANGE.LDAP.WARN}' name: 'Domain Controller [{#INSTANCE}]: LDAP search time is too high (>{$MS.EXCHANGE.LDAP.WARN}s for {$MS.EXCHANGE.LDAP.TIME})' priority: AVERAGE description: 'Should be less than 50ms at all times, with spikes less than 100ms.' diff --git a/templates/app/generic_java_jmx/template_app_generic_java_jmx.yaml b/templates/app/generic_java_jmx/template_app_generic_java_jmx.yaml index d2448d67279..6261a3c8a97 100644 --- a/templates/app/generic_java_jmx/template_app_generic_java_jmx.yaml +++ b/templates/app/generic_java_jmx/template_app_generic_java_jmx.yaml @@ -1,6 +1,6 @@ zabbix_export: version: '5.4' - date: '2021-02-23T11:04:36Z' + date: '2021-05-09T00:00:00Z' groups: - name: Templates/Applications @@ -81,7 +81,7 @@ zabbix_export: value: JMX triggers: - - expression: '{str(Client)}=1' + expression: 'find(/Generic Java JMX/jmx["java.lang:type=Compilation","Name"],,"like","Client")=1' name: 'Compilation: {HOST.NAME} uses suboptimal JIT compiler' priority: INFO manual_close: 'YES' @@ -788,7 +788,7 @@ zabbix_export: value: JMX triggers: - - expression: '{min({$JMX.CPU.LOAD.TIME})}>{$JMX.CPU.LOAD.MAX}' + expression: 'min(/Generic Java JMX/jmx["java.lang:type=OperatingSystem","ProcessCpuLoad"],{$JMX.CPU.LOAD.TIME})>{$JMX.CPU.LOAD.MAX}' name: 'OperatingSystem: Process CPU Load more than {$JMX.CPU.LOAD.MAX}% for {$JMX.CPU.LOAD.TIME}' priority: AVERAGE - @@ -808,7 +808,7 @@ zabbix_export: value: JMX triggers: - - expression: '{nodata(5m)}=1' + expression: 'nodata(/Generic Java JMX/jmx["java.lang:type=Runtime","Uptime"],5m)=1' name: 'Runtime: JVM is not reachable' priority: AVERAGE manual_close: 'YES' @@ -832,7 +832,7 @@ zabbix_export: value: JMX triggers: - - expression: '{str(Server)}<>1' + expression: 'find(/Generic Java JMX/jmx["java.lang:type=Runtime","VmName"],,"like","Server")<>1' name: 'Runtime: {HOST.NAME} runs suboptimal VM type' priority: INFO manual_close: 'YES' @@ -946,55 +946,55 @@ zabbix_export: description: 'The time during which the Non-heap memory utilization may exceed the threshold.' triggers: - - expression: '{Generic Java JMX:jmx["java.lang:type=GarbageCollector,name=ConcurrentMarkSweep","CollectionCount"].last()}>{Generic Java JMX:jmx["java.lang:type=GarbageCollector,name=ParNew","CollectionCount"].last()}' + expression: 'last(/Generic Java JMX/jmx["java.lang:type=GarbageCollector,name=ConcurrentMarkSweep","CollectionCount"])>last(/Generic Java JMX/jmx["java.lang:type=GarbageCollector,name=ParNew","CollectionCount"])' name: 'GarbageCollector: Concurrent Mark Sweep in fire fighting mode' priority: AVERAGE - - expression: '{Generic Java JMX:jmx["java.lang:type=GarbageCollector,name=MarkSweepCompact","CollectionCount"].last()}>{Generic Java JMX:jmx["java.lang:type=GarbageCollector,name=Copy","CollectionCount"].last()}' + expression: 'last(/Generic Java JMX/jmx["java.lang:type=GarbageCollector,name=MarkSweepCompact","CollectionCount"])>last(/Generic Java JMX/jmx["java.lang:type=GarbageCollector,name=Copy","CollectionCount"])' name: 'GarbageCollector: Mark Sweep Compact in fire fighting mode' priority: AVERAGE - - expression: '{Generic Java JMX:jmx["java.lang:type=GarbageCollector,name=PS MarkSweep","CollectionCount"].last()}>{Generic Java JMX:jmx["java.lang:type=GarbageCollector,name=PS Scavenge","CollectionCount"].last()}' + expression: 'last(/Generic Java JMX/jmx["java.lang:type=GarbageCollector,name=PS MarkSweep","CollectionCount"])>last(/Generic Java JMX/jmx["java.lang:type=GarbageCollector,name=PS Scavenge","CollectionCount"])' name: 'GarbageCollector: PS Mark Sweep in fire fighting mode' priority: AVERAGE - - expression: '{Generic Java JMX:jmx["java.lang:type=Memory","HeapMemoryUsage.used"].min({$JMX.HEAP.MEM.USAGE.TIME})}>({Generic Java JMX:jmx["java.lang:type=Memory","HeapMemoryUsage.max"].last()}*{$JMX.HEAP.MEM.USAGE.MAX}/100)' + expression: 'min(/Generic Java JMX/jmx["java.lang:type=Memory","HeapMemoryUsage.used"],{$JMX.HEAP.MEM.USAGE.TIME})>(last(/Generic Java JMX/jmx["java.lang:type=Memory","HeapMemoryUsage.max"])*{$JMX.HEAP.MEM.USAGE.MAX}/100)' name: 'Memory: Heap memory usage more than {$JMX.HEAP.USAGE.MAX}% for {$JMX.HEAP.MEM.USAGE.TIME}' priority: WARNING - - expression: '{Generic Java JMX:jmx["java.lang:type=Memory","NonHeapMemoryUsage.used"].min({$JMX.NONHEAP.MEM.USAGE.TIME})}>({Generic Java JMX:jmx["java.lang:type=Memory","NonHeapMemoryUsage.max"].last()}*{$JMX.NONHEAP.MEM.USAGE.MAX}/100)' + expression: 'min(/Generic Java JMX/jmx["java.lang:type=Memory","NonHeapMemoryUsage.used"],{$JMX.NONHEAP.MEM.USAGE.TIME})>(last(/Generic Java JMX/jmx["java.lang:type=Memory","NonHeapMemoryUsage.max"])*{$JMX.NONHEAP.MEM.USAGE.MAX}/100)' name: 'Memory: Non-Heap memory usage more than {$JMX.NONHEAP.MEM.USAGE.MAX}% for {$JMX.NONHEAP.MEM.USAGE.TIME}' priority: WARNING - - expression: '{Generic Java JMX:jmx["java.lang:type=MemoryPool,name=CMS Old Gen","Usage.used"].min({$JMX.MP.USAGE.TIME:"CMS Old Gen"})}>({Generic Java JMX:jmx["java.lang:type=MemoryPool,name=CMS Old Gen","Usage.max"].last()}*{$JMX.MP.USAGE.MAX:"CMS Old Gen"}/100)' + expression: 'min(/Generic Java JMX/jmx["java.lang:type=MemoryPool,name=CMS Old Gen","Usage.used"],{$JMX.MP.USAGE.TIME:"CMS Old Gen"})>(last(/Generic Java JMX/jmx["java.lang:type=MemoryPool,name=CMS Old Gen","Usage.max"])*{$JMX.MP.USAGE.MAX:"CMS Old Gen"}/100)' name: 'MemoryPool: CMS Old Gen memory usage more than {$JMX.MP.USAGE.MAX:"CMS Old Gen"}% for {$JMX.MP.USAGE.TIME:"CMS Old Gen"}' priority: WARNING - - expression: '{Generic Java JMX:jmx["java.lang:type=MemoryPool,name=CMS Perm Gen","Usage.used"].min({$JMX.MP.USAGE.TIME:"CMS Perm Gen"})}>({Generic Java JMX:jmx["java.lang:type=MemoryPool,name=CMS Perm Gen","Usage.max"].last()}*{$JMX.MP.USAGE.MAX:"CMS Perm Gen"}/100)' + expression: 'min(/Generic Java JMX/jmx["java.lang:type=MemoryPool,name=CMS Perm Gen","Usage.used"],{$JMX.MP.USAGE.TIME:"CMS Perm Gen"})>(last(/Generic Java JMX/jmx["java.lang:type=MemoryPool,name=CMS Perm Gen","Usage.max"])*{$JMX.MP.USAGE.MAX:"CMS Perm Gen"}/100)' name: 'MemoryPool: CMS Perm Gen memory usage more than {$JMX.MP.USAGE.MAX:"CMS Perm Gen"}% for {$JMX.MP.USAGE.TIME:"CMS Perm Gen"}' priority: WARNING - - expression: '{Generic Java JMX:jmx["java.lang:type=MemoryPool,name=Code Cache","Usage.used"].min({$JMX.MP.USAGE.TIME:"Code Cache"})}>({Generic Java JMX:jmx["java.lang:type=MemoryPool,name=Code Cache","Usage.max"].last()}*{$JMX.MP.USAGE.MAX:"Code Cache"}/100)' + expression: 'min(/Generic Java JMX/jmx["java.lang:type=MemoryPool,name=Code Cache","Usage.used"],{$JMX.MP.USAGE.TIME:"Code Cache"})>(last(/Generic Java JMX/jmx["java.lang:type=MemoryPool,name=Code Cache","Usage.max"])*{$JMX.MP.USAGE.MAX:"Code Cache"}/100)' name: 'MemoryPool: Code Cache memory usage more than {$JMX.MP.USAGE.MAX:"Code Cache"}% for {$JMX.MP.USAGE.TIME:"Code Cache"}' priority: WARNING - - expression: '{Generic Java JMX:jmx["java.lang:type=MemoryPool,name=Perm Gen","Usage.used"].min({$JMX.MP.USAGE.TIME:"Perm Gen"})}>({Generic Java JMX:jmx["java.lang:type=MemoryPool,name=Perm Gen","Usage.max"].last()}*{$JMX.MP.USAGE.MAX:"Perm Gen"}/100)' + expression: 'min(/Generic Java JMX/jmx["java.lang:type=MemoryPool,name=Perm Gen","Usage.used"],{$JMX.MP.USAGE.TIME:"Perm Gen"})>(last(/Generic Java JMX/jmx["java.lang:type=MemoryPool,name=Perm Gen","Usage.max"])*{$JMX.MP.USAGE.MAX:"Perm Gen"}/100)' name: 'MemoryPool: Perm Gen memory usage more than {$JMX.MP.USAGE.MAX:"Perm Gen"}% for {$JMX.MP.USAGE.TIME:"Perm Gen"}' priority: WARNING - - expression: '{Generic Java JMX:jmx["java.lang:type=MemoryPool,name=PS Old Gen","Usage.used"].min({$JMX.MP.USAGE.TIME:"PS Old Gen"})}>({Generic Java JMX:jmx["java.lang:type=MemoryPool,name=PS Old Gen","Usage.max"].last()}*{$JMX.MP.USAGE.MAX:"PS Old Gen"}/100)' + expression: 'min(/Generic Java JMX/jmx["java.lang:type=MemoryPool,name=PS Old Gen","Usage.used"],{$JMX.MP.USAGE.TIME:"PS Old Gen"})>(last(/Generic Java JMX/jmx["java.lang:type=MemoryPool,name=PS Old Gen","Usage.max"])*{$JMX.MP.USAGE.MAX:"PS Old Gen"}/100)' name: 'MemoryPool: PS Old Gen memory usage more than {$JMX.MP.USAGE.MAX:"PS Old Gen"}% for {$JMX.MP.USAGE.TIME:"PS Old Gen"}' priority: WARNING - - expression: '{Generic Java JMX:jmx["java.lang:type=MemoryPool,name=PS Perm Gen","Usage.used"].min({$JMX.MP.USAGE.TIME:"PS Perm Gen"})}>({Generic Java JMX:jmx["java.lang:type=MemoryPool,name=PS Perm Gen","Usage.max"].last()}*{$JMX.MP.USAGE.MAX:"PS Perm Gen"}/100)' + expression: 'min(/Generic Java JMX/jmx["java.lang:type=MemoryPool,name=PS Perm Gen","Usage.used"],{$JMX.MP.USAGE.TIME:"PS Perm Gen"})>(last(/Generic Java JMX/jmx["java.lang:type=MemoryPool,name=PS Perm Gen","Usage.max"])*{$JMX.MP.USAGE.MAX:"PS Perm Gen"}/100)' name: 'MemoryPool: PS Perm Gen memory usage more than {$JMX.MP.USAGE.MAX:"PS Perm Gen"}% for {$JMX.MP.USAGE.TIME:"PS Perm Gen"}' priority: WARNING - - expression: '{Generic Java JMX:jmx["java.lang:type=MemoryPool,name=Tenured Gen","Usage.used"].min({$JMX.MP.USAGE.TIME:"Tenured Gen"})}>({Generic Java JMX:jmx["java.lang:type=MemoryPool,name=Tenured Gen","Usage.max"].last()}*{$JMX.MP.USAGE.MAX:"Tenured Gen"}/100)' + expression: 'min(/Generic Java JMX/jmx["java.lang:type=MemoryPool,name=Tenured Gen","Usage.used"],{$JMX.MP.USAGE.TIME:"Tenured Gen"})>(last(/Generic Java JMX/jmx["java.lang:type=MemoryPool,name=Tenured Gen","Usage.max"])*{$JMX.MP.USAGE.MAX:"Tenured Gen"}/100)' name: 'MemoryPool: Tenured Gen memory usage more than {$JMX.MP.USAGE.MAX:"Tenured Gen"}% for {$JMX.MP.USAGE.TIME:"Tenured Gen"}' priority: WARNING - - expression: '{Generic Java JMX:jmx["java.lang:type=OperatingSystem","OpenFileDescriptorCount"].min({$JMX.FILE.DESCRIPTORS.TIME})}>({Generic Java JMX:jmx["java.lang:type=OperatingSystem","MaxFileDescriptorCount"].last()}*{$JMX.FILE.DESCRIPTORS.MAX}/100)' + expression: 'min(/Generic Java JMX/jmx["java.lang:type=OperatingSystem","OpenFileDescriptorCount"],{$JMX.FILE.DESCRIPTORS.TIME})>(last(/Generic Java JMX/jmx["java.lang:type=OperatingSystem","MaxFileDescriptorCount"])*{$JMX.FILE.DESCRIPTORS.MAX}/100)' name: 'OperatingSystem: Opened file descriptor count more than {$JMX.FILE.DESCRIPTORS.MAX}% of maximum' priority: WARNING graphs: diff --git a/templates/app/gitlab_http/template_app_gitlab_http.yaml b/templates/app/gitlab_http/template_app_gitlab_http.yaml index 39ce916181a..f98db4eebc5 100644 --- a/templates/app/gitlab_http/template_app_gitlab_http.yaml +++ b/templates/app/gitlab_http/template_app_gitlab_http.yaml @@ -1,6 +1,6 @@ zabbix_export: version: '5.4' - date: '2021-02-23T11:04:37Z' + date: '2021-05-09T00:00:00Z' groups: - name: Templates/Applications @@ -203,7 +203,7 @@ zabbix_export: value: GitLab triggers: - - expression: '{diff()}=1 and {strlen()}>0' + expression: '(last(/GitLab by HTTP/gitlab.deployments.version,#1)<>last(/GitLab by HTTP/gitlab.deployments.version,#2))=1 and length(last(/GitLab by HTTP/gitlab.deployments.version))>0' name: 'GitLab: Version has changed (new version: {ITEM.VALUE})' priority: INFO description: 'GitLab version has changed. Ack to close.' @@ -300,7 +300,7 @@ zabbix_export: value: GitLab triggers: - - expression: '{min(5m)}>{$GITLAB.HTTP.FAIL.MAX.WARN}' + expression: 'min(/GitLab by HTTP/gitlab.http.requests.5xx.rate,5m)>{$GITLAB.HTTP.FAIL.MAX.WARN}' name: 'GitLab: Too many HTTP requests failures (over {$GITLAB.HTTP.FAIL.MAX.WARN} for 5m)''' priority: WARNING description: '"Too many requests failed on GitLab instance with 5xx HTTP code"' @@ -365,7 +365,7 @@ zabbix_export: value: GitLab triggers: - - expression: '{last()}=0' + expression: 'last(/GitLab by HTTP/gitlab.liveness)=0' name: 'GitLab: Liveness check was failed' priority: HIGH description: 'The application server is not running or Rails Controllers are deadlocked.' @@ -520,13 +520,13 @@ zabbix_export: value: GitLab triggers: - - expression: '{last()}=0' + expression: 'last(/GitLab by HTTP/gitlab.readiness)=0' name: 'GitLab: Gitlab instance is not able to accept traffic' priority: HIGH dependencies: - name: 'GitLab: Liveness check was failed' - expression: '{GitLab by HTTP:gitlab.liveness.last()}=0' + expression: 'last(/GitLab by HTTP/gitlab.liveness)=0' - name: 'GitLab: Redis: Client exceptions rate, cache' type: DEPENDENT @@ -553,7 +553,7 @@ zabbix_export: value: GitLab triggers: - - expression: '{min(5m)}>{$GITLAB.REDIS.FAIL.MAX.WARN}' + expression: 'min(/GitLab by HTTP/gitlab.redis.client_exceptions.cache.rate,5m)>{$GITLAB.REDIS.FAIL.MAX.WARN}' name: 'GitLab: Too many Redis cache client exceptions (over {$GITLAB.REDIS.FAIL.MAX.WARN} for 5m)' priority: WARNING description: '"Too many Redis client exceptions during to requests to Redis instance cache."' @@ -583,7 +583,7 @@ zabbix_export: value: GitLab triggers: - - expression: '{min(5m)}>{$GITLAB.REDIS.FAIL.MAX.WARN}' + expression: 'min(/GitLab by HTTP/gitlab.redis.client_exceptions.queues.rate,5m)>{$GITLAB.REDIS.FAIL.MAX.WARN}' name: 'GitLab: Too many Redis queues client exceptions (over {$GITLAB.REDIS.FAIL.MAX.WARN} for 5m)' priority: WARNING description: '"Too many Redis client exceptions during to requests to Redis instance queues."' @@ -613,7 +613,7 @@ zabbix_export: value: GitLab triggers: - - expression: '{min(5m)}>{$GITLAB.REDIS.FAIL.MAX.WARN}' + expression: 'min(/GitLab by HTTP/gitlab.redis.client_exceptions.shared_state.rate,5m)>{$GITLAB.REDIS.FAIL.MAX.WARN}' name: 'GitLab: Too many Redis shared_state client exceptions (over {$GITLAB.REDIS.FAIL.MAX.WARN} for 5m)' priority: WARNING description: '"Too many Redis client exceptions during to requests to Redis instance shared_state."' @@ -919,7 +919,7 @@ zabbix_export: value: GitLab triggers: - - expression: '{nodata(30m)}=1' + expression: 'nodata(/GitLab by HTTP/gitlab.ruby.threads_running,30m)=1' name: 'GitLab: Failed to fetch info data (or no data for 30m)' priority: WARNING description: 'Zabbix has not received data for metrics for the last 30 minutes' @@ -927,7 +927,7 @@ zabbix_export: dependencies: - name: 'GitLab: Liveness check was failed' - expression: '{GitLab by HTTP:gitlab.liveness.last()}=0' + expression: 'last(/GitLab by HTTP/gitlab.liveness)=0' - name: 'GitLab: User CAPTCHA logins, total' type: DEPENDENT @@ -1129,7 +1129,7 @@ zabbix_export: value: 'GitLab: Puma stats' trigger_prototypes: - - expression: '{min(15m)}>{$GITLAB.PUMA.QUEUE.MAX.WARN}' + expression: 'min(/GitLab by HTTP/gitlab.puma.queued_connections[{#SINGLETON}],15m)>{$GITLAB.PUMA.QUEUE.MAX.WARN}' name: 'GitLab: Puma is queueing requests (over {$GITLAB.PUMA.QUEUE.MAX.WARN}% for 15m)' priority: WARNING - @@ -1206,7 +1206,7 @@ zabbix_export: value: 'GitLab: Puma stats' trigger_prototypes: - - expression: '{GitLab by HTTP:gitlab.puma.active_connections[{#SINGLETON}].min(5m)}/{GitLab by HTTP:gitlab.puma.max_threads[{#SINGLETON}].last()}*100>{$GITLAB.PUMA.UTILIZATION.MAX.WARN}' + expression: 'min(/GitLab by HTTP/gitlab.puma.active_connections[{#SINGLETON}],5m)/last(/GitLab by HTTP/gitlab.puma.max_threads[{#SINGLETON}])*100>{$GITLAB.PUMA.UTILIZATION.MAX.WARN}' name: 'GitLab: Puma instance thread utilization is too high (over {$GITLAB.PUMA.UTILIZATION.MAX.WARN}% for 5m)' priority: WARNING url: '{$GITLAB.URL}:{$GITLAB.PORT}/-/metrics' @@ -1264,7 +1264,7 @@ zabbix_export: value: 'GitLab: Unicorn stats' trigger_prototypes: - - expression: '{min(5m)}>{$GITLAB.UNICORN.QUEUE.MAX.WARN}' + expression: 'min(/GitLab by HTTP/gitlab.unicorn.queued_connections[{#SINGLETON}],5m)>{$GITLAB.UNICORN.QUEUE.MAX.WARN}' name: 'GitLab: Unicorn is queueing requests (over {$GITLAB.UNICORN.QUEUE.MAX.WARN}% for 5m)' priority: WARNING - @@ -1287,7 +1287,7 @@ zabbix_export: value: 'GitLab: Unicorn stats' trigger_prototypes: - - expression: '{GitLab by HTTP:gitlab.unicorn.active_connections[{#SINGLETON}].min(5m)}/{GitLab by HTTP:gitlab.unicorn.unicorn_workers[{#SINGLETON}].last()}*100>{$GITLAB.UNICORN.UTILIZATION.MAX.WARN}' + expression: 'min(/GitLab by HTTP/gitlab.unicorn.active_connections[{#SINGLETON}],5m)/last(/GitLab by HTTP/gitlab.unicorn.unicorn_workers[{#SINGLETON}])*100>{$GITLAB.UNICORN.UTILIZATION.MAX.WARN}' name: 'GitLab: Unicorn worker utilization is too high (over {$GITLAB.UNICORN.UTILIZATION.MAX.WARN}% for 5m)' priority: WARNING url: '{$GITLAB.URL}:{$GITLAB.PORT}/-/metrics' @@ -1350,7 +1350,7 @@ zabbix_export: newvalue: Ok triggers: - - expression: '{GitLab by HTTP:gitlab.ruby.file_descriptors.max.min(5m)}/{GitLab by HTTP:gitlab.ruby.process_max_fds.last()}*100>{$GITLAB.OPEN.FDS.MAX.WARN}' + expression: 'min(/GitLab by HTTP/gitlab.ruby.file_descriptors.max,5m)/last(/GitLab by HTTP/gitlab.ruby.process_max_fds)*100>{$GITLAB.OPEN.FDS.MAX.WARN}' name: 'GitLab: Current number of open files is too high (over {$GITLAB.OPEN.FDS.MAX.WARN}% for 5m)' priority: WARNING graphs: diff --git a/templates/app/hadoop_http/template_app_hadoop_http.yaml b/templates/app/hadoop_http/template_app_hadoop_http.yaml index 5f326e37802..5d02c82b2f9 100644 --- a/templates/app/hadoop_http/template_app_hadoop_http.yaml +++ b/templates/app/hadoop_http/template_app_hadoop_http.yaml @@ -1,6 +1,6 @@ zabbix_export: version: '5.4' - date: '2021-02-23T11:04:43Z' + date: '2021-05-09T00:00:00Z' groups: - name: Templates/Applications @@ -183,7 +183,7 @@ zabbix_export: value: Hadoop triggers: - - expression: '{min(15m)}>0' + expression: 'min(/Hadoop by HTTP/hadoop.namenode.missing_blocks,15m)>0' name: 'NameNode: Cluster has missing blocks' priority: AVERAGE description: 'A missing block is far worse than a corrupt block, because a missing block cannot be recovered by copying a replica.' @@ -211,7 +211,7 @@ zabbix_export: value: Hadoop triggers: - - expression: '{min(5m)}>0' + expression: 'min(/Hadoop by HTTP/hadoop.namenode.num_dead_data_nodes,5m)>0' name: 'NameNode: Cluster has DataNodes in Dead state' priority: AVERAGE description: 'The death of a DataNode causes a flurry of network activity, as the NameNode initiates replication of blocks lost on the dead nodes.' @@ -303,7 +303,7 @@ zabbix_export: value: Hadoop triggers: - - expression: '{max(15m)}<{$HADOOP.CAPACITY_REMAINING.MIN.WARN}' + expression: 'max(/Hadoop by HTTP/hadoop.namenode.percent_remaining,15m)<{$HADOOP.CAPACITY_REMAINING.MIN.WARN}' name: 'NameNode: Cluster capacity remaining is low (below {$HADOOP.CAPACITY_REMAINING.MIN.WARN}% for 15m)' priority: WARNING description: 'A good practice is to ensure that disk use never exceeds 80 percent capacity.' @@ -406,7 +406,7 @@ zabbix_export: value: Hadoop triggers: - - expression: '{nodata(30m)}=1' + expression: 'nodata(/Hadoop by HTTP/hadoop.namenode.uptime,30m)=1' name: 'NameNode: Failed to fetch NameNode API page (or no data for 30m)' priority: WARNING description: 'Zabbix has not received data for items for the last 30 minutes.' @@ -414,9 +414,9 @@ zabbix_export: dependencies: - name: 'NameNode: Service is unavailable' - expression: '{Hadoop by HTTP:net.tcp.service["tcp","{$HADOOP.NAMENODE.HOST}","{$HADOOP.NAMENODE.PORT}"].last()}=0' + expression: 'last(/Hadoop by HTTP/net.tcp.service["tcp","{$HADOOP.NAMENODE.HOST}","{$HADOOP.NAMENODE.PORT}"])=0' - - expression: '{last()}<10m' + expression: 'last(/Hadoop by HTTP/hadoop.namenode.uptime)<10m' name: 'NameNode: Service has been restarted (uptime < 10m)' priority: INFO description: 'Uptime is less than 10 minutes' @@ -441,7 +441,7 @@ zabbix_export: value: Hadoop triggers: - - expression: '{min(15m)}>0' + expression: 'min(/Hadoop by HTTP/hadoop.namenode.volume_failures_total,15m)>0' name: 'NameNode: Cluster has volume failures' priority: AVERAGE description: 'HDFS now allows for disks to fail in place, without affecting DataNode operations, until a threshold value is reached. This is set on each DataNode via the dfs.datanode.failed.volumes.tolerated property; it defaults to 0, meaning that any volume failure will shut down the DataNode; on a production cluster where DataNodes typically have 6, 8, or 12 disks, setting this parameter to 1 or 2 is typically the best practice.' @@ -498,7 +498,7 @@ zabbix_export: value: Hadoop triggers: - - expression: '{max(5m)}=0' + expression: 'max(/Hadoop by HTTP/hadoop.resourcemanager.num_active_nm,5m)=0' name: 'ResourceManager: Cluster has no active NodeManagers' priority: HIGH description: 'Cluster is unable to execute any jobs without at least one NodeManager.' @@ -620,7 +620,7 @@ zabbix_export: value: Hadoop triggers: - - expression: '{min(15m)}>0' + expression: 'min(/Hadoop by HTTP/hadoop.resourcemanager.num_unhealthy_nm,15m)>0' name: 'ResourceManager: Cluster has unhealthy NodeManagers' priority: AVERAGE description: 'YARN considers any node with disk utilization exceeding the value specified under the property yarn.nodemanager.disk-health-checker.max-disk-utilization-per-disk-percentage (in yarn-site.xml) to be unhealthy. Ample disk space is critical to ensure uninterrupted operation of a Hadoop cluster, and large numbers of unhealthyNodes (the number to alert on depends on the size of your cluster) should be quickly investigated and resolved.' @@ -669,7 +669,7 @@ zabbix_export: value: Hadoop triggers: - - expression: '{nodata(30m)}=1' + expression: 'nodata(/Hadoop by HTTP/hadoop.resourcemanager.uptime,30m)=1' name: 'ResourceManager: Failed to fetch ResourceManager API page (or no data for 30m)' priority: WARNING description: 'Zabbix has not received data for items for the last 30 minutes.' @@ -677,9 +677,9 @@ zabbix_export: dependencies: - name: 'ResourceManager: Service is unavailable' - expression: '{Hadoop by HTTP:net.tcp.service["tcp","{$HADOOP.RESOURCEMANAGER.HOST}","{$HADOOP.RESOURCEMANAGER.PORT}"].last()}=0' + expression: 'last(/Hadoop by HTTP/net.tcp.service["tcp","{$HADOOP.RESOURCEMANAGER.HOST}","{$HADOOP.RESOURCEMANAGER.PORT}"])=0' - - expression: '{last()}<10m' + expression: 'last(/Hadoop by HTTP/hadoop.resourcemanager.uptime)<10m' name: 'ResourceManager: Service has been restarted (uptime < 10m)' priority: INFO description: 'Uptime is less than 10 minutes' @@ -698,14 +698,14 @@ zabbix_export: value: Hadoop triggers: - - expression: '{min(5m)}>{$HADOOP.NAMENODE.RESPONSE_TIME.MAX.WARN}' + expression: 'min(/Hadoop by HTTP/net.tcp.service.perf["tcp","{$HADOOP.NAMENODE.HOST}","{$HADOOP.NAMENODE.PORT}"],5m)>{$HADOOP.NAMENODE.RESPONSE_TIME.MAX.WARN}' name: 'NameNode: Service response time is too high (over {$HADOOP.NAMENODE.RESPONSE_TIME.MAX.WARN} for 5m)' priority: WARNING manual_close: 'YES' dependencies: - name: 'NameNode: Service is unavailable' - expression: '{Hadoop by HTTP:net.tcp.service["tcp","{$HADOOP.NAMENODE.HOST}","{$HADOOP.NAMENODE.PORT}"].last()}=0' + expression: 'last(/Hadoop by HTTP/net.tcp.service["tcp","{$HADOOP.NAMENODE.HOST}","{$HADOOP.NAMENODE.PORT}"])=0' - name: 'ResourceManager: Service response time' type: SIMPLE @@ -720,14 +720,14 @@ zabbix_export: value: Hadoop triggers: - - expression: '{min(5m)}>{$HADOOP.RESOURCEMANAGER.RESPONSE_TIME.MAX.WARN}' + expression: 'min(/Hadoop by HTTP/net.tcp.service.perf["tcp","{$HADOOP.RESOURCEMANAGER.HOST}","{$HADOOP.RESOURCEMANAGER.PORT}"],5m)>{$HADOOP.RESOURCEMANAGER.RESPONSE_TIME.MAX.WARN}' name: 'ResourceManager: Service response time is too high (over {$HADOOP.RESOURCEMANAGER.RESPONSE_TIME.MAX.WARN} for 5m)' priority: WARNING manual_close: 'YES' dependencies: - name: 'ResourceManager: Service is unavailable' - expression: '{Hadoop by HTTP:net.tcp.service["tcp","{$HADOOP.RESOURCEMANAGER.HOST}","{$HADOOP.RESOURCEMANAGER.PORT}"].last()}=0' + expression: 'last(/Hadoop by HTTP/net.tcp.service["tcp","{$HADOOP.RESOURCEMANAGER.HOST}","{$HADOOP.RESOURCEMANAGER.PORT}"])=0' - name: 'NameNode: Service status' type: SIMPLE @@ -747,7 +747,7 @@ zabbix_export: value: Hadoop triggers: - - expression: '{last()}=0' + expression: 'last(/Hadoop by HTTP/net.tcp.service["tcp","{$HADOOP.NAMENODE.HOST}","{$HADOOP.NAMENODE.PORT}"])=0' name: 'NameNode: Service is unavailable' priority: AVERAGE manual_close: 'YES' @@ -770,7 +770,7 @@ zabbix_export: value: Hadoop triggers: - - expression: '{last()}=0' + expression: 'last(/Hadoop by HTTP/net.tcp.service["tcp","{$HADOOP.RESOURCEMANAGER.HOST}","{$HADOOP.RESOURCEMANAGER.PORT}"])=0' name: 'ResourceManager: Service is unavailable' priority: AVERAGE manual_close: 'YES' @@ -937,7 +937,7 @@ zabbix_export: value: 'Hadoop DataNode {#HOSTNAME}' trigger_prototypes: - - expression: '{last()}<>"Live"' + expression: 'last(/Hadoop by HTTP/hadoop.datanode.oper_state[{#HOSTNAME}])<>"Live"' name: '{#HOSTNAME}: DataNode has state {ITEM.VALUE}.' priority: AVERAGE description: 'The state is different from normal.' @@ -985,7 +985,7 @@ zabbix_export: value: 'Hadoop DataNode {#HOSTNAME}' trigger_prototypes: - - expression: '{nodata(30m)}=1' + expression: 'nodata(/Hadoop by HTTP/hadoop.datanode.uptime[{#HOSTNAME}],30m)=1' name: '{#HOSTNAME}: Failed to fetch DataNode API page (or no data for 30m)' priority: WARNING description: 'Zabbix has not received data for items for the last 30 minutes.' @@ -993,9 +993,9 @@ zabbix_export: dependencies: - name: '{#HOSTNAME}: DataNode has state {ITEM.VALUE}.' - expression: '{Hadoop by HTTP:hadoop.datanode.oper_state[{#HOSTNAME}].last()}<>"Live"' + expression: 'last(/Hadoop by HTTP/hadoop.datanode.oper_state[{#HOSTNAME}])<>"Live"' - - expression: '{last()}<10m' + expression: 'last(/Hadoop by HTTP/hadoop.datanode.uptime[{#HOSTNAME}])<10m' name: '{#HOSTNAME}: Service has been restarted (uptime < 10m)' priority: INFO description: 'Uptime is less than 10 minutes' @@ -1246,7 +1246,7 @@ zabbix_export: value: 'Hadoop NodeManager {#HOSTNAME}' trigger_prototypes: - - expression: '{last()}<>"RUNNING"' + expression: 'last(/Hadoop by HTTP/hadoop.nodemanager.state[{#HOSTNAME}])<>"RUNNING"' name: '{#HOSTNAME}: NodeManager has state {ITEM.VALUE}.' priority: AVERAGE description: 'The state is different from normal.' @@ -1275,7 +1275,7 @@ zabbix_export: value: 'Hadoop NodeManager {#HOSTNAME}' trigger_prototypes: - - expression: '{nodata(30m)}=1' + expression: 'nodata(/Hadoop by HTTP/hadoop.nodemanager.uptime[{#HOSTNAME}],30m)=1' name: '{#HOSTNAME}: Failed to fetch NodeManager API page (or no data for 30m)' priority: WARNING description: 'Zabbix has not received data for items for the last 30 minutes.' @@ -1283,9 +1283,9 @@ zabbix_export: dependencies: - name: '{#HOSTNAME}: NodeManager has state {ITEM.VALUE}.' - expression: '{Hadoop by HTTP:hadoop.nodemanager.state[{#HOSTNAME}].last()}<>"RUNNING"' + expression: 'last(/Hadoop by HTTP/hadoop.nodemanager.state[{#HOSTNAME}])<>"RUNNING"' - - expression: '{last()}<10m' + expression: 'last(/Hadoop by HTTP/hadoop.nodemanager.uptime[{#HOSTNAME}])<10m' name: '{#HOSTNAME}: Service has been restarted (uptime < 10m)' priority: INFO description: 'Uptime is less than 10 minutes' diff --git a/templates/app/haproxy_agent/template_app_haproxy_agent.yaml b/templates/app/haproxy_agent/template_app_haproxy_agent.yaml index a180a63809d..7809aec3dea 100644 --- a/templates/app/haproxy_agent/template_app_haproxy_agent.yaml +++ b/templates/app/haproxy_agent/template_app_haproxy_agent.yaml @@ -1,6 +1,6 @@ zabbix_export: version: '5.4' - date: '2021-04-22T11:27:36Z' + date: '2021-05-09T00:00:00Z' groups: - name: Templates/Applications @@ -54,7 +54,7 @@ zabbix_export: value: HAProxy triggers: - - expression: '{last()}<10m' + expression: 'last(/HAProxy by Zabbix agent/haproxy.uptime)<10m' name: 'HAProxy: has been restarted (uptime < 10m)' priority: INFO description: 'Uptime is less than 10 minutes' @@ -86,7 +86,7 @@ zabbix_export: value: HAProxy triggers: - - expression: '{diff()}=1 and {strlen()}>0' + expression: '(last(/HAProxy by Zabbix agent/haproxy.version,#1)<>last(/HAProxy by Zabbix agent/haproxy.version,#2))=1 and length(last(/HAProxy by Zabbix agent/haproxy.version))>0' name: 'HAProxy: Version has changed (new version: {ITEM.VALUE})' priority: INFO description: 'HAProxy version has changed. Ack to close.' @@ -103,14 +103,14 @@ zabbix_export: value: HAProxy triggers: - - expression: '{min(5m)}>{$HAPROXY.RESPONSE_TIME.MAX.WARN}' + 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 (over {$HAPROXY.RESPONSE_TIME.MAX.WARN} for 5m)' priority: WARNING manual_close: 'YES' dependencies: - name: 'HAProxy: Service is down' - expression: '{HAProxy by Zabbix agent:net.tcp.service["{$HAPROXY.STATS.SCHEME}","{HOST.CONN}","{$HAPROXY.STATS.PORT}"].last()}=0' + expression: 'last(/HAProxy by Zabbix agent/net.tcp.service["{$HAPROXY.STATS.SCHEME}","{HOST.CONN}","{$HAPROXY.STATS.PORT}"])=0' - name: 'HAProxy: Service status' key: 'net.tcp.service["{$HAPROXY.STATS.SCHEME}","{HOST.CONN}","{$HAPROXY.STATS.PORT}"]' @@ -128,7 +128,7 @@ zabbix_export: value: HAProxy triggers: - - expression: '{last()}=0' + 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' @@ -253,7 +253,7 @@ zabbix_export: value: 'HAProxy backend {#PXNAME}' trigger_prototypes: - - expression: '{min(5m)}>{$HAPROXY.BACK_ERESP.MAX.WARN}' + 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 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}.' @@ -277,7 +277,7 @@ zabbix_export: value: 'HAProxy backend {#PXNAME}' trigger_prototypes: - - expression: '{min(5m)}>{$HAPROXY.BACK_QCUR.MAX.WARN}' + 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 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}.' @@ -307,7 +307,7 @@ zabbix_export: value: 'HAProxy backend {#PXNAME}' trigger_prototypes: - - expression: '{min(5m)}>{$HAPROXY.BACK_QTIME.MAX.WARN}' + 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 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}.' @@ -337,7 +337,7 @@ zabbix_export: value: 'HAProxy backend {#PXNAME}' trigger_prototypes: - - expression: '{min(5m)}>{$HAPROXY.BACK_RTIME.MAX.WARN}' + 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 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}.' @@ -370,7 +370,7 @@ zabbix_export: value: 'HAProxy backend {#PXNAME}' trigger_prototypes: - - expression: '{max(#5)}=0' + expression: 'max(/HAProxy by Zabbix agent/haproxy.backend.status[{#PXNAME}:{#SVNAME}],#5)=0' name: 'HAProxy backend {#PXNAME}: Server is DOWN' priority: AVERAGE description: 'Backend is not available.' @@ -531,7 +531,7 @@ zabbix_export: value: 'HAProxy TCP Backend {#PXNAME}' trigger_prototypes: - - expression: '{min(5m)}>{$HAPROXY.BACK_ERESP.MAX.WARN}' + expression: 'min(/HAProxy by Zabbix agent/haproxy.backend_tcp.eresp.rate[{#PXNAME}:{#SVNAME}],5m)>{$HAPROXY.BACK_ERESP.MAX.WARN}' name: 'HAProxy TCP 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}.' @@ -555,7 +555,7 @@ zabbix_export: value: 'HAProxy TCP Backend {#PXNAME}' trigger_prototypes: - - expression: '{min(5m)}>{$HAPROXY.BACK_QCUR.MAX.WARN}' + expression: 'min(/HAProxy by Zabbix agent/haproxy.backend_tcp.qcur[{#PXNAME}:{#SVNAME}],5m)>{$HAPROXY.BACK_QCUR.MAX.WARN}' name: 'HAProxy TCP 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}.' @@ -585,7 +585,7 @@ zabbix_export: value: 'HAProxy TCP Backend {#PXNAME}' trigger_prototypes: - - expression: '{min(5m)}>{$HAPROXY.BACK_QTIME.MAX.WARN}' + expression: 'min(/HAProxy by Zabbix agent/haproxy.backend_tcp.qtime[{#PXNAME}:{#SVNAME}],5m)>{$HAPROXY.BACK_QTIME.MAX.WARN}' name: 'HAProxy TCP 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}.' @@ -615,7 +615,7 @@ zabbix_export: value: 'HAProxy TCP Backend {#PXNAME}' trigger_prototypes: - - expression: '{min(5m)}>{$HAPROXY.BACK_RTIME.MAX.WARN}' + expression: 'min(/HAProxy by Zabbix agent/haproxy.backend_tcp.rtime[{#PXNAME}:{#SVNAME}],5m)>{$HAPROXY.BACK_RTIME.MAX.WARN}' name: 'HAProxy TCP 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}.' @@ -648,7 +648,7 @@ zabbix_export: value: 'HAProxy TCP Backend {#PXNAME}' trigger_prototypes: - - expression: '{max(#5)}=0' + expression: 'max(/HAProxy by Zabbix agent/haproxy.backend_tcp.status[{#PXNAME}:{#SVNAME}],#5)=0' name: 'HAProxy TCP Backend {#PXNAME}: Server is DOWN' priority: AVERAGE description: 'Backend is not available.' @@ -820,7 +820,7 @@ zabbix_export: value: 'HAProxy frontend {#PXNAME}' trigger_prototypes: - - expression: '{min(5m)}>{$HAPROXY.FRONT_DREQ.MAX.WARN}' + 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 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}.' @@ -848,7 +848,7 @@ zabbix_export: value: 'HAProxy frontend {#PXNAME}' trigger_prototypes: - - expression: '{min(5m)}>{$HAPROXY.FRONT_EREQ.MAX.WARN}' + 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 more than {$HAPROXY.FRONT_EREQ.MAX.WARN} for 5m' priority: WARNING description: 'Number of request errors is more than {$HAPROXY.FRONT_EREQ.MAX.WARN}.' @@ -1045,7 +1045,7 @@ zabbix_export: history: 7d value_type: FLOAT units: '%' - params: 'last(haproxy.frontend.scur[{#PXNAME}:{#SVNAME}]) / last(haproxy.frontend.slim[{#PXNAME}:{#SVNAME}]) * 100' + params: 'last(//haproxy.frontend.scur[{#PXNAME}:{#SVNAME}]) / last(//haproxy.frontend.slim[{#PXNAME}:{#SVNAME}]) * 100' description: 'Percentage of sessions used (scur / slim * 100).' tags: - @@ -1053,7 +1053,7 @@ zabbix_export: value: 'HAProxy frontend {#PXNAME}' trigger_prototypes: - - expression: '{min(5m)}>{$HAPROXY.FRONT_SUTIL.MAX.WARN}' + expression: 'min(/HAProxy by Zabbix agent/haproxy.frontend.sutil[{#PXNAME}:{#SVNAME}],5m)>{$HAPROXY.FRONT_SUTIL.MAX.WARN}' 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.' @@ -1244,7 +1244,7 @@ zabbix_export: value: 'HAProxy TCP Frontend {#PXNAME}' trigger_prototypes: - - expression: '{min(5m)}>{$HAPROXY.FRONT_DREQ.MAX.WARN}' + expression: 'min(/HAProxy by Zabbix agent/haproxy.frontend_tcp.dreq.rate[{#PXNAME}:{#SVNAME}],5m)>{$HAPROXY.FRONT_DREQ.MAX.WARN}' name: 'HAProxy TCP 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}.' @@ -1272,7 +1272,7 @@ zabbix_export: value: 'HAProxy TCP Frontend {#PXNAME}' trigger_prototypes: - - expression: '{min(5m)}>{$HAPROXY.FRONT_EREQ.MAX.WARN}' + expression: 'min(/HAProxy by Zabbix agent/haproxy.frontend_tcp.ereq.rate[{#PXNAME}:{#SVNAME}],5m)>{$HAPROXY.FRONT_EREQ.MAX.WARN}' name: 'HAProxy TCP 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}.' @@ -1359,7 +1359,7 @@ zabbix_export: history: 7d value_type: FLOAT units: '%' - params: 'last(haproxy.frontend_tcp.scur[{#PXNAME}:{#SVNAME}]) / last(haproxy.frontend_tcp.slim[{#PXNAME}:{#SVNAME}]) * 100' + params: 'last(//haproxy.frontend_tcp.scur[{#PXNAME}:{#SVNAME}]) / last(//haproxy.frontend_tcp.slim[{#PXNAME}:{#SVNAME}]) * 100' description: 'Percentage of sessions used (scur / slim * 100).' tags: - @@ -1367,7 +1367,7 @@ zabbix_export: value: 'HAProxy TCP Frontend {#PXNAME}' trigger_prototypes: - - expression: '{min(5m)}>{$HAPROXY.FRONT_SUTIL.MAX.WARN}' + expression: 'min(/HAProxy by Zabbix agent/haproxy.frontend_tcp.sutil[{#PXNAME}:{#SVNAME}],5m)>{$HAPROXY.FRONT_SUTIL.MAX.WARN}' name: 'HAProxy TCP 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.' @@ -1515,7 +1515,7 @@ zabbix_export: value: 'HAProxy {#PXNAME} {#SVNAME}' trigger_prototypes: - - expression: '{min(5m)}>{$HAPROXY.SERVER_ERESP.MAX.WARN}' + 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 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}.' @@ -1583,7 +1583,7 @@ zabbix_export: value: 'HAProxy {#PXNAME} {#SVNAME}' trigger_prototypes: - - expression: '{min(5m)}>{$HAPROXY.SERVER_QCUR.MAX.WARN}' + 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 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}.' @@ -1613,7 +1613,7 @@ zabbix_export: value: 'HAProxy {#PXNAME} {#SVNAME}' trigger_prototypes: - - expression: '{min(5m)}>{$HAPROXY.SERVER_QTIME.MAX.WARN}' + 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 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}.' @@ -1643,7 +1643,7 @@ zabbix_export: value: 'HAProxy {#PXNAME} {#SVNAME}' trigger_prototypes: - - expression: '{min(5m)}>{$HAPROXY.SERVER_RTIME.MAX.WARN}' + 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 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}.' @@ -1676,7 +1676,7 @@ zabbix_export: value: 'HAProxy {#PXNAME} {#SVNAME}' trigger_prototypes: - - expression: '{max(#5)}=0' + expression: 'max(/HAProxy by Zabbix agent/haproxy.server.status[{#PXNAME}:{#SVNAME}],#5)=0' name: 'HAProxy {#PXNAME} {#SVNAME}: Server is DOWN' priority: WARNING description: 'Server is not available.' @@ -1838,7 +1838,7 @@ zabbix_export: value: 'HAProxy TCP {#PXNAME} {#SVNAME}' trigger_prototypes: - - expression: '{min(5m)}>{$HAPROXY.SERVER_ERESP.MAX.WARN}' + expression: 'min(/HAProxy by Zabbix agent/haproxy.server_tcp.eresp.rate[{#PXNAME}:{#SVNAME}],5m)>{$HAPROXY.SERVER_ERESP.MAX.WARN}' name: 'HAProxy TCP {#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}.' @@ -1862,7 +1862,7 @@ zabbix_export: value: 'HAProxy TCP {#PXNAME} {#SVNAME}' trigger_prototypes: - - expression: '{min(5m)}>{$HAPROXY.SERVER_QCUR.MAX.WARN}' + expression: 'min(/HAProxy by Zabbix agent/haproxy.server_tcp.qcur[{#PXNAME}:{#SVNAME}],5m)>{$HAPROXY.SERVER_QCUR.MAX.WARN}' name: 'HAProxy TCP {#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}.' @@ -1892,7 +1892,7 @@ zabbix_export: value: 'HAProxy TCP {#PXNAME} {#SVNAME}' trigger_prototypes: - - expression: '{min(5m)}>{$HAPROXY.SERVER_QTIME.MAX.WARN}' + expression: 'min(/HAProxy by Zabbix agent/haproxy.server_tcp.qtime[{#PXNAME}:{#SVNAME}],5m)>{$HAPROXY.SERVER_QTIME.MAX.WARN}' name: 'HAProxy TCP {#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}.' @@ -1922,7 +1922,7 @@ zabbix_export: value: 'HAProxy TCP {#PXNAME} {#SVNAME}' trigger_prototypes: - - expression: '{min(5m)}>{$HAPROXY.SERVER_RTIME.MAX.WARN}' + expression: 'min(/HAProxy by Zabbix agent/haproxy.server_tcp.rtime[{#PXNAME}:{#SVNAME}],5m)>{$HAPROXY.SERVER_RTIME.MAX.WARN}' name: 'HAProxy TCP {#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}.' @@ -1955,7 +1955,7 @@ zabbix_export: value: 'HAProxy TCP {#PXNAME} {#SVNAME}' trigger_prototypes: - - expression: '{max(#5)}=0' + expression: 'max(/HAProxy by Zabbix agent/haproxy.server_tcp.status[{#PXNAME}:{#SVNAME}],#5)=0' name: 'HAProxy TCP {#PXNAME} {#SVNAME}: Server is DOWN' priority: WARNING description: 'Server is not available.' @@ -2100,7 +2100,7 @@ zabbix_export: - type: GRAPH_PROTOTYPE width: '24' - height: '12' + height: '5' fields: - type: INTEGER @@ -2109,7 +2109,11 @@ zabbix_export: - type: INTEGER name: rows - value: '3' + value: '1' + - + type: INTEGER + name: source_type + value: '2' - type: GRAPH_PROTOTYPE name: graphid @@ -2124,7 +2128,7 @@ zabbix_export: - type: GRAPH_PROTOTYPE width: '12' - height: '12' + height: '5' fields: - type: INTEGER @@ -2133,7 +2137,11 @@ zabbix_export: - type: INTEGER name: rows - value: '3' + value: '1' + - + type: INTEGER + name: source_type + value: '2' - type: GRAPH_PROTOTYPE name: graphid @@ -2144,7 +2152,7 @@ zabbix_export: type: GRAPH_PROTOTYPE x: '12' width: '12' - height: '12' + height: '5' fields: - type: INTEGER @@ -2153,7 +2161,11 @@ zabbix_export: - type: INTEGER name: rows - value: '3' + value: '1' + - + type: INTEGER + name: source_type + value: '2' - type: GRAPH_PROTOTYPE name: graphid @@ -2162,9 +2174,9 @@ zabbix_export: host: 'HAProxy by Zabbix agent' - type: GRAPH_PROTOTYPE - 'y': '12' + 'y': '5' width: '12' - height: '13' + height: '5' fields: - type: INTEGER @@ -2173,7 +2185,11 @@ zabbix_export: - type: INTEGER name: rows - value: '3' + value: '1' + - + type: INTEGER + name: source_type + value: '2' - type: GRAPH_PROTOTYPE name: graphid @@ -2183,9 +2199,9 @@ zabbix_export: - type: GRAPH_PROTOTYPE x: '12' - 'y': '12' + 'y': '5' width: '12' - height: '13' + height: '5' fields: - type: INTEGER @@ -2194,7 +2210,11 @@ zabbix_export: - type: INTEGER name: rows - value: '3' + value: '1' + - + type: INTEGER + name: source_type + value: '2' - type: GRAPH_PROTOTYPE name: graphid @@ -2209,7 +2229,7 @@ zabbix_export: - type: GRAPH_PROTOTYPE width: '24' - height: '12' + height: '5' fields: - type: INTEGER @@ -2218,7 +2238,11 @@ zabbix_export: - type: INTEGER name: rows - value: '3' + value: '1' + - + type: INTEGER + name: source_type + value: '2' - type: GRAPH_PROTOTYPE name: graphid diff --git a/templates/app/haproxy_http/template_app_haproxy_http.yaml b/templates/app/haproxy_http/template_app_haproxy_http.yaml index b7e99e1c83a..0cd67d1b732 100644 --- a/templates/app/haproxy_http/template_app_haproxy_http.yaml +++ b/templates/app/haproxy_http/template_app_haproxy_http.yaml @@ -1,6 +1,6 @@ zabbix_export: version: '5.4' - date: '2021-04-22T11:27:23Z' + date: '2021-05-09T00:00:00Z' groups: - name: Templates/Applications @@ -99,7 +99,7 @@ zabbix_export: value: HAProxy triggers: - - expression: '{last()}<10m' + expression: 'last(/HAProxy by HTTP/haproxy.uptime)<10m' name: 'HAProxy: has been restarted (uptime < 10m)' priority: INFO description: 'Uptime is less than 10 minutes' @@ -131,7 +131,7 @@ zabbix_export: value: HAProxy triggers: - - expression: '{diff()}=1 and {strlen()}>0' + expression: '(last(/HAProxy by HTTP/haproxy.version,#1)<>last(/HAProxy by HTTP/haproxy.version,#2))=1 and length(last(/HAProxy by HTTP/haproxy.version))>0' name: 'HAProxy: Version has changed (new version: {ITEM.VALUE})' priority: INFO description: 'HAProxy version has changed. Ack to close.' @@ -149,14 +149,14 @@ zabbix_export: value: HAProxy triggers: - - expression: '{min(5m)}>{$HAPROXY.RESPONSE_TIME.MAX.WARN}' + expression: 'min(/HAProxy by HTTP/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 (over {$HAPROXY.RESPONSE_TIME.MAX.WARN} for 5m)' priority: WARNING manual_close: 'YES' dependencies: - name: 'HAProxy: Service is down' - expression: '{HAProxy by HTTP:net.tcp.service["{$HAPROXY.STATS.SCHEME}","{HOST.CONN}","{$HAPROXY.STATS.PORT}"].last()}=0' + expression: 'last(/HAProxy by HTTP/net.tcp.service["{$HAPROXY.STATS.SCHEME}","{HOST.CONN}","{$HAPROXY.STATS.PORT}"])=0' - name: 'HAProxy: Service status' type: SIMPLE @@ -175,7 +175,7 @@ zabbix_export: value: HAProxy triggers: - - expression: '{last()}=0' + expression: 'last(/HAProxy by HTTP/net.tcp.service["{$HAPROXY.STATS.SCHEME}","{HOST.CONN}","{$HAPROXY.STATS.PORT}"])=0' name: 'HAProxy: Service is down' priority: AVERAGE manual_close: 'YES' @@ -266,7 +266,7 @@ zabbix_export: value: 'HAProxy backend {#PXNAME}' trigger_prototypes: - - expression: '{min(5m)}>{$HAPROXY.BACK_ERESP.MAX.WARN}' + expression: 'min(/HAProxy by HTTP/haproxy.backend.eresp.rate[{#PXNAME}:{#SVNAME}],5m)>{$HAPROXY.BACK_ERESP.MAX.WARN}' 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}.' @@ -290,7 +290,7 @@ zabbix_export: value: 'HAProxy backend {#PXNAME}' trigger_prototypes: - - expression: '{min(5m)}>{$HAPROXY.BACK_QCUR.MAX.WARN}' + expression: 'min(/HAProxy by HTTP/haproxy.backend.qcur[{#PXNAME}:{#SVNAME}],5m)>{$HAPROXY.BACK_QCUR.MAX.WARN}' 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}.' @@ -320,7 +320,7 @@ zabbix_export: value: 'HAProxy backend {#PXNAME}' trigger_prototypes: - - expression: '{min(5m)}>{$HAPROXY.BACK_QTIME.MAX.WARN}' + expression: 'min(/HAProxy by HTTP/haproxy.backend.qtime[{#PXNAME}:{#SVNAME}],5m)>{$HAPROXY.BACK_QTIME.MAX.WARN}' 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}.' @@ -350,7 +350,7 @@ zabbix_export: value: 'HAProxy backend {#PXNAME}' trigger_prototypes: - - expression: '{min(5m)}>{$HAPROXY.BACK_RTIME.MAX.WARN}' + expression: 'min(/HAProxy by HTTP/haproxy.backend.rtime[{#PXNAME}:{#SVNAME}],5m)>{$HAPROXY.BACK_RTIME.MAX.WARN}' 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}.' @@ -383,7 +383,7 @@ zabbix_export: value: 'HAProxy backend {#PXNAME}' trigger_prototypes: - - expression: '{max(#5)}=0' + expression: 'max(/HAProxy by HTTP/haproxy.backend.status[{#PXNAME}:{#SVNAME}],#5)=0' name: 'HAProxy backend {#PXNAME}: Server is DOWN' priority: AVERAGE description: 'Backend is not available.' @@ -544,7 +544,7 @@ zabbix_export: value: 'HAProxy TCP Backend {#PXNAME}' trigger_prototypes: - - expression: '{min(5m)}>{$HAPROXY.BACK_ERESP.MAX.WARN}' + expression: 'min(/HAProxy by HTTP/haproxy.backend_tcp.eresp.rate[{#PXNAME}:{#SVNAME}],5m)>{$HAPROXY.BACK_ERESP.MAX.WARN}' name: 'HAProxy TCP 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}.' @@ -568,7 +568,7 @@ zabbix_export: value: 'HAProxy TCP Backend {#PXNAME}' trigger_prototypes: - - expression: '{min(5m)}>{$HAPROXY.BACK_QCUR.MAX.WARN}' + expression: 'min(/HAProxy by HTTP/haproxy.backend_tcp.qcur[{#PXNAME}:{#SVNAME}],5m)>{$HAPROXY.BACK_QCUR.MAX.WARN}' name: 'HAProxy TCP 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}.' @@ -598,7 +598,7 @@ zabbix_export: value: 'HAProxy TCP Backend {#PXNAME}' trigger_prototypes: - - expression: '{min(5m)}>{$HAPROXY.BACK_QTIME.MAX.WARN}' + expression: 'min(/HAProxy by HTTP/haproxy.backend_tcp.qtime[{#PXNAME}:{#SVNAME}],5m)>{$HAPROXY.BACK_QTIME.MAX.WARN}' name: 'HAProxy TCP 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}.' @@ -628,7 +628,7 @@ zabbix_export: value: 'HAProxy TCP Backend {#PXNAME}' trigger_prototypes: - - expression: '{min(5m)}>{$HAPROXY.BACK_RTIME.MAX.WARN}' + expression: 'min(/HAProxy by HTTP/haproxy.backend_tcp.rtime[{#PXNAME}:{#SVNAME}],5m)>{$HAPROXY.BACK_RTIME.MAX.WARN}' name: 'HAProxy TCP 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}.' @@ -661,7 +661,7 @@ zabbix_export: value: 'HAProxy TCP Backend {#PXNAME}' trigger_prototypes: - - expression: '{max(#5)}=0' + expression: 'max(/HAProxy by HTTP/haproxy.backend_tcp.status[{#PXNAME}:{#SVNAME}],#5)=0' name: 'HAProxy TCP Backend {#PXNAME}: Server is DOWN' priority: AVERAGE description: 'Backend is not available.' @@ -833,7 +833,7 @@ zabbix_export: value: 'HAProxy frontend {#PXNAME}' trigger_prototypes: - - expression: '{min(5m)}>{$HAPROXY.FRONT_DREQ.MAX.WARN}' + expression: 'min(/HAProxy by HTTP/haproxy.frontend.dreq.rate[{#PXNAME}:{#SVNAME}],5m)>{$HAPROXY.FRONT_DREQ.MAX.WARN}' 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}.' @@ -861,7 +861,7 @@ zabbix_export: value: 'HAProxy frontend {#PXNAME}' trigger_prototypes: - - expression: '{min(5m)}>{$HAPROXY.FRONT_EREQ.MAX.WARN}' + expression: 'min(/HAProxy by HTTP/haproxy.frontend.ereq.rate[{#PXNAME}:{#SVNAME}],5m)>{$HAPROXY.FRONT_EREQ.MAX.WARN}' 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}.' @@ -1058,7 +1058,7 @@ zabbix_export: history: 7d value_type: FLOAT units: '%' - params: 'last(haproxy.frontend.scur[{#PXNAME}:{#SVNAME}]) / last(haproxy.frontend.slim[{#PXNAME}:{#SVNAME}]) * 100' + params: 'last(//haproxy.frontend.scur[{#PXNAME}:{#SVNAME}]) / last(//haproxy.frontend.slim[{#PXNAME}:{#SVNAME}]) * 100' description: 'Percentage of sessions used (scur / slim * 100).' tags: - @@ -1066,7 +1066,7 @@ zabbix_export: value: 'HAProxy frontend {#PXNAME}' trigger_prototypes: - - expression: '{min(5m)}>{$HAPROXY.FRONT_SUTIL.MAX.WARN}' + expression: 'min(/HAProxy by HTTP/haproxy.frontend.sutil[{#PXNAME}:{#SVNAME}],5m)>{$HAPROXY.FRONT_SUTIL.MAX.WARN}' 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.' @@ -1257,7 +1257,7 @@ zabbix_export: value: 'HAProxy TCP Frontend {#PXNAME}' trigger_prototypes: - - expression: '{min(5m)}>{$HAPROXY.FRONT_DREQ.MAX.WARN}' + expression: 'min(/HAProxy by HTTP/haproxy.frontend_tcp.dreq.rate[{#PXNAME}:{#SVNAME}],5m)>{$HAPROXY.FRONT_DREQ.MAX.WARN}' name: 'HAProxy TCP 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}.' @@ -1285,7 +1285,7 @@ zabbix_export: value: 'HAProxy TCP Frontend {#PXNAME}' trigger_prototypes: - - expression: '{min(5m)}>{$HAPROXY.FRONT_EREQ.MAX.WARN}' + expression: 'min(/HAProxy by HTTP/haproxy.frontend_tcp.ereq.rate[{#PXNAME}:{#SVNAME}],5m)>{$HAPROXY.FRONT_EREQ.MAX.WARN}' name: 'HAProxy TCP 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}.' @@ -1372,7 +1372,7 @@ zabbix_export: history: 7d value_type: FLOAT units: '%' - params: 'last(haproxy.frontend_tcp.scur[{#PXNAME}:{#SVNAME}]) / last(haproxy.frontend_tcp.slim[{#PXNAME}:{#SVNAME}]) * 100' + params: 'last(//haproxy.frontend_tcp.scur[{#PXNAME}:{#SVNAME}]) / last(//haproxy.frontend_tcp.slim[{#PXNAME}:{#SVNAME}]) * 100' description: 'Percentage of sessions used (scur / slim * 100).' tags: - @@ -1380,7 +1380,7 @@ zabbix_export: value: 'HAProxy TCP Frontend {#PXNAME}' trigger_prototypes: - - expression: '{min(5m)}>{$HAPROXY.FRONT_SUTIL.MAX.WARN}' + expression: 'min(/HAProxy by HTTP/haproxy.frontend_tcp.sutil[{#PXNAME}:{#SVNAME}],5m)>{$HAPROXY.FRONT_SUTIL.MAX.WARN}' name: 'HAProxy TCP 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.' @@ -1528,7 +1528,7 @@ zabbix_export: value: 'HAProxy {#PXNAME} {#SVNAME}' trigger_prototypes: - - expression: '{min(5m)}>{$HAPROXY.SERVER_ERESP.MAX.WARN}' + expression: 'min(/HAProxy by HTTP/haproxy.server.eresp.rate[{#PXNAME}:{#SVNAME}],5m)>{$HAPROXY.SERVER_ERESP.MAX.WARN}' 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}.' @@ -1596,7 +1596,7 @@ zabbix_export: value: 'HAProxy {#PXNAME} {#SVNAME}' trigger_prototypes: - - expression: '{min(5m)}>{$HAPROXY.SERVER_QCUR.MAX.WARN}' + expression: 'min(/HAProxy by HTTP/haproxy.server.qcur[{#PXNAME}:{#SVNAME}],5m)>{$HAPROXY.SERVER_QCUR.MAX.WARN}' 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}.' @@ -1626,7 +1626,7 @@ zabbix_export: value: 'HAProxy {#PXNAME} {#SVNAME}' trigger_prototypes: - - expression: '{min(5m)}>{$HAPROXY.SERVER_QTIME.MAX.WARN}' + expression: 'min(/HAProxy by HTTP/haproxy.server.qtime[{#PXNAME}:{#SVNAME}],5m)>{$HAPROXY.SERVER_QTIME.MAX.WARN}' 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}.' @@ -1656,7 +1656,7 @@ zabbix_export: value: 'HAProxy {#PXNAME} {#SVNAME}' trigger_prototypes: - - expression: '{min(5m)}>{$HAPROXY.SERVER_RTIME.MAX.WARN}' + expression: 'min(/HAProxy by HTTP/haproxy.server.rtime[{#PXNAME}:{#SVNAME}],5m)>{$HAPROXY.SERVER_RTIME.MAX.WARN}' 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}.' @@ -1689,7 +1689,7 @@ zabbix_export: value: 'HAProxy {#PXNAME} {#SVNAME}' trigger_prototypes: - - expression: '{max(#5)}=0' + expression: 'max(/HAProxy by HTTP/haproxy.server.status[{#PXNAME}:{#SVNAME}],#5)=0' name: 'HAProxy {#PXNAME} {#SVNAME}: Server is DOWN' priority: WARNING description: 'Server is not available.' @@ -1851,7 +1851,7 @@ zabbix_export: value: 'HAProxy TCP {#PXNAME} {#SVNAME}' trigger_prototypes: - - expression: '{min(5m)}>{$HAPROXY.SERVER_ERESP.MAX.WARN}' + expression: 'min(/HAProxy by HTTP/haproxy.server_tcp.eresp.rate[{#PXNAME}:{#SVNAME}],5m)>{$HAPROXY.SERVER_ERESP.MAX.WARN}' name: 'HAProxy TCP {#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}.' @@ -1875,7 +1875,7 @@ zabbix_export: value: 'HAProxy TCP {#PXNAME} {#SVNAME}' trigger_prototypes: - - expression: '{min(5m)}>{$HAPROXY.SERVER_QCUR.MAX.WARN}' + expression: 'min(/HAProxy by HTTP/haproxy.server_tcp.qcur[{#PXNAME}:{#SVNAME}],5m)>{$HAPROXY.SERVER_QCUR.MAX.WARN}' name: 'HAProxy TCP {#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}.' @@ -1905,7 +1905,7 @@ zabbix_export: value: 'HAProxy TCP {#PXNAME} {#SVNAME}' trigger_prototypes: - - expression: '{min(5m)}>{$HAPROXY.SERVER_QTIME.MAX.WARN}' + expression: 'min(/HAProxy by HTTP/haproxy.server_tcp.qtime[{#PXNAME}:{#SVNAME}],5m)>{$HAPROXY.SERVER_QTIME.MAX.WARN}' name: 'HAProxy TCP {#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}.' @@ -1935,7 +1935,7 @@ zabbix_export: value: 'HAProxy TCP {#PXNAME} {#SVNAME}' trigger_prototypes: - - expression: '{min(5m)}>{$HAPROXY.SERVER_RTIME.MAX.WARN}' + expression: 'min(/HAProxy by HTTP/haproxy.server_tcp.rtime[{#PXNAME}:{#SVNAME}],5m)>{$HAPROXY.SERVER_RTIME.MAX.WARN}' name: 'HAProxy TCP {#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}.' @@ -1968,7 +1968,7 @@ zabbix_export: value: 'HAProxy TCP {#PXNAME} {#SVNAME}' trigger_prototypes: - - expression: '{max(#5)}=0' + expression: 'max(/HAProxy by HTTP/haproxy.server_tcp.status[{#PXNAME}:{#SVNAME}],#5)=0' name: 'HAProxy TCP {#PXNAME} {#SVNAME}: Server is DOWN' priority: WARNING description: 'Server is not available.' @@ -2119,7 +2119,7 @@ zabbix_export: - type: GRAPH_PROTOTYPE width: '24' - height: '12' + height: '5' fields: - type: INTEGER @@ -2128,7 +2128,11 @@ zabbix_export: - type: INTEGER name: rows - value: '3' + value: '1' + - + type: INTEGER + name: source_type + value: '2' - type: GRAPH_PROTOTYPE name: graphid @@ -2143,7 +2147,7 @@ zabbix_export: - type: GRAPH_PROTOTYPE width: '12' - height: '12' + height: '5' fields: - type: INTEGER @@ -2152,7 +2156,11 @@ zabbix_export: - type: INTEGER name: rows - value: '3' + value: '1' + - + type: INTEGER + name: source_type + value: '2' - type: GRAPH_PROTOTYPE name: graphid @@ -2163,7 +2171,7 @@ zabbix_export: type: GRAPH_PROTOTYPE x: '12' width: '12' - height: '12' + height: '5' fields: - type: INTEGER @@ -2172,7 +2180,11 @@ zabbix_export: - type: INTEGER name: rows - value: '3' + value: '1' + - + type: INTEGER + name: source_type + value: '2' - type: GRAPH_PROTOTYPE name: graphid @@ -2181,9 +2193,9 @@ zabbix_export: host: 'HAProxy by HTTP' - type: GRAPH_PROTOTYPE - 'y': '12' + 'y': '5' width: '12' - height: '12' + height: '5' fields: - type: INTEGER @@ -2192,7 +2204,11 @@ zabbix_export: - type: INTEGER name: rows - value: '3' + value: '1' + - + type: INTEGER + name: source_type + value: '2' - type: GRAPH_PROTOTYPE name: graphid @@ -2202,9 +2218,9 @@ zabbix_export: - type: GRAPH_PROTOTYPE x: '12' - 'y': '12' + 'y': '5' width: '12' - height: '12' + height: '5' fields: - type: INTEGER @@ -2213,7 +2229,11 @@ zabbix_export: - type: INTEGER name: rows - value: '3' + value: '1' + - + type: INTEGER + name: source_type + value: '2' - type: GRAPH_PROTOTYPE name: graphid @@ -2228,7 +2248,7 @@ zabbix_export: - type: GRAPH_PROTOTYPE width: '24' - height: '12' + height: '5' fields: - type: INTEGER @@ -2237,7 +2257,11 @@ zabbix_export: - type: INTEGER name: rows - value: '3' + value: '1' + - + type: INTEGER + name: source_type + value: '2' - type: GRAPH_PROTOTYPE name: graphid diff --git a/templates/app/iis_agent/template_app_iis_agent.yaml b/templates/app/iis_agent/template_app_iis_agent.yaml index c926c542a4e..22f746291e6 100644 --- a/templates/app/iis_agent/template_app_iis_agent.yaml +++ b/templates/app/iis_agent/template_app_iis_agent.yaml @@ -1,6 +1,6 @@ zabbix_export: version: '5.4' - date: '2021-02-23T11:04:39Z' + date: '2021-05-09T00:00:00Z' groups: - name: Templates/Applications @@ -37,14 +37,14 @@ zabbix_export: value: IIS triggers: - - expression: '{last()}=0' + expression: 'last(/IIS by Zabbix agent/net.tcp.service[{$IIS.SERVICE},,{$IIS.PORT}])=0' name: 'IIS: Port {$IIS.PORT} is down' priority: AVERAGE manual_close: 'YES' dependencies: - name: 'IIS: The World Wide Web Publishing Service (W3SVC) is not running' - expression: '{IIS by Zabbix agent:service_state[W3SVC].last()}<>0' + expression: 'last(/IIS by Zabbix agent/service_state[W3SVC])<>0' - name: 'IIS: Anonymous users per second' key: 'perf_counter_en["\Web Service(_Total)\Anonymous Users/sec", 60]' @@ -406,7 +406,7 @@ zabbix_export: value: IIS triggers: - - expression: '{last()}<10m' + expression: 'last(/IIS by Zabbix agent/perf_counter_en["\Web Service(_Total)\Service Uptime"])<10m' name: 'IIS: has been restarted (uptime < 10m)' priority: INFO description: 'Uptime is less than 10 minutes' @@ -549,14 +549,14 @@ zabbix_export: value: IIS triggers: - - expression: '{last()}<>0' + expression: 'last(/IIS by Zabbix agent/service_state[W3SVC])<>0' name: 'IIS: The World Wide Web Publishing Service (W3SVC) is not running' priority: HIGH description: 'The World Wide Web Publishing Service (W3SVC) is not in running state. IIS cannot start.' dependencies: - name: 'IIS: Windows process Activation Service (WAS) is not the running' - expression: '{IIS by Zabbix agent:service_state[WAS].last()}<>0' + expression: 'last(/IIS by Zabbix agent/service_state[WAS])<>0' - name: 'IIS: Windows Process Activation Service (WAS) state' key: 'service_state[WAS]' @@ -575,7 +575,7 @@ zabbix_export: value: IIS triggers: - - expression: '{last()}<>0' + expression: 'last(/IIS by Zabbix agent/service_state[WAS])<>0' name: 'IIS: Windows process Activation Service (WAS) is not the running' priority: HIGH description: 'Windows Process Activation Service (WAS) is not in the running state. IIS cannot start.' @@ -615,7 +615,7 @@ zabbix_export: value: '{#APPPOOL}' trigger_prototypes: - - expression: '{last()}<>3 and {$IIS.APPPOOL.MONITORED:"{#APPPOOL}"}=1' + expression: 'last(/IIS by Zabbix agent/perf_counter_en["\APP_POOL_WAS({#APPPOOL})\Current Application Pool State"])<>3 and {$IIS.APPPOOL.MONITORED:"{#APPPOOL}"}=1' name: 'IIS: Application pool {#APPPOOL} is not in Running state' priority: HIGH - @@ -631,7 +631,7 @@ zabbix_export: value: '{#APPPOOL}' trigger_prototypes: - - expression: '{last()}<10m' + expression: 'last(/IIS by Zabbix agent/perf_counter_en["\APP_POOL_WAS({#APPPOOL})\Current Application Pool Uptime"])<10m' name: 'IIS: {#APPPOOL} has been restarted (uptime < 10m)' priority: INFO description: 'Uptime is less than 10 minutes' @@ -652,7 +652,7 @@ zabbix_export: value: '{#APPPOOL}' trigger_prototypes: - - expression: '{diff()}=1 and {$IIS.APPPOOL.MONITORED:"{#APPPOOL}"}=1' + expression: '(last(/IIS by Zabbix agent/perf_counter_en["\APP_POOL_WAS({#APPPOOL})\Total Application Pool Recycles"],#1)<>last(/IIS by Zabbix agent/perf_counter_en["\APP_POOL_WAS({#APPPOOL})\Total Application Pool Recycles"],#2))=1 and {$IIS.APPPOOL.MONITORED:"{#APPPOOL}"}=1' name: 'IIS: Application pool {#APPPOOL} has been recycled' priority: INFO - @@ -672,13 +672,13 @@ zabbix_export: value: '{#APPPOOL}' trigger_prototypes: - - expression: '{min({$IIS.QUEUE.MAX.TIME})}>{$IIS.QUEUE.MAX.WARN}' + expression: 'min(/IIS by Zabbix agent/perf_counter_en["\HTTP Service Request Queues({#APPPOOL})\CurrentQueueSize"],{$IIS.QUEUE.MAX.TIME})>{$IIS.QUEUE.MAX.WARN}' name: 'IIS: Request queue of {#APPPOOL} is too large (over {$IIS.QUEUE.MAX.WARN})' priority: WARNING dependencies: - name: 'IIS: Application pool {#APPPOOL} is not in Running state' - expression: '{IIS by Zabbix agent:perf_counter_en["\APP_POOL_WAS({#APPPOOL})\Current Application Pool State"].last()}<>3 and {$IIS.APPPOOL.MONITORED:"{#APPPOOL}"}=1' + expression: 'last(/IIS by Zabbix agent/perf_counter_en["\APP_POOL_WAS({#APPPOOL})\Current Application Pool State"])<>3 and {$IIS.APPPOOL.MONITORED:"{#APPPOOL}"}=1' lld_macro_paths: - lld_macro: '{#APPPOOL}' diff --git a/templates/app/iis_agent_active/template_app_iis_agent_active.yaml b/templates/app/iis_agent_active/template_app_iis_agent_active.yaml index 0a539e86cf8..e406ed96741 100644 --- a/templates/app/iis_agent_active/template_app_iis_agent_active.yaml +++ b/templates/app/iis_agent_active/template_app_iis_agent_active.yaml @@ -1,6 +1,6 @@ zabbix_export: version: '5.4' - date: '2021-02-23T11:04:41Z' + date: '2021-05-09T00:00:00Z' groups: - name: Templates/Applications @@ -37,14 +37,14 @@ zabbix_export: value: IIS triggers: - - expression: '{last()}=0' + expression: 'last(/IIS by Zabbix agent active/net.tcp.service[{$IIS.SERVICE},,{$IIS.PORT}])=0' name: 'IIS: Port {$IIS.PORT} is down' priority: AVERAGE manual_close: 'YES' dependencies: - name: 'IIS: The World Wide Web Publishing Service (W3SVC) is not running' - expression: '{IIS by Zabbix agent active:service_state[W3SVC].last()}<>0' + expression: 'last(/IIS by Zabbix agent active/service_state[W3SVC])<>0' - name: 'IIS: Anonymous users per second' type: ZABBIX_ACTIVE @@ -432,7 +432,7 @@ zabbix_export: value: IIS triggers: - - expression: '{last()}<10m' + expression: 'last(/IIS by Zabbix agent active/perf_counter_en["\Web Service(_Total)\Service Uptime"])<10m' name: 'IIS: has been restarted (uptime < 10m)' priority: INFO description: 'Uptime is less than 10 minutes' @@ -584,14 +584,14 @@ zabbix_export: value: IIS triggers: - - expression: '{last()}<>0' + expression: 'last(/IIS by Zabbix agent active/service_state[W3SVC])<>0' name: 'IIS: The World Wide Web Publishing Service (W3SVC) is not running' priority: HIGH description: 'The World Wide Web Publishing Service (W3SVC) is not in running state. IIS cannot start.' dependencies: - name: 'IIS: Windows process Activation Service (WAS) is not the running' - expression: '{IIS by Zabbix agent active:service_state[WAS].last()}<>0' + expression: 'last(/IIS by Zabbix agent active/service_state[WAS])<>0' - name: 'IIS: Windows Process Activation Service (WAS) state' type: ZABBIX_ACTIVE @@ -611,7 +611,7 @@ zabbix_export: value: IIS triggers: - - expression: '{last()}<>0' + expression: 'last(/IIS by Zabbix agent active/service_state[WAS])<>0' name: 'IIS: Windows process Activation Service (WAS) is not the running' priority: HIGH description: 'Windows Process Activation Service (WAS) is not in the running state. IIS cannot start.' @@ -653,7 +653,7 @@ zabbix_export: value: '{#APPPOOL}' trigger_prototypes: - - expression: '{last()}<>3 and {$IIS.APPPOOL.MONITORED:"{#APPPOOL}"}=1' + expression: 'last(/IIS by Zabbix agent active/perf_counter_en["\APP_POOL_WAS({#APPPOOL})\Current Application Pool State"])<>3 and {$IIS.APPPOOL.MONITORED:"{#APPPOOL}"}=1' name: 'IIS: Application pool {#APPPOOL} is not in Running state' priority: HIGH - @@ -670,7 +670,7 @@ zabbix_export: value: '{#APPPOOL}' trigger_prototypes: - - expression: '{last()}<10m' + expression: 'last(/IIS by Zabbix agent active/perf_counter_en["\APP_POOL_WAS({#APPPOOL})\Current Application Pool Uptime"])<10m' name: 'IIS: {#APPPOOL} has been restarted (uptime < 10m)' priority: INFO description: 'Uptime is less than 10 minutes' @@ -692,7 +692,7 @@ zabbix_export: value: '{#APPPOOL}' trigger_prototypes: - - expression: '{diff()}=1 and {$IIS.APPPOOL.MONITORED:"{#APPPOOL}"}=1' + expression: '(last(/IIS by Zabbix agent active/perf_counter_en["\APP_POOL_WAS({#APPPOOL})\Total Application Pool Recycles"],#1)<>last(/IIS by Zabbix agent active/perf_counter_en["\APP_POOL_WAS({#APPPOOL})\Total Application Pool Recycles"],#2))=1 and {$IIS.APPPOOL.MONITORED:"{#APPPOOL}"}=1' name: 'IIS: Application pool {#APPPOOL} has been recycled' priority: INFO - @@ -713,13 +713,13 @@ zabbix_export: value: '{#APPPOOL}' trigger_prototypes: - - expression: '{min({$IIS.QUEUE.MAX.TIME})}>{$IIS.QUEUE.MAX.WARN}' + expression: 'min(/IIS by Zabbix agent active/perf_counter_en["\HTTP Service Request Queues({#APPPOOL})\CurrentQueueSize"],{$IIS.QUEUE.MAX.TIME})>{$IIS.QUEUE.MAX.WARN}' name: 'IIS: Request queue of {#APPPOOL} is too large (over {$IIS.QUEUE.MAX.WARN})' priority: WARNING dependencies: - name: 'IIS: Application pool {#APPPOOL} is not in Running state' - expression: '{IIS by Zabbix agent active:perf_counter_en["\APP_POOL_WAS({#APPPOOL})\Current Application Pool State"].last()}<>3 and {$IIS.APPPOOL.MONITORED:"{#APPPOOL}"}=1' + expression: 'last(/IIS by Zabbix agent active/perf_counter_en["\APP_POOL_WAS({#APPPOOL})\Current Application Pool State"])<>3 and {$IIS.APPPOOL.MONITORED:"{#APPPOOL}"}=1' lld_macro_paths: - lld_macro: '{#APPPOOL}' diff --git a/templates/app/jenkins/template_app_jenkins.yaml b/templates/app/jenkins/template_app_jenkins.yaml index 53128378856..1611fd5d83d 100644 --- a/templates/app/jenkins/template_app_jenkins.yaml +++ b/templates/app/jenkins/template_app_jenkins.yaml @@ -1,6 +1,6 @@ zabbix_export: version: '5.4' - date: '2021-02-23T11:04:43Z' + date: '2021-05-09T00:00:00Z' groups: - name: Templates/Applications @@ -66,7 +66,7 @@ zabbix_export: value: Jenkins triggers: - - expression: '{min(5m)}>{$JENKINS.FILE_DESCRIPTORS.MAX.WARN}' + expression: 'min(/Jenkins by HTTP/jenkins.descriptor.ratio,5m)>{$JENKINS.FILE_DESCRIPTORS.MAX.WARN}' name: 'Jenkins: Current number of used files is too high (over {$JENKINS.FILE_DESCRIPTORS.MAX.WARN}% for 5m)' priority: WARNING - @@ -1165,7 +1165,7 @@ zabbix_export: value: Jenkins triggers: - - expression: '{last()}=0' + expression: 'last(/Jenkins by HTTP/jenkins.node.online)=0' name: 'Jenkins: Service has no online nodes' priority: AVERAGE - @@ -1201,7 +1201,7 @@ zabbix_export: value: Jenkins triggers: - - expression: '{last()}=0' + expression: 'last(/Jenkins by HTTP/jenkins.ping)=0' name: 'Jenkins: Service is down' priority: AVERAGE manual_close: 'YES' @@ -1502,7 +1502,7 @@ zabbix_export: value: Jenkins triggers: - - expression: '{last()}<10m' + expression: 'last(/Jenkins by HTTP/jenkins.system.uptime)<10m' name: 'Jenkins: has been restarted (uptime < 10m)' priority: INFO description: 'Uptime is less than 10 minutes' @@ -1639,7 +1639,7 @@ zabbix_export: value: Jenkins triggers: - - expression: '{diff()}=1 and {strlen()}>0' + expression: '(last(/Jenkins by HTTP/jenkins.version,#1)<>last(/Jenkins by HTTP/jenkins.version,#2))=1 and length(last(/Jenkins by HTTP/jenkins.version))>0' name: 'Jenkins: Version has changed (new version: {ITEM.VALUE})' priority: INFO description: 'Jenkins version has changed. Ack to close.' @@ -1954,19 +1954,19 @@ zabbix_export: value: 'Jenkins: Computer [{#DISPLAY_NAME}]' trigger_prototypes: - - expression: '{Jenkins by HTTP:jenkins.computer.state[{#DISPLAY_NAME}].last()}=1 and {Jenkins by HTTP:jenkins.computer.offline.reason[{#DISPLAY_NAME}].strlen()}>0' + expression: 'last(/Jenkins by HTTP/jenkins.computer.state[{#DISPLAY_NAME}])=1 and length(last(/Jenkins by HTTP/jenkins.computer.offline.reason[{#DISPLAY_NAME}]))>0' name: 'Jenkins: Computer [{#DISPLAY_NAME}]: Node is down' priority: AVERAGE description: 'Node down with reason: {{ITEM.LASTVALUE2}.regsub("(.*)",\1)}' dependencies: - name: 'Jenkins: Computer [{#DISPLAY_NAME}]: Node is temporarily offline' - expression: '{Jenkins by HTTP:jenkins.computer.temp_offline[{#DISPLAY_NAME}].last()}=1 and {Jenkins by HTTP:jenkins.computer.offline.reason[{#DISPLAY_NAME}].strlen()}>0' + expression: 'last(/Jenkins by HTTP/jenkins.computer.temp_offline[{#DISPLAY_NAME}])=1 and length(last(/Jenkins by HTTP/jenkins.computer.offline.reason[{#DISPLAY_NAME}]))>0' - name: 'Jenkins: Service has no online nodes' - expression: '{Jenkins by HTTP:jenkins.node.online.last()}=0' + expression: 'last(/Jenkins by HTTP/jenkins.node.online)=0' - - expression: '{Jenkins by HTTP:jenkins.computer.temp_offline[{#DISPLAY_NAME}].last()}=1 and {Jenkins by HTTP:jenkins.computer.offline.reason[{#DISPLAY_NAME}].strlen()}>0' + expression: 'last(/Jenkins by HTTP/jenkins.computer.temp_offline[{#DISPLAY_NAME}])=1 and length(last(/Jenkins by HTTP/jenkins.computer.offline.reason[{#DISPLAY_NAME}]))>0' name: 'Jenkins: Computer [{#DISPLAY_NAME}]: Node is temporarily offline' priority: INFO description: 'Node is temporarily Offline with reason: {{ITEM.LASTVALUE2}.regsub("(.*)",\1)}' @@ -2054,7 +2054,7 @@ zabbix_export: value: 'Jenkins job [{#NAME}]' trigger_prototypes: - - expression: '{last()}<{$JENKINS.JOB.HEALTH.SCORE.MIN.WARN}' + expression: 'last(/Jenkins by HTTP/jenkins.build.health[{#NAME}])<{$JENKINS.JOB.HEALTH.SCORE.MIN.WARN}' name: 'Jenkins job [{#NAME}]: Job is unhealthy' priority: WARNING manual_close: 'YES' @@ -2401,14 +2401,14 @@ zabbix_export: newvalue: Up triggers: - - expression: '{Jenkins by HTTP:jenkins.disk_space.last()}=0 and {Jenkins by HTTP:jenkins.disk_space.message.strlen()}>0' + expression: 'last(/Jenkins by HTTP/jenkins.disk_space)=0 and length(last(/Jenkins by HTTP/jenkins.disk_space.message))>0' name: 'Jenkins: Disk space is too low' priority: WARNING description: | Jenkins disk space monitors are reporting the disk space as less than the configured threshold. The message will reference the first node which fails this check. Health check message: {{ITEM.LASTVALUE2}.regsub("(.*)",\1)} - - expression: '{Jenkins by HTTP:jenkins.plugins.last()}=0 and {Jenkins by HTTP:jenkins.plugins.message.strlen()}>0' + expression: 'last(/Jenkins by HTTP/jenkins.plugins)=0 and length(last(/Jenkins by HTTP/jenkins.plugins.message))>0' name: 'Jenkins: One or more Jenkins plugins failed to start' priority: INFO description: | @@ -2416,14 +2416,14 @@ zabbix_export: Health check message: {{ITEM.LASTVALUE2}.regsub("(.*)",\1)} manual_close: 'YES' - - expression: '{Jenkins by HTTP:jenkins.temporary_space.last()}=0 and {Jenkins by HTTP:jenkins.temporary_space.message.strlen()}>0' + expression: 'last(/Jenkins by HTTP/jenkins.temporary_space)=0 and length(last(/Jenkins by HTTP/jenkins.temporary_space.message))>0' name: 'Jenkins: Temporary space is too low' priority: WARNING description: | Jenkins temporary space monitors are reporting the temporary space as less than the configured threshold. The message will reference the first node which fails this check. Health check message: {{ITEM.LASTVALUE2}.regsub("(.*)",\1)} - - expression: '{Jenkins by HTTP:jenkins.thread_deadlock.last()}=0 and {Jenkins by HTTP:jenkins.thread_deadlock.message.strlen()}>0' + expression: 'last(/Jenkins by HTTP/jenkins.thread_deadlock)=0 and length(last(/Jenkins by HTTP/jenkins.thread_deadlock.message))>0' name: 'Jenkins: There are deadlocked threads in Jenkins master JVM' priority: WARNING description: | diff --git a/templates/app/kafka_jmx/template_app_kafka_jmx.yaml b/templates/app/kafka_jmx/template_app_kafka_jmx.yaml index 94c1a581110..c00d8ba8a68 100644 --- a/templates/app/kafka_jmx/template_app_kafka_jmx.yaml +++ b/templates/app/kafka_jmx/template_app_kafka_jmx.yaml @@ -1,6 +1,6 @@ zabbix_export: version: '5.4' - date: '2021-02-23T11:04:35Z' + date: '2021-05-09T00:00:00Z' groups: - name: Templates/Applications @@ -56,7 +56,7 @@ zabbix_export: value: Kafka triggers: - - expression: '{last()}>0' + expression: 'last(/Apache Kafka by JMX/jmx["kafka.controller:type=ControllerStats,name=UncleanLeaderElectionsPerSec","Count"])>0' name: 'Kafka: Unclean leader election detected' priority: AVERAGE description: 'Unclean leader elections occur when there is no qualified partition leader among Kafka brokers. If Kafka is configured to allow an unclean leader election, a leader is chosen from the out-of-sync replicas, and any messages that were not synced prior to the loss of the former leader are lost forever. Essentially, unclean leader elections sacrifice consistency for availability.' @@ -95,7 +95,7 @@ zabbix_export: value: Kafka triggers: - - expression: '{last()} > 0' + expression: 'last(/Apache Kafka by JMX/jmx["kafka.controller:type=KafkaController,name=OfflinePartitionsCount","Value"]) > 0' name: 'Kafka: One or more partitions have no leader' priority: WARNING description: 'Any partition without an active leader will be completely inaccessible, and both consumers and producers of that partition will be blocked until a leader becomes available.' @@ -166,7 +166,7 @@ zabbix_export: value: Kafka triggers: - - expression: '{last()} > 0' + expression: 'last(/Apache Kafka by JMX/jmx["kafka.log:type=LogManager,name=OfflineLogDirectoryCount","Value"]) > 0' name: 'Kafka: There are offline log directories' priority: WARNING description: 'The offline log directory count metric indicate the number of log directories which are offline (due to an hardware failure for example) so that the broker cannot store incoming messages anymore.' @@ -577,12 +577,12 @@ zabbix_export: value: Kafka triggers: - - expression: '{nodata(15m)}=1' + expression: 'nodata(/Apache Kafka by JMX/jmx["kafka.network:type=SocketServer,name=NetworkProcessorAvgIdlePercent","Value"],15m)=1' name: 'Kafka: Failed to fetch info data (or no data for 15m)' priority: WARNING description: 'Zabbix has not received data for items for the last 15 minutes' - - expression: '{max(15m)}<{$KAFKA.NET_PROC_AVG_IDLE.MIN.WARN}' + expression: 'max(/Apache Kafka by JMX/jmx["kafka.network:type=SocketServer,name=NetworkProcessorAvgIdlePercent","Value"],15m)<{$KAFKA.NET_PROC_AVG_IDLE.MIN.WARN}' name: 'Kafka: Network processor average idle percent is too low (under {$KAFKA.NET_PROC_AVG_IDLE.MIN.WARN} for 15m)' priority: AVERAGE description: 'The network processor idle ratio metric indicates the percentage of time the network processor are not in use. The lower this number, the more loaded the broker is.' @@ -607,7 +607,7 @@ zabbix_export: value: Kafka triggers: - - expression: '{last()}<10m' + expression: 'last(/Apache Kafka by JMX/jmx["kafka.server:type=app-info","start-time-ms"])<10m' name: 'Kafka: has been restarted (uptime < 10m)' priority: INFO description: 'Uptime is less than 10 minutes' @@ -634,7 +634,7 @@ zabbix_export: value: Kafka triggers: - - expression: '{diff()}=1 and {strlen()}>0' + expression: '(last(/Apache Kafka by JMX/jmx["kafka.server:type=app-info","version"],#1)<>last(/Apache Kafka by JMX/jmx["kafka.server:type=app-info","version"],#2))=1 and length(last(/Apache Kafka by JMX/jmx["kafka.server:type=app-info","version"]))>0' name: 'Kafka: Version has changed (new version: {ITEM.VALUE})' priority: INFO description: 'Kafka version has changed. Ack to close.' @@ -803,7 +803,7 @@ zabbix_export: value: Kafka triggers: - - expression: '{max(15m)}<{$KAFKA.REQUEST_HANDLER_AVG_IDLE.MIN.WARN}' + expression: 'max(/Apache Kafka by JMX/jmx["kafka.server:type=KafkaRequestHandlerPool,name=RequestHandlerAvgIdlePercent","OneMinuteRate"],15m)<{$KAFKA.REQUEST_HANDLER_AVG_IDLE.MIN.WARN}' name: 'Kafka: Request handler average idle percent is too low (under {$KAFKA.REQUEST_HANDLER_AVG_IDLE.MIN.WARN} for 15m)' priority: AVERAGE description: 'The request handler idle ratio metric indicates the percentage of time the request handlers are not in use. The lower this number, the more loaded the broker is.' @@ -913,7 +913,7 @@ zabbix_export: value: Kafka triggers: - - expression: '{last()}>0' + expression: 'last(/Apache Kafka by JMX/jmx["kafka.server:type=ReplicaManager,name=UnderMinIsrPartitionCount","Value"])>0' name: 'Kafka: There are partitions under the min ISR' priority: AVERAGE description: 'The Under min ISR partitions metric displays the number of partitions, where the number of In-Sync Replicas (ISR) is less than the minimum number of in-sync replicas specified. The two most common causes of under-min ISR partitions are that one or more brokers is unresponsive, or the cluster is experiencing performance issues and one or more brokers are falling behind.' @@ -932,7 +932,7 @@ zabbix_export: value: Kafka triggers: - - expression: '{last()}>0' + expression: 'last(/Apache Kafka by JMX/jmx["kafka.server:type=ReplicaManager,name=UnderReplicatedPartitions","Value"])>0' name: 'Kafka: There are under replicated partitions' priority: AVERAGE description: 'The Under replicated partitions metric displays the number of partitions that do not have enough replicas to meet the desired replication factor. A partition will also be considered under-replicated if the correct number of replicas exist, but one or more of the replicas have fallen significantly behind the partition leader. The two most common causes of under-replicated partitions are that one or more brokers is unresponsive, or the cluster is experiencing performance issues and one or more brokers have fallen behind.' @@ -971,7 +971,7 @@ zabbix_export: value: Kafka triggers: - - expression: '{regexp("CONNECTED")}=0' + expression: 'find(/Apache Kafka by JMX/jmx["kafka.server:type=SessionExpireListener,name=SessionState","Value"],,"regexp","CONNECTED")=0' name: 'Kafka: Broker is not connected to ZooKeeper' priority: AVERAGE - diff --git a/templates/app/memcached/template_app_memcached.yaml b/templates/app/memcached/template_app_memcached.yaml index a7c5b4c8ca1..01158cf4f50 100644 --- a/templates/app/memcached/template_app_memcached.yaml +++ b/templates/app/memcached/template_app_memcached.yaml @@ -1,6 +1,6 @@ zabbix_export: version: '5.4' - date: '2021-02-23T11:05:32Z' + date: '2021-05-09T00:00:00Z' groups: - name: Templates/Applications @@ -175,7 +175,7 @@ zabbix_export: value: Memcached triggers: - - expression: '{min(5m)}>{$MEMCACHED.CONN.QUEUED.MAX.WARN}' + expression: 'min(/Memcached/memcached.connections.queued.rate,5m)>{$MEMCACHED.CONN.QUEUED.MAX.WARN}' name: 'Memcached: Too many queued connections (over {$MEMCACHED.CONN.QUEUED.MAX.WARN} in 5m)' priority: WARNING description: 'The max number of connections is reachedand and a new connection had to wait in the queue as a result.' @@ -245,7 +245,7 @@ zabbix_export: value: Memcached triggers: - - expression: '{min(5m)}>{$MEMCACHED.CONN.THROTTLED.MAX.WARN}' + expression: 'min(/Memcached/memcached.connections.throttled.rate,5m)>{$MEMCACHED.CONN.THROTTLED.MAX.WARN}' name: 'Memcached: Too many throttled connections (over {$MEMCACHED.CONN.THROTTLED.MAX.WARN} in 5m)' priority: WARNING description: | @@ -273,7 +273,7 @@ zabbix_export: value: Memcached triggers: - - expression: '{nodata(30m)}=1' + expression: 'nodata(/Memcached/memcached.cpu.sys,30m)=1' name: 'Memcached: Failed to fetch info data (or no data for 30m)' priority: WARNING description: 'Zabbix has not received data for items for the last 30 minutes' @@ -281,7 +281,7 @@ zabbix_export: dependencies: - name: 'Memcached: Service is down' - expression: '{Memcached:memcached.ping["{$MEMCACHED.CONN.URI}"].last()}=0' + expression: 'last(/Memcached/memcached.ping["{$MEMCACHED.CONN.URI}"])=0' - name: 'Memcached: CPU user' type: DEPENDENT @@ -319,7 +319,7 @@ zabbix_export: value: Memcached triggers: - - expression: '{last()}=0' + expression: 'last(/Memcached/memcached.ping["{$MEMCACHED.CONN.URI}"])=0' name: 'Memcached: Service is down' priority: AVERAGE manual_close: 'YES' @@ -571,7 +571,7 @@ zabbix_export: value: Memcached triggers: - - expression: '{last()}<10m' + expression: last(/Memcached/memcached.uptime)<10m name: 'Memcached: has been restarted (uptime < 10m)' priority: INFO description: 'Uptime is less than 10 minutes' @@ -602,7 +602,7 @@ zabbix_export: value: Memcached triggers: - - expression: '{diff()}=1 and {strlen()}>0' + expression: '(last(/Memcached/memcached.version,#1)<>last(/Memcached/memcached.version,#2))=1 and length(last(/Memcached/memcached.version))>0' name: 'Memcached: Version has changed (new version: {ITEM.VALUE})' priority: INFO description: 'Memcached version has changed. Ack to close.' @@ -640,11 +640,11 @@ zabbix_export: newvalue: Up triggers: - - expression: '{Memcached:memcached.stats.bytes.min(5m)}/{Memcached:memcached.config.limit_maxbytes.last()}*100>{$MEMCACHED.MEM.PUSED.MAX.WARN}' + expression: 'min(/Memcached/memcached.stats.bytes,5m)/last(/Memcached/memcached.config.limit_maxbytes)*100>{$MEMCACHED.MEM.PUSED.MAX.WARN}' name: 'Memcached: Memory usage is too high (over {$MEMCACHED.MEM.PUSED.MAX.WARN} in 5m)' priority: WARNING - - expression: '{Memcached:memcached.connections.current.min(5m)}/{Memcached:memcached.connections.max.last()}*100>{$MEMCACHED.CONN.PRC.MAX.WARN}' + expression: 'min(/Memcached/memcached.connections.current,5m)/last(/Memcached/memcached.connections.max)*100>{$MEMCACHED.CONN.PRC.MAX.WARN}' name: 'Memcached: Total number of connected clients is too high (over {$MEMCACHED.CONN.PRC.MAX.WARN}% in 5m)' priority: WARNING description: 'When the number of connections reaches the value of the "max_connections" parameter, new connections will be rejected.' diff --git a/templates/app/nginx_agent/template_app_nginx_agent.yaml b/templates/app/nginx_agent/template_app_nginx_agent.yaml index d0a71288a14..a53b02ab125 100644 --- a/templates/app/nginx_agent/template_app_nginx_agent.yaml +++ b/templates/app/nginx_agent/template_app_nginx_agent.yaml @@ -1,6 +1,6 @@ zabbix_export: version: '5.4' - date: '2021-04-22T11:27:42Z' + date: '2021-05-09T00:00:00Z' groups: - name: Templates/Applications @@ -32,17 +32,17 @@ zabbix_export: value: Nginx triggers: - - expression: '{min(5m)}>{$NGINX.RESPONSE_TIME.MAX.WARN}' + expression: 'min(/Nginx by Zabbix agent/net.tcp.service.perf[http,"{$NGINX.STUB_STATUS.HOST}","{$NGINX.STUB_STATUS.PORT}"],5m)>{$NGINX.RESPONSE_TIME.MAX.WARN}' name: 'Nginx: Service response time is too high (over {$NGINX.RESPONSE_TIME.MAX.WARN}s for 5m)' priority: WARNING manual_close: 'YES' dependencies: - name: 'Nginx: Process is not running' - expression: '{Nginx by Zabbix agent:proc.num[nginx].last()}=0' + expression: 'last(/Nginx by Zabbix agent/proc.num[nginx])=0' - name: 'Nginx: Service is down' - expression: '{Nginx by Zabbix agent:net.tcp.service[http,"{$NGINX.STUB_STATUS.HOST}","{$NGINX.STUB_STATUS.PORT}"].last()}=0' + expression: 'last(/Nginx by Zabbix agent/net.tcp.service[http,"{$NGINX.STUB_STATUS.HOST}","{$NGINX.STUB_STATUS.PORT}"])=0' - name: 'Nginx: Service status' key: 'net.tcp.service[http,"{$NGINX.STUB_STATUS.HOST}","{$NGINX.STUB_STATUS.PORT}"]' @@ -60,14 +60,14 @@ zabbix_export: value: Nginx triggers: - - expression: '{last()}=0' + expression: 'last(/Nginx by Zabbix agent/net.tcp.service[http,"{$NGINX.STUB_STATUS.HOST}","{$NGINX.STUB_STATUS.PORT}"])=0' name: 'Nginx: Service is down' priority: AVERAGE manual_close: 'YES' dependencies: - name: 'Nginx: Process is not running' - expression: '{Nginx by Zabbix agent:proc.num[nginx].last()}=0' + expression: 'last(/Nginx by Zabbix agent/proc.num[nginx])=0' - name: 'Nginx: Connections accepted per second' type: DEPENDENT @@ -140,7 +140,7 @@ zabbix_export: value: Nginx triggers: - - expression: '{min(5m)} > {$NGINX.DROP_RATE.MAX.WARN}' + expression: 'min(/Nginx by Zabbix agent/nginx.connections.dropped.rate,5m) > {$NGINX.DROP_RATE.MAX.WARN}' name: 'Nginx: High connections drop rate (more than {$NGINX.DROP_RATE.MAX.WARN} for 5m)' opdata: 'Current rate: {ITEM.LASTVALUE1}' priority: WARNING @@ -148,10 +148,10 @@ zabbix_export: dependencies: - name: 'Nginx: Process is not running' - expression: '{Nginx by Zabbix agent:proc.num[nginx].last()}=0' + expression: 'last(/Nginx by Zabbix agent/proc.num[nginx])=0' - name: 'Nginx: Service is down' - expression: '{Nginx by Zabbix agent:net.tcp.service[http,"{$NGINX.STUB_STATUS.HOST}","{$NGINX.STUB_STATUS.PORT}"].last()}=0' + expression: 'last(/Nginx by Zabbix agent/net.tcp.service[http,"{$NGINX.STUB_STATUS.HOST}","{$NGINX.STUB_STATUS.PORT}"])=0' - name: 'Nginx: Connections handled per second' type: DEPENDENT @@ -302,7 +302,7 @@ zabbix_export: value: Nginx triggers: - - expression: '{diff()}=1 and {strlen()}>0' + expression: '(last(/Nginx by Zabbix agent/nginx.version,#1)<>last(/Nginx by Zabbix agent/nginx.version,#2))=1 and length(last(/Nginx by Zabbix agent/nginx.version))>0' name: 'Nginx: Version has changed (new version: {ITEM.VALUE})' priority: INFO description: 'Nginx version has changed. Ack to close.' @@ -349,7 +349,7 @@ zabbix_export: value: Nginx triggers: - - expression: '{last()}=0' + expression: 'last(/Nginx by Zabbix agent/proc.num[nginx])=0' name: 'Nginx: Process is not running' priority: HIGH - @@ -375,8 +375,8 @@ zabbix_export: triggers: - expression: | - {str("HTTP/1.1 200")}=0 or - {nodata(30m)}=1 + find(/Nginx by Zabbix agent/web.page.get["{$NGINX.STUB_STATUS.HOST}","{$NGINX.STUB_STATUS.PATH}","{$NGINX.STUB_STATUS.PORT}"],,"like","HTTP/1.1 200")=0 or + nodata(/Nginx by Zabbix agent/web.page.get["{$NGINX.STUB_STATUS.HOST}","{$NGINX.STUB_STATUS.PATH}","{$NGINX.STUB_STATUS.PORT}"],30m)=1 name: 'Nginx: Failed to fetch stub status page (or no data for 30m)' priority: WARNING description: 'Zabbix has not received data for items for the last 30 minutes.' @@ -384,10 +384,10 @@ zabbix_export: dependencies: - name: 'Nginx: Process is not running' - expression: '{Nginx by Zabbix agent:proc.num[nginx].last()}=0' + expression: 'last(/Nginx by Zabbix agent/proc.num[nginx])=0' - name: 'Nginx: Service is down' - expression: '{Nginx by Zabbix agent:net.tcp.service[http,"{$NGINX.STUB_STATUS.HOST}","{$NGINX.STUB_STATUS.PORT}"].last()}=0' + expression: 'last(/Nginx by Zabbix agent/net.tcp.service[http,"{$NGINX.STUB_STATUS.HOST}","{$NGINX.STUB_STATUS.PORT}"])=0' macros: - macro: '{$NGINX.DROP_RATE.MAX.WARN}' diff --git a/templates/app/nginx_http/template_app_nginx_http.yaml b/templates/app/nginx_http/template_app_nginx_http.yaml index c78e37d9d87..b5f6a13cb5e 100644 --- a/templates/app/nginx_http/template_app_nginx_http.yaml +++ b/templates/app/nginx_http/template_app_nginx_http.yaml @@ -1,6 +1,6 @@ zabbix_export: version: '5.4' - date: '2021-04-22T11:27:50Z' + date: '2021-05-09T00:00:00Z' groups: - name: Templates/Applications @@ -33,14 +33,14 @@ zabbix_export: value: Nginx triggers: - - expression: '{min(5m)}>{$NGINX.RESPONSE_TIME.MAX.WARN}' + expression: 'min(/Nginx by HTTP/net.tcp.service.perf[http,"{HOST.CONN}","{$NGINX.STUB_STATUS.PORT}"],5m)>{$NGINX.RESPONSE_TIME.MAX.WARN}' name: 'Nginx: Service response time is too high (over {$NGINX.RESPONSE_TIME.MAX.WARN}s for 5m)' priority: WARNING manual_close: 'YES' dependencies: - name: 'Nginx: Service is down' - expression: '{Nginx by HTTP:net.tcp.service[http,"{HOST.CONN}","{$NGINX.STUB_STATUS.PORT}"].last()}=0' + expression: 'last(/Nginx by HTTP/net.tcp.service[http,"{HOST.CONN}","{$NGINX.STUB_STATUS.PORT}"])=0' - name: 'Nginx: Service status' type: SIMPLE @@ -59,7 +59,7 @@ zabbix_export: value: Nginx triggers: - - expression: '{last()}=0' + expression: 'last(/Nginx by HTTP/net.tcp.service[http,"{HOST.CONN}","{$NGINX.STUB_STATUS.PORT}"])=0' name: 'Nginx: Service is down' priority: AVERAGE manual_close: 'YES' @@ -135,7 +135,7 @@ zabbix_export: value: Nginx triggers: - - expression: '{min(5m)} > {$NGINX.DROP_RATE.MAX.WARN}' + expression: 'min(/Nginx by HTTP/nginx.connections.dropped.rate,5m) > {$NGINX.DROP_RATE.MAX.WARN}' name: 'Nginx: High connections drop rate (more than {$NGINX.DROP_RATE.MAX.WARN} for 5m)' opdata: 'Current rate: {ITEM.LASTVALUE1}' priority: WARNING @@ -143,7 +143,7 @@ zabbix_export: dependencies: - name: 'Nginx: Service is down' - expression: '{Nginx by HTTP:net.tcp.service[http,"{HOST.CONN}","{$NGINX.STUB_STATUS.PORT}"].last()}=0' + expression: 'last(/Nginx by HTTP/net.tcp.service[http,"{HOST.CONN}","{$NGINX.STUB_STATUS.PORT}"])=0' - name: 'Nginx: Connections handled per second' type: DEPENDENT @@ -251,8 +251,8 @@ zabbix_export: triggers: - expression: | - {str("HTTP/1.1 200")}=0 or - {nodata(30m)}=1 + find(/Nginx by HTTP/nginx.get_stub_status,,"like","HTTP/1.1 200")=0 or + nodata(/Nginx by HTTP/nginx.get_stub_status,30m)=1 name: 'Nginx: Failed to fetch stub status page (or no data for 30m)' priority: WARNING description: 'Zabbix has not received data for items for the last 30 minutes.' @@ -260,7 +260,7 @@ zabbix_export: dependencies: - name: 'Nginx: Service is down' - expression: '{Nginx by HTTP:net.tcp.service[http,"{HOST.CONN}","{$NGINX.STUB_STATUS.PORT}"].last()}=0' + expression: 'last(/Nginx by HTTP/net.tcp.service[http,"{HOST.CONN}","{$NGINX.STUB_STATUS.PORT}"])=0' - name: 'Nginx: Requests total' type: DEPENDENT @@ -330,7 +330,7 @@ zabbix_export: value: Nginx triggers: - - expression: '{diff()}=1 and {strlen()}>0' + expression: '(last(/Nginx by HTTP/nginx.version,#1)<>last(/Nginx by HTTP/nginx.version,#2))=1 and length(last(/Nginx by HTTP/nginx.version))>0' name: 'Nginx: Version has changed (new version: {ITEM.VALUE})' priority: INFO description: 'Nginx version has changed. Ack to close.' diff --git a/templates/app/php-fpm_agent/template_app_php-fpm_agent.yaml b/templates/app/php-fpm_agent/template_app_php-fpm_agent.yaml index cde487f9509..54bb20e15e3 100644 --- a/templates/app/php-fpm_agent/template_app_php-fpm_agent.yaml +++ b/templates/app/php-fpm_agent/template_app_php-fpm_agent.yaml @@ -1,6 +1,6 @@ zabbix_export: version: '5.4' - date: '2021-02-23T11:04:44Z' + date: '2021-05-09T00:00:00Z' groups: - name: Templates/Applications @@ -100,7 +100,7 @@ zabbix_export: history: 7d value_type: FLOAT units: '%' - params: 'last(php-fpm.listen_queue)/(last(php-fpm.listen_queue_len)+last(php-fpm.listen_queue_len)=0)*100' + params: 'last(//php-fpm.listen_queue)/(last(//php-fpm.listen_queue_len)+last(//php-fpm.listen_queue_len)=0)*100' description: 'Queue utilization' tags: - @@ -108,7 +108,7 @@ zabbix_export: value: PHP-FPM triggers: - - expression: '{min(15m)} > {$PHP_FPM.QUEUE.WARN.MAX}' + expression: 'min(/PHP-FPM by Zabbix agent/php-fpm.listen_queue_usage,15m) > {$PHP_FPM.QUEUE.WARN.MAX}' name: 'PHP-FPM: Queue utilization is high (over {$PHP_FPM.QUEUE.WARN.MAX}% for 15m)' priority: WARNING description: 'The queue for this pool reached {$PHP_FPM.QUEUE.WARN.MAX}% of its maximum capacity. Items in queue represent the current number of connections that have been initiated on this pool, but not yet accepted.' @@ -182,14 +182,14 @@ zabbix_export: value: PHP-FPM triggers: - - expression: '{last()}=0 or {nodata(3m)}=1' + expression: 'last(/PHP-FPM by Zabbix agent/php-fpm.ping)=0 or nodata(/PHP-FPM by Zabbix agent/php-fpm.ping,3m)=1' name: 'PHP-FPM: Service is down' priority: HIGH manual_close: 'YES' dependencies: - name: 'PHP-FPM: Process is not running' - expression: '{PHP-FPM by Zabbix agent:proc.num["{$PHP_FPM.PROCESS_NAME}"].last()}=0' + expression: 'last(/PHP-FPM by Zabbix agent/proc.num["{$PHP_FPM.PROCESS_NAME}"])=0' - name: 'PHP-FPM: Processes, active' type: DEPENDENT @@ -288,7 +288,7 @@ zabbix_export: value: PHP-FPM triggers: - - expression: '{diff()}=1' + expression: '(last(/PHP-FPM by Zabbix agent/php-fpm.process_manager,#1)<>last(/PHP-FPM by Zabbix agent/php-fpm.process_manager,#2))=1' name: 'PHP-FPM: Manager changed (new value received: {ITEM.VALUE})' priority: INFO description: 'PHP-FPM manager changed. Ack to close.' @@ -317,7 +317,7 @@ zabbix_export: value: PHP-FPM triggers: - - expression: '{min(#3)}>0' + expression: 'min(/PHP-FPM by Zabbix agent/php-fpm.slow_requests,#3)>0' name: 'PHP-FPM: Detected slow requests' priority: WARNING description: 'PHP-FPM detected slow request. A slow request means that it took more time to execute than expected (defined in the configuration of your pool).' @@ -361,7 +361,7 @@ zabbix_export: value: PHP-FPM triggers: - - expression: '{nodata(30m)}=1' + expression: 'nodata(/PHP-FPM by Zabbix agent/php-fpm.uptime,30m)=1' name: 'PHP-FPM: Failed to fetch info data (or no data for 30m)' priority: INFO description: 'Zabbix has not received data for items for the last 30 minutes' @@ -369,9 +369,9 @@ zabbix_export: dependencies: - name: 'PHP-FPM: Process is not running' - expression: '{PHP-FPM by Zabbix agent:proc.num["{$PHP_FPM.PROCESS_NAME}"].last()}=0' + expression: 'last(/PHP-FPM by Zabbix agent/proc.num["{$PHP_FPM.PROCESS_NAME}"])=0' - - expression: '{last()}<10m' + expression: 'last(/PHP-FPM by Zabbix agent/php-fpm.uptime)<10m' name: 'PHP-FPM: has been restarted (uptime < 10m)' priority: INFO description: 'Uptime is less than 10 minutes' @@ -404,7 +404,7 @@ zabbix_export: value: PHP-FPM triggers: - - expression: '{diff()}=1 and {strlen()}>0' + expression: '(last(/PHP-FPM by Zabbix agent/php-fpm.version,#1)<>last(/PHP-FPM by Zabbix agent/php-fpm.version,#2))=1 and length(last(/PHP-FPM by Zabbix agent/php-fpm.version))>0' name: 'PHP-FPM: Version has changed (new version: {ITEM.VALUE})' priority: INFO description: 'PHP-FPM version has changed. Ack to close.' @@ -451,7 +451,7 @@ zabbix_export: value: PHP-FPM triggers: - - expression: '{last()}=0' + expression: 'last(/PHP-FPM by Zabbix agent/proc.num["{$PHP_FPM.PROCESS_NAME}"])=0' name: 'PHP-FPM: Process is not running' priority: HIGH - diff --git a/templates/app/php-fpm_http/template_app_php-fpm_http.yaml b/templates/app/php-fpm_http/template_app_php-fpm_http.yaml index 2bd345ec2a8..872a0b71ff4 100644 --- a/templates/app/php-fpm_http/template_app_php-fpm_http.yaml +++ b/templates/app/php-fpm_http/template_app_php-fpm_http.yaml @@ -1,6 +1,6 @@ zabbix_export: version: '5.4' - date: '2021-02-23T11:04:43Z' + date: '2021-05-09T00:00:00Z' groups: - name: Templates/Applications @@ -125,7 +125,7 @@ zabbix_export: history: 7d value_type: FLOAT units: '%' - params: 'last(php-fpm.listen_queue)/(last(php-fpm.listen_queue_len)+last(php-fpm.listen_queue_len)=0)*100' + params: 'last(//php-fpm.listen_queue)/(last(//php-fpm.listen_queue_len)+last(//php-fpm.listen_queue_len)=0)*100' description: 'Queue utilization' tags: - @@ -133,7 +133,7 @@ zabbix_export: value: PHP-FPM triggers: - - expression: '{min(15m)} > {$PHP_FPM.QUEUE.WARN.MAX}' + expression: 'min(/PHP-FPM by HTTP/php-fpm.listen_queue_usage,15m) > {$PHP_FPM.QUEUE.WARN.MAX}' name: 'PHP-FPM: Queue utilization is high (over {$PHP_FPM.QUEUE.WARN.MAX}% for 15m)' priority: WARNING description: 'The queue for this pool reached {$PHP_FPM.QUEUE.WARN.MAX}% of its maximum capacity. Items in queue represent the current number of connections that have been initiated on this pool, but not yet accepted.' @@ -207,7 +207,7 @@ zabbix_export: value: PHP-FPM triggers: - - expression: '{last()}=0 or {nodata(3m)}=1' + expression: 'last(/PHP-FPM by HTTP/php-fpm.ping)=0 or nodata(/PHP-FPM by HTTP/php-fpm.ping,3m)=1' name: 'PHP-FPM: Service is down' priority: HIGH manual_close: 'YES' @@ -309,7 +309,7 @@ zabbix_export: value: PHP-FPM triggers: - - expression: '{diff()}=1' + expression: '(last(/PHP-FPM by HTTP/php-fpm.process_manager,#1)<>last(/PHP-FPM by HTTP/php-fpm.process_manager,#2))=1' name: 'PHP-FPM: Manager changed (new value received: {ITEM.VALUE})' priority: INFO description: 'PHP-FPM manager changed. Ack to close.' @@ -338,7 +338,7 @@ zabbix_export: value: PHP-FPM triggers: - - expression: '{min(#3)}>0' + expression: 'min(/PHP-FPM by HTTP/php-fpm.slow_requests,#3)>0' name: 'PHP-FPM: Detected slow requests' priority: WARNING description: 'PHP-FPM detected slow request. A slow request means that it took more time to execute than expected (defined in the configuration of your pool).' @@ -382,7 +382,7 @@ zabbix_export: value: PHP-FPM triggers: - - expression: '{nodata(30m)}=1' + expression: 'nodata(/PHP-FPM by HTTP/php-fpm.uptime,30m)=1' name: 'PHP-FPM: Failed to fetch info data (or no data for 30m)' priority: INFO description: 'Zabbix has not received data for items for the last 30 minutes' @@ -390,9 +390,9 @@ zabbix_export: dependencies: - name: 'PHP-FPM: Service is down' - expression: '{PHP-FPM by HTTP:php-fpm.ping.last()}=0 or {PHP-FPM by HTTP:php-fpm.ping.nodata(3m)}=1' + expression: 'last(/PHP-FPM by HTTP/php-fpm.ping)=0 or nodata(/PHP-FPM by HTTP/php-fpm.ping,3m)=1' - - expression: '{last()}<10m' + expression: 'last(/PHP-FPM by HTTP/php-fpm.uptime)<10m' name: 'PHP-FPM: has been restarted (uptime < 10m)' priority: INFO description: 'Uptime is less than 10 minutes' @@ -425,7 +425,7 @@ zabbix_export: value: PHP-FPM triggers: - - expression: '{diff()}=1 and {strlen()}>0' + expression: '(last(/PHP-FPM by HTTP/php-fpm.version,#1)<>last(/PHP-FPM by HTTP/php-fpm.version,#2))=1 and length(last(/PHP-FPM by HTTP/php-fpm.version))>0' name: 'PHP-FPM: Version has changed (new version: {ITEM.VALUE})' priority: INFO description: 'PHP-FPM version has changed. Ack to close.' diff --git a/templates/app/rabbitmq_agent/template_app_rabbitmq_agent.yaml b/templates/app/rabbitmq_agent/template_app_rabbitmq_agent.yaml index 1494e08ba90..fad599a2dcb 100644 --- a/templates/app/rabbitmq_agent/template_app_rabbitmq_agent.yaml +++ b/templates/app/rabbitmq_agent/template_app_rabbitmq_agent.yaml @@ -1,6 +1,6 @@ zabbix_export: version: '5.4' - date: '2021-04-22T11:27:36Z' + date: '2021-05-09T00:00:00Z' groups: - name: Templates/Applications @@ -526,7 +526,7 @@ zabbix_export: value: 'Zabbix raw items' triggers: - - expression: '{nodata(30m)}=1' + expression: 'nodata(/RabbitMQ cluster by Zabbix agent/web.page.get["http://{$RABBITMQ.API.USER}:{$RABBITMQ.API.PASSWORD}@{$RABBITMQ.API.CLUSTER_HOST}:{$RABBITMQ.API.PORT}/api/overview"],30m)=1' name: 'RabbitMQ: Failed to fetch overview data (or no data for 30m)' priority: WARNING description: 'Zabbix has not received data for items for the last 30 minutes' @@ -934,7 +934,7 @@ zabbix_export: value: RabbitMQ trigger_prototypes: - - expression: '{last()}=0' + expression: 'last(/RabbitMQ cluster by Zabbix agent/web.page.get["http://{$RABBITMQ.API.USER}:{$RABBITMQ.API.PASSWORD}@{$RABBITMQ.API.CLUSTER_HOST}:{$RABBITMQ.API.PORT}/api/health/checks/alarms{#SINGLETON}"])=0' name: 'RabbitMQ: There are active alarms in the cluster' opdata: 'Current state: {ITEM.LASTVALUE1}' priority: AVERAGE @@ -1101,17 +1101,17 @@ zabbix_export: value: RabbitMQ triggers: - - expression: '{min(5m)}>{$RABBITMQ.RESPONSE_TIME.MAX.WARN}' + expression: 'min(/RabbitMQ node by Zabbix agent/net.tcp.service.perf[http,"{$RABBITMQ.API.HOST}","{$RABBITMQ.API.PORT}"],5m)>{$RABBITMQ.RESPONSE_TIME.MAX.WARN}' name: 'RabbitMQ: Service response time is too high (over {$RABBITMQ.RESPONSE_TIME.MAX.WARN}s for 5m)' priority: WARNING manual_close: 'YES' dependencies: - name: 'RabbitMQ: Process is not running' - expression: '{RabbitMQ node by Zabbix agent:proc.num["{$RABBITMQ.PROCESS_NAME}"].last()}=0' + expression: 'last(/RabbitMQ node by Zabbix agent/proc.num["{$RABBITMQ.PROCESS_NAME}"])=0' - name: 'RabbitMQ: Service is down' - expression: '{RabbitMQ node by Zabbix agent:net.tcp.service[http,"{$RABBITMQ.API.HOST}","{$RABBITMQ.API.PORT}"].last()}=0' + expression: 'last(/RabbitMQ node by Zabbix agent/net.tcp.service[http,"{$RABBITMQ.API.HOST}","{$RABBITMQ.API.PORT}"])=0' - name: 'RabbitMQ: Service ping' key: 'net.tcp.service[http,"{$RABBITMQ.API.HOST}","{$RABBITMQ.API.PORT}"]' @@ -1129,14 +1129,14 @@ zabbix_export: value: RabbitMQ triggers: - - expression: '{last()}=0' + expression: 'last(/RabbitMQ node by Zabbix agent/net.tcp.service[http,"{$RABBITMQ.API.HOST}","{$RABBITMQ.API.PORT}"])=0' name: 'RabbitMQ: Service is down' priority: AVERAGE manual_close: 'YES' dependencies: - name: 'RabbitMQ: Process is not running' - expression: '{RabbitMQ node by Zabbix agent:proc.num["{$RABBITMQ.PROCESS_NAME}"].last()}=0' + expression: 'last(/RabbitMQ node by Zabbix agent/proc.num["{$RABBITMQ.PROCESS_NAME}"])=0' - name: 'RabbitMQ: CPU utilization' key: 'proc.cpu.util["{$RABBITMQ.PROCESS_NAME}"]' @@ -1178,7 +1178,7 @@ zabbix_export: value: RabbitMQ triggers: - - expression: '{last()}=0' + expression: 'last(/RabbitMQ node by Zabbix agent/proc.num["{$RABBITMQ.PROCESS_NAME}"])=0' name: 'RabbitMQ: Process is not running' priority: HIGH - @@ -1226,7 +1226,7 @@ zabbix_export: value: RabbitMQ triggers: - - expression: '{last()}=1' + expression: 'last(/RabbitMQ node by Zabbix agent/rabbitmq.node.disk_free_alarm)=1' name: 'RabbitMQ: Free disk space alarm (Free space threshold has been reached)' opdata: 'Current state: {ITEM.LASTVALUE1}' priority: AVERAGE @@ -1294,7 +1294,7 @@ zabbix_export: value: RabbitMQ triggers: - - expression: '{last()}=1' + expression: 'last(/RabbitMQ node by Zabbix agent/rabbitmq.node.mem_alarm)=1' name: 'RabbitMQ: Memory alarm (Memory usage threshold has been reached)' opdata: 'Current state: {ITEM.LASTVALUE1}' priority: AVERAGE @@ -1387,7 +1387,7 @@ zabbix_export: value: RabbitMQ triggers: - - expression: '{diff()}=1 and {strlen()}>0' + expression: '(last(/RabbitMQ node by Zabbix agent/rabbitmq.node.overview.rabbitmq_version,#1)<>last(/RabbitMQ node by Zabbix agent/rabbitmq.node.overview.rabbitmq_version,#2))=1 and length(last(/RabbitMQ node by Zabbix agent/rabbitmq.node.overview.rabbitmq_version))>0' name: 'RabbitMQ: Version has changed (new version: {ITEM.VALUE})' priority: INFO description: 'RabbitMQ version has changed. Ack to close.' @@ -1416,7 +1416,7 @@ zabbix_export: value: RabbitMQ triggers: - - expression: '{min(5m)}>0' + expression: 'min(/RabbitMQ node by Zabbix agent/rabbitmq.node.partitions,5m)>0' name: 'RabbitMQ: Number of network partitions is too high (more than 0 for 5m)' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING @@ -1447,7 +1447,7 @@ zabbix_export: value: RabbitMQ triggers: - - expression: '{max(5m)}=0' + expression: 'max(/RabbitMQ node by Zabbix agent/rabbitmq.node.running,5m)=0' name: 'RabbitMQ: Node is not running' opdata: 'Current state: {ITEM.LASTVALUE1}' priority: AVERAGE @@ -1455,10 +1455,10 @@ zabbix_export: dependencies: - name: 'RabbitMQ: Process is not running' - expression: '{RabbitMQ node by Zabbix agent:proc.num["{$RABBITMQ.PROCESS_NAME}"].last()}=0' + expression: 'last(/RabbitMQ node by Zabbix agent/proc.num["{$RABBITMQ.PROCESS_NAME}"])=0' - name: 'RabbitMQ: Service is down' - expression: '{RabbitMQ node by Zabbix agent:net.tcp.service[http,"{$RABBITMQ.API.HOST}","{$RABBITMQ.API.PORT}"].last()}=0' + expression: 'last(/RabbitMQ node by Zabbix agent/net.tcp.service[http,"{$RABBITMQ.API.HOST}","{$RABBITMQ.API.PORT}"])=0' - name: 'RabbitMQ: Runtime run queue' type: DEPENDENT @@ -1539,7 +1539,7 @@ zabbix_export: value: RabbitMQ triggers: - - expression: '{last()}<10m' + expression: 'last(/RabbitMQ node by Zabbix agent/rabbitmq.node.uptime)<10m' name: 'RabbitMQ: has been restarted (uptime < 10m)' priority: INFO description: 'Uptime is less than 10 minutes' @@ -1563,7 +1563,7 @@ zabbix_export: value: 'Zabbix raw items' triggers: - - expression: '{nodata(30m)}=1' + expression: 'nodata(/RabbitMQ node by Zabbix agent/web.page.get["http://{$RABBITMQ.API.USER}:{$RABBITMQ.API.PASSWORD}@{$RABBITMQ.API.HOST}:{$RABBITMQ.API.PORT}/api/nodes/{$RABBITMQ.CLUSTER.NAME}@{HOST.NAME}?memory=true"],30m)=1' name: 'RabbitMQ: Failed to fetch nodes data (or no data for 30m)' priority: WARNING description: 'Zabbix has not received data for items for the last 30 minutes.' @@ -1571,10 +1571,10 @@ zabbix_export: dependencies: - name: 'RabbitMQ: Process is not running' - expression: '{RabbitMQ node by Zabbix agent:proc.num["{$RABBITMQ.PROCESS_NAME}"].last()}=0' + expression: 'last(/RabbitMQ node by Zabbix agent/proc.num["{$RABBITMQ.PROCESS_NAME}"])=0' - name: 'RabbitMQ: Service is down' - expression: '{RabbitMQ node by Zabbix agent:net.tcp.service[http,"{$RABBITMQ.API.HOST}","{$RABBITMQ.API.PORT}"].last()}=0' + expression: 'last(/RabbitMQ node by Zabbix agent/net.tcp.service[http,"{$RABBITMQ.API.HOST}","{$RABBITMQ.API.PORT}"])=0' - name: 'RabbitMQ: Get node overview' key: 'web.page.get["http://{$RABBITMQ.API.USER}:{$RABBITMQ.API.PASSWORD}@{$RABBITMQ.API.HOST}:{$RABBITMQ.API.PORT}/api/overview"]' @@ -1646,7 +1646,7 @@ zabbix_export: value: RabbitMQ trigger_prototypes: - - expression: '{last()}=0' + expression: 'last(/RabbitMQ node by Zabbix agent/web.page.get["http://{$RABBITMQ.API.USER}:{$RABBITMQ.API.PASSWORD}@{$RABBITMQ.API.HOST}:{$RABBITMQ.API.PORT}/api/healthchecks/node{#SINGLETON}"])=0' name: 'RabbitMQ: Node healthcheck failed' opdata: 'Current state: {ITEM.LASTVALUE1}' priority: AVERAGE @@ -1708,7 +1708,7 @@ zabbix_export: value: RabbitMQ trigger_prototypes: - - expression: '{last()}=0' + expression: 'last(/RabbitMQ node by Zabbix agent/web.page.get["http://{$RABBITMQ.API.USER}:{$RABBITMQ.API.PASSWORD}@{$RABBITMQ.API.HOST}:{$RABBITMQ.API.PORT}/api/health/checks/certificate-expiration/1/months{#SINGLETON}"])=0' name: 'RabbitMQ: There are valid TLS certificates expiring in the next month' opdata: 'Current state: {ITEM.LASTVALUE1}' priority: AVERAGE @@ -1748,7 +1748,7 @@ zabbix_export: value: RabbitMQ trigger_prototypes: - - expression: '{last()}=0' + expression: 'last(/RabbitMQ node by Zabbix agent/web.page.get["http://{$RABBITMQ.API.USER}:{$RABBITMQ.API.PASSWORD}@{$RABBITMQ.API.HOST}:{$RABBITMQ.API.PORT}/api/health/checks/local-alarms{#SINGLETON}"])=0' name: 'RabbitMQ: There are active alarms in the node' opdata: 'Current state: {ITEM.LASTVALUE1}' priority: AVERAGE @@ -1788,7 +1788,7 @@ zabbix_export: value: RabbitMQ trigger_prototypes: - - expression: '{last()}=0' + expression: 'last(/RabbitMQ node by Zabbix agent/web.page.get["http://{$RABBITMQ.API.USER}:{$RABBITMQ.API.PASSWORD}@{$RABBITMQ.API.HOST}:{$RABBITMQ.API.PORT}/api/health/checks/node-is-mirror-sync-critical{#SINGLETON}"])=0' name: 'RabbitMQ: There are queues that could potentially lose data if the this node goes offline.' opdata: 'Current state: {ITEM.LASTVALUE1}' priority: AVERAGE @@ -1828,7 +1828,7 @@ zabbix_export: value: RabbitMQ trigger_prototypes: - - expression: '{last()}=0' + expression: 'last(/RabbitMQ node by Zabbix agent/web.page.get["http://{$RABBITMQ.API.USER}:{$RABBITMQ.API.PASSWORD}@{$RABBITMQ.API.HOST}:{$RABBITMQ.API.PORT}/api/health/checks/node-is-quorum-critical{#SINGLETON}"])=0' name: 'RabbitMQ: There are queues that would lose their quorum and availability if the this node is shut down.' opdata: 'Current state: {ITEM.LASTVALUE1}' priority: AVERAGE @@ -1868,7 +1868,7 @@ zabbix_export: value: RabbitMQ trigger_prototypes: - - expression: '{last()}=0' + expression: 'last(/RabbitMQ node by Zabbix agent/web.page.get["http://{$RABBITMQ.API.USER}:{$RABBITMQ.API.PASSWORD}@{$RABBITMQ.API.HOST}:{$RABBITMQ.API.PORT}/api/health/checks/virtual-hosts{#SINGLETON}"])=0' name: 'RabbitMQ: There are not running virtual hosts' opdata: 'Current state: {ITEM.LASTVALUE1}' priority: AVERAGE @@ -2192,7 +2192,7 @@ zabbix_export: value: 'RabbitMQ: Queue "{#VHOST}/{#QUEUE}"' trigger_prototypes: - - expression: '{min(5m)}>{$RABBITMQ.MESSAGES.MAX.WARN:"{#QUEUE}"}' + expression: 'min(/RabbitMQ node by Zabbix agent/rabbitmq.queue.messages["{#VHOST}/{#QUEUE}"],5m)>{$RABBITMQ.MESSAGES.MAX.WARN:"{#QUEUE}"}' name: 'RabbitMQ: Too many messages in queue (over {$RABBITMQ.MESSAGES.MAX.WARN} for 5m)' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING diff --git a/templates/app/rabbitmq_http/template_app_rabbitmq_http.yaml b/templates/app/rabbitmq_http/template_app_rabbitmq_http.yaml index 296c05d77fb..a98f6041ab5 100644 --- a/templates/app/rabbitmq_http/template_app_rabbitmq_http.yaml +++ b/templates/app/rabbitmq_http/template_app_rabbitmq_http.yaml @@ -1,6 +1,6 @@ zabbix_export: version: '5.4' - date: '2021-04-22T11:27:26Z' + date: '2021-05-09T00:00:00Z' groups: - name: Templates/Applications @@ -52,7 +52,7 @@ zabbix_export: value: 'Zabbix raw items' triggers: - - expression: '{nodata(30m)}=1' + expression: 'nodata(/RabbitMQ cluster by HTTP/rabbitmq.get_overview,30m)=1' name: 'RabbitMQ: Failed to fetch overview data (or no data for 30m)' priority: WARNING description: 'Zabbix has not received data for items for the last 30 minutes' @@ -934,7 +934,7 @@ zabbix_export: value: RabbitMQ trigger_prototypes: - - expression: '{last()}=0' + expression: 'last(/RabbitMQ cluster by HTTP/rabbitmq.healthcheck.alarms[{#SINGLETON}])=0' name: 'RabbitMQ: There are active alarms in the cluster' opdata: 'Current state: {ITEM.LASTVALUE1}' priority: AVERAGE @@ -1102,14 +1102,14 @@ zabbix_export: value: RabbitMQ triggers: - - expression: '{min(5m)}>{$RABBITMQ.RESPONSE_TIME.MAX.WARN}' + expression: 'min(/RabbitMQ node by HTTP/net.tcp.service.perf[http,"{HOST.CONN}","{$RABBITMQ.API.PORT}"],5m)>{$RABBITMQ.RESPONSE_TIME.MAX.WARN}' name: 'RabbitMQ: Service response time is too high (over {$RABBITMQ.RESPONSE_TIME.MAX.WARN}s for 5m)' priority: WARNING manual_close: 'YES' dependencies: - name: 'RabbitMQ: Service is down' - expression: '{RabbitMQ node by HTTP:net.tcp.service[http,"{HOST.CONN}","{$RABBITMQ.API.PORT}"].last()}=0' + expression: 'last(/RabbitMQ node by HTTP/net.tcp.service[http,"{HOST.CONN}","{$RABBITMQ.API.PORT}"])=0' - name: 'RabbitMQ: Service ping' type: SIMPLE @@ -1128,7 +1128,7 @@ zabbix_export: value: RabbitMQ triggers: - - expression: '{last()}=0' + expression: 'last(/RabbitMQ node by HTTP/net.tcp.service[http,"{HOST.CONN}","{$RABBITMQ.API.PORT}"])=0' name: 'RabbitMQ: Service is down' priority: AVERAGE manual_close: 'YES' @@ -1150,7 +1150,7 @@ zabbix_export: value: 'Zabbix raw items' triggers: - - expression: '{nodata(30m)}=1' + expression: 'nodata(/RabbitMQ node by HTTP/rabbitmq.get_nodes,30m)=1' name: 'RabbitMQ: Failed to fetch nodes data (or no data for 30m)' priority: WARNING description: 'Zabbix has not received data for items for the last 30 minutes.' @@ -1158,7 +1158,7 @@ zabbix_export: dependencies: - name: 'RabbitMQ: Service is down' - expression: '{RabbitMQ node by HTTP:net.tcp.service[http,"{HOST.CONN}","{$RABBITMQ.API.PORT}"].last()}=0' + expression: 'last(/RabbitMQ node by HTTP/net.tcp.service[http,"{HOST.CONN}","{$RABBITMQ.API.PORT}"])=0' - name: 'RabbitMQ: Get node overview' type: HTTP_AGENT @@ -1236,7 +1236,7 @@ zabbix_export: value: RabbitMQ triggers: - - expression: '{last()}=1' + expression: 'last(/RabbitMQ node by HTTP/rabbitmq.node.disk_free_alarm)=1' name: 'RabbitMQ: Free disk space alarm (Free space threshold has been reached)' opdata: 'Current state: {ITEM.LASTVALUE1}' priority: AVERAGE @@ -1304,7 +1304,7 @@ zabbix_export: value: RabbitMQ triggers: - - expression: '{last()}=1' + expression: 'last(/RabbitMQ node by HTTP/rabbitmq.node.mem_alarm)=1' name: 'RabbitMQ: Memory alarm (Memory usage threshold has been reached)' opdata: 'Current state: {ITEM.LASTVALUE1}' priority: AVERAGE @@ -1397,7 +1397,7 @@ zabbix_export: value: RabbitMQ triggers: - - expression: '{diff()}=1 and {strlen()}>0' + expression: '(last(/RabbitMQ node by HTTP/rabbitmq.node.overview.rabbitmq_version,#1)<>last(/RabbitMQ node by HTTP/rabbitmq.node.overview.rabbitmq_version,#2))=1 and length(last(/RabbitMQ node by HTTP/rabbitmq.node.overview.rabbitmq_version))>0' name: 'RabbitMQ: Version has changed (new version: {ITEM.VALUE})' priority: INFO description: 'RabbitMQ version has changed. Ack to close.' @@ -1426,7 +1426,7 @@ zabbix_export: value: RabbitMQ triggers: - - expression: '{min(5m)}>0' + expression: 'min(/RabbitMQ node by HTTP/rabbitmq.node.partitions,5m)>0' name: 'RabbitMQ: Number of network partitions is too high (more than 0 for 5m)' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING @@ -1457,7 +1457,7 @@ zabbix_export: value: RabbitMQ triggers: - - expression: '{max(5m)}=0' + expression: 'max(/RabbitMQ node by HTTP/rabbitmq.node.running,5m)=0' name: 'RabbitMQ: Node is not running' opdata: 'Current state: {ITEM.LASTVALUE1}' priority: AVERAGE @@ -1465,7 +1465,7 @@ zabbix_export: dependencies: - name: 'RabbitMQ: Service is down' - expression: '{RabbitMQ node by HTTP:net.tcp.service[http,"{HOST.CONN}","{$RABBITMQ.API.PORT}"].last()}=0' + expression: 'last(/RabbitMQ node by HTTP/net.tcp.service[http,"{HOST.CONN}","{$RABBITMQ.API.PORT}"])=0' - name: 'RabbitMQ: Runtime run queue' type: DEPENDENT @@ -1546,7 +1546,7 @@ zabbix_export: value: RabbitMQ triggers: - - expression: '{last()}<10m' + expression: 'last(/RabbitMQ node by HTTP/rabbitmq.node.uptime)<10m' name: 'RabbitMQ: has been restarted (uptime < 10m)' priority: INFO description: 'Uptime is less than 10 minutes' @@ -1588,7 +1588,7 @@ zabbix_export: value: RabbitMQ trigger_prototypes: - - expression: '{last()}=0' + expression: 'last(/RabbitMQ node by HTTP/rabbitmq.healthcheck[{#SINGLETON}])=0' name: 'RabbitMQ: Node healthcheck failed' opdata: 'Current state: {ITEM.LASTVALUE1}' priority: AVERAGE @@ -1653,7 +1653,7 @@ zabbix_export: value: RabbitMQ trigger_prototypes: - - expression: '{last()}=0' + expression: 'last(/RabbitMQ node by HTTP/rabbitmq.healthcheck.certificate_expiration[{#SINGLETON}])=0' name: 'RabbitMQ: There are valid TLS certificates expiring in the next month' opdata: 'Current state: {ITEM.LASTVALUE1}' priority: AVERAGE @@ -1696,7 +1696,7 @@ zabbix_export: value: RabbitMQ trigger_prototypes: - - expression: '{last()}=0' + expression: 'last(/RabbitMQ node by HTTP/rabbitmq.healthcheck.local_alarms[{#SINGLETON}])=0' name: 'RabbitMQ: There are active alarms in the node' opdata: 'Current state: {ITEM.LASTVALUE1}' priority: AVERAGE @@ -1739,7 +1739,7 @@ zabbix_export: value: RabbitMQ trigger_prototypes: - - expression: '{last()}=0' + expression: 'last(/RabbitMQ node by HTTP/rabbitmq.healthcheck.mirror_sync[{#SINGLETON}])=0' name: 'RabbitMQ: There are queues that could potentially lose data if the this node goes offline.' opdata: 'Current state: {ITEM.LASTVALUE1}' priority: AVERAGE @@ -1782,7 +1782,7 @@ zabbix_export: value: RabbitMQ trigger_prototypes: - - expression: '{last()}=0' + expression: 'last(/RabbitMQ node by HTTP/rabbitmq.healthcheck.quorum[{#SINGLETON}])=0' name: 'RabbitMQ: There are queues that would lose their quorum and availability if the this node is shut down.' opdata: 'Current state: {ITEM.LASTVALUE1}' priority: AVERAGE @@ -1825,7 +1825,7 @@ zabbix_export: value: RabbitMQ trigger_prototypes: - - expression: '{last()}=0' + expression: 'last(/RabbitMQ node by HTTP/rabbitmq.healthcheck.virtual_hosts[{#SINGLETON}])=0' name: 'RabbitMQ: There are not running virtual hosts' opdata: 'Current state: {ITEM.LASTVALUE1}' priority: AVERAGE @@ -2149,7 +2149,7 @@ zabbix_export: value: 'RabbitMQ: Queue "{#VHOST}/{#QUEUE}"' trigger_prototypes: - - expression: '{min(5m)}>{$RABBITMQ.MESSAGES.MAX.WARN:"{#QUEUE}"}' + expression: 'min(/RabbitMQ node by HTTP/rabbitmq.queue.messages["{#VHOST}/{#QUEUE}"],5m)>{$RABBITMQ.MESSAGES.MAX.WARN:"{#QUEUE}"}' name: 'RabbitMQ: Too many messages in queue (over {$RABBITMQ.MESSAGES.MAX.WARN} for 5m)' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING diff --git a/templates/app/sharepoint_http/template_app_sharepoint_http.yaml b/templates/app/sharepoint_http/template_app_sharepoint_http.yaml index 3383d6d18a0..b4e04868b52 100644 --- a/templates/app/sharepoint_http/template_app_sharepoint_http.yaml +++ b/templates/app/sharepoint_http/template_app_sharepoint_http.yaml @@ -1,6 +1,6 @@ zabbix_export: version: '5.4' - date: '2021-04-22T11:27:41Z' + date: '2021-05-09T00:00:00Z' groups: - name: Templates/Applications @@ -178,7 +178,7 @@ zabbix_export: value: Sharepoint triggers: - - expression: '{last()}<>200' + expression: 'last(/Microsoft SharePoint by HTTP/sharepoint.get_dir.status)<>200' name: 'Sharepoint: Error getting directory structure.' priority: WARNING description: 'Error getting directory structure. Check the Zabbix server log for more details.' @@ -209,7 +209,7 @@ zabbix_export: value: Sharepoint triggers: - - expression: '{last()}>2000' + expression: 'last(/Microsoft SharePoint by HTTP/sharepoint.get_dir.time)>2000' name: 'Sharepoint: Server responds slowly to API request' priority: WARNING - @@ -246,7 +246,7 @@ zabbix_export: value: Sharepoint triggers: - - expression: '{last()}>"{$SHAREPOINT.MAX_HEALT_SCORE}"' + expression: 'last(/Microsoft SharePoint by HTTP/sharepoint.health_score)>"{$SHAREPOINT.MAX_HEALT_SCORE}"' name: 'Sharepoint: Bad health score' priority: AVERAGE discovery_rules: @@ -411,7 +411,7 @@ zabbix_export: value: 'Sharepoint object [{#SHAREPOINT.LLD.FULL_PATH}]"' trigger_prototypes: - - expression: '{diff()}=1' + expression: '(last(/Microsoft SharePoint by HTTP/sharepoint.modified["{#SHAREPOINT.LLD.FULL_PATH}"],#1)<>last(/Microsoft SharePoint by HTTP/sharepoint.modified["{#SHAREPOINT.LLD.FULL_PATH}"],#2))=1' name: 'Sharepoint: Sharepoint object is changed' opdata: '{#SHAREPOINT.LLD.FULL_PATH}' priority: INFO diff --git a/templates/app/squid_snmp/template_app_squid_snmp.yaml b/templates/app/squid_snmp/template_app_squid_snmp.yaml index 43a3dea5490..f779864b715 100644 --- a/templates/app/squid_snmp/template_app_squid_snmp.yaml +++ b/templates/app/squid_snmp/template_app_squid_snmp.yaml @@ -1,6 +1,6 @@ zabbix_export: version: '5.4' - date: '2021-02-23T11:04:35Z' + date: '2021-05-09T00:00:00Z' groups: - name: Templates/Modules @@ -36,7 +36,7 @@ zabbix_export: value: Squid triggers: - - expression: '{last()}=0' + expression: 'last(/Squid SNMP/net.tcp.service[tcp,,{$SQUID.HTTP.PORT}])=0' name: 'Squid: Port {$SQUID.HTTP.PORT} is down' priority: AVERAGE manual_close: 'YES' @@ -151,7 +151,7 @@ zabbix_export: value: Squid triggers: - - expression: '{last()}<{$SQUID.FILE.DESC.WARN.MIN}' + expression: 'last(/Squid SNMP/squid[cacheCurrentUnusedFDescrCnt])<{$SQUID.FILE.DESC.WARN.MIN}' name: 'Squid: Squid is running out of file descriptors (<{$SQUID.FILE.DESC.WARN.MIN})' priority: WARNING - @@ -898,7 +898,7 @@ zabbix_export: value: Squid triggers: - - expression: '{last()}<10m' + expression: 'last(/Squid SNMP/squid[cacheUptime])<10m' name: 'Squid: Squid has been restarted (uptime < 10m)' priority: INFO description: 'Uptime is less than 10 minutes' @@ -923,7 +923,7 @@ zabbix_export: value: Squid triggers: - - expression: '{diff()}=1 and {strlen()}>0' + expression: '(last(/Squid SNMP/squid[cacheVersionId],#1)<>last(/Squid SNMP/squid[cacheVersionId],#2))=1 and length(last(/Squid SNMP/squid[cacheVersionId]))>0' name: 'Squid: Squid version has been changed' priority: INFO description: 'Squid version has changed. Ack to close.' @@ -961,16 +961,16 @@ zabbix_export: newvalue: Up triggers: - - expression: '{Squid SNMP:squid[cacheSysPageFaults].avg(5m)}>{Squid SNMP:squid[cacheProtoClientHttpRequests].avg(5m)}/100*{$SQUID.PAGE.FAULT.WARN}' + expression: 'avg(/Squid SNMP/squid[cacheSysPageFaults],5m)>avg(/Squid SNMP/squid[cacheProtoClientHttpRequests],5m)/100*{$SQUID.PAGE.FAULT.WARN}' name: 'Squid: High sys page faults rate (>{$SQUID.PAGE.FAULT.WARN}% of received HTTP requests)' priority: WARNING - - expression: '{Squid SNMP:squid[cacheCurrentSwapSize].last()}>{Squid SNMP:squid[cacheSwapHighWM].last()}*{Squid SNMP:squid[cacheSwapMaxSize].last()}/100' + expression: 'last(/Squid SNMP/squid[cacheCurrentSwapSize])>last(/Squid SNMP/squid[cacheSwapHighWM])*last(/Squid SNMP/squid[cacheSwapMaxSize])/100' name: 'Squid: Swap usage is more than high watermark (>{ITEM.VALUE2}%)' opdata: 'Used: {ITEM.LASTVALUE1}' priority: HIGH - - expression: '{Squid SNMP:squid[cacheCurrentSwapSize].last()}>{Squid SNMP:squid[cacheSwapLowWM].last()}*{Squid SNMP:squid[cacheSwapMaxSize].last()}/100' + expression: 'last(/Squid SNMP/squid[cacheCurrentSwapSize])>last(/Squid SNMP/squid[cacheSwapLowWM])*last(/Squid SNMP/squid[cacheSwapMaxSize])/100' name: 'Squid: Swap usage is more than low watermark (>{ITEM.VALUE2}%)' opdata: 'Used: {ITEM.LASTVALUE1}' priority: WARNING diff --git a/templates/app/tomcat_jmx/template_app_tomcat_jmx.yaml b/templates/app/tomcat_jmx/template_app_tomcat_jmx.yaml index a3b6202de39..18e2e7a3d83 100644 --- a/templates/app/tomcat_jmx/template_app_tomcat_jmx.yaml +++ b/templates/app/tomcat_jmx/template_app_tomcat_jmx.yaml @@ -1,6 +1,6 @@ zabbix_export: version: '5.4' - date: '2021-02-23T11:04:39Z' + date: '2021-05-09T00:00:00Z' groups: - name: Templates/Applications @@ -42,7 +42,7 @@ zabbix_export: value: Tomcat triggers: - - expression: '{diff()}=1 and {strlen()}>0' + expression: '(last(/Apache Tomcat JMX/jmx["Catalina:type=Server",serverInfo],#1)<>last(/Apache Tomcat JMX/jmx["Catalina:type=Server",serverInfo],#2))=1 and length(last(/Apache Tomcat JMX/jmx["Catalina:type=Server",serverInfo]))>0' name: 'Tomcat: Version has been changed' priority: INFO description: 'Tomcat version has changed. Ack to close.' @@ -86,7 +86,7 @@ zabbix_export: value: 'Tomcat: ProtocolHandler {#JMXVALUE}' trigger_prototypes: - - expression: '{str(off)} = 1' + expression: 'find(/Apache Tomcat JMX/jmx[{#JMXOBJ},compression],,"like","off") = 1' name: '{#JMXVALUE}: Gzip compression is disabled' priority: INFO description: 'gzip compression is disabled for connector {#JMXVALUE}.' @@ -425,7 +425,7 @@ zabbix_export: value: 'Tomcat: {#JMXTYPE} {#JMXNAME}' trigger_prototypes: - - expression: '{Apache Tomcat JMX:jmx[{#JMXOBJ},currentThreadsBusy].min({$TOMCAT.THREADS.MAX.TIME:"{#JMXNAME}"})}>{Apache Tomcat JMX:jmx[{#JMXOBJ},maxThreads].last()}*{$TOMCAT.THREADS.MAX.PCT:"{#JMXNAME}"}/100' + expression: 'min(/Apache Tomcat JMX/jmx[{#JMXOBJ},currentThreadsBusy],{$TOMCAT.THREADS.MAX.TIME:"{#JMXNAME}"})>last(/Apache Tomcat JMX/jmx[{#JMXOBJ},maxThreads])*{$TOMCAT.THREADS.MAX.PCT:"{#JMXNAME}"}/100' name: '{#JMXNAME}: Busy worker threads count are more than {$TOMCAT.THREADS.MAX.PCT:"{#JMXNAME}"}% of the limit for {$TOMCAT.THREADS.MAX.TIME:"{#JMXNAME}"}' priority: HIGH description: 'When current threads busy counter reaches the limit, no more requests could be handled, and the application chokes.' diff --git a/templates/app/vault_http/template_app_vault.yaml b/templates/app/vault_http/template_app_vault.yaml index 147b2c2c03e..1ebb8e5f6ff 100644 --- a/templates/app/vault_http/template_app_vault.yaml +++ b/templates/app/vault_http/template_app_vault.yaml @@ -1,6 +1,6 @@ zabbix_export: version: '5.4' - date: '2021-02-23T11:04:40Z' + date: '2021-05-09T00:00:00Z' groups: - name: Templates/Applications @@ -279,13 +279,13 @@ zabbix_export: value: Vault triggers: - - expression: '{strlen()}>0' + expression: 'length(last(/HashiCorp Vault by HTTP/vault.get_metrics.error))>0' name: 'Vault: Failed to get metrics (error: {ITEM.VALUE})' priority: WARNING dependencies: - name: 'Vault: Vault server is sealed' - expression: '{HashiCorp Vault by HTTP:vault.health.sealed.last()}=1' + expression: 'last(/HashiCorp Vault by HTTP/vault.health.sealed)=1' - name: 'Vault: Get tokens' type: SCRIPT @@ -401,7 +401,7 @@ zabbix_export: value: Vault triggers: - - expression: '{last()}=0' + expression: 'last(/HashiCorp Vault by HTTP/vault.health.check)=0' name: 'Vault: Vault server is not responding' priority: HIGH - @@ -547,7 +547,7 @@ zabbix_export: value: Vault triggers: - - expression: '{last()}=1' + expression: 'last(/HashiCorp Vault by HTTP/vault.health.sealed)=1' name: 'Vault: Vault server is sealed' priority: AVERAGE description: 'https://www.vaultproject.io/docs/concepts/seal' @@ -607,7 +607,7 @@ zabbix_export: value: Vault triggers: - - expression: '{diff()}=1 and {strlen()}>0' + expression: '(last(/HashiCorp Vault by HTTP/vault.health.version,#1)<>last(/HashiCorp Vault by HTTP/vault.health.version,#2))=1 and length(last(/HashiCorp Vault by HTTP/vault.health.version))>0' name: 'Vault: Version has changed (new version: {ITEM.VALUE})' priority: INFO description: 'Vault version has changed. Ack to close.' @@ -1021,7 +1021,7 @@ zabbix_export: value: Vault triggers: - - expression: '{delta(1h)}>{$VAULT.LEADERSHIP.SETUP.FAILED.MAX.WARN}' + expression: '(max(/HashiCorp Vault by HTTP/vault.metrics.core.leadership.setup_failed,1h)-min(/HashiCorp Vault by HTTP/vault.metrics.core.leadership.setup_failed,1h))>{$VAULT.LEADERSHIP.SETUP.FAILED.MAX.WARN}' name: 'Vault: High frequency of leadership setup failures (over {$VAULT.LEADERSHIP.SETUP.FAILED.MAX.WARN} for 1h)' priority: AVERAGE description: 'There have been more than {$VAULT.LEADERSHIP.SETUP.FAILED.MAX.WARN} Vault leadership setup failures in the past 1h' @@ -1051,7 +1051,7 @@ zabbix_export: value: Vault triggers: - - expression: '{delta(1h)}>{$VAULT.LEADERSHIP.LOSSES.MAX.WARN}' + expression: '(max(/HashiCorp Vault by HTTP/vault.metrics.core.leadership_lost,1h)-min(/HashiCorp Vault by HTTP/vault.metrics.core.leadership_lost,1h))>{$VAULT.LEADERSHIP.LOSSES.MAX.WARN}' name: 'Vault: High frequency of leadership losses (over {$VAULT.LEADERSHIP.LOSSES.MAX.WARN} for 1h)' priority: AVERAGE description: 'There have been more than {$VAULT.LEADERSHIP.LOSSES.MAX.WARN} Vault leadership losses in the past 1h' @@ -1182,7 +1182,7 @@ zabbix_export: value: Vault triggers: - - expression: '{delta(1h)}>{$VAULT.LEADERSHIP.STEPDOWNS.MAX.WARN}' + expression: '(max(/HashiCorp Vault by HTTP/vault.metrics.core.step_down,1h)-min(/HashiCorp Vault by HTTP/vault.metrics.core.step_down,1h))>{$VAULT.LEADERSHIP.STEPDOWNS.MAX.WARN}' name: 'Vault: High frequency of leadership step downs (over {$VAULT.LEADERSHIP.STEPDOWNS.MAX.WARN} for 1h)' priority: AVERAGE description: 'There have been more than {$VAULT.LEADERSHIP.STEPDOWNS.MAX.WARN} Vault leadership step downs in the past 1h' @@ -1651,7 +1651,7 @@ zabbix_export: value: Vault triggers: - - expression: '{last()}<10m' + expression: 'last(/HashiCorp Vault by HTTP/vault.metrics.process.uptime)<10m' name: 'Vault: has been restarted (uptime < 10m)' priority: INFO description: 'Uptime is less than 10 minutes' @@ -2502,13 +2502,13 @@ zabbix_export: value: 'Vault: Token {#TOKEN_NAME}' trigger_prototypes: - - expression: '{strlen()}>0' + expression: 'length(last(/HashiCorp Vault by HTTP/vault.token_via_accessor.error["{#ACCESSOR}"]))>0' name: 'Vault: Token [{#TOKEN_NAME}] lookup error occurred' priority: WARNING dependencies: - name: 'Vault: Vault server is sealed' - expression: '{HashiCorp Vault by HTTP:vault.health.sealed.last()}=1' + expression: 'last(/HashiCorp Vault by HTTP/vault.health.sealed)=1' - name: 'Token [{#TOKEN_NAME}] has TTL' type: DEPENDENT @@ -2558,17 +2558,17 @@ zabbix_export: value: 'Vault: Token {#TOKEN_NAME}' trigger_prototypes: - - expression: '{HashiCorp Vault by HTTP:vault.token_via_accessor.has_ttl["{#ACCESSOR}"].last()}=1 and {HashiCorp Vault by HTTP:vault.token_via_accessor.ttl["{#ACCESSOR}"].last()}<{$VAULT.TOKEN.TTL.MIN.CRIT}' + expression: 'last(/HashiCorp Vault by HTTP/vault.token_via_accessor.has_ttl["{#ACCESSOR}"])=1 and last(/HashiCorp Vault by HTTP/vault.token_via_accessor.ttl["{#ACCESSOR}"])<{$VAULT.TOKEN.TTL.MIN.CRIT}' name: 'Vault: Token [{#TOKEN_NAME}] will expire soon (less than {$VAULT.TOKEN.TTL.MIN.CRIT})' priority: AVERAGE - - expression: '{HashiCorp Vault by HTTP:vault.token_via_accessor.has_ttl["{#ACCESSOR}"].last()}=1 and {HashiCorp Vault by HTTP:vault.token_via_accessor.ttl["{#ACCESSOR}"].last()}<{$VAULT.TOKEN.TTL.MIN.WARN}' + expression: 'last(/HashiCorp Vault by HTTP/vault.token_via_accessor.has_ttl["{#ACCESSOR}"])=1 and last(/HashiCorp Vault by HTTP/vault.token_via_accessor.ttl["{#ACCESSOR}"])<{$VAULT.TOKEN.TTL.MIN.WARN}' name: 'Vault: Token [{#TOKEN_NAME}] will expire soon (less than {$VAULT.TOKEN.TTL.MIN.WARN})' priority: WARNING dependencies: - name: 'Vault: Token [{#TOKEN_NAME}] will expire soon (less than {$VAULT.TOKEN.TTL.MIN.CRIT})' - expression: '{HashiCorp Vault by HTTP:vault.token_via_accessor.has_ttl["{#ACCESSOR}"].last()}=1 and {HashiCorp Vault by HTTP:vault.token_via_accessor.ttl["{#ACCESSOR}"].last()}<{$VAULT.TOKEN.TTL.MIN.CRIT}' + expression: 'last(/HashiCorp Vault by HTTP/vault.token_via_accessor.has_ttl["{#ACCESSOR}"])=1 and last(/HashiCorp Vault by HTTP/vault.token_via_accessor.ttl["{#ACCESSOR}"])<{$VAULT.TOKEN.TTL.MIN.CRIT}' master_item: key: vault.get_tokens lld_macro_paths: @@ -2782,7 +2782,7 @@ zabbix_export: newvalue: 'True' triggers: - - expression: '{HashiCorp Vault by HTTP:vault.metrics.process.open.fds.min(5m)}/{HashiCorp Vault by HTTP:vault.metrics.process.max.fds.last()}*100>{$VAULT.OPEN.FDS.MAX.WARN}' + expression: 'min(/HashiCorp Vault by HTTP/vault.metrics.process.open.fds,5m)/last(/HashiCorp Vault by HTTP/vault.metrics.process.max.fds)*100>{$VAULT.OPEN.FDS.MAX.WARN}' name: 'Vault: Current number of open files is too high (over {$VAULT.OPEN.FDS.MAX.WARN}% for 5m)' priority: WARNING graphs: diff --git a/templates/app/vmware/template_app_vmware.yaml b/templates/app/vmware/template_app_vmware.yaml index a9465b63911..beaf555d60e 100644 --- a/templates/app/vmware/template_app_vmware.yaml +++ b/templates/app/vmware/template_app_vmware.yaml @@ -1,248 +1,11 @@ zabbix_export: version: '5.4' - date: '2021-04-22T12:04:30Z' + date: '2021-05-09T00:00:00Z' groups: - name: Templates/Applications templates: - - template: VMware - name: VMware - description: | - You can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback/ - - Template tooling version used: 0.38 - templates: - - - name: 'VMware macros' - groups: - - - name: Templates/Applications - items: - - - name: 'VMware: Event log' - type: SIMPLE - key: 'vmware.eventlog[{$VMWARE.URL},skip]' - history: 7d - trends: '0' - value_type: LOG - username: '{$VMWARE.USERNAME}' - password: '{$VMWARE.PASSWORD}' - description: 'Collect VMware event log. See also: https://www.zabbix.com/documentation/5.4/manual/config/items/preprocessing/examples#filtering_vmware_event_log_records' - tags: - - - tag: Application - value: VMware - - - name: 'VMware: Full name' - type: SIMPLE - key: 'vmware.fullname[{$VMWARE.URL}]' - delay: 1h - history: 7d - trends: '0' - value_type: CHAR - username: '{$VMWARE.USERNAME}' - password: '{$VMWARE.PASSWORD}' - description: 'VMware service full name.' - preprocessing: - - - type: DISCARD_UNCHANGED_HEARTBEAT - parameters: - - 1d - tags: - - - tag: Application - value: VMware - - - name: 'VMware: Version' - type: SIMPLE - key: 'vmware.version[{$VMWARE.URL}]' - delay: 1h - history: 7d - trends: '0' - value_type: CHAR - username: '{$VMWARE.USERNAME}' - password: '{$VMWARE.PASSWORD}' - description: 'VMware service version.' - preprocessing: - - - type: DISCARD_UNCHANGED_HEARTBEAT - parameters: - - 1d - tags: - - - tag: Application - value: VMware - discovery_rules: - - - name: 'Discover VMware clusters' - type: SIMPLE - key: 'vmware.cluster.discovery[{$VMWARE.URL}]' - delay: 1h - username: '{$VMWARE.USERNAME}' - password: '{$VMWARE.PASSWORD}' - description: 'Discovery of clusters' - item_prototypes: - - - name: 'VMware: Status of "{#CLUSTER.NAME}" cluster' - type: SIMPLE - key: 'vmware.cluster.status[{$VMWARE.URL},{#CLUSTER.NAME}]' - history: 7d - username: '{$VMWARE.USERNAME}' - password: '{$VMWARE.PASSWORD}' - description: 'VMware cluster status.' - valuemap: - name: 'VMware status' - tags: - - - tag: Application - value: VMware - - - name: 'Discover VMware datastores' - type: SIMPLE - key: 'vmware.datastore.discovery[{$VMWARE.URL}]' - delay: 1h - username: '{$VMWARE.USERNAME}' - password: '{$VMWARE.PASSWORD}' - item_prototypes: - - - name: 'VMware: Average read latency of the datastore {#DATASTORE}' - type: SIMPLE - key: 'vmware.datastore.read[{$VMWARE.URL},{#DATASTORE},latency]' - history: 7d - username: '{$VMWARE.USERNAME}' - password: '{$VMWARE.PASSWORD}' - description: 'Amount of time for a read operation from the datastore (milliseconds).' - tags: - - - tag: Application - value: VMware - - - name: 'VMware: Free space on datastore {#DATASTORE} (percentage)' - type: SIMPLE - key: 'vmware.datastore.size[{$VMWARE.URL},{#DATASTORE},pfree]' - delay: 5m - history: 7d - value_type: FLOAT - units: '%' - username: '{$VMWARE.USERNAME}' - password: '{$VMWARE.PASSWORD}' - description: 'VMware datastore space in percentage from total.' - tags: - - - tag: Application - value: VMware - - - name: 'VMware: Total size of datastore {#DATASTORE}' - type: SIMPLE - key: 'vmware.datastore.size[{$VMWARE.URL},{#DATASTORE}]' - delay: 5m - history: 7d - units: B - username: '{$VMWARE.USERNAME}' - password: '{$VMWARE.PASSWORD}' - description: 'VMware datastore space in bytes.' - tags: - - - tag: Application - value: VMware - - - name: 'VMware: Average write latency of the datastore {#DATASTORE}' - type: SIMPLE - key: 'vmware.datastore.write[{$VMWARE.URL},{#DATASTORE},latency]' - history: 7d - username: '{$VMWARE.USERNAME}' - password: '{$VMWARE.PASSWORD}' - description: 'Amount of time for a write operation to the datastore (milliseconds).' - tags: - - - tag: Application - value: VMware - - - name: 'Discover VMware hypervisors' - type: SIMPLE - key: 'vmware.hv.discovery[{$VMWARE.URL}]' - delay: 1h - username: '{$VMWARE.USERNAME}' - password: '{$VMWARE.PASSWORD}' - description: 'Discovery of hypervisors.' - host_prototypes: - - - host: '{#HV.UUID}' - name: '{#HV.NAME}' - group_links: - - - group: - name: Templates/Applications - group_prototypes: - - - name: '{#CLUSTER.NAME}' - - - name: '{#DATACENTER.NAME}' - templates: - - - name: 'VMware Hypervisor' - macros: - - - macro: '{$VMWARE.HV.UUID}' - value: '{#HV.UUID}' - description: 'UUID of hypervisor.' - custom_interfaces: 'YES' - interfaces: - - - ip: '{#HV.IP}' - - - name: 'Discover VMware VMs' - type: SIMPLE - key: 'vmware.vm.discovery[{$VMWARE.URL}]' - delay: 1h - username: '{$VMWARE.USERNAME}' - password: '{$VMWARE.PASSWORD}' - description: 'Discovery of guest virtual machines.' - host_prototypes: - - - host: '{#VM.UUID}' - name: '{#VM.NAME}' - group_links: - - - group: - name: Templates/Applications - group_prototypes: - - - name: '{#CLUSTER.NAME} (vm)' - - - name: '{#DATACENTER.NAME} (vm)' - - - name: '{#HV.NAME}' - templates: - - - name: 'VMware Guest' - macros: - - - macro: '{$VMWARE.VM.UUID}' - value: '{#VM.UUID}' - description: 'UUID of guest virtual machine.' - custom_interfaces: 'YES' - interfaces: - - - ip: '{#VM.IP}' - valuemaps: - - - name: 'VMware status' - mappings: - - - value: '0' - newvalue: gray - - - value: '1' - newvalue: green - - - value: '2' - newvalue: yellow - - - value: '3' - newvalue: red - - template: 'VMware Guest' name: 'VMware Guest' description: 'Template tooling version used: 0.38' @@ -417,7 +180,7 @@ zabbix_export: value: VMware triggers: - - expression: '{last()}<10m' + expression: 'last(/VMware Guest/vmware.vm.guest.osuptime[{$VMWARE.URL},{$VMWARE.VM.UUID}])<10m' name: 'VMware: VM has been restarted (uptime < 10m)' priority: WARNING description: 'Uptime is less than 10 minutes' @@ -947,7 +710,7 @@ zabbix_export: value: VMware triggers: - - expression: '{last()}=0' + expression: 'last(/VMware Hypervisor/icmpping[])=0' name: 'VMware: Hypervisor is down' priority: AVERAGE description: 'The service is unavailable or does not accept ICMP ping.' @@ -1269,29 +1032,29 @@ zabbix_export: value: VMware triggers: - - expression: '{last()}=3' + expression: 'last(/VMware Hypervisor/vmware.hv.sensor.health.state[{$VMWARE.URL},{$VMWARE.HV.UUID}])=3' name: 'VMware: The {$VMWARE.HV.UUID} health is Red' priority: HIGH description: 'One or more components in the appliance might be in an unusable status and the appliance might become unresponsive soon. Security patches might be available.' dependencies: - name: 'VMware: The {$VMWARE.HV.UUID} health is Red' - expression: '{VMware Hypervisor:vmware.hv.status[{$VMWARE.URL},{$VMWARE.HV.UUID}].last()}=3' + expression: 'last(/VMware Hypervisor/vmware.hv.status[{$VMWARE.URL},{$VMWARE.HV.UUID}])=3' - - expression: '{last()}=2' + expression: 'last(/VMware Hypervisor/vmware.hv.sensor.health.state[{$VMWARE.URL},{$VMWARE.HV.UUID}])=2' name: 'VMware: The {$VMWARE.HV.UUID} health is Yellow' priority: AVERAGE description: 'One or more components in the appliance might become overloaded soon.' dependencies: - name: 'VMware: The {$VMWARE.HV.UUID} health is Red' - expression: '{VMware Hypervisor:vmware.hv.sensor.health.state[{$VMWARE.URL},{$VMWARE.HV.UUID}].last()}=3' + expression: 'last(/VMware Hypervisor/vmware.hv.sensor.health.state[{$VMWARE.URL},{$VMWARE.HV.UUID}])=3' - name: 'VMware: The {$VMWARE.HV.UUID} health is Red' - expression: '{VMware Hypervisor:vmware.hv.status[{$VMWARE.URL},{$VMWARE.HV.UUID}].last()}=3' + expression: 'last(/VMware Hypervisor/vmware.hv.status[{$VMWARE.URL},{$VMWARE.HV.UUID}])=3' - name: 'VMware: The {$VMWARE.HV.UUID} health is Yellow' - expression: '{VMware Hypervisor:vmware.hv.status[{$VMWARE.URL},{$VMWARE.HV.UUID}].last()}=2' + expression: 'last(/VMware Hypervisor/vmware.hv.status[{$VMWARE.URL},{$VMWARE.HV.UUID}])=2' - name: 'VMware: Overall status' type: SIMPLE @@ -1308,19 +1071,19 @@ zabbix_export: value: VMware triggers: - - expression: '{last()}=3' + expression: 'last(/VMware Hypervisor/vmware.hv.status[{$VMWARE.URL},{$VMWARE.HV.UUID}])=3' name: 'VMware: The {$VMWARE.HV.UUID} health is Red' priority: HIGH description: 'One or more components in the appliance might be in an unusable status and the appliance might become unresponsive soon. Security patches might be available.' - - expression: '{last()}=2' + expression: 'last(/VMware Hypervisor/vmware.hv.status[{$VMWARE.URL},{$VMWARE.HV.UUID}])=2' name: 'VMware: The {$VMWARE.HV.UUID} health is Yellow' priority: AVERAGE description: 'One or more components in the appliance might become overloaded soon.' dependencies: - name: 'VMware: The {$VMWARE.HV.UUID} health is Red' - expression: '{VMware Hypervisor:vmware.hv.status[{$VMWARE.URL},{$VMWARE.HV.UUID}].last()}=3' + expression: 'last(/VMware Hypervisor/vmware.hv.status[{$VMWARE.URL},{$VMWARE.HV.UUID}])=3' - name: 'VMware: Uptime' type: SIMPLE @@ -1336,7 +1099,7 @@ zabbix_export: value: VMware triggers: - - expression: '{last()}<10m' + expression: 'last(/VMware Hypervisor/vmware.hv.uptime[{$VMWARE.URL},{$VMWARE.HV.UUID}])<10m' name: 'VMware: Hypervisor has been restarted (uptime < 10m)' priority: WARNING description: 'Uptime is less than 10 minutes' @@ -1392,7 +1155,7 @@ zabbix_export: value: VMware trigger_prototypes: - - expression: '{diff()}=1 and {last()}<{#MULTIPATH.COUNT}' + expression: '(last(/VMware Hypervisor/vmware.hv.datastore.multipath[{$VMWARE.URL},{$VMWARE.HV.UUID},{#DATASTORE}],#1)<>last(/VMware Hypervisor/vmware.hv.datastore.multipath[{$VMWARE.URL},{$VMWARE.HV.UUID},{#DATASTORE}],#2))=1 and last(/VMware Hypervisor/vmware.hv.datastore.multipath[{$VMWARE.URL},{$VMWARE.HV.UUID},{#DATASTORE}])<{#MULTIPATH.COUNT}' name: 'VMware: The multipath count has been changed' opdata: 'Current: {ITEM.LASTVALUE}, Registered: {#MULTIPATH.COUNT}' priority: AVERAGE diff --git a/templates/app/vmware_fqdn/template_app_vmware_fqdn.yaml b/templates/app/vmware_fqdn/template_app_vmware_fqdn.yaml index d3111000576..9feb826a020 100644 --- a/templates/app/vmware_fqdn/template_app_vmware_fqdn.yaml +++ b/templates/app/vmware_fqdn/template_app_vmware_fqdn.yaml @@ -1,6 +1,6 @@ zabbix_export: version: '5.4' - date: '2021-04-22T12:04:34Z' + date: '2021-05-09T00:00:00Z' groups: - name: Templates/Applications @@ -425,7 +425,7 @@ zabbix_export: value: VMware triggers: - - expression: '{last()}<10m' + expression: 'last(/VMware Guest/vmware.vm.guest.osuptime[{$VMWARE.URL},{$VMWARE.VM.UUID}])<10m' name: 'VMware: VM has been restarted (uptime < 10m)' priority: WARNING description: 'Uptime is less than 10 minutes' @@ -955,7 +955,7 @@ zabbix_export: value: VMware triggers: - - expression: '{last()}=0' + expression: 'last(/VMware Hypervisor/icmpping[])=0' name: 'VMware: Hypervisor is down' priority: AVERAGE description: 'The service is unavailable or does not accept ICMP ping.' @@ -1277,29 +1277,29 @@ zabbix_export: value: VMware triggers: - - expression: '{last()}=3' + expression: 'last(/VMware Hypervisor/vmware.hv.sensor.health.state[{$VMWARE.URL},{$VMWARE.HV.UUID}])=3' name: 'VMware: The {$VMWARE.HV.UUID} health is Red' priority: HIGH description: 'One or more components in the appliance might be in an unusable status and the appliance might become unresponsive soon. Security patches might be available.' dependencies: - name: 'VMware: The {$VMWARE.HV.UUID} health is Red' - expression: '{VMware Hypervisor:vmware.hv.status[{$VMWARE.URL},{$VMWARE.HV.UUID}].last()}=3' + expression: 'last(/VMware Hypervisor/vmware.hv.status[{$VMWARE.URL},{$VMWARE.HV.UUID}])=3' - - expression: '{last()}=2' + expression: 'last(/VMware Hypervisor/vmware.hv.sensor.health.state[{$VMWARE.URL},{$VMWARE.HV.UUID}])=2' name: 'VMware: The {$VMWARE.HV.UUID} health is Yellow' priority: AVERAGE description: 'One or more components in the appliance might become overloaded soon.' dependencies: - name: 'VMware: The {$VMWARE.HV.UUID} health is Red' - expression: '{VMware Hypervisor:vmware.hv.sensor.health.state[{$VMWARE.URL},{$VMWARE.HV.UUID}].last()}=3' + expression: 'last(/VMware Hypervisor/vmware.hv.sensor.health.state[{$VMWARE.URL},{$VMWARE.HV.UUID}])=3' - name: 'VMware: The {$VMWARE.HV.UUID} health is Red' - expression: '{VMware Hypervisor:vmware.hv.status[{$VMWARE.URL},{$VMWARE.HV.UUID}].last()}=3' + expression: 'last(/VMware Hypervisor/vmware.hv.status[{$VMWARE.URL},{$VMWARE.HV.UUID}])=3' - name: 'VMware: The {$VMWARE.HV.UUID} health is Yellow' - expression: '{VMware Hypervisor:vmware.hv.status[{$VMWARE.URL},{$VMWARE.HV.UUID}].last()}=2' + expression: 'last(/VMware Hypervisor/vmware.hv.status[{$VMWARE.URL},{$VMWARE.HV.UUID}])=2' - name: 'VMware: Overall status' type: SIMPLE @@ -1316,19 +1316,19 @@ zabbix_export: value: VMware triggers: - - expression: '{last()}=3' + expression: 'last(/VMware Hypervisor/vmware.hv.status[{$VMWARE.URL},{$VMWARE.HV.UUID}])=3' name: 'VMware: The {$VMWARE.HV.UUID} health is Red' priority: HIGH description: 'One or more components in the appliance might be in an unusable status and the appliance might become unresponsive soon. Security patches might be available.' - - expression: '{last()}=2' + expression: 'last(/VMware Hypervisor/vmware.hv.status[{$VMWARE.URL},{$VMWARE.HV.UUID}])=2' name: 'VMware: The {$VMWARE.HV.UUID} health is Yellow' priority: AVERAGE description: 'One or more components in the appliance might become overloaded soon.' dependencies: - name: 'VMware: The {$VMWARE.HV.UUID} health is Red' - expression: '{VMware Hypervisor:vmware.hv.status[{$VMWARE.URL},{$VMWARE.HV.UUID}].last()}=3' + expression: 'last(/VMware Hypervisor/vmware.hv.status[{$VMWARE.URL},{$VMWARE.HV.UUID}])=3' - name: 'VMware: Uptime' type: SIMPLE @@ -1344,7 +1344,7 @@ zabbix_export: value: VMware triggers: - - expression: '{last()}<10m' + expression: 'last(/VMware Hypervisor/vmware.hv.uptime[{$VMWARE.URL},{$VMWARE.HV.UUID}])<10m' name: 'VMware: Hypervisor has been restarted (uptime < 10m)' priority: WARNING description: 'Uptime is less than 10 minutes' @@ -1400,7 +1400,7 @@ zabbix_export: value: VMware trigger_prototypes: - - expression: '{diff()}=1 and {last()}<{#MULTIPATH.COUNT}' + expression: '(last(/VMware Hypervisor/vmware.hv.datastore.multipath[{$VMWARE.URL},{$VMWARE.HV.UUID},{#DATASTORE}],#1)<>last(/VMware Hypervisor/vmware.hv.datastore.multipath[{$VMWARE.URL},{$VMWARE.HV.UUID},{#DATASTORE}],#2))=1 and last(/VMware Hypervisor/vmware.hv.datastore.multipath[{$VMWARE.URL},{$VMWARE.HV.UUID},{#DATASTORE}])<{#MULTIPATH.COUNT}' name: 'VMware: The multipath count has been changed' opdata: 'Current: {ITEM.LASTVALUE}, Registered: {#MULTIPATH.COUNT}' priority: AVERAGE diff --git a/templates/app/wildfly_domain_jmx/template_app_wildfly_domain_jmx.yaml b/templates/app/wildfly_domain_jmx/template_app_wildfly_domain_jmx.yaml index 35b91bb9fb4..ed85e55c995 100644 --- a/templates/app/wildfly_domain_jmx/template_app_wildfly_domain_jmx.yaml +++ b/templates/app/wildfly_domain_jmx/template_app_wildfly_domain_jmx.yaml @@ -1,6 +1,6 @@ zabbix_export: version: '5.4' - date: '2021-04-30T13:05:07Z' + date: '2021-05-09T00:00:00Z' groups: - name: Templates/Applications @@ -42,7 +42,7 @@ zabbix_export: value: WildFly triggers: - - expression: '{last()}<10m' + expression: 'last(/WildFly Domain by JMX/jmx["java.lang:type=Runtime","Uptime"])<10m' name: 'WildFly: has been restarted (uptime < 10m)' priority: INFO description: 'Uptime is less than 10 minutes' @@ -131,7 +131,7 @@ zabbix_export: value: WildFly triggers: - - expression: '{diff()}=1 and {strlen()}>0' + expression: '(last(/WildFly Domain by JMX/jmx["jboss.as:management-root=server","productVersion"],#1)<>last(/WildFly Domain by JMX/jmx["jboss.as:management-root=server","productVersion"],#2))=1 and length(last(/WildFly Domain by JMX/jmx["jboss.as:management-root=server","productVersion"]))>0' name: 'WildFly: Version has changed (new version: {ITEM.VALUE})' priority: INFO description: 'WildFly version has changed. Ack to close.' @@ -284,7 +284,7 @@ zabbix_export: value: 'WildFly domain: Server [{#SERVER}]' trigger_prototypes: - - expression: '{diff()}=1 and {strlen()}>0' + expression: '(last(/WildFly Domain by JMX/jmx["{#JMXOBJ}",group],#1)<>last(/WildFly Domain by JMX/jmx["{#JMXOBJ}",group],#2))=1 and length(last(/WildFly Domain by JMX/jmx["{#JMXOBJ}",group]))>0' name: 'WildFly domain: Server {#SERVER}: Server group has changed (new group: {ITEM.VALUE})' priority: INFO description: 'Server group has changed. Ack to close.' @@ -311,7 +311,7 @@ zabbix_export: value: 'WildFly domain: Server [{#SERVER}]' trigger_prototypes: - - expression: '{diff()}=1 and {strlen()}>0' + expression: '(last(/WildFly Domain by JMX/jmx["{#JMXOBJ}",status],#1)<>last(/WildFly Domain by JMX/jmx["{#JMXOBJ}",status],#2))=1 and length(last(/WildFly Domain by JMX/jmx["{#JMXOBJ}",status]))>0' name: 'WildFly domain: Server {#SERVER}: Server status has changed (new status: {ITEM.VALUE})' priority: WARNING description: 'Server status has changed. Ack to close.' diff --git a/templates/app/wildfly_server_jmx/template_app_wildfly_server_jmx.yaml b/templates/app/wildfly_server_jmx/template_app_wildfly_server_jmx.yaml index 00b34936515..9fa1e3f4b20 100644 --- a/templates/app/wildfly_server_jmx/template_app_wildfly_server_jmx.yaml +++ b/templates/app/wildfly_server_jmx/template_app_wildfly_server_jmx.yaml @@ -1,6 +1,6 @@ zabbix_export: version: '5.4' - date: '2021-04-30T13:05:10Z' + date: '2021-05-09T00:00:00Z' groups: - name: Templates/Applications @@ -42,12 +42,12 @@ zabbix_export: value: WildFly triggers: - - expression: '{nodata(15m)}=1' + expression: 'nodata(/WildFly Server by JMX/jmx["java.lang:type=Runtime","Uptime"],15m)=1' name: 'WildFly: Failed to fetch info data (or no data for 15m)' priority: WARNING description: 'Zabbix has not received data for items for the last 15 minutes' - - expression: '{last()}<10m' + expression: 'last(/WildFly Server by JMX/jmx["java.lang:type=Runtime","Uptime"])<10m' name: 'WildFly: has been restarted (uptime < 10m)' priority: INFO description: 'Uptime is less than 10 minutes' @@ -136,7 +136,7 @@ zabbix_export: value: WildFly triggers: - - expression: '{diff()}=1 and {strlen()}>0' + expression: '(last(/WildFly Server by JMX/jmx["jboss.as:management-root=server","productVersion"],#1)<>last(/WildFly Server by JMX/jmx["jboss.as:management-root=server","productVersion"],#2))=1 and length(last(/WildFly Server by JMX/jmx["jboss.as:management-root=server","productVersion"]))>0' name: 'WildFly: Version has changed (new version: {ITEM.VALUE})' priority: INFO description: 'WildFly version has changed. Ack to close.' @@ -163,7 +163,7 @@ zabbix_export: value: WildFly triggers: - - expression: '{str(ok)}=0' + expression: 'find(/WildFly Server by JMX/jmx["jboss.as:management-root=server","runtimeConfigurationState"],,"like","ok")=0' name: 'WildFly: Server needs to restart for configuration change.' priority: WARNING - @@ -188,13 +188,13 @@ zabbix_export: value: WildFly triggers: - - expression: '{str(running)}=0' + expression: 'find(/WildFly Server by JMX/jmx["jboss.as:management-root=server","serverState"],,"like","running")=0' name: 'WildFly: Server controller is not in RUNNING state' priority: WARNING dependencies: - name: 'WildFly: Server needs to restart for configuration change.' - expression: '{WildFly Server by JMX:jmx["jboss.as:management-root=server","runtimeConfigurationState"].str(ok)}=0' + expression: 'find(/WildFly Server by JMX/jmx["jboss.as:management-root=server","runtimeConfigurationState"],,"like","ok")=0' - name: 'WildFly: Transactions: Aborted, rate' type: JMX @@ -523,7 +523,7 @@ zabbix_export: value: 'WildFly deployment [{#DEPLOYMENT}]' trigger_prototypes: - - expression: '{diff()}=1 and {strlen()}>0' + expression: '(last(/WildFly Server by JMX/jmx["{#JMXOBJ}",status],#1)<>last(/WildFly Server by JMX/jmx["{#JMXOBJ}",status],#2))=1 and length(last(/WildFly Server by JMX/jmx["{#JMXOBJ}",status]))>0' name: 'WildFly deployment [{#DEPLOYMENT}]: Deployment status has changed (new status: {ITEM.VALUE})' priority: WARNING description: 'Deployment status has changed. Ack to close.' @@ -740,7 +740,7 @@ zabbix_export: value: 'WildFly datasource [{#JMX_DATA_SOURCE}]' trigger_prototypes: - - expression: '{max(5m)}=0' + expression: 'max(/WildFly Server by JMX/jmx["{#JMXOBJ}",ActiveCount],5m)=0' name: 'WildFly {#JMX_DATA_SOURCE}: There are no active connections for 5m' priority: WARNING - @@ -958,11 +958,11 @@ zabbix_export: value: 'WildFly datasource [{#JMX_DATA_SOURCE}]' trigger_prototypes: - - expression: '{last()}=0' + expression: 'last(/WildFly Server by JMX/jmx["{#JMXOBJ}",statisticsEnabled])=0' name: 'WildFly {#JMX_DATA_SOURCE}: JDBC monitoring statistic is not enabled' priority: INFO - - expression: '{last()}=0' + expression: 'last(/WildFly Server by JMX/jmx["{#JMXOBJ}",statisticsEnabled])=0' name: 'WildFly {#JMX_DATA_SOURCE}: Pools monitoring statistic is not enabled' priority: INFO description: 'Zabbix has not received data for items for the last 15 minutes' @@ -987,7 +987,7 @@ zabbix_export: value: 'WildFly datasource [{#JMX_DATA_SOURCE}]' trigger_prototypes: - - expression: '{last()}>0' + expression: 'last(/WildFly Server by JMX/jmx["{#JMXOBJ}",TimedOut])>0' name: 'WildFly {#JMX_DATA_SOURCE}: There are timeout connections' priority: WARNING - @@ -1006,7 +1006,7 @@ zabbix_export: value: 'WildFly datasource [{#JMX_DATA_SOURCE}]' trigger_prototypes: - - expression: '{min(5m)}>{$WILDFLY.CONN.WAIT.MAX.WARN}' + expression: 'min(/WildFly Server by JMX/jmx["{#JMXOBJ}",WaitCount],5m)>{$WILDFLY.CONN.WAIT.MAX.WARN}' name: 'WildFly {#JMX_DATA_SOURCE}: Too many waiting connections (over {$WILDFLY.CONN.WAIT.MAX.WARN} for 5m)' priority: WARNING - @@ -1248,7 +1248,7 @@ zabbix_export: value: 'WildFly datasource [{#JMX_DATA_SOURCE}]' trigger_prototypes: - - expression: '{WildFly Server by JMX:jmx["{#JMXOBJ}",InUseCount].min(5m)}/{WildFly Server by JMX:jmx["{#JMXOBJ}",AvailableCount].last()}*100>{$WILDFLY.CONN.USAGE.WARN.MAX}' + expression: 'min(/WildFly Server by JMX/jmx["{#JMXOBJ}",InUseCount],5m)/last(/WildFly Server by JMX/jmx["{#JMXOBJ}",AvailableCount])*100>{$WILDFLY.CONN.USAGE.WARN.MAX}' name: 'WildFly {#JMX_DATA_SOURCE}: Connection usage is too high (over {$WILDFLY.CONN.USAGE.WARN.MAX} in 5m)' priority: HIGH graph_prototypes: @@ -1367,7 +1367,7 @@ zabbix_export: value: 'WildFly listener [{#SERVER}.{#HTTP_LISTENER}]' trigger_prototypes: - - expression: '{last()}>0' + expression: 'last(/WildFly Server by JMX/jmx["{#JMXOBJ}",errorCount])>0' name: 'WildFly listener {#HTTP_LISTENER}: There are 500 responses by this listener.' priority: WARNING - diff --git a/templates/app/zookeeper_http/template_app_zookeeper_http.yaml b/templates/app/zookeeper_http/template_app_zookeeper_http.yaml index 817e15a159a..bc15b379f37 100644 --- a/templates/app/zookeeper_http/template_app_zookeeper_http.yaml +++ b/templates/app/zookeeper_http/template_app_zookeeper_http.yaml @@ -1,6 +1,6 @@ zabbix_export: version: '5.4' - date: '2021-02-23T11:04:37Z' + date: '2021-05-09T00:00:00Z' groups: - name: Templates/Applications @@ -561,7 +561,7 @@ zabbix_export: value: Zookeeper triggers: - - expression: '{min(5m)}>{$ZOOKEEPER.OUTSTANDING_REQ.MAX.WARN}' + expression: 'min(/Zookeeper by HTTP/zookeeper.outstanding_requests,5m)>{$ZOOKEEPER.OUTSTANDING_REQ.MAX.WARN}' name: 'Zookeeper: Too many queued requests (over {$ZOOKEEPER.OUTSTANDING_REQ.MAX.WARN}% for 5 min)' priority: AVERAGE description: 'Number of queued requests in the server. This goes up when the server receives more requests than it can process.' @@ -661,7 +661,7 @@ zabbix_export: value: Zookeeper triggers: - - expression: '{diff()}=1 and {strlen()}>0' + expression: '(last(/Zookeeper by HTTP/zookeeper.server_state,#1)<>last(/Zookeeper by HTTP/zookeeper.server_state,#2))=1 and length(last(/Zookeeper by HTTP/zookeeper.server_state))>0' name: 'Zookeeper: Server mode has changed (new mode: {ITEM.VALUE})' priority: INFO description: 'Zookeeper node state has changed. Ack to close.' @@ -714,13 +714,13 @@ zabbix_export: value: Zookeeper triggers: - - expression: '{nodata(10m)}=1' + expression: 'nodata(/Zookeeper by HTTP/zookeeper.uptime,10m)=1' name: 'Zookeeper: Failed to fetch info data (or no data for 10m)' priority: WARNING description: 'Zabbix has not received data for items for the last 10 minutes' manual_close: 'YES' - - expression: '{last()}<10m' + expression: 'last(/Zookeeper by HTTP/zookeeper.uptime)<10m' name: 'Zookeeper: has been restarted (uptime < 10m)' priority: INFO description: 'Uptime is less than 10 minutes' @@ -756,7 +756,7 @@ zabbix_export: value: Zookeeper triggers: - - expression: '{diff()}=1 and {strlen()}>0' + expression: '(last(/Zookeeper by HTTP/zookeeper.version,#1)<>last(/Zookeeper by HTTP/zookeeper.version,#2))=1 and length(last(/Zookeeper by HTTP/zookeeper.version))>0' name: 'Zookeeper: Version has changed (new version: {ITEM.VALUE})' priority: INFO description: 'Zookeeper version has changed. Ack to close.' @@ -1040,7 +1040,7 @@ zabbix_export: value: Zookeeper trigger_prototypes: - - expression: '{min(5m)}>{$ZOOKEEPER.PENDING_SYNCS.MAX.WARN}' + expression: 'min(/Zookeeper by HTTP/zookeeper.pending_syncs[{#SINGLETON}],5m)>{$ZOOKEEPER.PENDING_SYNCS.MAX.WARN}' name: 'Zookeeper: Too many pending syncs (over {$ZOOKEEPER.PENDING_SYNCS.MAX.WARN}% for 5 min)' priority: AVERAGE manual_close: 'YES' @@ -1117,7 +1117,7 @@ zabbix_export: value: Zookeeper trigger_prototypes: - - expression: '{Zookeeper by HTTP:zookeeper.synced_followers[{#SINGLETON}].last()} < {Zookeeper by HTTP:zookeeper.quorum_size[{#SINGLETON}].last()}-1' + expression: 'last(/Zookeeper by HTTP/zookeeper.synced_followers[{#SINGLETON}]) < last(/Zookeeper by HTTP/zookeeper.quorum_size[{#SINGLETON}])-1' name: 'Zookeeper: Too few active followers' priority: AVERAGE description: 'The number of followers should equal the total size of your ZooKeeper ensemble, minus 1 (the leader is not included in the follower count). If the ensemble fails to maintain quorum, all automatic failover features are suspended.' @@ -1159,7 +1159,7 @@ zabbix_export: description: 'Request scheme which may be http or https' triggers: - - expression: '{Zookeeper by HTTP:zookeeper.open_file_descriptor_count.min(5m)} * 100 / {Zookeeper by HTTP:zookeeper.max_file_descriptor_count.last()} > {$ZOOKEEPER.FILE_DESCRIPTORS.MAX.WARN}' + expression: 'min(/Zookeeper by HTTP/zookeeper.open_file_descriptor_count,5m) * 100 / last(/Zookeeper by HTTP/zookeeper.max_file_descriptor_count) > {$ZOOKEEPER.FILE_DESCRIPTORS.MAX.WARN}' name: 'Zookeeper: Too many file descriptors used (over {$ZOOKEEPER.FILE_DESCRIPTORS.MAX.WARN}% for 5 min)' priority: WARNING description: 'Number of file descriptors used more than {$ZOOKEEPER.FILE_DESCRIPTORS.MAX.WARN}% of the available number of file descriptors.' diff --git a/templates/cctv/hikvision/template_cctv_hikvision_camera.yaml b/templates/cctv/hikvision/template_cctv_hikvision_camera.yaml index 1635f23d61d..b7f349b80e4 100644 --- a/templates/cctv/hikvision/template_cctv_hikvision_camera.yaml +++ b/templates/cctv/hikvision/template_cctv_hikvision_camera.yaml @@ -1,6 +1,6 @@ zabbix_export: version: '5.4' - date: '2021-02-23T11:04:44Z' + date: '2021-05-09T00:00:00Z' groups: - name: 'Templates/Video surveillance' @@ -89,7 +89,7 @@ zabbix_export: value: CPU triggers: - - expression: '{min(5m)}>{$CPU.UTIL.CRIT}' + expression: 'min(/Hikvision camera by HTTP/hikvision_cam.cpu.util,5m)>{$CPU.UTIL.CRIT}' name: 'Hikvision camera: High CPU utilization (over {$CPU.UTIL.CRIT}% for 5m)' opdata: 'Current utilization: {ITEM.LASTVALUE1}' priority: WARNING @@ -340,7 +340,7 @@ zabbix_export: value: 'Hikvision camera' triggers: - - expression: '{diff()}=1 and {strlen()}>0' + expression: '(last(/Hikvision camera by HTTP/hikvision_cam.firmware_version,#1)<>last(/Hikvision camera by HTTP/hikvision_cam.firmware_version,#2))=1 and length(last(/Hikvision camera by HTTP/hikvision_cam.firmware_version))>0' name: 'Hikvision camera: Version has changed (new version: {ITEM.VALUE})' priority: INFO description: 'Hikvision camera version has changed. Ack to close.' @@ -607,7 +607,7 @@ zabbix_export: value: Memory triggers: - - expression: '{min(5m)}>{$MEMORY.UTIL.MAX}' + expression: 'min(/Hikvision camera by HTTP/hikvision_cam.memory.usage,5m)>{$MEMORY.UTIL.MAX}' name: 'Hikvision camera: High memory utilization (>{$MEMORY.UTIL.MAX}% for 5m)' priority: AVERAGE description: 'The system is running out of free memory.' @@ -663,7 +663,7 @@ zabbix_export: value: 'Hikvision camera' triggers: - - expression: '{diff()}=1 and {strlen()}>0' + expression: '(last(/Hikvision camera by HTTP/hikvision_cam.serial_number,#1)<>last(/Hikvision camera by HTTP/hikvision_cam.serial_number,#2))=1 and length(last(/Hikvision camera by HTTP/hikvision_cam.serial_number))>0' name: 'Hikvision camera: Camera has been replaced (new serial number received)' priority: INFO description: 'Camera serial number has changed. Ack to close' @@ -788,7 +788,7 @@ zabbix_export: value: Status triggers: - - expression: '{last()}<10m' + expression: 'last(/Hikvision camera by HTTP/hikvision_cam.uptime)<10m' name: 'Hikvision camera: has been restarted (uptime < 10m)' priority: INFO description: 'Uptime is less than 10 minutes' @@ -837,7 +837,7 @@ zabbix_export: value: 'Zabbix raw items' trigger_prototypes: - - expression: '{last()}=1' + expression: 'last(/Hikvision camera by HTTP/hikvision_cam.get_ptz.login_status[{#PTZ_CHANNEL_ID}])=1' name: 'Hikvision camera:Authorisation error on get PTZ channels' priority: WARNING description: 'Check the correctness of the authorization data' @@ -846,11 +846,11 @@ zabbix_export: - name: 'Hikvision camera: Authorisation error' expression: | - {Hikvision camera by HTTP:hikvision_cam.get_info.login_status.last()}=1 or - {Hikvision camera by HTTP:hikvision_cam.get_streaming.login_status.last()}=1 or - {Hikvision camera by HTTP:hikvision_cam.get_status.login_status.last()}=1 + last(/Hikvision camera by HTTP/hikvision_cam.get_info.login_status)=1 or + last(/Hikvision camera by HTTP/hikvision_cam.get_streaming.login_status)=1 or + last(/Hikvision camera by HTTP/hikvision_cam.get_status.login_status)=1 - - expression: '{last()}=2' + expression: 'last(/Hikvision camera by HTTP/hikvision_cam.get_ptz.login_status[{#PTZ_CHANNEL_ID}])=2' name: 'Hikvision camera: Error receiving data on PTZ channels' priority: WARNING description: 'Check the availability of the HTTP port' @@ -859,9 +859,9 @@ zabbix_export: - name: 'Hikvision camera: Error receiving data' expression: | - {Hikvision camera by HTTP:hikvision_cam.get_info.login_status.last()}=2 or - {Hikvision camera by HTTP:hikvision_cam.get_streaming.login_status.last()}=2 or - {Hikvision camera by HTTP:hikvision_cam.get_status.login_status.last()}=2 + last(/Hikvision camera by HTTP/hikvision_cam.get_info.login_status)=2 or + last(/Hikvision camera by HTTP/hikvision_cam.get_streaming.login_status)=2 or + last(/Hikvision camera by HTTP/hikvision_cam.get_status.login_status)=2 - name: 'Hikvision camera: Get PTZ info' type: HTTP_AGENT @@ -982,9 +982,9 @@ zabbix_export: trigger_prototypes: - expression: | - {Hikvision camera by HTTP:hikvision_cam.ptz.absolute_zoom[{#PTZ_CHANNEL_ID}].diff()}=1 or - {Hikvision camera by HTTP:hikvision_cam.ptz.azimuth[{#PTZ_CHANNEL_ID}].diff()}=1 or - {Hikvision camera by HTTP:hikvision_cam.ptz.elevation[{#PTZ_CHANNEL_ID}].diff()}=1 + (last(/Hikvision camera by HTTP/hikvision_cam.ptz.absolute_zoom[{#PTZ_CHANNEL_ID}],#1)<>last(/Hikvision camera by HTTP/hikvision_cam.ptz.absolute_zoom[{#PTZ_CHANNEL_ID}],#2))=1 or + (last(/Hikvision camera by HTTP/hikvision_cam.ptz.azimuth[{#PTZ_CHANNEL_ID}],#1)<>last(/Hikvision camera by HTTP/hikvision_cam.ptz.azimuth[{#PTZ_CHANNEL_ID}],#2))=1 or + (last(/Hikvision camera by HTTP/hikvision_cam.ptz.elevation[{#PTZ_CHANNEL_ID}],#1)<>last(/Hikvision camera by HTTP/hikvision_cam.ptz.elevation[{#PTZ_CHANNEL_ID}],#2))=1 name: 'Channel "{#PTZ_CHANNEL_ID}": PTZ position changed' priority: INFO description: 'The direction of the camera has changed' @@ -1457,8 +1457,8 @@ zabbix_export: trigger_prototypes: - expression: | - {Hikvision camera by HTTP:hikvision_cam.video_resolution_height[{#CHANNEL_ID}].last()}<>{$HIKVISION_STREAM_HEIGHT} or - {Hikvision camera by HTTP:hikvision_cam.video_resolution_width[{#CHANNEL_ID}].last()}<>{$HIKVISION_STREAM_WIDTH} + last(/Hikvision camera by HTTP/hikvision_cam.video_resolution_height[{#CHANNEL_ID}])<>{$HIKVISION_STREAM_HEIGHT} or + last(/Hikvision camera by HTTP/hikvision_cam.video_resolution_width[{#CHANNEL_ID}])<>{$HIKVISION_STREAM_WIDTH} name: 'Channel "{#CHANNEL_ID}": Invalid video stream resolution parameters' priority: WARNING description: | @@ -1467,11 +1467,11 @@ zabbix_export: manual_close: 'YES' - expression: | - {Hikvision camera by HTTP:hikvision_cam.fixed_quality[{#CHANNEL_ID}].diff()}=1 or - {Hikvision camera by HTTP:hikvision_cam.constant_bit_rate[{#CHANNEL_ID}].diff()}=1 or - {Hikvision camera by HTTP:hikvision_cam.video_quality_control_type[{#CHANNEL_ID}].diff()}=1 or - {Hikvision camera by HTTP:hikvision_cam.video_resolution_width[{#CHANNEL_ID}].diff()}=1 or - {Hikvision camera by HTTP:hikvision_cam.video_resolution_height[{#CHANNEL_ID}].diff()}=1 + (last(/Hikvision camera by HTTP/hikvision_cam.fixed_quality[{#CHANNEL_ID}],#1)<>last(/Hikvision camera by HTTP/hikvision_cam.fixed_quality[{#CHANNEL_ID}],#2))=1 or + (last(/Hikvision camera by HTTP/hikvision_cam.constant_bit_rate[{#CHANNEL_ID}],#1)<>last(/Hikvision camera by HTTP/hikvision_cam.constant_bit_rate[{#CHANNEL_ID}],#2))=1 or + (last(/Hikvision camera by HTTP/hikvision_cam.video_quality_control_type[{#CHANNEL_ID}],#1)<>last(/Hikvision camera by HTTP/hikvision_cam.video_quality_control_type[{#CHANNEL_ID}],#2))=1 or + (last(/Hikvision camera by HTTP/hikvision_cam.video_resolution_width[{#CHANNEL_ID}],#1)<>last(/Hikvision camera by HTTP/hikvision_cam.video_resolution_width[{#CHANNEL_ID}],#2))=1 or + (last(/Hikvision camera by HTTP/hikvision_cam.video_resolution_height[{#CHANNEL_ID}],#1)<>last(/Hikvision camera by HTTP/hikvision_cam.video_resolution_height[{#CHANNEL_ID}],#2))=1 name: 'Channel "{#CHANNEL_ID}": Parameters of video stream are changed' priority: INFO manual_close: 'YES' @@ -1561,18 +1561,18 @@ zabbix_export: triggers: - expression: | - {Hikvision camera by HTTP:hikvision_cam.get_info.login_status.last()}=1 or - {Hikvision camera by HTTP:hikvision_cam.get_streaming.login_status.last()}=1 or - {Hikvision camera by HTTP:hikvision_cam.get_status.login_status.last()}=1 + last(/Hikvision camera by HTTP/hikvision_cam.get_info.login_status)=1 or + last(/Hikvision camera by HTTP/hikvision_cam.get_streaming.login_status)=1 or + last(/Hikvision camera by HTTP/hikvision_cam.get_status.login_status)=1 name: 'Hikvision camera: Authorisation error' priority: WARNING description: 'Check the correctness of the authorization data' manual_close: 'YES' - expression: | - {Hikvision camera by HTTP:hikvision_cam.get_info.login_status.last()}=2 or - {Hikvision camera by HTTP:hikvision_cam.get_streaming.login_status.last()}=2 or - {Hikvision camera by HTTP:hikvision_cam.get_status.login_status.last()}=2 + last(/Hikvision camera by HTTP/hikvision_cam.get_info.login_status)=2 or + last(/Hikvision camera by HTTP/hikvision_cam.get_streaming.login_status)=2 or + last(/Hikvision camera by HTTP/hikvision_cam.get_status.login_status)=2 name: 'Hikvision camera: Error receiving data' priority: WARNING description: 'Check the availability of the HTTP port' diff --git a/templates/classic/template_app_ftp_service.yaml b/templates/classic/template_app_ftp_service.yaml index 93d0a5234e7..ec3f6f6e992 100644 --- a/templates/classic/template_app_ftp_service.yaml +++ b/templates/classic/template_app_ftp_service.yaml @@ -1,6 +1,6 @@ zabbix_export: version: '5.4' - date: '2021-02-23T11:04:48Z' + date: '2021-05-09T00:00:00Z' groups: - name: Templates/Modules @@ -25,7 +25,7 @@ zabbix_export: value: 'FTP service' triggers: - - expression: '{max(#3)}=0' + expression: 'max(/FTP Service/net.tcp.service[ftp],#3)=0' name: 'FTP service is down on {HOST.NAME}' priority: AVERAGE valuemaps: diff --git a/templates/classic/template_app_http_service.yaml b/templates/classic/template_app_http_service.yaml index 45ff3186d80..cbb22e2c83d 100644 --- a/templates/classic/template_app_http_service.yaml +++ b/templates/classic/template_app_http_service.yaml @@ -1,6 +1,6 @@ zabbix_export: version: '5.4' - date: '2021-02-23T11:04:47Z' + date: '2021-05-09T00:00:00Z' groups: - name: Templates/Modules @@ -25,7 +25,7 @@ zabbix_export: value: 'HTTP service' triggers: - - expression: '{max(#3)}=0' + expression: 'max(/HTTP Service/net.tcp.service[http],#3)=0' name: 'HTTP service is down on {HOST.NAME}' priority: AVERAGE valuemaps: diff --git a/templates/classic/template_app_https_service.yaml b/templates/classic/template_app_https_service.yaml index d49475fab64..cb1d75a462c 100644 --- a/templates/classic/template_app_https_service.yaml +++ b/templates/classic/template_app_https_service.yaml @@ -1,6 +1,6 @@ zabbix_export: version: '5.4' - date: '2021-02-23T11:04:49Z' + date: '2021-05-09T00:00:00Z' groups: - name: Templates/Modules @@ -25,7 +25,7 @@ zabbix_export: value: 'HTTPS service' triggers: - - expression: '{max(#3)}=0' + expression: 'max(/HTTPS Service/net.tcp.service[https],#3)=0' name: 'HTTPS service is down on {HOST.NAME}' priority: AVERAGE valuemaps: diff --git a/templates/classic/template_app_imap_service.yaml b/templates/classic/template_app_imap_service.yaml index 95f219d1ffe..a78fbfbd5dd 100644 --- a/templates/classic/template_app_imap_service.yaml +++ b/templates/classic/template_app_imap_service.yaml @@ -1,6 +1,6 @@ zabbix_export: version: '5.4' - date: '2021-02-23T11:04:48Z' + date: '2021-05-09T00:00:00Z' groups: - name: Templates/Modules @@ -25,7 +25,7 @@ zabbix_export: value: 'IMAP service' triggers: - - expression: '{max(#3)}=0' + expression: 'max(/IMAP Service/net.tcp.service[imap],#3)=0' name: 'IMAP service is down on {HOST.NAME}' priority: AVERAGE valuemaps: diff --git a/templates/classic/template_app_ldap_service.yaml b/templates/classic/template_app_ldap_service.yaml index ccbdbe73749..8566281e7ba 100644 --- a/templates/classic/template_app_ldap_service.yaml +++ b/templates/classic/template_app_ldap_service.yaml @@ -1,6 +1,6 @@ zabbix_export: version: '5.4' - date: '2021-02-23T11:04:46Z' + date: '2021-05-09T00:00:00Z' groups: - name: Templates/Modules @@ -25,7 +25,7 @@ zabbix_export: value: 'LDAP service' triggers: - - expression: '{max(#3)}=0' + expression: 'max(/LDAP Service/net.tcp.service[ldap],#3)=0' name: 'LDAP service is down on {HOST.NAME}' priority: AVERAGE valuemaps: diff --git a/templates/classic/template_app_nntp_service.yaml b/templates/classic/template_app_nntp_service.yaml index 2d3d8b4a37f..ba467809ef1 100644 --- a/templates/classic/template_app_nntp_service.yaml +++ b/templates/classic/template_app_nntp_service.yaml @@ -1,6 +1,6 @@ zabbix_export: version: '5.4' - date: '2021-02-23T11:04:49Z' + date: '2021-05-09T00:00:00Z' groups: - name: Templates/Modules @@ -25,7 +25,7 @@ zabbix_export: value: 'NNTP service' triggers: - - expression: '{max(#3)}=0' + expression: 'max(/NNTP Service/net.tcp.service[nntp],#3)=0' name: 'NNTP service is down on {HOST.NAME}' priority: AVERAGE valuemaps: diff --git a/templates/classic/template_app_ntp_service.yaml b/templates/classic/template_app_ntp_service.yaml index 8d57f25d2e4..57ef2907975 100644 --- a/templates/classic/template_app_ntp_service.yaml +++ b/templates/classic/template_app_ntp_service.yaml @@ -1,6 +1,6 @@ zabbix_export: version: '5.4' - date: '2021-02-23T11:04:48Z' + date: '2021-05-09T00:00:00Z' groups: - name: Templates/Modules @@ -25,7 +25,7 @@ zabbix_export: value: 'NTP service' triggers: - - expression: '{max(#3)}=0' + expression: 'max(/NTP Service/net.udp.service[ntp],#3)=0' name: 'NTP service is down on {HOST.NAME}' priority: AVERAGE valuemaps: diff --git a/templates/classic/template_app_pop_service.yaml b/templates/classic/template_app_pop_service.yaml index 8159ae79a75..6dc3f3f2681 100644 --- a/templates/classic/template_app_pop_service.yaml +++ b/templates/classic/template_app_pop_service.yaml @@ -1,6 +1,6 @@ zabbix_export: version: '5.4' - date: '2021-02-23T11:04:46Z' + date: '2021-05-09T00:00:00Z' groups: - name: Templates/Modules @@ -25,7 +25,7 @@ zabbix_export: value: 'POP service' triggers: - - expression: '{max(#3)}=0' + expression: 'max(/POP Service/net.tcp.service[pop],#3)=0' name: 'POP service is down on {HOST.NAME}' priority: AVERAGE valuemaps: diff --git a/templates/classic/template_app_remote_zabbix_proxy.yaml b/templates/classic/template_app_remote_zabbix_proxy.yaml index d03c0cf68b7..6b1e1f2b9f1 100644 --- a/templates/classic/template_app_remote_zabbix_proxy.yaml +++ b/templates/classic/template_app_remote_zabbix_proxy.yaml @@ -1,6 +1,6 @@ zabbix_export: version: '5.4' - date: '2021-04-22T11:28:05Z' + date: '2021-05-09T00:00:00Z' groups: - name: Templates/Applications @@ -32,9 +32,9 @@ zabbix_export: value: 'Zabbix proxy' triggers: - - expression: '{avg(10m)}>75' + expression: 'avg(/Remote Zabbix proxy/process.availability_manager.avg.busy,10m)>75' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{avg(10m)}<65' + recovery_expression: 'avg(/Remote Zabbix proxy/process.availability_manager.avg.busy,10m)<65' name: 'Zabbix availability manager processes more than 75% busy' priority: AVERAGE - @@ -57,9 +57,9 @@ zabbix_export: value: 'Zabbix proxy' triggers: - - expression: '{avg(10m)}>75' + expression: 'avg(/Remote Zabbix proxy/process.configuration_syncer.avg.busy,10m)>75' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{avg(10m)}<65' + recovery_expression: 'avg(/Remote Zabbix proxy/process.configuration_syncer.avg.busy,10m)<65' name: 'Zabbix configuration syncer processes more than 75% busy' priority: AVERAGE - @@ -82,9 +82,9 @@ zabbix_export: value: 'Zabbix proxy' triggers: - - expression: '{avg(10m)}>75' + expression: 'avg(/Remote Zabbix proxy/process.data_sender.avg.busy,10m)>75' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{avg(10m)}<65' + recovery_expression: 'avg(/Remote Zabbix proxy/process.data_sender.avg.busy,10m)<65' name: 'Zabbix data sender processes more than 75% busy' priority: AVERAGE - @@ -107,9 +107,9 @@ zabbix_export: value: 'Zabbix proxy' triggers: - - expression: '{avg(10m)}>75' + expression: 'avg(/Remote Zabbix proxy/process.discoverer.avg.busy,10m)>75' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{avg(10m)}<65' + recovery_expression: 'avg(/Remote Zabbix proxy/process.discoverer.avg.busy,10m)<65' name: 'Zabbix discoverer processes more than 75% busy' priority: AVERAGE - @@ -132,9 +132,9 @@ zabbix_export: value: 'Zabbix proxy' triggers: - - expression: '{avg(10m)}>75' + expression: 'avg(/Remote Zabbix proxy/process.heartbeat_sender.avg.busy,10m)>75' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{avg(10m)}<65' + recovery_expression: 'avg(/Remote Zabbix proxy/process.heartbeat_sender.avg.busy,10m)<65' name: 'Zabbix heartbeat sender processes more than 75% busy' priority: AVERAGE - @@ -157,9 +157,9 @@ zabbix_export: value: 'Zabbix proxy' triggers: - - expression: '{avg(10m)}>75' + expression: 'avg(/Remote Zabbix proxy/process.history_poller.avg.busy,10m)>75' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{avg(10m)}<65' + recovery_expression: 'avg(/Remote Zabbix proxy/process.history_poller.avg.busy,10m)<65' name: 'Zabbix history poller processes more than 75% busy' priority: AVERAGE - @@ -182,9 +182,9 @@ zabbix_export: value: 'Zabbix proxy' triggers: - - expression: '{avg(10m)}>75' + expression: 'avg(/Remote Zabbix proxy/process.history_syncer.avg.busy,10m)>75' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{avg(10m)}<65' + recovery_expression: 'avg(/Remote Zabbix proxy/process.history_syncer.avg.busy,10m)<65' name: 'Zabbix history syncer processes more than 75% busy' priority: AVERAGE - @@ -207,9 +207,9 @@ zabbix_export: value: 'Zabbix proxy' triggers: - - expression: '{avg(30m)}>75' + expression: 'avg(/Remote Zabbix proxy/process.housekeeper.avg.busy,30m)>75' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{avg(30m)}<65' + recovery_expression: 'avg(/Remote Zabbix proxy/process.housekeeper.avg.busy,30m)<65' name: 'Zabbix housekeeper processes more than 75% busy' priority: AVERAGE - @@ -232,9 +232,9 @@ zabbix_export: value: 'Zabbix proxy' triggers: - - expression: '{avg(10m)}>75' + expression: 'avg(/Remote Zabbix proxy/process.http_poller.avg.busy,10m)>75' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{avg(10m)}<65' + recovery_expression: 'avg(/Remote Zabbix proxy/process.http_poller.avg.busy,10m)<65' name: 'Zabbix http poller processes more than 75% busy' priority: AVERAGE - @@ -257,9 +257,9 @@ zabbix_export: value: 'Zabbix proxy' triggers: - - expression: '{avg(10m)}>75' + expression: 'avg(/Remote Zabbix proxy/process.icmp_pinger.avg.busy,10m)>75' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{avg(10m)}<65' + recovery_expression: 'avg(/Remote Zabbix proxy/process.icmp_pinger.avg.busy,10m)<65' name: 'Zabbix icmp pinger processes more than 75% busy' priority: AVERAGE - @@ -282,9 +282,9 @@ zabbix_export: value: 'Zabbix proxy' triggers: - - expression: '{avg(10m)}>75' + expression: 'avg(/Remote Zabbix proxy/process.ipmi_manager.avg.busy,10m)>75' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{avg(10m)}<65' + recovery_expression: 'avg(/Remote Zabbix proxy/process.ipmi_manager.avg.busy,10m)<65' name: 'Zabbix ipmi manager processes more than 75% busy' priority: AVERAGE - @@ -307,9 +307,9 @@ zabbix_export: value: 'Zabbix proxy' triggers: - - expression: '{avg(10m)}>75' + expression: 'avg(/Remote Zabbix proxy/process.ipmi_poller.avg.busy,10m)>75' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{avg(10m)}<65' + recovery_expression: 'avg(/Remote Zabbix proxy/process.ipmi_poller.avg.busy,10m)<65' name: 'Zabbix ipmi poller processes more than 75% busy' priority: AVERAGE - @@ -332,9 +332,9 @@ zabbix_export: value: 'Zabbix proxy' triggers: - - expression: '{avg(10m)}>75' + expression: 'avg(/Remote Zabbix proxy/process.java_poller.avg.busy,10m)>75' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{avg(10m)}<65' + recovery_expression: 'avg(/Remote Zabbix proxy/process.java_poller.avg.busy,10m)<65' name: 'Zabbix java poller processes more than 75% busy' priority: AVERAGE - @@ -357,9 +357,9 @@ zabbix_export: value: 'Zabbix proxy' triggers: - - expression: '{avg(10m)}>75' + expression: 'avg(/Remote Zabbix proxy/process.poller.avg.busy,10m)>75' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{avg(10m)}<65' + recovery_expression: 'avg(/Remote Zabbix proxy/process.poller.avg.busy,10m)<65' name: 'Zabbix poller processes more than 75% busy' priority: AVERAGE - @@ -382,9 +382,9 @@ zabbix_export: value: 'Zabbix proxy' triggers: - - expression: '{avg(10m)}>75' + expression: 'avg(/Remote Zabbix proxy/process.self-monitoring.avg.busy,10m)>75' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{avg(10m)}<65' + recovery_expression: 'avg(/Remote Zabbix proxy/process.self-monitoring.avg.busy,10m)<65' name: 'Zabbix self-monitoring processes more than 75% busy' priority: AVERAGE - @@ -407,9 +407,9 @@ zabbix_export: value: 'Zabbix proxy' triggers: - - expression: '{avg(10m)}>75' + expression: 'avg(/Remote Zabbix proxy/process.snmp_trapper.avg.busy,10m)>75' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{avg(10m)}<65' + recovery_expression: 'avg(/Remote Zabbix proxy/process.snmp_trapper.avg.busy,10m)<65' name: 'Zabbix snmp trapper processes more than 75% busy' priority: AVERAGE - @@ -432,9 +432,9 @@ zabbix_export: value: 'Zabbix proxy' triggers: - - expression: '{avg(10m)}>75' + expression: 'avg(/Remote Zabbix proxy/process.task_manager.avg.busy,10m)>75' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{avg(10m)}<65' + recovery_expression: 'avg(/Remote Zabbix proxy/process.task_manager.avg.busy,10m)<65' name: 'Zabbix task manager processes more than 75% busy' priority: AVERAGE - @@ -457,9 +457,9 @@ zabbix_export: value: 'Zabbix proxy' triggers: - - expression: '{avg(10m)}>75' + expression: 'avg(/Remote Zabbix proxy/process.trapper.avg.busy,10m)>75' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{avg(10m)}<65' + recovery_expression: 'avg(/Remote Zabbix proxy/process.trapper.avg.busy,10m)<65' name: 'Zabbix trapper processes more than 75% busy' priority: AVERAGE - @@ -482,9 +482,9 @@ zabbix_export: value: 'Zabbix proxy' triggers: - - expression: '{avg(10m)}>75' + expression: 'avg(/Remote Zabbix proxy/process.unreachable_poller.avg.busy,10m)>75' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{avg(10m)}<65' + recovery_expression: 'avg(/Remote Zabbix proxy/process.unreachable_poller.avg.busy,10m)<65' name: 'Zabbix unreachable poller processes more than 75% busy' priority: AVERAGE - @@ -507,9 +507,9 @@ zabbix_export: value: 'Zabbix proxy' triggers: - - expression: '{avg(10m)}>75' + expression: 'avg(/Remote Zabbix proxy/process.vmware_collector.avg.busy,10m)>75' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{avg(10m)}<65' + recovery_expression: 'avg(/Remote Zabbix proxy/process.vmware_collector.avg.busy,10m)<65' name: 'Zabbix vmware collector processes more than 75% busy' priority: AVERAGE - @@ -532,7 +532,7 @@ zabbix_export: value: 'Zabbix proxy' triggers: - - expression: '{max(10m)}>75' + expression: 'max(/Remote Zabbix proxy/rcache.buffer.pused,10m)>75' name: 'More than 75% used in the configuration cache' priority: AVERAGE description: 'Consider increasing CacheSize in the zabbix_proxy.conf configuration file' @@ -562,7 +562,7 @@ zabbix_export: value: 'Zabbix proxy' triggers: - - expression: '{diff()}=1 and {strlen()}>0' + expression: '(last(/Remote Zabbix proxy/version,#1)<>last(/Remote Zabbix proxy/version,#2))=1 and length(last(/Remote Zabbix proxy/version))>0' name: 'Zabbix version has changed (new version: {ITEM.VALUE})' priority: INFO description: 'Zabbix proxy version has changed. Ack to close.' @@ -587,7 +587,7 @@ zabbix_export: value: 'Zabbix proxy' triggers: - - expression: '{max(10m)}>75' + expression: 'max(/Remote Zabbix proxy/vmware.buffer.pused,10m)>75' name: 'More than 75% used in the vmware cache' priority: AVERAGE description: 'Consider increasing VMwareCacheSize in the zabbix_proxy.conf configuration file' @@ -611,7 +611,7 @@ zabbix_export: value: 'Zabbix proxy' triggers: - - expression: '{max(10m)}>75' + expression: 'max(/Remote Zabbix proxy/wcache.history.pused,10m)>75' name: 'More than 75% used in the history cache' priority: AVERAGE description: 'Consider increasing HistoryCacheSize in the zabbix_proxy.conf configuration file' @@ -635,7 +635,7 @@ zabbix_export: value: 'Zabbix proxy' triggers: - - expression: '{max(10m)}>75' + expression: 'max(/Remote Zabbix proxy/wcache.index.pused,10m)>75' name: 'More than 75% used in the history index cache' priority: AVERAGE description: 'Consider increasing HistoryIndexCacheSize in the zabbix_proxy.conf configuration file' @@ -810,7 +810,7 @@ zabbix_export: value: 'Zabbix proxy' triggers: - - expression: '{min(10m)}>100' + expression: 'min(/Remote Zabbix proxy/zabbix[stats,{$ADDRESS},{$PORT},queue,10m],10m)>100' name: 'More than 100 items having missing data for more than 10 minutes' priority: WARNING description: 'zabbix[stats,{$IP},{$PORT},queue,10m] item is collecting data about how many items are missing data for more than 10 minutes' diff --git a/templates/classic/template_app_remote_zabbix_server.yaml b/templates/classic/template_app_remote_zabbix_server.yaml index 37c683fe167..f5d5f7aba06 100644 --- a/templates/classic/template_app_remote_zabbix_server.yaml +++ b/templates/classic/template_app_remote_zabbix_server.yaml @@ -1,6 +1,6 @@ zabbix_export: version: '5.4' - date: '2021-04-22T11:28:20Z' + date: '2021-05-09T00:00:00Z' groups: - name: Templates/Applications @@ -69,9 +69,9 @@ zabbix_export: value: 'Zabbix server' triggers: - - expression: '{avg(10m)}>75' + expression: 'avg(/Remote Zabbix server/process.alerter.avg.busy,10m)>75' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{avg(10m)}<65' + recovery_expression: 'avg(/Remote Zabbix server/process.alerter.avg.busy,10m)<65' name: 'Zabbix alerter processes more than 75% busy' priority: AVERAGE - @@ -95,9 +95,9 @@ zabbix_export: value: 'Zabbix server' triggers: - - expression: '{avg(10m)}>75' + expression: 'avg(/Remote Zabbix server/process.alert_manager.avg.busy,10m)>75' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{avg(10m)}<65' + recovery_expression: 'avg(/Remote Zabbix server/process.alert_manager.avg.busy,10m)<65' name: 'Zabbix alert manager processes more than 75% busy' priority: AVERAGE - @@ -121,9 +121,9 @@ zabbix_export: value: 'Zabbix server' triggers: - - expression: '{avg(10m)}>75' + expression: 'avg(/Remote Zabbix server/process.alert_syncer.avg.busy,10m)>75' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{avg(10m)}<65' + recovery_expression: 'avg(/Remote Zabbix server/process.alert_syncer.avg.busy,10m)<65' name: 'Zabbix alert syncer processes more than 75% busy' priority: AVERAGE - @@ -147,9 +147,9 @@ zabbix_export: value: 'Zabbix server' triggers: - - expression: '{avg(10m)}>75' + expression: 'avg(/Remote Zabbix server/process.availability_manager.avg.busy,10m)>75' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{avg(10m)}<65' + recovery_expression: 'avg(/Remote Zabbix server/process.availability_manager.avg.busy,10m)<65' name: 'Zabbix availability manager processes more than 75% busy' priority: AVERAGE - @@ -173,9 +173,9 @@ zabbix_export: value: 'Zabbix server' triggers: - - expression: '{avg(10m)}>75' + expression: 'avg(/Remote Zabbix server/process.configuration_syncer.avg.busy,10m)>75' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{avg(10m)}<65' + recovery_expression: 'avg(/Remote Zabbix server/process.configuration_syncer.avg.busy,10m)<65' name: 'Zabbix configuration syncer processes more than 75% busy' priority: AVERAGE description: 'Zabbix configuration syncer processes more than 75% busy' @@ -200,9 +200,9 @@ zabbix_export: value: 'Zabbix server' triggers: - - expression: '{avg(10m)}>75' + expression: 'avg(/Remote Zabbix server/process.discoverer.avg.busy,10m)>75' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{avg(10m)}<65' + recovery_expression: 'avg(/Remote Zabbix server/process.discoverer.avg.busy,10m)<65' name: 'Zabbix discoverer processes more than 75% busy' priority: AVERAGE - @@ -226,9 +226,9 @@ zabbix_export: value: 'Zabbix server' triggers: - - expression: '{avg(10m)}>75' + expression: 'avg(/Remote Zabbix server/process.escalator.avg.busy,10m)>75' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{avg(10m)}<65' + recovery_expression: 'avg(/Remote Zabbix server/process.escalator.avg.busy,10m)<65' name: 'Zabbix escalator processes more than 75% busy' priority: AVERAGE - @@ -252,9 +252,9 @@ zabbix_export: value: 'Zabbix server' triggers: - - expression: '{avg(10m)}>75' + expression: 'avg(/Remote Zabbix server/process.history_poller.avg.busy,10m)>75' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{avg(10m)}<65' + recovery_expression: 'avg(/Remote Zabbix server/process.history_poller.avg.busy,10m)<65' name: 'Zabbix history poller processes more than 75% busy' priority: AVERAGE - @@ -278,9 +278,9 @@ zabbix_export: value: 'Zabbix server' triggers: - - expression: '{avg(10m)}>75' + expression: 'avg(/Remote Zabbix server/process.history_syncer.avg.busy,10m)>75' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{avg(10m)}<65' + recovery_expression: 'avg(/Remote Zabbix server/process.history_syncer.avg.busy,10m)<65' name: 'Zabbix history syncer processes more than 75% busy' priority: AVERAGE - @@ -304,9 +304,9 @@ zabbix_export: value: 'Zabbix server' triggers: - - expression: '{avg(30m)}>75' + expression: 'avg(/Remote Zabbix server/process.housekeeper.avg.busy,30m)>75' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{avg(30m)}<65' + recovery_expression: 'avg(/Remote Zabbix server/process.housekeeper.avg.busy,30m)<65' name: 'Zabbix housekeeper processes more than 75% busy' priority: AVERAGE - @@ -330,9 +330,9 @@ zabbix_export: value: 'Zabbix server' triggers: - - expression: '{avg(10m)}>75' + expression: 'avg(/Remote Zabbix server/process.http_poller.avg.busy,10m)>75' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{avg(10m)}<65' + recovery_expression: 'avg(/Remote Zabbix server/process.http_poller.avg.busy,10m)<65' name: 'Zabbix http poller processes more than 75% busy' priority: AVERAGE - @@ -356,9 +356,9 @@ zabbix_export: value: 'Zabbix server' triggers: - - expression: '{avg(10m)}>75' + expression: 'avg(/Remote Zabbix server/process.icmp_pinger.avg.busy,10m)>75' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{avg(10m)}<65' + recovery_expression: 'avg(/Remote Zabbix server/process.icmp_pinger.avg.busy,10m)<65' name: 'Zabbix icmp pinger processes more than 75% busy' priority: AVERAGE - @@ -382,9 +382,9 @@ zabbix_export: value: 'Zabbix server' triggers: - - expression: '{avg(10m)}>75' + expression: 'avg(/Remote Zabbix server/process.ipmi_manager.avg.busy,10m)>75' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{avg(10m)}<65' + recovery_expression: 'avg(/Remote Zabbix server/process.ipmi_manager.avg.busy,10m)<65' name: 'Zabbix ipmi manager processes more than 75% busy' priority: AVERAGE - @@ -408,9 +408,9 @@ zabbix_export: value: 'Zabbix server' triggers: - - expression: '{avg(10m)}>75' + expression: 'avg(/Remote Zabbix server/process.ipmi_poller.avg.busy,10m)>75' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{avg(10m)}<65' + recovery_expression: 'avg(/Remote Zabbix server/process.ipmi_poller.avg.busy,10m)<65' name: 'Zabbix ipmi poller processes more than 75% busy' priority: AVERAGE - @@ -434,9 +434,9 @@ zabbix_export: value: 'Zabbix server' triggers: - - expression: '{avg(10m)}>75' + expression: 'avg(/Remote Zabbix server/process.java_poller.avg.busy,10m)>75' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{avg(10m)}<65' + recovery_expression: 'avg(/Remote Zabbix server/process.java_poller.avg.busy,10m)<65' name: 'Zabbix java poller processes more than 75% busy' priority: AVERAGE - @@ -460,9 +460,9 @@ zabbix_export: value: 'Zabbix server' triggers: - - expression: '{avg(10m)}>75' + expression: 'avg(/Remote Zabbix server/process.lld_manager.avg.busy,10m)>75' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{avg(10m)}<65' + recovery_expression: 'avg(/Remote Zabbix server/process.lld_manager.avg.busy,10m)<65' name: 'Zabbix LLD manager processes more than 75% busy' priority: AVERAGE - @@ -486,9 +486,9 @@ zabbix_export: value: 'Zabbix server' triggers: - - expression: '{avg(10m)}>75' + expression: 'avg(/Remote Zabbix server/process.lld_worker.avg.busy,10m)>75' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{avg(10m)}<65' + recovery_expression: 'avg(/Remote Zabbix server/process.lld_worker.avg.busy,10m)<65' name: 'Zabbix LLD worker processes more than 75% busy' priority: AVERAGE - @@ -512,9 +512,9 @@ zabbix_export: value: 'Zabbix server' triggers: - - expression: '{avg(10m)}>75' + expression: 'avg(/Remote Zabbix server/process.poller.avg.busy,10m)>75' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{avg(10m)}<65' + recovery_expression: 'avg(/Remote Zabbix server/process.poller.avg.busy,10m)<65' name: 'Zabbix poller processes more than 75% busy' priority: AVERAGE - @@ -538,9 +538,9 @@ zabbix_export: value: 'Zabbix server' triggers: - - expression: '{avg(10m)}>75' + expression: 'avg(/Remote Zabbix server/process.preprocessing_manager.avg.busy,10m)>75' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{avg(10m)}<65' + recovery_expression: 'avg(/Remote Zabbix server/process.preprocessing_manager.avg.busy,10m)<65' name: 'Zabbix preprocessing manager processes more than 75% busy' priority: AVERAGE - @@ -564,9 +564,9 @@ zabbix_export: value: 'Zabbix server' triggers: - - expression: '{avg(10m)}>75' + expression: 'avg(/Remote Zabbix server/process.preprocessing_worker.avg.busy,10m)>75' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{avg(10m)}<65' + recovery_expression: 'avg(/Remote Zabbix server/process.preprocessing_worker.avg.busy,10m)<65' name: 'Zabbix preprocessing worker processes more than 75% busy' priority: AVERAGE - @@ -590,15 +590,15 @@ zabbix_export: value: 'Zabbix server' triggers: - - expression: '{avg(10m)}>75' + expression: 'avg(/Remote Zabbix server/process.proxy_poller.avg.busy,10m)>75' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{avg(10m)}<65' + recovery_expression: 'avg(/Remote Zabbix server/process.proxy_poller.avg.busy,10m)<65' name: 'Zabbix proxy poller processes more than 75% busy' priority: AVERAGE - - name: 'Utilization of self-monitoring internal processes, in %' + name: 'Utilization of report manager internal processes, in %' type: DEPENDENT - key: process.self-monitoring.avg.busy + key: process.report_manager.avg.busy delay: '0' history: 1w value_type: FLOAT @@ -607,7 +607,7 @@ zabbix_export: - type: JSONPATH parameters: - - '$.data.process[''self-monitoring''].busy.avg' + - '$.data.process[''report manager''].busy.avg' master_item: key: 'zabbix[stats,{$ADDRESS},{$PORT}]' tags: @@ -616,15 +616,15 @@ zabbix_export: value: 'Zabbix server' triggers: - - expression: '{avg(10m)}>75' + expression: 'avg(/Remote Zabbix server/process.report_manager.avg.busy,10m)>75' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{avg(10m)}<65' - name: 'Zabbix self-monitoring processes more than 75% busy' + recovery_expression: 'avg(/Remote Zabbix server/process.report_manager.avg.busy,10m)<65' + name: 'Zabbix report manager processes more than 75% busy' priority: AVERAGE - - name: 'Utilization of snmp trapper data collector processes, in %' + name: 'Utilization of report writer internal processes, in %' type: DEPENDENT - key: process.snmp_trapper.avg.busy + key: process.report_writer.avg.busy delay: '0' history: 1w value_type: FLOAT @@ -633,7 +633,7 @@ zabbix_export: - type: JSONPATH parameters: - - '$.data.process[''snmp trapper''].busy.avg' + - '$.data.process[''report writer''].busy.avg' master_item: key: 'zabbix[stats,{$ADDRESS},{$PORT}]' tags: @@ -642,15 +642,15 @@ zabbix_export: value: 'Zabbix server' triggers: - - expression: '{avg(10m)}>75' + expression: 'avg(/Remote Zabbix server/process.report_writer.avg.busy,10m)>75' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{avg(10m)}<65' - name: 'Zabbix snmp trapper processes more than 75% busy' + recovery_expression: 'avg(/Remote Zabbix server/process.report_writer.avg.busy,10m)<65' + name: 'Zabbix report writer processes more than 75% busy' priority: AVERAGE - - name: 'Utilization of task manager internal processes, in %' + name: 'Utilization of self-monitoring internal processes, in %' type: DEPENDENT - key: process.task_manager.avg.busy + key: process.self-monitoring.avg.busy delay: '0' history: 1w value_type: FLOAT @@ -659,7 +659,7 @@ zabbix_export: - type: JSONPATH parameters: - - '$.data.process[''task manager''].busy.avg' + - '$.data.process[''self-monitoring''].busy.avg' master_item: key: 'zabbix[stats,{$ADDRESS},{$PORT}]' tags: @@ -668,15 +668,15 @@ zabbix_export: value: 'Zabbix server' triggers: - - expression: '{avg(10m)}>75' + expression: 'avg(/Remote Zabbix server/process.self-monitoring.avg.busy,10m)>75' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{avg(10m)}<65' - name: 'Zabbix task manager processes more than 75% busy' + recovery_expression: 'avg(/Remote Zabbix server/process.self-monitoring.avg.busy,10m)<65' + name: 'Zabbix self-monitoring processes more than 75% busy' priority: AVERAGE - - name: 'Utilization of report manager internal processes, in %' + name: 'Utilization of snmp trapper data collector processes, in %' type: DEPENDENT - key: process.report_manager.avg.busy + key: process.snmp_trapper.avg.busy delay: '0' history: 1w value_type: FLOAT @@ -685,7 +685,7 @@ zabbix_export: - type: JSONPATH parameters: - - '$.data.process[''report manager''].busy.avg' + - '$.data.process[''snmp trapper''].busy.avg' master_item: key: 'zabbix[stats,{$ADDRESS},{$PORT}]' tags: @@ -694,15 +694,15 @@ zabbix_export: value: 'Zabbix server' triggers: - - expression: '{avg(10m)}>75' + expression: 'avg(/Remote Zabbix server/process.snmp_trapper.avg.busy,10m)>75' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{avg(10m)}<65' - name: 'Zabbix report manager processes more than 75% busy' + recovery_expression: 'avg(/Remote Zabbix server/process.snmp_trapper.avg.busy,10m)<65' + name: 'Zabbix snmp trapper processes more than 75% busy' priority: AVERAGE - - name: 'Utilization of report writer internal processes, in %' + name: 'Utilization of task manager internal processes, in %' type: DEPENDENT - key: process.report_writer.avg.busy + key: process.task_manager.avg.busy delay: '0' history: 1w value_type: FLOAT @@ -711,7 +711,7 @@ zabbix_export: - type: JSONPATH parameters: - - '$.data.process[''report writer''].busy.avg' + - '$.data.process[''task manager''].busy.avg' master_item: key: 'zabbix[stats,{$ADDRESS},{$PORT}]' tags: @@ -720,10 +720,10 @@ zabbix_export: value: 'Zabbix server' triggers: - - expression: '{avg(10m)}>75' + expression: 'avg(/Remote Zabbix server/process.task_manager.avg.busy,10m)>75' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{avg(10m)}<65' - name: 'Zabbix report writer processes more than 75% busy' + recovery_expression: 'avg(/Remote Zabbix server/process.task_manager.avg.busy,10m)<65' + name: 'Zabbix task manager processes more than 75% busy' priority: AVERAGE - name: 'Utilization of timer internal processes, in %' @@ -746,9 +746,9 @@ zabbix_export: value: 'Zabbix server' triggers: - - expression: '{avg(10m)}>75' + expression: 'avg(/Remote Zabbix server/process.timer.avg.busy,10m)>75' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{avg(10m)}<65' + recovery_expression: 'avg(/Remote Zabbix server/process.timer.avg.busy,10m)<65' name: 'Zabbix timer processes more than 75% busy' priority: AVERAGE - @@ -772,9 +772,9 @@ zabbix_export: value: 'Zabbix server' triggers: - - expression: '{avg(10m)}>75' + expression: 'avg(/Remote Zabbix server/process.trapper.avg.busy,10m)>75' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{avg(10m)}<65' + recovery_expression: 'avg(/Remote Zabbix server/process.trapper.avg.busy,10m)<65' name: 'Zabbix trapper processes more than 75% busy' priority: AVERAGE - @@ -798,9 +798,9 @@ zabbix_export: value: 'Zabbix server' triggers: - - expression: '{avg(10m)}>75' + expression: 'avg(/Remote Zabbix server/process.unreachable_poller.avg.busy,10m)>75' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{avg(10m)}<65' + recovery_expression: 'avg(/Remote Zabbix server/process.unreachable_poller.avg.busy,10m)<65' name: 'Zabbix unreachable poller processes more than 75% busy' priority: AVERAGE - @@ -824,9 +824,9 @@ zabbix_export: value: 'Zabbix server' triggers: - - expression: '{avg(10m)}>75' + expression: 'avg(/Remote Zabbix server/process.vmware_collector.avg.busy,10m)>75' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{avg(10m)}<65' + recovery_expression: 'avg(/Remote Zabbix server/process.vmware_collector.avg.busy,10m)<65' name: 'Zabbix vmware collector processes more than 75% busy' priority: AVERAGE - @@ -850,7 +850,7 @@ zabbix_export: value: 'Zabbix server' triggers: - - expression: '{max(10m)}>75' + expression: 'max(/Remote Zabbix server/rcache.buffer.pused,10m)>75' name: 'More than 75% used in the configuration cache' priority: AVERAGE description: 'Consider increasing CacheSize in the zabbix_server.conf configuration file' @@ -913,7 +913,7 @@ zabbix_export: value: 'Zabbix server' triggers: - - expression: '{max(10m)}>95' + expression: 'max(/Remote Zabbix server/vcache.buffer.pused,10m)>95' name: 'More than 95% used in the value cache' priority: AVERAGE description: 'Consider increasing ValueCacheSize in the zabbix_server.conf configuration file' @@ -984,7 +984,7 @@ zabbix_export: value: 'Zabbix server' triggers: - - expression: '{last()}=1' + expression: 'last(/Remote Zabbix server/vcache.cache.mode)=1' name: 'Zabbix value cache working in low memory mode' priority: HIGH - @@ -1013,7 +1013,7 @@ zabbix_export: value: 'Zabbix server' triggers: - - expression: '{diff()}=1 and {strlen()}>0' + expression: '(last(/Remote Zabbix server/version,#1)<>last(/Remote Zabbix server/version,#2))=1 and length(last(/Remote Zabbix server/version))>0' name: 'Zabbix version has changed (new version: {ITEM.VALUE})' priority: INFO description: 'Zabbix server version has changed. Ack to close.' @@ -1039,7 +1039,7 @@ zabbix_export: value: 'Zabbix server' triggers: - - expression: '{max(10m)}>75' + expression: 'max(/Remote Zabbix server/vmware.buffer.pused,10m)>75' name: 'More than 75% used in the vmware cache' priority: AVERAGE description: 'Consider increasing VMwareCacheSize in the zabbix_server.conf configuration file' @@ -1064,7 +1064,7 @@ zabbix_export: value: 'Zabbix server' triggers: - - expression: '{max(10m)}>75' + expression: 'max(/Remote Zabbix server/wcache.history.pused,10m)>75' name: 'More than 75% used in the history cache' priority: AVERAGE description: 'Consider increasing HistoryCacheSize in the zabbix_server.conf configuration file' @@ -1089,7 +1089,7 @@ zabbix_export: value: 'Zabbix server' triggers: - - expression: '{max(10m)}>75' + expression: 'max(/Remote Zabbix server/wcache.index.pused,10m)>75' name: 'More than 75% used in the history index cache' priority: AVERAGE description: 'Consider increasing HistoryIndexCacheSize in the zabbix_server.conf configuration file' @@ -1114,7 +1114,7 @@ zabbix_export: value: 'Zabbix server' triggers: - - expression: '{max(10m)}>75' + expression: 'max(/Remote Zabbix server/wcache.trend.pused,10m)>75' name: 'More than 75% used in the trends cache' priority: AVERAGE description: 'Consider increasing TrendCacheSize in the zabbix_server.conf configuration file' @@ -1289,7 +1289,7 @@ zabbix_export: value: 'Zabbix server' triggers: - - expression: '{min(10m)}>100' + expression: 'min(/Remote Zabbix server/zabbix[stats,{$ADDRESS},{$PORT},queue,10m],10m)>100' name: 'More than 100 items having missing data for more than 10 minutes' priority: WARNING description: 'zabbix[stats,{$IP},{$PORT},queue,10m] item is collecting data about how many items are missing data for more than 10 minutes' diff --git a/templates/classic/template_app_smtp_service.yaml b/templates/classic/template_app_smtp_service.yaml index 59b7a34983a..03f84b091a4 100644 --- a/templates/classic/template_app_smtp_service.yaml +++ b/templates/classic/template_app_smtp_service.yaml @@ -1,6 +1,6 @@ zabbix_export: version: '5.4' - date: '2021-02-23T11:04:47Z' + date: '2021-05-09T00:00:00Z' groups: - name: Templates/Modules @@ -25,7 +25,7 @@ zabbix_export: value: 'SMTP service' triggers: - - expression: '{max(#3)}=0' + expression: 'max(/SMTP Service/net.tcp.service[smtp],#3)=0' name: 'SMTP service is down on {HOST.NAME}' priority: AVERAGE valuemaps: diff --git a/templates/classic/template_app_ssh_service.yaml b/templates/classic/template_app_ssh_service.yaml index b9ae21070db..bfc92b70ae3 100644 --- a/templates/classic/template_app_ssh_service.yaml +++ b/templates/classic/template_app_ssh_service.yaml @@ -1,6 +1,6 @@ zabbix_export: version: '5.4' - date: '2021-02-23T11:04:46Z' + date: '2021-05-09T00:00:00Z' groups: - name: Templates/Modules @@ -25,7 +25,7 @@ zabbix_export: value: 'SSH service' triggers: - - expression: '{max(#3)}=0' + expression: 'max(/SSH Service/net.tcp.service[ssh],#3)=0' name: 'SSH service is down on {HOST.NAME}' priority: AVERAGE valuemaps: diff --git a/templates/classic/template_app_telnet_service.yaml b/templates/classic/template_app_telnet_service.yaml index dffbde2b30f..1ad500c9487 100644 --- a/templates/classic/template_app_telnet_service.yaml +++ b/templates/classic/template_app_telnet_service.yaml @@ -1,6 +1,6 @@ zabbix_export: version: '5.4' - date: '2021-02-23T11:04:45Z' + date: '2021-05-09T00:00:00Z' groups: - name: Templates/Modules @@ -25,7 +25,7 @@ zabbix_export: value: 'Telnet service' triggers: - - expression: '{max(#3)}=0' + expression: 'max(/Telnet Service/net.tcp.service[telnet],#3)=0' name: 'Telnet service is down on {HOST.NAME}' priority: AVERAGE valuemaps: diff --git a/templates/classic/template_app_zabbix_proxy.yaml b/templates/classic/template_app_zabbix_proxy.yaml index b21294a12e4..41cccfab765 100644 --- a/templates/classic/template_app_zabbix_proxy.yaml +++ b/templates/classic/template_app_zabbix_proxy.yaml @@ -1,6 +1,6 @@ zabbix_export: version: '5.4' - date: '2021-04-22T11:28:11Z' + date: '2021-05-09T00:00:00Z' groups: - name: Templates/Applications @@ -35,9 +35,9 @@ zabbix_export: value: 'Zabbix proxy' triggers: - - expression: '{avg(10m)}>75' + expression: 'avg(/Zabbix Proxy/zabbix[process,availability manager,avg,busy],10m)>75' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{avg(10m)}<65' + recovery_expression: 'avg(/Zabbix Proxy/zabbix[process,availability manager,avg,busy],10m)<65' name: 'Zabbix availability manager processes more than 75% busy' priority: AVERAGE - @@ -54,9 +54,9 @@ zabbix_export: value: 'Zabbix proxy' triggers: - - expression: '{avg(10m)}>75' + expression: 'avg(/Zabbix Proxy/zabbix[process,configuration syncer,avg,busy],10m)>75' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{avg(10m)}<65' + recovery_expression: 'avg(/Zabbix Proxy/zabbix[process,configuration syncer,avg,busy],10m)<65' name: 'Zabbix configuration syncer processes more than 75% busy' priority: AVERAGE - @@ -73,9 +73,9 @@ zabbix_export: value: 'Zabbix proxy' triggers: - - expression: '{avg(10m)}>75' + expression: 'avg(/Zabbix Proxy/zabbix[process,data sender,avg,busy],10m)>75' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{avg(10m)}<65' + recovery_expression: 'avg(/Zabbix Proxy/zabbix[process,data sender,avg,busy],10m)<65' name: 'Zabbix data sender processes more than 75% busy' priority: AVERAGE - @@ -93,9 +93,9 @@ zabbix_export: value: 'Zabbix proxy' triggers: - - expression: '{avg(10m)}>75' + expression: 'avg(/Zabbix Proxy/zabbix[process,discoverer,avg,busy],10m)>75' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{avg(10m)}<65' + recovery_expression: 'avg(/Zabbix Proxy/zabbix[process,discoverer,avg,busy],10m)<65' name: 'Zabbix discoverer processes more than 75% busy' priority: AVERAGE - @@ -112,9 +112,9 @@ zabbix_export: value: 'Zabbix proxy' triggers: - - expression: '{avg(10m)}>75' + expression: 'avg(/Zabbix Proxy/zabbix[process,heartbeat sender,avg,busy],10m)>75' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{avg(10m)}<65' + recovery_expression: 'avg(/Zabbix Proxy/zabbix[process,heartbeat sender,avg,busy],10m)<65' name: 'Zabbix heartbeat sender processes more than 75% busy' priority: AVERAGE - @@ -130,9 +130,9 @@ zabbix_export: value: 'Zabbix proxy' triggers: - - expression: '{avg(10m)}>75' + expression: 'avg(/Zabbix Proxy/zabbix[process,history poller,avg,busy],10m)>75' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{avg(10m)}<65' + recovery_expression: 'avg(/Zabbix Proxy/zabbix[process,history poller,avg,busy],10m)<65' name: 'Zabbix history poller processes more than 75% busy' priority: AVERAGE - @@ -149,9 +149,9 @@ zabbix_export: value: 'Zabbix proxy' triggers: - - expression: '{avg(10m)}>75' + expression: 'avg(/Zabbix Proxy/zabbix[process,history syncer,avg,busy],10m)>75' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{avg(10m)}<65' + recovery_expression: 'avg(/Zabbix Proxy/zabbix[process,history syncer,avg,busy],10m)<65' name: 'Zabbix history syncer processes more than 75% busy' priority: AVERAGE - @@ -168,9 +168,9 @@ zabbix_export: value: 'Zabbix proxy' triggers: - - expression: '{avg(30m)}>75' + expression: 'avg(/Zabbix Proxy/zabbix[process,housekeeper,avg,busy],30m)>75' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{avg(30m)}<65' + recovery_expression: 'avg(/Zabbix Proxy/zabbix[process,housekeeper,avg,busy],30m)<65' name: 'Zabbix housekeeper processes more than 75% busy' priority: AVERAGE - @@ -187,9 +187,9 @@ zabbix_export: value: 'Zabbix proxy' triggers: - - expression: '{avg(10m)}>75' + expression: 'avg(/Zabbix Proxy/zabbix[process,http poller,avg,busy],10m)>75' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{avg(10m)}<65' + recovery_expression: 'avg(/Zabbix Proxy/zabbix[process,http poller,avg,busy],10m)<65' name: 'Zabbix http poller processes more than 75% busy' priority: AVERAGE - @@ -206,9 +206,9 @@ zabbix_export: value: 'Zabbix proxy' triggers: - - expression: '{avg(10m)}>75' + expression: 'avg(/Zabbix Proxy/zabbix[process,icmp pinger,avg,busy],10m)>75' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{avg(10m)}<65' + recovery_expression: 'avg(/Zabbix Proxy/zabbix[process,icmp pinger,avg,busy],10m)<65' name: 'Zabbix icmp pinger processes more than 75% busy' priority: AVERAGE - @@ -225,9 +225,9 @@ zabbix_export: value: 'Zabbix proxy' triggers: - - expression: '{avg(10m)}>75' + expression: 'avg(/Zabbix Proxy/zabbix[process,ipmi manager,avg,busy],10m)>75' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{avg(10m)}<65' + recovery_expression: 'avg(/Zabbix Proxy/zabbix[process,ipmi manager,avg,busy],10m)<65' name: 'Zabbix ipmi manager processes more than 75% busy' priority: AVERAGE - @@ -244,9 +244,9 @@ zabbix_export: value: 'Zabbix proxy' triggers: - - expression: '{avg(10m)}>75' + expression: 'avg(/Zabbix Proxy/zabbix[process,ipmi poller,avg,busy],10m)>75' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{avg(10m)}<65' + recovery_expression: 'avg(/Zabbix Proxy/zabbix[process,ipmi poller,avg,busy],10m)<65' name: 'Zabbix ipmi poller processes more than 75% busy' priority: AVERAGE - @@ -263,9 +263,9 @@ zabbix_export: value: 'Zabbix proxy' triggers: - - expression: '{avg(10m)}>75' + expression: 'avg(/Zabbix Proxy/zabbix[process,java poller,avg,busy],10m)>75' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{avg(10m)}<65' + recovery_expression: 'avg(/Zabbix Proxy/zabbix[process,java poller,avg,busy],10m)<65' name: 'Zabbix java poller processes more than 75% busy' priority: AVERAGE - @@ -283,9 +283,9 @@ zabbix_export: value: 'Zabbix proxy' triggers: - - expression: '{avg(10m)}>75' + expression: 'avg(/Zabbix Proxy/zabbix[process,poller,avg,busy],10m)>75' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{avg(10m)}<65' + recovery_expression: 'avg(/Zabbix Proxy/zabbix[process,poller,avg,busy],10m)<65' name: 'Zabbix poller processes more than 75% busy' priority: AVERAGE - @@ -301,9 +301,9 @@ zabbix_export: value: 'Zabbix proxy' triggers: - - expression: '{avg(10m)}>75' + expression: 'avg(/Zabbix Proxy/zabbix[process,preprocessing manager,avg,busy],10m)>75' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{avg(10m)}<65' + recovery_expression: 'avg(/Zabbix Proxy/zabbix[process,preprocessing manager,avg,busy],10m)<65' name: 'Zabbix preprocessing manager processes more than 75% busy' priority: AVERAGE - @@ -319,9 +319,9 @@ zabbix_export: value: 'Zabbix proxy' triggers: - - expression: '{avg(10m)}>75' + expression: 'avg(/Zabbix Proxy/zabbix[process,preprocessing worker,avg,busy],10m)>75' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{avg(10m)}<65' + recovery_expression: 'avg(/Zabbix Proxy/zabbix[process,preprocessing worker,avg,busy],10m)<65' name: 'Zabbix preprocessing worker processes more than 75% busy' priority: AVERAGE - @@ -338,9 +338,9 @@ zabbix_export: value: 'Zabbix proxy' triggers: - - expression: '{avg(10m)}>75' + expression: 'avg(/Zabbix Proxy/zabbix[process,self-monitoring,avg,busy],10m)>75' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{avg(10m)}<65' + recovery_expression: 'avg(/Zabbix Proxy/zabbix[process,self-monitoring,avg,busy],10m)<65' name: 'Zabbix self-monitoring processes more than 75% busy' priority: AVERAGE - @@ -357,9 +357,9 @@ zabbix_export: value: 'Zabbix proxy' triggers: - - expression: '{avg(10m)}>75' + expression: 'avg(/Zabbix Proxy/zabbix[process,snmp trapper,avg,busy],10m)>75' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{avg(10m)}<65' + recovery_expression: 'avg(/Zabbix Proxy/zabbix[process,snmp trapper,avg,busy],10m)<65' name: 'Zabbix snmp trapper processes more than 75% busy' priority: AVERAGE - @@ -376,9 +376,9 @@ zabbix_export: value: 'Zabbix proxy' triggers: - - expression: '{avg(10m)}>75' + expression: 'avg(/Zabbix Proxy/zabbix[process,task manager,avg,busy],10m)>75' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{avg(10m)}<65' + recovery_expression: 'avg(/Zabbix Proxy/zabbix[process,task manager,avg,busy],10m)<65' name: 'Zabbix task manager processes more than 75% busy' priority: AVERAGE - @@ -395,9 +395,9 @@ zabbix_export: value: 'Zabbix proxy' triggers: - - expression: '{avg(10m)}>75' + expression: 'avg(/Zabbix Proxy/zabbix[process,trapper,avg,busy],10m)>75' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{avg(10m)}<65' + recovery_expression: 'avg(/Zabbix Proxy/zabbix[process,trapper,avg,busy],10m)<65' name: 'Zabbix trapper processes more than 75% busy' priority: AVERAGE - @@ -414,9 +414,9 @@ zabbix_export: value: 'Zabbix proxy' triggers: - - expression: '{avg(10m)}>75' + expression: 'avg(/Zabbix Proxy/zabbix[process,unreachable poller,avg,busy],10m)>75' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{avg(10m)}<65' + recovery_expression: 'avg(/Zabbix Proxy/zabbix[process,unreachable poller,avg,busy],10m)<65' name: 'Zabbix unreachable poller processes more than 75% busy' priority: AVERAGE - @@ -433,9 +433,9 @@ zabbix_export: value: 'Zabbix proxy' triggers: - - expression: '{avg(10m)}>75' + expression: 'avg(/Zabbix Proxy/zabbix[process,vmware collector,avg,busy],10m)>75' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{avg(10m)}<65' + recovery_expression: 'avg(/Zabbix Proxy/zabbix[process,vmware collector,avg,busy],10m)<65' name: 'Zabbix vmware collector processes more than 75% busy' priority: AVERAGE - @@ -451,7 +451,7 @@ zabbix_export: value: 'Zabbix proxy' triggers: - - expression: '{min(10m)}>100' + expression: 'min(/Zabbix Proxy/zabbix[queue,10m],10m)>100' name: 'More than 100 items having missing data for more than 10 minutes' priority: WARNING description: 'zabbix[queue,10m] item is collecting data about how many items are missing data for more than 10 minutes' @@ -479,7 +479,7 @@ zabbix_export: value: 'Zabbix proxy' triggers: - - expression: '{max(10m)}>75' + expression: 'max(/Zabbix Proxy/zabbix[rcache,buffer,pused],10m)>75' name: 'More than 75% used in the configuration cache' priority: AVERAGE description: 'Consider increasing CacheSize in the zabbix_proxy.conf configuration file' @@ -497,7 +497,7 @@ zabbix_export: value: 'Zabbix proxy' triggers: - - expression: '{max(10m)}>75' + expression: 'max(/Zabbix Proxy/zabbix[vmware,buffer,pused],10m)>75' name: 'More than 75% used in the vmware cache' priority: AVERAGE description: 'Consider increasing VMwareCacheSize in the zabbix_proxy.conf configuration file' @@ -515,7 +515,7 @@ zabbix_export: value: 'Zabbix proxy' triggers: - - expression: '{max(10m)}>75' + expression: 'max(/Zabbix Proxy/zabbix[wcache,history,pused],10m)>75' name: 'More than 75% used in the history cache' priority: AVERAGE description: 'Consider increasing HistoryCacheSize in the zabbix_proxy.conf configuration file' @@ -533,7 +533,7 @@ zabbix_export: value: 'Zabbix proxy' triggers: - - expression: '{max(10m)}>75' + expression: 'max(/Zabbix Proxy/zabbix[wcache,index,pused],10m)>75' name: 'More than 75% used in the history index cache' priority: AVERAGE description: 'Consider increasing HistoryIndexCacheSize in the zabbix_proxy.conf configuration file' diff --git a/templates/classic/template_app_zabbix_server.yaml b/templates/classic/template_app_zabbix_server.yaml index fa2ff9bc133..cd7df28253e 100644 --- a/templates/classic/template_app_zabbix_server.yaml +++ b/templates/classic/template_app_zabbix_server.yaml @@ -1,6 +1,6 @@ zabbix_export: version: '5.4' - date: '2021-04-22T11:27:59Z' + date: '2021-05-09T00:00:00Z' groups: - name: Templates/Applications @@ -45,9 +45,9 @@ zabbix_export: value: 'Zabbix server' triggers: - - expression: '{avg(10m)}>75' + expression: 'avg(/Zabbix Server/zabbix[process,alerter,avg,busy],10m)>75' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{avg(10m)}<65' + recovery_expression: 'avg(/Zabbix Server/zabbix[process,alerter,avg,busy],10m)<65' name: 'Zabbix alerter processes more than 75% busy' priority: AVERAGE - @@ -63,9 +63,9 @@ zabbix_export: value: 'Zabbix server' triggers: - - expression: '{avg(10m)}>75' + expression: 'avg(/Zabbix Server/zabbix[process,alert manager,avg,busy],10m)>75' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{avg(10m)}<65' + recovery_expression: 'avg(/Zabbix Server/zabbix[process,alert manager,avg,busy],10m)<65' name: 'Zabbix alert manager processes more than 75% busy' priority: AVERAGE - @@ -81,9 +81,9 @@ zabbix_export: value: 'Zabbix server' triggers: - - expression: '{avg(10m)}>75' + expression: 'avg(/Zabbix Server/zabbix[process,alert syncer,avg,busy],10m)>75' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{avg(10m)}<65' + recovery_expression: 'avg(/Zabbix Server/zabbix[process,alert syncer,avg,busy],10m)<65' name: 'Zabbix alert syncer processes more than 75% busy' priority: AVERAGE - @@ -99,9 +99,9 @@ zabbix_export: value: 'Zabbix server' triggers: - - expression: '{avg(10m)}>75' + expression: 'avg(/Zabbix Server/zabbix[process,availability manager,avg,busy],10m)>75' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{avg(10m)}<65' + recovery_expression: 'avg(/Zabbix Server/zabbix[process,availability manager,avg,busy],10m)<65' name: 'Zabbix availability manager processes more than 75% busy' priority: AVERAGE - @@ -117,9 +117,9 @@ zabbix_export: value: 'Zabbix server' triggers: - - expression: '{avg(10m)}>75' + expression: 'avg(/Zabbix Server/zabbix[process,configuration syncer,avg,busy],10m)>75' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{avg(10m)}<65' + recovery_expression: 'avg(/Zabbix Server/zabbix[process,configuration syncer,avg,busy],10m)<65' name: 'Zabbix configuration syncer processes more than 75% busy' priority: AVERAGE - @@ -135,9 +135,9 @@ zabbix_export: value: 'Zabbix server' triggers: - - expression: '{avg(10m)}>75' + expression: 'avg(/Zabbix Server/zabbix[process,discoverer,avg,busy],10m)>75' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{avg(10m)}<65' + recovery_expression: 'avg(/Zabbix Server/zabbix[process,discoverer,avg,busy],10m)<65' name: 'Zabbix discoverer processes more than 75% busy' priority: AVERAGE - @@ -153,9 +153,9 @@ zabbix_export: value: 'Zabbix server' triggers: - - expression: '{avg(10m)}>75' + expression: 'avg(/Zabbix Server/zabbix[process,escalator,avg,busy],10m)>75' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{avg(10m)}<65' + recovery_expression: 'avg(/Zabbix Server/zabbix[process,escalator,avg,busy],10m)<65' name: 'Zabbix escalator processes more than 75% busy' priority: AVERAGE - @@ -171,9 +171,9 @@ zabbix_export: value: 'Zabbix server' triggers: - - expression: '{avg(10m)}>75' + expression: 'avg(/Zabbix Server/zabbix[process,history poller,avg,busy],10m)>75' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{avg(10m)}<65' + recovery_expression: 'avg(/Zabbix Server/zabbix[process,history poller,avg,busy],10m)<65' name: 'Zabbix history poller processes more than 75% busy' priority: AVERAGE - @@ -189,9 +189,9 @@ zabbix_export: value: 'Zabbix server' triggers: - - expression: '{avg(10m)}>75' + expression: 'avg(/Zabbix Server/zabbix[process,history syncer,avg,busy],10m)>75' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{avg(10m)}<65' + recovery_expression: 'avg(/Zabbix Server/zabbix[process,history syncer,avg,busy],10m)<65' name: 'Zabbix history syncer processes more than 75% busy' priority: AVERAGE - @@ -207,9 +207,9 @@ zabbix_export: value: 'Zabbix server' triggers: - - expression: '{avg(30m)}>75' + expression: 'avg(/Zabbix Server/zabbix[process,housekeeper,avg,busy],30m)>75' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{avg(30m)}<65' + recovery_expression: 'avg(/Zabbix Server/zabbix[process,housekeeper,avg,busy],30m)<65' name: 'Zabbix housekeeper processes more than 75% busy' priority: AVERAGE - @@ -225,9 +225,9 @@ zabbix_export: value: 'Zabbix server' triggers: - - expression: '{avg(10m)}>75' + expression: 'avg(/Zabbix Server/zabbix[process,http poller,avg,busy],10m)>75' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{avg(10m)}<65' + recovery_expression: 'avg(/Zabbix Server/zabbix[process,http poller,avg,busy],10m)<65' name: 'Zabbix http poller processes more than 75% busy' priority: AVERAGE - @@ -243,9 +243,9 @@ zabbix_export: value: 'Zabbix server' triggers: - - expression: '{avg(10m)}>75' + expression: 'avg(/Zabbix Server/zabbix[process,icmp pinger,avg,busy],10m)>75' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{avg(10m)}<65' + recovery_expression: 'avg(/Zabbix Server/zabbix[process,icmp pinger,avg,busy],10m)<65' name: 'Zabbix icmp pinger processes more than 75% busy' priority: AVERAGE - @@ -261,9 +261,9 @@ zabbix_export: value: 'Zabbix server' triggers: - - expression: '{avg(10m)}>75' + expression: 'avg(/Zabbix Server/zabbix[process,ipmi manager,avg,busy],10m)>75' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{avg(10m)}<65' + recovery_expression: 'avg(/Zabbix Server/zabbix[process,ipmi manager,avg,busy],10m)<65' name: 'Zabbix ipmi manager processes more than 75% busy' priority: AVERAGE - @@ -279,9 +279,9 @@ zabbix_export: value: 'Zabbix server' triggers: - - expression: '{avg(10m)}>75' + expression: 'avg(/Zabbix Server/zabbix[process,ipmi poller,avg,busy],10m)>75' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{avg(10m)}<65' + recovery_expression: 'avg(/Zabbix Server/zabbix[process,ipmi poller,avg,busy],10m)<65' name: 'Zabbix ipmi poller processes more than 75% busy' priority: AVERAGE - @@ -297,9 +297,9 @@ zabbix_export: value: 'Zabbix server' triggers: - - expression: '{avg(10m)}>75' + expression: 'avg(/Zabbix Server/zabbix[process,java poller,avg,busy],10m)>75' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{avg(10m)}<65' + recovery_expression: 'avg(/Zabbix Server/zabbix[process,java poller,avg,busy],10m)<65' name: 'Zabbix java poller processes more than 75% busy' priority: AVERAGE - @@ -315,9 +315,9 @@ zabbix_export: value: 'Zabbix server' triggers: - - expression: '{avg(10m)}>75' + expression: 'avg(/Zabbix Server/zabbix[process,lld manager,avg,busy],10m)>75' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{avg(10m)}<65' + recovery_expression: 'avg(/Zabbix Server/zabbix[process,lld manager,avg,busy],10m)<65' name: 'Zabbix LLD manager processes more than 75% busy' priority: AVERAGE - @@ -333,9 +333,9 @@ zabbix_export: value: 'Zabbix server' triggers: - - expression: '{avg(10m)}>75' + expression: 'avg(/Zabbix Server/zabbix[process,lld worker,avg,busy],10m)>75' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{avg(10m)}<65' + recovery_expression: 'avg(/Zabbix Server/zabbix[process,lld worker,avg,busy],10m)<65' name: 'Zabbix LLD worker processes more than 75% busy' priority: AVERAGE - @@ -351,9 +351,9 @@ zabbix_export: value: 'Zabbix server' triggers: - - expression: '{avg(10m)}>75' + expression: 'avg(/Zabbix Server/zabbix[process,poller,avg,busy],10m)>75' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{avg(10m)}<65' + recovery_expression: 'avg(/Zabbix Server/zabbix[process,poller,avg,busy],10m)<65' name: 'Zabbix poller processes more than 75% busy' priority: AVERAGE - @@ -369,9 +369,9 @@ zabbix_export: value: 'Zabbix server' triggers: - - expression: '{avg(10m)}>75' + expression: 'avg(/Zabbix Server/zabbix[process,preprocessing manager,avg,busy],10m)>75' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{avg(10m)}<65' + recovery_expression: 'avg(/Zabbix Server/zabbix[process,preprocessing manager,avg,busy],10m)<65' name: 'Zabbix preprocessing manager processes more than 75% busy' priority: AVERAGE - @@ -387,9 +387,9 @@ zabbix_export: value: 'Zabbix server' triggers: - - expression: '{avg(10m)}>75' + expression: 'avg(/Zabbix Server/zabbix[process,preprocessing worker,avg,busy],10m)>75' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{avg(10m)}<65' + recovery_expression: 'avg(/Zabbix Server/zabbix[process,preprocessing worker,avg,busy],10m)<65' name: 'Zabbix preprocessing worker processes more than 75% busy' priority: AVERAGE - @@ -405,15 +405,15 @@ zabbix_export: value: 'Zabbix server' triggers: - - expression: '{avg(10m)}>75' + expression: 'avg(/Zabbix Server/zabbix[process,proxy poller,avg,busy],10m)>75' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{avg(10m)}<65' + recovery_expression: 'avg(/Zabbix Server/zabbix[process,proxy poller,avg,busy],10m)<65' name: 'Zabbix proxy poller processes more than 75% busy' priority: AVERAGE - - name: 'Utilization of self-monitoring internal processes, in %' + name: 'Utilization of report manager internal processes, in %' type: INTERNAL - key: 'zabbix[process,self-monitoring,avg,busy]' + key: 'zabbix[process,report manager,avg,busy]' history: 1w value_type: FLOAT units: '%' @@ -423,15 +423,15 @@ zabbix_export: value: 'Zabbix server' triggers: - - expression: '{min(10m)}>75' + expression: 'avg(/Zabbix Server/zabbix[process,report manager,avg,busy],10m)>75' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{min(10m)}<65' - name: 'Zabbix self-monitoring processes more than 75% busy' + recovery_expression: 'avg(/Zabbix Server/zabbix[process,report manager,avg,busy],10m)<65' + name: 'Zabbix report manager processes more than 75% busy' priority: AVERAGE - - name: 'Utilization of snmp trapper data collector processes, in %' + name: 'Utilization of report writer internal processes, in %' type: INTERNAL - key: 'zabbix[process,snmp trapper,avg,busy]' + key: 'zabbix[process,report writer,avg,busy]' history: 1w value_type: FLOAT units: '%' @@ -441,15 +441,15 @@ zabbix_export: value: 'Zabbix server' triggers: - - expression: '{avg(10m)}>75' + expression: 'avg(/Zabbix Server/zabbix[process,report writer,avg,busy],10m)>75' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{avg(10m)}<65' - name: 'Zabbix snmp trapper processes more than 75% busy' + recovery_expression: 'avg(/Zabbix Server/zabbix[process,report writer,avg,busy],10m)<65' + name: 'Zabbix report writer processes more than 75% busy' priority: AVERAGE - - name: 'Utilization of task manager internal processes, in %' + name: 'Utilization of self-monitoring internal processes, in %' type: INTERNAL - key: 'zabbix[process,task manager,avg,busy]' + key: 'zabbix[process,self-monitoring,avg,busy]' history: 1w value_type: FLOAT units: '%' @@ -459,15 +459,15 @@ zabbix_export: value: 'Zabbix server' triggers: - - expression: '{avg(10m)}>75' + expression: 'min(/Zabbix Server/zabbix[process,self-monitoring,avg,busy],10m)>75' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{avg(10m)}<65' - name: 'Zabbix task manager processes more than 75% busy' + recovery_expression: 'min(/Zabbix Server/zabbix[process,self-monitoring,avg,busy],10m)<65' + name: 'Zabbix self-monitoring processes more than 75% busy' priority: AVERAGE - - name: 'Utilization of report manager internal processes, in %' + name: 'Utilization of snmp trapper data collector processes, in %' type: INTERNAL - key: 'zabbix[process,report manager,avg,busy]' + key: 'zabbix[process,snmp trapper,avg,busy]' history: 1w value_type: FLOAT units: '%' @@ -477,15 +477,15 @@ zabbix_export: value: 'Zabbix server' triggers: - - expression: '{avg(10m)}>75' + expression: 'avg(/Zabbix Server/zabbix[process,snmp trapper,avg,busy],10m)>75' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{avg(10m)}<65' - name: 'Zabbix report manager processes more than 75% busy' + recovery_expression: 'avg(/Zabbix Server/zabbix[process,snmp trapper,avg,busy],10m)<65' + name: 'Zabbix snmp trapper processes more than 75% busy' priority: AVERAGE - - name: 'Utilization of report writer internal processes, in %' + name: 'Utilization of task manager internal processes, in %' type: INTERNAL - key: 'zabbix[process,report writer,avg,busy]' + key: 'zabbix[process,task manager,avg,busy]' history: 1w value_type: FLOAT units: '%' @@ -495,10 +495,10 @@ zabbix_export: value: 'Zabbix server' triggers: - - expression: '{avg(10m)}>75' + expression: 'avg(/Zabbix Server/zabbix[process,task manager,avg,busy],10m)>75' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{avg(10m)}<65' - name: 'Zabbix report writer processes more than 75% busy' + recovery_expression: 'avg(/Zabbix Server/zabbix[process,task manager,avg,busy],10m)<65' + name: 'Zabbix task manager processes more than 75% busy' priority: AVERAGE - name: 'Utilization of timer internal processes, in %' @@ -513,9 +513,9 @@ zabbix_export: value: 'Zabbix server' triggers: - - expression: '{avg(10m)}>75' + expression: 'avg(/Zabbix Server/zabbix[process,timer,avg,busy],10m)>75' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{avg(10m)}<65' + recovery_expression: 'avg(/Zabbix Server/zabbix[process,timer,avg,busy],10m)<65' name: 'Zabbix timer processes more than 75% busy' priority: AVERAGE - @@ -531,9 +531,9 @@ zabbix_export: value: 'Zabbix server' triggers: - - expression: '{avg(10m)}>75' + expression: 'avg(/Zabbix Server/zabbix[process,trapper,avg,busy],10m)>75' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{avg(10m)}<65' + recovery_expression: 'avg(/Zabbix Server/zabbix[process,trapper,avg,busy],10m)<65' name: 'Zabbix trapper processes more than 75% busy' priority: AVERAGE - @@ -549,9 +549,9 @@ zabbix_export: value: 'Zabbix server' triggers: - - expression: '{avg(10m)}>75' + expression: 'avg(/Zabbix Server/zabbix[process,unreachable poller,avg,busy],10m)>75' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{avg(10m)}<65' + recovery_expression: 'avg(/Zabbix Server/zabbix[process,unreachable poller,avg,busy],10m)<65' name: 'Zabbix unreachable poller processes more than 75% busy' priority: AVERAGE - @@ -567,9 +567,9 @@ zabbix_export: value: 'Zabbix server' triggers: - - expression: '{avg(10m)}>75' + expression: 'avg(/Zabbix Server/zabbix[process,vmware collector,avg,busy],10m)>75' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{avg(10m)}<65' + recovery_expression: 'avg(/Zabbix Server/zabbix[process,vmware collector,avg,busy],10m)<65' name: 'Zabbix vmware collector processes more than 75% busy' priority: AVERAGE - @@ -584,7 +584,7 @@ zabbix_export: value: 'Zabbix server' triggers: - - expression: '{min(10m)}>100' + expression: 'min(/Zabbix Server/zabbix[queue,10m],10m)>100' name: 'More than 100 items having missing data for more than 10 minutes' priority: WARNING description: 'zabbix[queue,10m] item is collecting data about how many items are missing data for more than 10 minutes' @@ -610,7 +610,7 @@ zabbix_export: value: 'Zabbix server' triggers: - - expression: '{max(10m)}>75' + expression: 'max(/Zabbix Server/zabbix[rcache,buffer,pused],10m)>75' name: 'More than 75% used in the configuration cache' priority: AVERAGE description: 'Consider increasing CacheSize in the zabbix_server.conf configuration file' @@ -649,7 +649,7 @@ zabbix_export: value: 'Zabbix server' triggers: - - expression: '{max(10m)}>95' + expression: 'max(/Zabbix Server/zabbix[vcache,buffer,pused],10m)>95' name: 'More than 95% used in the value cache' priority: AVERAGE description: 'Consider increasing ValueCacheSize in the zabbix_server.conf configuration file' @@ -698,7 +698,7 @@ zabbix_export: value: 'Zabbix server' triggers: - - expression: '{last()}=1' + expression: 'last(/Zabbix Server/zabbix[vcache,cache,mode])=1' name: 'Zabbix value cache working in low memory mode' priority: HIGH - @@ -714,7 +714,7 @@ zabbix_export: value: 'Zabbix server' triggers: - - expression: '{max(10m)}>75' + expression: 'max(/Zabbix Server/zabbix[vmware,buffer,pused],10m)>75' name: 'More than 75% used in the vmware cache' priority: AVERAGE description: 'Consider increasing VMwareCacheSize in the zabbix_server.conf configuration file' @@ -731,7 +731,7 @@ zabbix_export: value: 'Zabbix server' triggers: - - expression: '{max(10m)}>75' + expression: 'max(/Zabbix Server/zabbix[wcache,history,pused],10m)>75' name: 'More than 75% used in the history cache' priority: AVERAGE description: 'Consider increasing HistoryCacheSize in the zabbix_server.conf configuration file' @@ -748,7 +748,7 @@ zabbix_export: value: 'Zabbix server' triggers: - - expression: '{max(10m)}>75' + expression: 'max(/Zabbix Server/zabbix[wcache,index,pused],10m)>75' name: 'More than 75% used in the history index cache' priority: AVERAGE description: 'Consider increasing HistoryIndexCacheSize in the zabbix_server.conf configuration file' @@ -765,7 +765,7 @@ zabbix_export: value: 'Zabbix server' triggers: - - expression: '{max(10m)}>75' + expression: 'max(/Zabbix Server/zabbix[wcache,trend,pused],10m)>75' name: 'More than 75% used in the trends cache' priority: AVERAGE description: 'Consider increasing TrendCacheSize in the zabbix_server.conf configuration file' diff --git a/templates/classic/template_os_aix.yaml b/templates/classic/template_os_aix.yaml index 647dafb1866..9f94c899167 100644 --- a/templates/classic/template_os_aix.yaml +++ b/templates/classic/template_os_aix.yaml @@ -1,6 +1,6 @@ zabbix_export: version: '5.4' - date: '2021-04-22T11:26:34Z' + date: '2021-05-09T00:00:00Z' groups: - name: 'Templates/Operating systems' @@ -26,7 +26,7 @@ zabbix_export: value: Processes triggers: - - expression: '{avg(5m)}>30' + expression: 'avg(/AIX/proc.num[,,run],5m)>30' name: 'Too many processes running on {HOST.NAME}' priority: WARNING - @@ -40,7 +40,7 @@ zabbix_export: value: Processes triggers: - - expression: '{avg(5m)}>300' + expression: 'avg(/AIX/proc.num[],5m)>300' name: 'Too many processes on {HOST.NAME}' priority: WARNING - @@ -75,7 +75,7 @@ zabbix_export: value: Performance triggers: - - expression: '{avg(5m)}>5' + expression: 'avg(/AIX/system.cpu.load[percpu,avg1],5m)>5' name: 'Processor load is too high on {HOST.NAME}' priority: WARNING - @@ -139,7 +139,7 @@ zabbix_export: value: OS triggers: - - expression: '{diff(0)}>0' + expression: '(last(/AIX/system.hostname,#1)<>last(/AIX/system.hostname,#2))>0' name: 'Hostname was changed on {HOST.NAME}' priority: INFO - @@ -270,7 +270,7 @@ zabbix_export: value: Performance triggers: - - expression: '{avg(5m)}>20' + expression: 'avg(/AIX/system.stat[cpu,wa],5m)>20' name: 'Disk I/O is overloaded on {HOST.NAME}' priority: WARNING description: 'OS spends significant time waiting for I/O (input/output) operations. It could be indicator of performance issues with storage system.' @@ -460,7 +460,7 @@ zabbix_export: value: OS triggers: - - expression: '{diff(0)}>0' + expression: '(last(/AIX/system.uname,#1)<>last(/AIX/system.uname,#2))>0' name: 'Host information was changed on {HOST.NAME}' priority: INFO - @@ -478,7 +478,7 @@ zabbix_export: value: OS triggers: - - expression: '{change(0)}<0' + expression: change(/AIX/system.uptime)<0 name: '{HOST.NAME} has just been restarted' priority: INFO - @@ -504,7 +504,7 @@ zabbix_export: value: Security triggers: - - expression: '{diff(0)}>0' + expression: '(last(/AIX/vfs.file.cksum[/etc/passwd],#1)<>last(/AIX/vfs.file.cksum[/etc/passwd],#2))>0' name: '/etc/passwd has been changed on {HOST.NAME}' priority: WARNING - @@ -519,7 +519,7 @@ zabbix_export: value: Memory triggers: - - expression: '{last()}<20M' + expression: 'last(/AIX/vm.memory.size[available])<20M' name: 'Lack of available memory on server {HOST.NAME}' priority: AVERAGE - @@ -623,7 +623,7 @@ zabbix_export: value: Filesystems trigger_prototypes: - - expression: '{last()}<20' + expression: 'last(/AIX/vfs.fs.inode[{#FSNAME},pfree])<20' name: 'Free inodes is less than 20% on volume {#FSNAME}' priority: WARNING - @@ -647,7 +647,7 @@ zabbix_export: value: Filesystems trigger_prototypes: - - expression: '{last()}<20' + expression: 'last(/AIX/vfs.fs.size[{#FSNAME},pfree])<20' name: 'Free disk space is less than 20% on volume {#FSNAME}' priority: WARNING - diff --git a/templates/classic/template_os_freebsd.yaml b/templates/classic/template_os_freebsd.yaml index 4e8f1f8f64a..1aa0d94aac9 100644 --- a/templates/classic/template_os_freebsd.yaml +++ b/templates/classic/template_os_freebsd.yaml @@ -1,6 +1,6 @@ zabbix_export: version: '5.4' - date: '2021-04-22T11:26:34Z' + date: '2021-05-09T00:00:00Z' groups: - name: 'Templates/Operating systems' @@ -27,7 +27,7 @@ zabbix_export: value: OS triggers: - - expression: '{last()}<1024' + expression: last(/FreeBSD/kernel.maxfiles)<1024 name: 'Configured max number of opened files is too low on {HOST.NAME}' priority: INFO - @@ -42,7 +42,7 @@ zabbix_export: value: OS triggers: - - expression: '{last()}<256' + expression: last(/FreeBSD/kernel.maxproc)<256 name: 'Configured max number of processes is too low on {HOST.NAME}' priority: INFO - @@ -56,7 +56,7 @@ zabbix_export: value: Processes triggers: - - expression: '{avg(5m)}>30' + expression: 'avg(/FreeBSD/proc.num[,,run],5m)>30' name: 'Too many processes running on {HOST.NAME}' priority: WARNING - @@ -70,7 +70,7 @@ zabbix_export: value: Processes triggers: - - expression: '{avg(5m)}>300' + expression: 'avg(/FreeBSD/proc.num[],5m)>300' name: 'Too many processes on {HOST.NAME}' priority: WARNING - @@ -118,7 +118,7 @@ zabbix_export: value: Performance triggers: - - expression: '{avg(5m)}>5' + expression: 'avg(/FreeBSD/system.cpu.load[percpu,avg1],5m)>5' name: 'Processor load is too high on {HOST.NAME}' priority: WARNING - @@ -252,7 +252,7 @@ zabbix_export: value: OS triggers: - - expression: '{diff(0)}>0' + expression: '(last(/FreeBSD/system.hostname,#1)<>last(/FreeBSD/system.hostname,#2))>0' name: 'Hostname was changed on {HOST.NAME}' priority: INFO - @@ -288,7 +288,7 @@ zabbix_export: value: Memory triggers: - - expression: '{last()}<50' + expression: 'last(/FreeBSD/system.swap.size[,pfree])<50' name: 'Lack of free swap space on {HOST.NAME}' priority: WARNING description: 'It probably means that the systems requires more physical memory.' @@ -320,7 +320,7 @@ zabbix_export: value: OS triggers: - - expression: '{diff(0)}>0' + expression: '(last(/FreeBSD/system.uname,#1)<>last(/FreeBSD/system.uname,#2))>0' name: 'Host information was changed on {HOST.NAME}' priority: INFO - @@ -338,7 +338,7 @@ zabbix_export: value: OS triggers: - - expression: '{change(0)}<0' + expression: change(/FreeBSD/system.uptime)<0 name: '{HOST.NAME} has just been restarted' priority: INFO - @@ -364,7 +364,7 @@ zabbix_export: value: Security triggers: - - expression: '{diff(0)}>0' + expression: '(last(/FreeBSD/vfs.file.cksum[/etc/passwd],#1)<>last(/FreeBSD/vfs.file.cksum[/etc/passwd],#2))>0' name: '/etc/passwd has been changed on {HOST.NAME}' priority: WARNING - @@ -379,7 +379,7 @@ zabbix_export: value: Memory triggers: - - expression: '{last()}<20M' + expression: 'last(/FreeBSD/vm.memory.size[available])<20M' name: 'Lack of available memory on server {HOST.NAME}' priority: AVERAGE - @@ -483,7 +483,7 @@ zabbix_export: value: Filesystems trigger_prototypes: - - expression: '{last()}<20' + expression: 'last(/FreeBSD/vfs.fs.inode[{#FSNAME},pfree])<20' name: 'Free inodes is less than 20% on volume {#FSNAME}' priority: WARNING - @@ -507,7 +507,7 @@ zabbix_export: value: Filesystems trigger_prototypes: - - expression: '{last()}<20' + expression: 'last(/FreeBSD/vfs.fs.size[{#FSNAME},pfree])<20' name: 'Free disk space is less than 20% on volume {#FSNAME}' priority: WARNING - diff --git a/templates/classic/template_os_hp-ux.yaml b/templates/classic/template_os_hp-ux.yaml index 187d7c15313..9aeb2d6bd60 100644 --- a/templates/classic/template_os_hp-ux.yaml +++ b/templates/classic/template_os_hp-ux.yaml @@ -1,6 +1,6 @@ zabbix_export: version: '5.4' - date: '2021-04-22T11:26:33Z' + date: '2021-05-09T00:00:00Z' groups: - name: 'Templates/Operating systems' @@ -30,7 +30,7 @@ zabbix_export: value: Performance triggers: - - expression: '{avg(5m)}>5' + expression: 'avg(/HP-UX/system.cpu.load[percpu,avg1],5m)>5' name: 'Processor load is too high on {HOST.NAME}' priority: WARNING - @@ -133,7 +133,7 @@ zabbix_export: value: OS triggers: - - expression: '{diff(0)}>0' + expression: '(last(/HP-UX/system.hostname,#1)<>last(/HP-UX/system.hostname,#2))>0' name: 'Hostname was changed on {HOST.NAME}' priority: INFO - @@ -166,7 +166,7 @@ zabbix_export: value: OS triggers: - - expression: '{diff(0)}>0' + expression: '(last(/HP-UX/system.uname,#1)<>last(/HP-UX/system.uname,#2))>0' name: 'Host information was changed on {HOST.NAME}' priority: INFO - @@ -192,7 +192,7 @@ zabbix_export: value: Security triggers: - - expression: '{diff(0)}>0' + expression: '(last(/HP-UX/vfs.file.cksum[/etc/passwd],#1)<>last(/HP-UX/vfs.file.cksum[/etc/passwd],#2))>0' name: '/etc/passwd has been changed on {HOST.NAME}' priority: WARNING - @@ -207,7 +207,7 @@ zabbix_export: value: Memory triggers: - - expression: '{last()}<20M' + expression: 'last(/HP-UX/vm.memory.size[available])<20M' name: 'Lack of available memory on server {HOST.NAME}' priority: AVERAGE - @@ -311,7 +311,7 @@ zabbix_export: value: Filesystems trigger_prototypes: - - expression: '{last()}<20' + expression: 'last(/HP-UX/vfs.fs.inode[{#FSNAME},pfree])<20' name: 'Free inodes is less than 20% on volume {#FSNAME}' priority: WARNING - @@ -335,7 +335,7 @@ zabbix_export: value: Filesystems trigger_prototypes: - - expression: '{last()}<20' + expression: 'last(/HP-UX/vfs.fs.size[{#FSNAME},pfree])<20' name: 'Free disk space is less than 20% on volume {#FSNAME}' priority: WARNING - diff --git a/templates/classic/template_os_mac_os_x.yaml b/templates/classic/template_os_mac_os_x.yaml index d7d88b953f9..74905eb46ea 100644 --- a/templates/classic/template_os_mac_os_x.yaml +++ b/templates/classic/template_os_mac_os_x.yaml @@ -1,6 +1,6 @@ zabbix_export: version: '5.4' - date: '2021-04-22T11:27:57Z' + date: '2021-05-09T00:00:00Z' groups: - name: 'Templates/Operating systems' @@ -27,7 +27,7 @@ zabbix_export: value: OS triggers: - - expression: '{last()}<1024' + expression: 'last(/Mac OS X/kernel.maxfiles)<1024' name: 'Configured max number of opened files is too low on {HOST.NAME}' priority: INFO - @@ -42,7 +42,7 @@ zabbix_export: value: OS triggers: - - expression: '{last()}<256' + expression: 'last(/Mac OS X/kernel.maxproc)<256' name: 'Configured max number of processes is too low on {HOST.NAME}' priority: INFO - @@ -109,7 +109,7 @@ zabbix_export: value: Performance triggers: - - expression: '{avg(5m)}>5' + expression: 'avg(/Mac OS X/system.cpu.load[percpu,avg1],5m)>5' name: 'Processor load is too high on {HOST.NAME}' priority: WARNING - @@ -156,7 +156,7 @@ zabbix_export: value: OS triggers: - - expression: '{diff(0)}>0' + expression: '(last(/Mac OS X/system.hostname,#1)<>last(/Mac OS X/system.hostname,#2))>0' name: 'Hostname was changed on {HOST.NAME}' priority: INFO - @@ -189,7 +189,7 @@ zabbix_export: value: OS triggers: - - expression: '{diff(0)}>0' + expression: '(last(/Mac OS X/system.uname,#1)<>last(/Mac OS X/system.uname,#2))>0' name: 'Host information was changed on {HOST.NAME}' priority: INFO - @@ -207,7 +207,7 @@ zabbix_export: value: OS triggers: - - expression: '{change(0)}<0' + expression: 'change(/Mac OS X/system.uptime)<0' name: '{HOST.NAME} has just been restarted' priority: INFO - @@ -233,7 +233,7 @@ zabbix_export: value: Security triggers: - - expression: '{diff(0)}>0' + expression: '(last(/Mac OS X/vfs.file.cksum[/etc/passwd],#1)<>last(/Mac OS X/vfs.file.cksum[/etc/passwd],#2))>0' name: '/etc/passwd has been changed on {HOST.NAME}' priority: WARNING - @@ -248,7 +248,7 @@ zabbix_export: value: Memory triggers: - - expression: '{last()}<20M' + expression: 'last(/Mac OS X/vm.memory.size[available])<20M' name: 'Lack of available memory on server {HOST.NAME}' priority: AVERAGE - @@ -286,7 +286,7 @@ zabbix_export: value: Filesystems trigger_prototypes: - - expression: '{last()}<20' + expression: 'last(/Mac OS X/vfs.fs.inode[{#FSNAME},pfree])<20' name: 'Free inodes is less than 20% on volume {#FSNAME}' priority: WARNING - @@ -310,7 +310,7 @@ zabbix_export: value: Filesystems trigger_prototypes: - - expression: '{last()}<20' + expression: 'last(/Mac OS X/vfs.fs.size[{#FSNAME},pfree])<20' name: 'Free disk space is less than 20% on volume {#FSNAME}' priority: WARNING - diff --git a/templates/classic/template_os_openbsd.yaml b/templates/classic/template_os_openbsd.yaml index 203ae90751a..504311d272f 100644 --- a/templates/classic/template_os_openbsd.yaml +++ b/templates/classic/template_os_openbsd.yaml @@ -1,6 +1,6 @@ zabbix_export: version: '5.4' - date: '2021-04-22T11:26:32Z' + date: '2021-05-09T00:00:00Z' groups: - name: 'Templates/Operating systems' @@ -27,7 +27,7 @@ zabbix_export: value: OS triggers: - - expression: '{last()}<1024' + expression: last(/OpenBSD/kernel.maxfiles)<1024 name: 'Configured max number of opened files is too low on {HOST.NAME}' priority: INFO - @@ -42,7 +42,7 @@ zabbix_export: value: OS triggers: - - expression: '{last()}<256' + expression: last(/OpenBSD/kernel.maxproc)<256 name: 'Configured max number of processes is too low on {HOST.NAME}' priority: INFO - @@ -56,7 +56,7 @@ zabbix_export: value: Processes triggers: - - expression: '{avg(5m)}>30' + expression: 'avg(/OpenBSD/proc.num[,,run],5m)>30' name: 'Too many processes running on {HOST.NAME}' priority: WARNING - @@ -70,7 +70,7 @@ zabbix_export: value: Processes triggers: - - expression: '{avg(5m)}>300' + expression: 'avg(/OpenBSD/proc.num[],5m)>300' name: 'Too many processes on {HOST.NAME}' priority: WARNING - @@ -118,7 +118,7 @@ zabbix_export: value: Performance triggers: - - expression: '{avg(5m)}>5' + expression: 'avg(/OpenBSD/system.cpu.load[percpu,avg1],5m)>5' name: 'Processor load is too high on {HOST.NAME}' priority: WARNING - @@ -252,7 +252,7 @@ zabbix_export: value: OS triggers: - - expression: '{diff(0)}>0' + expression: '(last(/OpenBSD/system.hostname,#1)<>last(/OpenBSD/system.hostname,#2))>0' name: 'Hostname was changed on {HOST.NAME}' priority: INFO - @@ -288,7 +288,7 @@ zabbix_export: value: Memory triggers: - - expression: '{last()}<50' + expression: 'last(/OpenBSD/system.swap.size[,pfree])<50' name: 'Lack of free swap space on {HOST.NAME}' priority: WARNING description: 'It probably means that the systems requires more physical memory.' @@ -320,7 +320,7 @@ zabbix_export: value: OS triggers: - - expression: '{diff(0)}>0' + expression: '(last(/OpenBSD/system.uname,#1)<>last(/OpenBSD/system.uname,#2))>0' name: 'Host information was changed on {HOST.NAME}' priority: INFO - @@ -338,7 +338,7 @@ zabbix_export: value: OS triggers: - - expression: '{change(0)}<0' + expression: change(/OpenBSD/system.uptime)<0 name: '{HOST.NAME} has just been restarted' priority: INFO - @@ -364,7 +364,7 @@ zabbix_export: value: Security triggers: - - expression: '{diff(0)}>0' + expression: '(last(/OpenBSD/vfs.file.cksum[/etc/passwd],#1)<>last(/OpenBSD/vfs.file.cksum[/etc/passwd],#2))>0' name: '/etc/passwd has been changed on {HOST.NAME}' priority: WARNING - @@ -379,7 +379,7 @@ zabbix_export: value: Memory triggers: - - expression: '{last()}<20M' + expression: 'last(/OpenBSD/vm.memory.size[available])<20M' name: 'Lack of available memory on server {HOST.NAME}' priority: AVERAGE - @@ -483,7 +483,7 @@ zabbix_export: value: Filesystems trigger_prototypes: - - expression: '{last()}<20' + expression: 'last(/OpenBSD/vfs.fs.inode[{#FSNAME},pfree])<20' name: 'Free inodes is less than 20% on volume {#FSNAME}' priority: WARNING - @@ -507,7 +507,7 @@ zabbix_export: value: Filesystems trigger_prototypes: - - expression: '{last()}<20' + expression: 'last(/OpenBSD/vfs.fs.size[{#FSNAME},pfree])<20' name: 'Free disk space is less than 20% on volume {#FSNAME}' priority: WARNING - diff --git a/templates/classic/template_os_solaris.yaml b/templates/classic/template_os_solaris.yaml index 4b385544d88..703a904bf3d 100644 --- a/templates/classic/template_os_solaris.yaml +++ b/templates/classic/template_os_solaris.yaml @@ -1,6 +1,6 @@ zabbix_export: version: '5.4' - date: '2021-04-22T11:26:35Z' + date: '2021-05-09T00:00:00Z' groups: - name: 'Templates/Operating systems' @@ -27,7 +27,7 @@ zabbix_export: value: OS triggers: - - expression: '{last()}<256' + expression: last(/Solaris/kernel.maxproc)<256 name: 'Configured max number of processes is too low on {HOST.NAME}' priority: INFO - @@ -41,7 +41,7 @@ zabbix_export: value: Processes triggers: - - expression: '{avg(5m)}>30' + expression: 'avg(/Solaris/proc.num[,,run],5m)>30' name: 'Too many processes running on {HOST.NAME}' priority: WARNING - @@ -55,7 +55,7 @@ zabbix_export: value: Processes triggers: - - expression: '{avg(5m)}>300' + expression: 'avg(/Solaris/proc.num[],5m)>300' name: 'Too many processes on {HOST.NAME}' priority: WARNING - @@ -103,7 +103,7 @@ zabbix_export: value: Performance triggers: - - expression: '{avg(5m)}>5' + expression: 'avg(/Solaris/system.cpu.load[percpu,avg1],5m)>5' name: 'Processor load is too high on {HOST.NAME}' priority: WARNING - @@ -179,7 +179,7 @@ zabbix_export: value: Performance triggers: - - expression: '{avg(5m)}>20' + expression: 'avg(/Solaris/system.cpu.util[,iowait],5m)>20' name: 'Disk I/O is overloaded on {HOST.NAME}' priority: WARNING description: 'OS spends significant time waiting for I/O (input/output) operations. It could be indicator of performance issues with storage system.' @@ -229,7 +229,7 @@ zabbix_export: value: OS triggers: - - expression: '{diff(0)}>0' + expression: '(last(/Solaris/system.hostname,#1)<>last(/Solaris/system.hostname,#2))>0' name: 'Hostname was changed on {HOST.NAME}' priority: INFO - @@ -265,7 +265,7 @@ zabbix_export: value: Memory triggers: - - expression: '{last()}<50' + expression: 'last(/Solaris/system.swap.size[,pfree])<50' name: 'Lack of free swap space on {HOST.NAME}' priority: WARNING description: 'It probably means that the systems requires more physical memory.' @@ -297,7 +297,7 @@ zabbix_export: value: OS triggers: - - expression: '{diff(0)}>0' + expression: '(last(/Solaris/system.uname,#1)<>last(/Solaris/system.uname,#2))>0' name: 'Host information was changed on {HOST.NAME}' priority: INFO - @@ -315,7 +315,7 @@ zabbix_export: value: OS triggers: - - expression: '{change(0)}<0' + expression: change(/Solaris/system.uptime)<0 name: '{HOST.NAME} has just been restarted' priority: INFO - @@ -341,7 +341,7 @@ zabbix_export: value: Security triggers: - - expression: '{diff(0)}>0' + expression: '(last(/Solaris/vfs.file.cksum[/etc/passwd],#1)<>last(/Solaris/vfs.file.cksum[/etc/passwd],#2))>0' name: '/etc/passwd has been changed on {HOST.NAME}' priority: WARNING - @@ -356,7 +356,7 @@ zabbix_export: value: Memory triggers: - - expression: '{last()}<20M' + expression: 'last(/Solaris/vm.memory.size[available])<20M' name: 'Lack of available memory on server {HOST.NAME}' priority: AVERAGE - @@ -460,7 +460,7 @@ zabbix_export: value: Filesystems trigger_prototypes: - - expression: '{last()}<20' + expression: 'last(/Solaris/vfs.fs.inode[{#FSNAME},pfree])<20' name: 'Free inodes is less than 20% on volume {#FSNAME}' priority: WARNING - @@ -484,7 +484,7 @@ zabbix_export: value: Filesystems trigger_prototypes: - - expression: '{last()}<20' + expression: 'last(/Solaris/vfs.fs.size[{#FSNAME},pfree])<20' name: 'Free disk space is less than 20% on volume {#FSNAME}' priority: WARNING - diff --git a/templates/classic/template_server_intel_sr1530_ipmi.yaml b/templates/classic/template_server_intel_sr1530_ipmi.yaml index 476b2aa3147..d8c6bb758e0 100644 --- a/templates/classic/template_server_intel_sr1530_ipmi.yaml +++ b/templates/classic/template_server_intel_sr1530_ipmi.yaml @@ -1,6 +1,6 @@ zabbix_export: version: '5.4' - date: '2021-02-23T11:04:49Z' + date: '2021-05-09T00:00:00Z' groups: - name: 'Templates/Server hardware' @@ -26,24 +26,24 @@ zabbix_export: value: Voltage triggers: - - expression: '{last()}<1.597 or {last()}>2.019' + expression: 'last(/Intel SR1530 IPMI/bb_1.8v_sm)<1.597 or last(/Intel SR1530 IPMI/bb_1.8v_sm)>2.019' name: 'BB +1.8V SM Critical [{ITEM.VALUE}]' priority: DISASTER dependencies: - name: Power - expression: '{Intel SR1530 IPMI:power.last()}=0' + expression: 'last(/Intel SR1530 IPMI/power)=0' - - expression: '{last()}<1.646 or {last()}>1.960' + expression: 'last(/Intel SR1530 IPMI/bb_1.8v_sm)<1.646 or last(/Intel SR1530 IPMI/bb_1.8v_sm)>1.960' name: 'BB +1.8V SM Non-Critical [{ITEM.VALUE}]' priority: HIGH dependencies: - name: 'BB +1.8V SM Critical [{ITEM.VALUE}]' - expression: '{Intel SR1530 IPMI:bb_1.8v_sm.last()}<1.597 or {Intel SR1530 IPMI:bb_1.8v_sm.last()}>2.019' + expression: 'last(/Intel SR1530 IPMI/bb_1.8v_sm)<1.597 or last(/Intel SR1530 IPMI/bb_1.8v_sm)>2.019' - name: Power - expression: '{Intel SR1530 IPMI:power.last()}=0' + expression: 'last(/Intel SR1530 IPMI/power)=0' - name: 'BB +3.3V' type: IPMI @@ -58,24 +58,24 @@ zabbix_export: value: Voltage triggers: - - expression: '{last()}<2.876 or {last()}>3.729' + expression: 'last(/Intel SR1530 IPMI/bb_3.3v)<2.876 or last(/Intel SR1530 IPMI/bb_3.3v)>3.729' name: 'BB +3.3V Critical [{ITEM.VALUE}]' priority: DISASTER dependencies: - name: Power - expression: '{Intel SR1530 IPMI:power.last()}=0' + expression: 'last(/Intel SR1530 IPMI/power)=0' - - expression: '{last()}<2.970 or {last()}>3.618' + expression: 'last(/Intel SR1530 IPMI/bb_3.3v)<2.970 or last(/Intel SR1530 IPMI/bb_3.3v)>3.618' name: 'BB +3.3V Non-Critical [{ITEM.VALUE}]' priority: HIGH dependencies: - name: 'BB +3.3V Critical [{ITEM.VALUE}]' - expression: '{Intel SR1530 IPMI:bb_3.3v.last()}<2.876 or {Intel SR1530 IPMI:bb_3.3v.last()}>3.729' + expression: 'last(/Intel SR1530 IPMI/bb_3.3v)<2.876 or last(/Intel SR1530 IPMI/bb_3.3v)>3.729' - name: Power - expression: '{Intel SR1530 IPMI:power.last()}=0' + expression: 'last(/Intel SR1530 IPMI/power)=0' - name: 'BB +3.3V STBY' type: IPMI @@ -90,17 +90,17 @@ zabbix_export: value: Voltage triggers: - - expression: '{last()}<2.876 or {last()}>3.729' + expression: 'last(/Intel SR1530 IPMI/bb_3.3v_stby)<2.876 or last(/Intel SR1530 IPMI/bb_3.3v_stby)>3.729' name: 'BB +3.3V STBY Critical [{ITEM.VALUE}]' priority: DISASTER - - expression: '{last()}<2.970 or {last()}>3.618' + expression: 'last(/Intel SR1530 IPMI/bb_3.3v_stby)<2.970 or last(/Intel SR1530 IPMI/bb_3.3v_stby)>3.618' name: 'BB +3.3V STBY Non-Critical [{ITEM.VALUE}]' priority: HIGH dependencies: - name: 'BB +3.3V STBY Critical [{ITEM.VALUE}]' - expression: '{Intel SR1530 IPMI:bb_3.3v_stby.last()}<2.876 or {Intel SR1530 IPMI:bb_3.3v_stby.last()}>3.729' + expression: 'last(/Intel SR1530 IPMI/bb_3.3v_stby)<2.876 or last(/Intel SR1530 IPMI/bb_3.3v_stby)>3.729' - name: 'BB +5.0V' type: IPMI @@ -115,24 +115,24 @@ zabbix_export: value: Voltage triggers: - - expression: '{last()}<4.362 or {last()}>5.663' + expression: 'last(/Intel SR1530 IPMI/bb_5.0v)<4.362 or last(/Intel SR1530 IPMI/bb_5.0v)>5.663' name: 'BB +5.0V Critical [{ITEM.VALUE}]' priority: DISASTER dependencies: - name: Power - expression: '{Intel SR1530 IPMI:power.last()}=0' + expression: 'last(/Intel SR1530 IPMI/power)=0' - - expression: '{last()}<4.483 or {last()}>5.495' + expression: 'last(/Intel SR1530 IPMI/bb_5.0v)<4.483 or last(/Intel SR1530 IPMI/bb_5.0v)>5.495' name: 'BB +5.0V Non-Critical [{ITEM.VALUE}]' priority: HIGH dependencies: - name: 'BB +5.0V Critical [{ITEM.VALUE}]' - expression: '{Intel SR1530 IPMI:bb_5.0v.last()}<4.362 or {Intel SR1530 IPMI:bb_5.0v.last()}>5.663' + expression: 'last(/Intel SR1530 IPMI/bb_5.0v)<4.362 or last(/Intel SR1530 IPMI/bb_5.0v)>5.663' - name: Power - expression: '{Intel SR1530 IPMI:power.last()}=0' + expression: 'last(/Intel SR1530 IPMI/power)=0' - name: 'BB Ambient Temp' type: IPMI @@ -147,17 +147,17 @@ zabbix_export: value: Temperature triggers: - - expression: '{last()}<5 or {last()}>66' + expression: 'last(/Intel SR1530 IPMI/bb_ambient_temp)<5 or last(/Intel SR1530 IPMI/bb_ambient_temp)>66' name: 'BB Ambient Temp Critical [{ITEM.VALUE}]' priority: DISASTER - - expression: '{last()}<10 or {last()}>61' + expression: 'last(/Intel SR1530 IPMI/bb_ambient_temp)<10 or last(/Intel SR1530 IPMI/bb_ambient_temp)>61' name: 'BB Ambient Temp Non-Critical [{ITEM.VALUE}]' priority: HIGH dependencies: - name: 'BB Ambient Temp Critical [{ITEM.VALUE}]' - expression: '{Intel SR1530 IPMI:bb_ambient_temp.last()}<5 or {Intel SR1530 IPMI:bb_ambient_temp.last()}>66' + expression: 'last(/Intel SR1530 IPMI/bb_ambient_temp)<5 or last(/Intel SR1530 IPMI/bb_ambient_temp)>66' - name: Power type: IPMI @@ -170,7 +170,7 @@ zabbix_export: value: Voltage triggers: - - expression: '{last()}=0' + expression: 'last(/Intel SR1530 IPMI/power)=0' name: Power priority: WARNING - diff --git a/templates/classic/template_server_intel_sr1630_ipmi.yaml b/templates/classic/template_server_intel_sr1630_ipmi.yaml index fd6b05bd1d2..2dcaceea106 100644 --- a/templates/classic/template_server_intel_sr1630_ipmi.yaml +++ b/templates/classic/template_server_intel_sr1630_ipmi.yaml @@ -1,6 +1,6 @@ zabbix_export: version: '5.4' - date: '2021-02-23T11:04:48Z' + date: '2021-05-09T00:00:00Z' groups: - name: 'Templates/Server hardware' @@ -26,24 +26,24 @@ zabbix_export: value: Temperature triggers: - - expression: '{last()}<5 or {last()}>90' + expression: 'last(/Intel SR1630 IPMI/baseboard_temp)<5 or last(/Intel SR1630 IPMI/baseboard_temp)>90' name: 'Baseboard Temp Critical [{ITEM.VALUE}]' priority: DISASTER dependencies: - name: Power - expression: '{Intel SR1630 IPMI:power.last()}=0' + expression: 'last(/Intel SR1630 IPMI/power)=0' - - expression: '{last()}<10 or {last()}>83' + expression: 'last(/Intel SR1630 IPMI/baseboard_temp)<10 or last(/Intel SR1630 IPMI/baseboard_temp)>83' name: 'Baseboard Temp Non-Critical [{ITEM.VALUE}]' priority: HIGH dependencies: - name: 'Baseboard Temp Critical [{ITEM.VALUE}]' - expression: '{Intel SR1630 IPMI:baseboard_temp.last()}<5 or {Intel SR1630 IPMI:baseboard_temp.last()}>90' + expression: 'last(/Intel SR1630 IPMI/baseboard_temp)<5 or last(/Intel SR1630 IPMI/baseboard_temp)>90' - name: Power - expression: '{Intel SR1630 IPMI:power.last()}=0' + expression: 'last(/Intel SR1630 IPMI/power)=0' - name: 'BB +1.05V PCH' type: IPMI @@ -58,24 +58,24 @@ zabbix_export: value: Voltage triggers: - - expression: '{last()}<0.953 or {last()}>1.149' + expression: 'last(/Intel SR1630 IPMI/bb_1.05v_pch)<0.953 or last(/Intel SR1630 IPMI/bb_1.05v_pch)>1.149' name: 'BB +1.05V PCH Critical [{ITEM.VALUE}]' priority: DISASTER dependencies: - name: Power - expression: '{Intel SR1630 IPMI:power.last()}=0' + expression: 'last(/Intel SR1630 IPMI/power)=0' - - expression: '{last()}<0.985 or {last()}>1.117' + expression: 'last(/Intel SR1630 IPMI/bb_1.05v_pch)<0.985 or last(/Intel SR1630 IPMI/bb_1.05v_pch)>1.117' name: 'BB +1.05V PCH Non-Critical [{ITEM.VALUE}]' priority: HIGH dependencies: - name: 'BB +1.05V PCH Critical [{ITEM.VALUE}]' - expression: '{Intel SR1630 IPMI:bb_1.05v_pch.last()}<0.953 or {Intel SR1630 IPMI:bb_1.05v_pch.last()}>1.149' + expression: 'last(/Intel SR1630 IPMI/bb_1.05v_pch)<0.953 or last(/Intel SR1630 IPMI/bb_1.05v_pch)>1.149' - name: Power - expression: '{Intel SR1630 IPMI:power.last()}=0' + expression: 'last(/Intel SR1630 IPMI/power)=0' - name: 'BB +1.1V P1 Vccp' type: IPMI @@ -90,24 +90,24 @@ zabbix_export: value: Voltage triggers: - - expression: '{last()}<0.683 or {last()}>1.543' + expression: 'last(/Intel SR1630 IPMI/bb_1.1v_p1_vccp)<0.683 or last(/Intel SR1630 IPMI/bb_1.1v_p1_vccp)>1.543' name: 'BB +1.1V P1 Vccp Critical [{ITEM.VALUE}]' priority: DISASTER dependencies: - name: Power - expression: '{Intel SR1630 IPMI:power.last()}=0' + expression: 'last(/Intel SR1630 IPMI/power)=0' - - expression: '{last()}<0.708 or {last()}>1.501' + expression: 'last(/Intel SR1630 IPMI/bb_1.1v_p1_vccp)<0.708 or last(/Intel SR1630 IPMI/bb_1.1v_p1_vccp)>1.501' name: 'BB +1.1V P1 Vccp Non-Critical [{ITEM.VALUE}]' priority: HIGH dependencies: - name: 'BB +1.1V P1 Vccp Critical [{ITEM.VALUE}]' - expression: '{Intel SR1630 IPMI:bb_1.1v_p1_vccp.last()}<0.683 or {Intel SR1630 IPMI:bb_1.1v_p1_vccp.last()}>1.543' + expression: 'last(/Intel SR1630 IPMI/bb_1.1v_p1_vccp)<0.683 or last(/Intel SR1630 IPMI/bb_1.1v_p1_vccp)>1.543' - name: Power - expression: '{Intel SR1630 IPMI:power.last()}=0' + expression: 'last(/Intel SR1630 IPMI/power)=0' - name: 'BB +1.5V P1 DDR3' type: IPMI @@ -122,24 +122,24 @@ zabbix_export: value: Voltage triggers: - - expression: '{last()}<1.362 or {last()}>1.635' + expression: 'last(/Intel SR1630 IPMI/bb_1.5v_p1_ddr3)<1.362 or last(/Intel SR1630 IPMI/bb_1.5v_p1_ddr3)>1.635' name: 'BB +1.5V P1 DDR3 Critical [{ITEM.VALUE}]' priority: DISASTER dependencies: - name: Power - expression: '{Intel SR1630 IPMI:power.last()}=0' + expression: 'last(/Intel SR1630 IPMI/power)=0' - - expression: '{last()}<1.401 or {last()}>1.589' + expression: 'last(/Intel SR1630 IPMI/bb_1.5v_p1_ddr3)<1.401 or last(/Intel SR1630 IPMI/bb_1.5v_p1_ddr3)>1.589' name: 'BB +1.5V P1 DDR3 Non-Critical [{ITEM.VALUE}]' priority: HIGH dependencies: - name: 'BB +1.5V P1 DDR3 Critical [{ITEM.VALUE}]' - expression: '{Intel SR1630 IPMI:bb_1.5v_p1_ddr3.last()}<1.362 or {Intel SR1630 IPMI:bb_1.5v_p1_ddr3.last()}>1.635' + expression: 'last(/Intel SR1630 IPMI/bb_1.5v_p1_ddr3)<1.362 or last(/Intel SR1630 IPMI/bb_1.5v_p1_ddr3)>1.635' - name: Power - expression: '{Intel SR1630 IPMI:power.last()}=0' + expression: 'last(/Intel SR1630 IPMI/power)=0' - name: 'BB +3.3V' type: IPMI @@ -154,24 +154,24 @@ zabbix_export: value: Voltage triggers: - - expression: '{last()}<2.982 or {last()}>3.625' + expression: 'last(/Intel SR1630 IPMI/bb_3.3v)<2.982 or last(/Intel SR1630 IPMI/bb_3.3v)>3.625' name: 'BB +3.3V Critical [{ITEM.VALUE}]' priority: DISASTER dependencies: - name: Power - expression: '{Intel SR1630 IPMI:power.last()}=0' + expression: 'last(/Intel SR1630 IPMI/power)=0' - - expression: '{last()}<3.067 or {last()}>3.525' + expression: 'last(/Intel SR1630 IPMI/bb_3.3v)<3.067 or last(/Intel SR1630 IPMI/bb_3.3v)>3.525' name: 'BB +3.3V Non-Critical [{ITEM.VALUE}]' priority: HIGH dependencies: - name: 'BB +3.3V Critical [{ITEM.VALUE}]' - expression: '{Intel SR1630 IPMI:bb_3.3v.last()}<2.982 or {Intel SR1630 IPMI:bb_3.3v.last()}>3.625' + expression: 'last(/Intel SR1630 IPMI/bb_3.3v)<2.982 or last(/Intel SR1630 IPMI/bb_3.3v)>3.625' - name: Power - expression: '{Intel SR1630 IPMI:power.last()}=0' + expression: 'last(/Intel SR1630 IPMI/power)=0' - name: 'BB +3.3V STBY' type: IPMI @@ -186,17 +186,17 @@ zabbix_export: value: Voltage triggers: - - expression: '{last()}<2.982 or {last()}>3.625' + expression: 'last(/Intel SR1630 IPMI/bb_3.3v_stby)<2.982 or last(/Intel SR1630 IPMI/bb_3.3v_stby)>3.625' name: 'BB +3.3V STBY Critical [{ITEM.VALUE}]' priority: DISASTER - - expression: '{last()}<3.067 or {last()}>3.525' + expression: 'last(/Intel SR1630 IPMI/bb_3.3v_stby)<3.067 or last(/Intel SR1630 IPMI/bb_3.3v_stby)>3.525' name: 'BB +3.3V STBY Non-Critical [{ITEM.VALUE}]' priority: HIGH dependencies: - name: 'BB +3.3V STBY Critical [{ITEM.VALUE}]' - expression: '{Intel SR1630 IPMI:bb_3.3v_stby.last()}<2.982 or {Intel SR1630 IPMI:bb_3.3v_stby.last()}>3.625' + expression: 'last(/Intel SR1630 IPMI/bb_3.3v_stby)<2.982 or last(/Intel SR1630 IPMI/bb_3.3v_stby)>3.625' - name: 'BB +5.0V' type: IPMI @@ -211,24 +211,24 @@ zabbix_export: value: Voltage triggers: - - expression: '{last()}<4.471 or {last()}>5.538' + expression: 'last(/Intel SR1630 IPMI/bb_5.0v)<4.471 or last(/Intel SR1630 IPMI/bb_5.0v)>5.538' name: 'BB +5.0V Critical [{ITEM.VALUE}]' priority: DISASTER dependencies: - name: Power - expression: '{Intel SR1630 IPMI:power.last()}=0' + expression: 'last(/Intel SR1630 IPMI/power)=0' - - expression: '{last()}<4.630 or {last()}>5.380' + expression: 'last(/Intel SR1630 IPMI/bb_5.0v)<4.630 or last(/Intel SR1630 IPMI/bb_5.0v)>5.380' name: 'BB +5.0V Non-Critical [{ITEM.VALUE}]' priority: HIGH dependencies: - name: 'BB +5.0V Critical [{ITEM.VALUE}]' - expression: '{Intel SR1630 IPMI:bb_5.0v.last()}<4.471 or {Intel SR1630 IPMI:bb_5.0v.last()}>5.538' + expression: 'last(/Intel SR1630 IPMI/bb_5.0v)<4.471 or last(/Intel SR1630 IPMI/bb_5.0v)>5.538' - name: Power - expression: '{Intel SR1630 IPMI:power.last()}=0' + expression: 'last(/Intel SR1630 IPMI/power)=0' - name: 'Front Panel Temp' type: IPMI @@ -243,24 +243,24 @@ zabbix_export: value: Temperature triggers: - - expression: '{last()}<0 or {last()}>48' + expression: 'last(/Intel SR1630 IPMI/front_panel_temp)<0 or last(/Intel SR1630 IPMI/front_panel_temp)>48' name: 'Front Panel Temp Critical [{ITEM.VALUE}]' priority: DISASTER dependencies: - name: Power - expression: '{Intel SR1630 IPMI:power.last()}=0' + expression: 'last(/Intel SR1630 IPMI/power)=0' - - expression: '{last()}<5 or {last()}>44' + expression: 'last(/Intel SR1630 IPMI/front_panel_temp)<5 or last(/Intel SR1630 IPMI/front_panel_temp)>44' name: 'Front Panel Temp Non-Critical [{ITEM.VALUE}]' priority: HIGH dependencies: - name: 'Front Panel Temp Critical [{ITEM.VALUE}]' - expression: '{Intel SR1630 IPMI:front_panel_temp.last()}<0 or {Intel SR1630 IPMI:front_panel_temp.last()}>48' + expression: 'last(/Intel SR1630 IPMI/front_panel_temp)<0 or last(/Intel SR1630 IPMI/front_panel_temp)>48' - name: Power - expression: '{Intel SR1630 IPMI:power.last()}=0' + expression: 'last(/Intel SR1630 IPMI/power)=0' - name: Power type: IPMI @@ -273,7 +273,7 @@ zabbix_export: value: Voltage triggers: - - expression: '{last()}=0' + expression: 'last(/Intel SR1630 IPMI/power)=0' name: Power priority: WARNING - @@ -290,24 +290,24 @@ zabbix_export: value: Fans triggers: - - expression: '{last()}<324' + expression: 'last(/Intel SR1630 IPMI/system_fan_2)<324' name: 'System Fan 2 Critical [{ITEM.VALUE}]' priority: DISASTER dependencies: - name: Power - expression: '{Intel SR1630 IPMI:power.last()}=0' + expression: 'last(/Intel SR1630 IPMI/power)=0' - - expression: '{last()}<378' + expression: 'last(/Intel SR1630 IPMI/system_fan_2)<378' name: 'System Fan 2 Non-Critical [{ITEM.VALUE}]' priority: HIGH dependencies: - name: Power - expression: '{Intel SR1630 IPMI:power.last()}=0' + expression: 'last(/Intel SR1630 IPMI/power)=0' - name: 'System Fan 2 Critical [{ITEM.VALUE}]' - expression: '{Intel SR1630 IPMI:system_fan_2.last()}<324' + expression: 'last(/Intel SR1630 IPMI/system_fan_2)<324' - name: 'System Fan 3' type: IPMI @@ -322,24 +322,24 @@ zabbix_export: value: Fans triggers: - - expression: '{last()}<324' + expression: 'last(/Intel SR1630 IPMI/system_fan_3)<324' name: 'System Fan 3 Critical [{ITEM.VALUE}]' priority: DISASTER dependencies: - name: Power - expression: '{Intel SR1630 IPMI:power.last()}=0' + expression: 'last(/Intel SR1630 IPMI/power)=0' - - expression: '{last()}<378' + expression: 'last(/Intel SR1630 IPMI/system_fan_3)<378' name: 'System Fan 3 Non-Critical [{ITEM.VALUE}]' priority: HIGH dependencies: - name: Power - expression: '{Intel SR1630 IPMI:power.last()}=0' + expression: 'last(/Intel SR1630 IPMI/power)=0' - name: 'System Fan 3 Critical [{ITEM.VALUE}]' - expression: '{Intel SR1630 IPMI:system_fan_3.last()}<324' + expression: 'last(/Intel SR1630 IPMI/system_fan_3)<324' graphs: - name: 'Fan speed and temperature' diff --git a/templates/db/cassandra_jmx/template_db_cassandra_jmx.yaml b/templates/db/cassandra_jmx/template_db_cassandra_jmx.yaml index 55efc93f6b7..f1b1b6c1a90 100644 --- a/templates/db/cassandra_jmx/template_db_cassandra_jmx.yaml +++ b/templates/db/cassandra_jmx/template_db_cassandra_jmx.yaml @@ -1,6 +1,6 @@ zabbix_export: version: '5.4' - date: '2021-02-23T11:04:56Z' + date: '2021-05-09T00:00:00Z' groups: - name: Templates/Databases @@ -62,7 +62,7 @@ zabbix_export: value: Cassandra triggers: - - expression: '{diff()}=1 and {strlen()}>0' + expression: '(last(/Apache Cassandra by JMX/jmx["org.apache.cassandra.db:type=StorageService","ReleaseVersion"],#1)<>last(/Apache Cassandra by JMX/jmx["org.apache.cassandra.db:type=StorageService","ReleaseVersion"],#2))=1 and length(last(/Apache Cassandra by JMX/jmx["org.apache.cassandra.db:type=StorageService","ReleaseVersion"]))>0' name: 'Version has changed (new version: {ITEM.VALUE})' priority: INFO description: 'Cassandra version has changed. Ack to close.' @@ -559,15 +559,15 @@ zabbix_export: value: Cassandra triggers: - - expression: '{min(15m)}>{$CASSANDRA.PENDING_TASKS.MAX.WARN}' + expression: 'min(/Apache Cassandra by JMX/jmx["org.apache.cassandra.metrics:type=Compaction,name=PendingTasks","Value"],15m)>{$CASSANDRA.PENDING_TASKS.MAX.WARN}' name: 'Many pending tasks (over {$CASSANDRA.PENDING_TASKS.MAX.WARN} for 15m)' priority: WARNING dependencies: - name: 'Too many pending tasks (over {$CASSANDRA.PENDING_TASKS.MAX.HIGH} for 15m)' - expression: '{Apache Cassandra by JMX:jmx["org.apache.cassandra.metrics:type=Compaction,name=PendingTasks","Value"].min(15m)}>{$CASSANDRA.PENDING_TASKS.MAX.HIGH}' + expression: 'min(/Apache Cassandra by JMX/jmx["org.apache.cassandra.metrics:type=Compaction,name=PendingTasks","Value"],15m)>{$CASSANDRA.PENDING_TASKS.MAX.HIGH}' - - expression: '{min(15m)}>{$CASSANDRA.PENDING_TASKS.MAX.HIGH}' + expression: 'min(/Apache Cassandra by JMX/jmx["org.apache.cassandra.metrics:type=Compaction,name=PendingTasks","Value"],15m)>{$CASSANDRA.PENDING_TASKS.MAX.HIGH}' name: 'Too many pending tasks (over {$CASSANDRA.PENDING_TASKS.MAX.HIGH} for 15m)' priority: AVERAGE - @@ -611,7 +611,7 @@ zabbix_export: value: Cassandra triggers: - - expression: '{min(5m)}>0' + expression: 'min(/Apache Cassandra by JMX/jmx["org.apache.cassandra.metrics:type=Storage,name=Exceptions","Count"],5m)>0' name: 'Too many storage exceptions' priority: WARNING - @@ -630,7 +630,7 @@ zabbix_export: value: Cassandra triggers: - - expression: '{nodata(15m)}=1' + expression: 'nodata(/Apache Cassandra by JMX/jmx["org.apache.cassandra.metrics:type=Storage,name=Load","Count"],15m)=1' name: 'Failed to fetch info data (or no data for 15m)' priority: WARNING description: 'Zabbix has not received data for items for the last 15 minutes' @@ -1116,7 +1116,7 @@ zabbix_export: value: Cassandra triggers: - - expression: '{last()}>0' + expression: 'last(/Apache Cassandra by JMX/jmx["org.apache.cassandra.net:type=FailureDetector","DownEndpointCount"])>0' name: 'There are down nodes in cluster' priority: AVERAGE - diff --git a/templates/db/clickhouse_http/template_db_clickhouse_http.yaml b/templates/db/clickhouse_http/template_db_clickhouse_http.yaml index e67eb6eeb8e..3d7706dfd1d 100644 --- a/templates/db/clickhouse_http/template_db_clickhouse_http.yaml +++ b/templates/db/clickhouse_http/template_db_clickhouse_http.yaml @@ -1,6 +1,6 @@ zabbix_export: version: '5.4' - date: '2021-02-23T11:04:54Z' + date: '2021-05-09T00:00:00Z' groups: - name: Templates/Databases @@ -156,7 +156,7 @@ zabbix_export: value: ClickHouse triggers: - - expression: '{min(5m)}>{$CLICKHOUSE.DELAYED.FILES.DISTRIBUTED.COUNT.MAX.WARN}' + expression: 'min(/ClickHouse by HTTP/clickhouse.distributed.files,5m)>{$CLICKHOUSE.DELAYED.FILES.DISTRIBUTED.COUNT.MAX.WARN}' name: 'ClickHouse: Too many distributed files to insert (over {$CLICKHOUSE.DELAYED.FILES.DISTRIBUTED.COUNT.MAX.WARN} for 5 min)' priority: WARNING description: | @@ -234,7 +234,7 @@ zabbix_export: value: ClickHouse triggers: - - expression: '{min(5m)}>{$CLICKHOUSE.DELAYED.INSERTS.MAX.WARN}' + expression: 'min(/ClickHouse by HTTP/clickhouse.insert.delay,5m)>{$CLICKHOUSE.DELAYED.INSERTS.MAX.WARN}' name: 'ClickHouse: Too many throttled insert queries (over {$CLICKHOUSE.DELAYED.INSERTS.MAX.WARN) for 5 min)' priority: WARNING description: 'Clickhouse have INSERT queries that are throttled due to high number of active data parts for partition in a MergeTree, please decrease INSERT frequency' @@ -397,7 +397,7 @@ zabbix_export: value: ClickHouse triggers: - - expression: '{min(5m)}>{$CLICKHOUSE.PARTS.PER.PARTITION.WARN} * 0.9' + expression: 'min(/ClickHouse by HTTP/clickhouse.max.part.count.for.partition,5m)>{$CLICKHOUSE.PARTS.PER.PARTITION.WARN} * 0.9' name: 'ClickHouse: Too many MergeTree parts (over 90% of {$CLICKHOUSE.PARTS.PER.PARTITION.WARN})' priority: WARNING description: | @@ -611,7 +611,7 @@ zabbix_export: value: ClickHouse triggers: - - expression: '{min(5m)}>{$CLICKHOUSE.NETWORK.ERRORS.MAX.WARN}' + expression: 'min(/ClickHouse by HTTP/clickhouse.network.error.rate,5m)>{$CLICKHOUSE.NETWORK.ERRORS.MAX.WARN}' name: 'ClickHouse: Too many network errors (over {$CLICKHOUSE.NETWORK.ERRORS.MAX.WARN} in 5m)' priority: WARNING description: 'Number of errors (timeouts and connection failures) during query execution, background pool tasks and DNS cache update is too high.' @@ -666,7 +666,7 @@ zabbix_export: value: ClickHouse triggers: - - expression: '{last()}>{$CLICKHOUSE.QUERY_TIME.MAX.WARN}' + expression: 'last(/ClickHouse by HTTP/clickhouse.process.elapsed)>{$CLICKHOUSE.QUERY_TIME.MAX.WARN}' name: 'ClickHouse: There are queries running more than {$CLICKHOUSE.QUERY_TIME.MAX.WARN} seconds' priority: AVERAGE manual_close: 'YES' @@ -806,7 +806,7 @@ zabbix_export: value: ClickHouse triggers: - - expression: '{min(5m)}>{$CLICKHOUSE.REPLICA.MAX.WARN}' + expression: 'min(/ClickHouse by HTTP/clickhouse.replicas.max.absolute.delay,5m)>{$CLICKHOUSE.REPLICA.MAX.WARN}' name: 'ClickHouse: Replication lag is too high (over {$CLICKHOUSE.REPLICA.MAX.WARN} sec for 5min)' priority: WARNING description: | @@ -1016,7 +1016,7 @@ zabbix_export: value: 'Zabbix raw items' triggers: - - expression: '{diff()}=1 and {strlen()}>0' + expression: '(last(/ClickHouse by HTTP/clickhouse.system.settings,#1)<>last(/ClickHouse by HTTP/clickhouse.system.settings,#2))=1 and length(last(/ClickHouse by HTTP/clickhouse.system.settings))>0' name: 'ClickHouse: Configuration has been changed' priority: INFO description: 'ClickHouse configuration has been changed. Ack to close.' @@ -1070,7 +1070,7 @@ zabbix_export: value: ClickHouse triggers: - - expression: '{nodata(30m)}=1' + expression: 'nodata(/ClickHouse by HTTP/clickhouse.uptime,30m)=1' name: 'ClickHouse: Failed to fetch info data (or no data for 30m)' priority: WARNING description: 'Zabbix has not received data for items for the last 30 minutes' @@ -1078,9 +1078,9 @@ zabbix_export: dependencies: - name: 'ClickHouse: Service is down' - expression: '{ClickHouse by HTTP:clickhouse.ping.last()}=0 or {ClickHouse by HTTP:net.tcp.service[{$CLICKHOUSE.SCHEME},"{HOST.CONN}","{$CLICKHOUSE.PORT}"].last()} = 0' + expression: 'last(/ClickHouse by HTTP/clickhouse.ping)=0 or last(/ClickHouse by HTTP/net.tcp.service[{$CLICKHOUSE.SCHEME},"{HOST.CONN}","{$CLICKHOUSE.PORT}"]) = 0' - - expression: '{last()}<10m' + expression: 'last(/ClickHouse by HTTP/clickhouse.uptime)<10m' name: 'ClickHouse: has been restarted (uptime < 10m)' priority: INFO description: 'Uptime is less than 10 minutes' @@ -1116,7 +1116,7 @@ zabbix_export: value: ClickHouse triggers: - - expression: '{diff()}=1 and {strlen()}>0' + expression: '(last(/ClickHouse by HTTP/clickhouse.version,#1)<>last(/ClickHouse by HTTP/clickhouse.version,#2))=1 and length(last(/ClickHouse by HTTP/clickhouse.version))>0' name: 'ClickHouse: Version has changed (new version: {ITEM.VALUE})' priority: INFO description: 'ClickHouse version has changed. Ack to close.' @@ -1227,7 +1227,7 @@ zabbix_export: value: 'ClickHouse ZooKeeper' triggers: - - expression: '{min(5m)}>1' + expression: 'min(/ClickHouse by HTTP/clickhouse.zookeper.session,5m)>1' name: 'ClickHouse: Too many ZooKeeper sessions opened' priority: WARNING description: | @@ -1324,7 +1324,7 @@ zabbix_export: value: ClickHouse triggers: - - expression: '{last()}=0' + expression: 'last(/ClickHouse by HTTP/net.tcp.service[{$CLICKHOUSE.SCHEME},"{HOST.CONN}","{$CLICKHOUSE.PORT}"])=0' name: 'ClickHouse: Port {$CLICKHOUSE.PORT} is unavaliable' priority: AVERAGE manual_close: 'YES' @@ -1511,7 +1511,7 @@ zabbix_export: value: 'ClickHouse: "{#DB}.{#TABLE}" replica status' trigger_prototypes: - - expression: '{min(5m)}=1' + expression: 'min(/ClickHouse by HTTP/clickhouse.replica.is_readonly["{#DB}.{#TABLE}"],5m)=1' name: 'ClickHouse: {#DB}.{#TABLE} Replica is readonly' priority: WARNING description: 'This mode is turned on if the config doesn’t have sections with ZooKeeper, if an unknown error occurred when reinitializing sessions in ZooKeeper, and during session reinitialization in ZooKeeper.' @@ -1537,7 +1537,7 @@ zabbix_export: value: 'ClickHouse: "{#DB}.{#TABLE}" replica status' trigger_prototypes: - - expression: '{min(5m)}=1' + expression: 'min(/ClickHouse by HTTP/clickhouse.replica.is_session_expired["{#DB}.{#TABLE}"],5m)=1' name: 'ClickHouse: {#DB}.{#TABLE} Replica session is expired' priority: WARNING description: 'This mode is turned on if the config doesn’t have sections with ZooKeeper, if an unknown error occurred when reinitializing sessions in ZooKeeper, and during session reinitialization in ZooKeeper.' @@ -1562,7 +1562,7 @@ zabbix_export: value: 'ClickHouse: "{#DB}.{#TABLE}" replica status' trigger_prototypes: - - expression: '{min(5m)} > {$CLICKHOUSE.LOG_POSITION.DIFF.MAX.WARN}' + expression: 'min(/ClickHouse by HTTP/clickhouse.replica.lag["{#DB}.{#TABLE}"],5m) > {$CLICKHOUSE.LOG_POSITION.DIFF.MAX.WARN}' name: 'ClickHouse: {#DB}.{#TABLE}: Difference between log_max_index and log_pointer is too high (More than {$CLICKHOUSE.LOG_POSITION.DIFF.MAX.WARN} for 5m)' priority: WARNING - @@ -1657,7 +1657,7 @@ zabbix_export: value: 'ClickHouse: "{#DB}.{#TABLE}" replica status' trigger_prototypes: - - expression: '{min(5m)}>{$CLICKHOUSE.QUEUE.SIZE.MAX.WARN:"{#TABLE}"}' + expression: 'min(/ClickHouse by HTTP/clickhouse.replica.queue_size["{#DB}.{#TABLE}"],5m)>{$CLICKHOUSE.QUEUE.SIZE.MAX.WARN:"{#TABLE}"}' name: 'ClickHouse: {#DB}.{#TABLE}: Too many operations in queue (over {$CLICKHOUSE.QUEUE.SIZE.MAX.WARN} for 5m)' priority: WARNING - @@ -1680,7 +1680,7 @@ zabbix_export: value: 'ClickHouse: "{#DB}.{#TABLE}" replica status' trigger_prototypes: - - expression: '{ClickHouse by HTTP:clickhouse.replica.active_replicas["{#DB}.{#TABLE}"].max(5m)} < {ClickHouse by HTTP:clickhouse.replica.total_replicas["{#DB}.{#TABLE}"].last()}' + expression: 'max(/ClickHouse by HTTP/clickhouse.replica.active_replicas["{#DB}.{#TABLE}"],5m) < last(/ClickHouse by HTTP/clickhouse.replica.total_replicas["{#DB}.{#TABLE}"])' name: 'ClickHouse: {#DB}.{#TABLE}: Number of active replicas less than number of total replicas' priority: WARNING graph_prototypes: @@ -1925,14 +1925,14 @@ zabbix_export: newvalue: Up triggers: - - expression: '{ClickHouse by HTTP:clickhouse.ping.last()}=0 or {ClickHouse by HTTP:net.tcp.service[{$CLICKHOUSE.SCHEME},"{HOST.CONN}","{$CLICKHOUSE.PORT}"].last()} = 0' + expression: 'last(/ClickHouse by HTTP/clickhouse.ping)=0 or last(/ClickHouse by HTTP/net.tcp.service[{$CLICKHOUSE.SCHEME},"{HOST.CONN}","{$CLICKHOUSE.PORT}"]) = 0' name: 'ClickHouse: Service is down' priority: AVERAGE manual_close: 'YES' dependencies: - name: 'ClickHouse: Port {$CLICKHOUSE.PORT} is unavaliable' - expression: '{ClickHouse by HTTP:net.tcp.service[{$CLICKHOUSE.SCHEME},"{HOST.CONN}","{$CLICKHOUSE.PORT}"].last()}=0' + expression: 'last(/ClickHouse by HTTP/net.tcp.service[{$CLICKHOUSE.SCHEME},"{HOST.CONN}","{$CLICKHOUSE.PORT}"])=0' graphs: - name: 'ClickHouse: Current activity' diff --git a/templates/db/ignite_jmx/template_db_ignite_jmx.yaml b/templates/db/ignite_jmx/template_db_ignite_jmx.yaml index 3ee0ddf0862..fc1a2cb64b6 100644 --- a/templates/db/ignite_jmx/template_db_ignite_jmx.yaml +++ b/templates/db/ignite_jmx/template_db_ignite_jmx.yaml @@ -1,6 +1,6 @@ zabbix_export: version: '5.4' - date: '2021-02-24T10:32:24Z' + date: '2021-05-09T00:00:00Z' groups: - name: Templates/Databases @@ -103,7 +103,7 @@ zabbix_export: value: 'Ignite [{#JMXIGNITEINSTANCENAME}]: Data region [{#JMXNAME}]' trigger_prototypes: - - expression: '{min(5m)}>0' + expression: 'min(/Ignite by JMX/jmx["{#JMXOBJ}",EvictionRate],5m)>0' name: 'Data region {#JMXNAME}: Node started to evict pages' priority: INFO description: 'You store more data then region can accommodate. Data started to move to disk it can make requests work slower. Ack to close.' @@ -185,7 +185,7 @@ zabbix_export: value: 'Ignite [{#JMXIGNITEINSTANCENAME}]: Data region [{#JMXNAME}]' trigger_prototypes: - - expression: '{min(5m)}>0' + expression: 'min(/Ignite by JMX/jmx["{#JMXOBJ}",PagesReplaceRate],5m)>0' name: 'Data region {#JMXNAME}: Pages replace rate more than 0' priority: WARNING description: 'There is more data than DataRegionMaxSize. Cluster started to replace pages in memory. Page replacement can slow down operations.' @@ -221,33 +221,33 @@ zabbix_export: value: 'Ignite [{#JMXIGNITEINSTANCENAME}]: Data region [{#JMXNAME}]' trigger_prototypes: - - expression: '{Ignite by JMX:jmx["{#JMXOBJ}",UsedCheckpointBufferSize].min(5m)}/{Ignite by JMX:jmx["{#JMXOBJ}",CheckpointBufferSize].last()}*100>{$IGNITE.CHECKPOINT.PUSED.MAX.HIGH}' + expression: 'min(/Ignite by JMX/jmx["{#JMXOBJ}",UsedCheckpointBufferSize],5m)/last(/Ignite by JMX/jmx["{#JMXOBJ}",CheckpointBufferSize])*100>{$IGNITE.CHECKPOINT.PUSED.MAX.HIGH}' name: 'Data region {#JMXNAME}: Checkpoint buffer utilization is too high (over {$IGNITE.CHECKPOINT.PUSED.MAX.HIGH} in 5m)' priority: HIGH description: 'Checkpoint buffer utilization is high. Threads will be throttled to avoid buffer overflow. It can be caused by high disk utilization.' - - expression: '{Ignite by JMX:jmx["{#JMXOBJ}",UsedCheckpointBufferSize].min(5m)}/{Ignite by JMX:jmx["{#JMXOBJ}",CheckpointBufferSize].last()}*100>{$IGNITE.CHECKPOINT.PUSED.MAX.WARN}' + expression: 'min(/Ignite by JMX/jmx["{#JMXOBJ}",UsedCheckpointBufferSize],5m)/last(/Ignite by JMX/jmx["{#JMXOBJ}",CheckpointBufferSize])*100>{$IGNITE.CHECKPOINT.PUSED.MAX.WARN}' name: 'Data region {#JMXNAME}: Checkpoint buffer utilization is too high (over {$IGNITE.CHECKPOINT.PUSED.MAX.WARN} in 5m)' priority: WARNING description: 'Checkpoint buffer utilization is high. Threads will be throttled to avoid buffer overflow. It can be caused by high disk utilization.' dependencies: - name: 'Data region {#JMXNAME}: Checkpoint buffer utilization is too high (over {$IGNITE.CHECKPOINT.PUSED.MAX.HIGH} in 5m)' - expression: '{Ignite by JMX:jmx["{#JMXOBJ}",UsedCheckpointBufferSize].min(5m)}/{Ignite by JMX:jmx["{#JMXOBJ}",CheckpointBufferSize].last()}*100>{$IGNITE.CHECKPOINT.PUSED.MAX.HIGH}' + expression: 'min(/Ignite by JMX/jmx["{#JMXOBJ}",UsedCheckpointBufferSize],5m)/last(/Ignite by JMX/jmx["{#JMXOBJ}",CheckpointBufferSize])*100>{$IGNITE.CHECKPOINT.PUSED.MAX.HIGH}' - - expression: '{Ignite by JMX:jmx["{#JMXOBJ}",OffheapUsedSize].min(5m)}/{Ignite by JMX:jmx["{#JMXOBJ}",OffHeapSize].last()}*100>{$IGNITE.DATA.REGION.PUSED.MAX.HIGH}' + expression: 'min(/Ignite by JMX/jmx["{#JMXOBJ}",OffheapUsedSize],5m)/last(/Ignite by JMX/jmx["{#JMXOBJ}",OffHeapSize])*100>{$IGNITE.DATA.REGION.PUSED.MAX.HIGH}' name: 'Data region {#JMXNAME}: Data region utilisation is too high (over {$IGNITE.DATA.REGION.PUSED.MAX.HIGH} in 5m)' priority: HIGH description: 'Data region utilization is high. Increase data region size or delete any data.' - - expression: '{Ignite by JMX:jmx["{#JMXOBJ}",OffheapUsedSize].min(5m)}/{Ignite by JMX:jmx["{#JMXOBJ}",OffHeapSize].last()}*100>{$IGNITE.DATA.REGION.PUSED.MAX.WARN}' + expression: 'min(/Ignite by JMX/jmx["{#JMXOBJ}",OffheapUsedSize],5m)/last(/Ignite by JMX/jmx["{#JMXOBJ}",OffHeapSize])*100>{$IGNITE.DATA.REGION.PUSED.MAX.WARN}' name: 'Data region {#JMXNAME}: Data region utilisation is too high (over {$IGNITE.DATA.REGION.PUSED.MAX.WARN} in 5m)' priority: WARNING description: 'Data region utilization is high. Increase data region size or delete any data.' dependencies: - name: 'Data region {#JMXNAME}: Data region utilisation is too high (over {$IGNITE.DATA.REGION.PUSED.MAX.HIGH} in 5m)' - expression: '{Ignite by JMX:jmx["{#JMXOBJ}",OffheapUsedSize].min(5m)}/{Ignite by JMX:jmx["{#JMXOBJ}",OffHeapSize].last()}*100>{$IGNITE.DATA.REGION.PUSED.MAX.HIGH}' + expression: 'min(/Ignite by JMX/jmx["{#JMXOBJ}",OffheapUsedSize],5m)/last(/Ignite by JMX/jmx["{#JMXOBJ}",OffHeapSize])*100>{$IGNITE.DATA.REGION.PUSED.MAX.HIGH}' graph_prototypes: - name: 'Data region {#JMXNAME}: Checkpoint buffer utilization' @@ -350,19 +350,19 @@ zabbix_export: value: 'Ignite instance [{#JMXIGNITEINSTANCENAME}]' trigger_prototypes: - - expression: '{min(5m)} > {$IGNITE.PME.DURATION.MAX.HIGH}' + expression: 'min(/Ignite by JMX/jmx["{#JMXOBJ}",CurrentPmeDuration],5m) > {$IGNITE.PME.DURATION.MAX.HIGH}' name: 'Ignite [{#JMXIGNITEINSTANCENAME}]: PME duration is too long (over {$IGNITE.PME.DURATION.MAX.HIGH} for 5 min)' priority: HIGH description: 'PME duration is over {$IGNITE.PME.DURATION.MAX.HIGH}ms. Looks like PME is hung.' - - expression: '{min(5m)} > {$IGNITE.PME.DURATION.MAX.WARN}' + expression: 'min(/Ignite by JMX/jmx["{#JMXOBJ}",CurrentPmeDuration],5m) > {$IGNITE.PME.DURATION.MAX.WARN}' name: 'Ignite [{#JMXIGNITEINSTANCENAME}]: PME duration is too long (over {$IGNITE.PME.DURATION.MAX.WARN} for 5 min)' priority: WARNING description: 'PME duration is over {$IGNITE.PME.DURATION.MAX.WARN}ms.' dependencies: - name: 'Ignite [{#JMXIGNITEINSTANCENAME}]: PME duration is too long (over {$IGNITE.PME.DURATION.MAX.HIGH} for 5 min)' - expression: '{Ignite by JMX:jmx["{#JMXOBJ}",CurrentPmeDuration].min(5m)} > {$IGNITE.PME.DURATION.MAX.HIGH}' + expression: 'min(/Ignite by JMX/jmx["{#JMXOBJ}",CurrentPmeDuration],5m) > {$IGNITE.PME.DURATION.MAX.HIGH}' - name: 'Ignite [{#JMXIGNITEINSTANCENAME}]: Jobs rejected, current' type: JMX @@ -391,14 +391,14 @@ zabbix_export: value: 'Ignite instance [{#JMXIGNITEINSTANCENAME}]' trigger_prototypes: - - expression: '{min(15m)} > {$IGNITE.THREADS.COUNT.MAX.WARN}' + expression: 'min(/Ignite by JMX/jmx["{#JMXOBJ}",CurrentThreadCount],15m) > {$IGNITE.THREADS.COUNT.MAX.WARN}' name: 'Ignite [{#JMXIGNITEINSTANCENAME}]: Number of running threads is too high (over {$IGNITE.THREADS.COUNT.MAX.WARN} for 15 min)' priority: WARNING description: 'Number of running threads is over {$IGNITE.THREADS.COUNT.MAX.WARN}.' dependencies: - name: 'Ignite [{#JMXIGNITEINSTANCENAME}]: PME duration is too long (over {$IGNITE.PME.DURATION.MAX.HIGH} for 5 min)' - expression: '{Ignite by JMX:jmx["{#JMXOBJ}",CurrentPmeDuration].min(5m)} > {$IGNITE.PME.DURATION.MAX.HIGH}' + expression: 'min(/Ignite by JMX/jmx["{#JMXOBJ}",CurrentPmeDuration],5m) > {$IGNITE.PME.DURATION.MAX.HIGH}' - name: 'Ignite [{#JMXIGNITEINSTANCENAME}]: Jobs waiting, current' type: JMX @@ -414,7 +414,7 @@ zabbix_export: value: 'Ignite instance [{#JMXIGNITEINSTANCENAME}]' trigger_prototypes: - - expression: '{min(15m)} > {$IGNITE.JOBS.QUEUE.MAX.WARN}' + expression: 'min(/Ignite by JMX/jmx["{#JMXOBJ}",CurrentWaitingJobs],15m) > {$IGNITE.JOBS.QUEUE.MAX.WARN}' name: 'Ignite [{#JMXIGNITEINSTANCENAME}]: Number of queued jobs is too high (over {$IGNITE.JOBS.QUEUE.MAX.WARN} for 15 min)' priority: WARNING description: 'Number of queued jobs is over {$IGNITE.JOBS.QUEUE.MAX.WARN}.' @@ -653,20 +653,20 @@ zabbix_export: value: 'Ignite instance [{#JMXIGNITEINSTANCENAME}]' trigger_prototypes: - - expression: '{change()}>0' + expression: 'change(/Ignite by JMX/jmx["{#JMXOBJ}",TotalServerNodes])>0' name: 'Ignite [{#JMXIGNITEINSTANCENAME}]: Server node added to the topology' priority: INFO description: 'One or more server node added to the topology. Ack to close.' manual_close: 'YES' - - expression: '{change()}<0' + expression: 'change(/Ignite by JMX/jmx["{#JMXOBJ}",TotalServerNodes])<0' name: 'Ignite [{#JMXIGNITEINSTANCENAME}]: Server node left the topology' priority: WARNING description: 'One or more server node left the topology. Ack to close.' manual_close: 'YES' trigger_prototypes: - - expression: '{Ignite by JMX:jmx["{#JMXOBJ}",TotalServerNodes].last()}>{Ignite by JMX:jmx["{#JMXOBJ}",TotalBaselineNodes].last()}' + expression: 'last(/Ignite by JMX/jmx["{#JMXOBJ}",TotalServerNodes])>last(/Ignite by JMX/jmx["{#JMXOBJ}",TotalBaselineNodes])' name: 'Ignite [{#JMXIGNITEINSTANCENAME}]: There are nodes is not in topology' priority: INFO description: 'One or more server node left the topology. Ack to close.' @@ -723,7 +723,7 @@ zabbix_export: value: 'Ignite instance [{#JMXIGNITEINSTANCENAME}]' trigger_prototypes: - - expression: '{diff()}=1 and {strlen()}>0' + expression: '(last(/Ignite by JMX/jmx["{#JMXOBJ}",FullVersion],#1)<>last(/Ignite by JMX/jmx["{#JMXOBJ}",FullVersion],#2))=1 and length(last(/Ignite by JMX/jmx["{#JMXOBJ}",FullVersion]))>0' name: 'Ignite [{#JMXIGNITEINSTANCENAME}]: Version has changed (new version: {ITEM.VALUE})' priority: INFO description: 'Ignite [{#JMXIGNITEINSTANCENAME}] version has changed. Ack to close.' @@ -769,13 +769,13 @@ zabbix_export: value: 'Ignite instance [{#JMXIGNITEINSTANCENAME}]' trigger_prototypes: - - expression: '{nodata(10m)}=1' + expression: 'nodata(/Ignite by JMX/jmx["{#JMXOBJ}",UpTime],10m)=1' name: 'Ignite [{#JMXIGNITEINSTANCENAME}]: Failed to fetch info data (or no data for 10m)' priority: WARNING description: 'Zabbix has not received data for items for the last 10 minutes.' manual_close: 'YES' - - expression: '{last()}<10m' + expression: 'last(/Ignite by JMX/jmx["{#JMXOBJ}",UpTime])<10m' name: 'Ignite [{#JMXIGNITEINSTANCENAME}]: has been restarted (uptime < 10m)' priority: INFO description: 'Uptime is less than 10 minutes' @@ -839,25 +839,6 @@ zabbix_export: tag: Application value: 'Ignite instance [{#JMXIGNITEINSTANCENAME}]' - - name: 'Ignite [{#JMXIGNITEINSTANCENAME}]: Communication reconnect rate' - type: JMX - key: 'jmx["{#JMXOBJ}",ReconnectCount]' - history: 7d - value_type: FLOAT - username: '{$IGNITE.USER}' - password: '{$IGNITE.PASSWORD}' - description: 'Gets maximum number of reconnect attempts used when establishing connection with remote nodes per second.' - preprocessing: - - - type: CHANGE_PER_SECOND - parameters: - - '' - jmx_endpoint: 'service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi' - tags: - - - tag: Application - value: 'Ignite instance [{#JMXIGNITEINSTANCENAME}]' - - name: 'Ignite [{#JMXIGNITEINSTANCENAME}]: Communication messages sent, rate' type: JMX key: 'jmx["{#JMXOBJ}",SentMessagesCount]' @@ -939,7 +920,7 @@ zabbix_export: value: 'Ignite instance [{#JMXIGNITEINSTANCENAME}]' trigger_prototypes: - - expression: '{diff()}=1 and {strlen()}>0' + expression: '(last(/Ignite by JMX/jmx["{#JMXOBJ}",Coordinator],#1)<>last(/Ignite by JMX/jmx["{#JMXOBJ}",Coordinator],#2))=1 and length(last(/Ignite by JMX/jmx["{#JMXOBJ}",Coordinator]))>0' name: 'Ignite [{#JMXIGNITEINSTANCENAME}]: Coordinator has changed' priority: WARNING description: 'Ignite [{#JMXIGNITEINSTANCENAME}] version has changed. Ack to close.' @@ -1263,7 +1244,7 @@ zabbix_export: value: 'Ignite [{#JMXIGNITEINSTANCENAME}]: Cache group [{#JMXNAME}]' trigger_prototypes: - - expression: '{diff()}=1 and {strlen()}>0' + expression: '(last(/Ignite by JMX/jmx["{#JMXOBJ}",Caches],#1)<>last(/Ignite by JMX/jmx["{#JMXOBJ}",Caches],#2))=1 and length(last(/Ignite by JMX/jmx["{#JMXOBJ}",Caches]))>0' name: 'Cache group [{#JMXNAME}]: List of caches has changed' priority: INFO description: 'List of caches has changed. Significant changes have occurred in the cluster. Ack to close.' @@ -1283,7 +1264,7 @@ zabbix_export: value: 'Ignite [{#JMXIGNITEINSTANCENAME}]: Cache group [{#JMXNAME}]' trigger_prototypes: - - expression: '{max(30m)}>0' + expression: 'max(/Ignite by JMX/jmx["{#JMXOBJ}",LocalNodeMovingPartitionsCount],30m)>0' name: 'Cache group [{#JMXNAME}]: Rebalance in progress' priority: INFO description: 'Ack to close.' @@ -1355,7 +1336,7 @@ zabbix_export: value: 'Ignite [{#JMXIGNITEINSTANCENAME}]: Cache group [{#JMXNAME}]' trigger_prototypes: - - expression: '{max(30m)}=0' + expression: 'max(/Ignite by JMX/jmx["{#JMXOBJ}",MinimumNumberOfPartitionCopies],30m)=0' name: 'Cache group [{#JMXNAME}]: There is no copy for partitions' priority: WARNING - @@ -1373,7 +1354,7 @@ zabbix_export: value: 'Ignite [{#JMXIGNITEINSTANCENAME}]: Cache group [{#JMXNAME}]' trigger_prototypes: - - expression: '{Ignite by JMX:jmx["{#JMXOBJ}",Backups].min(5m)}>={Ignite by JMX:jmx["{#JMXOBJ}",MinimumNumberOfPartitionCopies].max(5m)}' + expression: 'min(/Ignite by JMX/jmx["{#JMXOBJ}",Backups],5m)>=max(/Ignite by JMX/jmx["{#JMXOBJ}",MinimumNumberOfPartitionCopies],5m)' name: 'Cache group [{#JMXNAME}]: One or more backups are unavailable' priority: WARNING graph_prototypes: @@ -1502,7 +1483,7 @@ zabbix_export: value: 'Ignite [{#JMXIGNITEINSTANCENAME}]: Thread pool [{#JMXNAME}]' trigger_prototypes: - - expression: '{min(5m)} > {$IGNITE.THREAD.QUEUE.MAX.WARN:"{#JMXNAME}"}' + expression: 'min(/Ignite by JMX/jmx["{#JMXOBJ}",QueueSize],5m) > {$IGNITE.THREAD.QUEUE.MAX.WARN:"{#JMXNAME}"}' name: 'Thread pool [{#JMXNAME}]: Too many messages in queue (over {$IGNITE.THREAD.QUEUE.MAX.WARN:"{#JMXNAME}"} for 5 min)' priority: AVERAGE description: 'Number of messages in queue more than {$IGNITE.THREAD.QUEUE.MAX.WARN:"{#JMXNAME}"}.' @@ -1733,21 +1714,21 @@ zabbix_export: value: 'Ignite [{#JMXIGNITEINSTANCENAME}]: Cache group [{#JMXGROUP}]' trigger_prototypes: - - expression: '{Ignite by JMX:jmx["{#JMXOBJ}",CacheSize].last()}={Ignite by JMX:jmx["{#JMXOBJ}",HeapEntriesCount].last()}' + expression: 'last(/Ignite by JMX/jmx["{#JMXOBJ}",CacheSize])=last(/Ignite by JMX/jmx["{#JMXOBJ}",HeapEntriesCount])' name: 'Cache group [{#JMXGROUP}]: All entries are in heap' priority: INFO description: 'All entries are in heap. Possibly you use eager queries it may cause out of memory exceptions for big caches. Ack to close.' manual_close: 'YES' - - expression: '{Ignite by JMX:jmx["{#JMXOBJ}",CacheTxRollbacks].min(5m)} > {Ignite by JMX:jmx["{#JMXOBJ}",CacheTxCommits].max(5m)}' + expression: 'min(/Ignite by JMX/jmx["{#JMXOBJ}",CacheTxRollbacks],5m) > max(/Ignite by JMX/jmx["{#JMXOBJ}",CacheTxCommits],5m)' name: 'Cache group [{#JMXGROUP}]: Success transactions less than rollbacks for 5m' priority: WARNING dependencies: - name: 'Cache group [{#JMXGROUP}]: There are no success transactions for cache for 5m' - expression: '{Ignite by JMX:jmx["{#JMXOBJ}",CacheTxRollbacks].min(5m)}>0 and {Ignite by JMX:jmx["{#JMXOBJ}",CacheTxCommits].max(5m)}=0' + expression: 'min(/Ignite by JMX/jmx["{#JMXOBJ}",CacheTxRollbacks],5m)>0 and max(/Ignite by JMX/jmx["{#JMXOBJ}",CacheTxCommits],5m)=0' - - expression: '{Ignite by JMX:jmx["{#JMXOBJ}",CacheTxRollbacks].min(5m)}>0 and {Ignite by JMX:jmx["{#JMXOBJ}",CacheTxCommits].max(5m)}=0' + expression: 'min(/Ignite by JMX/jmx["{#JMXOBJ}",CacheTxRollbacks],5m)>0 and max(/Ignite by JMX/jmx["{#JMXOBJ}",CacheTxCommits],5m)=0' name: 'Cache group [{#JMXGROUP}]: There are no success transactions for cache for 5m' priority: AVERAGE graph_prototypes: diff --git a/templates/db/mongodb/template_db_mongodb.yaml b/templates/db/mongodb/template_db_mongodb.yaml index e603e9dffac..fc890c3d895 100644 --- a/templates/db/mongodb/template_db_mongodb.yaml +++ b/templates/db/mongodb/template_db_mongodb.yaml @@ -1,6 +1,6 @@ zabbix_export: version: '5.4' - date: '2021-04-22T11:28:34Z' + date: '2021-05-09T00:00:00Z' groups: - name: Templates/Databases @@ -481,7 +481,7 @@ zabbix_export: value: MongoDB triggers: - - expression: '{min(5m)}>{$MONGODB.CURSOR.OPEN.MAX.WARN}' + expression: 'min(/MongoDB node by Zabbix Agent 2/mongodb.cursor.open.total,5m)>{$MONGODB.CURSOR.OPEN.MAX.WARN}' name: 'MongoDB: Too many cursors opened by MongoDB for clients (over {$MONGODB.CURSOR.OPEN.MAX.WARN} in 5m)' priority: WARNING - @@ -509,7 +509,7 @@ zabbix_export: value: MongoDB triggers: - - expression: '{min(5m)}>{$MONGODB.CURSOR.TIMEOUT.MAX.WARN}' + expression: 'min(/MongoDB node by Zabbix Agent 2/mongodb.cursor.timed_out.rate,5m)>{$MONGODB.CURSOR.TIMEOUT.MAX.WARN}' name: 'MongoDB: Too many cursors are timing out (over {$MONGODB.CURSOR.TIMEOUT.MAX.WARN} per second in 5m)' priority: WARNING - @@ -891,7 +891,7 @@ zabbix_export: value: MongoDB triggers: - - expression: '{last()}=0' + expression: 'last(/MongoDB node by Zabbix Agent 2/mongodb.ping["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}"])=0' name: 'MongoDB: Connection to MongoDB is unavailable' priority: HIGH description: 'Connection to MongoDB instance is currently unavailable.' @@ -939,7 +939,7 @@ zabbix_export: value: MongoDB triggers: - - expression: '{nodata(10m)}=1' + expression: 'nodata(/MongoDB node by Zabbix Agent 2/mongodb.uptime,10m)=1' name: 'MongoDB: Failed to fetch info data (or no data for 10m)' priority: WARNING description: 'Zabbix has not received data for items for the last 10 minutes' @@ -947,9 +947,9 @@ zabbix_export: dependencies: - name: 'MongoDB: Connection to MongoDB is unavailable' - expression: '{MongoDB node by Zabbix Agent 2:mongodb.ping["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}"].last()}=0' + expression: 'last(/MongoDB node by Zabbix Agent 2/mongodb.ping["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}"])=0' - - expression: '{last()}<10m' + expression: 'last(/MongoDB node by Zabbix Agent 2/mongodb.uptime)<10m' name: 'MongoDB: has been restarted (uptime < 10m)' priority: INFO description: 'Uptime is less than 10 minutes' @@ -980,7 +980,7 @@ zabbix_export: value: MongoDB triggers: - - expression: '{diff()}=1 and {strlen()}>0' + expression: '(last(/MongoDB node by Zabbix Agent 2/mongodb.version,#1)<>last(/MongoDB node by Zabbix Agent 2/mongodb.version,#2))=1 and length(last(/MongoDB node by Zabbix Agent 2/mongodb.version))>0' name: 'MongoDB: Version has changed (new version: {ITEM.VALUE})' priority: INFO description: 'MongoDB version has changed. Ack to close.' @@ -2106,7 +2106,7 @@ zabbix_export: value: 'MongoDB Replica Set: {#RS_NAME}' trigger_prototypes: - - expression: '{min(5m)}>{$MONGODB.REPL.LAG.MAX.WARN}' + expression: 'min(/MongoDB node by Zabbix Agent 2/mongodb.rs.lag[{#RS_NAME}],5m)>{$MONGODB.REPL.LAG.MAX.WARN}' name: 'MongoDB: Replication lag with primary is too high (over {$MONGODB.REPL.LAG.MAX.WARN} in 5m)' priority: WARNING - @@ -2365,7 +2365,7 @@ zabbix_export: value: 'MongoDB Replica Set: {#RS_NAME}' trigger_prototypes: - - expression: '{change()}=1' + expression: 'change(/MongoDB node by Zabbix Agent 2/mongodb.rs.state[{#RS_NAME}])=1' recovery_mode: NONE name: 'MongoDB: Node in ReplicaSet changed the state (new state: {ITEM.VALUE})' priority: WARNING @@ -2450,7 +2450,7 @@ zabbix_export: value: 'MongoDB Replica Set: {#RS_NAME}' trigger_prototypes: - - expression: '{MongoDB node by Zabbix Agent 2:mongodb.rs.unhealthy_count[{#RS_NAME}].last()}>0 and {MongoDB node by Zabbix Agent 2:mongodb.rs.unhealthy[{#RS_NAME}].strlen()}>0' + expression: 'last(/MongoDB node by Zabbix Agent 2/mongodb.rs.unhealthy_count[{#RS_NAME}])>0 and length(last(/MongoDB node by Zabbix Agent 2/mongodb.rs.unhealthy[{#RS_NAME}]))>0' name: 'MongoDB: There are unhealthy replicas in ReplicaSet' priority: AVERAGE graph_prototypes: @@ -2743,7 +2743,7 @@ zabbix_export: value: MongoDB trigger_prototypes: - - expression: '{max(5m)}<{$MONGODB.WIRED_TIGER.TICKETS.AVAILABLE.MIN.WARN}' + expression: 'max(/MongoDB node by Zabbix Agent 2/mongodb.wired_tiger.concurrent_transactions.read.available[{#SINGLETON}],5m)<{$MONGODB.WIRED_TIGER.TICKETS.AVAILABLE.MIN.WARN}' name: 'MongoDB: Available WiredTiger read tickets less then {$MONGODB.WIRED_TIGER.TICKETS.AVAILABLE.MIN.WARN}' priority: WARNING description: | @@ -2805,7 +2805,7 @@ zabbix_export: value: MongoDB trigger_prototypes: - - expression: '{max(5m)}<{$MONGODB.WIRED_TIGER.TICKETS.AVAILABLE.MIN.WARN}' + expression: 'max(/MongoDB node by Zabbix Agent 2/mongodb.wired_tiger.concurrent_transactions.write.available[{#SINGLETON}],5m)<{$MONGODB.WIRED_TIGER.TICKETS.AVAILABLE.MIN.WARN}' name: 'MongoDB: Available WiredTiger write tickets less then {$MONGODB.WIRED_TIGER.TICKETS.AVAILABLE.MIN.WARN}' priority: WARNING description: | @@ -2961,7 +2961,7 @@ zabbix_export: newvalue: Up triggers: - - expression: '{MongoDB node by Zabbix Agent 2:mongodb.connections.current.min(5m)}/({MongoDB node by Zabbix Agent 2:mongodb.connections.available.last()}+{MongoDB node by Zabbix Agent 2:mongodb.connections.current.last()})*100>{$MONGODB.CONNS.PCT.USED.MAX.WARN}' + expression: 'min(/MongoDB node by Zabbix Agent 2/mongodb.connections.current,5m)/(last(/MongoDB node by Zabbix Agent 2/mongodb.connections.available)+last(/MongoDB node by Zabbix Agent 2/mongodb.connections.current))*100>{$MONGODB.CONNS.PCT.USED.MAX.WARN}' name: 'MongoDB: Total number of open connections is too high (over {$MONGODB.CONNS.PCT.USED.MAX.WARN%} in 5m)' priority: WARNING description: 'Too few available connections. If MongoDB runs low on connections, in may not be able to handle incoming requests in a timely manner.' diff --git a/templates/db/mongodb_cluster/template_db_mongodb_cluster.yaml b/templates/db/mongodb_cluster/template_db_mongodb_cluster.yaml index e3a2339b1c4..d7a7f149a49 100644 --- a/templates/db/mongodb_cluster/template_db_mongodb_cluster.yaml +++ b/templates/db/mongodb_cluster/template_db_mongodb_cluster.yaml @@ -1,6 +1,6 @@ zabbix_export: version: '5.4' - date: '2021-04-22T11:28:28Z' + date: '2021-05-09T00:00:00Z' groups: - name: Templates/Databases @@ -87,7 +87,7 @@ zabbix_export: value: 'MongoDB sharded cluster' triggers: - - expression: '{max(5m)}<{$MONGODB.CONNS.AVAILABLE.MIN.WARN}' + expression: 'max(/MongoDB cluster by Zabbix Agent 2/mongodb.connections.available,5m)<{$MONGODB.CONNS.AVAILABLE.MIN.WARN}' name: 'MongoDB cluster: Available connections less then {$MONGODB.CONNS.AVAILABLE.MIN.WARN}' priority: WARNING description: | @@ -298,7 +298,7 @@ zabbix_export: value: 'MongoDB sharded cluster' triggers: - - expression: '{min(5m)}>{$MONGODB.CURSOR.OPEN.MAX.WARN}' + expression: 'min(/MongoDB cluster by Zabbix Agent 2/mongodb.cursor.open.total,5m)>{$MONGODB.CURSOR.OPEN.MAX.WARN}' name: 'MongoDB cluster: Too many cursors opened by MongoDB for clients (over {$MONGODB.CURSOR.OPEN.MAX.WARN} in 5m)' priority: WARNING - @@ -326,7 +326,7 @@ zabbix_export: value: 'MongoDB sharded cluster' triggers: - - expression: '{min(5m)}>{$MONGODB.CURSOR.TIMEOUT.MAX.WARN}' + expression: 'min(/MongoDB cluster by Zabbix Agent 2/mongodb.cursor.timed_out.rate,5m)>{$MONGODB.CURSOR.TIMEOUT.MAX.WARN}' name: 'MongoDB cluster: Too many cursors are timing out (over {$MONGODB.CURSOR.TIMEOUT.MAX.WARN} per second in 5m)' priority: WARNING - @@ -678,7 +678,7 @@ zabbix_export: value: 'MongoDB sharded cluster' triggers: - - expression: '{last()}=0' + expression: 'last(/MongoDB cluster by Zabbix Agent 2/mongodb.ping["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}"])=0' name: 'MongoDB cluster: Connection to mongos proxy is unavailable' priority: HIGH description: 'Connection to mongos proxy instance is currently unavailable.' @@ -714,7 +714,7 @@ zabbix_export: value: 'MongoDB sharded cluster' triggers: - - expression: '{nodata(10m)}=1' + expression: 'nodata(/MongoDB cluster by Zabbix Agent 2/mongodb.uptime,10m)=1' name: 'MongoDB cluster: Failed to fetch info data (or no data for 10m)' priority: WARNING description: 'Zabbix has not received data for items for the last 10 minutes' @@ -722,9 +722,9 @@ zabbix_export: dependencies: - name: 'MongoDB cluster: Connection to mongos proxy is unavailable' - expression: '{MongoDB cluster by Zabbix Agent 2:mongodb.ping["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}"].last()}=0' + expression: 'last(/MongoDB cluster by Zabbix Agent 2/mongodb.ping["{$MONGODB.CONNSTRING}","{$MONGODB.USER}","{$MONGODB.PASSWORD}"])=0' - - expression: '{last()}<10m' + expression: 'last(/MongoDB cluster by Zabbix Agent 2/mongodb.uptime)<10m' name: 'MongoDB cluster: has been restarted (uptime < 10m)' priority: INFO description: 'Uptime is less than 10 minutes' @@ -755,7 +755,7 @@ zabbix_export: value: 'MongoDB sharded cluster' triggers: - - expression: '{diff()}=1 and {strlen()}>0' + expression: '(last(/MongoDB cluster by Zabbix Agent 2/mongodb.version,#1)<>last(/MongoDB cluster by Zabbix Agent 2/mongodb.version,#2))=1 and length(last(/MongoDB cluster by Zabbix Agent 2/mongodb.version))>0' name: 'MongoDB cluster: Version has changed (new version: {ITEM.VALUE})' priority: INFO description: 'MongoDB cluster version has changed. Ack to close.' diff --git a/templates/db/mssql_odbc/template_db_mssql_odbc.yaml b/templates/db/mssql_odbc/template_db_mssql_odbc.yaml index c2d954797b2..6c0257f5137 100644 --- a/templates/db/mssql_odbc/template_db_mssql_odbc.yaml +++ b/templates/db/mssql_odbc/template_db_mssql_odbc.yaml @@ -1,6 +1,6 @@ zabbix_export: version: '5.4' - date: '2021-04-25T13:08:40Z' + date: '2021-05-09T00:00:00Z' groups: - name: Templates/Databases @@ -173,9 +173,9 @@ zabbix_export: value_type: FLOAT units: ms params: | - (last(mssql.average_latch_wait_time_raw) - prev(mssql.average_latch_wait_time_raw)) / - (last(mssql.average_latch_wait_time_base) - prev(mssql.average_latch_wait_time_base) + - (last(mssql.average_latch_wait_time_base) - prev(mssql.average_latch_wait_time_base)=0)) + (last(//mssql.average_latch_wait_time_raw) - last(//mssql.average_latch_wait_time_raw,#2)) / + (last(//mssql.average_latch_wait_time_base) - last(//mssql.average_latch_wait_time_base,#2) + + (last(//mssql.average_latch_wait_time_base) - last(//mssql.average_latch_wait_time_base,#2)=0)) description: 'Average latch wait time (in milliseconds) for latch requests that had to wait.' tags: - @@ -227,9 +227,9 @@ zabbix_export: value_type: FLOAT units: ms params: | - (last(mssql.average_wait_time_raw) - prev(mssql.average_wait_time_raw)) / - (last(mssql.average_wait_time_base) - prev(mssql.average_wait_time_base) + - (last(mssql.average_wait_time_base) - prev(mssql.average_wait_time_base)=0)) + (last(//mssql.average_wait_time_raw) - last(//mssql.average_wait_time_raw,#2)) / + (last(//mssql.average_wait_time_base) - last(//mssql.average_wait_time_base,#2) + + (last(//mssql.average_wait_time_base) - last(//mssql.average_wait_time_base,#2)=0)) description: 'The average wait time, in milliseconds, for each lock request that had to wait.' tags: - @@ -237,7 +237,7 @@ zabbix_export: value: MSSQL triggers: - - expression: '{min(5m)}>{$MSSQL.AVERAGE_WAIT_TIME.MAX}' + expression: 'min(/MSSQL by ODBC/mssql.average_wait_time,5m)>{$MSSQL.AVERAGE_WAIT_TIME.MAX}' name: 'MSSQL: Total average wait time for locks is high (over {$MSSQL.AVERAGE_WAIT_TIME.MAX}ms for 5m)' priority: WARNING description: 'An average wait time longer than 500ms may indicate excessive blocking. This value should generally correlate to ''Lock Waits/sec'' and move up or down with it accordingly.' @@ -324,19 +324,19 @@ zabbix_export: value: MSSQL triggers: - - expression: '{max(5m)}<{$MSSQL.BUFFER_CACHE_RATIO.MIN.CRIT}' + expression: 'max(/MSSQL by ODBC/mssql.buffer_cache_hit_ratio,5m)<{$MSSQL.BUFFER_CACHE_RATIO.MIN.CRIT}' name: 'MSSQL: Percentage of the buffer cache efficiency is low (below {$MSSQL.BUFFER_CACHE_RATIO.MIN.CRIT}% for 5m)' priority: HIGH description: 'Too low buffer cache hit ratio.' - - expression: '{max(5m)}<{$MSSQL.BUFFER_CACHE_RATIO.MIN.WARN}' + expression: 'max(/MSSQL by ODBC/mssql.buffer_cache_hit_ratio,5m)<{$MSSQL.BUFFER_CACHE_RATIO.MIN.WARN}' name: 'MSSQL: Percentage of the buffer cache efficiency is low (below {$MSSQL.BUFFER_CACHE_RATIO.MIN.WARN}% for 5m)' priority: WARNING description: 'Low buffer cache hit ratio.' dependencies: - name: 'MSSQL: Percentage of the buffer cache efficiency is low (below {$MSSQL.BUFFER_CACHE_RATIO.MIN.CRIT}% for 5m)' - expression: '{MSSQL by ODBC:mssql.buffer_cache_hit_ratio.max(5m)}<{$MSSQL.BUFFER_CACHE_RATIO.MIN.CRIT}' + expression: 'max(/MSSQL by ODBC/mssql.buffer_cache_hit_ratio,5m)<{$MSSQL.BUFFER_CACHE_RATIO.MIN.CRIT}' - name: 'MSSQL: Cache hit ratio' type: DEPENDENT @@ -570,7 +570,7 @@ zabbix_export: value: MSSQL triggers: - - expression: '{min(5m)}>{$MSSQL.FREE_LIST_STALLS.MAX}' + expression: 'min(/MSSQL by ODBC/mssql.free_list_stalls_sec.rate,5m)>{$MSSQL.FREE_LIST_STALLS.MAX}' name: 'MSSQL: Number of rps waiting for a free page is high (over {$MSSQL.FREE_LIST_STALLS.MAX} for 5m)' priority: WARNING description: 'Some requests have to wait for a free page.' @@ -738,7 +738,7 @@ zabbix_export: value: MSSQL triggers: - - expression: '{min(5m)}>{$MSSQL.LAZY_WRITES.MAX}' + expression: 'min(/MSSQL by ODBC/mssql.lazy_writes_sec.rate,5m)>{$MSSQL.LAZY_WRITES.MAX}' name: 'MSSQL: Number of buffers written per second by the lazy writer is high (over {$MSSQL.LAZY_WRITES.MAX} for 5m)' priority: WARNING description: 'The number of buffers written per second by the buffer manager''s lazy writer exceeds the threshold.' @@ -768,7 +768,7 @@ zabbix_export: value: MSSQL triggers: - - expression: '{min(5m)}>{$MSSQL.LOCK_REQUESTS.MAX}' + expression: 'min(/MSSQL by ODBC/mssql.lock_requests_sec.rate,5m)>{$MSSQL.LOCK_REQUESTS.MAX}' name: 'MSSQL: Total number of locks per second is high (over {$MSSQL.LOCK_REQUESTS.MAX} for 5m)' priority: WARNING description: 'Number of new locks and lock conversions per second requested from the lock manager is high.' @@ -798,7 +798,7 @@ zabbix_export: value: MSSQL triggers: - - expression: '{min(5m)}>{$MSSQL.LOCK_TIMEOUTS.MAX}' + expression: 'min(/MSSQL by ODBC/mssql.lock_timeouts_sec.rate,5m)>{$MSSQL.LOCK_TIMEOUTS.MAX}' name: 'MSSQL: Total lock requests per second that timed out is high (over {$MSSQL.LOCK_TIMEOUTS.MAX} for 5m)' priority: WARNING description: 'The total number of timed out lock requests per second, including requests for NOWAIT locks, is high.' @@ -828,7 +828,7 @@ zabbix_export: value: MSSQL triggers: - - expression: '{min(5m)}>0' + expression: 'min(/MSSQL by ODBC/mssql.lock_waits_sec.rate,5m)>0' name: 'MSSQL: Some blocking is occurring for 5m' priority: AVERAGE description: 'Values greater than zero indicate at least some blocking is occurring, while a value of zero can quickly eliminate blocking as a potential root-cause problem.' @@ -1033,7 +1033,7 @@ zabbix_export: value: MSSQL triggers: - - expression: '{min(5m)}>{$MSSQL.DEADLOCKS.MAX}' + expression: 'min(/MSSQL by ODBC/mssql.number_deadlocks_sec.rate,5m)>{$MSSQL.DEADLOCKS.MAX}' name: 'MSSQL: Number of deadlock is high (over {$MSSQL.DEADLOCKS.MAX} for 5m)' priority: AVERAGE description: 'Too many deadlocks are occurring currently.' @@ -1082,7 +1082,7 @@ zabbix_export: value: MSSQL triggers: - - expression: '{max(15m)}<{$MSSQL.PAGE_LIFE_EXPECTANCY.MIN}' + expression: 'max(/MSSQL by ODBC/mssql.page_life_expectancy,15m)<{$MSSQL.PAGE_LIFE_EXPECTANCY.MIN}' name: 'MSSQL: Page life expectancy is low (less {$MSSQL.PAGE_LIFE_EXPECTANCY.MIN}min for 15m)' priority: HIGH description: 'The page stays in the buffer pool without references of less time than the threshold value.' @@ -1135,7 +1135,7 @@ zabbix_export: value: MSSQL triggers: - - expression: '{min(5m)}>{$MSSQL.PAGE_READS.MAX}' + expression: 'min(/MSSQL by ODBC/mssql.page_reads_sec.rate,5m)>{$MSSQL.PAGE_READS.MAX}' name: 'MSSQL: Number of physical database page reads per second is high (over {$MSSQL.PAGE_READS.MAX} for 5m)' priority: WARNING description: 'The physical database page reads are issued too frequently.' @@ -1187,7 +1187,7 @@ zabbix_export: value: MSSQL triggers: - - expression: '{min(5m)}>{$MSSQL.PAGE_WRITES.MAX}' + expression: 'min(/MSSQL by ODBC/mssql.page_writes_sec.rate,5m)>{$MSSQL.PAGE_WRITES.MAX}' name: 'MSSQL: Number of physical database page writes per second is high (over {$MSSQL.PAGE_WRITES.MAX} for 5m)' priority: WARNING description: 'The physical database page writes are issued too frequently.' @@ -1200,8 +1200,8 @@ zabbix_export: value_type: FLOAT units: '%' params: | - last(mssql.sql_compilations_sec.rate) * 100 / - (last(mssql.batch_requests_sec.rate) + (last(mssql.batch_requests_sec.rate)=0)) + last(//mssql.sql_compilations_sec.rate) * 100 / + (last(//mssql.batch_requests_sec.rate) + (last(//mssql.batch_requests_sec.rate)=0)) description: 'The ratio of SQL compilations per second to Batch requests per second in percentage.' tags: - @@ -1209,7 +1209,7 @@ zabbix_export: value: MSSQL triggers: - - expression: '{min(15m)} > {$MSSQL.PERCENT_COMPILATIONS.MAX}' + expression: 'min(/MSSQL by ODBC/mssql.percent_of_adhoc_queries,15m) > {$MSSQL.PERCENT_COMPILATIONS.MAX}' name: 'MSSQL: Percent of adhoc queries running is over {$MSSQL.PERCENT_COMPILATIONS.MAX}% for 15m' priority: WARNING description: 'The lower this value is the better. High values often indicate excessive adhoc querying and should be as low as possible. If excessive adhoc querying is happening, try rewriting the queries as procedures or invoke the queries using sp_executeSQL. When rewriting isn’t possible, consider using a plan guide or setting the database to parameterization forced mode.' @@ -1222,8 +1222,8 @@ zabbix_export: value_type: FLOAT units: '%' params: | - last(mssql.sql_recompilations_sec.rate) * 100 / - (last(mssql.sql_compilations_sec.rate) + (last(mssql.sql_compilations_sec.rate)=0)) + last(//mssql.sql_recompilations_sec.rate) * 100 / + (last(//mssql.sql_compilations_sec.rate) + (last(//mssql.sql_compilations_sec.rate)=0)) description: 'The ratio of SQL re-compilations per second to SQL compilations per second in percentage.' tags: - @@ -1231,7 +1231,7 @@ zabbix_export: value: MSSQL triggers: - - expression: '{min(15m)} > {$MSSQL.PERCENT_RECOMPILATIONS.MAX}' + expression: 'min(/MSSQL by ODBC/mssql.percent_recompilations_to_compilations,15m) > {$MSSQL.PERCENT_RECOMPILATIONS.MAX}' name: 'MSSQL: Percent of times statement recompiles is over {$MSSQL.PERCENT_RECOMPILATIONS.MAX}% for 15m' priority: WARNING description: 'This number should be at or near zero, since recompiles can cause deadlocks and exclusive compile locks. This counter’s value should follow in proportion to “Batch Requests/sec” and “SQL Compilations/sec”.' @@ -1306,7 +1306,7 @@ zabbix_export: delay: 0;m0-59s3 history: 7d value_type: FLOAT - params: 'last(mssql.full_scans_sec.rate) / (last(mssql.index_searches_sec.rate) + (last(mssql.index_searches_sec.rate)=0))' + params: 'last(//mssql.full_scans_sec.rate) / (last(//mssql.index_searches_sec.rate) + (last(//mssql.index_searches_sec.rate)=0))' description: 'The ratio of Full scans per second to Index searches per second. The threshold recommendation is strictly for OLTP workloads.' tags: - @@ -1314,7 +1314,7 @@ zabbix_export: value: MSSQL triggers: - - expression: '{min(15m)} > 0.001' + expression: 'min(/MSSQL by ODBC/mssql.scan_to_search,15m) > 0.001' name: 'MSSQL: Index and table scans are often than index searches for 15m' priority: WARNING description: 'Index searches are preferable to index and table scans. For OLTP applications, optimize for more index searches and less scans (preferably, 1 full scan for every 1000 index searches). Index and table scans are expensive I/O operations.' @@ -1561,16 +1561,16 @@ zabbix_export: value: MSSQL triggers: - - expression: '{nodata(30m)}=1' + expression: 'nodata(/MSSQL by ODBC/mssql.uptime,30m)=1' name: 'MSSQL: Failed to fetch info data (or no data for 30m)' priority: INFO description: 'Zabbix has not received data for items for the last 30 minutes.' dependencies: - name: 'MSSQL: Service is unavailable' - expression: '{MSSQL by ODBC:net.tcp.service[tcp,{HOST.CONN},{$MSSQL.PORT}].last()}=0' + expression: 'last(/MSSQL by ODBC/net.tcp.service[tcp,{HOST.CONN},{$MSSQL.PORT}])=0' - - expression: '{last()}<10m' + expression: 'last(/MSSQL by ODBC/mssql.uptime)<10m' name: 'MSSQL: has been restarted (uptime < 10m)' priority: INFO description: 'Uptime is less than 10 minutes' @@ -1642,7 +1642,7 @@ zabbix_export: value: MSSQL triggers: - - expression: '{diff()}=1 and {strlen()}>0' + expression: '(last(/MSSQL by ODBC/mssql.version,#1)<>last(/MSSQL by ODBC/mssql.version,#2))=1 and length(last(/MSSQL by ODBC/mssql.version))>0' name: 'MSSQL: Version has changed (new version value received: {ITEM.VALUE})' priority: INFO description: 'MSSQL version has changed. Ack to close.' @@ -1672,7 +1672,7 @@ zabbix_export: value: MSSQL triggers: - - expression: '{min(5m)}>{$MSSQL.WORK_FILES.MAX}' + expression: 'min(/MSSQL by ODBC/mssql.workfiles_created_sec.rate,5m)>{$MSSQL.WORK_FILES.MAX}' name: 'MSSQL: Number of work files created per second is high (over {$MSSQL.WORK_FILES.MAX} for 5m)' priority: AVERAGE description: 'Too many work files created per second to store temporary results for hash joins and hash aggregates.' @@ -1701,7 +1701,7 @@ zabbix_export: value: MSSQL triggers: - - expression: '{min(5m)}>{$MSSQL.WORK_TABLES.MAX}' + expression: 'min(/MSSQL by ODBC/mssql.worktables_created_sec.rate,5m)>{$MSSQL.WORK_TABLES.MAX}' name: 'MSSQL: Number of work tables created per second is high (over {$MSSQL.WORK_TABLES.MAX} for 5m)' priority: AVERAGE description: 'Too many work tables created per second to store temporary results for query spool, lob variables, XML variables, and cursors.' @@ -1727,7 +1727,7 @@ zabbix_export: value: MSSQL triggers: - - expression: '{max(5m)}<{$MSSQL.WORKTABLES_FROM_CACHE_RATIO.MIN.CRIT}' + expression: 'max(/MSSQL by ODBC/mssql.worktables_from_cache_ratio,5m)<{$MSSQL.WORKTABLES_FROM_CACHE_RATIO.MIN.CRIT}' name: 'MSSQL: Percentage of work tables available from the work table cache is low (below {$MSSQL.WORKTABLES_FROM_CACHE_RATIO.MIN.CRIT}% for 5m)' priority: HIGH description: 'A value less than 90% may indicate insufcient memory, since execution plans are being dropped, or on 32-bit systems, may indicate the need for an upgrade to a 64-bit system' @@ -1751,7 +1751,7 @@ zabbix_export: value: MSSQL triggers: - - expression: '{last()}=0' + expression: 'last(/MSSQL by ODBC/net.tcp.service[tcp,{HOST.CONN},{$MSSQL.PORT}])=0' name: 'MSSQL: Service is unavailable' priority: DISASTER description: 'The TCP port of the MS SQL Server service is currently unavailable.' @@ -1819,7 +1819,7 @@ zabbix_export: value: 'MSSQL Availability Group ''{#GROUP_NAME}''' trigger_prototypes: - - expression: '{last()}=0' + expression: 'last(/MSSQL by ODBC/mssql.primary_recovery_health["{#GROUP_NAME}"])=0' name: 'MSSQL AG ''{#GROUP_NAME}'': Primary replica recovery health in progress' priority: WARNING description: 'The primary replica is in the synchronization process.' @@ -1877,7 +1877,7 @@ zabbix_export: value: 'MSSQL Availability Group ''{#GROUP_NAME}''' trigger_prototypes: - - expression: '{last()}=0' + expression: 'last(/MSSQL by ODBC/mssql.secondary_recovery_health["{#GROUP_NAME}"])=0' name: 'MSSQL AG ''{#GROUP_NAME}'': Secondary replica recovery health in progress' priority: WARNING description: 'The secondary replica is in the synchronization process.' @@ -1911,12 +1911,12 @@ zabbix_export: value: 'MSSQL Availability Group ''{#GROUP_NAME}''' trigger_prototypes: - - expression: '{last()}=0' + expression: 'last(/MSSQL by ODBC/mssql.synchronization_health["{#GROUP_NAME}"])=0' name: 'MSSQL AG ''{#GROUP_NAME}'': All replicas unhealthy' priority: DISASTER description: 'None of the availability replicas have a healthy synchronization.' - - expression: '{last()}=1' + expression: 'last(/MSSQL by ODBC/mssql.synchronization_health["{#GROUP_NAME}"])=1' name: 'MSSQL AG ''{#GROUP_NAME}'': Some replicas unhealthy' priority: HIGH description: 'The synchronization health of some, but not all, availability replicas is healthy.' @@ -1993,14 +1993,14 @@ zabbix_export: value: 'MSSQL Database ''{#DBNAME}''' trigger_prototypes: - - expression: '{last()}>{$MSSQL.BACKUP_DIFF.CRIT:"{#DBNAME}"}' + expression: 'last(/MSSQL by ODBC/mssql.backup.diff["{#DBNAME}"])>{$MSSQL.BACKUP_DIFF.CRIT:"{#DBNAME}"}' name: 'MSSQL DB ''{#DBNAME}'': Diff backup older than {$MSSQL.BACKUP_DIFF.CRIT:"{#DBNAME}"}' opdata: 'Time since last backup: {ITEM.LASTVALUE1}' priority: HIGH description: 'The differential backup has not been executed for a long time.' manual_close: 'YES' - - expression: '{last()}>{$MSSQL.BACKUP_DIFF.WARN:"{#DBNAME}"}' + expression: 'last(/MSSQL by ODBC/mssql.backup.diff["{#DBNAME}"])>{$MSSQL.BACKUP_DIFF.WARN:"{#DBNAME}"}' name: 'MSSQL DB ''{#DBNAME}'': Diff backup older than {$MSSQL.BACKUP_DIFF.WARN:"{#DBNAME}"}' opdata: 'Time since last backup: {ITEM.LASTVALUE1}' priority: WARNING @@ -2009,7 +2009,7 @@ zabbix_export: dependencies: - name: 'MSSQL DB ''{#DBNAME}'': Diff backup older than {$MSSQL.BACKUP_DIFF.CRIT:"{#DBNAME}"}' - expression: '{MSSQL by ODBC:mssql.backup.diff["{#DBNAME}"].last()}>{$MSSQL.BACKUP_DIFF.CRIT:"{#DBNAME}"}' + expression: 'last(/MSSQL by ODBC/mssql.backup.diff["{#DBNAME}"])>{$MSSQL.BACKUP_DIFF.CRIT:"{#DBNAME}"}' - name: 'MSSQL DB ''{#DBNAME}'': Last full backup duration' type: DEPENDENT @@ -2054,14 +2054,14 @@ zabbix_export: value: 'MSSQL Database ''{#DBNAME}''' trigger_prototypes: - - expression: '{last()}>{$MSSQL.BACKUP_FULL.CRIT:"{#DBNAME}"}' + expression: 'last(/MSSQL by ODBC/mssql.backup.full["{#DBNAME}"])>{$MSSQL.BACKUP_FULL.CRIT:"{#DBNAME}"}' name: 'MSSQL DB ''{#DBNAME}'': Full backup older than {$MSSQL.BACKUP_FULL.CRIT:"{#DBNAME}"}' opdata: 'Time since last backup: {ITEM.LASTVALUE1}' priority: HIGH description: 'The full backup has not been executed for a long time.' manual_close: 'YES' - - expression: '{last()}>{$MSSQL.BACKUP_FULL.WARN:"{#DBNAME}"}' + expression: 'last(/MSSQL by ODBC/mssql.backup.full["{#DBNAME}"])>{$MSSQL.BACKUP_FULL.WARN:"{#DBNAME}"}' name: 'MSSQL DB ''{#DBNAME}'': Full backup older than {$MSSQL.BACKUP_FULL.WARN:"{#DBNAME}"}' opdata: 'Time since last backup: {ITEM.LASTVALUE1}' priority: WARNING @@ -2070,7 +2070,7 @@ zabbix_export: dependencies: - name: 'MSSQL DB ''{#DBNAME}'': Full backup older than {$MSSQL.BACKUP_FULL.CRIT:"{#DBNAME}"}' - expression: '{MSSQL by ODBC:mssql.backup.full["{#DBNAME}"].last()}>{$MSSQL.BACKUP_FULL.CRIT:"{#DBNAME}"}' + expression: 'last(/MSSQL by ODBC/mssql.backup.full["{#DBNAME}"])>{$MSSQL.BACKUP_FULL.CRIT:"{#DBNAME}"}' - name: 'MSSQL DB ''{#DBNAME}'': Last log backup duration' type: DEPENDENT @@ -2115,14 +2115,14 @@ zabbix_export: value: 'MSSQL Database ''{#DBNAME}''' trigger_prototypes: - - expression: '{last()}>{$MSSQL.BACKUP_LOG.CRIT:"{#DBNAME}"}' + expression: 'last(/MSSQL by ODBC/mssql.backup.log["{#DBNAME}"])>{$MSSQL.BACKUP_LOG.CRIT:"{#DBNAME}"}' name: 'MSSQL DB ''{#DBNAME}'': Log backup older than {$MSSQL.BACKUP_LOG.CRIT:"{#DBNAME}"}' opdata: 'Time since last backup: {ITEM.LASTVALUE1}' priority: HIGH description: 'The log backup has not been executed for a long time.' manual_close: 'YES' - - expression: '{last()}>{$MSSQL.BACKUP_LOG.WARN:"{#DBNAME}"}' + expression: 'last(/MSSQL by ODBC/mssql.backup.log["{#DBNAME}"])>{$MSSQL.BACKUP_LOG.WARN:"{#DBNAME}"}' name: 'MSSQL DB ''{#DBNAME}'': Log backup older than {$MSSQL.BACKUP_LOG.WARN:"{#DBNAME}"}' opdata: 'Time since last backup: {ITEM.LASTVALUE1}' priority: WARNING @@ -2131,7 +2131,7 @@ zabbix_export: dependencies: - name: 'MSSQL DB ''{#DBNAME}'': Log backup older than {$MSSQL.BACKUP_LOG.CRIT:"{#DBNAME}"}' - expression: '{MSSQL by ODBC:mssql.backup.log["{#DBNAME}"].last()}>{$MSSQL.BACKUP_LOG.CRIT:"{#DBNAME}"}' + expression: 'last(/MSSQL by ODBC/mssql.backup.log["{#DBNAME}"])>{$MSSQL.BACKUP_LOG.CRIT:"{#DBNAME}"}' - name: 'MSSQL DB ''{#DBNAME}'': Active transactions' type: DEPENDENT @@ -2291,7 +2291,7 @@ zabbix_export: value: 'MSSQL Database ''{#DBNAME}''' trigger_prototypes: - - expression: '{min(5m)}>{$MSSQL.LOG_FLUSH_WAITS.MAX:"{#DBNAME}"}' + expression: 'min(/MSSQL by ODBC/mssql.db.log_flush_waits_sec.rate["{#DBNAME}"],5m)>{$MSSQL.LOG_FLUSH_WAITS.MAX:"{#DBNAME}"}' name: 'MSSQL DB ''{#DBNAME}'': Number of commits waiting for the log flush is high (over {$MSSQL.LOG_FLUSH_WAITS.MAX:"{#DBNAME}"}/sec for 5m)' priority: WARNING description: 'Too many commits are waiting for the log flush.' @@ -2321,7 +2321,7 @@ zabbix_export: value: 'MSSQL Database ''{#DBNAME}''' trigger_prototypes: - - expression: '{min(5m)}>{$MSSQL.LOG_FLUSH_WAIT_TIME.MAX:"{#DBNAME}"}' + expression: 'min(/MSSQL by ODBC/mssql.db.log_flush_wait_time["{#DBNAME}"],5m)>{$MSSQL.LOG_FLUSH_WAIT_TIME.MAX:"{#DBNAME}"}' name: 'MSSQL DB ''{#DBNAME}'': Total wait time to flush the log is high (over {$MSSQL.LOG_FLUSH_WAIT_TIME.MAX:"{#DBNAME}"}ms for 5m)' priority: WARNING description: 'The wait time to flush the log is too long.' @@ -2401,7 +2401,7 @@ zabbix_export: value: 'MSSQL Database ''{#DBNAME}''' trigger_prototypes: - - expression: '{min(5m)}>{$MSSQL.PERCENT_LOG_USED.MAX:"{#DBNAME}"}' + expression: 'min(/MSSQL by ODBC/mssql.db.percent_log_used["{#DBNAME}"],5m)>{$MSSQL.PERCENT_LOG_USED.MAX:"{#DBNAME}"}' name: 'MSSQL DB ''{#DBNAME}'': Percent of log using is high (over {$MSSQL.PERCENT_LOG_USED.MAX:"{#DBNAME}"}% for 5m)' priority: WARNING description: 'There''s not enough space left in the log.' @@ -2440,7 +2440,7 @@ zabbix_export: value: 'MSSQL Database ''{#DBNAME}''' trigger_prototypes: - - expression: '{last()}>1' + expression: 'last(/MSSQL by ODBC/mssql.db.state["{#DBNAME}"])>1' name: 'MSSQL DB ''{#DBNAME}'': State is {ITEM.VALUE}' priority: HIGH description: 'The DB has a non-working state.' @@ -2644,7 +2644,7 @@ zabbix_export: value: 'MSSQL Job ''{#JOBNAME}''' trigger_prototypes: - - expression: '{last()}=0' + expression: 'last(/MSSQL by ODBC/mssql.job.runstatus["{#JOBNAME}"])=0' name: 'MSSQL Job ''{#JOBNAME}'': Failed to run' priority: WARNING description: 'The last run of the job has failed.' @@ -2675,7 +2675,7 @@ zabbix_export: value: 'MSSQL Job ''{#JOBNAME}''' trigger_prototypes: - - expression: '{last()}>{$MSSQL.BACKUP_DURATION.WARN:"{#JOBNAME}"}' + expression: 'last(/MSSQL by ODBC/mssql.job.run_duration["{#JOBNAME}"])>{$MSSQL.BACKUP_DURATION.WARN:"{#JOBNAME}"}' name: 'MSSQL Job ''{#JOBNAME}'': Job duration is greater than {$MSSQL.BACKUP_DURATION.WARN:"{#JOBNAME}"}' opdata: 'Job duration: {ITEM.LASTVALUE1}' priority: WARNING @@ -2786,7 +2786,7 @@ zabbix_export: value: 'MSSQL Available Group ''{#GROUP_NAME}'' Local DB ''{#DBNAME}''' trigger_prototypes: - - expression: '{last()}>0' + expression: 'last(/MSSQL by ODBC/mssql.local_db.state["{#DBNAME}"])>0' name: 'MSSQL AG ''{#GROUP_NAME}'' Local DB ''{#DBNAME}'': "{#DBNAME}" is {ITEM.VALUE}' priority: WARNING description: 'The local availability database has a non-working state.' @@ -2821,12 +2821,12 @@ zabbix_export: value: 'MSSQL Available Group ''{#GROUP_NAME}'' Local DB ''{#DBNAME}''' trigger_prototypes: - - expression: '{last()}=0' + expression: 'last(/MSSQL by ODBC/mssql.local_db.synchronization_health["{#DBNAME}"])=0' name: 'MSSQL AG ''{#GROUP_NAME}'' Local DB ''{#DBNAME}'': "{#DBNAME}" is Not healthy' priority: HIGH description: 'The synchronization state of the local availability database is NOT SYNCHRONIZING.' - - expression: '{last()}=1' + expression: 'last(/MSSQL by ODBC/mssql.local_db.synchronization_health["{#DBNAME}"])=1' name: 'MSSQL AG ''{#GROUP_NAME}'' Local DB ''{#DBNAME}'': "{#DBNAME}" is Partially healthy' priority: AVERAGE description: 'A database on a synchronous-commit availability replica is considered partially healthy if synchronization state is SYNCHRONIZING.' @@ -2987,17 +2987,17 @@ zabbix_export: value: 'MSSQL Mirroring ''{#DBNAME}''' trigger_prototypes: - - expression: '{last()}=3' + expression: 'last(/MSSQL by ODBC/mssql.mirroring.state["{#DBNAME}"])=3' name: 'MSSQL Mirroring ''{#DBNAME}'': "{#DBNAME}" is {ITEM.VALUE}' priority: WARNING description: 'The state of the mirror database and of the database mirroring session is "Pending Failover".' - - expression: '{last()}=5' + expression: 'last(/MSSQL by ODBC/mssql.mirroring.state["{#DBNAME}"])=5' name: 'MSSQL Mirroring ''{#DBNAME}'': "{#DBNAME}" is {ITEM.VALUE}' priority: HIGH description: 'The state of the mirror database and of the database mirroring session is "Not synchronized". The partners are not synchronized. A failover is not possible now.' - - expression: '{last()}>=0 and {last()}<=2' + expression: 'last(/MSSQL by ODBC/mssql.mirroring.state["{#DBNAME}"])>=0 and last(/MSSQL by ODBC/mssql.mirroring.state["{#DBNAME}"])<=2' name: 'MSSQL Mirroring ''{#DBNAME}'': "{#DBNAME}" is {ITEM.VALUE}' priority: INFO description: 'The state of the mirror database and of the database mirroring session is "Suspended", "Disconnected from the other partner", or "Synchronizing".' @@ -3031,7 +3031,7 @@ zabbix_export: value: 'MSSQL Mirroring ''{#DBNAME}''' trigger_prototypes: - - expression: '{last()}=2' + expression: 'last(/MSSQL by ODBC/mssql.mirroring.witness_state["{#DBNAME}"])=2' name: 'MSSQL Mirroring ''{#DBNAME}'': "{#DBNAME}" Witness is disconnected' priority: WARNING description: 'The state of the witness in the database mirroring session of the database is "Disconnected".' @@ -3125,7 +3125,7 @@ zabbix_export: value: 'MSSQL Available Group ''{#GROUP_NAME}'' Non-Local DB ''{#DBNAME}''' trigger_prototypes: - - expression: '{last(#1)}>{last(#2)} and {last(#2)}>{last(#3)}' + expression: 'last(/MSSQL by ODBC/mssql.non-local_db.log_send_queue_size["{#GROUP_NAME}*{#REPLICA_NAME}*{#DBNAME}"],#1)>last(/MSSQL by ODBC/mssql.non-local_db.log_send_queue_size["{#GROUP_NAME}*{#REPLICA_NAME}*{#DBNAME}"],#2) and last(/MSSQL by ODBC/mssql.non-local_db.log_send_queue_size["{#GROUP_NAME}*{#REPLICA_NAME}*{#DBNAME}"],#2)>last(/MSSQL by ODBC/mssql.non-local_db.log_send_queue_size["{#GROUP_NAME}*{#REPLICA_NAME}*{#DBNAME}"],#3)' name: 'MSSQL AG ''{#GROUP_NAME}'' Non-Local DB ''*{#REPLICA_NAME}*{#DBNAME}'': Log queue size is growing' priority: HIGH description: 'The log records of the primary database are not sent to the secondary databases.' @@ -3158,7 +3158,7 @@ zabbix_export: value: 'MSSQL Available Group ''{#GROUP_NAME}'' Non-Local DB ''{#DBNAME}''' trigger_prototypes: - - expression: '{last(#1)}>{last(#2)} and {last(#2)}>{last(#3)}' + expression: 'last(/MSSQL by ODBC/mssql.non-local_db.redo_queue_size["{#GROUP_NAME}*{#REPLICA_NAME}*{#DBNAME}"],#1)>last(/MSSQL by ODBC/mssql.non-local_db.redo_queue_size["{#GROUP_NAME}*{#REPLICA_NAME}*{#DBNAME}"],#2) and last(/MSSQL by ODBC/mssql.non-local_db.redo_queue_size["{#GROUP_NAME}*{#REPLICA_NAME}*{#DBNAME}"],#2)>last(/MSSQL by ODBC/mssql.non-local_db.redo_queue_size["{#GROUP_NAME}*{#REPLICA_NAME}*{#DBNAME}"],#3)' name: 'MSSQL AG ''{#GROUP_NAME}'' Non-Local DB ''*{#REPLICA_NAME}*{#DBNAME}'': Redo log queue size is growing' priority: HIGH description: 'The log records in the log files of the secondary replica have not yet been redone.' @@ -3327,17 +3327,17 @@ zabbix_export: value: 'MSSQL Available Group ''{#GROUP_NAME}'' Replica ''{#REPLICA_NAME}''' trigger_prototypes: - - expression: '{last()}=0 or {last()}=1 or {last()}=3' + expression: 'last(/MSSQL by ODBC/mssql.replica.operational_state["{#GROUP_NAME}_{#REPLICA_NAME}"])=0 or last(/MSSQL by ODBC/mssql.replica.operational_state["{#GROUP_NAME}_{#REPLICA_NAME}"])=1 or last(/MSSQL by ODBC/mssql.replica.operational_state["{#GROUP_NAME}_{#REPLICA_NAME}"])=3' name: 'MSSQL AG ''{#GROUP_NAME}'' Replica ''{#REPLICA_NAME}'': {#REPLICA_NAME} is {ITEM.VALUE}' priority: WARNING description: 'The operational state of the replica in a given availability group is "Pending" or "Offline".' - - expression: '{last()}=4' + expression: 'last(/MSSQL by ODBC/mssql.replica.operational_state["{#GROUP_NAME}_{#REPLICA_NAME}"])=4' name: 'MSSQL AG ''{#GROUP_NAME}'' Replica ''{#REPLICA_NAME}'': {#REPLICA_NAME} is {ITEM.VALUE}' priority: AVERAGE description: 'The operational state of the replica in a given availability group is "Failed".' - - expression: '{last()}=5' + expression: 'last(/MSSQL by ODBC/mssql.replica.operational_state["{#GROUP_NAME}_{#REPLICA_NAME}"])=5' name: 'MSSQL AG ''{#GROUP_NAME}'' Replica ''{#REPLICA_NAME}'': {#REPLICA_NAME} is {ITEM.VALUE}' priority: HIGH description: 'The operational state of the replica in a given availability group is "Failed, no quorum".' @@ -3371,7 +3371,7 @@ zabbix_export: value: 'MSSQL Available Group ''{#GROUP_NAME}'' Replica ''{#REPLICA_NAME}''' trigger_prototypes: - - expression: '{last()}=0' + expression: 'last(/MSSQL by ODBC/mssql.replica.recovery_health["{#GROUP_NAME}_{#REPLICA_NAME}"])=0' name: 'MSSQL AG ''{#GROUP_NAME}'' Replica ''{#REPLICA_NAME}'': {#REPLICA_NAME} Recovery in progress' priority: INFO description: 'At least one joined database has a database state other than ONLINE.' @@ -3433,18 +3433,18 @@ zabbix_export: value: 'MSSQL Available Group ''{#GROUP_NAME}'' Replica ''{#REPLICA_NAME}''' trigger_prototypes: - - expression: '{last()}=0' + expression: 'last(/MSSQL by ODBC/mssql.replica.synchronization_health["{#GROUP_NAME}_{#REPLICA_NAME}"])=0' name: 'MSSQL AG ''{#GROUP_NAME}'' Replica ''{#REPLICA_NAME}'': {#REPLICA_NAME} is Not healthy' priority: AVERAGE description: 'At least one joined database is in the NOT SYNCHRONIZING state.' - - expression: '{last()}=1' + expression: 'last(/MSSQL by ODBC/mssql.replica.synchronization_health["{#GROUP_NAME}_{#REPLICA_NAME}"])=1' name: 'MSSQL AG ''{#GROUP_NAME}'' Replica ''{#REPLICA_NAME}'': {#REPLICA_NAME} is Partially healthy' priority: WARNING description: 'Some replicas are not in the target synchronization state: synchronous-commit replicas should be synchronized, and asynchronous-commit replicas should be synchronizing.' trigger_prototypes: - - expression: '{MSSQL by ODBC:mssql.replica.connected_state["{#GROUP_NAME}_{#REPLICA_NAME}"].last()}=0 and {MSSQL by ODBC:mssql.replica.role["{#GROUP_NAME}_{#REPLICA_NAME}"].last()}=2' + expression: 'last(/MSSQL by ODBC/mssql.replica.connected_state["{#GROUP_NAME}_{#REPLICA_NAME}"])=0 and last(/MSSQL by ODBC/mssql.replica.role["{#GROUP_NAME}_{#REPLICA_NAME}"])=2' name: 'MSSQL AG ''{#GROUP_NAME}'' Replica ''{#REPLICA_NAME}'': {#REPLICA_NAME} is disconnected' priority: WARNING description: | @@ -3822,12 +3822,12 @@ zabbix_export: newvalue: Up triggers: - - expression: '{MSSQL by ODBC:mssql.forwarded_records_sec.rate.last()} * 100 > 10 * {MSSQL by ODBC:mssql.batch_requests_sec.rate.last()}' + expression: 'last(/MSSQL by ODBC/mssql.forwarded_records_sec.rate) * 100 > 10 * last(/MSSQL by ODBC/mssql.batch_requests_sec.rate)' name: 'MSSQL: Too frequently pointers using' priority: WARNING description: 'Rows with varchar columns can experience expansion when varchar values are updated with a longer string. In the case where the row cannot fit in the existing page, the row migrates and access to the row will traverse a pointer. This only happens on heaps (tables without clustered indexes). Evaluate clustered index for heap tables. In cases where clustered indexes cannot be used, drop non-clustered indexes, build a clustered index to reorg pages and rows, drop the clustered index, then recreate non-clustered indexes.' - - expression: '{MSSQL by ODBC:mssql.readahead_pages_sec.rate.last()} > {$MSSQL.PERCENT_READAHEAD.MAX} / 100 * {MSSQL by ODBC:mssql.page_reads_sec.rate.last()}' + expression: 'last(/MSSQL by ODBC/mssql.readahead_pages_sec.rate) > {$MSSQL.PERCENT_READAHEAD.MAX} / 100 * last(/MSSQL by ODBC/mssql.page_reads_sec.rate)' name: 'MSSQL: Too many physical reads occurring' priority: WARNING description: 'If this value makes up even a sizeable minority of the total Page Reads/sec (say, greater than 20% of the total page reads), you may have too many physical reads occurring.' diff --git a/templates/db/mysql_agent/template_db_mysql_agent.yaml b/templates/db/mysql_agent/template_db_mysql_agent.yaml index dbef1962a02..656796de895 100644 --- a/templates/db/mysql_agent/template_db_mysql_agent.yaml +++ b/templates/db/mysql_agent/template_db_mysql_agent.yaml @@ -1,6 +1,6 @@ zabbix_export: version: '5.4' - date: '2021-04-23T13:38:51Z' + date: '2021-05-09T00:00:00Z' groups: - name: Templates/Databases @@ -77,14 +77,14 @@ zabbix_export: value: MySQL triggers: - - expression: '{min(5m)}>{$MYSQL.ABORTED_CONN.MAX.WARN}' + expression: 'min(/MySQL by Zabbix agent/mysql.aborted_connects.rate,5m)>{$MYSQL.ABORTED_CONN.MAX.WARN}' name: 'MySQL: Server has aborted connections (over {$MYSQL.ABORTED_CONN.MAX.WARN} for 5m)' priority: AVERAGE description: 'The number of failed attempts to connect to the MySQL server is more than {$MYSQL.ABORTED_CONN.MAX.WARN} in the last 5 minutes.' dependencies: - name: 'MySQL: Refused connections (max_connections limit reached)' - expression: '{MySQL by Zabbix agent:mysql.connection_errors_max_connections.rate.last()}>0' + expression: 'last(/MySQL by Zabbix agent/mysql.connection_errors_max_connections.rate)>0' - name: 'MySQL: Binlog cache disk use' type: DEPENDENT @@ -116,10 +116,10 @@ zabbix_export: value_type: FLOAT units: '%' params: | - last(mysql.innodb_buffer_pool_reads) / - ( last(mysql.innodb_buffer_pool_read_requests) + - ( last(mysql.innodb_buffer_pool_read_requests) = 0 ) ) * 100 * - ( last(mysql.innodb_buffer_pool_read_requests) > 0 ) + last(//mysql.innodb_buffer_pool_reads) / + ( last(//mysql.innodb_buffer_pool_read_requests) + + ( last(//mysql.innodb_buffer_pool_read_requests) = 0 ) ) * 100 * + ( last(//mysql.innodb_buffer_pool_read_requests) > 0 ) description: 'The item shows how effectively the buffer pool is serving reads.' tags: - @@ -133,11 +133,11 @@ zabbix_export: value_type: FLOAT units: '%' params: | - ( last(mysql.innodb_buffer_pool_pages_total) - - last(mysql.innodb_buffer_pool_pages_free) ) / - ( last(mysql.innodb_buffer_pool_pages_total) + - ( last(mysql.innodb_buffer_pool_pages_total) = 0 ) ) * 100 * - ( last(mysql.innodb_buffer_pool_pages_total) > 0 ) + ( last(//mysql.innodb_buffer_pool_pages_total) - + last(//mysql.innodb_buffer_pool_pages_free) ) / + ( last(//mysql.innodb_buffer_pool_pages_total) + + ( last(//mysql.innodb_buffer_pool_pages_total) = 0 ) ) * 100 * + ( last(//mysql.innodb_buffer_pool_pages_total) > 0 ) description: 'Ratio of used to total pages in the buffer pool.' tags: - @@ -145,7 +145,7 @@ zabbix_export: value: MySQL triggers: - - expression: '{max(5m)}<{$MYSQL.BUFF_UTIL.MIN.WARN}' + expression: 'max(/MySQL by Zabbix agent/mysql.buffer_pool_utilization,5m)<{$MYSQL.BUFF_UTIL.MIN.WARN}' name: 'MySQL: Buffer pool utilization is too low (less than {$MYSQL.BUFF_UTIL.MIN.WARN}% for 5m)' priority: WARNING description: 'The buffer pool utilization is less than {$MYSQL.BUFF_UTIL.MIN.WARN}% in the last 5 minutes. This means that there is a lot of unused RAM allocated for the buffer pool, which you can easily reallocate at the moment.' @@ -383,7 +383,7 @@ zabbix_export: value: MySQL triggers: - - expression: '{last()}>0' + expression: 'last(/MySQL by Zabbix agent/mysql.connection_errors_max_connections.rate)>0' name: 'MySQL: Refused connections (max_connections limit reached)' priority: AVERAGE description: 'Number of refused connections due to the max_connections limit being reached.' @@ -481,7 +481,7 @@ zabbix_export: value: MySQL triggers: - - expression: '{min(5m)}>{$MYSQL.CREATED_TMP_DISK_TABLES.MAX.WARN}' + expression: 'min(/MySQL by Zabbix agent/mysql.created_tmp_disk_tables.rate,5m)>{$MYSQL.CREATED_TMP_DISK_TABLES.MAX.WARN}' name: 'MySQL: Number of on-disk temporary tables created per second is high (over {$MYSQL.CREATED_TMP_DISK_TABLES.MAX.WARN} for 5m)' priority: WARNING description: 'Possibly the application using the database is in need of query optimization.' @@ -510,7 +510,7 @@ zabbix_export: value: MySQL triggers: - - expression: '{min(5m)}>{$MYSQL.CREATED_TMP_FILES.MAX.WARN}' + expression: 'min(/MySQL by Zabbix agent/mysql.created_tmp_files.rate,5m)>{$MYSQL.CREATED_TMP_FILES.MAX.WARN}' name: 'MySQL: Number of temporary files created per second is high (over {$MYSQL.CREATED_TMP_FILES.MAX.WARN} for 5m)' priority: WARNING description: 'Possibly the application using the database is in need of query optimization.' @@ -539,7 +539,7 @@ zabbix_export: value: MySQL triggers: - - expression: '{min(5m)}>{$MYSQL.CREATED_TMP_TABLES.MAX.WARN}' + expression: 'min(/MySQL by Zabbix agent/mysql.created_tmp_tables.rate,5m)>{$MYSQL.CREATED_TMP_TABLES.MAX.WARN}' name: 'MySQL: Number of internal temporary tables created per second is high (over {$MYSQL.CREATED_TMP_TABLES.MAX.WARN} for 5m)' priority: WARNING description: 'Possibly the application using the database is in need of query optimization.' @@ -705,7 +705,7 @@ zabbix_export: key: mysql.innodb_log_file_size history: 7d value_type: FLOAT - params: '(last(mysql.innodb_os_log_written) - last(mysql.innodb_os_log_written,1h)) / {$MYSQL.INNODB_LOG_FILES}' + params: '(last(//mysql.innodb_os_log_written) - last(//mysql.innodb_os_log_written)) / {$MYSQL.INNODB_LOG_FILES}' description: 'Calculated by (innodb_os_log_written-innodb_os_log_written(time shift -1h))/{$MYSQL.INNODB_LOG_FILES} value of the innodb_log_file_size. Innodb_log_file_size is the size in bytes of the each InnoDB redo log file in the log group. The combined size can be no more than 512GB. Larger values mean less disk I/O due to less flushing checkpoint activity, but also slower recovery from a crash.' preprocessing: - @@ -922,7 +922,7 @@ zabbix_export: value: MySQL triggers: - - expression: '{last()}=0' + expression: 'last(/MySQL by Zabbix agent/mysql.ping["{$MYSQL.HOST}","{$MYSQL.PORT}"])=0' name: 'MySQL: Service is down' priority: HIGH - @@ -996,7 +996,7 @@ zabbix_export: value: MySQL triggers: - - expression: '{min(5m)}>{$MYSQL.SLOW_QUERIES.MAX.WARN}' + expression: 'min(/MySQL by Zabbix agent/mysql.slow_queries.rate,5m)>{$MYSQL.SLOW_QUERIES.MAX.WARN}' name: 'MySQL: Server has slow queries (over {$MYSQL.SLOW_QUERIES.MAX.WARN} for 5m)' priority: WARNING description: 'The number of slow queries is more than {$MYSQL.SLOW_QUERIES.MAX.WARN} in the last 5 minutes.' @@ -1098,16 +1098,16 @@ zabbix_export: value: MySQL triggers: - - expression: '{nodata(30m)}=1' + expression: 'nodata(/MySQL by Zabbix agent/mysql.uptime,30m)=1' name: 'MySQL: Failed to fetch info data (or no data for 30m)' priority: INFO description: 'Zabbix has not received data for items for the last 30 minutes.' dependencies: - name: 'MySQL: Service is down' - expression: '{MySQL by Zabbix agent:mysql.ping["{$MYSQL.HOST}","{$MYSQL.PORT}"].last()}=0' + expression: 'last(/MySQL by Zabbix agent/mysql.ping["{$MYSQL.HOST}","{$MYSQL.PORT}"])=0' - - expression: '{last()}<10m' + expression: 'last(/MySQL by Zabbix agent/mysql.uptime)<10m' name: 'MySQL: Service has been restarted (uptime < 10m)' priority: INFO description: 'MySQL uptime is less than 10 minutes.' @@ -1134,7 +1134,7 @@ zabbix_export: value: MySQL triggers: - - expression: '{diff()}=1 and {strlen()}>0' + expression: '(last(/MySQL by Zabbix agent/mysql.version["{$MYSQL.HOST}","{$MYSQL.PORT}"],#1)<>last(/MySQL by Zabbix agent/mysql.version["{$MYSQL.HOST}","{$MYSQL.PORT}"],#2))=1 and length(last(/MySQL by Zabbix agent/mysql.version["{$MYSQL.HOST}","{$MYSQL.PORT}"]))>0' name: 'MySQL: Version has changed (new version value received: {ITEM.VALUE})' priority: INFO description: 'MySQL version has changed. Ack to close.' @@ -1341,7 +1341,7 @@ zabbix_export: value: MySQL trigger_prototypes: - - expression: '{min(5m)}>{$MYSQL.REPL_LAG.MAX.WARN}' + expression: 'min(/MySQL by Zabbix agent/mysql.seconds_behind_master["{#MASTERHOST}"],5m)>{$MYSQL.REPL_LAG.MAX.WARN}' name: 'MySQL: Replication lag is too high (over {$MYSQL.REPL_LAG.MAX.WARN} for 5m)' priority: WARNING - @@ -1373,15 +1373,15 @@ zabbix_export: value: MySQL trigger_prototypes: - - expression: '{count(#1,"Yes",ne)}=1' + expression: 'count(/MySQL by Zabbix agent/mysql.slave_io_running["{#MASTERHOST}"],#1,"ne","Yes")=1' name: 'MySQL: The slave I/O thread is not connected to a replication master' priority: WARNING dependencies: - name: 'MySQL: The slave I/O thread is not running' - expression: '{MySQL by Zabbix agent:mysql.slave_io_running["{#MASTERHOST}"].count(#1,"No",eq)}=1' + expression: 'count(/MySQL by Zabbix agent/mysql.slave_io_running["{#MASTERHOST}"],#1,"eq","No")=1' - - expression: '{count(#1,"No",eq)}=1' + expression: 'count(/MySQL by Zabbix agent/mysql.slave_io_running["{#MASTERHOST}"],#1,"eq","No")=1' name: 'MySQL: The slave I/O thread is not running' priority: AVERAGE description: 'Whether the I/O thread for reading the master''s binary log is running.' @@ -1413,14 +1413,14 @@ zabbix_export: value: MySQL trigger_prototypes: - - expression: '{count(#1,"No",eq)}=1' + expression: 'count(/MySQL by Zabbix agent/mysql.slave_sql_running["{#MASTERHOST}"],#1,"eq","No")=1' name: 'MySQL: The SQL thread is not running' priority: WARNING description: 'Whether the SQL thread for executing events in the relay log is running.' dependencies: - name: 'MySQL: The slave I/O thread is not running' - expression: '{MySQL by Zabbix agent:mysql.slave_io_running["{#MASTERHOST}"].count(#1,"No",eq)}=1' + expression: 'count(/MySQL by Zabbix agent/mysql.slave_io_running["{#MASTERHOST}"],#1,"eq","No")=1' - name: 'MySQL: Replication Slave SQL Running State {#MASTER_HOST}' type: DEPENDENT diff --git a/templates/db/mysql_agent2/template_db_mysql_agent2.yaml b/templates/db/mysql_agent2/template_db_mysql_agent2.yaml index 809bc41dbb4..6ffab354f91 100644 --- a/templates/db/mysql_agent2/template_db_mysql_agent2.yaml +++ b/templates/db/mysql_agent2/template_db_mysql_agent2.yaml @@ -1,6 +1,6 @@ zabbix_export: version: '5.4' - date: '2021-04-23T13:39:18Z' + date: '2021-05-09T00:00:00Z' groups: - name: Templates/Databases @@ -77,14 +77,14 @@ zabbix_export: value: MySQL triggers: - - expression: '{min(5m)}>{$MYSQL.ABORTED_CONN.MAX.WARN}' + expression: 'min(/MySQL by Zabbix agent 2/mysql.aborted_connects.rate,5m)>{$MYSQL.ABORTED_CONN.MAX.WARN}' name: 'MySQL: Server has aborted connections (over {$MYSQL.ABORTED_CONN.MAX.WARN} for 5m)' priority: AVERAGE description: 'The number of failed attempts to connect to the MySQL server is more than {$MYSQL.ABORTED_CONN.MAX.WARN} in the last 5 minutes.' dependencies: - name: 'MySQL: Refused connections (max_connections limit reached)' - expression: '{MySQL by Zabbix agent 2:mysql.connection_errors_max_connections.rate.last()}>0' + expression: 'last(/MySQL by Zabbix agent 2/mysql.connection_errors_max_connections.rate)>0' - name: 'MySQL: Binlog cache disk use' type: DEPENDENT @@ -116,10 +116,10 @@ zabbix_export: value_type: FLOAT units: '%' params: | - last(mysql.innodb_buffer_pool_reads) / - ( last(mysql.innodb_buffer_pool_read_requests) + - ( last(mysql.innodb_buffer_pool_read_requests) = 0 ) ) * 100 * - ( last(mysql.innodb_buffer_pool_read_requests) > 0 ) + last(//mysql.innodb_buffer_pool_reads) / + ( last(//mysql.innodb_buffer_pool_read_requests) + + ( last(//mysql.innodb_buffer_pool_read_requests) = 0 ) ) * 100 * + ( last(//mysql.innodb_buffer_pool_read_requests) > 0 ) description: 'The item shows how effectively the buffer pool is serving reads.' tags: - @@ -133,11 +133,11 @@ zabbix_export: value_type: FLOAT units: '%' params: | - ( last(mysql.innodb_buffer_pool_pages_total) - - last(mysql.innodb_buffer_pool_pages_free) ) / - ( last(mysql.innodb_buffer_pool_pages_total) + - ( last(mysql.innodb_buffer_pool_pages_total) = 0 ) ) * 100 * - ( last(mysql.innodb_buffer_pool_pages_total) > 0 ) + ( last(//mysql.innodb_buffer_pool_pages_total) - + last(//mysql.innodb_buffer_pool_pages_free) ) / + ( last(//mysql.innodb_buffer_pool_pages_total) + + ( last(//mysql.innodb_buffer_pool_pages_total) = 0 ) ) * 100 * + ( last(//mysql.innodb_buffer_pool_pages_total) > 0 ) description: 'Ratio of used to total pages in the buffer pool.' tags: - @@ -145,7 +145,7 @@ zabbix_export: value: MySQL triggers: - - expression: '{max(5m)}<{$MYSQL.BUFF_UTIL.MIN.WARN}' + expression: 'max(/MySQL by Zabbix agent 2/mysql.buffer_pool_utilization,5m)<{$MYSQL.BUFF_UTIL.MIN.WARN}' name: 'MySQL: Buffer pool utilization is too low (less than {$MYSQL.BUFF_UTIL.MIN.WARN}% for 5m)' priority: WARNING description: 'The buffer pool utilization is less than {$MYSQL.BUFF_UTIL.MIN.WARN}% in the last 5 minutes. This means that there is a lot of unused RAM allocated for the buffer pool, which you can easily reallocate at the moment.' @@ -383,7 +383,7 @@ zabbix_export: value: MySQL triggers: - - expression: '{last()}>0' + expression: 'last(/MySQL by Zabbix agent 2/mysql.connection_errors_max_connections.rate)>0' name: 'MySQL: Refused connections (max_connections limit reached)' priority: AVERAGE description: 'Number of refused connections due to the max_connections limit being reached.' @@ -481,7 +481,7 @@ zabbix_export: value: MySQL triggers: - - expression: '{min(5m)}>{$MYSQL.CREATED_TMP_DISK_TABLES.MAX.WARN}' + expression: 'min(/MySQL by Zabbix agent 2/mysql.created_tmp_disk_tables.rate,5m)>{$MYSQL.CREATED_TMP_DISK_TABLES.MAX.WARN}' name: 'MySQL: Number of on-disk temporary tables created per second is high (over {$MYSQL.CREATED_TMP_DISK_TABLES.MAX.WARN} for 5m)' priority: WARNING description: 'Possibly the application using the database is in need of query optimization.' @@ -510,7 +510,7 @@ zabbix_export: value: MySQL triggers: - - expression: '{min(5m)}>{$MYSQL.CREATED_TMP_FILES.MAX.WARN}' + expression: 'min(/MySQL by Zabbix agent 2/mysql.created_tmp_files.rate,5m)>{$MYSQL.CREATED_TMP_FILES.MAX.WARN}' name: 'MySQL: Number of temporary files created per second is high (over {$MYSQL.CREATED_TMP_FILES.MAX.WARN} for 5m)' priority: WARNING description: 'Possibly the application using the database is in need of query optimization.' @@ -539,7 +539,7 @@ zabbix_export: value: MySQL triggers: - - expression: '{min(5m)}>{$MYSQL.CREATED_TMP_TABLES.MAX.WARN}' + expression: 'min(/MySQL by Zabbix agent 2/mysql.created_tmp_tables.rate,5m)>{$MYSQL.CREATED_TMP_TABLES.MAX.WARN}' name: 'MySQL: Number of internal temporary tables created per second is high (over {$MYSQL.CREATED_TMP_TABLES.MAX.WARN} for 5m)' priority: WARNING description: 'Possibly the application using the database is in need of query optimization.' @@ -705,7 +705,7 @@ zabbix_export: key: mysql.innodb_log_file_size history: 7d value_type: FLOAT - params: '(last(mysql.innodb_os_log_written) - last(mysql.innodb_os_log_written,1h)) / {$MYSQL.INNODB_LOG_FILES}' + params: '(last(//mysql.innodb_os_log_written) - last(//mysql.innodb_os_log_written)) / {$MYSQL.INNODB_LOG_FILES}' description: 'Calculated by (innodb_os_log_written-innodb_os_log_written(time shift -1h))/{$MYSQL.INNODB_LOG_FILES} value of the innodb_log_file_size. Innodb_log_file_size is the size in bytes of the each InnoDB redo log file in the log group. The combined size can be no more than 512GB. Larger values mean less disk I/O due to less flushing checkpoint activity, but also slower recovery from a crash.' preprocessing: - @@ -922,7 +922,7 @@ zabbix_export: value: MySQL triggers: - - expression: '{last()}=0' + expression: 'last(/MySQL by Zabbix agent 2/mysql.ping["{$MYSQL.DSN}","{$MYSQL.USER}","{$MYSQL.PASSWORD}"])=0' name: 'MySQL: Service is down' priority: HIGH - @@ -996,7 +996,7 @@ zabbix_export: value: MySQL triggers: - - expression: '{min(5m)}>{$MYSQL.SLOW_QUERIES.MAX.WARN}' + expression: 'min(/MySQL by Zabbix agent 2/mysql.slow_queries.rate,5m)>{$MYSQL.SLOW_QUERIES.MAX.WARN}' name: 'MySQL: Server has slow queries (over {$MYSQL.SLOW_QUERIES.MAX.WARN} for 5m)' priority: WARNING description: 'The number of slow queries is more than {$MYSQL.SLOW_QUERIES.MAX.WARN} in the last 5 minutes.' @@ -1098,16 +1098,16 @@ zabbix_export: value: MySQL triggers: - - expression: '{nodata(30m)}=1' + expression: 'nodata(/MySQL by Zabbix agent 2/mysql.uptime,30m)=1' name: 'MySQL: Failed to fetch info data (or no data for 30m)' priority: INFO description: 'Zabbix has not received data for items for the last 30 minutes.' dependencies: - name: 'MySQL: Service is down' - expression: '{MySQL by Zabbix agent 2:mysql.ping["{$MYSQL.DSN}","{$MYSQL.USER}","{$MYSQL.PASSWORD}"].last()}=0' + expression: 'last(/MySQL by Zabbix agent 2/mysql.ping["{$MYSQL.DSN}","{$MYSQL.USER}","{$MYSQL.PASSWORD}"])=0' - - expression: '{last()}<10m' + expression: 'last(/MySQL by Zabbix agent 2/mysql.uptime)<10m' name: 'MySQL: Service has been restarted (uptime < 10m)' priority: INFO description: 'MySQL uptime is less than 10 minutes.' @@ -1129,7 +1129,7 @@ zabbix_export: value: MySQL triggers: - - expression: '{diff()}=1 and {strlen()}>0' + expression: '(last(/MySQL by Zabbix agent 2/mysql.version["{$MYSQL.DSN}","{$MYSQL.USER}","{$MYSQL.PASSWORD}"],#1)<>last(/MySQL by Zabbix agent 2/mysql.version["{$MYSQL.DSN}","{$MYSQL.USER}","{$MYSQL.PASSWORD}"],#2))=1 and length(last(/MySQL by Zabbix agent 2/mysql.version["{$MYSQL.DSN}","{$MYSQL.USER}","{$MYSQL.PASSWORD}"]))>0' name: 'MySQL: Version has changed (new version value received: {ITEM.VALUE})' priority: INFO description: 'MySQL version has changed. Ack to close.' @@ -1344,7 +1344,7 @@ zabbix_export: value: MySQL trigger_prototypes: - - expression: '{min(5m)}>{$MYSQL.REPL_LAG.MAX.WARN}' + expression: 'min(/MySQL by Zabbix agent 2/mysql.replication.seconds_behind_master["{#MASTER_HOST}"],5m)>{$MYSQL.REPL_LAG.MAX.WARN}' name: 'MySQL: Replication lag is too high (over {$MYSQL.REPL_LAG.MAX.WARN} for 5m)' priority: WARNING - @@ -1376,15 +1376,15 @@ zabbix_export: value: MySQL trigger_prototypes: - - expression: '{count(#1,"Yes",ne)}=1' + expression: 'count(/MySQL by Zabbix agent 2/mysql.replication.slave_io_running["{#MASTER_HOST}"],#1,"ne","Yes")=1' name: 'MySQL: The slave I/O thread is not connected to a replication master' priority: WARNING dependencies: - name: 'MySQL: The slave I/O thread is not running' - expression: '{MySQL by Zabbix agent 2:mysql.replication.slave_io_running["{#MASTER_HOST}"].count(#1,"No",eq)}=1' + expression: 'count(/MySQL by Zabbix agent 2/mysql.replication.slave_io_running["{#MASTER_HOST}"],#1,"eq","No")=1' - - expression: '{count(#1,"No",eq)}=1' + expression: 'count(/MySQL by Zabbix agent 2/mysql.replication.slave_io_running["{#MASTER_HOST}"],#1,"eq","No")=1' name: 'MySQL: The slave I/O thread is not running' priority: AVERAGE description: 'Whether the I/O thread for reading the master''s binary log is running.' @@ -1416,14 +1416,14 @@ zabbix_export: value: MySQL trigger_prototypes: - - expression: '{count(#1,"No",eq)}=1' + expression: 'count(/MySQL by Zabbix agent 2/mysql.replication.slave_sql_running["{#MASTER_HOST}"],#1,"eq","No")=1' name: 'MySQL: The SQL thread is not running' priority: WARNING description: 'Whether the SQL thread for executing events in the relay log is running.' dependencies: - name: 'MySQL: The slave I/O thread is not running' - expression: '{MySQL by Zabbix agent 2:mysql.replication.slave_io_running["{#MASTER_HOST}"].count(#1,"No",eq)}=1' + expression: 'count(/MySQL by Zabbix agent 2/mysql.replication.slave_io_running["{#MASTER_HOST}"],#1,"eq","No")=1' - name: 'MySQL: Replication Slave SQL Running State {#MASTER_HOST}' type: DEPENDENT diff --git a/templates/db/mysql_odbc/template_db_mysql_odbc.yaml b/templates/db/mysql_odbc/template_db_mysql_odbc.yaml index 3b26957f2fb..5fdceafb7d4 100644 --- a/templates/db/mysql_odbc/template_db_mysql_odbc.yaml +++ b/templates/db/mysql_odbc/template_db_mysql_odbc.yaml @@ -1,6 +1,6 @@ zabbix_export: version: '5.4' - date: '2021-04-23T13:38:13Z' + date: '2021-05-09T00:00:00Z' groups: - name: Templates/Databases @@ -60,7 +60,7 @@ zabbix_export: value: MySQL triggers: - - expression: '{last()}=0' + expression: 'last(/MySQL by ODBC/db.odbc.select[ping,"{$MYSQL.DSN}"])=0' name: 'MySQL: Service is down' priority: HIGH - @@ -85,7 +85,7 @@ zabbix_export: value: MySQL triggers: - - expression: '{diff()}=1 and {strlen()}>0' + expression: '(last(/MySQL by ODBC/db.odbc.select[version,"{$MYSQL.DSN}"],#1)<>last(/MySQL by ODBC/db.odbc.select[version,"{$MYSQL.DSN}"],#2))=1 and length(last(/MySQL by ODBC/db.odbc.select[version,"{$MYSQL.DSN}"]))>0' name: 'MySQL: Version has changed (new version value received: {ITEM.VALUE})' priority: INFO description: 'MySQL version has changed. Ack to close.' @@ -138,14 +138,14 @@ zabbix_export: value: MySQL triggers: - - expression: '{min(5m)}>{$MYSQL.ABORTED_CONN.MAX.WARN}' + expression: 'min(/MySQL by ODBC/mysql.aborted_connects.rate,5m)>{$MYSQL.ABORTED_CONN.MAX.WARN}' name: 'MySQL: Server has aborted connections (over {$MYSQL.ABORTED_CONN.MAX.WARN} for 5m)' priority: AVERAGE description: 'The number of failed attempts to connect to the MySQL server is more than {$MYSQL.ABORTED_CONN.MAX.WARN} in the last 5 minutes.' dependencies: - name: 'MySQL: Refused connections (max_connections limit reached)' - expression: '{MySQL by ODBC:mysql.connection_errors_max_connections.rate.last()}>0' + expression: 'last(/MySQL by ODBC/mysql.connection_errors_max_connections.rate)>0' - name: 'MySQL: Binlog cache disk use' type: DEPENDENT @@ -177,10 +177,10 @@ zabbix_export: value_type: FLOAT units: '%' params: | - last(mysql.innodb_buffer_pool_reads) / - ( last(mysql.innodb_buffer_pool_read_requests) + - ( last(mysql.innodb_buffer_pool_read_requests) = 0 ) ) * 100 * - ( last(mysql.innodb_buffer_pool_read_requests) > 0 ) + last(//mysql.innodb_buffer_pool_reads) / + ( last(//mysql.innodb_buffer_pool_read_requests) + + ( last(//mysql.innodb_buffer_pool_read_requests) = 0 ) ) * 100 * + ( last(//mysql.innodb_buffer_pool_read_requests) > 0 ) description: 'The item shows how effectively the buffer pool is serving reads.' tags: - @@ -194,11 +194,11 @@ zabbix_export: value_type: FLOAT units: '%' params: | - ( last(mysql.innodb_buffer_pool_pages_total) - - last(mysql.innodb_buffer_pool_pages_free) ) / - ( last(mysql.innodb_buffer_pool_pages_total) + - ( last(mysql.innodb_buffer_pool_pages_total) = 0 ) ) * 100 * - ( last(mysql.innodb_buffer_pool_pages_total) > 0 ) + ( last(//mysql.innodb_buffer_pool_pages_total) - + last(//mysql.innodb_buffer_pool_pages_free) ) / + ( last(//mysql.innodb_buffer_pool_pages_total) + + ( last(//mysql.innodb_buffer_pool_pages_total) = 0 ) ) * 100 * + ( last(//mysql.innodb_buffer_pool_pages_total) > 0 ) description: 'Ratio of used to total pages in the buffer pool.' tags: - @@ -206,7 +206,7 @@ zabbix_export: value: MySQL triggers: - - expression: '{max(5m)}<{$MYSQL.BUFF_UTIL.MIN.WARN}' + expression: 'max(/MySQL by ODBC/mysql.buffer_pool_utilization,5m)<{$MYSQL.BUFF_UTIL.MIN.WARN}' name: 'MySQL: Buffer pool utilization is too low (less than {$MYSQL.BUFF_UTIL.MIN.WARN}% for 5m)' priority: WARNING description: 'The buffer pool utilization is less than {$MYSQL.BUFF_UTIL.MIN.WARN}% in the last 5 minutes. This means that there is a lot of unused RAM allocated for the buffer pool, which you can easily reallocate at the moment.' @@ -444,7 +444,7 @@ zabbix_export: value: MySQL triggers: - - expression: '{last()}>0' + expression: 'last(/MySQL by ODBC/mysql.connection_errors_max_connections.rate)>0' name: 'MySQL: Refused connections (max_connections limit reached)' priority: AVERAGE description: 'Number of refused connections due to the max_connections limit being reached.' @@ -542,7 +542,7 @@ zabbix_export: value: MySQL triggers: - - expression: '{min(5m)}>{$MYSQL.CREATED_TMP_DISK_TABLES.MAX.WARN}' + expression: 'min(/MySQL by ODBC/mysql.created_tmp_disk_tables.rate,5m)>{$MYSQL.CREATED_TMP_DISK_TABLES.MAX.WARN}' name: 'MySQL: Number of on-disk temporary tables created per second is high (over {$MYSQL.CREATED_TMP_DISK_TABLES.MAX.WARN} for 5m)' priority: WARNING description: 'Possibly the application using the database is in need of query optimization.' @@ -571,7 +571,7 @@ zabbix_export: value: MySQL triggers: - - expression: '{min(5m)}>{$MYSQL.CREATED_TMP_FILES.MAX.WARN}' + expression: 'min(/MySQL by ODBC/mysql.created_tmp_files.rate,5m)>{$MYSQL.CREATED_TMP_FILES.MAX.WARN}' name: 'MySQL: Number of temporary files created per second is high (over {$MYSQL.CREATED_TMP_FILES.MAX.WARN} for 5m)' priority: WARNING description: 'Possibly the application using the database is in need of query optimization.' @@ -600,7 +600,7 @@ zabbix_export: value: MySQL triggers: - - expression: '{min(5m)}>{$MYSQL.CREATED_TMP_TABLES.MAX.WARN}' + expression: 'min(/MySQL by ODBC/mysql.created_tmp_tables.rate,5m)>{$MYSQL.CREATED_TMP_TABLES.MAX.WARN}' name: 'MySQL: Number of internal temporary tables created per second is high (over {$MYSQL.CREATED_TMP_TABLES.MAX.WARN} for 5m)' priority: WARNING description: 'Possibly the application using the database is in need of query optimization.' @@ -755,7 +755,7 @@ zabbix_export: key: mysql.innodb_log_file_size history: 7d value_type: FLOAT - params: '(last(mysql.innodb_os_log_written) - last(mysql.innodb_os_log_written,1h)) / {$MYSQL.INNODB_LOG_FILES}' + params: '(last(//mysql.innodb_os_log_written) - last(//mysql.innodb_os_log_written)) / {$MYSQL.INNODB_LOG_FILES}' description: 'Calculated by (innodb_os_log_written-innodb_os_log_written(time shift -1h))/{$MYSQL.INNODB_LOG_FILES} value of the innodb_log_file_size. Innodb_log_file_size is the size in bytes of the each InnoDB redo log file in the log group. The combined size can be no more than 512GB. Larger values mean less disk I/O due to less flushing checkpoint activity, but also slower recovery from a crash.' preprocessing: - @@ -1026,7 +1026,7 @@ zabbix_export: value: MySQL triggers: - - expression: '{min(5m)}>{$MYSQL.SLOW_QUERIES.MAX.WARN}' + expression: 'min(/MySQL by ODBC/mysql.slow_queries.rate,5m)>{$MYSQL.SLOW_QUERIES.MAX.WARN}' name: 'MySQL: Server has slow queries (over {$MYSQL.SLOW_QUERIES.MAX.WARN} for 5m)' priority: WARNING description: 'The number of slow queries is more than {$MYSQL.SLOW_QUERIES.MAX.WARN} in the last 5 minutes.' @@ -1128,16 +1128,16 @@ zabbix_export: value: MySQL triggers: - - expression: '{nodata(30m)}=1' + expression: 'nodata(/MySQL by ODBC/mysql.uptime,30m)=1' name: 'MySQL: Failed to fetch info data (or no data for 30m)' priority: INFO description: 'Zabbix has not received data for items for the last 30 minutes.' dependencies: - name: 'MySQL: Service is down' - expression: '{MySQL by ODBC:db.odbc.select[ping,"{$MYSQL.DSN}"].last()}=0' + expression: 'last(/MySQL by ODBC/db.odbc.select[ping,"{$MYSQL.DSN}"])=0' - - expression: '{last()}<10m' + expression: 'last(/MySQL by ODBC/mysql.uptime)<10m' name: 'MySQL: Service has been restarted (uptime < 10m)' priority: INFO description: 'MySQL uptime is less than 10 minutes.' @@ -1242,7 +1242,7 @@ zabbix_export: value: MySQL trigger_prototypes: - - expression: '{min(5m)}>{$MYSQL.REPL_LAG.MAX.WARN}' + expression: 'min(/MySQL by ODBC/mysql.seconds_behind_master["{#MASTER_HOST}"],5m)>{$MYSQL.REPL_LAG.MAX.WARN}' name: 'MySQL: Replication lag is too high (over {$MYSQL.REPL_LAG.MAX.WARN} for 5m)' priority: WARNING - @@ -1274,15 +1274,15 @@ zabbix_export: value: MySQL trigger_prototypes: - - expression: '{count(#1,"Yes",ne)}=1' + expression: 'count(/MySQL by ODBC/mysql.slave_io_running["{#MASTER_HOST}"],#1,"ne","Yes")=1' name: 'MySQL: The slave I/O thread is not connected to a replication master' priority: WARNING dependencies: - name: 'MySQL: The slave I/O thread is not running' - expression: '{MySQL by ODBC:mysql.slave_io_running["{#MASTER_HOST}"].count(#1,"No",eq)}=1' + expression: 'count(/MySQL by ODBC/mysql.slave_io_running["{#MASTER_HOST}"],#1,"eq","No")=1' - - expression: '{count(#1,"No",eq)}=1' + expression: 'count(/MySQL by ODBC/mysql.slave_io_running["{#MASTER_HOST}"],#1,"eq","No")=1' name: 'MySQL: The slave I/O thread is not running' priority: AVERAGE description: 'Whether the I/O thread for reading the master''s binary log is running.' @@ -1314,14 +1314,14 @@ zabbix_export: value: MySQL trigger_prototypes: - - expression: '{count(#1,"No",eq)}=1' + expression: 'count(/MySQL by ODBC/mysql.slave_sql_running["{#MASTER_HOST}"],#1,"eq","No")=1' name: 'MySQL: The SQL thread is not running' priority: WARNING description: 'Whether the SQL thread for executing events in the relay log is running.' dependencies: - name: 'MySQL: The slave I/O thread is not running' - expression: '{MySQL by ODBC:mysql.slave_io_running["{#MASTER_HOST}"].count(#1,"No",eq)}=1' + expression: 'count(/MySQL by ODBC/mysql.slave_io_running["{#MASTER_HOST}"],#1,"eq","No")=1' - name: 'MySQL: Replication Slave SQL Running State {#MASTER_HOST}' type: DEPENDENT diff --git a/templates/db/oracle_agent2/template_db_oracle_agent2.yaml b/templates/db/oracle_agent2/template_db_oracle_agent2.yaml index c17b1a4dabc..fbd036fb9b3 100644 --- a/templates/db/oracle_agent2/template_db_oracle_agent2.yaml +++ b/templates/db/oracle_agent2/template_db_oracle_agent2.yaml @@ -1,6 +1,6 @@ zabbix_export: version: '5.4' - date: '2021-02-23T11:04:57Z' + date: '2021-05-09T00:00:00Z' groups: - name: Templates/Databases @@ -507,7 +507,7 @@ zabbix_export: value: Oracle triggers: - - expression: '{diff()}=1 and {strlen()}>0' + expression: '(last(/Oracle by Zabbix Agent 2/oracle.instance_hostname,#1)<>last(/Oracle by Zabbix Agent 2/oracle.instance_hostname,#2))=1 and length(last(/Oracle by Zabbix Agent 2/oracle.instance_hostname))>0' name: 'Oracle: Instance hostname has changed (new hostname received: {ITEM.VALUE})' priority: INFO description: 'Oracle DB Instance hostname has changed. Ack to close.' @@ -534,7 +534,7 @@ zabbix_export: value: Oracle triggers: - - expression: '{diff()}=1 and {strlen()}>0' + expression: '(last(/Oracle by Zabbix Agent 2/oracle.instance_name,#1)<>last(/Oracle by Zabbix Agent 2/oracle.instance_name,#2))=1 and length(last(/Oracle by Zabbix Agent 2/oracle.instance_name))>0' name: 'Oracle: Instance name has changed (new name received: {ITEM.VALUE})' priority: INFO description: 'Oracle DB Instance name has changed. Ack to close.' @@ -798,7 +798,7 @@ zabbix_export: value: Oracle triggers: - - expression: '{last()}=0' + expression: 'last(/Oracle by Zabbix Agent 2/oracle.ping["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}"])=0' name: 'Oracle: Connection to database is unavailable' priority: DISASTER description: 'Connection to Oracle Database is currently unavailable.' @@ -849,7 +849,7 @@ zabbix_export: value: Oracle triggers: - - expression: '{max(5m)} < {$ORACLE.REDO.MIN.WARN}' + expression: 'max(/Oracle by Zabbix Agent 2/oracle.redolog.info["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}"],5m) < {$ORACLE.REDO.MIN.WARN}' name: 'Oracle: Number of REDO logs available for switching is too low (less {$ORACLE.REDO.MIN.WARN} for 5 min)' priority: WARNING description: 'Number of available for log switching inactive/unused REDOs is low (Database down risk)' @@ -971,7 +971,7 @@ zabbix_export: value: Oracle triggers: - - expression: '{min(5m)} > {$ORACLE.CONCURRENCY.MAX.WARN}' + expression: 'min(/Oracle by Zabbix Agent 2/oracle.session_concurrency_rate,5m) > {$ORACLE.CONCURRENCY.MAX.WARN}' name: 'Oracle: Too high database concurrency (over {$ORACLE.CONCURRENCY.MAX.WARN}% for 5 min)' priority: WARNING description: 'Concurrency rate is over {$ORACLE.CONCURRENCY.MAX.WARN}%. A high contention value does not indicate the root cause of the problem, but is a signal to search for it. In the case of high competition, an analysis of resource consumption should be carried out, the most "heavy" queries made in the database, possibly - session tracing. All this will help determine the root cause and possible optimization points both in the database configuration and in the logic of building queries of the application itself.' @@ -1055,7 +1055,7 @@ zabbix_export: value: Oracle triggers: - - expression: '{min(5m)} > {$ORACLE.SESSIONS.LOCK.MAX.WARN}' + expression: 'min(/Oracle by Zabbix Agent 2/oracle.session_lock_rate,5m) > {$ORACLE.SESSIONS.LOCK.MAX.WARN}' name: 'Oracle: Too many locked sessions (over {$ORACLE.SESSIONS.LOCK.MAX.WARN}% for 5 min)' priority: WARNING description: 'Number of locked sessions is over {$ORACLE.SESSIONS.LOCK.MAX.WARN}% of the running sessions.' @@ -1080,7 +1080,7 @@ zabbix_export: value: Oracle triggers: - - expression: '{min(5m)} > {$ORACLE.SESSION.LONG.LOCK.MAX.WARN}' + expression: 'min(/Oracle by Zabbix Agent 2/oracle.session_long_time_locked,5m) > {$ORACLE.SESSION.LONG.LOCK.MAX.WARN}' name: 'Oracle: Too many sessions locked over {$ORACLE.SESSION.LOCK.MAX.TIME}s (over {$ORACLE.SESSION.LONG.LOCK.MAX.WARN} for 5 min)' priority: WARNING description: 'Number of sessions locked over {$ORACLE.SESSION.LOCK.MAX.TIME} seconds is too high. Long-term locks can negatively affect database performance, therefore, if they are detected, you should first find the most difficult queries from the database point of view and analyze possible resource leaks.' @@ -1231,7 +1231,7 @@ zabbix_export: value: Oracle triggers: - - expression: '{max(5m)}<{$ORACLE.SHARED.FREE.MIN.WARN}' + expression: 'max(/Oracle by Zabbix Agent 2/oracle.shared_pool_free,5m)<{$ORACLE.SHARED.FREE.MIN.WARN}' name: 'Oracle: Shared pool free is too low (less {$ORACLE.SHARED.FREE.MIN.WARN}% for 5m)' priority: WARNING description: 'The shared pool free memory percent has been less than {$ORACLE.SHARED.FREE.MIN.WARN}% in the last 5 minutes.' @@ -1387,12 +1387,12 @@ zabbix_export: value: Oracle triggers: - - expression: '{nodata(30m)}=1' + expression: 'nodata(/Oracle by Zabbix Agent 2/oracle.uptime,30m)=1' name: 'Oracle: Failed to fetch info data (or no data for 30m)' priority: INFO description: 'Zabbix has not received data for items for the last 5 minutes. The database might be unavailable for connecting.' - - expression: '{last()}<10m' + expression: 'last(/Oracle by Zabbix Agent 2/oracle.uptime)<10m' name: 'Oracle: has been restarted (uptime < 10m)' priority: INFO description: 'Uptime is less than 10 minutes' @@ -1415,7 +1415,7 @@ zabbix_export: value: Oracle triggers: - - expression: '{last()} < {$ORACLE.EXPIRE.PASSWORD.MIN.WARN}' + expression: 'last(/Oracle by Zabbix Agent 2/oracle.user.info["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}"]) < {$ORACLE.EXPIRE.PASSWORD.MIN.WARN}' name: 'Oracle: Zabbix account will expire soon (under {$ORACLE.EXPIRE.PASSWORD.MIN.WARN} days)' priority: WARNING description: 'Password for zabbix user in the database will expire soon.' @@ -1465,7 +1465,7 @@ zabbix_export: value: Oracle triggers: - - expression: '{diff()}=1 and {strlen()}>0' + expression: '(last(/Oracle by Zabbix Agent 2/oracle.version,#1)<>last(/Oracle by Zabbix Agent 2/oracle.version,#2))=1 and length(last(/Oracle by Zabbix Agent 2/oracle.version))>0' name: 'Oracle: Version has changed (new version value received: {ITEM.VALUE})' priority: INFO description: 'Oracle DB version has changed. Ack to close.' @@ -1545,7 +1545,7 @@ zabbix_export: value: 'Oracle Archivelog' trigger_prototypes: - - expression: '{last()}<2' + expression: 'last(/Oracle by Zabbix Agent 2/oracle.archivelog_log_status["{#DEST_NAME}"])<2' name: 'Archivelog ''{#DEST_NAME}'': Log Archive is not valid' priority: HIGH description: 'ARL destination not in 3 - Valid or 2 - Deferred.' @@ -1641,7 +1641,7 @@ zabbix_export: value: 'Oracle {#TYPE}' trigger_prototypes: - - expression: '{diff()}=1' + expression: '(last(/Oracle by Zabbix Agent 2/oracle.db_open_mode["{#DBNAME}"],#1)<>last(/Oracle by Zabbix Agent 2/oracle.db_open_mode["{#DBNAME}"],#2))=1' name: 'Oracle Database ''{#DBNAME}'': Open status has changed (new value received: {ITEM.VALUE})' priority: INFO description: 'Oracle DB open status has changed. Ack to close.' @@ -1649,9 +1649,9 @@ zabbix_export: dependencies: - name: 'Oracle Database ''{#DBNAME}'': Open status in mount mode' - expression: '{Oracle by Zabbix Agent 2:oracle.db_open_mode["{#DBNAME}"].last()}=1' + expression: 'last(/Oracle by Zabbix Agent 2/oracle.db_open_mode["{#DBNAME}"])=1' - - expression: '{last()}=1' + expression: 'last(/Oracle by Zabbix Agent 2/oracle.db_open_mode["{#DBNAME}"])=1' name: 'Oracle Database ''{#DBNAME}'': Open status in mount mode' priority: WARNING description: 'The Oracle DB has a MOUNTED state.' @@ -1681,14 +1681,14 @@ zabbix_export: value: 'Oracle {#TYPE}' trigger_prototypes: - - expression: '{diff()}=1' + expression: '(last(/Oracle by Zabbix Agent 2/oracle.db_role["{#DBNAME}"],#1)<>last(/Oracle by Zabbix Agent 2/oracle.db_role["{#DBNAME}"],#2))=1' name: 'Oracle Database ''{#DBNAME}'': Role has changed (new value received: {ITEM.VALUE})' priority: INFO description: 'Oracle DB role has changed. Ack to close.' manual_close: 'YES' trigger_prototypes: - - expression: '{Oracle by Zabbix Agent 2:oracle.db_force_logging["{#DBNAME}"].last()} = 0 and {Oracle by Zabbix Agent 2:oracle.db_log_mode["{#DBNAME}"].last()} = 1' + expression: 'last(/Oracle by Zabbix Agent 2/oracle.db_force_logging["{#DBNAME}"]) = 0 and last(/Oracle by Zabbix Agent 2/oracle.db_log_mode["{#DBNAME}"]) = 1' name: 'Oracle Database ''{#DBNAME}'': Force logging is deactivated for DB with active Archivelog' priority: WARNING description: 'Force Logging mode - it is very important metric for Databases in ''ARCHIVELOG''. This feature allows to forcibly write all transactions to the REDO.' @@ -1758,19 +1758,19 @@ zabbix_export: value: 'Oracle ASM' trigger_prototypes: - - expression: '{min(5m)}>{$ORACLE.ASM.USED.PCT.MAX.HIGH}' + expression: 'min(/Oracle by Zabbix Agent 2/oracle.asm_used_pct["{#DG_NAME}"],5m)>{$ORACLE.ASM.USED.PCT.MAX.HIGH}' name: 'ASM ''{#DG_NAME}'': Disk group usage is too high (over {$ORACLE.ASM.USED.PCT.MAX.HIGH}% for 5m)' priority: HIGH description: 'Usage percent of ASM disk group is over {$ORACLE.ASM.USED.PCT.MAX.WARN}' - - expression: '{min(5m)}>{$ORACLE.ASM.USED.PCT.MAX.WARN}' + expression: 'min(/Oracle by Zabbix Agent 2/oracle.asm_used_pct["{#DG_NAME}"],5m)>{$ORACLE.ASM.USED.PCT.MAX.WARN}' name: 'ASM ''{#DG_NAME}'': Disk group usage is too high (over {$ORACLE.ASM.USED.PCT.MAX.WARN}% for 5m)' priority: WARNING description: 'Usage percent of ASM disk group is over {$ORACLE.ASM.USED.PCT.MAX.WARN}' dependencies: - name: 'ASM ''{#DG_NAME}'': Disk group usage is too high (over {$ORACLE.ASM.USED.PCT.MAX.HIGH}% for 5m)' - expression: '{Oracle by Zabbix Agent 2:oracle.asm_used_pct["{#DG_NAME}"].min(5m)}>{$ORACLE.ASM.USED.PCT.MAX.HIGH}' + expression: 'min(/Oracle by Zabbix Agent 2/oracle.asm_used_pct["{#DG_NAME}"],5m)>{$ORACLE.ASM.USED.PCT.MAX.HIGH}' graph_prototypes: - name: 'ASM ''{#DG_NAME}'': ASM disk group ''{#DG_NAME}''' @@ -1830,13 +1830,13 @@ zabbix_export: value: 'Oracle PDB' trigger_prototypes: - - expression: '{diff()}=1' + expression: '(last(/Oracle by Zabbix Agent 2/oracle.pdb_open_mode["{#DBNAME}"],#1)<>last(/Oracle by Zabbix Agent 2/oracle.pdb_open_mode["{#DBNAME}"],#2))=1' name: 'Oracle Database ''{#DBNAME}'': Open status has changed (new value received: {ITEM.VALUE})' priority: INFO description: 'Oracle DB open status has changed. Ack to close.' manual_close: 'YES' - - expression: '{last()}=1' + expression: 'last(/Oracle by Zabbix Agent 2/oracle.pdb_open_mode["{#DBNAME}"])=1' name: 'Oracle Database ''{#DBNAME}'': Open status in mount mode' priority: WARNING description: 'The Oracle DB has a MOUNTED state.' @@ -1937,7 +1937,7 @@ zabbix_export: value: 'Oracle {#CONTENTS} Tablespaces. {#TABLESPACE}' trigger_prototypes: - - expression: '{diff()}=1' + expression: '(last(/Oracle by Zabbix Agent 2/oracle.tbs_status["{#TABLESPACE}"],#1)<>last(/Oracle by Zabbix Agent 2/oracle.tbs_status["{#TABLESPACE}"],#2))=1' name: 'Oracle TBS ''{#TABLESPACE}'': Tablespace status has changed (new value received: {ITEM.VALUE})' priority: INFO description: 'Oracle tablespace status has changed. Ack to close.' @@ -1945,9 +1945,9 @@ zabbix_export: dependencies: - name: 'Oracle TBS ''{#TABLESPACE}'': Tablespase is OFFLINE' - expression: '{Oracle by Zabbix Agent 2:oracle.tbs_status["{#TABLESPACE}"].last()}=2' + expression: 'last(/Oracle by Zabbix Agent 2/oracle.tbs_status["{#TABLESPACE}"])=2' - - expression: '{last()}=2' + expression: 'last(/Oracle by Zabbix Agent 2/oracle.tbs_status["{#TABLESPACE}"])=2' name: 'Oracle TBS ''{#TABLESPACE}'': Tablespase is OFFLINE' priority: WARNING description: 'The tablespase is in the offline state.' @@ -1992,17 +1992,17 @@ zabbix_export: value: 'Oracle {#CONTENTS} Tablespaces. {#TABLESPACE}' trigger_prototypes: - - expression: '{min(5m)}>{$ORACLE.TBS.USED.PCT.MAX.HIGH}' + expression: 'min(/Oracle by Zabbix Agent 2/oracle.tbs_used_file_pct["{#TABLESPACE}"],5m)>{$ORACLE.TBS.USED.PCT.MAX.HIGH}' name: 'Oracle TBS ''{#TABLESPACE}'': Tablespace usage is too high (over {$ORACLE.TBS.USED.PCT.MAX.HIGH}% for 5m).' priority: HIGH - - expression: '{min(5m)}>{$ORACLE.TBS.USED.PCT.MAX.WARN}' + expression: 'min(/Oracle by Zabbix Agent 2/oracle.tbs_used_file_pct["{#TABLESPACE}"],5m)>{$ORACLE.TBS.USED.PCT.MAX.WARN}' name: 'Oracle TBS ''{#TABLESPACE}'': Tablespace usage is too high (over {$ORACLE.TBS.USED.PCT.MAX.WARN}% for 5m).' priority: WARNING dependencies: - name: 'Oracle TBS ''{#TABLESPACE}'': Tablespace usage is too high (over {$ORACLE.TBS.USED.PCT.MAX.HIGH}% for 5m).' - expression: '{Oracle by Zabbix Agent 2:oracle.tbs_used_file_pct["{#TABLESPACE}"].min(5m)}>{$ORACLE.TBS.USED.PCT.MAX.HIGH}' + expression: 'min(/Oracle by Zabbix Agent 2/oracle.tbs_used_file_pct["{#TABLESPACE}"],5m)>{$ORACLE.TBS.USED.PCT.MAX.HIGH}' - name: 'Oracle TBS ''{#TABLESPACE}'': Tablespace allocated, percent' type: DEPENDENT @@ -2025,15 +2025,15 @@ zabbix_export: value: 'Oracle {#CONTENTS} Tablespaces. {#TABLESPACE}' trigger_prototypes: - - expression: '{min(5m)}>{$ORACLE.TBS.USED.PCT.MAX.WARN}' + expression: 'min(/Oracle by Zabbix Agent 2/oracle.tbs_used_pct["{#TABLESPACE}"],5m)>{$ORACLE.TBS.USED.PCT.MAX.WARN}' name: 'Oracle TBS ''{#TABLESPACE}'': Tablespace utilization is too high (over {$ORACLE.TBS.USED.PCT.MAX.WARN}% for 5m).' priority: WARNING dependencies: - name: 'Oracle TBS ''{#TABLESPACE}'': Tablespace utilization is too high (over {$ORACLE.TBS.UTIL.PCT.MAX.HIGH}% for 5m).' - expression: '{Oracle by Zabbix Agent 2:oracle.tbs_used_pct["{#TABLESPACE}"].min(5m)}>{$ORACLE.TBS.UTIL.PCT.MAX.HIGH}' + expression: 'min(/Oracle by Zabbix Agent 2/oracle.tbs_used_pct["{#TABLESPACE}"],5m)>{$ORACLE.TBS.UTIL.PCT.MAX.HIGH}' - - expression: '{min(5m)}>{$ORACLE.TBS.UTIL.PCT.MAX.HIGH}' + expression: 'min(/Oracle by Zabbix Agent 2/oracle.tbs_used_pct["{#TABLESPACE}"],5m)>{$ORACLE.TBS.UTIL.PCT.MAX.HIGH}' name: 'Oracle TBS ''{#TABLESPACE}'': Tablespace utilization is too high (over {$ORACLE.TBS.UTIL.PCT.MAX.HIGH}% for 5m).' priority: HIGH graph_prototypes: @@ -2304,22 +2304,22 @@ zabbix_export: newvalue: Up triggers: - - expression: '{Oracle by Zabbix Agent 2:oracle.proc.stats["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}"].min(5m)} * 100 / {Oracle by Zabbix Agent 2:oracle.processes_limit.last()} > {$ORACLE.PROCESSES.MAX.WARN}' + expression: 'min(/Oracle by Zabbix Agent 2/oracle.proc.stats["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}"],5m) * 100 / last(/Oracle by Zabbix Agent 2/oracle.processes_limit) > {$ORACLE.PROCESSES.MAX.WARN}' name: 'Oracle: Too many active processes (over {$ORACLE.PROCESSES.MAX.WARN}% for 5 min)' priority: WARNING description: 'Active processes are using more than {$ORACLE.PROCESSES.MAX.WARN}% of the available number of processes.' - - expression: '{Oracle by Zabbix Agent 2:oracle.session_count.min(5m)} * 100 / {Oracle by Zabbix Agent 2:oracle.session_limit.last()} > {$ORACLE.SESSIONS.MAX.WARN}' + expression: 'min(/Oracle by Zabbix Agent 2/oracle.session_count,5m) * 100 / last(/Oracle by Zabbix Agent 2/oracle.session_limit) > {$ORACLE.SESSIONS.MAX.WARN}' name: 'Oracle: Too many active sessions (over {$ORACLE.SESSIONS.MAX.WARN}% for 5 min)' priority: WARNING description: 'Active sessions are using more than {$ORACLE.SESSIONS.MAX.WARN}% of the available sessions.' - - expression: '{Oracle by Zabbix Agent 2:oracle.datafiles.stats["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}"].min(5m)} * 100 / {Oracle by Zabbix Agent 2:oracle.db_files_limit.last()} > {$ORACLE.DB.FILE.MAX.WARN}' + expression: 'min(/Oracle by Zabbix Agent 2/oracle.datafiles.stats["{$ORACLE.CONNSTRING}","{$ORACLE.USER}","{$ORACLE.PASSWORD}","{$ORACLE.SERVICE}"],5m) * 100 / last(/Oracle by Zabbix Agent 2/oracle.db_files_limit) > {$ORACLE.DB.FILE.MAX.WARN}' name: 'Oracle: Too many database files (over {$ORACLE.DB.FILE.MAX.WARN}% for 5 min)' priority: WARNING description: 'Number of datafiles is higher than {$ORACLE.DB.FILE.MAX.WARN}% of the available datafile files limit.' - - expression: '{Oracle by Zabbix Agent 2:oracle.total_pga_used.min(5m)} * 100 / {Oracle by Zabbix Agent 2:oracle.pga_target.last()} > {$ORACLE.PGA.USE.MAX.WARN}' + expression: 'min(/Oracle by Zabbix Agent 2/oracle.total_pga_used,5m) * 100 / last(/Oracle by Zabbix Agent 2/oracle.pga_target) > {$ORACLE.PGA.USE.MAX.WARN}' name: 'Oracle: Total PGA inuse is too high (over {$ORACLE.PGA.USE.MAX.WARN}% for 5 min)' priority: WARNING description: 'Total PGA in use is more than {$ORACLE.PGA.USE.MAX.WARN}% of PGA_AGGREGATE_TARGET.' diff --git a/templates/db/oracle_odbc/template_db_oracle_odbc.yaml b/templates/db/oracle_odbc/template_db_oracle_odbc.yaml index 8208f9e1049..246f138356a 100644 --- a/templates/db/oracle_odbc/template_db_oracle_odbc.yaml +++ b/templates/db/oracle_odbc/template_db_oracle_odbc.yaml @@ -1,6 +1,6 @@ zabbix_export: version: '5.4' - date: '2021-02-23T11:04:55Z' + date: '2021-05-09T00:00:00Z' groups: - name: Templates/Databases @@ -752,7 +752,7 @@ zabbix_export: value: Oracle triggers: - - expression: '{diff()}=1 and {strlen()}>0' + expression: '(last(/Oracle by ODBC/oracle.instance_hostname,#1)<>last(/Oracle by ODBC/oracle.instance_hostname,#2))=1 and length(last(/Oracle by ODBC/oracle.instance_hostname))>0' name: 'Oracle: Instance hostname has changed (new hostname received: {ITEM.VALUE})' priority: INFO description: 'Oracle DB Instance hostname has changed. Ack to close.' @@ -779,7 +779,7 @@ zabbix_export: value: Oracle triggers: - - expression: '{diff()}=1 and {strlen()}>0' + expression: '(last(/Oracle by ODBC/oracle.instance_name,#1)<>last(/Oracle by ODBC/oracle.instance_name,#2))=1 and length(last(/Oracle by ODBC/oracle.instance_name))>0' name: 'Oracle: Instance name has changed (new name received: {ITEM.VALUE})' priority: INFO description: 'Oracle DB Instance name has changed. Ack to close.' @@ -1057,7 +1057,7 @@ zabbix_export: value: Oracle triggers: - - expression: '{max(5m)} < {$ORACLE.REDO.MIN.WARN}' + expression: 'max(/Oracle by ODBC/oracle.redo_logs_available,5m) < {$ORACLE.REDO.MIN.WARN}' name: 'Oracle: Number of REDO logs available for switching is too low (less {$ORACLE.REDO.MIN.WARN} for 5 min)' priority: WARNING description: 'Number of available for log switching inactive/unused REDOs is low (Database down risk)' @@ -1168,7 +1168,7 @@ zabbix_export: value: Oracle triggers: - - expression: '{min(5m)} > {$ORACLE.CONCURRENCY.MAX.WARN}' + expression: 'min(/Oracle by ODBC/oracle.session_concurrency_rate,5m) > {$ORACLE.CONCURRENCY.MAX.WARN}' name: 'Oracle: Too high database concurrency (over {$ORACLE.CONCURRENCY.MAX.WARN}% for 5 min)' priority: WARNING description: 'Concurrency rate is over {$ORACLE.CONCURRENCY.MAX.WARN}%. A high contention value does not indicate the root cause of the problem, but is a signal to search for it. In the case of high competition, an analysis of resource consumption should be carried out, the most "heavy" queries made in the database, possibly - session tracing. All this will help determine the root cause and possible optimization points both in the database configuration and in the logic of building queries of the application itself.' @@ -1252,7 +1252,7 @@ zabbix_export: value: Oracle triggers: - - expression: '{min(5m)} > {$ORACLE.SESSIONS.LOCK.MAX.WARN}' + expression: 'min(/Oracle by ODBC/oracle.session_lock_rate,5m) > {$ORACLE.SESSIONS.LOCK.MAX.WARN}' name: 'Oracle: Too many locked sessions (over {$ORACLE.SESSIONS.LOCK.MAX.WARN}% for 5 min)' priority: WARNING description: 'Number of locked sessions is over {$ORACLE.SESSIONS.LOCK.MAX.WARN}% of the running sessions.' @@ -1277,7 +1277,7 @@ zabbix_export: value: Oracle triggers: - - expression: '{min(5m)} > {$ORACLE.SESSION.LONG.LOCK.MAX.WARN}' + expression: 'min(/Oracle by ODBC/oracle.session_long_time_locked,5m) > {$ORACLE.SESSION.LONG.LOCK.MAX.WARN}' name: 'Oracle: Too many sessions locked over {$ORACLE.SESSION.LOCK.MAX.TIME}s (over {$ORACLE.SESSION.LONG.LOCK.MAX.WARN} for 5 min)' priority: WARNING description: 'Number of sessions locked over {$ORACLE.SESSION.LOCK.MAX.TIME} seconds is too high. Long-term locks can negatively affect database performance, therefore, if they are detected, you should first find the most difficult queries from the database point of view and analyze possible resource leaks.' @@ -1429,7 +1429,7 @@ zabbix_export: value: Oracle triggers: - - expression: '{max(5m)}<{$ORACLE.SHARED.FREE.MIN.WARN}' + expression: 'max(/Oracle by ODBC/oracle.shared_pool_free,5m)<{$ORACLE.SHARED.FREE.MIN.WARN}' name: 'Oracle: Shared pool free is too low (less {$ORACLE.SHARED.FREE.MIN.WARN}% for 5m)' priority: WARNING description: 'The shared pool free memory percent has been less than {$ORACLE.SHARED.FREE.MIN.WARN}% in the last 5 minutes.' @@ -1551,16 +1551,16 @@ zabbix_export: value: Oracle triggers: - - expression: '{nodata(5m)}=1' + expression: 'nodata(/Oracle by ODBC/oracle.uptime,5m)=1' name: 'Oracle: Failed to fetch info data (or no data for 5m)' priority: WARNING description: 'Zabbix has not received data for items for the last 5 minutes. The database might be unavailable for connecting.' dependencies: - name: 'Oracle: Port {$ORACLE.PORT} is unavailable' - expression: '{Oracle by ODBC:net.tcp.service[tcp,{HOST.CONN},{$ORACLE.PORT}].max(#3)}=0 and {Oracle by ODBC:proc.num[,,,"tnslsnr LISTENER"].max(#3)}>0' + expression: 'max(/Oracle by ODBC/net.tcp.service[tcp,{HOST.CONN},{$ORACLE.PORT}],#3)=0 and max(/Oracle by ODBC/proc.num[,,,"tnslsnr LISTENER"],#3)>0' - - expression: '{last()}<10m' + expression: 'last(/Oracle by ODBC/oracle.uptime)<10m' name: 'Oracle: has been restarted (uptime < 10m)' priority: INFO description: 'Uptime is less than 10 minutes' @@ -1587,7 +1587,7 @@ zabbix_export: value: Oracle triggers: - - expression: '{last()} < {$ORACLE.EXPIRE.PASSWORD.MIN.WARN}' + expression: 'last(/Oracle by ODBC/oracle.user_expire_password) < {$ORACLE.EXPIRE.PASSWORD.MIN.WARN}' name: 'Oracle: Zabbix account will expire soon (under {$ORACLE.EXPIRE.PASSWORD.MIN.WARN} days)' priority: WARNING description: 'Password for zabbix user in the database will expire soon.' @@ -1637,7 +1637,7 @@ zabbix_export: value: Oracle triggers: - - expression: '{diff()}=1 and {strlen()}>0' + expression: '(last(/Oracle by ODBC/oracle.version,#1)<>last(/Oracle by ODBC/oracle.version,#2))=1 and length(last(/Oracle by ODBC/oracle.version))>0' name: 'Oracle: Version has changed (new version value received: {ITEM.VALUE})' priority: INFO description: 'Oracle DB version has changed. Ack to close.' @@ -1659,7 +1659,7 @@ zabbix_export: value: Oracle triggers: - - expression: '{max(#3)}=0' + expression: 'max(/Oracle by ODBC/proc.num[,,,"tnslsnr LISTENER"],#3)=0' name: 'Oracle: LISTENER process is not running' priority: DISASTER discovery_rules: @@ -1743,7 +1743,7 @@ zabbix_export: value: 'Oracle Archivelog' trigger_prototypes: - - expression: '{last()}<2' + expression: 'last(/Oracle by ODBC/oracle.archivelog_log_status["{#DEST_NAME}"])<2' name: 'Archivelog ''{#DEST_NAME}'': Log Archive is not valid' priority: HIGH description: 'ARL destination not in 3 - Valid or 2 - Deferred.' @@ -1817,19 +1817,19 @@ zabbix_export: value: 'Oracle ASM' trigger_prototypes: - - expression: '{min(5m)}>{$ORACLE.ASM.USED.PCT.MAX.HIGH}' + expression: 'min(/Oracle by ODBC/oracle.asm_used_pct["{#DG_NAME}"],5m)>{$ORACLE.ASM.USED.PCT.MAX.HIGH}' name: 'ASM ''{#DG_NAME}'': Disk group usage is too high (over {$ORACLE.ASM.USED.PCT.MAX.HIGH}% for 5m)' priority: HIGH description: 'Usage percent of ASM disk group is over {$ORACLE.ASM.USED.PCT.MAX.WARN}' - - expression: '{min(5m)}>{$ORACLE.ASM.USED.PCT.MAX.WARN}' + expression: 'min(/Oracle by ODBC/oracle.asm_used_pct["{#DG_NAME}"],5m)>{$ORACLE.ASM.USED.PCT.MAX.WARN}' name: 'ASM ''{#DG_NAME}'': Disk group usage is too high (over {$ORACLE.ASM.USED.PCT.MAX.WARN}% for 5m)' priority: WARNING description: 'Usage percent of ASM disk group is over {$ORACLE.ASM.USED.PCT.MAX.WARN}' dependencies: - name: 'ASM ''{#DG_NAME}'': Disk group usage is too high (over {$ORACLE.ASM.USED.PCT.MAX.HIGH}% for 5m)' - expression: '{Oracle by ODBC:oracle.asm_used_pct["{#DG_NAME}"].min(5m)}>{$ORACLE.ASM.USED.PCT.MAX.HIGH}' + expression: 'min(/Oracle by ODBC/oracle.asm_used_pct["{#DG_NAME}"],5m)>{$ORACLE.ASM.USED.PCT.MAX.HIGH}' graph_prototypes: - name: 'ASM ''{#DG_NAME}'': ASM disk group ''{#DG_NAME}''' @@ -1941,7 +1941,7 @@ zabbix_export: value: 'Oracle {#TYPE}' trigger_prototypes: - - expression: '{diff()}=1' + expression: '(last(/Oracle by ODBC/oracle.db_open_mode["{#DBNAME}"],#1)<>last(/Oracle by ODBC/oracle.db_open_mode["{#DBNAME}"],#2))=1' name: 'Oracle Database ''{#DBNAME}'': Open status has changed (new value received: {ITEM.VALUE})' priority: INFO description: 'Oracle DB open status has changed. Ack to close.' @@ -1949,9 +1949,9 @@ zabbix_export: dependencies: - name: 'Oracle Database ''{#DBNAME}'': Open status in mount mode' - expression: '{Oracle by ODBC:oracle.db_open_mode["{#DBNAME}"].last()}=1' + expression: 'last(/Oracle by ODBC/oracle.db_open_mode["{#DBNAME}"])=1' - - expression: '{last()}=1' + expression: 'last(/Oracle by ODBC/oracle.db_open_mode["{#DBNAME}"])=1' name: 'Oracle Database ''{#DBNAME}'': Open status in mount mode' priority: WARNING description: 'The Oracle DB has a MOUNTED state.' @@ -1981,14 +1981,14 @@ zabbix_export: value: 'Oracle {#TYPE}' trigger_prototypes: - - expression: '{diff()}=1' + expression: '(last(/Oracle by ODBC/oracle.db_role["{#DBNAME}"],#1)<>last(/Oracle by ODBC/oracle.db_role["{#DBNAME}"],#2))=1' name: 'Oracle Database ''{#DBNAME}'': Role has changed (new value received: {ITEM.VALUE})' priority: INFO description: 'Oracle DB role has changed. Ack to close.' manual_close: 'YES' trigger_prototypes: - - expression: '{Oracle by ODBC:oracle.db_force_logging["{#DBNAME}"].last()} = 0 and {Oracle by ODBC:oracle.db_log_mode["{#DBNAME}"].last()} = 1' + expression: 'last(/Oracle by ODBC/oracle.db_force_logging["{#DBNAME}"]) = 0 and last(/Oracle by ODBC/oracle.db_log_mode["{#DBNAME}"]) = 1' name: 'Oracle Database ''{#DBNAME}'': Force logging is deactivated for DB with active Archivelog' priority: WARNING description: 'Force Logging mode - it is very important metric for Databases in ''ARCHIVELOG''. This feature allows to forcibly write all transactions to the REDO.' @@ -2040,13 +2040,13 @@ zabbix_export: value: 'Oracle PDB' trigger_prototypes: - - expression: '{diff()}=1' + expression: '(last(/Oracle by ODBC/oracle.pdb_open_mode["{#DBNAME}"],#1)<>last(/Oracle by ODBC/oracle.pdb_open_mode["{#DBNAME}"],#2))=1' name: 'Oracle Database ''{#DBNAME}'': Open status has changed (new value received: {ITEM.VALUE})' priority: INFO description: 'Oracle DB open status has changed. Ack to close.' manual_close: 'YES' - - expression: '{last()}=1' + expression: 'last(/Oracle by ODBC/oracle.pdb_open_mode["{#DBNAME}"])=1' name: 'Oracle Database ''{#DBNAME}'': Open status in mount mode' priority: WARNING description: 'The Oracle DB has a MOUNTED state.' @@ -2154,7 +2154,7 @@ zabbix_export: value: 'Oracle {#CONTENTS} Tablespaces. {#TABLESPACE}' trigger_prototypes: - - expression: '{diff()}=1' + expression: '(last(/Oracle by ODBC/oracle.tbs_status["{#TABLESPACE}"],#1)<>last(/Oracle by ODBC/oracle.tbs_status["{#TABLESPACE}"],#2))=1' name: 'Oracle TBS ''{#TABLESPACE}'': Tablespace status has changed (new value received: {ITEM.VALUE})' priority: INFO description: 'Oracle tablespace status has changed. Ack to close.' @@ -2162,9 +2162,9 @@ zabbix_export: dependencies: - name: 'Oracle TBS ''{#TABLESPACE}'': Tablespase is OFFLINE' - expression: '{Oracle by ODBC:oracle.tbs_status["{#TABLESPACE}"].last()}=2' + expression: 'last(/Oracle by ODBC/oracle.tbs_status["{#TABLESPACE}"])=2' - - expression: '{last()}=2' + expression: 'last(/Oracle by ODBC/oracle.tbs_status["{#TABLESPACE}"])=2' name: 'Oracle TBS ''{#TABLESPACE}'': Tablespase is OFFLINE' priority: WARNING description: 'The tablespase is in the offline state.' @@ -2209,17 +2209,17 @@ zabbix_export: value: 'Oracle {#CONTENTS} Tablespaces. {#TABLESPACE}' trigger_prototypes: - - expression: '{min(5m)}>{$ORACLE.TBS.USED.PCT.MAX.HIGH}' + expression: 'min(/Oracle by ODBC/oracle.tbs_used_file_pct["{#TABLESPACE}"],5m)>{$ORACLE.TBS.USED.PCT.MAX.HIGH}' name: 'Oracle TBS ''{#TABLESPACE}'': Tablespace usage is too high (over {$ORACLE.TBS.USED.PCT.MAX.HIGH}% for 5m).' priority: HIGH - - expression: '{min(5m)}>{$ORACLE.TBS.USED.PCT.MAX.WARN}' + expression: 'min(/Oracle by ODBC/oracle.tbs_used_file_pct["{#TABLESPACE}"],5m)>{$ORACLE.TBS.USED.PCT.MAX.WARN}' name: 'Oracle TBS ''{#TABLESPACE}'': Tablespace usage is too high (over {$ORACLE.TBS.USED.PCT.MAX.WARN}% for 5m).' priority: WARNING dependencies: - name: 'Oracle TBS ''{#TABLESPACE}'': Tablespace usage is too high (over {$ORACLE.TBS.USED.PCT.MAX.HIGH}% for 5m).' - expression: '{Oracle by ODBC:oracle.tbs_used_file_pct["{#TABLESPACE}"].min(5m)}>{$ORACLE.TBS.USED.PCT.MAX.HIGH}' + expression: 'min(/Oracle by ODBC/oracle.tbs_used_file_pct["{#TABLESPACE}"],5m)>{$ORACLE.TBS.USED.PCT.MAX.HIGH}' - name: 'Oracle TBS ''{#TABLESPACE}'': Tablespace allocated, percent' type: DEPENDENT @@ -2242,15 +2242,15 @@ zabbix_export: value: 'Oracle {#CONTENTS} Tablespaces. {#TABLESPACE}' trigger_prototypes: - - expression: '{min(5m)}>{$ORACLE.TBS.USED.PCT.MAX.WARN}' + expression: 'min(/Oracle by ODBC/oracle.tbs_used_pct["{#TABLESPACE}"],5m)>{$ORACLE.TBS.USED.PCT.MAX.WARN}' name: 'Oracle TBS ''{#TABLESPACE}'': Tablespace utilization is too high (over {$ORACLE.TBS.USED.PCT.MAX.WARN}% for 5m).' priority: WARNING dependencies: - name: 'Oracle TBS ''{#TABLESPACE}'': Tablespace utilization is too high (over {$ORACLE.TBS.UTIL.PCT.MAX.HIGH}% for 5m).' - expression: '{Oracle by ODBC:oracle.tbs_used_pct["{#TABLESPACE}"].min(5m)}>{$ORACLE.TBS.UTIL.PCT.MAX.HIGH}' + expression: 'min(/Oracle by ODBC/oracle.tbs_used_pct["{#TABLESPACE}"],5m)>{$ORACLE.TBS.UTIL.PCT.MAX.HIGH}' - - expression: '{min(5m)}>{$ORACLE.TBS.UTIL.PCT.MAX.HIGH}' + expression: 'min(/Oracle by ODBC/oracle.tbs_used_pct["{#TABLESPACE}"],5m)>{$ORACLE.TBS.UTIL.PCT.MAX.HIGH}' name: 'Oracle TBS ''{#TABLESPACE}'': Tablespace utilization is too high (over {$ORACLE.TBS.UTIL.PCT.MAX.HIGH}% for 5m).' priority: HIGH graph_prototypes: @@ -2522,27 +2522,27 @@ zabbix_export: newvalue: Up triggers: - - expression: '{Oracle by ODBC:net.tcp.service[tcp,{HOST.CONN},{$ORACLE.PORT}].max(#3)}=0 and {Oracle by ODBC:proc.num[,,,"tnslsnr LISTENER"].max(#3)}>0' + expression: 'max(/Oracle by ODBC/net.tcp.service[tcp,{HOST.CONN},{$ORACLE.PORT}],#3)=0 and max(/Oracle by ODBC/proc.num[,,,"tnslsnr LISTENER"],#3)>0' name: 'Oracle: Port {$ORACLE.PORT} is unavailable' priority: DISASTER description: 'The TCP port of the Oracle Server service is currently unavailable.' - - expression: '{Oracle by ODBC:oracle.processes_count.min(5m)} * 100 / {Oracle by ODBC:oracle.processes_limit.last()} > {$ORACLE.PROCESSES.MAX.WARN}' + expression: 'min(/Oracle by ODBC/oracle.processes_count,5m) * 100 / last(/Oracle by ODBC/oracle.processes_limit) > {$ORACLE.PROCESSES.MAX.WARN}' name: 'Oracle: Too many active processes (over {$ORACLE.PROCESSES.MAX.WARN}% for 5 min)' priority: WARNING description: 'Active processes are using more than {$ORACLE.PROCESSES.MAX.WARN}% of the available number of processes.' - - expression: '{Oracle by ODBC:oracle.session_count.min(5m)} * 100 / {Oracle by ODBC:oracle.session_limit.last()} > {$ORACLE.SESSIONS.MAX.WARN}' + expression: 'min(/Oracle by ODBC/oracle.session_count,5m) * 100 / last(/Oracle by ODBC/oracle.session_limit) > {$ORACLE.SESSIONS.MAX.WARN}' name: 'Oracle: Too many active sessions (over {$ORACLE.SESSIONS.MAX.WARN}% for 5 min)' priority: WARNING description: 'Active sessions are using more than {$ORACLE.SESSIONS.MAX.WARN}% of the available sessions.' - - expression: '{Oracle by ODBC:oracle.db_files_count.min(5m)} * 100 / {Oracle by ODBC:oracle.db_files_limit.last()} > {$ORACLE.DB.FILE.MAX.WARN}' + expression: 'min(/Oracle by ODBC/oracle.db_files_count,5m) * 100 / last(/Oracle by ODBC/oracle.db_files_limit) > {$ORACLE.DB.FILE.MAX.WARN}' name: 'Oracle: Too many database files (over {$ORACLE.DB.FILE.MAX.WARN}% for 5 min)' priority: WARNING description: 'Number of datafiles is higher than {$ORACLE.DB.FILE.MAX.WARN}% of the available datafile files limit.' - - expression: '{Oracle by ODBC:oracle.total_pga_used.min(5m)} * 100 / {Oracle by ODBC:oracle.pga_target.last()} > {$ORACLE.PGA.USE.MAX.WARN}' + expression: 'min(/Oracle by ODBC/oracle.total_pga_used,5m) * 100 / last(/Oracle by ODBC/oracle.pga_target) > {$ORACLE.PGA.USE.MAX.WARN}' name: 'Oracle: Total PGA inuse is too high (over {$ORACLE.PGA.USE.MAX.WARN}% for 5 min)' priority: WARNING description: 'Total PGA in use is more than {$ORACLE.PGA.USE.MAX.WARN}% of PGA_AGGREGATE_TARGET.' diff --git a/templates/db/postgresql/template_db_postgresql.yaml b/templates/db/postgresql/template_db_postgresql.yaml index d75f00be354..113b17b0e39 100644 --- a/templates/db/postgresql/template_db_postgresql.yaml +++ b/templates/db/postgresql/template_db_postgresql.yaml @@ -1,6 +1,6 @@ zabbix_export: version: '5.4' - date: '2021-04-22T11:26:37Z' + date: '2021-05-09T00:00:00Z' groups: - name: Templates/Databases @@ -156,7 +156,7 @@ zabbix_export: value: PostgreSQL triggers: - - expression: '{last()} > {$PG.CHECKPOINTS_REQ.MAX.WARN}' + expression: 'last(/PostgreSQL/pgsql.bgwriter.checkpoints_req.rate) > {$PG.CHECKPOINTS_REQ.MAX.WARN}' name: 'PostgreSQL: Required checkpoints occurs too frequently (over {$PG.CHECKPOINTS_REQ.MAX.WARN})' priority: AVERAGE description: | @@ -277,14 +277,14 @@ zabbix_export: value: 'Zabbix raw items' triggers: - - expression: '{nodata(30m)} = 1' + expression: 'nodata(/PostgreSQL/pgsql.bgwriter["{$PG.HOST}","{$PG.PORT}","{$PG.USER}","{$PG.DB}"],30m) = 1' name: 'PostgreSQL: Failed to get items (no data for 30m)' priority: WARNING description: 'Zabbix has not received data for items for the last 30 minutes' dependencies: - name: 'PostgreSQL: Service is down' - expression: '{PostgreSQL:pgsql.ping["{$PG.HOST}","{$PG.PORT}","{$PG.USER}","{$PG.DB}"].last()} = 0' + expression: 'last(/PostgreSQL/pgsql.ping["{$PG.HOST}","{$PG.PORT}","{$PG.USER}","{$PG.DB}"]) = 0' - name: 'Status: Cache hit ratio %' key: 'pgsql.cache.hit["{$PG.HOST}","{$PG.PORT}","{$PG.USER}","{$PG.DB}"]' @@ -298,7 +298,7 @@ zabbix_export: value: PostgreSQL triggers: - - expression: '{max(5m)} < {$PG.CACHE_HITRATIO.MIN.WARN}' + expression: 'max(/PostgreSQL/pgsql.cache.hit["{$PG.HOST}","{$PG.PORT}","{$PG.USER}","{$PG.DB}"],5m) < {$PG.CACHE_HITRATIO.MIN.WARN}' name: 'PostgreSQL: Cache hit ratio too low (under {$PG.CACHE_HITRATIO.MIN.WARN} in 5m)' priority: WARNING - @@ -320,7 +320,7 @@ zabbix_export: value: PostgreSQL triggers: - - expression: '{diff()}=1 and {strlen()}>0' + expression: '(last(/PostgreSQL/pgsql.config.hash["{$PG.HOST}","{$PG.PORT}","{$PG.USER}","{$PG.DB}"],#1)<>last(/PostgreSQL/pgsql.config.hash["{$PG.HOST}","{$PG.PORT}","{$PG.USER}","{$PG.DB}"],#2))=1 and length(last(/PostgreSQL/pgsql.config.hash["{$PG.HOST}","{$PG.PORT}","{$PG.USER}","{$PG.DB}"]))>0' name: 'PostgreSQL: Configuration has changed' priority: INFO - @@ -436,7 +436,7 @@ zabbix_export: value: PostgreSQL triggers: - - expression: '{min(5m)} > {$PG.CONN_TOTAL_PCT.MAX.WARN}' + expression: 'min(/PostgreSQL/pgsql.connections.sum.total_pct,5m) > {$PG.CONN_TOTAL_PCT.MAX.WARN}' name: 'PostgreSQL: Total number of connections is too high (over {$PG.CONN_TOTAL_PCT.MAX.WARN} in 5m)' priority: AVERAGE - @@ -520,13 +520,13 @@ zabbix_export: value: PostgreSQL triggers: - - expression: '{min(5m)} > {$PG.PING_TIME.MAX.WARN}' + expression: 'min(/PostgreSQL/pgsql.ping.time["{$PG.HOST}","{$PG.PORT}","{$PG.USER}","{$PG.DB}"],5m) > {$PG.PING_TIME.MAX.WARN}' name: 'PostgreSQL: Response too long (over {$PG.PING_TIME.MAX.WARN})' priority: AVERAGE dependencies: - name: 'PostgreSQL: Service is down' - expression: '{PostgreSQL:pgsql.ping["{$PG.HOST}","{$PG.PORT}","{$PG.USER}","{$PG.DB}"].last()} = 0' + expression: 'last(/PostgreSQL/pgsql.ping["{$PG.HOST}","{$PG.PORT}","{$PG.USER}","{$PG.DB}"]) = 0' - name: 'Status: Ping' key: 'pgsql.ping["{$PG.HOST}","{$PG.PORT}","{$PG.USER}","{$PG.DB}"]' @@ -548,7 +548,7 @@ zabbix_export: value: PostgreSQL triggers: - - expression: '{last()} = 0' + expression: 'last(/PostgreSQL/pgsql.ping["{$PG.HOST}","{$PG.PORT}","{$PG.USER}","{$PG.DB}"]) = 0' name: 'PostgreSQL: Service is down' priority: HIGH - @@ -583,7 +583,7 @@ zabbix_export: value: PostgreSQL triggers: - - expression: '{min(5m)} > {$PG.REPL_LAG.MAX.WARN}' + expression: 'min(/PostgreSQL/pgsql.replication.lag.sec["{$PG.HOST}","{$PG.PORT}","{$PG.USER}","{$PG.DB}"],5m) > {$PG.REPL_LAG.MAX.WARN}' name: 'PostgreSQL: Streaming lag with {#MASTER} is too high (over {$PG.REPL_LAG.MAX.WARN} in 5m)' priority: AVERAGE - @@ -610,7 +610,7 @@ zabbix_export: value: PostgreSQL triggers: - - expression: '{max(5m)}=0' + expression: 'max(/PostgreSQL/pgsql.replication.status["{$PG.HOST}","{$PG.PORT}","{$PG.USER}","{$PG.DB}"],5m)=0' name: 'PostgreSQL: Replication is down' priority: AVERAGE - @@ -715,7 +715,7 @@ zabbix_export: value: PostgreSQL triggers: - - expression: '{last()} < 10m' + expression: 'last(/PostgreSQL/pgsql.uptime["{$PG.HOST}","{$PG.PORT}","{$PG.USER}","{$PG.DB}"]) < 10m' name: 'PostgreSQL: Service has been restarted (uptime < 10m)' priority: INFO description: 'PostgreSQL uptime is less than 10 minutes' @@ -738,7 +738,7 @@ zabbix_export: value: PostgreSQL triggers: - - expression: '{diff()}=1 and {strlen()}>0' + expression: '(last(/PostgreSQL/pgsql.version["{$PG.HOST}","{$PG.PORT}","{$PG.USER}","{$PG.DB}"],#1)<>last(/PostgreSQL/pgsql.version["{$PG.HOST}","{$PG.PORT}","{$PG.USER}","{$PG.DB}"],#2))=1 and length(last(/PostgreSQL/pgsql.version["{$PG.HOST}","{$PG.PORT}","{$PG.USER}","{$PG.DB}"]))>0' name: 'PostgreSQL: Version has changed (new version value received: {ITEM.VALUE})' priority: INFO - @@ -888,7 +888,7 @@ zabbix_export: value: 'PostgreSQL: DB {#DBNAME}' trigger_prototypes: - - expression: '{min(5m)} > {$PG.CONFLICTS.MAX.WARN:"{#DBNAME}"}' + expression: 'min(/PostgreSQL/pgsql.dbstat.conflicts.rate["{#DBNAME}"],5m) > {$PG.CONFLICTS.MAX.WARN:"{#DBNAME}"}' name: 'Database {#DBNAME}: Too many recovery conflicts (over {$PG.CONFLICTS.MAX.WARN:"{#DBNAME}"} in 5m)' priority: AVERAGE description: | @@ -919,7 +919,7 @@ zabbix_export: value: 'PostgreSQL: DB {#DBNAME}' trigger_prototypes: - - expression: '{min(5m)} > {$PG.DEADLOCKS.MAX.WARN:"{#DBNAME}"}' + expression: 'min(/PostgreSQL/pgsql.dbstat.deadlocks.rate["{#DBNAME}"],5m) > {$PG.DEADLOCKS.MAX.WARN:"{#DBNAME}"}' name: 'Database {#DBNAME}: Deadlock occurred (over {$PG.DEADLOCKS.MAX.WARN:"{#DBNAME}"} in 5m)' priority: HIGH - @@ -1174,7 +1174,7 @@ zabbix_export: value: 'PostgreSQL: DB {#DBNAME}' trigger_prototypes: - - expression: '{last()}<{$PG.FROZENXID_PCT_STOP.MIN.HIGH:"{#DBNAME}"}' + expression: 'last(/PostgreSQL/pgsql.frozenxid.prc_before_stop["{#DBNAME}"])<{$PG.FROZENXID_PCT_STOP.MIN.HIGH:"{#DBNAME}"}' name: 'Database {#DBNAME}: VACUUM FREEZE is required to prevent wraparound (frozen XID less then {$PG.FROZENXID_PCT_STOP.MIN.HIGH:"{#DBNAME}"} %)' priority: AVERAGE description: | @@ -1210,7 +1210,7 @@ zabbix_export: value: 'PostgreSQL: DB {#DBNAME}' trigger_prototypes: - - expression: '{min(5m)}>{$PG.LOCKS.MAX.WARN:"{#DBNAME}"}' + expression: 'min(/PostgreSQL/pgsql.locks.total["{#DBNAME}"],5m)>{$PG.LOCKS.MAX.WARN:"{#DBNAME}"}' name: 'Database {#DBNAME}: Number of locks is too high (over {$PG.LOCKS.MAX.WARN:"{#DBNAME}"} in 5m)' priority: WARNING - @@ -1289,7 +1289,7 @@ zabbix_export: value: 'PostgreSQL: DB {#DBNAME}' trigger_prototypes: - - expression: '{min(5m)}>{$PG.SLOW_QUERIES.MAX.WARN:"{#DBNAME}"}' + expression: 'min(/PostgreSQL/pgsql.queries.query.slow_count["{#DBNAME}"],5m)>{$PG.SLOW_QUERIES.MAX.WARN:"{#DBNAME}"}' name: 'Database {#DBNAME}: Too many slow queries (over {$PG.SLOW_QUERIES.MAX.WARN:"{#DBNAME}"} in 5m)' priority: WARNING - @@ -1692,7 +1692,7 @@ zabbix_export: - type: GRAPH_PROTOTYPE width: '12' - height: '12' + height: '6' fields: - type: INTEGER @@ -1701,7 +1701,11 @@ zabbix_export: - type: INTEGER name: rows - value: '3' + value: '1' + - + type: INTEGER + name: source_type + value: '2' - type: GRAPH_PROTOTYPE name: graphid @@ -1712,7 +1716,7 @@ zabbix_export: type: GRAPH_PROTOTYPE x: '12' width: '12' - height: '12' + height: '6' fields: - type: INTEGER @@ -1721,7 +1725,11 @@ zabbix_export: - type: INTEGER name: rows - value: '3' + value: '1' + - + type: INTEGER + name: source_type + value: '2' - type: GRAPH_PROTOTYPE name: graphid @@ -1730,9 +1738,9 @@ zabbix_export: host: PostgreSQL - type: GRAPH_PROTOTYPE - 'y': '12' + 'y': '6' width: '12' - height: '12' + height: '6' fields: - type: INTEGER @@ -1741,7 +1749,11 @@ zabbix_export: - type: INTEGER name: rows - value: '3' + value: '1' + - + type: INTEGER + name: source_type + value: '2' - type: GRAPH_PROTOTYPE name: graphid @@ -1751,9 +1763,9 @@ zabbix_export: - type: GRAPH_PROTOTYPE x: '12' - 'y': '12' + 'y': '6' width: '12' - height: '12' + height: '6' fields: - type: INTEGER @@ -1762,7 +1774,11 @@ zabbix_export: - type: INTEGER name: rows - value: '3' + value: '1' + - + type: INTEGER + name: source_type + value: '2' - type: GRAPH_PROTOTYPE name: graphid @@ -1771,9 +1787,9 @@ zabbix_export: host: PostgreSQL - type: GRAPH_PROTOTYPE - 'y': '24' + 'y': '12' width: '12' - height: '12' + height: '6' fields: - type: INTEGER @@ -1782,7 +1798,11 @@ zabbix_export: - type: INTEGER name: rows - value: '3' + value: '1' + - + type: INTEGER + name: source_type + value: '2' - type: GRAPH_PROTOTYPE name: graphid @@ -1792,9 +1812,9 @@ zabbix_export: - type: GRAPH_PROTOTYPE x: '12' - 'y': '24' + 'y': '12' width: '12' - height: '12' + height: '6' fields: - type: INTEGER @@ -1803,7 +1823,11 @@ zabbix_export: - type: INTEGER name: rows - value: '3' + value: '1' + - + type: INTEGER + name: source_type + value: '2' - type: GRAPH_PROTOTYPE name: graphid @@ -1812,9 +1836,9 @@ zabbix_export: host: PostgreSQL - type: GRAPH_PROTOTYPE - 'y': '36' + 'y': '18' width: '12' - height: '12' + height: '6' fields: - type: INTEGER @@ -1823,7 +1847,11 @@ zabbix_export: - type: INTEGER name: rows - value: '3' + value: '1' + - + type: INTEGER + name: source_type + value: '2' - type: GRAPH_PROTOTYPE name: graphid @@ -1833,9 +1861,9 @@ zabbix_export: - type: GRAPH_PROTOTYPE x: '12' - 'y': '36' + 'y': '18' width: '12' - height: '12' + height: '6' fields: - type: INTEGER @@ -1844,7 +1872,11 @@ zabbix_export: - type: INTEGER name: rows - value: '3' + value: '1' + - + type: INTEGER + name: source_type + value: '2' - type: GRAPH_PROTOTYPE name: graphid @@ -1862,6 +1894,10 @@ zabbix_export: height: '6' fields: - + type: INTEGER + name: source_type + value: '0' + - type: GRAPH name: graphid value: @@ -1874,6 +1910,10 @@ zabbix_export: height: '6' fields: - + type: INTEGER + name: source_type + value: '0' + - type: GRAPH name: graphid value: @@ -1886,6 +1926,10 @@ zabbix_export: height: '6' fields: - + type: INTEGER + name: source_type + value: '0' + - type: GRAPH name: graphid value: @@ -1899,6 +1943,10 @@ zabbix_export: height: '6' fields: - + type: INTEGER + name: source_type + value: '0' + - type: GRAPH name: graphid value: @@ -1911,6 +1959,10 @@ zabbix_export: height: '6' fields: - + type: INTEGER + name: source_type + value: '0' + - type: GRAPH name: graphid value: @@ -1924,6 +1976,10 @@ zabbix_export: height: '6' fields: - + type: INTEGER + name: source_type + value: '0' + - type: GRAPH name: graphid value: @@ -1936,6 +1992,10 @@ zabbix_export: height: '6' fields: - + type: INTEGER + name: source_type + value: '0' + - type: GRAPH name: graphid value: @@ -1949,6 +2009,10 @@ zabbix_export: height: '6' fields: - + type: INTEGER + name: source_type + value: '0' + - type: GRAPH name: graphid value: diff --git a/templates/db/postgresql_agent2/template_db_postgresql_agent2.yaml b/templates/db/postgresql_agent2/template_db_postgresql_agent2.yaml index 648ecd6ea18..f7a3de32cee 100644 --- a/templates/db/postgresql_agent2/template_db_postgresql_agent2.yaml +++ b/templates/db/postgresql_agent2/template_db_postgresql_agent2.yaml @@ -1,6 +1,6 @@ zabbix_export: version: '5.4' - date: '2021-04-22T11:28:35Z' + date: '2021-05-09T00:00:00Z' groups: - name: Templates/Databases @@ -541,7 +541,7 @@ zabbix_export: value: PostgreSQL triggers: - - expression: '{min(5m)} > {$PG.CONN_TOTAL_PCT.MAX.WARN}' + expression: 'min(/PostgreSQL Agent 2/pgsql.connections.total_pct,5m) > {$PG.CONN_TOTAL_PCT.MAX.WARN}' name: 'Connections sum: Total number of connections is too high (over {$PG.CONN_TOTAL_PCT.MAX.WARN} in 5m)' priority: AVERAGE - @@ -1031,7 +1031,7 @@ zabbix_export: value: PostgreSQL triggers: - - expression: '{last()} > 18000000' + expression: 'last(/PostgreSQL Agent 2/pgsql.oldest.xid["{$PG.URI}","{$PG.USER}"]) > 18000000' name: 'PostgreSQL: Oldest xid is too big' priority: AVERAGE - @@ -1049,7 +1049,7 @@ zabbix_export: value: PostgreSQL triggers: - - expression: '{last()}=0' + expression: 'last(/PostgreSQL Agent 2/pgsql.ping["{$PG.URI}","{$PG.USER}","{$PG.PASSWORD}"])=0' name: 'PostgreSQL: Service is down' priority: HIGH - @@ -1126,7 +1126,7 @@ zabbix_export: value: PostgreSQL triggers: - - expression: '{last()} < 600' + expression: 'last(/PostgreSQL Agent 2/pgsql.uptime["{$PG.URI}","{$PG.USER}","{$PG.PASSWORD}"]) < 600' name: 'PostgreSQL: Service has been restarted (uptime={ITEM.LASTVALUE})' priority: AVERAGE - @@ -1375,7 +1375,7 @@ zabbix_export: value: 'PostgreSQL: DB {#DBNAME}' trigger_prototypes: - - expression: '{min(5m)} > {$PG.CONFLICTS.MAX.WARN:"{#DBNAME}"}' + expression: 'min(/PostgreSQL Agent 2/pgsql.dbstat.conflicts.rate["{#DBNAME}"],5m) > {$PG.CONFLICTS.MAX.WARN:"{#DBNAME}"}' name: 'DB {#DBNAME}: Too many recovery conflicts (over {$PG.CONFLICTS.MAX.WARN:"{#DBNAME}"} in 5m)' priority: AVERAGE description: | @@ -1406,7 +1406,7 @@ zabbix_export: value: 'PostgreSQL: DB {#DBNAME}' trigger_prototypes: - - expression: '{min(5m)} > {$PG.DEADLOCKS.MAX.WARN:"{#DBNAME}"}' + expression: 'min(/PostgreSQL Agent 2/pgsql.dbstat.deadlocks.rate["{#DBNAME}"],5m) > {$PG.DEADLOCKS.MAX.WARN:"{#DBNAME}"}' name: 'DB {#DBNAME}: Deadlock occurred (over {$PG.DEADLOCKS.MAX.WARN:"{#DBNAME}"} in 5m)' priority: HIGH - @@ -2084,7 +2084,7 @@ zabbix_export: - type: GRAPH_PROTOTYPE width: '12' - height: '12' + height: '5' fields: - type: INTEGER @@ -2093,7 +2093,11 @@ zabbix_export: - type: INTEGER name: rows - value: '3' + value: '1' + - + type: INTEGER + name: source_type + value: '2' - type: GRAPH_PROTOTYPE name: graphid @@ -2104,7 +2108,7 @@ zabbix_export: type: GRAPH_PROTOTYPE x: '12' width: '12' - height: '12' + height: '5' fields: - type: INTEGER @@ -2113,7 +2117,11 @@ zabbix_export: - type: INTEGER name: rows - value: '3' + value: '1' + - + type: INTEGER + name: source_type + value: '2' - type: GRAPH_PROTOTYPE name: graphid @@ -2122,9 +2130,9 @@ zabbix_export: host: 'PostgreSQL Agent 2' - type: GRAPH_PROTOTYPE - 'y': '12' + 'y': '5' width: '12' - height: '12' + height: '5' fields: - type: INTEGER @@ -2133,7 +2141,11 @@ zabbix_export: - type: INTEGER name: rows - value: '3' + value: '1' + - + type: INTEGER + name: source_type + value: '2' - type: GRAPH_PROTOTYPE name: graphid @@ -2143,9 +2155,9 @@ zabbix_export: - type: GRAPH_PROTOTYPE x: '12' - 'y': '12' + 'y': '5' width: '12' - height: '12' + height: '5' fields: - type: INTEGER @@ -2154,7 +2166,11 @@ zabbix_export: - type: INTEGER name: rows - value: '3' + value: '1' + - + type: INTEGER + name: source_type + value: '2' - type: GRAPH_PROTOTYPE name: graphid diff --git a/templates/db/redis/template_db_redis.yaml b/templates/db/redis/template_db_redis.yaml index a93104af7be..b11fd92e99d 100644 --- a/templates/db/redis/template_db_redis.yaml +++ b/templates/db/redis/template_db_redis.yaml @@ -1,6 +1,6 @@ zabbix_export: version: '5.4' - date: '2021-04-22T11:26:38Z' + date: '2021-05-09T00:00:00Z' groups: - name: Templates/Databases @@ -155,7 +155,7 @@ zabbix_export: value: 'Zabbix raw items' triggers: - - expression: '{diff()}=1 and {strlen()}>0' + expression: '(last(/Redis/redis.config["{$REDIS.CONN.URI}"],#1)<>last(/Redis/redis.config["{$REDIS.CONN.URI}"],#2))=1 and length(last(/Redis/redis.config["{$REDIS.CONN.URI}"]))>0' name: 'Redis: Configuration has changed' priority: INFO description: 'Redis configuration has changed. Ack to close.' @@ -252,7 +252,7 @@ zabbix_export: value: 'Zabbix raw items' triggers: - - expression: '{nodata(30m)}=1' + expression: 'nodata(/Redis/redis.info["{$REDIS.CONN.URI}"],30m)=1' name: 'Redis: Failed to fetch info data (or no data for 30m)' priority: WARNING description: 'Zabbix has not received data for items for the last 30 minutes' @@ -260,7 +260,7 @@ zabbix_export: dependencies: - name: 'Redis: Service is down' - expression: '{Redis:redis.ping["{$REDIS.CONN.URI}"].last()}=0' + expression: 'last(/Redis/redis.ping["{$REDIS.CONN.URI}"])=0' - name: 'Redis: Memory fragmentation ratio' type: DEPENDENT @@ -289,7 +289,7 @@ zabbix_export: value: Redis triggers: - - expression: '{min(15m)}>{$REDIS.MEM.FRAG_RATIO.MAX.WARN}' + expression: 'min(/Redis/redis.memory.fragmentation_ratio,15m)>{$REDIS.MEM.FRAG_RATIO.MAX.WARN}' name: 'Redis: Memory fragmentation ratio is too high (over {$REDIS.MEM.FRAG_RATIO.MAX.WARN} in 15m)' priority: WARNING description: | @@ -490,7 +490,7 @@ zabbix_export: value: Redis triggers: - - expression: '{last()}=0' + expression: last(/Redis/redis.persistence.aof_last_write_status)=0 name: 'Redis: Last AOF write operation failed' priority: WARNING description: 'Detailed information about persistence: https://redis.io/topics/persistence' @@ -634,7 +634,7 @@ zabbix_export: value: Redis triggers: - - expression: '{last()}=0' + expression: last(/Redis/redis.persistence.rdb_last_bgsave_status)=0 name: 'Redis: Last RDB save operation failed' priority: WARNING description: 'Detailed information about persistence: https://redis.io/topics/persistence' @@ -695,7 +695,7 @@ zabbix_export: value: Redis triggers: - - expression: '{last()}=0' + expression: 'last(/Redis/redis.ping["{$REDIS.CONN.URI}"])=0' name: 'Redis: Service is down' priority: AVERAGE manual_close: 'YES' @@ -719,7 +719,7 @@ zabbix_export: value: Redis triggers: - - expression: '{diff()}=1' + expression: '(last(/Redis/redis.replication.connected_slaves,#1)<>last(/Redis/redis.replication.connected_slaves,#2))=1' recovery_mode: NONE name: 'Redis: Number of slaves has changed' priority: INFO @@ -848,7 +848,7 @@ zabbix_export: value: Redis triggers: - - expression: '{diff()}=1 and {strlen()}>0' + expression: '(last(/Redis/redis.replication.role,#1)<>last(/Redis/redis.replication.role,#2))=1 and length(last(/Redis/redis.replication.role))>0' recovery_mode: NONE name: 'Redis: Replication role has changed (new role: {ITEM.VALUE})' priority: WARNING @@ -926,7 +926,7 @@ zabbix_export: value: Redis triggers: - - expression: '{diff()}=1 and {strlen()}>0' + expression: '(last(/Redis/redis.server.redis_version,#1)<>last(/Redis/redis.server.redis_version,#2))=1 and length(last(/Redis/redis.server.redis_version))>0' name: 'Redis: Version has changed (new version: {ITEM.VALUE})' priority: INFO description: 'Redis version has changed. Ack to close.' @@ -974,7 +974,7 @@ zabbix_export: value: Redis triggers: - - expression: '{last()}<10m' + expression: last(/Redis/redis.server.uptime)<10m name: 'Redis: has been restarted (uptime < 10m)' priority: INFO description: 'Uptime is less than 10 minutes' @@ -994,7 +994,7 @@ zabbix_export: value: Redis triggers: - - expression: '{min(5m)}>{$REDIS.SLOWLOG.COUNT.MAX.WARN}' + expression: 'min(/Redis/redis.slowlog.count["{$REDIS.CONN.URI}"],5m)>{$REDIS.SLOWLOG.COUNT.MAX.WARN}' name: 'Redis: Too many entries in the slowlog (over {$REDIS.SLOWLOG.COUNT.MAX.WARN} per second in 5m)' priority: INFO - @@ -1232,7 +1232,7 @@ zabbix_export: value: Redis triggers: - - expression: '{last()}>0' + expression: last(/Redis/redis.stats.rejected_connections)>0 name: 'Redis: Connections are rejected' priority: HIGH description: | @@ -1415,7 +1415,7 @@ zabbix_export: value: Redis trigger_prototypes: - - expression: '{last()}=0' + expression: 'last(/Redis/proc.num["{$REDIS.PROCESS_NAME}{#SINGLETON}"])=0' name: 'Redis: Process is not running' priority: HIGH graph_prototypes: @@ -1965,7 +1965,7 @@ zabbix_export: value: Redis trigger_prototypes: - - expression: '{Redis:redis.memory.used_memory.last()}/{Redis:redis.memory.maxmemory[{#SINGLETON}].min(5m)}*100>{$REDIS.MEM.PUSED.MAX.WARN}' + expression: 'last(/Redis/redis.memory.used_memory)/min(/Redis/redis.memory.maxmemory[{#SINGLETON}],5m)*100>{$REDIS.MEM.PUSED.MAX.WARN}' name: 'Redis: Memory usage is too high (over {$REDIS.MEM.PUSED.MAX.WARN}% in 5m)' priority: WARNING master_item: @@ -2556,7 +2556,7 @@ zabbix_export: value: Redis trigger_prototypes: - - expression: '{min(5m)}>{$REDIS.REPL.LAG.MAX.WARN}' + expression: 'min(/Redis/redis.replication.master_last_io_seconds_ago[{#SINGLETON}],5m)>{$REDIS.REPL.LAG.MAX.WARN}' name: 'Redis: Replication lag with master is too high (over {$REDIS.REPL.LAG.MAX.WARN} in 5m)' priority: WARNING - @@ -3014,7 +3014,7 @@ zabbix_export: newvalue: Up triggers: - - expression: '{Redis:redis.clients.connected.min(5m)}/{Redis:redis.config.maxclients.last()}*100>{$REDIS.CLIENTS.PRC.MAX.WARN}' + expression: 'min(/Redis/redis.clients.connected,5m)/last(/Redis/redis.config.maxclients)*100>{$REDIS.CLIENTS.PRC.MAX.WARN}' name: 'Redis: Total number of connected clients is too high (over {$REDIS.CLIENTS.PRC.MAX.WARN}% in 5m)' priority: WARNING description: | diff --git a/templates/db/tidb_http/tidb_pd_http/template_db_tidb_pd_http.yaml b/templates/db/tidb_http/tidb_pd_http/template_db_tidb_pd_http.yaml index 3f0442aea37..eb7f7b7d391 100644 --- a/templates/db/tidb_http/tidb_pd_http/template_db_tidb_pd_http.yaml +++ b/templates/db/tidb_http/tidb_pd_http/template_db_tidb_pd_http.yaml @@ -1,6 +1,6 @@ zabbix_export: version: '5.4' - date: '2021-04-22T12:58:27Z' + date: '2021-05-09T00:00:00Z' groups: - name: Templates/Databases @@ -118,7 +118,7 @@ zabbix_export: value: 'PD instance' triggers: - - expression: '{last()}=0' + expression: 'last(/TiDB PD by HTTP/pd.status)=0' name: 'PD: Instance is not responding' priority: AVERAGE - @@ -149,7 +149,7 @@ zabbix_export: value: 'PD instance' triggers: - - expression: '{last()}<10m' + expression: 'last(/TiDB PD by HTTP/pd.uptime)<10m' name: 'PD: has been restarted (uptime < 10m)' priority: INFO description: 'Uptime is less than 10 minutes' @@ -180,7 +180,7 @@ zabbix_export: value: 'PD instance' triggers: - - expression: '{diff()}=1 and {strlen()}>0' + expression: '(last(/TiDB PD by HTTP/pd.version,#1)<>last(/TiDB PD by HTTP/pd.version,#2))=1 and length(last(/TiDB PD by HTTP/pd.version))>0' name: 'PD: Version has changed (new version: {ITEM.VALUE})' priority: INFO description: 'PD version has changed. Ack to close.' @@ -297,7 +297,7 @@ zabbix_export: value: 'TiDB cluster' trigger_prototypes: - - expression: '{last()}>0' + expression: 'last(/TiDB PD by HTTP/pd.cluster_status.store_disconnected[{#SINGLETON}])>0' name: 'TiDB cluster: There are disconnected TiKV nodes' priority: WARNING description: 'PD does not receive a TiKV heartbeat within 20 seconds. Normally a TiKV heartbeat comes in every 10 seconds.' @@ -325,7 +325,7 @@ zabbix_export: value: 'TiDB cluster' trigger_prototypes: - - expression: '{last()}>0' + expression: 'last(/TiDB PD by HTTP/pd.cluster_status.store_down[{#SINGLETON}])>0' name: 'TiDB cluster: There are offline TiKV nodes' priority: AVERAGE description: 'PD has not received a TiKV heartbeat for a long time.' @@ -353,7 +353,7 @@ zabbix_export: value: 'TiDB cluster' trigger_prototypes: - - expression: '{last()}>0' + expression: 'last(/TiDB PD by HTTP/pd.cluster_status.store_low_space[{#SINGLETON}])>0' name: 'TiDB cluster: There are low space TiKV nodes' priority: AVERAGE description: 'Indicates that there is no sufficient space on the TiKV node.' @@ -446,7 +446,7 @@ zabbix_export: value: 'TiDB cluster' trigger_prototypes: - - expression: '{TiDB PD by HTTP:pd.cluster_status.storage_size[{#SINGLETON}].min(5m)}/{TiDB PD by HTTP:pd.cluster_status.storage_capacity[{#SINGLETON}].last()}*100>{$PD.STORAGE_USAGE.MAX.WARN}' + expression: 'min(/TiDB PD by HTTP/pd.cluster_status.storage_size[{#SINGLETON}],5m)/last(/TiDB PD by HTTP/pd.cluster_status.storage_capacity[{#SINGLETON}])*100>{$PD.STORAGE_USAGE.MAX.WARN}' name: 'TiDB cluster: Current storage usage is too high (over {$PD.STORAGE_USAGE.MAX.WARN}% for 5m)' priority: WARNING description: 'Over {$PD.STORAGE_USAGE.MAX.WARN}% of the cluster space is occupied.' @@ -749,13 +749,13 @@ zabbix_export: value: 'TiDB cluster' trigger_prototypes: - - expression: '{min(5m)}>0' + expression: 'min(/TiDB PD by HTTP/pd.region_status[{#TYPE}],5m)>0' name: 'TiDB cluster: There are unresponsive peers' discover: NO_DISCOVER priority: WARNING description: 'The number of Regions with an unresponsive peer reported by the Raft leader.' - - expression: '{min(5m)}>{$PD.MISS_REGION.MAX.WARN}' + expression: 'min(/TiDB PD by HTTP/pd.region_status[{#TYPE}],5m)>{$PD.MISS_REGION.MAX.WARN}' name: 'TiDB cluster: Too many missed regions (over {$PD.MISS_REGION.MAX.WARN} in 5m)' discover: NO_DISCOVER priority: WARNING diff --git a/templates/db/tidb_http/tidb_tidb_http/template_db_tidb_tidb_http.yaml b/templates/db/tidb_http/tidb_tidb_http/template_db_tidb_tidb_http.yaml index 2d6808ce59e..e138f2fa389 100644 --- a/templates/db/tidb_http/tidb_tidb_http/template_db_tidb_tidb_http.yaml +++ b/templates/db/tidb_http/tidb_tidb_http/template_db_tidb_tidb_http.yaml @@ -1,6 +1,6 @@ zabbix_export: version: '5.4' - date: '2021-04-22T12:58:24Z' + date: '2021-05-09T00:00:00Z' groups: - name: Templates/Databases @@ -71,7 +71,7 @@ zabbix_export: value: 'TiDB node' triggers: - - expression: '{min(5m)}>{$TIDB.DDL.WAITING.MAX.WARN}' + expression: 'min(/TiDB by HTTP/tidb.ddl_waiting_jobs,5m)>{$TIDB.DDL.WAITING.MAX.WARN}' name: 'TiDB: Too many DDL waiting jobs (over {$TIDB.DDL.WAITING.MAX.WARN} for 5m)' priority: WARNING - @@ -100,7 +100,7 @@ zabbix_export: value: 'TiDB node' triggers: - - expression: '{min(5m)}>{$TIDB.SCHEMA_LOAD_ERRORS.MAX.WARN}' + expression: 'min(/TiDB by HTTP/tidb.domain_load_schema.failed.rate,5m)>{$TIDB.SCHEMA_LOAD_ERRORS.MAX.WARN}' name: 'TiDB: Too many schema lease errors (over {$TIDB.SCHEMA_LOAD_ERRORS.MAX.WARN} for 5m)' priority: AVERAGE - @@ -232,7 +232,7 @@ zabbix_export: value: 'TiDB node' triggers: - - expression: '{min(5m)}>{$TIDB.HEAP.USAGE.MAX.WARN}' + expression: 'min(/TiDB by HTTP/tidb.heap_bytes,5m)>{$TIDB.HEAP.USAGE.MAX.WARN}' name: 'TiDB: Heap memory usage is too high (over {$TIDB.HEAP.USAGE.MAX.WARN} for 5m)' priority: WARNING - @@ -262,7 +262,7 @@ zabbix_export: value: 'TiDB node' triggers: - - expression: '{max(5m)}<{$TIDB.MONITOR_KEEP_ALIVE.MAX.WARN}' + expression: 'max(/TiDB by HTTP/tidb.monitor_keep_alive.rate,5m)<{$TIDB.MONITOR_KEEP_ALIVE.MAX.WARN}' name: 'TiDB: Too few keep alive operations (less {$TIDB.MONITOR_KEEP_ALIVE.MAX.WARN} for 5m)' priority: AVERAGE description: 'Indicates whether the TiDB process still exists. If the number of times for tidb_monitor_keep_alive_total increases less than 10 per minute, the TiDB process might already exit and an alert is triggered.' @@ -292,7 +292,7 @@ zabbix_export: value: 'TiDB node' triggers: - - expression: '{min(5m)}>{$TIDB.TIME_JUMP_BACK.MAX.WARN}' + expression: 'min(/TiDB by HTTP/tidb.monitor_time_jump_back.rate,5m)>{$TIDB.TIME_JUMP_BACK.MAX.WARN}' name: 'TiDB: Too many time jump backs (over {$TIDB.TIME_JUMP_BACK.MAX.WARN} for 5m)' priority: WARNING - @@ -527,7 +527,7 @@ zabbix_export: value: 'TiDB node' triggers: - - expression: '{min(5m)}>{$TIDB.SCHEMA_LEASE_ERRORS.MAX.WARN}' + expression: 'min(/TiDB by HTTP/tidb.session_schema_lease_error.outdate.rate,5m)>{$TIDB.SCHEMA_LEASE_ERRORS.MAX.WARN}' name: 'TiDB: Too many schema lease errors (over {$TIDB.SCHEMA_LEASE_ERRORS.MAX.WARN} for 5m)' priority: AVERAGE description: 'The latest schema information is not reloaded in TiDB within one lease.' @@ -584,7 +584,7 @@ zabbix_export: value: 'TiDB node' triggers: - - expression: '{last()}=0' + expression: 'last(/TiDB by HTTP/tidb.status)=0' name: 'TiDB: Instance is not responding' priority: AVERAGE - @@ -654,7 +654,7 @@ zabbix_export: value: 'TiDB node' triggers: - - expression: '{last()}>0' + expression: 'last(/TiDB by HTTP/tidb.tidb_server_panic_total.rate)>0' name: 'TiDB: There are panicked TiDB threads' priority: AVERAGE description: 'When a panic occurs, an alert is triggered. The thread is often recovered, otherwise, TiDB will frequently restart.' @@ -733,7 +733,7 @@ zabbix_export: value: 'TiDB node' triggers: - - expression: '{min(5m)}>{$TIDB.REGION_ERROR.MAX.WARN}' + expression: 'min(/TiDB by HTTP/tidb.tikvclient_region_err.rate,5m)>{$TIDB.REGION_ERROR.MAX.WARN}' name: 'TiDB: Too many region related errors (over {$TIDB.REGION_ERROR.MAX.WARN} for 5m)' priority: AVERAGE - @@ -788,7 +788,7 @@ zabbix_export: value: 'TiDB node' triggers: - - expression: '{last()}<10m' + expression: 'last(/TiDB by HTTP/tidb.uptime)<10m' name: 'TiDB: has been restarted (uptime < 10m)' priority: INFO description: 'Uptime is less than 10 minutes' @@ -819,7 +819,7 @@ zabbix_export: value: 'TiDB node' triggers: - - expression: '{diff()}=1 and {strlen()}>0' + expression: '(last(/TiDB by HTTP/tidb.version,#1)<>last(/TiDB by HTTP/tidb.version,#2))=1 and length(last(/TiDB by HTTP/tidb.version))>0' name: 'TiDB: Version has changed (new version: {ITEM.VALUE})' priority: INFO description: 'TiDB version has changed. Ack to close.' @@ -1093,7 +1093,7 @@ zabbix_export: value: 'TiDB node' trigger_prototypes: - - expression: '{min(5m)}>{$TIDB.GC_ACTIONS.ERRORS.MAX.WARN}' + expression: 'min(/TiDB by HTTP/tidb.tikvclient_gc_action.rate[{#TYPE}],5m)>{$TIDB.GC_ACTIONS.ERRORS.MAX.WARN}' name: 'TiDB: Too many failed GC-related operations (over {$TIDB.GC_ACTIONS.ERRORS.MAX.WARN} in 5m)' discover: NO_DISCOVER priority: WARNING @@ -1243,7 +1243,7 @@ zabbix_export: newvalue: Up triggers: - - expression: '{TiDB by HTTP:tidb.process_open_fds.min(5m)}/{TiDB by HTTP:tidb.process_max_fds.last()}*100>{$TIDB.OPEN.FDS.MAX.WARN}' + expression: 'min(/TiDB by HTTP/tidb.process_open_fds,5m)/last(/TiDB by HTTP/tidb.process_max_fds)*100>{$TIDB.OPEN.FDS.MAX.WARN}' name: 'TiDB: Current number of open files is too high (over {$TIDB.OPEN.FDS.MAX.WARN}% for 5m)' priority: WARNING description: '"Heavy file descriptor usage (i.e., near the process’s file descriptor limit) indicates a potential file descriptor exhaustion issue."' diff --git a/templates/db/tidb_http/tidb_tikv_http/template_db_tidb_tikv_http.yaml b/templates/db/tidb_http/tidb_tikv_http/template_db_tidb_tikv_http.yaml index c724cc76d64..8c553847ea4 100644 --- a/templates/db/tidb_http/tidb_tikv_http/template_db_tidb_tikv_http.yaml +++ b/templates/db/tidb_http/tidb_tikv_http/template_db_tidb_tikv_http.yaml @@ -1,6 +1,6 @@ zabbix_export: version: '5.4' - date: '2021-04-22T12:58:29Z' + date: '2021-05-09T00:00:00Z' groups: - name: Templates/Databases @@ -142,7 +142,7 @@ zabbix_export: value: 'TiKV node' triggers: - - expression: '{min(5m)}>{$TIKV.COPOCESSOR.ERRORS.MAX.WARN}' + expression: 'min(/TiDB TiKV by HTTP/tikv.coprocessor_request_error.rate,5m)>{$TIKV.COPOCESSOR.ERRORS.MAX.WARN}' name: 'TiKV: Too many coprocessor request error (over {$TIKV.COPOCESSOR.ERRORS.MAX.WARN} in 5m)' priority: WARNING - @@ -477,11 +477,11 @@ zabbix_export: value: 'TiKV node' triggers: - - expression: '{min(5m)}>{$TIKV.PENDING_COMMANDS.MAX.WARN}' + expression: 'min(/TiDB TiKV by HTTP/tikv.scheduler_contex,5m)>{$TIKV.PENDING_COMMANDS.MAX.WARN}' name: 'TiKV: Too many pending commands (over {$TIKV.PENDING_COMMANDS.MAX.WARN} for 5m)' priority: AVERAGE - - expression: '{min(5m)}>{$TIKV.PENDING_TASKS.MAX.WARN}' + expression: 'min(/TiDB TiKV by HTTP/tikv.scheduler_contex,5m)>{$TIKV.PENDING_TASKS.MAX.WARN}' name: 'TiKV: Too many pending commands (over {$TIKV.PENDING_TASKS.MAX.WARN} for 5m)' priority: AVERAGE - @@ -653,7 +653,7 @@ zabbix_export: value: 'TiKV node' triggers: - - expression: '{last()}<10m' + expression: 'last(/TiDB TiKV by HTTP/tikv.uptime)<10m' name: 'TiKV: has been restarted (uptime < 10m)' priority: INFO description: 'Uptime is less than 10 minutes' @@ -922,7 +922,7 @@ zabbix_export: value: 'TiKV node' trigger_prototypes: - - expression: '{min(5m)}>{$TIKV.STORE.ERRORS.MAX.WARN}' + expression: 'min(/TiDB TiKV by HTTP/tikv.messages.failure.rate[{#STORE_ID},{#TYPE}],5m)>{$TIKV.STORE.ERRORS.MAX.WARN}' name: 'TiKV: Store_id {#STORE_ID}: Too many failure messages "{#TYPE}" (over {$TIKV.STORE.ERRORS.MAX.WARN} in 5m)' discover: NO_DISCOVER priority: WARNING diff --git a/templates/module/00icmp_ping/00template_module_icmp_ping.yaml b/templates/module/00icmp_ping/00template_module_icmp_ping.yaml index 06a4ef17543..eebbeda40ae 100644 --- a/templates/module/00icmp_ping/00template_module_icmp_ping.yaml +++ b/templates/module/00icmp_ping/00template_module_icmp_ping.yaml @@ -1,6 +1,6 @@ zabbix_export: version: '5.4' - date: '2021-02-23T11:04:51Z' + date: '2021-05-09T00:00:00Z' groups: - name: Templates/Modules @@ -29,7 +29,7 @@ zabbix_export: value: Status triggers: - - expression: '{max(#3)}=0' + expression: 'max(/ICMP Ping/icmpping,#3)=0' name: 'Unavailable by ICMP ping' priority: HIGH description: 'Last three attempts returned timeout. Please check device connectivity.' @@ -46,14 +46,14 @@ zabbix_export: value: Status triggers: - - expression: '{min(5m)}>{$ICMP_LOSS_WARN} and {min(5m)}<100' + expression: 'min(/ICMP Ping/icmppingloss,5m)>{$ICMP_LOSS_WARN} and min(/ICMP Ping/icmppingloss,5m)<100' name: 'High ICMP ping loss' opdata: 'Loss: {ITEM.LASTVALUE1}' priority: WARNING dependencies: - name: 'Unavailable by ICMP ping' - expression: '{ICMP Ping:icmpping.max(#3)}=0' + expression: 'max(/ICMP Ping/icmpping,#3)=0' - name: 'ICMP response time' type: SIMPLE @@ -67,17 +67,17 @@ zabbix_export: value: Status triggers: - - expression: '{avg(5m)}>{$ICMP_RESPONSE_TIME_WARN}' + expression: 'avg(/ICMP Ping/icmppingsec,5m)>{$ICMP_RESPONSE_TIME_WARN}' name: 'High ICMP ping response time' opdata: 'Value: {ITEM.LASTVALUE1}' priority: WARNING dependencies: - name: 'High ICMP ping loss' - expression: '{ICMP Ping:icmppingloss.min(5m)}>{$ICMP_LOSS_WARN} and {ICMP Ping:icmppingloss.min(5m)}<100' + expression: 'min(/ICMP Ping/icmppingloss,5m)>{$ICMP_LOSS_WARN} and min(/ICMP Ping/icmppingloss,5m)<100' - name: 'Unavailable by ICMP ping' - expression: '{ICMP Ping:icmpping.max(#3)}=0' + expression: 'max(/ICMP Ping/icmpping,#3)=0' macros: - macro: '{$ICMP_LOSS_WARN}' diff --git a/templates/module/ether_like_snmp/template_module_ether_like_snmp.yaml b/templates/module/ether_like_snmp/template_module_ether_like_snmp.yaml index 369e0b179ea..b26dacbd9d3 100644 --- a/templates/module/ether_like_snmp/template_module_ether_like_snmp.yaml +++ b/templates/module/ether_like_snmp/template_module_ether_like_snmp.yaml @@ -1,6 +1,6 @@ zabbix_export: version: '5.4' - date: '2021-02-23T11:04:51Z' + date: '2021-05-09T00:00:00Z' groups: - name: Templates/Modules @@ -78,7 +78,7 @@ zabbix_export: value: 'Interface {#IFNAME}({#IFALIAS})' trigger_prototypes: - - expression: '{last()}=2' + expression: 'last(/EtherLike-MIB SNMP/net.if.duplex[dot3StatsDuplexStatus.{#SNMPINDEX}])=2' name: 'Interface {#IFNAME}({#IFALIAS}): In half-duplex mode' priority: WARNING description: 'Please check autonegotiation settings and cabling' diff --git a/templates/module/generic_snmp_snmp/template_module_generic_snmp_snmp.yaml b/templates/module/generic_snmp_snmp/template_module_generic_snmp_snmp.yaml index 4eb88a35602..a46d85b973f 100644 --- a/templates/module/generic_snmp_snmp/template_module_generic_snmp_snmp.yaml +++ b/templates/module/generic_snmp_snmp/template_module_generic_snmp_snmp.yaml @@ -1,6 +1,6 @@ zabbix_export: version: '5.4' - date: '2021-02-23T11:04:50Z' + date: '2021-05-09T00:00:00Z' groups: - name: Templates/Modules @@ -126,7 +126,7 @@ zabbix_export: value: General triggers: - - expression: '{diff()}=1 and {strlen()}>0' + expression: '(last(/Generic SNMP/system.name,#1)<>last(/Generic SNMP/system.name,#2))=1 and length(last(/Generic SNMP/system.name))>0' name: 'System name has changed (new name: {ITEM.VALUE})' priority: INFO description: 'System name has changed. Ack to close.' @@ -175,7 +175,7 @@ zabbix_export: value: Status triggers: - - expression: '{last()}<10m' + expression: 'last(/Generic SNMP/system.uptime[sysUpTime.0])<10m' name: '{HOST.NAME} has been restarted (uptime < 10m)' priority: WARNING description: 'Uptime is less than 10 minutes' @@ -183,7 +183,7 @@ zabbix_export: dependencies: - name: 'No SNMP data collection' - expression: '{Generic SNMP:zabbix[host,snmp,available].max({$SNMP.TIMEOUT})}=0' + expression: 'max(/Generic SNMP/zabbix[host,snmp,available],{$SNMP.TIMEOUT})=0' - name: 'SNMP agent availability' type: INTERNAL @@ -197,7 +197,7 @@ zabbix_export: value: Status triggers: - - expression: '{max({$SNMP.TIMEOUT})}=0' + expression: 'max(/Generic SNMP/zabbix[host,snmp,available],{$SNMP.TIMEOUT})=0' name: 'No SNMP data collection' opdata: 'Current state: {ITEM.LASTVALUE1}' priority: WARNING @@ -205,7 +205,7 @@ zabbix_export: dependencies: - name: 'Unavailable by ICMP ping' - expression: '{Generic SNMP:icmpping.max(#3)}=0' + expression: 'max(/Generic SNMP/icmpping,#3)=0' macros: - macro: '{$SNMP.TIMEOUT}' diff --git a/templates/module/host_resources_snmp/template_module_host_resources_snmp.yaml b/templates/module/host_resources_snmp/template_module_host_resources_snmp.yaml index 6ea8c931bd8..2127dbd8e1f 100644 --- a/templates/module/host_resources_snmp/template_module_host_resources_snmp.yaml +++ b/templates/module/host_resources_snmp/template_module_host_resources_snmp.yaml @@ -1,6 +1,6 @@ zabbix_export: version: '5.4' - date: '2021-04-22T11:28:23Z' + date: '2021-05-09T00:00:00Z' groups: - name: Templates/Modules @@ -42,7 +42,7 @@ zabbix_export: value: CPU triggers: - - expression: '{min(5m)}>{$CPU.UTIL.CRIT}' + expression: 'min(/HOST-RESOURCES-MIB CPU SNMP/system.cpu.util,5m)>{$CPU.UTIL.CRIT}' name: 'High CPU utilization (over {$CPU.UTIL.CRIT}% for 5m)' opdata: 'Current utilization: {ITEM.LASTVALUE1}' priority: WARNING @@ -139,7 +139,7 @@ zabbix_export: history: 7d value_type: FLOAT units: '%' - params: 'last("vm.memory.used[hrStorageUsed.{#SNMPINDEX}]")/last("vm.memory.total[hrStorageSize.{#SNMPINDEX}]")*100' + params: 'last(//vm.memory.used[hrStorageUsed.{#SNMPINDEX}])/last(//vm.memory.total[hrStorageSize.{#SNMPINDEX}])*100' description: 'Memory utilization in %' tags: - @@ -147,7 +147,7 @@ zabbix_export: value: Memory trigger_prototypes: - - expression: '{min(5m)}>{$MEMORY.UTIL.MAX}' + expression: 'min(/HOST-RESOURCES-MIB memory SNMP/vm.memory.util[memoryUsedPercentage.{#SNMPINDEX}],5m)>{$MEMORY.UTIL.MAX}' name: '{#MEMNAME}: High memory utilization (>{$MEMORY.UTIL.MAX}% for 5m)' priority: AVERAGE description: 'The system is running out of free memory.' @@ -213,6 +213,10 @@ zabbix_export: height: '5' fields: - + type: INTEGER + name: source_type + value: '0' + - type: GRAPH name: graphid value: @@ -222,7 +226,7 @@ zabbix_export: type: GRAPH_PROTOTYPE 'y': '5' width: '24' - height: '12' + height: '5' fields: - type: INTEGER @@ -231,7 +235,11 @@ zabbix_export: - type: INTEGER name: rows - value: '3' + value: '1' + - + type: INTEGER + name: source_type + value: '2' - type: GRAPH_PROTOTYPE name: graphid @@ -240,9 +248,9 @@ zabbix_export: host: 'HOST-RESOURCES-MIB SNMP' - type: GRAPH_PROTOTYPE - 'y': '17' + 'y': '10' width: '24' - height: '12' + height: '5' fields: - type: INTEGER @@ -251,7 +259,11 @@ zabbix_export: - type: INTEGER name: rows - value: '3' + value: '1' + - + type: INTEGER + name: source_type + value: '2' - type: GRAPH_PROTOTYPE name: graphid @@ -306,7 +318,7 @@ zabbix_export: history: 7d value_type: FLOAT units: '%' - params: '(last("vfs.fs.used[hrStorageUsed.{#SNMPINDEX}]")/last("vfs.fs.total[hrStorageSize.{#SNMPINDEX}]"))*100' + params: '(last(//vfs.fs.used[hrStorageUsed.{#SNMPINDEX}])/last(//vfs.fs.total[hrStorageSize.{#SNMPINDEX}]))*100' description: 'Space utilization in % for {#FSNAME}' tags: - @@ -355,8 +367,8 @@ zabbix_export: trigger_prototypes: - expression: | - {HOST-RESOURCES-MIB storage SNMP:vfs.fs.pused[storageUsedPercentage.{#SNMPINDEX}].last()}>{$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"} and - (({HOST-RESOURCES-MIB storage SNMP:vfs.fs.total[hrStorageSize.{#SNMPINDEX}].last()}-{HOST-RESOURCES-MIB storage SNMP:vfs.fs.used[hrStorageUsed.{#SNMPINDEX}].last()})<5G or {HOST-RESOURCES-MIB storage SNMP:vfs.fs.pused[storageUsedPercentage.{#SNMPINDEX}].timeleft(1h,,100)}<1d) + last(/HOST-RESOURCES-MIB storage SNMP/vfs.fs.pused[storageUsedPercentage.{#SNMPINDEX}])>{$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"} and + ((last(/HOST-RESOURCES-MIB storage SNMP/vfs.fs.total[hrStorageSize.{#SNMPINDEX}])-last(/HOST-RESOURCES-MIB storage SNMP/vfs.fs.used[hrStorageUsed.{#SNMPINDEX}]))<5G or timeleft(/HOST-RESOURCES-MIB storage SNMP/vfs.fs.pused[storageUsedPercentage.{#SNMPINDEX}],1h,100)<1d) name: '{#FSNAME}: Disk space is critically low (used > {$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"}%)' opdata: 'Space used: {ITEM.LASTVALUE3} of {ITEM.LASTVALUE2} ({ITEM.LASTVALUE1})' priority: AVERAGE @@ -368,8 +380,8 @@ zabbix_export: manual_close: 'YES' - expression: | - {HOST-RESOURCES-MIB storage SNMP:vfs.fs.pused[storageUsedPercentage.{#SNMPINDEX}].last()}>{$VFS.FS.PUSED.MAX.WARN:"{#FSNAME}"} and - (({HOST-RESOURCES-MIB storage SNMP:vfs.fs.total[hrStorageSize.{#SNMPINDEX}].last()}-{HOST-RESOURCES-MIB storage SNMP:vfs.fs.used[hrStorageUsed.{#SNMPINDEX}].last()})<10G or {HOST-RESOURCES-MIB storage SNMP:vfs.fs.pused[storageUsedPercentage.{#SNMPINDEX}].timeleft(1h,,100)}<1d) + last(/HOST-RESOURCES-MIB storage SNMP/vfs.fs.pused[storageUsedPercentage.{#SNMPINDEX}])>{$VFS.FS.PUSED.MAX.WARN:"{#FSNAME}"} and + ((last(/HOST-RESOURCES-MIB storage SNMP/vfs.fs.total[hrStorageSize.{#SNMPINDEX}])-last(/HOST-RESOURCES-MIB storage SNMP/vfs.fs.used[hrStorageUsed.{#SNMPINDEX}]))<10G or timeleft(/HOST-RESOURCES-MIB storage SNMP/vfs.fs.pused[storageUsedPercentage.{#SNMPINDEX}],1h,100)<1d) name: '{#FSNAME}: Disk space is low (used > {$VFS.FS.PUSED.MAX.WARN:"{#FSNAME}"}%)' opdata: 'Space used: {ITEM.LASTVALUE3} of {ITEM.LASTVALUE2} ({ITEM.LASTVALUE1})' priority: WARNING @@ -383,8 +395,8 @@ zabbix_export: - name: '{#FSNAME}: Disk space is critically low (used > {$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"}%)' expression: | - {HOST-RESOURCES-MIB storage SNMP:vfs.fs.pused[storageUsedPercentage.{#SNMPINDEX}].last()}>{$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"} and - (({HOST-RESOURCES-MIB storage SNMP:vfs.fs.total[hrStorageSize.{#SNMPINDEX}].last()}-{HOST-RESOURCES-MIB storage SNMP:vfs.fs.used[hrStorageUsed.{#SNMPINDEX}].last()})<5G or {HOST-RESOURCES-MIB storage SNMP:vfs.fs.pused[storageUsedPercentage.{#SNMPINDEX}].timeleft(1h,,100)}<1d) + last(/HOST-RESOURCES-MIB storage SNMP/vfs.fs.pused[storageUsedPercentage.{#SNMPINDEX}])>{$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"} and + ((last(/HOST-RESOURCES-MIB storage SNMP/vfs.fs.total[hrStorageSize.{#SNMPINDEX}])-last(/HOST-RESOURCES-MIB storage SNMP/vfs.fs.used[hrStorageUsed.{#SNMPINDEX}]))<5G or timeleft(/HOST-RESOURCES-MIB storage SNMP/vfs.fs.pused[storageUsedPercentage.{#SNMPINDEX}],1h,100)<1d) graph_prototypes: - name: '{#FSNAME}: Disk space usage' diff --git a/templates/module/interfaces_simple_snmp/template_module_interfaces_simple_snmp.yaml b/templates/module/interfaces_simple_snmp/template_module_interfaces_simple_snmp.yaml index 95fd7d9c8af..c3549848501 100644 --- a/templates/module/interfaces_simple_snmp/template_module_interfaces_simple_snmp.yaml +++ b/templates/module/interfaces_simple_snmp/template_module_interfaces_simple_snmp.yaml @@ -1,6 +1,6 @@ zabbix_export: version: '5.4' - date: '2021-04-22T11:28:22Z' + date: '2021-05-09T00:00:00Z' groups: - name: Templates/Modules @@ -256,9 +256,9 @@ zabbix_export: value: 'Interface {#IFDESCR}' trigger_prototypes: - - expression: '{$IFCONTROL:"{#IFNAME}"}=1 and ({last()}=2 and {diff()}=1)' + expression: '{$IFCONTROL:"{#IFNAME}"}=1 and (last(/Interfaces Simple SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}])=2 and (last(/Interfaces Simple SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}],#1)<>last(/Interfaces Simple SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}],#2))=1)' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{last()}<>2 or {$IFCONTROL:"{#IFNAME}"}=0' + recovery_expression: 'last(/Interfaces Simple SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}])<>2 or {$IFCONTROL:"{#IFNAME}"}=0' name: 'Interface {#IFDESCR}: Link down' opdata: 'Current state: {ITEM.LASTVALUE1}' priority: AVERAGE @@ -297,21 +297,21 @@ zabbix_export: trigger_prototypes: - expression: | - {Interfaces Simple SNMP:net.if.speed[ifSpeed.{#SNMPINDEX}].change()}<0 and {Interfaces Simple SNMP:net.if.speed[ifSpeed.{#SNMPINDEX}].last()}>0 + change(/Interfaces Simple SNMP/net.if.speed[ifSpeed.{#SNMPINDEX}])<0 and last(/Interfaces Simple SNMP/net.if.speed[ifSpeed.{#SNMPINDEX}])>0 and ( - {Interfaces Simple SNMP:net.if.type[ifType.{#SNMPINDEX}].last()}=6 or - {Interfaces Simple SNMP:net.if.type[ifType.{#SNMPINDEX}].last()}=7 or - {Interfaces Simple SNMP:net.if.type[ifType.{#SNMPINDEX}].last()}=11 or - {Interfaces Simple SNMP:net.if.type[ifType.{#SNMPINDEX}].last()}=62 or - {Interfaces Simple SNMP:net.if.type[ifType.{#SNMPINDEX}].last()}=69 or - {Interfaces Simple SNMP:net.if.type[ifType.{#SNMPINDEX}].last()}=117 + last(/Interfaces Simple SNMP/net.if.type[ifType.{#SNMPINDEX}])=6 or + last(/Interfaces Simple SNMP/net.if.type[ifType.{#SNMPINDEX}])=7 or + last(/Interfaces Simple SNMP/net.if.type[ifType.{#SNMPINDEX}])=11 or + last(/Interfaces Simple SNMP/net.if.type[ifType.{#SNMPINDEX}])=62 or + last(/Interfaces Simple SNMP/net.if.type[ifType.{#SNMPINDEX}])=69 or + last(/Interfaces Simple SNMP/net.if.type[ifType.{#SNMPINDEX}])=117 ) and - ({Interfaces Simple SNMP:net.if.status[ifOperStatus.{#SNMPINDEX}].last()}<>2) + (last(/Interfaces Simple SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}])<>2) recovery_mode: RECOVERY_EXPRESSION recovery_expression: | - ({Interfaces Simple SNMP:net.if.speed[ifSpeed.{#SNMPINDEX}].change()}>0 and {Interfaces Simple SNMP:net.if.speed[ifSpeed.{#SNMPINDEX}].prev()}>0) or - ({Interfaces Simple SNMP:net.if.status[ifOperStatus.{#SNMPINDEX}].last()}=2) + (change(/Interfaces Simple SNMP/net.if.speed[ifSpeed.{#SNMPINDEX}])>0 and last(/Interfaces Simple SNMP/net.if.speed[ifSpeed.{#SNMPINDEX}],#2)>0) or + (last(/Interfaces Simple SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}])=2) name: 'Interface {#IFDESCR}: Ethernet has changed to lower speed than it was before' opdata: 'Current reported speed: {ITEM.LASTVALUE1}' priority: INFO @@ -320,17 +320,17 @@ zabbix_export: dependencies: - name: 'Interface {#IFDESCR}: Link down' - expression: '{$IFCONTROL:"{#IFNAME}"}=1 and ({Interfaces Simple SNMP:net.if.status[ifOperStatus.{#SNMPINDEX}].last()}=2 and {Interfaces Simple SNMP:net.if.status[ifOperStatus.{#SNMPINDEX}].diff()}=1)' - recovery_expression: '{Interfaces Simple SNMP:net.if.status[ifOperStatus.{#SNMPINDEX}].last()}<>2 or {$IFCONTROL:"{#IFNAME}"}=0' + expression: '{$IFCONTROL:"{#IFNAME}"}=1 and (last(/Interfaces Simple SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}])=2 and (last(/Interfaces Simple SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}],#1)<>last(/Interfaces Simple SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}],#2))=1)' + recovery_expression: 'last(/Interfaces Simple SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}])<>2 or {$IFCONTROL:"{#IFNAME}"}=0' - expression: | - ({Interfaces Simple SNMP:net.if.in[ifInOctets.{#SNMPINDEX}].avg(15m)}>({$IF.UTIL.MAX:"{#IFNAME}"}/100)*{Interfaces Simple SNMP:net.if.speed[ifSpeed.{#SNMPINDEX}].last()} or - {Interfaces Simple SNMP:net.if.out[ifOutOctets.{#SNMPINDEX}].avg(15m)}>({$IF.UTIL.MAX:"{#IFNAME}"}/100)*{Interfaces Simple SNMP:net.if.speed[ifSpeed.{#SNMPINDEX}].last()}) and - {Interfaces Simple SNMP:net.if.speed[ifSpeed.{#SNMPINDEX}].last()}>0 + (avg(/Interfaces Simple SNMP/net.if.in[ifInOctets.{#SNMPINDEX}],15m)>({$IF.UTIL.MAX:"{#IFNAME}"}/100)*last(/Interfaces Simple SNMP/net.if.speed[ifSpeed.{#SNMPINDEX}]) or + avg(/Interfaces Simple SNMP/net.if.out[ifOutOctets.{#SNMPINDEX}],15m)>({$IF.UTIL.MAX:"{#IFNAME}"}/100)*last(/Interfaces Simple SNMP/net.if.speed[ifSpeed.{#SNMPINDEX}])) and + last(/Interfaces Simple SNMP/net.if.speed[ifSpeed.{#SNMPINDEX}])>0 recovery_mode: RECOVERY_EXPRESSION recovery_expression: | - {Interfaces Simple SNMP:net.if.in[ifInOctets.{#SNMPINDEX}].avg(15m)}<(({$IF.UTIL.MAX:"{#IFNAME}"}-3)/100)*{Interfaces Simple SNMP:net.if.speed[ifSpeed.{#SNMPINDEX}].last()} and - {Interfaces Simple SNMP:net.if.out[ifOutOctets.{#SNMPINDEX}].avg(15m)}<(({$IF.UTIL.MAX:"{#IFNAME}"}-3)/100)*{Interfaces Simple SNMP:net.if.speed[ifSpeed.{#SNMPINDEX}].last()} + avg(/Interfaces Simple SNMP/net.if.in[ifInOctets.{#SNMPINDEX}],15m)<(({$IF.UTIL.MAX:"{#IFNAME}"}-3)/100)*last(/Interfaces Simple SNMP/net.if.speed[ifSpeed.{#SNMPINDEX}]) and + avg(/Interfaces Simple SNMP/net.if.out[ifOutOctets.{#SNMPINDEX}],15m)<(({$IF.UTIL.MAX:"{#IFNAME}"}-3)/100)*last(/Interfaces Simple SNMP/net.if.speed[ifSpeed.{#SNMPINDEX}]) name: 'Interface {#IFDESCR}: High bandwidth usage (>{$IF.UTIL.MAX:"{#IFNAME}"}% )' opdata: 'In: {ITEM.LASTVALUE1}, out: {ITEM.LASTVALUE3}, speed: {ITEM.LASTVALUE2}' priority: WARNING @@ -339,16 +339,16 @@ zabbix_export: dependencies: - name: 'Interface {#IFDESCR}: Link down' - expression: '{$IFCONTROL:"{#IFNAME}"}=1 and ({Interfaces Simple SNMP:net.if.status[ifOperStatus.{#SNMPINDEX}].last()}=2 and {Interfaces Simple SNMP:net.if.status[ifOperStatus.{#SNMPINDEX}].diff()}=1)' - recovery_expression: '{Interfaces Simple SNMP:net.if.status[ifOperStatus.{#SNMPINDEX}].last()}<>2 or {$IFCONTROL:"{#IFNAME}"}=0' + expression: '{$IFCONTROL:"{#IFNAME}"}=1 and (last(/Interfaces Simple SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}])=2 and (last(/Interfaces Simple SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}],#1)<>last(/Interfaces Simple SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}],#2))=1)' + recovery_expression: 'last(/Interfaces Simple SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}])<>2 or {$IFCONTROL:"{#IFNAME}"}=0' - expression: | - {Interfaces Simple SNMP:net.if.in.errors[ifInErrors.{#SNMPINDEX}].min(5m)}>{$IF.ERRORS.WARN:"{#IFNAME}"} - or {Interfaces Simple SNMP:net.if.out.errors[ifOutErrors.{#SNMPINDEX}].min(5m)}>{$IF.ERRORS.WARN:"{#IFNAME}"} + min(/Interfaces Simple SNMP/net.if.in.errors[ifInErrors.{#SNMPINDEX}],5m)>{$IF.ERRORS.WARN:"{#IFNAME}"} + or min(/Interfaces Simple SNMP/net.if.out.errors[ifOutErrors.{#SNMPINDEX}],5m)>{$IF.ERRORS.WARN:"{#IFNAME}"} recovery_mode: RECOVERY_EXPRESSION recovery_expression: | - {Interfaces Simple SNMP:net.if.in.errors[ifInErrors.{#SNMPINDEX}].max(5m)}<{$IF.ERRORS.WARN:"{#IFNAME}"}*0.8 - and {Interfaces Simple SNMP:net.if.out.errors[ifOutErrors.{#SNMPINDEX}].max(5m)}<{$IF.ERRORS.WARN:"{#IFNAME}"}*0.8 + max(/Interfaces Simple SNMP/net.if.in.errors[ifInErrors.{#SNMPINDEX}],5m)<{$IF.ERRORS.WARN:"{#IFNAME}"}*0.8 + and max(/Interfaces Simple SNMP/net.if.out.errors[ifOutErrors.{#SNMPINDEX}],5m)<{$IF.ERRORS.WARN:"{#IFNAME}"}*0.8 name: 'Interface {#IFDESCR}: High error rate (>{$IF.ERRORS.WARN:"{#IFNAME}"} for 5m)' opdata: 'errors in: {ITEM.LASTVALUE1}, errors out: {ITEM.LASTVALUE2}' priority: WARNING @@ -357,8 +357,8 @@ zabbix_export: dependencies: - name: 'Interface {#IFDESCR}: Link down' - expression: '{$IFCONTROL:"{#IFNAME}"}=1 and ({Interfaces Simple SNMP:net.if.status[ifOperStatus.{#SNMPINDEX}].last()}=2 and {Interfaces Simple SNMP:net.if.status[ifOperStatus.{#SNMPINDEX}].diff()}=1)' - recovery_expression: '{Interfaces Simple SNMP:net.if.status[ifOperStatus.{#SNMPINDEX}].last()}<>2 or {$IFCONTROL:"{#IFNAME}"}=0' + expression: '{$IFCONTROL:"{#IFNAME}"}=1 and (last(/Interfaces Simple SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}])=2 and (last(/Interfaces Simple SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}],#1)<>last(/Interfaces Simple SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}],#2))=1)' + recovery_expression: 'last(/Interfaces Simple SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}])<>2 or {$IFCONTROL:"{#IFNAME}"}=0' graph_prototypes: - name: 'Interface {#IFDESCR}: Network traffic' @@ -457,7 +457,7 @@ zabbix_export: - type: GRAPH_PROTOTYPE width: '24' - height: '12' + height: '5' fields: - type: INTEGER @@ -466,7 +466,11 @@ zabbix_export: - type: INTEGER name: rows - value: '3' + value: '1' + - + type: INTEGER + name: source_type + value: '2' - type: GRAPH_PROTOTYPE name: graphid diff --git a/templates/module/interfaces_snmp/template_module_interfaces_snmp.yaml b/templates/module/interfaces_snmp/template_module_interfaces_snmp.yaml index 904195d2176..cb3996658ef 100644 --- a/templates/module/interfaces_snmp/template_module_interfaces_snmp.yaml +++ b/templates/module/interfaces_snmp/template_module_interfaces_snmp.yaml @@ -1,6 +1,6 @@ zabbix_export: version: '5.4' - date: '2021-04-22T11:28:21Z' + date: '2021-05-09T00:00:00Z' groups: - name: Templates/Modules @@ -265,9 +265,9 @@ zabbix_export: value: 'Interface {#IFNAME}({#IFALIAS})' trigger_prototypes: - - expression: '{$IFCONTROL:"{#IFNAME}"}=1 and ({last()}=2 and {diff()}=1)' + expression: '{$IFCONTROL:"{#IFNAME}"}=1 and (last(/Interfaces SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}])=2 and (last(/Interfaces SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}],#1)<>last(/Interfaces SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}],#2))=1)' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{last()}<>2 or {$IFCONTROL:"{#IFNAME}"}=0' + recovery_expression: 'last(/Interfaces SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}])<>2 or {$IFCONTROL:"{#IFNAME}"}=0' name: 'Interface {#IFNAME}({#IFALIAS}): Link down' opdata: 'Current state: {ITEM.LASTVALUE1}' priority: AVERAGE @@ -306,21 +306,21 @@ zabbix_export: trigger_prototypes: - expression: | - {Interfaces SNMP:net.if.speed[ifHighSpeed.{#SNMPINDEX}].change()}<0 and {Interfaces SNMP:net.if.speed[ifHighSpeed.{#SNMPINDEX}].last()}>0 + change(/Interfaces SNMP/net.if.speed[ifHighSpeed.{#SNMPINDEX}])<0 and last(/Interfaces SNMP/net.if.speed[ifHighSpeed.{#SNMPINDEX}])>0 and ( - {Interfaces SNMP:net.if.type[ifType.{#SNMPINDEX}].last()}=6 or - {Interfaces SNMP:net.if.type[ifType.{#SNMPINDEX}].last()}=7 or - {Interfaces SNMP:net.if.type[ifType.{#SNMPINDEX}].last()}=11 or - {Interfaces SNMP:net.if.type[ifType.{#SNMPINDEX}].last()}=62 or - {Interfaces SNMP:net.if.type[ifType.{#SNMPINDEX}].last()}=69 or - {Interfaces SNMP:net.if.type[ifType.{#SNMPINDEX}].last()}=117 + last(/Interfaces SNMP/net.if.type[ifType.{#SNMPINDEX}])=6 or + last(/Interfaces SNMP/net.if.type[ifType.{#SNMPINDEX}])=7 or + last(/Interfaces SNMP/net.if.type[ifType.{#SNMPINDEX}])=11 or + last(/Interfaces SNMP/net.if.type[ifType.{#SNMPINDEX}])=62 or + last(/Interfaces SNMP/net.if.type[ifType.{#SNMPINDEX}])=69 or + last(/Interfaces SNMP/net.if.type[ifType.{#SNMPINDEX}])=117 ) and - ({Interfaces SNMP:net.if.status[ifOperStatus.{#SNMPINDEX}].last()}<>2) + (last(/Interfaces SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}])<>2) recovery_mode: RECOVERY_EXPRESSION recovery_expression: | - ({Interfaces SNMP:net.if.speed[ifHighSpeed.{#SNMPINDEX}].change()}>0 and {Interfaces SNMP:net.if.speed[ifHighSpeed.{#SNMPINDEX}].prev()}>0) or - ({Interfaces SNMP:net.if.status[ifOperStatus.{#SNMPINDEX}].last()}=2) + (change(/Interfaces SNMP/net.if.speed[ifHighSpeed.{#SNMPINDEX}])>0 and last(/Interfaces SNMP/net.if.speed[ifHighSpeed.{#SNMPINDEX}],#2)>0) or + (last(/Interfaces SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}])=2) name: 'Interface {#IFNAME}({#IFALIAS}): Ethernet has changed to lower speed than it was before' opdata: 'Current reported speed: {ITEM.LASTVALUE1}' priority: INFO @@ -329,17 +329,17 @@ zabbix_export: dependencies: - name: 'Interface {#IFNAME}({#IFALIAS}): Link down' - expression: '{$IFCONTROL:"{#IFNAME}"}=1 and ({Interfaces SNMP:net.if.status[ifOperStatus.{#SNMPINDEX}].last()}=2 and {Interfaces SNMP:net.if.status[ifOperStatus.{#SNMPINDEX}].diff()}=1)' - recovery_expression: '{Interfaces SNMP:net.if.status[ifOperStatus.{#SNMPINDEX}].last()}<>2 or {$IFCONTROL:"{#IFNAME}"}=0' + expression: '{$IFCONTROL:"{#IFNAME}"}=1 and (last(/Interfaces SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}])=2 and (last(/Interfaces SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}],#1)<>last(/Interfaces SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}],#2))=1)' + recovery_expression: 'last(/Interfaces SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}])<>2 or {$IFCONTROL:"{#IFNAME}"}=0' - expression: | - ({Interfaces SNMP:net.if.in[ifHCInOctets.{#SNMPINDEX}].avg(15m)}>({$IF.UTIL.MAX:"{#IFNAME}"}/100)*{Interfaces SNMP:net.if.speed[ifHighSpeed.{#SNMPINDEX}].last()} or - {Interfaces SNMP:net.if.out[ifHCOutOctets.{#SNMPINDEX}].avg(15m)}>({$IF.UTIL.MAX:"{#IFNAME}"}/100)*{Interfaces SNMP:net.if.speed[ifHighSpeed.{#SNMPINDEX}].last()}) and - {Interfaces SNMP:net.if.speed[ifHighSpeed.{#SNMPINDEX}].last()}>0 + (avg(/Interfaces SNMP/net.if.in[ifHCInOctets.{#SNMPINDEX}],15m)>({$IF.UTIL.MAX:"{#IFNAME}"}/100)*last(/Interfaces SNMP/net.if.speed[ifHighSpeed.{#SNMPINDEX}]) or + avg(/Interfaces SNMP/net.if.out[ifHCOutOctets.{#SNMPINDEX}],15m)>({$IF.UTIL.MAX:"{#IFNAME}"}/100)*last(/Interfaces SNMP/net.if.speed[ifHighSpeed.{#SNMPINDEX}])) and + last(/Interfaces SNMP/net.if.speed[ifHighSpeed.{#SNMPINDEX}])>0 recovery_mode: RECOVERY_EXPRESSION recovery_expression: | - {Interfaces SNMP:net.if.in[ifHCInOctets.{#SNMPINDEX}].avg(15m)}<(({$IF.UTIL.MAX:"{#IFNAME}"}-3)/100)*{Interfaces SNMP:net.if.speed[ifHighSpeed.{#SNMPINDEX}].last()} and - {Interfaces SNMP:net.if.out[ifHCOutOctets.{#SNMPINDEX}].avg(15m)}<(({$IF.UTIL.MAX:"{#IFNAME}"}-3)/100)*{Interfaces SNMP:net.if.speed[ifHighSpeed.{#SNMPINDEX}].last()} + avg(/Interfaces SNMP/net.if.in[ifHCInOctets.{#SNMPINDEX}],15m)<(({$IF.UTIL.MAX:"{#IFNAME}"}-3)/100)*last(/Interfaces SNMP/net.if.speed[ifHighSpeed.{#SNMPINDEX}]) and + avg(/Interfaces SNMP/net.if.out[ifHCOutOctets.{#SNMPINDEX}],15m)<(({$IF.UTIL.MAX:"{#IFNAME}"}-3)/100)*last(/Interfaces SNMP/net.if.speed[ifHighSpeed.{#SNMPINDEX}]) name: 'Interface {#IFNAME}({#IFALIAS}): High bandwidth usage (>{$IF.UTIL.MAX:"{#IFNAME}"}% )' opdata: 'In: {ITEM.LASTVALUE1}, out: {ITEM.LASTVALUE3}, speed: {ITEM.LASTVALUE2}' priority: WARNING @@ -348,16 +348,16 @@ zabbix_export: dependencies: - name: 'Interface {#IFNAME}({#IFALIAS}): Link down' - expression: '{$IFCONTROL:"{#IFNAME}"}=1 and ({Interfaces SNMP:net.if.status[ifOperStatus.{#SNMPINDEX}].last()}=2 and {Interfaces SNMP:net.if.status[ifOperStatus.{#SNMPINDEX}].diff()}=1)' - recovery_expression: '{Interfaces SNMP:net.if.status[ifOperStatus.{#SNMPINDEX}].last()}<>2 or {$IFCONTROL:"{#IFNAME}"}=0' + expression: '{$IFCONTROL:"{#IFNAME}"}=1 and (last(/Interfaces SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}])=2 and (last(/Interfaces SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}],#1)<>last(/Interfaces SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}],#2))=1)' + recovery_expression: 'last(/Interfaces SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}])<>2 or {$IFCONTROL:"{#IFNAME}"}=0' - expression: | - {Interfaces SNMP:net.if.in.errors[ifInErrors.{#SNMPINDEX}].min(5m)}>{$IF.ERRORS.WARN:"{#IFNAME}"} - or {Interfaces SNMP:net.if.out.errors[ifOutErrors.{#SNMPINDEX}].min(5m)}>{$IF.ERRORS.WARN:"{#IFNAME}"} + min(/Interfaces SNMP/net.if.in.errors[ifInErrors.{#SNMPINDEX}],5m)>{$IF.ERRORS.WARN:"{#IFNAME}"} + or min(/Interfaces SNMP/net.if.out.errors[ifOutErrors.{#SNMPINDEX}],5m)>{$IF.ERRORS.WARN:"{#IFNAME}"} recovery_mode: RECOVERY_EXPRESSION recovery_expression: | - {Interfaces SNMP:net.if.in.errors[ifInErrors.{#SNMPINDEX}].max(5m)}<{$IF.ERRORS.WARN:"{#IFNAME}"}*0.8 - and {Interfaces SNMP:net.if.out.errors[ifOutErrors.{#SNMPINDEX}].max(5m)}<{$IF.ERRORS.WARN:"{#IFNAME}"}*0.8 + max(/Interfaces SNMP/net.if.in.errors[ifInErrors.{#SNMPINDEX}],5m)<{$IF.ERRORS.WARN:"{#IFNAME}"}*0.8 + and max(/Interfaces SNMP/net.if.out.errors[ifOutErrors.{#SNMPINDEX}],5m)<{$IF.ERRORS.WARN:"{#IFNAME}"}*0.8 name: 'Interface {#IFNAME}({#IFALIAS}): High error rate (>{$IF.ERRORS.WARN:"{#IFNAME}"} for 5m)' opdata: 'errors in: {ITEM.LASTVALUE1}, errors out: {ITEM.LASTVALUE2}' priority: WARNING @@ -366,8 +366,8 @@ zabbix_export: dependencies: - name: 'Interface {#IFNAME}({#IFALIAS}): Link down' - expression: '{$IFCONTROL:"{#IFNAME}"}=1 and ({Interfaces SNMP:net.if.status[ifOperStatus.{#SNMPINDEX}].last()}=2 and {Interfaces SNMP:net.if.status[ifOperStatus.{#SNMPINDEX}].diff()}=1)' - recovery_expression: '{Interfaces SNMP:net.if.status[ifOperStatus.{#SNMPINDEX}].last()}<>2 or {$IFCONTROL:"{#IFNAME}"}=0' + expression: '{$IFCONTROL:"{#IFNAME}"}=1 and (last(/Interfaces SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}])=2 and (last(/Interfaces SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}],#1)<>last(/Interfaces SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}],#2))=1)' + recovery_expression: 'last(/Interfaces SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}])<>2 or {$IFCONTROL:"{#IFNAME}"}=0' graph_prototypes: - name: 'Interface {#IFNAME}({#IFALIAS}): Network traffic' @@ -472,7 +472,7 @@ zabbix_export: - type: GRAPH_PROTOTYPE width: '24' - height: '12' + height: '5' fields: - type: INTEGER @@ -481,7 +481,11 @@ zabbix_export: - type: INTEGER name: rows - value: '3' + value: '1' + - + type: INTEGER + name: source_type + value: '2' - type: GRAPH_PROTOTYPE name: graphid diff --git a/templates/module/interfaces_win_snmp/template_module_interfaces_win_snmp.yaml b/templates/module/interfaces_win_snmp/template_module_interfaces_win_snmp.yaml index ecb85038b27..3a0c3b4a1b1 100644 --- a/templates/module/interfaces_win_snmp/template_module_interfaces_win_snmp.yaml +++ b/templates/module/interfaces_win_snmp/template_module_interfaces_win_snmp.yaml @@ -1,6 +1,6 @@ zabbix_export: version: '5.4' - date: '2021-04-22T11:28:23Z' + date: '2021-05-09T00:00:00Z' groups: - name: Templates/Modules @@ -269,9 +269,9 @@ zabbix_export: value: 'Interface {#IFNAME}({#IFALIAS})' trigger_prototypes: - - expression: '{$IFCONTROL:"{#IFNAME}"}=1 and ({last()}=2 and {diff()}=1)' + expression: '{$IFCONTROL:"{#IFNAME}"}=1 and (last(/Interfaces Windows SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}])=2 and (last(/Interfaces Windows SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}],#1)<>last(/Interfaces Windows SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}],#2))=1)' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{last()}<>2 or {$IFCONTROL:"{#IFNAME}"}=0' + recovery_expression: 'last(/Interfaces Windows SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}])<>2 or {$IFCONTROL:"{#IFNAME}"}=0' name: 'Interface {#IFNAME}({#IFALIAS}): Link down' opdata: 'Current state: {ITEM.LASTVALUE1}' priority: AVERAGE @@ -310,21 +310,21 @@ zabbix_export: trigger_prototypes: - expression: | - {Interfaces Windows SNMP:net.if.speed[ifHighSpeed.{#SNMPINDEX}].change()}<0 and {Interfaces Windows SNMP:net.if.speed[ifHighSpeed.{#SNMPINDEX}].last()}>0 + change(/Interfaces Windows SNMP/net.if.speed[ifHighSpeed.{#SNMPINDEX}])<0 and last(/Interfaces Windows SNMP/net.if.speed[ifHighSpeed.{#SNMPINDEX}])>0 and ( - {Interfaces Windows SNMP:net.if.type[ifType.{#SNMPINDEX}].last()}=6 or - {Interfaces Windows SNMP:net.if.type[ifType.{#SNMPINDEX}].last()}=7 or - {Interfaces Windows SNMP:net.if.type[ifType.{#SNMPINDEX}].last()}=11 or - {Interfaces Windows SNMP:net.if.type[ifType.{#SNMPINDEX}].last()}=62 or - {Interfaces Windows SNMP:net.if.type[ifType.{#SNMPINDEX}].last()}=69 or - {Interfaces Windows SNMP:net.if.type[ifType.{#SNMPINDEX}].last()}=117 + last(/Interfaces Windows SNMP/net.if.type[ifType.{#SNMPINDEX}])=6 or + last(/Interfaces Windows SNMP/net.if.type[ifType.{#SNMPINDEX}])=7 or + last(/Interfaces Windows SNMP/net.if.type[ifType.{#SNMPINDEX}])=11 or + last(/Interfaces Windows SNMP/net.if.type[ifType.{#SNMPINDEX}])=62 or + last(/Interfaces Windows SNMP/net.if.type[ifType.{#SNMPINDEX}])=69 or + last(/Interfaces Windows SNMP/net.if.type[ifType.{#SNMPINDEX}])=117 ) and - ({Interfaces Windows SNMP:net.if.status[ifOperStatus.{#SNMPINDEX}].last()}<>2) + (last(/Interfaces Windows SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}])<>2) recovery_mode: RECOVERY_EXPRESSION recovery_expression: | - ({Interfaces Windows SNMP:net.if.speed[ifHighSpeed.{#SNMPINDEX}].change()}>0 and {Interfaces Windows SNMP:net.if.speed[ifHighSpeed.{#SNMPINDEX}].prev()}>0) or - ({Interfaces Windows SNMP:net.if.status[ifOperStatus.{#SNMPINDEX}].last()}=2) + (change(/Interfaces Windows SNMP/net.if.speed[ifHighSpeed.{#SNMPINDEX}])>0 and last(/Interfaces Windows SNMP/net.if.speed[ifHighSpeed.{#SNMPINDEX}],#2)>0) or + (last(/Interfaces Windows SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}])=2) name: 'Interface {#IFNAME}({#IFALIAS}): Ethernet has changed to lower speed than it was before' opdata: 'Current reported speed: {ITEM.LASTVALUE1}' priority: INFO @@ -333,17 +333,17 @@ zabbix_export: dependencies: - name: 'Interface {#IFNAME}({#IFALIAS}): Link down' - expression: '{$IFCONTROL:"{#IFNAME}"}=1 and ({Interfaces Windows SNMP:net.if.status[ifOperStatus.{#SNMPINDEX}].last()}=2 and {Interfaces Windows SNMP:net.if.status[ifOperStatus.{#SNMPINDEX}].diff()}=1)' - recovery_expression: '{Interfaces Windows SNMP:net.if.status[ifOperStatus.{#SNMPINDEX}].last()}<>2 or {$IFCONTROL:"{#IFNAME}"}=0' + expression: '{$IFCONTROL:"{#IFNAME}"}=1 and (last(/Interfaces Windows SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}])=2 and (last(/Interfaces Windows SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}],#1)<>last(/Interfaces Windows SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}],#2))=1)' + recovery_expression: 'last(/Interfaces Windows SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}])<>2 or {$IFCONTROL:"{#IFNAME}"}=0' - expression: | - ({Interfaces Windows SNMP:net.if.in[ifInOctets.{#SNMPINDEX}].avg(15m)}>({$IF.UTIL.MAX:"{#IFNAME}"}/100)*{Interfaces Windows SNMP:net.if.speed[ifHighSpeed.{#SNMPINDEX}].last()} or - {Interfaces Windows SNMP:net.if.out[ifOutOctets.{#SNMPINDEX}].avg(15m)}>({$IF.UTIL.MAX:"{#IFNAME}"}/100)*{Interfaces Windows SNMP:net.if.speed[ifHighSpeed.{#SNMPINDEX}].last()}) and - {Interfaces Windows SNMP:net.if.speed[ifHighSpeed.{#SNMPINDEX}].last()}>0 + (avg(/Interfaces Windows SNMP/net.if.in[ifInOctets.{#SNMPINDEX}],15m)>({$IF.UTIL.MAX:"{#IFNAME}"}/100)*last(/Interfaces Windows SNMP/net.if.speed[ifHighSpeed.{#SNMPINDEX}]) or + avg(/Interfaces Windows SNMP/net.if.out[ifOutOctets.{#SNMPINDEX}],15m)>({$IF.UTIL.MAX:"{#IFNAME}"}/100)*last(/Interfaces Windows SNMP/net.if.speed[ifHighSpeed.{#SNMPINDEX}])) and + last(/Interfaces Windows SNMP/net.if.speed[ifHighSpeed.{#SNMPINDEX}])>0 recovery_mode: RECOVERY_EXPRESSION recovery_expression: | - {Interfaces Windows SNMP:net.if.in[ifInOctets.{#SNMPINDEX}].avg(15m)}<(({$IF.UTIL.MAX:"{#IFNAME}"}-3)/100)*{Interfaces Windows SNMP:net.if.speed[ifHighSpeed.{#SNMPINDEX}].last()} and - {Interfaces Windows SNMP:net.if.out[ifOutOctets.{#SNMPINDEX}].avg(15m)}<(({$IF.UTIL.MAX:"{#IFNAME}"}-3)/100)*{Interfaces Windows SNMP:net.if.speed[ifHighSpeed.{#SNMPINDEX}].last()} + avg(/Interfaces Windows SNMP/net.if.in[ifInOctets.{#SNMPINDEX}],15m)<(({$IF.UTIL.MAX:"{#IFNAME}"}-3)/100)*last(/Interfaces Windows SNMP/net.if.speed[ifHighSpeed.{#SNMPINDEX}]) and + avg(/Interfaces Windows SNMP/net.if.out[ifOutOctets.{#SNMPINDEX}],15m)<(({$IF.UTIL.MAX:"{#IFNAME}"}-3)/100)*last(/Interfaces Windows SNMP/net.if.speed[ifHighSpeed.{#SNMPINDEX}]) name: 'Interface {#IFNAME}({#IFALIAS}): High bandwidth usage (>{$IF.UTIL.MAX:"{#IFNAME}"}% )' opdata: 'In: {ITEM.LASTVALUE1}, out: {ITEM.LASTVALUE3}, speed: {ITEM.LASTVALUE2}' priority: WARNING @@ -352,16 +352,16 @@ zabbix_export: dependencies: - name: 'Interface {#IFNAME}({#IFALIAS}): Link down' - expression: '{$IFCONTROL:"{#IFNAME}"}=1 and ({Interfaces Windows SNMP:net.if.status[ifOperStatus.{#SNMPINDEX}].last()}=2 and {Interfaces Windows SNMP:net.if.status[ifOperStatus.{#SNMPINDEX}].diff()}=1)' - recovery_expression: '{Interfaces Windows SNMP:net.if.status[ifOperStatus.{#SNMPINDEX}].last()}<>2 or {$IFCONTROL:"{#IFNAME}"}=0' + expression: '{$IFCONTROL:"{#IFNAME}"}=1 and (last(/Interfaces Windows SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}])=2 and (last(/Interfaces Windows SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}],#1)<>last(/Interfaces Windows SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}],#2))=1)' + recovery_expression: 'last(/Interfaces Windows SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}])<>2 or {$IFCONTROL:"{#IFNAME}"}=0' - expression: | - {Interfaces Windows SNMP:net.if.in.errors[ifInErrors.{#SNMPINDEX}].min(5m)}>{$IF.ERRORS.WARN:"{#IFNAME}"} - or {Interfaces Windows SNMP:net.if.out.errors[ifOutErrors.{#SNMPINDEX}].min(5m)}>{$IF.ERRORS.WARN:"{#IFNAME}"} + min(/Interfaces Windows SNMP/net.if.in.errors[ifInErrors.{#SNMPINDEX}],5m)>{$IF.ERRORS.WARN:"{#IFNAME}"} + or min(/Interfaces Windows SNMP/net.if.out.errors[ifOutErrors.{#SNMPINDEX}],5m)>{$IF.ERRORS.WARN:"{#IFNAME}"} recovery_mode: RECOVERY_EXPRESSION recovery_expression: | - {Interfaces Windows SNMP:net.if.in.errors[ifInErrors.{#SNMPINDEX}].max(5m)}<{$IF.ERRORS.WARN:"{#IFNAME}"}*0.8 - and {Interfaces Windows SNMP:net.if.out.errors[ifOutErrors.{#SNMPINDEX}].max(5m)}<{$IF.ERRORS.WARN:"{#IFNAME}"}*0.8 + max(/Interfaces Windows SNMP/net.if.in.errors[ifInErrors.{#SNMPINDEX}],5m)<{$IF.ERRORS.WARN:"{#IFNAME}"}*0.8 + and max(/Interfaces Windows SNMP/net.if.out.errors[ifOutErrors.{#SNMPINDEX}],5m)<{$IF.ERRORS.WARN:"{#IFNAME}"}*0.8 name: 'Interface {#IFNAME}({#IFALIAS}): High error rate (>{$IF.ERRORS.WARN:"{#IFNAME}"} for 5m)' opdata: 'errors in: {ITEM.LASTVALUE1}, errors out: {ITEM.LASTVALUE2}' priority: WARNING @@ -370,8 +370,8 @@ zabbix_export: dependencies: - name: 'Interface {#IFNAME}({#IFALIAS}): Link down' - expression: '{$IFCONTROL:"{#IFNAME}"}=1 and ({Interfaces Windows SNMP:net.if.status[ifOperStatus.{#SNMPINDEX}].last()}=2 and {Interfaces Windows SNMP:net.if.status[ifOperStatus.{#SNMPINDEX}].diff()}=1)' - recovery_expression: '{Interfaces Windows SNMP:net.if.status[ifOperStatus.{#SNMPINDEX}].last()}<>2 or {$IFCONTROL:"{#IFNAME}"}=0' + expression: '{$IFCONTROL:"{#IFNAME}"}=1 and (last(/Interfaces Windows SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}])=2 and (last(/Interfaces Windows SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}],#1)<>last(/Interfaces Windows SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}],#2))=1)' + recovery_expression: 'last(/Interfaces Windows SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}])<>2 or {$IFCONTROL:"{#IFNAME}"}=0' graph_prototypes: - name: 'Interface {#IFNAME}({#IFALIAS}): Network traffic' @@ -475,7 +475,7 @@ zabbix_export: - type: GRAPH_PROTOTYPE width: '24' - height: '12' + height: '5' fields: - type: INTEGER @@ -484,7 +484,11 @@ zabbix_export: - type: INTEGER name: rows - value: '3' + value: '1' + - + type: INTEGER + name: source_type + value: '2' - type: GRAPH_PROTOTYPE name: graphid diff --git a/templates/module/smart_agent2/template_module_smart_agent2.yaml b/templates/module/smart_agent2/template_module_smart_agent2.yaml index 0ed48f3ccc5..71dd9fec1fa 100644 --- a/templates/module/smart_agent2/template_module_smart_agent2.yaml +++ b/templates/module/smart_agent2/template_module_smart_agent2.yaml @@ -1,6 +1,6 @@ zabbix_export: version: '5.4' - date: '2021-04-22T11:28:23Z' + date: '2021-05-09T00:00:00Z' groups: - name: Templates/Modules @@ -58,7 +58,7 @@ zabbix_export: value: '{#DISKTYPE} {#NAME}' trigger_prototypes: - - expression: '{last()} <= {#THRESH}' + expression: 'last(/SMART by Zabbix agent 2/smart.disk.error[{#NAME},{#ID}]) <= {#THRESH}' name: 'SMART [{#NAME}]: Attribute {#ID} {#ATTRNAME} is failed' priority: WARNING description: 'The value should be greater than THRESH.' @@ -199,7 +199,7 @@ zabbix_export: value: '{#DISKTYPE} {#NAME}' trigger_prototypes: - - expression: '{last()}>90' + expression: 'last(/SMART by Zabbix agent 2/smart.disk.percentage_used[{#NAME}])>90' name: 'SMART [{#NAME}]: NVMe disk percentage using is over 90% of estimated endurance' priority: AVERAGE - @@ -227,7 +227,7 @@ zabbix_export: value: '{#DISKTYPE} {#NAME}' trigger_prototypes: - - expression: '{diff()}=1 and {strlen()}>0' + expression: '(last(/SMART by Zabbix agent 2/smart.disk.sn[{#NAME}],#1)<>last(/SMART by Zabbix agent 2/smart.disk.sn[{#NAME}],#2))=1 and length(last(/SMART by Zabbix agent 2/smart.disk.sn[{#NAME}]))>0' name: 'SMART [{#NAME}]: Disk has been replaced (new serial number received)' priority: INFO description: 'Device serial number has changed. Ack to close.' @@ -257,17 +257,17 @@ zabbix_export: value: '{#DISKTYPE} {#NAME}' trigger_prototypes: - - expression: '{avg(5m)}>{$SMART.TEMPERATURE.MAX.CRIT}' + expression: 'avg(/SMART by Zabbix agent 2/smart.disk.temperature[{#NAME}],5m)>{$SMART.TEMPERATURE.MAX.CRIT}' name: 'SMART [{#NAME}]: Average disk temperature is critical (over {$SMART.TEMPERATURE.MAX.CRIT}°C for 5m)' priority: AVERAGE - - expression: '{avg(5m)}>{$SMART.TEMPERATURE.MAX.WARN}' + expression: 'avg(/SMART by Zabbix agent 2/smart.disk.temperature[{#NAME}],5m)>{$SMART.TEMPERATURE.MAX.WARN}' name: 'SMART [{#NAME}]: Average disk temperature is too high (over {$SMART.TEMPERATURE.MAX.WARN}°C for 5m)' priority: WARNING dependencies: - name: 'SMART [{#NAME}]: Average disk temperature is critical (over {$SMART.TEMPERATURE.MAX.CRIT}°C for 5m)' - expression: '{SMART by Zabbix agent 2:smart.disk.temperature[{#NAME}].avg(5m)}>{$SMART.TEMPERATURE.MAX.CRIT}' + expression: 'avg(/SMART by Zabbix agent 2/smart.disk.temperature[{#NAME}],5m)>{$SMART.TEMPERATURE.MAX.CRIT}' - name: 'SMART [{#NAME}]: Self-test passed' type: DEPENDENT @@ -294,7 +294,7 @@ zabbix_export: value: '{#DISKTYPE} {#NAME}' trigger_prototypes: - - expression: '{last()}="false"' + expression: 'last(/SMART by Zabbix agent 2/smart.disk.test[{#NAME}])="false"' name: 'SMART [{#NAME}]: Disk self-test is not passed' priority: HIGH overrides: diff --git a/templates/module/smart_agent2_active/template_module_smart_agent2_active.yaml b/templates/module/smart_agent2_active/template_module_smart_agent2_active.yaml index 928725c1e57..281a579ac7e 100644 --- a/templates/module/smart_agent2_active/template_module_smart_agent2_active.yaml +++ b/templates/module/smart_agent2_active/template_module_smart_agent2_active.yaml @@ -1,6 +1,6 @@ zabbix_export: version: '5.4' - date: '2021-04-22T11:28:22Z' + date: '2021-05-09T00:00:00Z' groups: - name: Templates/Modules @@ -60,7 +60,7 @@ zabbix_export: value: '{#DISKTYPE} {#NAME}' trigger_prototypes: - - expression: '{last()} <= {#THRESH}' + expression: 'last(/SMART by Zabbix agent active 2/smart.disk.error[{#NAME},{#ID}]) <= {#THRESH}' name: 'SMART [{#NAME}]: Attribute {#ID} {#ATTRNAME} is failed' priority: WARNING description: 'The value should be greater than THRESH.' @@ -202,7 +202,7 @@ zabbix_export: value: '{#DISKTYPE} {#NAME}' trigger_prototypes: - - expression: '{last()}>90' + expression: 'last(/SMART by Zabbix agent active 2/smart.disk.percentage_used[{#NAME}])>90' name: 'SMART [{#NAME}]: NVMe disk percentage using is over 90% of estimated endurance' priority: AVERAGE - @@ -230,7 +230,7 @@ zabbix_export: value: '{#DISKTYPE} {#NAME}' trigger_prototypes: - - expression: '{diff()}=1 and {strlen()}>0' + expression: '(last(/SMART by Zabbix agent active 2/smart.disk.sn[{#NAME}],#1)<>last(/SMART by Zabbix agent active 2/smart.disk.sn[{#NAME}],#2))=1 and length(last(/SMART by Zabbix agent active 2/smart.disk.sn[{#NAME}]))>0' name: 'SMART [{#NAME}]: Disk has been replaced (new serial number received)' priority: INFO description: 'Device serial number has changed. Ack to close.' @@ -260,17 +260,17 @@ zabbix_export: value: '{#DISKTYPE} {#NAME}' trigger_prototypes: - - expression: '{avg(5m)}>{$SMART.TEMPERATURE.MAX.CRIT}' + expression: 'avg(/SMART by Zabbix agent active 2/smart.disk.temperature[{#NAME}],5m)>{$SMART.TEMPERATURE.MAX.CRIT}' name: 'SMART [{#NAME}]: Average disk temperature is critical (over {$SMART.TEMPERATURE.MAX.CRIT}°C for 5m)' priority: AVERAGE - - expression: '{avg(5m)}>{$SMART.TEMPERATURE.MAX.WARN}' + expression: 'avg(/SMART by Zabbix agent active 2/smart.disk.temperature[{#NAME}],5m)>{$SMART.TEMPERATURE.MAX.WARN}' name: 'SMART [{#NAME}]: Average disk temperature is too high (over {$SMART.TEMPERATURE.MAX.WARN}°C for 5m)' priority: WARNING dependencies: - name: 'SMART [{#NAME}]: Average disk temperature is critical (over {$SMART.TEMPERATURE.MAX.CRIT}°C for 5m)' - expression: '{SMART by Zabbix agent active 2:smart.disk.temperature[{#NAME}].avg(5m)}>{$SMART.TEMPERATURE.MAX.CRIT}' + expression: 'avg(/SMART by Zabbix agent active 2/smart.disk.temperature[{#NAME}],5m)>{$SMART.TEMPERATURE.MAX.CRIT}' - name: 'SMART [{#NAME}]: Self-test passed' type: DEPENDENT @@ -297,7 +297,7 @@ zabbix_export: value: '{#DISKTYPE} {#NAME}' trigger_prototypes: - - expression: '{last()}="false"' + expression: 'last(/SMART by Zabbix agent active 2/smart.disk.test[{#NAME}])="false"' name: 'SMART [{#NAME}]: Disk self-test is not passed' priority: HIGH overrides: diff --git a/templates/module/zabbix_agent/template_module_zabbix_agent.yaml b/templates/module/zabbix_agent/template_module_zabbix_agent.yaml index 4e57e58d73e..5c3a77a397d 100644 --- a/templates/module/zabbix_agent/template_module_zabbix_agent.yaml +++ b/templates/module/zabbix_agent/template_module_zabbix_agent.yaml @@ -1,6 +1,6 @@ zabbix_export: version: '5.4' - date: '2021-02-23T11:04:50Z' + date: '2021-05-09T00:00:00Z' groups: - name: Templates/Modules @@ -73,7 +73,7 @@ zabbix_export: value: Status triggers: - - expression: '{max({$AGENT.TIMEOUT})}=0' + expression: 'max(/Zabbix agent/zabbix[host,agent,available],{$AGENT.TIMEOUT})=0' name: 'Zabbix agent is not available (for {$AGENT.TIMEOUT})' priority: AVERAGE description: 'For passive only agents, host availability is used with {$AGENT.TIMEOUT} as time threshold.' @@ -144,7 +144,7 @@ zabbix_export: value: Status triggers: - - expression: '{nodata({$AGENT.NODATA_TIMEOUT})}=1' + expression: 'nodata(/Zabbix agent active/agent.ping,{$AGENT.NODATA_TIMEOUT})=1' name: 'Zabbix agent is not available (or nodata for {$AGENT.NODATA_TIMEOUT})' priority: AVERAGE description: 'For active agents, nodata() with agent.ping is used with {$AGENT.NODATA_TIMEOUT} as time threshold.' diff --git a/templates/net/alcatel_timetra_snmp/template_net_alcatel_timetra_snmp.yaml b/templates/net/alcatel_timetra_snmp/template_net_alcatel_timetra_snmp.yaml index 6f8bd0e2551..90cefeef51c 100644 --- a/templates/net/alcatel_timetra_snmp/template_net_alcatel_timetra_snmp.yaml +++ b/templates/net/alcatel_timetra_snmp/template_net_alcatel_timetra_snmp.yaml @@ -1,6 +1,6 @@ zabbix_export: version: '5.4' - date: '2021-02-23T11:04:34Z' + date: '2021-05-09T00:00:00Z' groups: - name: 'Templates/Network devices' @@ -45,7 +45,7 @@ zabbix_export: value: CPU triggers: - - expression: '{min(5m)}>{$CPU.UTIL.CRIT}' + expression: 'min(/Alcatel Timetra TiMOS SNMP/system.cpu.util[sgiCpuUsage.0],5m)>{$CPU.UTIL.CRIT}' name: 'High CPU utilization (over {$CPU.UTIL.CRIT}% for 5m)' opdata: 'Current utilization: {ITEM.LASTVALUE1}' priority: WARNING @@ -102,7 +102,7 @@ zabbix_export: value: Inventory triggers: - - expression: '{diff()}=1 and {strlen()}>0' + expression: '(last(/Alcatel Timetra TiMOS SNMP/system.sw.os[sysDescr.0],#1)<>last(/Alcatel Timetra TiMOS SNMP/system.sw.os[sysDescr.0],#2))=1 and length(last(/Alcatel Timetra TiMOS SNMP/system.sw.os[sysDescr.0]))>0' name: 'Operating system description has changed' priority: INFO description: 'Operating system description has changed. Possible reasons that system has been updated or replaced. Ack to close.' @@ -132,7 +132,7 @@ zabbix_export: key: 'vm.memory.total[snmp]' history: 7d units: B - params: 'last("vm.memory.available[sgiKbMemoryAvailable.0]")+last("vm.memory.used[sgiKbMemoryUsed.0]")' + params: 'last(//vm.memory.available[sgiKbMemoryAvailable.0])+last(//vm.memory.used[sgiKbMemoryUsed.0])' description: 'Total memory in Bytes' tags: - @@ -164,7 +164,7 @@ zabbix_export: history: 7d value_type: FLOAT units: '%' - params: 'last("vm.memory.used[sgiKbMemoryUsed.0]")/(last("vm.memory.available[sgiKbMemoryAvailable.0]")+last("vm.memory.used[sgiKbMemoryUsed.0]"))*100' + params: 'last(//vm.memory.used[sgiKbMemoryUsed.0])/(last(//vm.memory.available[sgiKbMemoryAvailable.0])+last(//vm.memory.used[sgiKbMemoryUsed.0]))*100' description: 'Memory utilization in %' tags: - @@ -172,7 +172,7 @@ zabbix_export: value: Memory triggers: - - expression: '{min(5m)}>{$MEMORY.UTIL.MAX}' + expression: 'min(/Alcatel Timetra TiMOS SNMP/vm.memory.util[vm.memory.util.0],5m)>{$MEMORY.UTIL.MAX}' name: 'High memory utilization (>{$MEMORY.UTIL.MAX}% for 5m)' priority: AVERAGE description: 'The system is running out of free memory.' @@ -212,7 +212,7 @@ zabbix_export: value: Inventory trigger_prototypes: - - expression: '{diff()}=1 and {strlen()}>0' + expression: '(last(/Alcatel Timetra TiMOS SNMP/system.hw.serialnumber[tmnxHwSerialNumber.{#SNMPINDEX}],#1)<>last(/Alcatel Timetra TiMOS SNMP/system.hw.serialnumber[tmnxHwSerialNumber.{#SNMPINDEX}],#2))=1 and length(last(/Alcatel Timetra TiMOS SNMP/system.hw.serialnumber[tmnxHwSerialNumber.{#SNMPINDEX}]))>0' name: '{#ENT_NAME}: Device has been replaced (new serial number received)' priority: INFO description: 'Device serial number has changed. Ack to close' @@ -249,7 +249,7 @@ zabbix_export: value: Fans trigger_prototypes: - - expression: '{count(#1,{$FAN_CRIT_STATUS},eq)}=1' + expression: 'count(/Alcatel Timetra TiMOS SNMP/sensor.fan.status[tmnxChassisFanOperStatus.{#SNMPINDEX}],#1,"eq","{$FAN_CRIT_STATUS}")=1' name: '#{#SNMPINDEX}: Fan is in critical state' opdata: 'Current state: {ITEM.LASTVALUE1}' priority: AVERAGE @@ -284,7 +284,7 @@ zabbix_export: value: 'Power supply' trigger_prototypes: - - expression: '{count(#1,{$PSU_CRIT_STATUS},eq)}=1' + expression: 'count(/Alcatel Timetra TiMOS SNMP/sensor.psu.status[tmnxChassisPowerSupply1Status.{#SNMPINDEX}],#1,"eq","{$PSU_CRIT_STATUS}")=1' name: '#{#SNMPINDEX}: Power supply is in critical state' opdata: 'Current state: {ITEM.LASTVALUE1}' priority: AVERAGE @@ -312,7 +312,7 @@ zabbix_export: value: 'Power supply' trigger_prototypes: - - expression: '{count(#1,{$PSU_CRIT_STATUS},eq)}=1' + expression: 'count(/Alcatel Timetra TiMOS SNMP/sensor.psu.status[tmnxChassisPowerSupply2Status.{#SNMPINDEX}],#1,"eq","{$PSU_CRIT_STATUS}")=1' name: '#{#SNMPINDEX}: Power supply is in critical state' opdata: 'Current state: {ITEM.LASTVALUE1}' priority: AVERAGE @@ -347,17 +347,17 @@ zabbix_export: value: Temperature trigger_prototypes: - - expression: '{avg(5m)}>{$TEMP_CRIT:""}' + expression: 'avg(/Alcatel Timetra TiMOS SNMP/sensor.temp.value[tmnxHwTemperature.{#SNMPINDEX}],5m)>{$TEMP_CRIT:""}' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{max(5m)}<{$TEMP_CRIT:""}-3' + recovery_expression: 'max(/Alcatel Timetra TiMOS SNMP/sensor.temp.value[tmnxHwTemperature.{#SNMPINDEX}],5m)<{$TEMP_CRIT:""}-3' name: '{#SNMPVALUE}: Temperature is above critical threshold: >{$TEMP_CRIT:""}' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: HIGH description: 'This trigger uses temperature sensor values as well as temperature sensor status if available' - - expression: '{avg(5m)}>{$TEMP_WARN:""}' + expression: 'avg(/Alcatel Timetra TiMOS SNMP/sensor.temp.value[tmnxHwTemperature.{#SNMPINDEX}],5m)>{$TEMP_WARN:""}' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{max(5m)}<{$TEMP_WARN:""}-3' + recovery_expression: 'max(/Alcatel Timetra TiMOS SNMP/sensor.temp.value[tmnxHwTemperature.{#SNMPINDEX}],5m)<{$TEMP_WARN:""}-3' name: '{#SNMPVALUE}: Temperature is above warning threshold: >{$TEMP_WARN:""}' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING @@ -365,12 +365,12 @@ zabbix_export: dependencies: - name: '{#SNMPVALUE}: Temperature is above critical threshold: >{$TEMP_CRIT:""}' - expression: '{Alcatel Timetra TiMOS SNMP:sensor.temp.value[tmnxHwTemperature.{#SNMPINDEX}].avg(5m)}>{$TEMP_CRIT:""}' - recovery_expression: '{Alcatel Timetra TiMOS SNMP:sensor.temp.value[tmnxHwTemperature.{#SNMPINDEX}].max(5m)}<{$TEMP_CRIT:""}-3' + expression: 'avg(/Alcatel Timetra TiMOS SNMP/sensor.temp.value[tmnxHwTemperature.{#SNMPINDEX}],5m)>{$TEMP_CRIT:""}' + recovery_expression: 'max(/Alcatel Timetra TiMOS SNMP/sensor.temp.value[tmnxHwTemperature.{#SNMPINDEX}],5m)<{$TEMP_CRIT:""}-3' - - expression: '{avg(5m)}<{$TEMP_CRIT_LOW:""}' + expression: 'avg(/Alcatel Timetra TiMOS SNMP/sensor.temp.value[tmnxHwTemperature.{#SNMPINDEX}],5m)<{$TEMP_CRIT_LOW:""}' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{min(5m)}>{$TEMP_CRIT_LOW:""}+3' + recovery_expression: 'min(/Alcatel Timetra TiMOS SNMP/sensor.temp.value[tmnxHwTemperature.{#SNMPINDEX}],5m)>{$TEMP_CRIT_LOW:""}+3' name: '{#SNMPVALUE}: Temperature is too low: <{$TEMP_CRIT_LOW:""}' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: AVERAGE diff --git a/templates/net/arista_snmp/template_net_arista_snmp.yaml b/templates/net/arista_snmp/template_net_arista_snmp.yaml index fe6ffd2787d..8843f845273 100644 --- a/templates/net/arista_snmp/template_net_arista_snmp.yaml +++ b/templates/net/arista_snmp/template_net_arista_snmp.yaml @@ -1,6 +1,6 @@ zabbix_export: version: '5.4' - date: '2021-02-23T11:04:34Z' + date: '2021-05-09T00:00:00Z' groups: - name: 'Templates/Network devices' @@ -116,7 +116,7 @@ zabbix_export: value: Inventory trigger_prototypes: - - expression: '{diff()}=1 and {strlen()}>0' + expression: '(last(/Arista SNMP/system.hw.serialnumber[entPhysicalSerialNum.{#SNMPINDEX}],#1)<>last(/Arista SNMP/system.hw.serialnumber[entPhysicalSerialNum.{#SNMPINDEX}],#2))=1 and length(last(/Arista SNMP/system.hw.serialnumber[entPhysicalSerialNum.{#SNMPINDEX}]))>0' name: '{#ENT_NAME}: Device has been replaced (new serial number received)' priority: INFO description: 'Device serial number has changed. Ack to close' @@ -152,7 +152,7 @@ zabbix_export: value: Fans trigger_prototypes: - - expression: '{min(5m)} > {#THRESHOLD_HI_CRIT}' + expression: 'min(/Arista SNMP/sensor.fan.speed[entPhySensorValue.{#SNMPINDEX}],5m) > {#THRESHOLD_HI_CRIT}' name: '{#SENSOR_INFO}: Fan speed is above the critical threshold of {#THRESHOLD_HI_CRIT}rpm for 5m' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: HIGH @@ -160,9 +160,9 @@ zabbix_export: dependencies: - name: '{#SENSOR_INFO}: Fan is in critical state' - expression: '{Arista SNMP:sensor.fan.status[entPhySensorOperStatus.{#SNMPINDEX}].count(#1,{$FAN_CRIT_STATUS},eq)}=1' + expression: 'count(/Arista SNMP/sensor.fan.status[entPhySensorOperStatus.{#SNMPINDEX}],#1,"eq","{$FAN_CRIT_STATUS}")=1' - - expression: '{min(5m)} > {#THRESHOLD_HI_WARN}' + expression: 'min(/Arista SNMP/sensor.fan.speed[entPhySensorValue.{#SNMPINDEX}],5m) > {#THRESHOLD_HI_WARN}' name: '{#SENSOR_INFO}: Fan speed is above the warning threshold of {#THRESHOLD_HI_WARN}rpm for 5m' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING @@ -170,12 +170,12 @@ zabbix_export: dependencies: - name: '{#SENSOR_INFO}: Fan is in critical state' - expression: '{Arista SNMP:sensor.fan.status[entPhySensorOperStatus.{#SNMPINDEX}].count(#1,{$FAN_CRIT_STATUS},eq)}=1' + expression: 'count(/Arista SNMP/sensor.fan.status[entPhySensorOperStatus.{#SNMPINDEX}],#1,"eq","{$FAN_CRIT_STATUS}")=1' - name: '{#SENSOR_INFO}: Fan speed is above the critical threshold of {#THRESHOLD_HI_CRIT}rpm for 5m' - expression: '{Arista SNMP:sensor.fan.speed[entPhySensorValue.{#SNMPINDEX}].min(5m)} > {#THRESHOLD_HI_CRIT}' + expression: 'min(/Arista SNMP/sensor.fan.speed[entPhySensorValue.{#SNMPINDEX}],5m) > {#THRESHOLD_HI_CRIT}' - - expression: '{max(5m)} < {#THRESHOLD_LO_CRIT}' + expression: 'max(/Arista SNMP/sensor.fan.speed[entPhySensorValue.{#SNMPINDEX}],5m) < {#THRESHOLD_LO_CRIT}' name: '{#SENSOR_INFO}: Fan speed is below the critical threshold of {#THRESHOLD_LO_CRIT}rpm for 5m' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: HIGH @@ -183,9 +183,9 @@ zabbix_export: dependencies: - name: '{#SENSOR_INFO}: Fan is in critical state' - expression: '{Arista SNMP:sensor.fan.status[entPhySensorOperStatus.{#SNMPINDEX}].count(#1,{$FAN_CRIT_STATUS},eq)}=1' + expression: 'count(/Arista SNMP/sensor.fan.status[entPhySensorOperStatus.{#SNMPINDEX}],#1,"eq","{$FAN_CRIT_STATUS}")=1' - - expression: '{max(5m)} < {#THRESHOLD_LO_WARN}' + expression: 'max(/Arista SNMP/sensor.fan.speed[entPhySensorValue.{#SNMPINDEX}],5m) < {#THRESHOLD_LO_WARN}' name: '{#SENSOR_INFO}: Fan speed is below the warning threshold of {#THRESHOLD_LO_WARN}rpm for 5m' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING @@ -193,10 +193,10 @@ zabbix_export: dependencies: - name: '{#SENSOR_INFO}: Fan is in critical state' - expression: '{Arista SNMP:sensor.fan.status[entPhySensorOperStatus.{#SNMPINDEX}].count(#1,{$FAN_CRIT_STATUS},eq)}=1' + expression: 'count(/Arista SNMP/sensor.fan.status[entPhySensorOperStatus.{#SNMPINDEX}],#1,"eq","{$FAN_CRIT_STATUS}")=1' - name: '{#SENSOR_INFO}: Fan speed is below the critical threshold of {#THRESHOLD_LO_CRIT}rpm for 5m' - expression: '{Arista SNMP:sensor.fan.speed[entPhySensorValue.{#SNMPINDEX}].max(5m)} < {#THRESHOLD_LO_CRIT}' + expression: 'max(/Arista SNMP/sensor.fan.speed[entPhySensorValue.{#SNMPINDEX}],5m) < {#THRESHOLD_LO_CRIT}' - name: '{#SENSOR_INFO}: Fan status' type: SNMP_AGENT @@ -216,7 +216,7 @@ zabbix_export: value: Fans trigger_prototypes: - - expression: '{count(#1,{$FAN_CRIT_STATUS},eq)}=1' + expression: 'count(/Arista SNMP/sensor.fan.status[entPhySensorOperStatus.{#SNMPINDEX}],#1,"eq","{$FAN_CRIT_STATUS}")=1' name: '{#SENSOR_INFO}: Fan is in critical state' opdata: 'Current state: {ITEM.LASTVALUE1}' priority: AVERAGE @@ -318,7 +318,7 @@ zabbix_export: value: 'Power supply' trigger_prototypes: - - expression: '{count(#1,{$PSU_CRIT_STATUS},eq)}=1' + expression: 'count(/Arista SNMP/sensor.psu.status[entStateOper.{#SNMPINDEX}],#1,"eq","{$PSU_CRIT_STATUS}")=1' name: '{#ENT_NAME}: Power supply is in critical state' opdata: 'Current state: {ITEM.LASTVALUE1}' priority: AVERAGE @@ -382,13 +382,13 @@ zabbix_export: value: Temperature trigger_prototypes: - - expression: '{min(5m)} > {#THRESHOLD_HI_CRIT}' + expression: 'min(/Arista SNMP/sensor.temp.value[entPhySensorValue.{#SNMPINDEX}],5m) > {#THRESHOLD_HI_CRIT}' name: '{#SENSOR_INFO}: Temperature is above the critical threshold of {#THRESHOLD_HI_CRIT}°C for 5m' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: HIGH description: 'This trigger uses temperature sensor values defined in the device.' - - expression: '{min(5m)} > {#THRESHOLD_HI_WARN}' + expression: 'min(/Arista SNMP/sensor.temp.value[entPhySensorValue.{#SNMPINDEX}],5m) > {#THRESHOLD_HI_WARN}' name: '{#SENSOR_INFO}: Temperature is above the warning threshold of {#THRESHOLD_HI_WARN}°C for 5m' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING @@ -396,15 +396,15 @@ zabbix_export: dependencies: - name: '{#SENSOR_INFO}: Temperature is above the critical threshold of {#THRESHOLD_HI_CRIT}°C for 5m' - expression: '{Arista SNMP:sensor.temp.value[entPhySensorValue.{#SNMPINDEX}].min(5m)} > {#THRESHOLD_HI_CRIT}' + expression: 'min(/Arista SNMP/sensor.temp.value[entPhySensorValue.{#SNMPINDEX}],5m) > {#THRESHOLD_HI_CRIT}' - - expression: '{max(5m)} < {#THRESHOLD_LO_CRIT}' + expression: 'max(/Arista SNMP/sensor.temp.value[entPhySensorValue.{#SNMPINDEX}],5m) < {#THRESHOLD_LO_CRIT}' name: '{#SENSOR_INFO}: Temperature is below the critical threshold of {#THRESHOLD_LO_CRIT}°C for 5m' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: HIGH description: 'This trigger uses temperature sensor values defined in the device.' - - expression: '{max(5m)} < {#THRESHOLD_LO_WARN}' + expression: 'max(/Arista SNMP/sensor.temp.value[entPhySensorValue.{#SNMPINDEX}],5m) < {#THRESHOLD_LO_WARN}' name: '{#SENSOR_INFO}: Temperature is below the warning threshold of {#THRESHOLD_LO_WARN}°C for 5m' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING @@ -412,7 +412,7 @@ zabbix_export: dependencies: - name: '{#SENSOR_INFO}: Temperature is below the critical threshold of {#THRESHOLD_LO_CRIT}°C for 5m' - expression: '{Arista SNMP:sensor.temp.value[entPhySensorValue.{#SNMPINDEX}].max(5m)} < {#THRESHOLD_LO_CRIT}' + expression: 'max(/Arista SNMP/sensor.temp.value[entPhySensorValue.{#SNMPINDEX}],5m) < {#THRESHOLD_LO_CRIT}' master_item: key: sensors.get overrides: @@ -512,13 +512,13 @@ zabbix_export: value: Voltage trigger_prototypes: - - expression: '{min(5m)} > {#THRESHOLD_HI_CRIT}' + expression: 'min(/Arista SNMP/sensor.voltage.value[entPhySensorValue.{#SNMPINDEX}],5m) > {#THRESHOLD_HI_CRIT}' name: '{#SENSOR_INFO}: Voltage is above the critical threshold of {#THRESHOLD_HI_CRIT}V for 5m' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: HIGH description: 'This trigger uses voltage sensor values defined in the device.' - - expression: '{min(5m)} > {#THRESHOLD_HI_WARN}' + expression: 'min(/Arista SNMP/sensor.voltage.value[entPhySensorValue.{#SNMPINDEX}],5m) > {#THRESHOLD_HI_WARN}' name: '{#SENSOR_INFO}: Voltage is above the warning threshold of {#THRESHOLD_HI_WARN}V for 5m' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING @@ -526,15 +526,15 @@ zabbix_export: dependencies: - name: '{#SENSOR_INFO}: Voltage is above the critical threshold of {#THRESHOLD_HI_CRIT}V for 5m' - expression: '{Arista SNMP:sensor.voltage.value[entPhySensorValue.{#SNMPINDEX}].min(5m)} > {#THRESHOLD_HI_CRIT}' + expression: 'min(/Arista SNMP/sensor.voltage.value[entPhySensorValue.{#SNMPINDEX}],5m) > {#THRESHOLD_HI_CRIT}' - - expression: '{max(5m)} < {#THRESHOLD_LO_CRIT}' + expression: 'max(/Arista SNMP/sensor.voltage.value[entPhySensorValue.{#SNMPINDEX}],5m) < {#THRESHOLD_LO_CRIT}' name: '{#SENSOR_INFO}: Voltage is below the critical threshold of {#THRESHOLD_LO_CRIT}V for 5m' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: HIGH description: 'This trigger uses voltage sensor values defined in the device.' - - expression: '{max(5m)} < {#THRESHOLD_LO_WARN}' + expression: 'max(/Arista SNMP/sensor.voltage.value[entPhySensorValue.{#SNMPINDEX}],5m) < {#THRESHOLD_LO_WARN}' name: '{#SENSOR_INFO}: Voltage is below the warning threshold of {#THRESHOLD_LO_WARN}V for 5m' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING @@ -542,7 +542,7 @@ zabbix_export: dependencies: - name: '{#SENSOR_INFO}: Voltage is below the critical threshold of {#THRESHOLD_LO_CRIT}V for 5m' - expression: '{Arista SNMP:sensor.voltage.value[entPhySensorValue.{#SNMPINDEX}].max(5m)} < {#THRESHOLD_LO_CRIT}' + expression: 'max(/Arista SNMP/sensor.voltage.value[entPhySensorValue.{#SNMPINDEX}],5m) < {#THRESHOLD_LO_CRIT}' master_item: key: sensors.get overrides: diff --git a/templates/net/brocade_fc_sw_snmp/template_net_brocade_fc_sw_snmp.yaml b/templates/net/brocade_fc_sw_snmp/template_net_brocade_fc_sw_snmp.yaml index dd10b3e7aed..7538ba07a5d 100644 --- a/templates/net/brocade_fc_sw_snmp/template_net_brocade_fc_sw_snmp.yaml +++ b/templates/net/brocade_fc_sw_snmp/template_net_brocade_fc_sw_snmp.yaml @@ -1,6 +1,6 @@ zabbix_export: version: '5.4' - date: '2021-02-23T11:04:26Z' + date: '2021-05-09T00:00:00Z' groups: - name: 'Templates/Network devices' @@ -47,7 +47,7 @@ zabbix_export: value: CPU triggers: - - expression: '{min(5m)}>{$CPU.UTIL.CRIT}' + expression: 'min(/Brocade FC SNMP/system.cpu.util[swCpuUsage.0],5m)>{$CPU.UTIL.CRIT}' name: 'High CPU utilization (over {$CPU.UTIL.CRIT}% for 5m)' opdata: 'Current utilization: {ITEM.LASTVALUE1}' priority: WARNING @@ -73,7 +73,7 @@ zabbix_export: value: Inventory triggers: - - expression: '{diff()}=1 and {strlen()}>0' + expression: '(last(/Brocade FC SNMP/system.hw.firmware,#1)<>last(/Brocade FC SNMP/system.hw.firmware,#2))=1 and length(last(/Brocade FC SNMP/system.hw.firmware))>0' name: 'Firmware has changed' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: INFO @@ -101,7 +101,7 @@ zabbix_export: value: Inventory triggers: - - expression: '{diff()}=1 and {strlen()}>0' + expression: '(last(/Brocade FC SNMP/system.hw.serialnumber,#1)<>last(/Brocade FC SNMP/system.hw.serialnumber,#2))=1 and length(last(/Brocade FC SNMP/system.hw.serialnumber))>0' name: 'Device has been replaced (new serial number received)' priority: INFO description: 'Device serial number has changed. Ack to close' @@ -129,13 +129,13 @@ zabbix_export: value: Status triggers: - - expression: '{count(#1,{$HEALTH_CRIT_STATUS},eq)}=1' + expression: 'count(/Brocade FC SNMP/system.status[swOperStatus.0],#1,"eq","{$HEALTH_CRIT_STATUS}")=1' name: 'System status is in critical state' opdata: 'Current state: {ITEM.LASTVALUE1}' priority: HIGH description: 'Please check the device for errors' - - expression: '{count(#1,{$HEALTH_WARN_STATUS:"offline"},eq)}=1 or {count(#1,{$HEALTH_WARN_STATUS:"testing"},eq)}=1' + expression: 'count(/Brocade FC SNMP/system.status[swOperStatus.0],#1,"eq","{$HEALTH_WARN_STATUS:\"offline\"}")=1 or count(/Brocade FC SNMP/system.status[swOperStatus.0],#1,"eq","{$HEALTH_WARN_STATUS:\"testing\"}")=1' name: 'System status is in warning state' opdata: 'Current state: {ITEM.LASTVALUE1}' priority: WARNING @@ -143,7 +143,7 @@ zabbix_export: dependencies: - name: 'System status is in critical state' - expression: '{Brocade FC SNMP:system.status[swOperStatus.0].count(#1,{$HEALTH_CRIT_STATUS},eq)}=1' + expression: 'count(/Brocade FC SNMP/system.status[swOperStatus.0],#1,"eq","{$HEALTH_CRIT_STATUS}")=1' - name: 'Memory utilization' type: SNMP_AGENT @@ -161,7 +161,7 @@ zabbix_export: value: Memory triggers: - - expression: '{min(5m)}>{$MEMORY.UTIL.MAX}' + expression: 'min(/Brocade FC SNMP/vm.memory.util[swMemUsage.0],5m)>{$MEMORY.UTIL.MAX}' name: 'High memory utilization (>{$MEMORY.UTIL.MAX}% for 5m)' priority: AVERAGE description: 'The system is running out of free memory.' @@ -211,13 +211,13 @@ zabbix_export: value: Fans trigger_prototypes: - - expression: '{count(#1,{$FAN_CRIT_STATUS},eq)}=1' + expression: 'count(/Brocade FC SNMP/sensor.fan.status[swSensorStatus.{#SNMPINDEX}],#1,"eq","{$FAN_CRIT_STATUS}")=1' name: '{#SENSOR_INFO}: Fan is in critical state' opdata: 'Current state: {ITEM.LASTVALUE1}' priority: AVERAGE description: 'Please check the fan unit' - - expression: '{count(#1,{$FAN_OK_STATUS},ne)}=1' + expression: 'count(/Brocade FC SNMP/sensor.fan.status[swSensorStatus.{#SNMPINDEX}],#1,"ne","{$FAN_OK_STATUS}")=1' name: '{#SENSOR_INFO}: Fan is not in normal state' opdata: 'Current state: {ITEM.LASTVALUE1}' priority: INFO @@ -225,7 +225,7 @@ zabbix_export: dependencies: - name: '{#SENSOR_INFO}: Fan is in critical state' - expression: '{Brocade FC SNMP:sensor.fan.status[swSensorStatus.{#SNMPINDEX}].count(#1,{$FAN_CRIT_STATUS},eq)}=1' + expression: 'count(/Brocade FC SNMP/sensor.fan.status[swSensorStatus.{#SNMPINDEX}],#1,"eq","{$FAN_CRIT_STATUS}")=1' - name: 'PSU Discovery' type: SNMP_AGENT @@ -256,13 +256,13 @@ zabbix_export: value: 'Power supply' trigger_prototypes: - - expression: '{count(#1,{$PSU_CRIT_STATUS},eq)}=1' + expression: 'count(/Brocade FC SNMP/sensor.psu.status[swSensorStatus.{#SNMPINDEX}],#1,"eq","{$PSU_CRIT_STATUS}")=1' name: '{#SENSOR_INFO}: Power supply is in critical state' opdata: 'Current state: {ITEM.LASTVALUE1}' priority: AVERAGE description: 'Please check the power supply unit for errors' - - expression: '{count(#1,{$PSU_OK_STATUS},ne)}=1' + expression: 'count(/Brocade FC SNMP/sensor.psu.status[swSensorStatus.{#SNMPINDEX}],#1,"ne","{$PSU_OK_STATUS}")=1' name: '{#SENSOR_INFO}: Power supply is not in normal state' opdata: 'Current state: {ITEM.LASTVALUE1}' priority: INFO @@ -270,7 +270,7 @@ zabbix_export: dependencies: - name: '{#SENSOR_INFO}: Power supply is in critical state' - expression: '{Brocade FC SNMP:sensor.psu.status[swSensorStatus.{#SNMPINDEX}].count(#1,{$PSU_CRIT_STATUS},eq)}=1' + expression: 'count(/Brocade FC SNMP/sensor.psu.status[swSensorStatus.{#SNMPINDEX}],#1,"eq","{$PSU_CRIT_STATUS}")=1' - name: 'Temperature Discovery' type: SNMP_AGENT @@ -318,28 +318,28 @@ zabbix_export: value: Temperature trigger_prototypes: - - expression: '{avg(5m)}>{$TEMP_CRIT:""}' + expression: 'avg(/Brocade FC SNMP/sensor.temp.value[swSensorValue.{#SNMPINDEX}],5m)>{$TEMP_CRIT:""}' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{max(5m)}<{$TEMP_CRIT:""}-3' + recovery_expression: 'max(/Brocade FC SNMP/sensor.temp.value[swSensorValue.{#SNMPINDEX}],5m)<{$TEMP_CRIT:""}-3' name: '{#SENSOR_INFO}: Temperature is above critical threshold: >{$TEMP_CRIT:""}' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: HIGH description: 'This trigger uses temperature sensor values as well as temperature sensor status if available' - - expression: '{avg(5m)}<{$TEMP_CRIT_LOW:""}' + expression: 'avg(/Brocade FC SNMP/sensor.temp.value[swSensorValue.{#SNMPINDEX}],5m)<{$TEMP_CRIT_LOW:""}' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{min(5m)}>{$TEMP_CRIT_LOW:""}+3' + recovery_expression: 'min(/Brocade FC SNMP/sensor.temp.value[swSensorValue.{#SNMPINDEX}],5m)>{$TEMP_CRIT_LOW:""}+3' name: '{#SENSOR_INFO}: Temperature is too low: <{$TEMP_CRIT_LOW:""}' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: AVERAGE trigger_prototypes: - expression: | - {Brocade FC SNMP:sensor.temp.value[swSensorValue.{#SNMPINDEX}].avg(5m)}>{$TEMP_WARN:""} + avg(/Brocade FC SNMP/sensor.temp.value[swSensorValue.{#SNMPINDEX}],5m)>{$TEMP_WARN:""} or - {Brocade FC SNMP:sensor.temp.status[swSensorStatus.{#SNMPINDEX}].last(0)}={$TEMP_WARN_STATUS} + last(/Brocade FC SNMP/sensor.temp.status[swSensorStatus.{#SNMPINDEX}])={$TEMP_WARN_STATUS} recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{Brocade FC SNMP:sensor.temp.value[swSensorValue.{#SNMPINDEX}].max(5m)}<{$TEMP_WARN:""}-3' + recovery_expression: 'max(/Brocade FC SNMP/sensor.temp.value[swSensorValue.{#SNMPINDEX}],5m)<{$TEMP_WARN:""}-3' name: '{#SENSOR_INFO}: Temperature is above warning threshold: >{$TEMP_WARN:""}' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING @@ -347,8 +347,8 @@ zabbix_export: dependencies: - name: '{#SENSOR_INFO}: Temperature is above critical threshold: >{$TEMP_CRIT:""}' - expression: '{Brocade FC SNMP:sensor.temp.value[swSensorValue.{#SNMPINDEX}].avg(5m)}>{$TEMP_CRIT:""}' - recovery_expression: '{Brocade FC SNMP:sensor.temp.value[swSensorValue.{#SNMPINDEX}].max(5m)}<{$TEMP_CRIT:""}-3' + expression: 'avg(/Brocade FC SNMP/sensor.temp.value[swSensorValue.{#SNMPINDEX}],5m)>{$TEMP_CRIT:""}' + recovery_expression: 'max(/Brocade FC SNMP/sensor.temp.value[swSensorValue.{#SNMPINDEX}],5m)<{$TEMP_CRIT:""}-3' macros: - macro: '{$CPU.UTIL.CRIT}' diff --git a/templates/net/brocade_foundry_sw_snmp/template_net_brocade_foundry_sw_snmp.yaml b/templates/net/brocade_foundry_sw_snmp/template_net_brocade_foundry_sw_snmp.yaml index 1898b01b456..9fd3a0de07a 100644 --- a/templates/net/brocade_foundry_sw_snmp/template_net_brocade_foundry_sw_snmp.yaml +++ b/templates/net/brocade_foundry_sw_snmp/template_net_brocade_foundry_sw_snmp.yaml @@ -1,6 +1,6 @@ zabbix_export: version: '5.4' - date: '2021-02-23T11:04:30Z' + date: '2021-05-09T00:00:00Z' groups: - name: Templates/Modules @@ -51,7 +51,7 @@ zabbix_export: value: Inventory triggers: - - expression: '{diff()}=1 and {strlen()}>0' + expression: '(last(/Brocade_Foundry Nonstackable SNMP/system.hw.firmware,#1)<>last(/Brocade_Foundry Nonstackable SNMP/system.hw.firmware,#2))=1 and length(last(/Brocade_Foundry Nonstackable SNMP/system.hw.firmware))>0' name: 'Firmware has changed' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: INFO @@ -79,7 +79,7 @@ zabbix_export: value: Inventory triggers: - - expression: '{diff()}=1 and {strlen()}>0' + expression: '(last(/Brocade_Foundry Nonstackable SNMP/system.hw.serialnumber,#1)<>last(/Brocade_Foundry Nonstackable SNMP/system.hw.serialnumber,#2))=1 and length(last(/Brocade_Foundry Nonstackable SNMP/system.hw.serialnumber))>0' name: 'Device has been replaced (new serial number received)' priority: INFO description: 'Device serial number has changed. Ack to close' @@ -110,13 +110,13 @@ zabbix_export: value: Fans trigger_prototypes: - - expression: '{count(#1,{$FAN_CRIT_STATUS},eq)}=1' + expression: 'count(/Brocade_Foundry Nonstackable SNMP/sensor.fan.status[snChasFanOperStatus.{#SNMPINDEX}],#1,"eq","{$FAN_CRIT_STATUS}")=1' name: 'Fan {#FAN_INDEX}: Fan is in critical state' opdata: 'Current state: {ITEM.LASTVALUE1}' priority: AVERAGE description: 'Please check the fan unit' - - expression: '{count(#1,{$FAN_OK_STATUS},ne)}=1' + expression: 'count(/Brocade_Foundry Nonstackable SNMP/sensor.fan.status[snChasFanOperStatus.{#SNMPINDEX}],#1,"ne","{$FAN_OK_STATUS}")=1' name: 'Fan {#FAN_INDEX}: Fan is not in normal state' opdata: 'Current state: {ITEM.LASTVALUE1}' priority: INFO @@ -124,7 +124,7 @@ zabbix_export: dependencies: - name: 'Fan {#FAN_INDEX}: Fan is in critical state' - expression: '{Brocade_Foundry Nonstackable SNMP:sensor.fan.status[snChasFanOperStatus.{#SNMPINDEX}].count(#1,{$FAN_CRIT_STATUS},eq)}=1' + expression: 'count(/Brocade_Foundry Nonstackable SNMP/sensor.fan.status[snChasFanOperStatus.{#SNMPINDEX}],#1,"eq","{$FAN_CRIT_STATUS}")=1' - name: 'PSU Discovery' type: SNMP_AGENT @@ -150,13 +150,13 @@ zabbix_export: value: 'Power supply' trigger_prototypes: - - expression: '{count(#1,{$PSU_CRIT_STATUS},eq)}=1' + expression: 'count(/Brocade_Foundry Nonstackable SNMP/sensor.psu.status[snChasPwrSupplyOperStatus.{#SNMPINDEX}],#1,"eq","{$PSU_CRIT_STATUS}")=1' name: 'PSU {#PSU_INDEX}: Power supply is in critical state' opdata: 'Current state: {ITEM.LASTVALUE1}' priority: AVERAGE description: 'Please check the power supply unit for errors' - - expression: '{count(#1,{$PSU_OK_STATUS},ne)}=1' + expression: 'count(/Brocade_Foundry Nonstackable SNMP/sensor.psu.status[snChasPwrSupplyOperStatus.{#SNMPINDEX}],#1,"ne","{$PSU_OK_STATUS}")=1' name: 'PSU {#PSU_INDEX}: Power supply is not in normal state' opdata: 'Current state: {ITEM.LASTVALUE1}' priority: INFO @@ -164,7 +164,7 @@ zabbix_export: dependencies: - name: 'PSU {#PSU_INDEX}: Power supply is in critical state' - expression: '{Brocade_Foundry Nonstackable SNMP:sensor.psu.status[snChasPwrSupplyOperStatus.{#SNMPINDEX}].count(#1,{$PSU_CRIT_STATUS},eq)}=1' + expression: 'count(/Brocade_Foundry Nonstackable SNMP/sensor.psu.status[snChasPwrSupplyOperStatus.{#SNMPINDEX}],#1,"eq","{$PSU_CRIT_STATUS}")=1' - name: 'Temperature Discovery Chassis' type: SNMP_AGENT @@ -197,17 +197,17 @@ zabbix_export: value: Temperature trigger_prototypes: - - expression: '{avg(5m)}>{$TEMP_CRIT:"Chassis"}' + expression: 'avg(/Brocade_Foundry Nonstackable SNMP/sensor.temp.value[snChasActualTemperature.{#SNMPINDEX}],5m)>{$TEMP_CRIT:"Chassis"}' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{max(5m)}<{$TEMP_CRIT:"Chassis"}-3' + recovery_expression: 'max(/Brocade_Foundry Nonstackable SNMP/sensor.temp.value[snChasActualTemperature.{#SNMPINDEX}],5m)<{$TEMP_CRIT:"Chassis"}-3' name: 'Chassis #{#SNMPINDEX}: Temperature is above critical threshold: >{$TEMP_CRIT:"Chassis"}' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: HIGH description: 'This trigger uses temperature sensor values as well as temperature sensor status if available' - - expression: '{avg(5m)}>{$TEMP_WARN:"Chassis"}' + expression: 'avg(/Brocade_Foundry Nonstackable SNMP/sensor.temp.value[snChasActualTemperature.{#SNMPINDEX}],5m)>{$TEMP_WARN:"Chassis"}' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{max(5m)}<{$TEMP_WARN:"Chassis"}-3' + recovery_expression: 'max(/Brocade_Foundry Nonstackable SNMP/sensor.temp.value[snChasActualTemperature.{#SNMPINDEX}],5m)<{$TEMP_WARN:"Chassis"}-3' name: 'Chassis #{#SNMPINDEX}: Temperature is above warning threshold: >{$TEMP_WARN:"Chassis"}' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING @@ -215,12 +215,12 @@ zabbix_export: dependencies: - name: 'Chassis #{#SNMPINDEX}: Temperature is above critical threshold: >{$TEMP_CRIT:"Chassis"}' - expression: '{Brocade_Foundry Nonstackable SNMP:sensor.temp.value[snChasActualTemperature.{#SNMPINDEX}].avg(5m)}>{$TEMP_CRIT:"Chassis"}' - recovery_expression: '{Brocade_Foundry Nonstackable SNMP:sensor.temp.value[snChasActualTemperature.{#SNMPINDEX}].max(5m)}<{$TEMP_CRIT:"Chassis"}-3' + expression: 'avg(/Brocade_Foundry Nonstackable SNMP/sensor.temp.value[snChasActualTemperature.{#SNMPINDEX}],5m)>{$TEMP_CRIT:"Chassis"}' + recovery_expression: 'max(/Brocade_Foundry Nonstackable SNMP/sensor.temp.value[snChasActualTemperature.{#SNMPINDEX}],5m)<{$TEMP_CRIT:"Chassis"}-3' - - expression: '{avg(5m)}<{$TEMP_CRIT_LOW:"Chassis"}' + expression: 'avg(/Brocade_Foundry Nonstackable SNMP/sensor.temp.value[snChasActualTemperature.{#SNMPINDEX}],5m)<{$TEMP_CRIT_LOW:"Chassis"}' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{min(5m)}>{$TEMP_CRIT_LOW:"Chassis"}+3' + recovery_expression: 'min(/Brocade_Foundry Nonstackable SNMP/sensor.temp.value[snChasActualTemperature.{#SNMPINDEX}],5m)>{$TEMP_CRIT_LOW:"Chassis"}+3' name: 'Chassis #{#SNMPINDEX}: Temperature is too low: <{$TEMP_CRIT_LOW:"Chassis"}' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: AVERAGE @@ -254,17 +254,17 @@ zabbix_export: value: Temperature trigger_prototypes: - - expression: '{avg(5m)}>{$TEMP_CRIT:""}' + expression: 'avg(/Brocade_Foundry Nonstackable SNMP/sensor.temp.value[snAgentTempValue.{#SNMPINDEX}],5m)>{$TEMP_CRIT:""}' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{max(5m)}<{$TEMP_CRIT:""}-3' + recovery_expression: 'max(/Brocade_Foundry Nonstackable SNMP/sensor.temp.value[snAgentTempValue.{#SNMPINDEX}],5m)<{$TEMP_CRIT:""}-3' name: '{#SENSOR_DESCR}: Temperature is above critical threshold: >{$TEMP_CRIT:""}' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: HIGH description: 'This trigger uses temperature sensor values as well as temperature sensor status if available' - - expression: '{avg(5m)}>{$TEMP_WARN:""}' + expression: 'avg(/Brocade_Foundry Nonstackable SNMP/sensor.temp.value[snAgentTempValue.{#SNMPINDEX}],5m)>{$TEMP_WARN:""}' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{max(5m)}<{$TEMP_WARN:""}-3' + recovery_expression: 'max(/Brocade_Foundry Nonstackable SNMP/sensor.temp.value[snAgentTempValue.{#SNMPINDEX}],5m)<{$TEMP_WARN:""}-3' name: '{#SENSOR_DESCR}: Temperature is above warning threshold: >{$TEMP_WARN:""}' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING @@ -272,12 +272,12 @@ zabbix_export: dependencies: - name: '{#SENSOR_DESCR}: Temperature is above critical threshold: >{$TEMP_CRIT:""}' - expression: '{Brocade_Foundry Nonstackable SNMP:sensor.temp.value[snAgentTempValue.{#SNMPINDEX}].avg(5m)}>{$TEMP_CRIT:""}' - recovery_expression: '{Brocade_Foundry Nonstackable SNMP:sensor.temp.value[snAgentTempValue.{#SNMPINDEX}].max(5m)}<{$TEMP_CRIT:""}-3' + expression: 'avg(/Brocade_Foundry Nonstackable SNMP/sensor.temp.value[snAgentTempValue.{#SNMPINDEX}],5m)>{$TEMP_CRIT:""}' + recovery_expression: 'max(/Brocade_Foundry Nonstackable SNMP/sensor.temp.value[snAgentTempValue.{#SNMPINDEX}],5m)<{$TEMP_CRIT:""}-3' - - expression: '{avg(5m)}<{$TEMP_CRIT_LOW:""}' + expression: 'avg(/Brocade_Foundry Nonstackable SNMP/sensor.temp.value[snAgentTempValue.{#SNMPINDEX}],5m)<{$TEMP_CRIT_LOW:""}' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{min(5m)}>{$TEMP_CRIT_LOW:""}+3' + recovery_expression: 'min(/Brocade_Foundry Nonstackable SNMP/sensor.temp.value[snAgentTempValue.{#SNMPINDEX}],5m)>{$TEMP_CRIT_LOW:""}+3' name: '{#SENSOR_DESCR}: Temperature is too low: <{$TEMP_CRIT_LOW:""}' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: AVERAGE @@ -359,7 +359,7 @@ zabbix_export: value: CPU triggers: - - expression: '{min(5m)}>{$CPU.UTIL.CRIT}' + expression: 'min(/Brocade_Foundry Performance SNMP/system.cpu.util[snAgGblCpuUtil1MinAvg.0],5m)>{$CPU.UTIL.CRIT}' name: 'High CPU utilization (over {$CPU.UTIL.CRIT}% for 5m)' opdata: 'Current utilization: {ITEM.LASTVALUE1}' priority: WARNING @@ -383,7 +383,7 @@ zabbix_export: value: Memory triggers: - - expression: '{min(5m)}>{$MEMORY.UTIL.MAX}' + expression: 'min(/Brocade_Foundry Performance SNMP/vm.memory.util[snAgGblDynMemUtil.0],5m)>{$MEMORY.UTIL.MAX}' name: 'High memory utilization (>{$MEMORY.UTIL.MAX}% for 5m)' priority: AVERAGE description: 'The system is running out of free memory.' @@ -445,7 +445,7 @@ zabbix_export: value: Inventory triggers: - - expression: '{diff()}=1 and {strlen()}>0' + expression: '(last(/Brocade_Foundry Stackable SNMP/system.hw.firmware,#1)<>last(/Brocade_Foundry Stackable SNMP/system.hw.firmware,#2))=1 and length(last(/Brocade_Foundry Stackable SNMP/system.hw.firmware))>0' name: 'Firmware has changed' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: INFO @@ -483,7 +483,7 @@ zabbix_export: value: Inventory trigger_prototypes: - - expression: '{diff()}=1 and {strlen()}>0' + expression: '(last(/Brocade_Foundry Stackable SNMP/system.hw.serialnumber[snChasUnitSerNum.{#SNMPINDEX}],#1)<>last(/Brocade_Foundry Stackable SNMP/system.hw.serialnumber[snChasUnitSerNum.{#SNMPINDEX}],#2))=1 and length(last(/Brocade_Foundry Stackable SNMP/system.hw.serialnumber[snChasUnitSerNum.{#SNMPINDEX}]))>0' name: 'Unit {#SNMPVALUE}: Device has been replaced (new serial number received)' priority: INFO description: 'Device serial number has changed. Ack to close' @@ -513,13 +513,13 @@ zabbix_export: value: Fans trigger_prototypes: - - expression: '{count(#1,{$FAN_CRIT_STATUS},eq)}=1' + expression: 'count(/Brocade_Foundry Stackable SNMP/sensor.fan.status[snChasFan2OperStatus.{#SNMPINDEX}],#1,"eq","{$FAN_CRIT_STATUS}")=1' name: 'Unit {#FAN_UNIT} Fan {#FAN_INDEX}: Fan is in critical state' opdata: 'Current state: {ITEM.LASTVALUE1}' priority: AVERAGE description: 'Please check the fan unit' - - expression: '{count(#1,{$FAN_OK_STATUS},ne)}=1' + expression: 'count(/Brocade_Foundry Stackable SNMP/sensor.fan.status[snChasFan2OperStatus.{#SNMPINDEX}],#1,"ne","{$FAN_OK_STATUS}")=1' name: 'Unit {#FAN_UNIT} Fan {#FAN_INDEX}: Fan is not in normal state' opdata: 'Current state: {ITEM.LASTVALUE1}' priority: INFO @@ -527,7 +527,7 @@ zabbix_export: dependencies: - name: 'Unit {#FAN_UNIT} Fan {#FAN_INDEX}: Fan is in critical state' - expression: '{Brocade_Foundry Stackable SNMP:sensor.fan.status[snChasFan2OperStatus.{#SNMPINDEX}].count(#1,{$FAN_CRIT_STATUS},eq)}=1' + expression: 'count(/Brocade_Foundry Stackable SNMP/sensor.fan.status[snChasFan2OperStatus.{#SNMPINDEX}],#1,"eq","{$FAN_CRIT_STATUS}")=1' - name: 'PSU Discovery' type: SNMP_AGENT @@ -553,13 +553,13 @@ zabbix_export: value: 'Power supply' trigger_prototypes: - - expression: '{count(#1,{$PSU_CRIT_STATUS},eq)}=1' + expression: 'count(/Brocade_Foundry Stackable SNMP/sensor.psu.status[snChasPwrSupply2OperStatus.{#SNMPINDEX}],#1,"eq","{$PSU_CRIT_STATUS}")=1' name: 'Unit {#PSU_UNIT} PSU {#PSU_INDEX}: Power supply is in critical state' opdata: 'Current state: {ITEM.LASTVALUE1}' priority: AVERAGE description: 'Please check the power supply unit for errors' - - expression: '{count(#1,{$PSU_OK_STATUS},ne)}=1' + expression: 'count(/Brocade_Foundry Stackable SNMP/sensor.psu.status[snChasPwrSupply2OperStatus.{#SNMPINDEX}],#1,"ne","{$PSU_OK_STATUS}")=1' name: 'Unit {#PSU_UNIT} PSU {#PSU_INDEX}: Power supply is not in normal state' opdata: 'Current state: {ITEM.LASTVALUE1}' priority: INFO @@ -567,7 +567,7 @@ zabbix_export: dependencies: - name: 'Unit {#PSU_UNIT} PSU {#PSU_INDEX}: Power supply is in critical state' - expression: '{Brocade_Foundry Stackable SNMP:sensor.psu.status[snChasPwrSupply2OperStatus.{#SNMPINDEX}].count(#1,{$PSU_CRIT_STATUS},eq)}=1' + expression: 'count(/Brocade_Foundry Stackable SNMP/sensor.psu.status[snChasPwrSupply2OperStatus.{#SNMPINDEX}],#1,"eq","{$PSU_CRIT_STATUS}")=1' - name: 'Stack Discovery' type: SNMP_AGENT @@ -627,17 +627,17 @@ zabbix_export: value: Temperature trigger_prototypes: - - expression: '{avg(5m)}>{$TEMP_CRIT:""}' + expression: 'avg(/Brocade_Foundry Stackable SNMP/sensor.temp.value[snAgentTemp2Value.{#SNMPINDEX}],5m)>{$TEMP_CRIT:""}' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{max(5m)}<{$TEMP_CRIT:""}-3' + recovery_expression: 'max(/Brocade_Foundry Stackable SNMP/sensor.temp.value[snAgentTemp2Value.{#SNMPINDEX}],5m)<{$TEMP_CRIT:""}-3' name: '{#SENSOR_DESCR}: Temperature is above critical threshold: >{$TEMP_CRIT:""}' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: HIGH description: 'This trigger uses temperature sensor values as well as temperature sensor status if available' - - expression: '{avg(5m)}>{$TEMP_WARN:""}' + expression: 'avg(/Brocade_Foundry Stackable SNMP/sensor.temp.value[snAgentTemp2Value.{#SNMPINDEX}],5m)>{$TEMP_WARN:""}' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{max(5m)}<{$TEMP_WARN:""}-3' + recovery_expression: 'max(/Brocade_Foundry Stackable SNMP/sensor.temp.value[snAgentTemp2Value.{#SNMPINDEX}],5m)<{$TEMP_WARN:""}-3' name: '{#SENSOR_DESCR}: Temperature is above warning threshold: >{$TEMP_WARN:""}' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING @@ -645,12 +645,12 @@ zabbix_export: dependencies: - name: '{#SENSOR_DESCR}: Temperature is above critical threshold: >{$TEMP_CRIT:""}' - expression: '{Brocade_Foundry Stackable SNMP:sensor.temp.value[snAgentTemp2Value.{#SNMPINDEX}].avg(5m)}>{$TEMP_CRIT:""}' - recovery_expression: '{Brocade_Foundry Stackable SNMP:sensor.temp.value[snAgentTemp2Value.{#SNMPINDEX}].max(5m)}<{$TEMP_CRIT:""}-3' + expression: 'avg(/Brocade_Foundry Stackable SNMP/sensor.temp.value[snAgentTemp2Value.{#SNMPINDEX}],5m)>{$TEMP_CRIT:""}' + recovery_expression: 'max(/Brocade_Foundry Stackable SNMP/sensor.temp.value[snAgentTemp2Value.{#SNMPINDEX}],5m)<{$TEMP_CRIT:""}-3' - - expression: '{avg(5m)}<{$TEMP_CRIT_LOW:""}' + expression: 'avg(/Brocade_Foundry Stackable SNMP/sensor.temp.value[snAgentTemp2Value.{#SNMPINDEX}],5m)<{$TEMP_CRIT_LOW:""}' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{min(5m)}>{$TEMP_CRIT_LOW:""}+3' + recovery_expression: 'min(/Brocade_Foundry Stackable SNMP/sensor.temp.value[snAgentTemp2Value.{#SNMPINDEX}],5m)>{$TEMP_CRIT_LOW:""}+3' name: '{#SENSOR_DESCR}: Temperature is too low: <{$TEMP_CRIT_LOW:""}' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: AVERAGE diff --git a/templates/net/cisco_catalyst_3750/cisco_catalyst_3750_24fs_snmp/template_net_cisco_catalyst_3750_24fs_snmp.yaml b/templates/net/cisco_catalyst_3750/cisco_catalyst_3750_24fs_snmp/template_net_cisco_catalyst_3750_24fs_snmp.yaml index 0671c8969fc..f15440b3785 100644 --- a/templates/net/cisco_catalyst_3750/cisco_catalyst_3750_24fs_snmp/template_net_cisco_catalyst_3750_24fs_snmp.yaml +++ b/templates/net/cisco_catalyst_3750/cisco_catalyst_3750_24fs_snmp/template_net_cisco_catalyst_3750_24fs_snmp.yaml @@ -1,6 +1,6 @@ zabbix_export: version: '5.4' - date: '2021-04-22T11:27:09Z' + date: '2021-05-09T00:00:00Z' groups: - name: Templates/Modules @@ -38,7 +38,7 @@ zabbix_export: value: Status triggers: - - expression: '{max(#3)}=0' + expression: 'max(/Cisco Catalyst 3750V2-24FS SNMP/icmpping,#3)=0' name: 'Unavailable by ICMP ping' priority: HIGH description: 'Last three attempts returned timeout. Please check device connectivity.' @@ -55,14 +55,14 @@ zabbix_export: value: Status triggers: - - expression: '{min(5m)}>{$ICMP_LOSS_WARN} and {min(5m)}<100' + expression: 'min(/Cisco Catalyst 3750V2-24FS SNMP/icmppingloss,5m)>{$ICMP_LOSS_WARN} and min(/Cisco Catalyst 3750V2-24FS SNMP/icmppingloss,5m)<100' name: 'High ICMP ping loss' opdata: 'Loss: {ITEM.LASTVALUE1}' priority: WARNING dependencies: - name: 'Unavailable by ICMP ping' - expression: '{Cisco Catalyst 3750V2-24FS SNMP:icmpping.max(#3)}=0' + expression: 'max(/Cisco Catalyst 3750V2-24FS SNMP/icmpping,#3)=0' - name: 'ICMP response time' type: SIMPLE @@ -76,17 +76,17 @@ zabbix_export: value: Status triggers: - - expression: '{avg(5m)}>{$ICMP_RESPONSE_TIME_WARN}' + expression: 'avg(/Cisco Catalyst 3750V2-24FS SNMP/icmppingsec,5m)>{$ICMP_RESPONSE_TIME_WARN}' name: 'High ICMP ping response time' opdata: 'Value: {ITEM.LASTVALUE1}' priority: WARNING dependencies: - name: 'High ICMP ping loss' - expression: '{Cisco Catalyst 3750V2-24FS SNMP:icmppingloss.min(5m)}>{$ICMP_LOSS_WARN} and {Cisco Catalyst 3750V2-24FS SNMP:icmppingloss.min(5m)}<100' + expression: 'min(/Cisco Catalyst 3750V2-24FS SNMP/icmppingloss,5m)>{$ICMP_LOSS_WARN} and min(/Cisco Catalyst 3750V2-24FS SNMP/icmppingloss,5m)<100' - name: 'Unavailable by ICMP ping' - expression: '{Cisco Catalyst 3750V2-24FS SNMP:icmpping.max(#3)}=0' + expression: 'max(/Cisco Catalyst 3750V2-24FS SNMP/icmpping,#3)=0' - name: 'SNMP traps (fallback)' type: SNMP_TRAP @@ -187,7 +187,7 @@ zabbix_export: value: Inventory triggers: - - expression: '{diff()}=1 and {strlen()}>0' + expression: '(last(/Cisco Catalyst 3750V2-24FS SNMP/system.hw.serialnumber,#1)<>last(/Cisco Catalyst 3750V2-24FS SNMP/system.hw.serialnumber,#2))=1 and length(last(/Cisco Catalyst 3750V2-24FS SNMP/system.hw.serialnumber))>0' name: 'Device has been replaced (new serial number received)' priority: INFO description: 'Device serial number has changed. Ack to close' @@ -238,7 +238,7 @@ zabbix_export: value: General triggers: - - expression: '{diff()}=1 and {strlen()}>0' + expression: '(last(/Cisco Catalyst 3750V2-24FS SNMP/system.name,#1)<>last(/Cisco Catalyst 3750V2-24FS SNMP/system.name,#2))=1 and length(last(/Cisco Catalyst 3750V2-24FS SNMP/system.name))>0' name: 'System name has changed (new name: {ITEM.VALUE})' priority: INFO description: 'System name has changed. Ack to close.' @@ -290,7 +290,7 @@ zabbix_export: value: Inventory triggers: - - expression: '{diff()}=1 and {strlen()}>0' + expression: '(last(/Cisco Catalyst 3750V2-24FS SNMP/system.sw.os,#1)<>last(/Cisco Catalyst 3750V2-24FS SNMP/system.sw.os,#2))=1 and length(last(/Cisco Catalyst 3750V2-24FS SNMP/system.sw.os))>0' recovery_mode: NONE name: 'Operating system description has changed' priority: INFO @@ -299,7 +299,7 @@ zabbix_export: dependencies: - name: 'System name has changed (new name: {ITEM.VALUE})' - expression: '{Cisco Catalyst 3750V2-24FS SNMP:system.name.diff()}=1 and {Cisco Catalyst 3750V2-24FS SNMP:system.name.strlen()}>0' + expression: '(last(/Cisco Catalyst 3750V2-24FS SNMP/system.name,#1)<>last(/Cisco Catalyst 3750V2-24FS SNMP/system.name,#2))=1 and length(last(/Cisco Catalyst 3750V2-24FS SNMP/system.name))>0' - name: Uptime type: SNMP_AGENT @@ -322,7 +322,7 @@ zabbix_export: value: Status triggers: - - expression: '{last()}<10m' + expression: 'last(/Cisco Catalyst 3750V2-24FS SNMP/system.uptime)<10m' name: '{HOST.NAME} has been restarted (uptime < 10m)' priority: WARNING description: 'Uptime is less than 10 minutes' @@ -340,7 +340,7 @@ zabbix_export: value: Status triggers: - - expression: '{max({$SNMP.TIMEOUT})}=0' + expression: 'max(/Cisco Catalyst 3750V2-24FS SNMP/zabbix[host,snmp,available],{$SNMP.TIMEOUT})=0' name: 'No SNMP data collection' opdata: 'Current state: {ITEM.LASTVALUE1}' priority: WARNING @@ -379,7 +379,7 @@ zabbix_export: value: CPU trigger_prototypes: - - expression: '{min(5m)}>{$CPU.UTIL.CRIT}' + expression: 'min(/Cisco Catalyst 3750V2-24FS SNMP/system.cpu.util[{#SNMPINDEX}],5m)>{$CPU.UTIL.CRIT}' name: '#{#SNMPINDEX}: High CPU utilization (over {$CPU.UTIL.CRIT}% for 5m)' opdata: 'Current utilization: {ITEM.LASTVALUE1}' priority: WARNING @@ -437,7 +437,7 @@ zabbix_export: value: Inventory trigger_prototypes: - - expression: '{diff()}=1 and {strlen()}>0' + expression: '(last(/Cisco Catalyst 3750V2-24FS SNMP/system.hw.serialnumber[{#SNMPINDEX}],#1)<>last(/Cisco Catalyst 3750V2-24FS SNMP/system.hw.serialnumber[{#SNMPINDEX}],#2))=1 and length(last(/Cisco Catalyst 3750V2-24FS SNMP/system.hw.serialnumber[{#SNMPINDEX}]))>0' name: '{#ENT_NAME}: Device has been replaced (new serial number received)' priority: INFO description: 'Device serial number has changed. Ack to close' @@ -466,13 +466,13 @@ zabbix_export: value: Fans trigger_prototypes: - - expression: '{last()}=3 or {last()}=4' + expression: 'last(/Cisco Catalyst 3750V2-24FS SNMP/sensor.fan.status[{#SNMPINDEX}])=3 or last(/Cisco Catalyst 3750V2-24FS SNMP/sensor.fan.status[{#SNMPINDEX}])=4' name: '{#SNMPVALUE}: Fan is in critical state' opdata: 'Current state: {ITEM.LASTVALUE1}' priority: AVERAGE description: 'Please check the fan unit' - - expression: '{last()}=2' + expression: 'last(/Cisco Catalyst 3750V2-24FS SNMP/sensor.fan.status[{#SNMPINDEX}])=2' name: '{#SNMPVALUE}: Fan is in warning state' opdata: 'Current state: {ITEM.LASTVALUE1}' priority: WARNING @@ -480,7 +480,7 @@ zabbix_export: dependencies: - name: '{#SNMPVALUE}: Fan is in critical state' - expression: '{Cisco Catalyst 3750V2-24FS SNMP:sensor.fan.status[{#SNMPINDEX}].last()}=3 or {Cisco Catalyst 3750V2-24FS SNMP:sensor.fan.status[{#SNMPINDEX}].last()}=4' + expression: 'last(/Cisco Catalyst 3750V2-24FS SNMP/sensor.fan.status[{#SNMPINDEX}])=3 or last(/Cisco Catalyst 3750V2-24FS SNMP/sensor.fan.status[{#SNMPINDEX}])=4' - name: 'Memory discovery' type: SNMP_AGENT @@ -530,7 +530,7 @@ zabbix_export: history: 7d value_type: FLOAT units: '%' - params: 'last("vm.memory.used[{#SNMPINDEX}]")/(last("vm.memory.free[{#SNMPINDEX}]")+last("vm.memory.used[{#SNMPINDEX}]"))*100' + params: 'last(//vm.memory.used[{#SNMPINDEX}])/(last(//vm.memory.free[{#SNMPINDEX}])+last(//vm.memory.used[{#SNMPINDEX}]))*100' description: 'Memory utilization in %' tags: - @@ -538,7 +538,7 @@ zabbix_export: value: Memory trigger_prototypes: - - expression: '{min(5m)}>{$MEMORY.UTIL.MAX}' + expression: 'min(/Cisco Catalyst 3750V2-24FS SNMP/vm.memory.util[{#SNMPINDEX}],5m)>{$MEMORY.UTIL.MAX}' name: '{#SNMPVALUE}: High memory utilization ( >{$MEMORY.UTIL.MAX}% for 5m)' priority: AVERAGE description: 'The system is running out of free memory.' @@ -661,9 +661,9 @@ zabbix_export: value: 'Interface {#IFNAME}({#IFALIAS})' trigger_prototypes: - - expression: '{min(5m)}>{$IF.ERRORS.WARN:"{#IFNAME}"}' + expression: 'min(/Cisco Catalyst 3750V2-24FS SNMP/net.if.in.errors[{#SNMPINDEX}],5m)>{$IF.ERRORS.WARN:"{#IFNAME}"}' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{max(5m)}<{$IF.ERRORS.WARN:"{#IFNAME}"}*0.8' + recovery_expression: 'max(/Cisco Catalyst 3750V2-24FS SNMP/net.if.in.errors[{#SNMPINDEX}],5m)<{$IF.ERRORS.WARN:"{#IFNAME}"}*0.8' name: 'Interface {#IFNAME}({#IFALIAS}): High input error rate ( > {$IF.ERRORS.WARN:"{#IFNAME}"} for 5m)' opdata: 'errors in: {ITEM.LASTVALUE1}' priority: WARNING @@ -671,7 +671,7 @@ zabbix_export: dependencies: - name: 'Interface {#IFNAME}({#IFALIAS}): Link down' - expression: '{$IFCONTROL:"{#IFNAME}"}=1 and ({Cisco Catalyst 3750V2-24FS SNMP:net.if.status[{#SNMPINDEX}].last()}=2)' + expression: '{$IFCONTROL:"{#IFNAME}"}=1 and (last(/Cisco Catalyst 3750V2-24FS SNMP/net.if.status[{#SNMPINDEX}])=2)' - name: 'Interface {#IFNAME}({#IFALIAS}): Bits received' type: SNMP_AGENT @@ -737,9 +737,9 @@ zabbix_export: value: 'Interface {#IFNAME}({#IFALIAS})' trigger_prototypes: - - expression: '{min(5m)}>{$IF.ERRORS.WARN:"{#IFNAME}"}' + expression: 'min(/Cisco Catalyst 3750V2-24FS SNMP/net.if.out.errors[{#SNMPINDEX}],5m)>{$IF.ERRORS.WARN:"{#IFNAME}"}' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{max(5m)}<{$IF.ERRORS.WARN:"{#IFNAME}"}*0.8' + recovery_expression: 'max(/Cisco Catalyst 3750V2-24FS SNMP/net.if.out.errors[{#SNMPINDEX}],5m)<{$IF.ERRORS.WARN:"{#IFNAME}"}*0.8' name: 'Interface {#IFNAME}({#IFALIAS}): High output error rate ( > {$IF.ERRORS.WARN:"{#IFNAME}"} for 5m)' opdata: 'errors out: {ITEM.LASTVALUE2}' priority: WARNING @@ -747,7 +747,7 @@ zabbix_export: dependencies: - name: 'Interface {#IFNAME}({#IFALIAS}): Link down' - expression: '{$IFCONTROL:"{#IFNAME}"}=1 and ({Cisco Catalyst 3750V2-24FS SNMP:net.if.status[{#SNMPINDEX}].last()}=2)' + expression: '{$IFCONTROL:"{#IFNAME}"}=1 and (last(/Cisco Catalyst 3750V2-24FS SNMP/net.if.status[{#SNMPINDEX}])=2)' - name: 'Interface {#IFNAME}({#IFALIAS}): Bits sent' type: SNMP_AGENT @@ -822,7 +822,7 @@ zabbix_export: value: 'Interface {#IFNAME}({#IFALIAS})' trigger_prototypes: - - expression: '{$IFCONTROL:"{#IFNAME}"}=1 and ({last()}=2)' + expression: '{$IFCONTROL:"{#IFNAME}"}=1 and (last(/Cisco Catalyst 3750V2-24FS SNMP/net.if.status[{#SNMPINDEX}])=2)' name: 'Interface {#IFNAME}({#IFALIAS}): Link down' opdata: 'Current state: {ITEM.LASTVALUE1}' priority: AVERAGE @@ -855,21 +855,21 @@ zabbix_export: trigger_prototypes: - expression: | - {Cisco Catalyst 3750V2-24FS SNMP:net.if.speed[{#SNMPINDEX}].change()}<0 and {Cisco Catalyst 3750V2-24FS SNMP:net.if.speed[{#SNMPINDEX}].last()}>0 + change(/Cisco Catalyst 3750V2-24FS SNMP/net.if.speed[{#SNMPINDEX}])<0 and last(/Cisco Catalyst 3750V2-24FS SNMP/net.if.speed[{#SNMPINDEX}])>0 and ( - {Cisco Catalyst 3750V2-24FS SNMP:net.if.type[{#SNMPINDEX}].last()}=6 or - {Cisco Catalyst 3750V2-24FS SNMP:net.if.type[{#SNMPINDEX}].last()}=7 or - {Cisco Catalyst 3750V2-24FS SNMP:net.if.type[{#SNMPINDEX}].last()}=11 or - {Cisco Catalyst 3750V2-24FS SNMP:net.if.type[{#SNMPINDEX}].last()}=62 or - {Cisco Catalyst 3750V2-24FS SNMP:net.if.type[{#SNMPINDEX}].last()}=69 or - {Cisco Catalyst 3750V2-24FS SNMP:net.if.type[{#SNMPINDEX}].last()}=117 + last(/Cisco Catalyst 3750V2-24FS SNMP/net.if.type[{#SNMPINDEX}])=6 or + last(/Cisco Catalyst 3750V2-24FS SNMP/net.if.type[{#SNMPINDEX}])=7 or + last(/Cisco Catalyst 3750V2-24FS SNMP/net.if.type[{#SNMPINDEX}])=11 or + last(/Cisco Catalyst 3750V2-24FS SNMP/net.if.type[{#SNMPINDEX}])=62 or + last(/Cisco Catalyst 3750V2-24FS SNMP/net.if.type[{#SNMPINDEX}])=69 or + last(/Cisco Catalyst 3750V2-24FS SNMP/net.if.type[{#SNMPINDEX}])=117 ) and - ({Cisco Catalyst 3750V2-24FS SNMP:net.if.status[{#SNMPINDEX}].last()}<>2) + (last(/Cisco Catalyst 3750V2-24FS SNMP/net.if.status[{#SNMPINDEX}])<>2) recovery_mode: RECOVERY_EXPRESSION recovery_expression: | - ({Cisco Catalyst 3750V2-24FS SNMP:net.if.speed[{#SNMPINDEX}].change()}>0 and {Cisco Catalyst 3750V2-24FS SNMP:net.if.speed[{#SNMPINDEX}].prev()}>0) or - ({Cisco Catalyst 3750V2-24FS SNMP:net.if.status[{#SNMPINDEX}].last()}=2) + (change(/Cisco Catalyst 3750V2-24FS SNMP/net.if.speed[{#SNMPINDEX}])>0 and last(/Cisco Catalyst 3750V2-24FS SNMP/net.if.speed[{#SNMPINDEX}],#2)>0) or + (last(/Cisco Catalyst 3750V2-24FS SNMP/net.if.status[{#SNMPINDEX}])=2) name: 'Interface {#IFNAME}({#IFALIAS}): Ethernet has changed to lower speed than it was before' opdata: 'Current reported speed: {ITEM.LASTVALUE1}' priority: INFO @@ -877,13 +877,13 @@ zabbix_export: dependencies: - name: 'Interface {#IFNAME}({#IFALIAS}): Link down' - expression: '{$IFCONTROL:"{#IFNAME}"}=1 and ({Cisco Catalyst 3750V2-24FS SNMP:net.if.status[{#SNMPINDEX}].last()}=2)' + expression: '{$IFCONTROL:"{#IFNAME}"}=1 and (last(/Cisco Catalyst 3750V2-24FS SNMP/net.if.status[{#SNMPINDEX}])=2)' - expression: | - ({Cisco Catalyst 3750V2-24FS SNMP:net.if.in[{#SNMPINDEX}].avg(15m)}>({$IF.UTIL.MAX:"{#IFNAME}"}/100)*{Cisco Catalyst 3750V2-24FS SNMP:net.if.speed[{#SNMPINDEX}].last()}) and - {Cisco Catalyst 3750V2-24FS SNMP:net.if.speed[{#SNMPINDEX}].last()}>0 + (avg(/Cisco Catalyst 3750V2-24FS SNMP/net.if.in[{#SNMPINDEX}],15m)>({$IF.UTIL.MAX:"{#IFNAME}"}/100)*last(/Cisco Catalyst 3750V2-24FS SNMP/net.if.speed[{#SNMPINDEX}])) and + last(/Cisco Catalyst 3750V2-24FS SNMP/net.if.speed[{#SNMPINDEX}])>0 recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{Cisco Catalyst 3750V2-24FS SNMP:net.if.in[{#SNMPINDEX}].avg(15m)}<(({$IF.UTIL.MAX:"{#IFNAME}"}-3)/100)*{Cisco Catalyst 3750V2-24FS SNMP:net.if.speed[{#SNMPINDEX}].last()}' + recovery_expression: 'avg(/Cisco Catalyst 3750V2-24FS SNMP/net.if.in[{#SNMPINDEX}],15m)<(({$IF.UTIL.MAX:"{#IFNAME}"}-3)/100)*last(/Cisco Catalyst 3750V2-24FS SNMP/net.if.speed[{#SNMPINDEX}])' name: 'Interface {#IFNAME}({#IFALIAS}): High inbound bandwidth usage ( > {$IF.UTIL.MAX:"{#IFNAME}"}% )' opdata: 'In: {ITEM.LASTVALUE1}, speed: {ITEM.LASTVALUE2}' priority: WARNING @@ -891,13 +891,13 @@ zabbix_export: dependencies: - name: 'Interface {#IFNAME}({#IFALIAS}): Link down' - expression: '{$IFCONTROL:"{#IFNAME}"}=1 and ({Cisco Catalyst 3750V2-24FS SNMP:net.if.status[{#SNMPINDEX}].last()}=2)' + expression: '{$IFCONTROL:"{#IFNAME}"}=1 and (last(/Cisco Catalyst 3750V2-24FS SNMP/net.if.status[{#SNMPINDEX}])=2)' - expression: | - ({Cisco Catalyst 3750V2-24FS SNMP:net.if.out[{#SNMPINDEX}].avg(15m)}>({$IF.UTIL.MAX:"{#IFNAME}"}/100)*{Cisco Catalyst 3750V2-24FS SNMP:net.if.speed[{#SNMPINDEX}].last()}) and - {Cisco Catalyst 3750V2-24FS SNMP:net.if.speed[{#SNMPINDEX}].last()}>0 + (avg(/Cisco Catalyst 3750V2-24FS SNMP/net.if.out[{#SNMPINDEX}],15m)>({$IF.UTIL.MAX:"{#IFNAME}"}/100)*last(/Cisco Catalyst 3750V2-24FS SNMP/net.if.speed[{#SNMPINDEX}])) and + last(/Cisco Catalyst 3750V2-24FS SNMP/net.if.speed[{#SNMPINDEX}])>0 recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{Cisco Catalyst 3750V2-24FS SNMP:net.if.out[{#SNMPINDEX}].avg(15m)}<(({$IF.UTIL.MAX:"{#IFNAME}"}-3)/100)*{Cisco Catalyst 3750V2-24FS SNMP:net.if.speed[{#SNMPINDEX}].last()}' + recovery_expression: 'avg(/Cisco Catalyst 3750V2-24FS SNMP/net.if.out[{#SNMPINDEX}],15m)<(({$IF.UTIL.MAX:"{#IFNAME}"}-3)/100)*last(/Cisco Catalyst 3750V2-24FS SNMP/net.if.speed[{#SNMPINDEX}])' name: 'Interface {#IFNAME}({#IFALIAS}): High outbound bandwidth usage ( > {$IF.UTIL.MAX:"{#IFNAME}"}% )' opdata: 'Out: {ITEM.LASTVALUE1}, speed: {ITEM.LASTVALUE2}' priority: WARNING @@ -905,7 +905,7 @@ zabbix_export: dependencies: - name: 'Interface {#IFNAME}({#IFALIAS}): Link down' - expression: '{$IFCONTROL:"{#IFNAME}"}=1 and ({Cisco Catalyst 3750V2-24FS SNMP:net.if.status[{#SNMPINDEX}].last()}=2)' + expression: '{$IFCONTROL:"{#IFNAME}"}=1 and (last(/Cisco Catalyst 3750V2-24FS SNMP/net.if.status[{#SNMPINDEX}])=2)' graph_prototypes: - name: 'Interface {#IFNAME}({#IFALIAS}): Network traffic' @@ -1011,7 +1011,7 @@ zabbix_export: value: 'Interface {#IFNAME}({#IFALIAS})' trigger_prototypes: - - expression: '{last()}=2' + expression: 'last(/Cisco Catalyst 3750V2-24FS SNMP/net.if.duplex[{#SNMPINDEX}])=2' name: 'Interface {#IFNAME}({#IFALIAS}): In half-duplex mode' priority: WARNING description: 'Please check autonegotiation settings and cabling' @@ -1040,13 +1040,13 @@ zabbix_export: value: 'Power supply' trigger_prototypes: - - expression: '{last()}=3 or {last(4)}=4' + expression: 'last(/Cisco Catalyst 3750V2-24FS SNMP/sensor.psu.status[{#SNMPINDEX}])=3 or last(/Cisco Catalyst 3750V2-24FS SNMP/sensor.psu.status[{#SNMPINDEX}])=4' name: '{#SNMPVALUE}: Power supply is in critical state' opdata: 'Current state: {ITEM.LASTVALUE1}' priority: AVERAGE description: 'Please check the power supply unit for errors' - - expression: '{last()}=2' + expression: 'last(/Cisco Catalyst 3750V2-24FS SNMP/sensor.psu.status[{#SNMPINDEX}])=2' name: '{#SNMPVALUE}: Power supply is in warning state' opdata: 'Current state: {ITEM.LASTVALUE1}' priority: WARNING @@ -1054,7 +1054,7 @@ zabbix_export: dependencies: - name: '{#SNMPVALUE}: Power supply is in critical state' - expression: '{Cisco Catalyst 3750V2-24FS SNMP:sensor.psu.status[{#SNMPINDEX}].last()}=3 or {Cisco Catalyst 3750V2-24FS SNMP:sensor.psu.status[{#SNMPINDEX}].last(4)}=4' + expression: 'last(/Cisco Catalyst 3750V2-24FS SNMP/sensor.psu.status[{#SNMPINDEX}])=3 or last(/Cisco Catalyst 3750V2-24FS SNMP/sensor.psu.status[{#SNMPINDEX}])=4' - name: 'Temperature discovery' type: SNMP_AGENT @@ -1083,13 +1083,13 @@ zabbix_export: value: Temperature trigger_prototypes: - - expression: '{last()}=3 or {last()}=4' + expression: 'last(/Cisco Catalyst 3750V2-24FS SNMP/sensor.temp.status[{#SNMPINDEX}])=3 or last(/Cisco Catalyst 3750V2-24FS SNMP/sensor.temp.status[{#SNMPINDEX}])=4' name: '{#SNMPVALUE}: Temperature is in critical state' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: HIGH description: 'This trigger uses temperature sensor state' - - expression: '{last()}=2' + expression: 'last(/Cisco Catalyst 3750V2-24FS SNMP/sensor.temp.status[{#SNMPINDEX}])=2' name: '{#SNMPVALUE}: Temperature is in warning state' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING @@ -1097,7 +1097,7 @@ zabbix_export: dependencies: - name: '{#SNMPVALUE}: Temperature is in critical state' - expression: '{Cisco Catalyst 3750V2-24FS SNMP:sensor.temp.status[{#SNMPINDEX}].last()}=3 or {Cisco Catalyst 3750V2-24FS SNMP:sensor.temp.status[{#SNMPINDEX}].last()}=4' + expression: 'last(/Cisco Catalyst 3750V2-24FS SNMP/sensor.temp.status[{#SNMPINDEX}])=3 or last(/Cisco Catalyst 3750V2-24FS SNMP/sensor.temp.status[{#SNMPINDEX}])=4' - name: '{#SNMPVALUE}: Temperature' type: SNMP_AGENT @@ -1116,17 +1116,17 @@ zabbix_export: value: Temperature trigger_prototypes: - - expression: '{avg(5m)}>{$TEMP_CRIT:"{#SNMPVALUE}"}' + expression: 'avg(/Cisco Catalyst 3750V2-24FS SNMP/sensor.temp.value[{#SNMPINDEX}],5m)>{$TEMP_CRIT:"{#SNMPVALUE}"}' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{max(5m)}<{$TEMP_CRIT:"{#SNMPVALUE}"}-3' + recovery_expression: 'max(/Cisco Catalyst 3750V2-24FS SNMP/sensor.temp.value[{#SNMPINDEX}],5m)<{$TEMP_CRIT:"{#SNMPVALUE}"}-3' name: '{#SNMPVALUE}: Temperature is above critical threshold: >{$TEMP_CRIT:"{#SNMPVALUE}"}' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: HIGH description: 'This trigger uses temperature sensor values as well as temperature sensor status if available' - - expression: '{avg(5m)}>{$TEMP_WARN:"{#SNMPVALUE}"}' + expression: 'avg(/Cisco Catalyst 3750V2-24FS SNMP/sensor.temp.value[{#SNMPINDEX}],5m)>{$TEMP_WARN:"{#SNMPVALUE}"}' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{max(5m)}<{$TEMP_WARN:"{#SNMPVALUE}"}-3' + recovery_expression: 'max(/Cisco Catalyst 3750V2-24FS SNMP/sensor.temp.value[{#SNMPINDEX}],5m)<{$TEMP_WARN:"{#SNMPVALUE}"}-3' name: '{#SNMPVALUE}: Temperature is above warning threshold: >{$TEMP_WARN:"{#SNMPVALUE}"}' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING @@ -1134,12 +1134,12 @@ zabbix_export: dependencies: - name: '{#SNMPVALUE}: Temperature is above critical threshold: >{$TEMP_CRIT:"{#SNMPVALUE}"}' - expression: '{Cisco Catalyst 3750V2-24FS SNMP:sensor.temp.value[{#SNMPINDEX}].avg(5m)}>{$TEMP_CRIT:"{#SNMPVALUE}"}' - recovery_expression: '{Cisco Catalyst 3750V2-24FS SNMP:sensor.temp.value[{#SNMPINDEX}].max(5m)}<{$TEMP_CRIT:"{#SNMPVALUE}"}-3' + expression: 'avg(/Cisco Catalyst 3750V2-24FS SNMP/sensor.temp.value[{#SNMPINDEX}],5m)>{$TEMP_CRIT:"{#SNMPVALUE}"}' + recovery_expression: 'max(/Cisco Catalyst 3750V2-24FS SNMP/sensor.temp.value[{#SNMPINDEX}],5m)<{$TEMP_CRIT:"{#SNMPVALUE}"}-3' - - expression: '{avg(5m)}<{$TEMP_CRIT_LOW:"{#SNMPVALUE}"}' + expression: 'avg(/Cisco Catalyst 3750V2-24FS SNMP/sensor.temp.value[{#SNMPINDEX}],5m)<{$TEMP_CRIT_LOW:"{#SNMPVALUE}"}' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{min(5m)}>{$TEMP_CRIT_LOW:"{#SNMPVALUE}"}+3' + recovery_expression: 'min(/Cisco Catalyst 3750V2-24FS SNMP/sensor.temp.value[{#SNMPINDEX}],5m)>{$TEMP_CRIT_LOW:"{#SNMPVALUE}"}+3' name: '{#SNMPVALUE}: Temperature is too low: <{$TEMP_CRIT_LOW:"{#SNMPVALUE}"}' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: AVERAGE diff --git a/templates/net/cisco_catalyst_3750/cisco_catalyst_3750_24ps_snmp/template_net_cisco_catalyst_3750_24ps_snmp.yaml b/templates/net/cisco_catalyst_3750/cisco_catalyst_3750_24ps_snmp/template_net_cisco_catalyst_3750_24ps_snmp.yaml index ee2c1e3ff95..2280b97186d 100644 --- a/templates/net/cisco_catalyst_3750/cisco_catalyst_3750_24ps_snmp/template_net_cisco_catalyst_3750_24ps_snmp.yaml +++ b/templates/net/cisco_catalyst_3750/cisco_catalyst_3750_24ps_snmp/template_net_cisco_catalyst_3750_24ps_snmp.yaml @@ -1,6 +1,6 @@ zabbix_export: version: '5.4' - date: '2021-04-22T11:27:07Z' + date: '2021-05-09T00:00:00Z' groups: - name: Templates/Modules @@ -38,7 +38,7 @@ zabbix_export: value: Status triggers: - - expression: '{max(#3)}=0' + expression: 'max(/Cisco Catalyst 3750V2-24PS SNMP/icmpping,#3)=0' name: 'Unavailable by ICMP ping' priority: HIGH description: 'Last three attempts returned timeout. Please check device connectivity.' @@ -55,14 +55,14 @@ zabbix_export: value: Status triggers: - - expression: '{min(5m)}>{$ICMP_LOSS_WARN} and {min(5m)}<100' + expression: 'min(/Cisco Catalyst 3750V2-24PS SNMP/icmppingloss,5m)>{$ICMP_LOSS_WARN} and min(/Cisco Catalyst 3750V2-24PS SNMP/icmppingloss,5m)<100' name: 'High ICMP ping loss' opdata: 'Loss: {ITEM.LASTVALUE1}' priority: WARNING dependencies: - name: 'Unavailable by ICMP ping' - expression: '{Cisco Catalyst 3750V2-24PS SNMP:icmpping.max(#3)}=0' + expression: 'max(/Cisco Catalyst 3750V2-24PS SNMP/icmpping,#3)=0' - name: 'ICMP response time' type: SIMPLE @@ -76,17 +76,17 @@ zabbix_export: value: Status triggers: - - expression: '{avg(5m)}>{$ICMP_RESPONSE_TIME_WARN}' + expression: 'avg(/Cisco Catalyst 3750V2-24PS SNMP/icmppingsec,5m)>{$ICMP_RESPONSE_TIME_WARN}' name: 'High ICMP ping response time' opdata: 'Value: {ITEM.LASTVALUE1}' priority: WARNING dependencies: - name: 'High ICMP ping loss' - expression: '{Cisco Catalyst 3750V2-24PS SNMP:icmppingloss.min(5m)}>{$ICMP_LOSS_WARN} and {Cisco Catalyst 3750V2-24PS SNMP:icmppingloss.min(5m)}<100' + expression: 'min(/Cisco Catalyst 3750V2-24PS SNMP/icmppingloss,5m)>{$ICMP_LOSS_WARN} and min(/Cisco Catalyst 3750V2-24PS SNMP/icmppingloss,5m)<100' - name: 'Unavailable by ICMP ping' - expression: '{Cisco Catalyst 3750V2-24PS SNMP:icmpping.max(#3)}=0' + expression: 'max(/Cisco Catalyst 3750V2-24PS SNMP/icmpping,#3)=0' - name: 'SNMP traps (fallback)' type: SNMP_TRAP @@ -187,7 +187,7 @@ zabbix_export: value: Inventory triggers: - - expression: '{diff()}=1 and {strlen()}>0' + expression: '(last(/Cisco Catalyst 3750V2-24PS SNMP/system.hw.serialnumber,#1)<>last(/Cisco Catalyst 3750V2-24PS SNMP/system.hw.serialnumber,#2))=1 and length(last(/Cisco Catalyst 3750V2-24PS SNMP/system.hw.serialnumber))>0' name: 'Device has been replaced (new serial number received)' priority: INFO description: 'Device serial number has changed. Ack to close' @@ -238,7 +238,7 @@ zabbix_export: value: General triggers: - - expression: '{diff()}=1 and {strlen()}>0' + expression: '(last(/Cisco Catalyst 3750V2-24PS SNMP/system.name,#1)<>last(/Cisco Catalyst 3750V2-24PS SNMP/system.name,#2))=1 and length(last(/Cisco Catalyst 3750V2-24PS SNMP/system.name))>0' name: 'System name has changed (new name: {ITEM.VALUE})' priority: INFO description: 'System name has changed. Ack to close.' @@ -290,7 +290,7 @@ zabbix_export: value: Inventory triggers: - - expression: '{diff()}=1 and {strlen()}>0' + expression: '(last(/Cisco Catalyst 3750V2-24PS SNMP/system.sw.os,#1)<>last(/Cisco Catalyst 3750V2-24PS SNMP/system.sw.os,#2))=1 and length(last(/Cisco Catalyst 3750V2-24PS SNMP/system.sw.os))>0' recovery_mode: NONE name: 'Operating system description has changed' priority: INFO @@ -299,7 +299,7 @@ zabbix_export: dependencies: - name: 'System name has changed (new name: {ITEM.VALUE})' - expression: '{Cisco Catalyst 3750V2-24PS SNMP:system.name.diff()}=1 and {Cisco Catalyst 3750V2-24PS SNMP:system.name.strlen()}>0' + expression: '(last(/Cisco Catalyst 3750V2-24PS SNMP/system.name,#1)<>last(/Cisco Catalyst 3750V2-24PS SNMP/system.name,#2))=1 and length(last(/Cisco Catalyst 3750V2-24PS SNMP/system.name))>0' - name: Uptime type: SNMP_AGENT @@ -322,7 +322,7 @@ zabbix_export: value: Status triggers: - - expression: '{last()}<10m' + expression: 'last(/Cisco Catalyst 3750V2-24PS SNMP/system.uptime)<10m' name: '{HOST.NAME} has been restarted (uptime < 10m)' priority: WARNING description: 'Uptime is less than 10 minutes' @@ -340,7 +340,7 @@ zabbix_export: value: Status triggers: - - expression: '{max({$SNMP.TIMEOUT})}=0' + expression: 'max(/Cisco Catalyst 3750V2-24PS SNMP/zabbix[host,snmp,available],{$SNMP.TIMEOUT})=0' name: 'No SNMP data collection' opdata: 'Current state: {ITEM.LASTVALUE1}' priority: WARNING @@ -379,7 +379,7 @@ zabbix_export: value: CPU trigger_prototypes: - - expression: '{min(5m)}>{$CPU.UTIL.CRIT}' + expression: 'min(/Cisco Catalyst 3750V2-24PS SNMP/system.cpu.util[{#SNMPINDEX}],5m)>{$CPU.UTIL.CRIT}' name: '#{#SNMPINDEX}: High CPU utilization (over {$CPU.UTIL.CRIT}% for 5m)' opdata: 'Current utilization: {ITEM.LASTVALUE1}' priority: WARNING @@ -437,7 +437,7 @@ zabbix_export: value: Inventory trigger_prototypes: - - expression: '{diff()}=1 and {strlen()}>0' + expression: '(last(/Cisco Catalyst 3750V2-24PS SNMP/system.hw.serialnumber[{#SNMPINDEX}],#1)<>last(/Cisco Catalyst 3750V2-24PS SNMP/system.hw.serialnumber[{#SNMPINDEX}],#2))=1 and length(last(/Cisco Catalyst 3750V2-24PS SNMP/system.hw.serialnumber[{#SNMPINDEX}]))>0' name: '{#ENT_NAME}: Device has been replaced (new serial number received)' priority: INFO description: 'Device serial number has changed. Ack to close' @@ -466,13 +466,13 @@ zabbix_export: value: Fans trigger_prototypes: - - expression: '{last()}=3 or {last()}=4' + expression: 'last(/Cisco Catalyst 3750V2-24PS SNMP/sensor.fan.status[{#SNMPINDEX}])=3 or last(/Cisco Catalyst 3750V2-24PS SNMP/sensor.fan.status[{#SNMPINDEX}])=4' name: '{#SNMPVALUE}: Fan is in critical state' opdata: 'Current state: {ITEM.LASTVALUE1}' priority: AVERAGE description: 'Please check the fan unit' - - expression: '{last()}=2' + expression: 'last(/Cisco Catalyst 3750V2-24PS SNMP/sensor.fan.status[{#SNMPINDEX}])=2' name: '{#SNMPVALUE}: Fan is in warning state' opdata: 'Current state: {ITEM.LASTVALUE1}' priority: WARNING @@ -480,7 +480,7 @@ zabbix_export: dependencies: - name: '{#SNMPVALUE}: Fan is in critical state' - expression: '{Cisco Catalyst 3750V2-24PS SNMP:sensor.fan.status[{#SNMPINDEX}].last()}=3 or {Cisco Catalyst 3750V2-24PS SNMP:sensor.fan.status[{#SNMPINDEX}].last()}=4' + expression: 'last(/Cisco Catalyst 3750V2-24PS SNMP/sensor.fan.status[{#SNMPINDEX}])=3 or last(/Cisco Catalyst 3750V2-24PS SNMP/sensor.fan.status[{#SNMPINDEX}])=4' - name: 'Memory discovery' type: SNMP_AGENT @@ -530,7 +530,7 @@ zabbix_export: history: 7d value_type: FLOAT units: '%' - params: 'last("vm.memory.used[{#SNMPINDEX}]")/(last("vm.memory.free[{#SNMPINDEX}]")+last("vm.memory.used[{#SNMPINDEX}]"))*100' + params: 'last(//vm.memory.used[{#SNMPINDEX}])/(last(//vm.memory.free[{#SNMPINDEX}])+last(//vm.memory.used[{#SNMPINDEX}]))*100' description: 'Memory utilization in %' tags: - @@ -538,7 +538,7 @@ zabbix_export: value: Memory trigger_prototypes: - - expression: '{min(5m)}>{$MEMORY.UTIL.MAX}' + expression: 'min(/Cisco Catalyst 3750V2-24PS SNMP/vm.memory.util[{#SNMPINDEX}],5m)>{$MEMORY.UTIL.MAX}' name: '{#SNMPVALUE}: High memory utilization ( >{$MEMORY.UTIL.MAX}% for 5m)' priority: AVERAGE description: 'The system is running out of free memory.' @@ -661,9 +661,9 @@ zabbix_export: value: 'Interface {#IFNAME}({#IFALIAS})' trigger_prototypes: - - expression: '{min(5m)}>{$IF.ERRORS.WARN:"{#IFNAME}"}' + expression: 'min(/Cisco Catalyst 3750V2-24PS SNMP/net.if.in.errors[{#SNMPINDEX}],5m)>{$IF.ERRORS.WARN:"{#IFNAME}"}' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{max(5m)}<{$IF.ERRORS.WARN:"{#IFNAME}"}*0.8' + recovery_expression: 'max(/Cisco Catalyst 3750V2-24PS SNMP/net.if.in.errors[{#SNMPINDEX}],5m)<{$IF.ERRORS.WARN:"{#IFNAME}"}*0.8' name: 'Interface {#IFNAME}({#IFALIAS}): High input error rate ( > {$IF.ERRORS.WARN:"{#IFNAME}"} for 5m)' opdata: 'errors in: {ITEM.LASTVALUE1}' priority: WARNING @@ -671,7 +671,7 @@ zabbix_export: dependencies: - name: 'Interface {#IFNAME}({#IFALIAS}): Link down' - expression: '{$IFCONTROL:"{#IFNAME}"}=1 and ({Cisco Catalyst 3750V2-24PS SNMP:net.if.status[{#SNMPINDEX}].last()}=2)' + expression: '{$IFCONTROL:"{#IFNAME}"}=1 and (last(/Cisco Catalyst 3750V2-24PS SNMP/net.if.status[{#SNMPINDEX}])=2)' - name: 'Interface {#IFNAME}({#IFALIAS}): Bits received' type: SNMP_AGENT @@ -737,9 +737,9 @@ zabbix_export: value: 'Interface {#IFNAME}({#IFALIAS})' trigger_prototypes: - - expression: '{min(5m)}>{$IF.ERRORS.WARN:"{#IFNAME}"}' + expression: 'min(/Cisco Catalyst 3750V2-24PS SNMP/net.if.out.errors[{#SNMPINDEX}],5m)>{$IF.ERRORS.WARN:"{#IFNAME}"}' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{max(5m)}<{$IF.ERRORS.WARN:"{#IFNAME}"}*0.8' + recovery_expression: 'max(/Cisco Catalyst 3750V2-24PS SNMP/net.if.out.errors[{#SNMPINDEX}],5m)<{$IF.ERRORS.WARN:"{#IFNAME}"}*0.8' name: 'Interface {#IFNAME}({#IFALIAS}): High output error rate ( > {$IF.ERRORS.WARN:"{#IFNAME}"} for 5m)' opdata: 'errors out: {ITEM.LASTVALUE2}' priority: WARNING @@ -747,7 +747,7 @@ zabbix_export: dependencies: - name: 'Interface {#IFNAME}({#IFALIAS}): Link down' - expression: '{$IFCONTROL:"{#IFNAME}"}=1 and ({Cisco Catalyst 3750V2-24PS SNMP:net.if.status[{#SNMPINDEX}].last()}=2)' + expression: '{$IFCONTROL:"{#IFNAME}"}=1 and (last(/Cisco Catalyst 3750V2-24PS SNMP/net.if.status[{#SNMPINDEX}])=2)' - name: 'Interface {#IFNAME}({#IFALIAS}): Bits sent' type: SNMP_AGENT @@ -822,7 +822,7 @@ zabbix_export: value: 'Interface {#IFNAME}({#IFALIAS})' trigger_prototypes: - - expression: '{$IFCONTROL:"{#IFNAME}"}=1 and ({last()}=2)' + expression: '{$IFCONTROL:"{#IFNAME}"}=1 and (last(/Cisco Catalyst 3750V2-24PS SNMP/net.if.status[{#SNMPINDEX}])=2)' name: 'Interface {#IFNAME}({#IFALIAS}): Link down' opdata: 'Current state: {ITEM.LASTVALUE1}' priority: AVERAGE @@ -855,21 +855,21 @@ zabbix_export: trigger_prototypes: - expression: | - {Cisco Catalyst 3750V2-24PS SNMP:net.if.speed[{#SNMPINDEX}].change()}<0 and {Cisco Catalyst 3750V2-24PS SNMP:net.if.speed[{#SNMPINDEX}].last()}>0 + change(/Cisco Catalyst 3750V2-24PS SNMP/net.if.speed[{#SNMPINDEX}])<0 and last(/Cisco Catalyst 3750V2-24PS SNMP/net.if.speed[{#SNMPINDEX}])>0 and ( - {Cisco Catalyst 3750V2-24PS SNMP:net.if.type[{#SNMPINDEX}].last()}=6 or - {Cisco Catalyst 3750V2-24PS SNMP:net.if.type[{#SNMPINDEX}].last()}=7 or - {Cisco Catalyst 3750V2-24PS SNMP:net.if.type[{#SNMPINDEX}].last()}=11 or - {Cisco Catalyst 3750V2-24PS SNMP:net.if.type[{#SNMPINDEX}].last()}=62 or - {Cisco Catalyst 3750V2-24PS SNMP:net.if.type[{#SNMPINDEX}].last()}=69 or - {Cisco Catalyst 3750V2-24PS SNMP:net.if.type[{#SNMPINDEX}].last()}=117 + last(/Cisco Catalyst 3750V2-24PS SNMP/net.if.type[{#SNMPINDEX}])=6 or + last(/Cisco Catalyst 3750V2-24PS SNMP/net.if.type[{#SNMPINDEX}])=7 or + last(/Cisco Catalyst 3750V2-24PS SNMP/net.if.type[{#SNMPINDEX}])=11 or + last(/Cisco Catalyst 3750V2-24PS SNMP/net.if.type[{#SNMPINDEX}])=62 or + last(/Cisco Catalyst 3750V2-24PS SNMP/net.if.type[{#SNMPINDEX}])=69 or + last(/Cisco Catalyst 3750V2-24PS SNMP/net.if.type[{#SNMPINDEX}])=117 ) and - ({Cisco Catalyst 3750V2-24PS SNMP:net.if.status[{#SNMPINDEX}].last()}<>2) + (last(/Cisco Catalyst 3750V2-24PS SNMP/net.if.status[{#SNMPINDEX}])<>2) recovery_mode: RECOVERY_EXPRESSION recovery_expression: | - ({Cisco Catalyst 3750V2-24PS SNMP:net.if.speed[{#SNMPINDEX}].change()}>0 and {Cisco Catalyst 3750V2-24PS SNMP:net.if.speed[{#SNMPINDEX}].prev()}>0) or - ({Cisco Catalyst 3750V2-24PS SNMP:net.if.status[{#SNMPINDEX}].last()}=2) + (change(/Cisco Catalyst 3750V2-24PS SNMP/net.if.speed[{#SNMPINDEX}])>0 and last(/Cisco Catalyst 3750V2-24PS SNMP/net.if.speed[{#SNMPINDEX}],#2)>0) or + (last(/Cisco Catalyst 3750V2-24PS SNMP/net.if.status[{#SNMPINDEX}])=2) name: 'Interface {#IFNAME}({#IFALIAS}): Ethernet has changed to lower speed than it was before' opdata: 'Current reported speed: {ITEM.LASTVALUE1}' priority: INFO @@ -877,13 +877,13 @@ zabbix_export: dependencies: - name: 'Interface {#IFNAME}({#IFALIAS}): Link down' - expression: '{$IFCONTROL:"{#IFNAME}"}=1 and ({Cisco Catalyst 3750V2-24PS SNMP:net.if.status[{#SNMPINDEX}].last()}=2)' + expression: '{$IFCONTROL:"{#IFNAME}"}=1 and (last(/Cisco Catalyst 3750V2-24PS SNMP/net.if.status[{#SNMPINDEX}])=2)' - expression: | - ({Cisco Catalyst 3750V2-24PS SNMP:net.if.in[{#SNMPINDEX}].avg(15m)}>({$IF.UTIL.MAX:"{#IFNAME}"}/100)*{Cisco Catalyst 3750V2-24PS SNMP:net.if.speed[{#SNMPINDEX}].last()}) and - {Cisco Catalyst 3750V2-24PS SNMP:net.if.speed[{#SNMPINDEX}].last()}>0 + (avg(/Cisco Catalyst 3750V2-24PS SNMP/net.if.in[{#SNMPINDEX}],15m)>({$IF.UTIL.MAX:"{#IFNAME}"}/100)*last(/Cisco Catalyst 3750V2-24PS SNMP/net.if.speed[{#SNMPINDEX}])) and + last(/Cisco Catalyst 3750V2-24PS SNMP/net.if.speed[{#SNMPINDEX}])>0 recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{Cisco Catalyst 3750V2-24PS SNMP:net.if.in[{#SNMPINDEX}].avg(15m)}<(({$IF.UTIL.MAX:"{#IFNAME}"}-3)/100)*{Cisco Catalyst 3750V2-24PS SNMP:net.if.speed[{#SNMPINDEX}].last()}' + recovery_expression: 'avg(/Cisco Catalyst 3750V2-24PS SNMP/net.if.in[{#SNMPINDEX}],15m)<(({$IF.UTIL.MAX:"{#IFNAME}"}-3)/100)*last(/Cisco Catalyst 3750V2-24PS SNMP/net.if.speed[{#SNMPINDEX}])' name: 'Interface {#IFNAME}({#IFALIAS}): High inbound bandwidth usage ( > {$IF.UTIL.MAX:"{#IFNAME}"}% )' opdata: 'In: {ITEM.LASTVALUE1}, speed: {ITEM.LASTVALUE2}' priority: WARNING @@ -891,13 +891,13 @@ zabbix_export: dependencies: - name: 'Interface {#IFNAME}({#IFALIAS}): Link down' - expression: '{$IFCONTROL:"{#IFNAME}"}=1 and ({Cisco Catalyst 3750V2-24PS SNMP:net.if.status[{#SNMPINDEX}].last()}=2)' + expression: '{$IFCONTROL:"{#IFNAME}"}=1 and (last(/Cisco Catalyst 3750V2-24PS SNMP/net.if.status[{#SNMPINDEX}])=2)' - expression: | - ({Cisco Catalyst 3750V2-24PS SNMP:net.if.out[{#SNMPINDEX}].avg(15m)}>({$IF.UTIL.MAX:"{#IFNAME}"}/100)*{Cisco Catalyst 3750V2-24PS SNMP:net.if.speed[{#SNMPINDEX}].last()}) and - {Cisco Catalyst 3750V2-24PS SNMP:net.if.speed[{#SNMPINDEX}].last()}>0 + (avg(/Cisco Catalyst 3750V2-24PS SNMP/net.if.out[{#SNMPINDEX}],15m)>({$IF.UTIL.MAX:"{#IFNAME}"}/100)*last(/Cisco Catalyst 3750V2-24PS SNMP/net.if.speed[{#SNMPINDEX}])) and + last(/Cisco Catalyst 3750V2-24PS SNMP/net.if.speed[{#SNMPINDEX}])>0 recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{Cisco Catalyst 3750V2-24PS SNMP:net.if.out[{#SNMPINDEX}].avg(15m)}<(({$IF.UTIL.MAX:"{#IFNAME}"}-3)/100)*{Cisco Catalyst 3750V2-24PS SNMP:net.if.speed[{#SNMPINDEX}].last()}' + recovery_expression: 'avg(/Cisco Catalyst 3750V2-24PS SNMP/net.if.out[{#SNMPINDEX}],15m)<(({$IF.UTIL.MAX:"{#IFNAME}"}-3)/100)*last(/Cisco Catalyst 3750V2-24PS SNMP/net.if.speed[{#SNMPINDEX}])' name: 'Interface {#IFNAME}({#IFALIAS}): High outbound bandwidth usage ( > {$IF.UTIL.MAX:"{#IFNAME}"}% )' opdata: 'Out: {ITEM.LASTVALUE1}, speed: {ITEM.LASTVALUE2}' priority: WARNING @@ -905,7 +905,7 @@ zabbix_export: dependencies: - name: 'Interface {#IFNAME}({#IFALIAS}): Link down' - expression: '{$IFCONTROL:"{#IFNAME}"}=1 and ({Cisco Catalyst 3750V2-24PS SNMP:net.if.status[{#SNMPINDEX}].last()}=2)' + expression: '{$IFCONTROL:"{#IFNAME}"}=1 and (last(/Cisco Catalyst 3750V2-24PS SNMP/net.if.status[{#SNMPINDEX}])=2)' graph_prototypes: - name: 'Interface {#IFNAME}({#IFALIAS}): Network traffic' @@ -1011,7 +1011,7 @@ zabbix_export: value: 'Interface {#IFNAME}({#IFALIAS})' trigger_prototypes: - - expression: '{last()}=2' + expression: 'last(/Cisco Catalyst 3750V2-24PS SNMP/net.if.duplex[{#SNMPINDEX}])=2' name: 'Interface {#IFNAME}({#IFALIAS}): In half-duplex mode' priority: WARNING description: 'Please check autonegotiation settings and cabling' @@ -1040,13 +1040,13 @@ zabbix_export: value: 'Power supply' trigger_prototypes: - - expression: '{last()}=3 or {last(4)}=4' + expression: 'last(/Cisco Catalyst 3750V2-24PS SNMP/sensor.psu.status[{#SNMPINDEX}])=3 or last(/Cisco Catalyst 3750V2-24PS SNMP/sensor.psu.status[{#SNMPINDEX}])=4' name: '{#SNMPVALUE}: Power supply is in critical state' opdata: 'Current state: {ITEM.LASTVALUE1}' priority: AVERAGE description: 'Please check the power supply unit for errors' - - expression: '{last()}=2' + expression: 'last(/Cisco Catalyst 3750V2-24PS SNMP/sensor.psu.status[{#SNMPINDEX}])=2' name: '{#SNMPVALUE}: Power supply is in warning state' opdata: 'Current state: {ITEM.LASTVALUE1}' priority: WARNING @@ -1054,7 +1054,7 @@ zabbix_export: dependencies: - name: '{#SNMPVALUE}: Power supply is in critical state' - expression: '{Cisco Catalyst 3750V2-24PS SNMP:sensor.psu.status[{#SNMPINDEX}].last()}=3 or {Cisco Catalyst 3750V2-24PS SNMP:sensor.psu.status[{#SNMPINDEX}].last(4)}=4' + expression: 'last(/Cisco Catalyst 3750V2-24PS SNMP/sensor.psu.status[{#SNMPINDEX}])=3 or last(/Cisco Catalyst 3750V2-24PS SNMP/sensor.psu.status[{#SNMPINDEX}])=4' - name: 'Temperature discovery' type: SNMP_AGENT @@ -1083,13 +1083,13 @@ zabbix_export: value: Temperature trigger_prototypes: - - expression: '{last()}=3 or {last()}=4' + expression: 'last(/Cisco Catalyst 3750V2-24PS SNMP/sensor.temp.status[{#SNMPINDEX}])=3 or last(/Cisco Catalyst 3750V2-24PS SNMP/sensor.temp.status[{#SNMPINDEX}])=4' name: '{#SNMPVALUE}: Temperature is in critical state' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: HIGH description: 'This trigger uses temperature sensor state' - - expression: '{last()}=2' + expression: 'last(/Cisco Catalyst 3750V2-24PS SNMP/sensor.temp.status[{#SNMPINDEX}])=2' name: '{#SNMPVALUE}: Temperature is in warning state' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING @@ -1097,7 +1097,7 @@ zabbix_export: dependencies: - name: '{#SNMPVALUE}: Temperature is in critical state' - expression: '{Cisco Catalyst 3750V2-24PS SNMP:sensor.temp.status[{#SNMPINDEX}].last()}=3 or {Cisco Catalyst 3750V2-24PS SNMP:sensor.temp.status[{#SNMPINDEX}].last()}=4' + expression: 'last(/Cisco Catalyst 3750V2-24PS SNMP/sensor.temp.status[{#SNMPINDEX}])=3 or last(/Cisco Catalyst 3750V2-24PS SNMP/sensor.temp.status[{#SNMPINDEX}])=4' - name: '{#SNMPVALUE}: Temperature' type: SNMP_AGENT @@ -1116,17 +1116,17 @@ zabbix_export: value: Temperature trigger_prototypes: - - expression: '{avg(5m)}>{$TEMP_CRIT:"{#SNMPVALUE}"}' + expression: 'avg(/Cisco Catalyst 3750V2-24PS SNMP/sensor.temp.value[{#SNMPINDEX}],5m)>{$TEMP_CRIT:"{#SNMPVALUE}"}' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{max(5m)}<{$TEMP_CRIT:"{#SNMPVALUE}"}-3' + recovery_expression: 'max(/Cisco Catalyst 3750V2-24PS SNMP/sensor.temp.value[{#SNMPINDEX}],5m)<{$TEMP_CRIT:"{#SNMPVALUE}"}-3' name: '{#SNMPVALUE}: Temperature is above critical threshold: >{$TEMP_CRIT:"{#SNMPVALUE}"}' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: HIGH description: 'This trigger uses temperature sensor values as well as temperature sensor status if available' - - expression: '{avg(5m)}>{$TEMP_WARN:"{#SNMPVALUE}"}' + expression: 'avg(/Cisco Catalyst 3750V2-24PS SNMP/sensor.temp.value[{#SNMPINDEX}],5m)>{$TEMP_WARN:"{#SNMPVALUE}"}' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{max(5m)}<{$TEMP_WARN:"{#SNMPVALUE}"}-3' + recovery_expression: 'max(/Cisco Catalyst 3750V2-24PS SNMP/sensor.temp.value[{#SNMPINDEX}],5m)<{$TEMP_WARN:"{#SNMPVALUE}"}-3' name: '{#SNMPVALUE}: Temperature is above warning threshold: >{$TEMP_WARN:"{#SNMPVALUE}"}' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING @@ -1134,12 +1134,12 @@ zabbix_export: dependencies: - name: '{#SNMPVALUE}: Temperature is above critical threshold: >{$TEMP_CRIT:"{#SNMPVALUE}"}' - expression: '{Cisco Catalyst 3750V2-24PS SNMP:sensor.temp.value[{#SNMPINDEX}].avg(5m)}>{$TEMP_CRIT:"{#SNMPVALUE}"}' - recovery_expression: '{Cisco Catalyst 3750V2-24PS SNMP:sensor.temp.value[{#SNMPINDEX}].max(5m)}<{$TEMP_CRIT:"{#SNMPVALUE}"}-3' + expression: 'avg(/Cisco Catalyst 3750V2-24PS SNMP/sensor.temp.value[{#SNMPINDEX}],5m)>{$TEMP_CRIT:"{#SNMPVALUE}"}' + recovery_expression: 'max(/Cisco Catalyst 3750V2-24PS SNMP/sensor.temp.value[{#SNMPINDEX}],5m)<{$TEMP_CRIT:"{#SNMPVALUE}"}-3' - - expression: '{avg(5m)}<{$TEMP_CRIT_LOW:"{#SNMPVALUE}"}' + expression: 'avg(/Cisco Catalyst 3750V2-24PS SNMP/sensor.temp.value[{#SNMPINDEX}],5m)<{$TEMP_CRIT_LOW:"{#SNMPVALUE}"}' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{min(5m)}>{$TEMP_CRIT_LOW:"{#SNMPVALUE}"}+3' + recovery_expression: 'min(/Cisco Catalyst 3750V2-24PS SNMP/sensor.temp.value[{#SNMPINDEX}],5m)>{$TEMP_CRIT_LOW:"{#SNMPVALUE}"}+3' name: '{#SNMPVALUE}: Temperature is too low: <{$TEMP_CRIT_LOW:"{#SNMPVALUE}"}' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: AVERAGE diff --git a/templates/net/cisco_catalyst_3750/cisco_catalyst_3750_24ts_snmp/template_net_cisco_catalyst_3750_24ts_snmp.yaml b/templates/net/cisco_catalyst_3750/cisco_catalyst_3750_24ts_snmp/template_net_cisco_catalyst_3750_24ts_snmp.yaml index c5aae8027bb..41d2d7931f5 100644 --- a/templates/net/cisco_catalyst_3750/cisco_catalyst_3750_24ts_snmp/template_net_cisco_catalyst_3750_24ts_snmp.yaml +++ b/templates/net/cisco_catalyst_3750/cisco_catalyst_3750_24ts_snmp/template_net_cisco_catalyst_3750_24ts_snmp.yaml @@ -1,6 +1,6 @@ zabbix_export: version: '5.4' - date: '2021-04-22T11:27:07Z' + date: '2021-05-09T00:00:00Z' groups: - name: Templates/Modules @@ -38,7 +38,7 @@ zabbix_export: value: Status triggers: - - expression: '{max(#3)}=0' + expression: 'max(/Cisco Catalyst 3750V2-24TS SNMP/icmpping,#3)=0' name: 'Unavailable by ICMP ping' priority: HIGH description: 'Last three attempts returned timeout. Please check device connectivity.' @@ -55,14 +55,14 @@ zabbix_export: value: Status triggers: - - expression: '{min(5m)}>{$ICMP_LOSS_WARN} and {min(5m)}<100' + expression: 'min(/Cisco Catalyst 3750V2-24TS SNMP/icmppingloss,5m)>{$ICMP_LOSS_WARN} and min(/Cisco Catalyst 3750V2-24TS SNMP/icmppingloss,5m)<100' name: 'High ICMP ping loss' opdata: 'Loss: {ITEM.LASTVALUE1}' priority: WARNING dependencies: - name: 'Unavailable by ICMP ping' - expression: '{Cisco Catalyst 3750V2-24TS SNMP:icmpping.max(#3)}=0' + expression: 'max(/Cisco Catalyst 3750V2-24TS SNMP/icmpping,#3)=0' - name: 'ICMP response time' type: SIMPLE @@ -76,17 +76,17 @@ zabbix_export: value: Status triggers: - - expression: '{avg(5m)}>{$ICMP_RESPONSE_TIME_WARN}' + expression: 'avg(/Cisco Catalyst 3750V2-24TS SNMP/icmppingsec,5m)>{$ICMP_RESPONSE_TIME_WARN}' name: 'High ICMP ping response time' opdata: 'Value: {ITEM.LASTVALUE1}' priority: WARNING dependencies: - name: 'High ICMP ping loss' - expression: '{Cisco Catalyst 3750V2-24TS SNMP:icmppingloss.min(5m)}>{$ICMP_LOSS_WARN} and {Cisco Catalyst 3750V2-24TS SNMP:icmppingloss.min(5m)}<100' + expression: 'min(/Cisco Catalyst 3750V2-24TS SNMP/icmppingloss,5m)>{$ICMP_LOSS_WARN} and min(/Cisco Catalyst 3750V2-24TS SNMP/icmppingloss,5m)<100' - name: 'Unavailable by ICMP ping' - expression: '{Cisco Catalyst 3750V2-24TS SNMP:icmpping.max(#3)}=0' + expression: 'max(/Cisco Catalyst 3750V2-24TS SNMP/icmpping,#3)=0' - name: 'SNMP traps (fallback)' type: SNMP_TRAP @@ -187,7 +187,7 @@ zabbix_export: value: Inventory triggers: - - expression: '{diff()}=1 and {strlen()}>0' + expression: '(last(/Cisco Catalyst 3750V2-24TS SNMP/system.hw.serialnumber,#1)<>last(/Cisco Catalyst 3750V2-24TS SNMP/system.hw.serialnumber,#2))=1 and length(last(/Cisco Catalyst 3750V2-24TS SNMP/system.hw.serialnumber))>0' name: 'Device has been replaced (new serial number received)' priority: INFO description: 'Device serial number has changed. Ack to close' @@ -238,7 +238,7 @@ zabbix_export: value: General triggers: - - expression: '{diff()}=1 and {strlen()}>0' + expression: '(last(/Cisco Catalyst 3750V2-24TS SNMP/system.name,#1)<>last(/Cisco Catalyst 3750V2-24TS SNMP/system.name,#2))=1 and length(last(/Cisco Catalyst 3750V2-24TS SNMP/system.name))>0' name: 'System name has changed (new name: {ITEM.VALUE})' priority: INFO description: 'System name has changed. Ack to close.' @@ -290,7 +290,7 @@ zabbix_export: value: Inventory triggers: - - expression: '{diff()}=1 and {strlen()}>0' + expression: '(last(/Cisco Catalyst 3750V2-24TS SNMP/system.sw.os,#1)<>last(/Cisco Catalyst 3750V2-24TS SNMP/system.sw.os,#2))=1 and length(last(/Cisco Catalyst 3750V2-24TS SNMP/system.sw.os))>0' recovery_mode: NONE name: 'Operating system description has changed' priority: INFO @@ -299,7 +299,7 @@ zabbix_export: dependencies: - name: 'System name has changed (new name: {ITEM.VALUE})' - expression: '{Cisco Catalyst 3750V2-24TS SNMP:system.name.diff()}=1 and {Cisco Catalyst 3750V2-24TS SNMP:system.name.strlen()}>0' + expression: '(last(/Cisco Catalyst 3750V2-24TS SNMP/system.name,#1)<>last(/Cisco Catalyst 3750V2-24TS SNMP/system.name,#2))=1 and length(last(/Cisco Catalyst 3750V2-24TS SNMP/system.name))>0' - name: Uptime type: SNMP_AGENT @@ -322,7 +322,7 @@ zabbix_export: value: Status triggers: - - expression: '{last()}<10m' + expression: 'last(/Cisco Catalyst 3750V2-24TS SNMP/system.uptime)<10m' name: '{HOST.NAME} has been restarted (uptime < 10m)' priority: WARNING description: 'Uptime is less than 10 minutes' @@ -340,7 +340,7 @@ zabbix_export: value: Status triggers: - - expression: '{max({$SNMP.TIMEOUT})}=0' + expression: 'max(/Cisco Catalyst 3750V2-24TS SNMP/zabbix[host,snmp,available],{$SNMP.TIMEOUT})=0' name: 'No SNMP data collection' opdata: 'Current state: {ITEM.LASTVALUE1}' priority: WARNING @@ -379,7 +379,7 @@ zabbix_export: value: CPU trigger_prototypes: - - expression: '{min(5m)}>{$CPU.UTIL.CRIT}' + expression: 'min(/Cisco Catalyst 3750V2-24TS SNMP/system.cpu.util[{#SNMPINDEX}],5m)>{$CPU.UTIL.CRIT}' name: '#{#SNMPINDEX}: High CPU utilization (over {$CPU.UTIL.CRIT}% for 5m)' opdata: 'Current utilization: {ITEM.LASTVALUE1}' priority: WARNING @@ -437,7 +437,7 @@ zabbix_export: value: Inventory trigger_prototypes: - - expression: '{diff()}=1 and {strlen()}>0' + expression: '(last(/Cisco Catalyst 3750V2-24TS SNMP/system.hw.serialnumber[{#SNMPINDEX}],#1)<>last(/Cisco Catalyst 3750V2-24TS SNMP/system.hw.serialnumber[{#SNMPINDEX}],#2))=1 and length(last(/Cisco Catalyst 3750V2-24TS SNMP/system.hw.serialnumber[{#SNMPINDEX}]))>0' name: '{#ENT_NAME}: Device has been replaced (new serial number received)' priority: INFO description: 'Device serial number has changed. Ack to close' @@ -466,13 +466,13 @@ zabbix_export: value: Fans trigger_prototypes: - - expression: '{last()}=3 or {last()}=4' + expression: 'last(/Cisco Catalyst 3750V2-24TS SNMP/sensor.fan.status[{#SNMPINDEX}])=3 or last(/Cisco Catalyst 3750V2-24TS SNMP/sensor.fan.status[{#SNMPINDEX}])=4' name: '{#SNMPVALUE}: Fan is in critical state' opdata: 'Current state: {ITEM.LASTVALUE1}' priority: AVERAGE description: 'Please check the fan unit' - - expression: '{last()}=2' + expression: 'last(/Cisco Catalyst 3750V2-24TS SNMP/sensor.fan.status[{#SNMPINDEX}])=2' name: '{#SNMPVALUE}: Fan is in warning state' opdata: 'Current state: {ITEM.LASTVALUE1}' priority: WARNING @@ -480,7 +480,7 @@ zabbix_export: dependencies: - name: '{#SNMPVALUE}: Fan is in critical state' - expression: '{Cisco Catalyst 3750V2-24TS SNMP:sensor.fan.status[{#SNMPINDEX}].last()}=3 or {Cisco Catalyst 3750V2-24TS SNMP:sensor.fan.status[{#SNMPINDEX}].last()}=4' + expression: 'last(/Cisco Catalyst 3750V2-24TS SNMP/sensor.fan.status[{#SNMPINDEX}])=3 or last(/Cisco Catalyst 3750V2-24TS SNMP/sensor.fan.status[{#SNMPINDEX}])=4' - name: 'Memory discovery' type: SNMP_AGENT @@ -530,7 +530,7 @@ zabbix_export: history: 7d value_type: FLOAT units: '%' - params: 'last("vm.memory.used[{#SNMPINDEX}]")/(last("vm.memory.free[{#SNMPINDEX}]")+last("vm.memory.used[{#SNMPINDEX}]"))*100' + params: 'last(//vm.memory.used[{#SNMPINDEX}])/(last(//vm.memory.free[{#SNMPINDEX}])+last(//vm.memory.used[{#SNMPINDEX}]))*100' description: 'Memory utilization in %' tags: - @@ -538,7 +538,7 @@ zabbix_export: value: Memory trigger_prototypes: - - expression: '{min(5m)}>{$MEMORY.UTIL.MAX}' + expression: 'min(/Cisco Catalyst 3750V2-24TS SNMP/vm.memory.util[{#SNMPINDEX}],5m)>{$MEMORY.UTIL.MAX}' name: '{#SNMPVALUE}: High memory utilization ( >{$MEMORY.UTIL.MAX}% for 5m)' priority: AVERAGE description: 'The system is running out of free memory.' @@ -661,9 +661,9 @@ zabbix_export: value: 'Interface {#IFNAME}({#IFALIAS})' trigger_prototypes: - - expression: '{min(5m)}>{$IF.ERRORS.WARN:"{#IFNAME}"}' + expression: 'min(/Cisco Catalyst 3750V2-24TS SNMP/net.if.in.errors[{#SNMPINDEX}],5m)>{$IF.ERRORS.WARN:"{#IFNAME}"}' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{max(5m)}<{$IF.ERRORS.WARN:"{#IFNAME}"}*0.8' + recovery_expression: 'max(/Cisco Catalyst 3750V2-24TS SNMP/net.if.in.errors[{#SNMPINDEX}],5m)<{$IF.ERRORS.WARN:"{#IFNAME}"}*0.8' name: 'Interface {#IFNAME}({#IFALIAS}): High input error rate ( > {$IF.ERRORS.WARN:"{#IFNAME}"} for 5m)' opdata: 'errors in: {ITEM.LASTVALUE1}' priority: WARNING @@ -671,7 +671,7 @@ zabbix_export: dependencies: - name: 'Interface {#IFNAME}({#IFALIAS}): Link down' - expression: '{$IFCONTROL:"{#IFNAME}"}=1 and ({Cisco Catalyst 3750V2-24TS SNMP:net.if.status[{#SNMPINDEX}].last()}=2)' + expression: '{$IFCONTROL:"{#IFNAME}"}=1 and (last(/Cisco Catalyst 3750V2-24TS SNMP/net.if.status[{#SNMPINDEX}])=2)' - name: 'Interface {#IFNAME}({#IFALIAS}): Bits received' type: SNMP_AGENT @@ -737,9 +737,9 @@ zabbix_export: value: 'Interface {#IFNAME}({#IFALIAS})' trigger_prototypes: - - expression: '{min(5m)}>{$IF.ERRORS.WARN:"{#IFNAME}"}' + expression: 'min(/Cisco Catalyst 3750V2-24TS SNMP/net.if.out.errors[{#SNMPINDEX}],5m)>{$IF.ERRORS.WARN:"{#IFNAME}"}' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{max(5m)}<{$IF.ERRORS.WARN:"{#IFNAME}"}*0.8' + recovery_expression: 'max(/Cisco Catalyst 3750V2-24TS SNMP/net.if.out.errors[{#SNMPINDEX}],5m)<{$IF.ERRORS.WARN:"{#IFNAME}"}*0.8' name: 'Interface {#IFNAME}({#IFALIAS}): High output error rate ( > {$IF.ERRORS.WARN:"{#IFNAME}"} for 5m)' opdata: 'errors out: {ITEM.LASTVALUE2}' priority: WARNING @@ -747,7 +747,7 @@ zabbix_export: dependencies: - name: 'Interface {#IFNAME}({#IFALIAS}): Link down' - expression: '{$IFCONTROL:"{#IFNAME}"}=1 and ({Cisco Catalyst 3750V2-24TS SNMP:net.if.status[{#SNMPINDEX}].last()}=2)' + expression: '{$IFCONTROL:"{#IFNAME}"}=1 and (last(/Cisco Catalyst 3750V2-24TS SNMP/net.if.status[{#SNMPINDEX}])=2)' - name: 'Interface {#IFNAME}({#IFALIAS}): Bits sent' type: SNMP_AGENT @@ -822,7 +822,7 @@ zabbix_export: value: 'Interface {#IFNAME}({#IFALIAS})' trigger_prototypes: - - expression: '{$IFCONTROL:"{#IFNAME}"}=1 and ({last()}=2)' + expression: '{$IFCONTROL:"{#IFNAME}"}=1 and (last(/Cisco Catalyst 3750V2-24TS SNMP/net.if.status[{#SNMPINDEX}])=2)' name: 'Interface {#IFNAME}({#IFALIAS}): Link down' opdata: 'Current state: {ITEM.LASTVALUE1}' priority: AVERAGE @@ -855,21 +855,21 @@ zabbix_export: trigger_prototypes: - expression: | - {Cisco Catalyst 3750V2-24TS SNMP:net.if.speed[{#SNMPINDEX}].change()}<0 and {Cisco Catalyst 3750V2-24TS SNMP:net.if.speed[{#SNMPINDEX}].last()}>0 + change(/Cisco Catalyst 3750V2-24TS SNMP/net.if.speed[{#SNMPINDEX}])<0 and last(/Cisco Catalyst 3750V2-24TS SNMP/net.if.speed[{#SNMPINDEX}])>0 and ( - {Cisco Catalyst 3750V2-24TS SNMP:net.if.type[{#SNMPINDEX}].last()}=6 or - {Cisco Catalyst 3750V2-24TS SNMP:net.if.type[{#SNMPINDEX}].last()}=7 or - {Cisco Catalyst 3750V2-24TS SNMP:net.if.type[{#SNMPINDEX}].last()}=11 or - {Cisco Catalyst 3750V2-24TS SNMP:net.if.type[{#SNMPINDEX}].last()}=62 or - {Cisco Catalyst 3750V2-24TS SNMP:net.if.type[{#SNMPINDEX}].last()}=69 or - {Cisco Catalyst 3750V2-24TS SNMP:net.if.type[{#SNMPINDEX}].last()}=117 + last(/Cisco Catalyst 3750V2-24TS SNMP/net.if.type[{#SNMPINDEX}])=6 or + last(/Cisco Catalyst 3750V2-24TS SNMP/net.if.type[{#SNMPINDEX}])=7 or + last(/Cisco Catalyst 3750V2-24TS SNMP/net.if.type[{#SNMPINDEX}])=11 or + last(/Cisco Catalyst 3750V2-24TS SNMP/net.if.type[{#SNMPINDEX}])=62 or + last(/Cisco Catalyst 3750V2-24TS SNMP/net.if.type[{#SNMPINDEX}])=69 or + last(/Cisco Catalyst 3750V2-24TS SNMP/net.if.type[{#SNMPINDEX}])=117 ) and - ({Cisco Catalyst 3750V2-24TS SNMP:net.if.status[{#SNMPINDEX}].last()}<>2) + (last(/Cisco Catalyst 3750V2-24TS SNMP/net.if.status[{#SNMPINDEX}])<>2) recovery_mode: RECOVERY_EXPRESSION recovery_expression: | - ({Cisco Catalyst 3750V2-24TS SNMP:net.if.speed[{#SNMPINDEX}].change()}>0 and {Cisco Catalyst 3750V2-24TS SNMP:net.if.speed[{#SNMPINDEX}].prev()}>0) or - ({Cisco Catalyst 3750V2-24TS SNMP:net.if.status[{#SNMPINDEX}].last()}=2) + (change(/Cisco Catalyst 3750V2-24TS SNMP/net.if.speed[{#SNMPINDEX}])>0 and last(/Cisco Catalyst 3750V2-24TS SNMP/net.if.speed[{#SNMPINDEX}],#2)>0) or + (last(/Cisco Catalyst 3750V2-24TS SNMP/net.if.status[{#SNMPINDEX}])=2) name: 'Interface {#IFNAME}({#IFALIAS}): Ethernet has changed to lower speed than it was before' opdata: 'Current reported speed: {ITEM.LASTVALUE1}' priority: INFO @@ -877,13 +877,13 @@ zabbix_export: dependencies: - name: 'Interface {#IFNAME}({#IFALIAS}): Link down' - expression: '{$IFCONTROL:"{#IFNAME}"}=1 and ({Cisco Catalyst 3750V2-24TS SNMP:net.if.status[{#SNMPINDEX}].last()}=2)' + expression: '{$IFCONTROL:"{#IFNAME}"}=1 and (last(/Cisco Catalyst 3750V2-24TS SNMP/net.if.status[{#SNMPINDEX}])=2)' - expression: | - ({Cisco Catalyst 3750V2-24TS SNMP:net.if.in[{#SNMPINDEX}].avg(15m)}>({$IF.UTIL.MAX:"{#IFNAME}"}/100)*{Cisco Catalyst 3750V2-24TS SNMP:net.if.speed[{#SNMPINDEX}].last()}) and - {Cisco Catalyst 3750V2-24TS SNMP:net.if.speed[{#SNMPINDEX}].last()}>0 + (avg(/Cisco Catalyst 3750V2-24TS SNMP/net.if.in[{#SNMPINDEX}],15m)>({$IF.UTIL.MAX:"{#IFNAME}"}/100)*last(/Cisco Catalyst 3750V2-24TS SNMP/net.if.speed[{#SNMPINDEX}])) and + last(/Cisco Catalyst 3750V2-24TS SNMP/net.if.speed[{#SNMPINDEX}])>0 recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{Cisco Catalyst 3750V2-24TS SNMP:net.if.in[{#SNMPINDEX}].avg(15m)}<(({$IF.UTIL.MAX:"{#IFNAME}"}-3)/100)*{Cisco Catalyst 3750V2-24TS SNMP:net.if.speed[{#SNMPINDEX}].last()}' + recovery_expression: 'avg(/Cisco Catalyst 3750V2-24TS SNMP/net.if.in[{#SNMPINDEX}],15m)<(({$IF.UTIL.MAX:"{#IFNAME}"}-3)/100)*last(/Cisco Catalyst 3750V2-24TS SNMP/net.if.speed[{#SNMPINDEX}])' name: 'Interface {#IFNAME}({#IFALIAS}): High inbound bandwidth usage ( > {$IF.UTIL.MAX:"{#IFNAME}"}% )' opdata: 'In: {ITEM.LASTVALUE1}, speed: {ITEM.LASTVALUE2}' priority: WARNING @@ -891,13 +891,13 @@ zabbix_export: dependencies: - name: 'Interface {#IFNAME}({#IFALIAS}): Link down' - expression: '{$IFCONTROL:"{#IFNAME}"}=1 and ({Cisco Catalyst 3750V2-24TS SNMP:net.if.status[{#SNMPINDEX}].last()}=2)' + expression: '{$IFCONTROL:"{#IFNAME}"}=1 and (last(/Cisco Catalyst 3750V2-24TS SNMP/net.if.status[{#SNMPINDEX}])=2)' - expression: | - ({Cisco Catalyst 3750V2-24TS SNMP:net.if.out[{#SNMPINDEX}].avg(15m)}>({$IF.UTIL.MAX:"{#IFNAME}"}/100)*{Cisco Catalyst 3750V2-24TS SNMP:net.if.speed[{#SNMPINDEX}].last()}) and - {Cisco Catalyst 3750V2-24TS SNMP:net.if.speed[{#SNMPINDEX}].last()}>0 + (avg(/Cisco Catalyst 3750V2-24TS SNMP/net.if.out[{#SNMPINDEX}],15m)>({$IF.UTIL.MAX:"{#IFNAME}"}/100)*last(/Cisco Catalyst 3750V2-24TS SNMP/net.if.speed[{#SNMPINDEX}])) and + last(/Cisco Catalyst 3750V2-24TS SNMP/net.if.speed[{#SNMPINDEX}])>0 recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{Cisco Catalyst 3750V2-24TS SNMP:net.if.out[{#SNMPINDEX}].avg(15m)}<(({$IF.UTIL.MAX:"{#IFNAME}"}-3)/100)*{Cisco Catalyst 3750V2-24TS SNMP:net.if.speed[{#SNMPINDEX}].last()}' + recovery_expression: 'avg(/Cisco Catalyst 3750V2-24TS SNMP/net.if.out[{#SNMPINDEX}],15m)<(({$IF.UTIL.MAX:"{#IFNAME}"}-3)/100)*last(/Cisco Catalyst 3750V2-24TS SNMP/net.if.speed[{#SNMPINDEX}])' name: 'Interface {#IFNAME}({#IFALIAS}): High outbound bandwidth usage ( > {$IF.UTIL.MAX:"{#IFNAME}"}% )' opdata: 'Out: {ITEM.LASTVALUE1}, speed: {ITEM.LASTVALUE2}' priority: WARNING @@ -905,7 +905,7 @@ zabbix_export: dependencies: - name: 'Interface {#IFNAME}({#IFALIAS}): Link down' - expression: '{$IFCONTROL:"{#IFNAME}"}=1 and ({Cisco Catalyst 3750V2-24TS SNMP:net.if.status[{#SNMPINDEX}].last()}=2)' + expression: '{$IFCONTROL:"{#IFNAME}"}=1 and (last(/Cisco Catalyst 3750V2-24TS SNMP/net.if.status[{#SNMPINDEX}])=2)' graph_prototypes: - name: 'Interface {#IFNAME}({#IFALIAS}): Network traffic' @@ -1011,7 +1011,7 @@ zabbix_export: value: 'Interface {#IFNAME}({#IFALIAS})' trigger_prototypes: - - expression: '{last()}=2' + expression: 'last(/Cisco Catalyst 3750V2-24TS SNMP/net.if.duplex[{#SNMPINDEX}])=2' name: 'Interface {#IFNAME}({#IFALIAS}): In half-duplex mode' priority: WARNING description: 'Please check autonegotiation settings and cabling' @@ -1040,13 +1040,13 @@ zabbix_export: value: 'Power supply' trigger_prototypes: - - expression: '{last()}=3 or {last(4)}=4' + expression: 'last(/Cisco Catalyst 3750V2-24TS SNMP/sensor.psu.status[{#SNMPINDEX}])=3 or last(/Cisco Catalyst 3750V2-24TS SNMP/sensor.psu.status[{#SNMPINDEX}])=4' name: '{#SNMPVALUE}: Power supply is in critical state' opdata: 'Current state: {ITEM.LASTVALUE1}' priority: AVERAGE description: 'Please check the power supply unit for errors' - - expression: '{last()}=2' + expression: 'last(/Cisco Catalyst 3750V2-24TS SNMP/sensor.psu.status[{#SNMPINDEX}])=2' name: '{#SNMPVALUE}: Power supply is in warning state' opdata: 'Current state: {ITEM.LASTVALUE1}' priority: WARNING @@ -1054,7 +1054,7 @@ zabbix_export: dependencies: - name: '{#SNMPVALUE}: Power supply is in critical state' - expression: '{Cisco Catalyst 3750V2-24TS SNMP:sensor.psu.status[{#SNMPINDEX}].last()}=3 or {Cisco Catalyst 3750V2-24TS SNMP:sensor.psu.status[{#SNMPINDEX}].last(4)}=4' + expression: 'last(/Cisco Catalyst 3750V2-24TS SNMP/sensor.psu.status[{#SNMPINDEX}])=3 or last(/Cisco Catalyst 3750V2-24TS SNMP/sensor.psu.status[{#SNMPINDEX}])=4' - name: 'Temperature discovery' type: SNMP_AGENT @@ -1083,13 +1083,13 @@ zabbix_export: value: Temperature trigger_prototypes: - - expression: '{last()}=3 or {last()}=4' + expression: 'last(/Cisco Catalyst 3750V2-24TS SNMP/sensor.temp.status[{#SNMPINDEX}])=3 or last(/Cisco Catalyst 3750V2-24TS SNMP/sensor.temp.status[{#SNMPINDEX}])=4' name: '{#SNMPVALUE}: Temperature is in critical state' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: HIGH description: 'This trigger uses temperature sensor state' - - expression: '{last()}=2' + expression: 'last(/Cisco Catalyst 3750V2-24TS SNMP/sensor.temp.status[{#SNMPINDEX}])=2' name: '{#SNMPVALUE}: Temperature is in warning state' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING @@ -1097,7 +1097,7 @@ zabbix_export: dependencies: - name: '{#SNMPVALUE}: Temperature is in critical state' - expression: '{Cisco Catalyst 3750V2-24TS SNMP:sensor.temp.status[{#SNMPINDEX}].last()}=3 or {Cisco Catalyst 3750V2-24TS SNMP:sensor.temp.status[{#SNMPINDEX}].last()}=4' + expression: 'last(/Cisco Catalyst 3750V2-24TS SNMP/sensor.temp.status[{#SNMPINDEX}])=3 or last(/Cisco Catalyst 3750V2-24TS SNMP/sensor.temp.status[{#SNMPINDEX}])=4' - name: '{#SNMPVALUE}: Temperature' type: SNMP_AGENT @@ -1116,17 +1116,17 @@ zabbix_export: value: Temperature trigger_prototypes: - - expression: '{avg(5m)}>{$TEMP_CRIT:"{#SNMPVALUE}"}' + expression: 'avg(/Cisco Catalyst 3750V2-24TS SNMP/sensor.temp.value[{#SNMPINDEX}],5m)>{$TEMP_CRIT:"{#SNMPVALUE}"}' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{max(5m)}<{$TEMP_CRIT:"{#SNMPVALUE}"}-3' + recovery_expression: 'max(/Cisco Catalyst 3750V2-24TS SNMP/sensor.temp.value[{#SNMPINDEX}],5m)<{$TEMP_CRIT:"{#SNMPVALUE}"}-3' name: '{#SNMPVALUE}: Temperature is above critical threshold: >{$TEMP_CRIT:"{#SNMPVALUE}"}' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: HIGH description: 'This trigger uses temperature sensor values as well as temperature sensor status if available' - - expression: '{avg(5m)}>{$TEMP_WARN:"{#SNMPVALUE}"}' + expression: 'avg(/Cisco Catalyst 3750V2-24TS SNMP/sensor.temp.value[{#SNMPINDEX}],5m)>{$TEMP_WARN:"{#SNMPVALUE}"}' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{max(5m)}<{$TEMP_WARN:"{#SNMPVALUE}"}-3' + recovery_expression: 'max(/Cisco Catalyst 3750V2-24TS SNMP/sensor.temp.value[{#SNMPINDEX}],5m)<{$TEMP_WARN:"{#SNMPVALUE}"}-3' name: '{#SNMPVALUE}: Temperature is above warning threshold: >{$TEMP_WARN:"{#SNMPVALUE}"}' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING @@ -1134,12 +1134,12 @@ zabbix_export: dependencies: - name: '{#SNMPVALUE}: Temperature is above critical threshold: >{$TEMP_CRIT:"{#SNMPVALUE}"}' - expression: '{Cisco Catalyst 3750V2-24TS SNMP:sensor.temp.value[{#SNMPINDEX}].avg(5m)}>{$TEMP_CRIT:"{#SNMPVALUE}"}' - recovery_expression: '{Cisco Catalyst 3750V2-24TS SNMP:sensor.temp.value[{#SNMPINDEX}].max(5m)}<{$TEMP_CRIT:"{#SNMPVALUE}"}-3' + expression: 'avg(/Cisco Catalyst 3750V2-24TS SNMP/sensor.temp.value[{#SNMPINDEX}],5m)>{$TEMP_CRIT:"{#SNMPVALUE}"}' + recovery_expression: 'max(/Cisco Catalyst 3750V2-24TS SNMP/sensor.temp.value[{#SNMPINDEX}],5m)<{$TEMP_CRIT:"{#SNMPVALUE}"}-3' - - expression: '{avg(5m)}<{$TEMP_CRIT_LOW:"{#SNMPVALUE}"}' + expression: 'avg(/Cisco Catalyst 3750V2-24TS SNMP/sensor.temp.value[{#SNMPINDEX}],5m)<{$TEMP_CRIT_LOW:"{#SNMPVALUE}"}' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{min(5m)}>{$TEMP_CRIT_LOW:"{#SNMPVALUE}"}+3' + recovery_expression: 'min(/Cisco Catalyst 3750V2-24TS SNMP/sensor.temp.value[{#SNMPINDEX}],5m)>{$TEMP_CRIT_LOW:"{#SNMPVALUE}"}+3' name: '{#SNMPVALUE}: Temperature is too low: <{$TEMP_CRIT_LOW:"{#SNMPVALUE}"}' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: AVERAGE diff --git a/templates/net/cisco_catalyst_3750/cisco_catalyst_3750_48ps_snmp/template_net_cisco_catalyst_3750_48ps_snmp.yaml b/templates/net/cisco_catalyst_3750/cisco_catalyst_3750_48ps_snmp/template_net_cisco_catalyst_3750_48ps_snmp.yaml index 05170a4e3c8..222e15c1788 100644 --- a/templates/net/cisco_catalyst_3750/cisco_catalyst_3750_48ps_snmp/template_net_cisco_catalyst_3750_48ps_snmp.yaml +++ b/templates/net/cisco_catalyst_3750/cisco_catalyst_3750_48ps_snmp/template_net_cisco_catalyst_3750_48ps_snmp.yaml @@ -1,6 +1,6 @@ zabbix_export: version: '5.4' - date: '2021-04-22T13:00:43Z' + date: '2021-05-09T00:00:00Z' groups: - name: Templates/Modules @@ -38,7 +38,7 @@ zabbix_export: value: Status triggers: - - expression: '{max(#3)}=0' + expression: 'max(/Cisco Catalyst 3750V2-48PS SNMP/icmpping,#3)=0' name: 'Unavailable by ICMP ping' priority: HIGH description: 'Last three attempts returned timeout. Please check device connectivity.' @@ -55,14 +55,14 @@ zabbix_export: value: Status triggers: - - expression: '{min(5m)}>{$ICMP_LOSS_WARN} and {min(5m)}<100' + expression: 'min(/Cisco Catalyst 3750V2-48PS SNMP/icmppingloss,5m)>{$ICMP_LOSS_WARN} and min(/Cisco Catalyst 3750V2-48PS SNMP/icmppingloss,5m)<100' name: 'High ICMP ping loss' opdata: 'Loss: {ITEM.LASTVALUE1}' priority: WARNING dependencies: - name: 'Unavailable by ICMP ping' - expression: '{Cisco Catalyst 3750V2-48PS SNMP:icmpping.max(#3)}=0' + expression: 'max(/Cisco Catalyst 3750V2-48PS SNMP/icmpping,#3)=0' - name: 'ICMP response time' type: SIMPLE @@ -76,17 +76,17 @@ zabbix_export: value: Status triggers: - - expression: '{avg(5m)}>{$ICMP_RESPONSE_TIME_WARN}' + expression: 'avg(/Cisco Catalyst 3750V2-48PS SNMP/icmppingsec,5m)>{$ICMP_RESPONSE_TIME_WARN}' name: 'High ICMP ping response time' opdata: 'Value: {ITEM.LASTVALUE1}' priority: WARNING dependencies: - name: 'High ICMP ping loss' - expression: '{Cisco Catalyst 3750V2-48PS SNMP:icmppingloss.min(5m)}>{$ICMP_LOSS_WARN} and {Cisco Catalyst 3750V2-48PS SNMP:icmppingloss.min(5m)}<100' + expression: 'min(/Cisco Catalyst 3750V2-48PS SNMP/icmppingloss,5m)>{$ICMP_LOSS_WARN} and min(/Cisco Catalyst 3750V2-48PS SNMP/icmppingloss,5m)<100' - name: 'Unavailable by ICMP ping' - expression: '{Cisco Catalyst 3750V2-48PS SNMP:icmpping.max(#3)}=0' + expression: 'max(/Cisco Catalyst 3750V2-48PS SNMP/icmpping,#3)=0' - name: 'SNMP traps (fallback)' type: SNMP_TRAP @@ -187,7 +187,7 @@ zabbix_export: value: Inventory triggers: - - expression: '{diff()}=1 and {strlen()}>0' + expression: '(last(/Cisco Catalyst 3750V2-48PS SNMP/system.hw.serialnumber,#1)<>last(/Cisco Catalyst 3750V2-48PS SNMP/system.hw.serialnumber,#2))=1 and length(last(/Cisco Catalyst 3750V2-48PS SNMP/system.hw.serialnumber))>0' name: 'Device has been replaced (new serial number received)' priority: INFO description: 'Device serial number has changed. Ack to close' @@ -238,7 +238,7 @@ zabbix_export: value: General triggers: - - expression: '{diff()}=1 and {strlen()}>0' + expression: '(last(/Cisco Catalyst 3750V2-48PS SNMP/system.name,#1)<>last(/Cisco Catalyst 3750V2-48PS SNMP/system.name,#2))=1 and length(last(/Cisco Catalyst 3750V2-48PS SNMP/system.name))>0' name: 'System name has changed (new name: {ITEM.VALUE})' priority: INFO description: 'System name has changed. Ack to close.' @@ -290,7 +290,7 @@ zabbix_export: value: Inventory triggers: - - expression: '{diff()}=1 and {strlen()}>0' + expression: '(last(/Cisco Catalyst 3750V2-48PS SNMP/system.sw.os,#1)<>last(/Cisco Catalyst 3750V2-48PS SNMP/system.sw.os,#2))=1 and length(last(/Cisco Catalyst 3750V2-48PS SNMP/system.sw.os))>0' recovery_mode: NONE name: 'Operating system description has changed' priority: INFO @@ -299,7 +299,7 @@ zabbix_export: dependencies: - name: 'System name has changed (new name: {ITEM.VALUE})' - expression: '{Cisco Catalyst 3750V2-48PS SNMP:system.name.diff()}=1 and {Cisco Catalyst 3750V2-48PS SNMP:system.name.strlen()}>0' + expression: '(last(/Cisco Catalyst 3750V2-48PS SNMP/system.name,#1)<>last(/Cisco Catalyst 3750V2-48PS SNMP/system.name,#2))=1 and length(last(/Cisco Catalyst 3750V2-48PS SNMP/system.name))>0' - name: Uptime type: SNMP_AGENT @@ -322,7 +322,7 @@ zabbix_export: value: Status triggers: - - expression: '{last()}<10m' + expression: 'last(/Cisco Catalyst 3750V2-48PS SNMP/system.uptime)<10m' name: '{HOST.NAME} has been restarted (uptime < 10m)' priority: WARNING description: 'Uptime is less than 10 minutes' @@ -340,7 +340,7 @@ zabbix_export: value: Status triggers: - - expression: '{max({$SNMP.TIMEOUT})}=0' + expression: 'max(/Cisco Catalyst 3750V2-48PS SNMP/zabbix[host,snmp,available],{$SNMP.TIMEOUT})=0' name: 'No SNMP data collection' opdata: 'Current state: {ITEM.LASTVALUE1}' priority: WARNING @@ -379,7 +379,7 @@ zabbix_export: value: CPU trigger_prototypes: - - expression: '{min(5m)}>{$CPU.UTIL.CRIT}' + expression: 'min(/Cisco Catalyst 3750V2-48PS SNMP/system.cpu.util[{#SNMPINDEX}],5m)>{$CPU.UTIL.CRIT}' name: '#{#SNMPINDEX}: High CPU utilization (over {$CPU.UTIL.CRIT}% for 5m)' opdata: 'Current utilization: {ITEM.LASTVALUE1}' priority: WARNING @@ -437,7 +437,7 @@ zabbix_export: value: Inventory trigger_prototypes: - - expression: '{diff()}=1 and {strlen()}>0' + expression: '(last(/Cisco Catalyst 3750V2-48PS SNMP/system.hw.serialnumber[{#SNMPINDEX}],#1)<>last(/Cisco Catalyst 3750V2-48PS SNMP/system.hw.serialnumber[{#SNMPINDEX}],#2))=1 and length(last(/Cisco Catalyst 3750V2-48PS SNMP/system.hw.serialnumber[{#SNMPINDEX}]))>0' name: '{#ENT_NAME}: Device has been replaced (new serial number received)' priority: INFO description: 'Device serial number has changed. Ack to close' @@ -466,13 +466,13 @@ zabbix_export: value: Fans trigger_prototypes: - - expression: '{last()}=3 or {last()}=4' + expression: 'last(/Cisco Catalyst 3750V2-48PS SNMP/sensor.fan.status[{#SNMPINDEX}])=3 or last(/Cisco Catalyst 3750V2-48PS SNMP/sensor.fan.status[{#SNMPINDEX}])=4' name: '{#SNMPVALUE}: Fan is in critical state' opdata: 'Current state: {ITEM.LASTVALUE1}' priority: AVERAGE description: 'Please check the fan unit' - - expression: '{last()}=2' + expression: 'last(/Cisco Catalyst 3750V2-48PS SNMP/sensor.fan.status[{#SNMPINDEX}])=2' name: '{#SNMPVALUE}: Fan is in warning state' opdata: 'Current state: {ITEM.LASTVALUE1}' priority: WARNING @@ -480,7 +480,7 @@ zabbix_export: dependencies: - name: '{#SNMPVALUE}: Fan is in critical state' - expression: '{Cisco Catalyst 3750V2-48PS SNMP:sensor.fan.status[{#SNMPINDEX}].last()}=3 or {Cisco Catalyst 3750V2-48PS SNMP:sensor.fan.status[{#SNMPINDEX}].last()}=4' + expression: 'last(/Cisco Catalyst 3750V2-48PS SNMP/sensor.fan.status[{#SNMPINDEX}])=3 or last(/Cisco Catalyst 3750V2-48PS SNMP/sensor.fan.status[{#SNMPINDEX}])=4' - name: 'Memory discovery' type: SNMP_AGENT @@ -530,7 +530,7 @@ zabbix_export: history: 7d value_type: FLOAT units: '%' - params: 'last("vm.memory.used[{#SNMPINDEX}]")/(last("vm.memory.free[{#SNMPINDEX}]")+last("vm.memory.used[{#SNMPINDEX}]"))*100' + params: 'last(//vm.memory.used[{#SNMPINDEX}])/(last(//vm.memory.free[{#SNMPINDEX}])+last(//vm.memory.used[{#SNMPINDEX}]))*100' description: 'Memory utilization in %' tags: - @@ -538,7 +538,7 @@ zabbix_export: value: Memory trigger_prototypes: - - expression: '{min(5m)}>{$MEMORY.UTIL.MAX}' + expression: 'min(/Cisco Catalyst 3750V2-48PS SNMP/vm.memory.util[{#SNMPINDEX}],5m)>{$MEMORY.UTIL.MAX}' name: '{#SNMPVALUE}: High memory utilization ( >{$MEMORY.UTIL.MAX}% for 5m)' priority: AVERAGE description: 'The system is running out of free memory.' @@ -661,9 +661,9 @@ zabbix_export: value: 'Interface {#IFNAME}({#IFALIAS})' trigger_prototypes: - - expression: '{min(5m)}>{$IF.ERRORS.WARN:"{#IFNAME}"}' + expression: 'min(/Cisco Catalyst 3750V2-48PS SNMP/net.if.in.errors[{#SNMPINDEX}],5m)>{$IF.ERRORS.WARN:"{#IFNAME}"}' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{max(5m)}<{$IF.ERRORS.WARN:"{#IFNAME}"}*0.8' + recovery_expression: 'max(/Cisco Catalyst 3750V2-48PS SNMP/net.if.in.errors[{#SNMPINDEX}],5m)<{$IF.ERRORS.WARN:"{#IFNAME}"}*0.8' name: 'Interface {#IFNAME}({#IFALIAS}): High input error rate ( > {$IF.ERRORS.WARN:"{#IFNAME}"} for 5m)' opdata: 'errors in: {ITEM.LASTVALUE1}' priority: WARNING @@ -671,7 +671,7 @@ zabbix_export: dependencies: - name: 'Interface {#IFNAME}({#IFALIAS}): Link down' - expression: '{$IFCONTROL:"{#IFNAME}"}=1 and ({Cisco Catalyst 3750V2-48PS SNMP:net.if.status[{#SNMPINDEX}].last()}=2)' + expression: '{$IFCONTROL:"{#IFNAME}"}=1 and (last(/Cisco Catalyst 3750V2-48PS SNMP/net.if.status[{#SNMPINDEX}])=2)' - name: 'Interface {#IFNAME}({#IFALIAS}): Bits received' type: SNMP_AGENT @@ -737,9 +737,9 @@ zabbix_export: value: 'Interface {#IFNAME}({#IFALIAS})' trigger_prototypes: - - expression: '{min(5m)}>{$IF.ERRORS.WARN:"{#IFNAME}"}' + expression: 'min(/Cisco Catalyst 3750V2-48PS SNMP/net.if.out.errors[{#SNMPINDEX}],5m)>{$IF.ERRORS.WARN:"{#IFNAME}"}' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{max(5m)}<{$IF.ERRORS.WARN:"{#IFNAME}"}*0.8' + recovery_expression: 'max(/Cisco Catalyst 3750V2-48PS SNMP/net.if.out.errors[{#SNMPINDEX}],5m)<{$IF.ERRORS.WARN:"{#IFNAME}"}*0.8' name: 'Interface {#IFNAME}({#IFALIAS}): High output error rate ( > {$IF.ERRORS.WARN:"{#IFNAME}"} for 5m)' opdata: 'errors out: {ITEM.LASTVALUE2}' priority: WARNING @@ -747,7 +747,7 @@ zabbix_export: dependencies: - name: 'Interface {#IFNAME}({#IFALIAS}): Link down' - expression: '{$IFCONTROL:"{#IFNAME}"}=1 and ({Cisco Catalyst 3750V2-48PS SNMP:net.if.status[{#SNMPINDEX}].last()}=2)' + expression: '{$IFCONTROL:"{#IFNAME}"}=1 and (last(/Cisco Catalyst 3750V2-48PS SNMP/net.if.status[{#SNMPINDEX}])=2)' - name: 'Interface {#IFNAME}({#IFALIAS}): Bits sent' type: SNMP_AGENT @@ -822,7 +822,7 @@ zabbix_export: value: 'Interface {#IFNAME}({#IFALIAS})' trigger_prototypes: - - expression: '{$IFCONTROL:"{#IFNAME}"}=1 and ({last()}=2)' + expression: '{$IFCONTROL:"{#IFNAME}"}=1 and (last(/Cisco Catalyst 3750V2-48PS SNMP/net.if.status[{#SNMPINDEX}])=2)' name: 'Interface {#IFNAME}({#IFALIAS}): Link down' opdata: 'Current state: {ITEM.LASTVALUE1}' priority: AVERAGE @@ -855,21 +855,21 @@ zabbix_export: trigger_prototypes: - expression: | - {Cisco Catalyst 3750V2-48PS SNMP:net.if.speed[{#SNMPINDEX}].change()}<0 and {Cisco Catalyst 3750V2-48PS SNMP:net.if.speed[{#SNMPINDEX}].last()}>0 + change(/Cisco Catalyst 3750V2-48PS SNMP/net.if.speed[{#SNMPINDEX}])<0 and last(/Cisco Catalyst 3750V2-48PS SNMP/net.if.speed[{#SNMPINDEX}])>0 and ( - {Cisco Catalyst 3750V2-48PS SNMP:net.if.type[{#SNMPINDEX}].last()}=6 or - {Cisco Catalyst 3750V2-48PS SNMP:net.if.type[{#SNMPINDEX}].last()}=7 or - {Cisco Catalyst 3750V2-48PS SNMP:net.if.type[{#SNMPINDEX}].last()}=11 or - {Cisco Catalyst 3750V2-48PS SNMP:net.if.type[{#SNMPINDEX}].last()}=62 or - {Cisco Catalyst 3750V2-48PS SNMP:net.if.type[{#SNMPINDEX}].last()}=69 or - {Cisco Catalyst 3750V2-48PS SNMP:net.if.type[{#SNMPINDEX}].last()}=117 + last(/Cisco Catalyst 3750V2-48PS SNMP/net.if.type[{#SNMPINDEX}])=6 or + last(/Cisco Catalyst 3750V2-48PS SNMP/net.if.type[{#SNMPINDEX}])=7 or + last(/Cisco Catalyst 3750V2-48PS SNMP/net.if.type[{#SNMPINDEX}])=11 or + last(/Cisco Catalyst 3750V2-48PS SNMP/net.if.type[{#SNMPINDEX}])=62 or + last(/Cisco Catalyst 3750V2-48PS SNMP/net.if.type[{#SNMPINDEX}])=69 or + last(/Cisco Catalyst 3750V2-48PS SNMP/net.if.type[{#SNMPINDEX}])=117 ) and - ({Cisco Catalyst 3750V2-48PS SNMP:net.if.status[{#SNMPINDEX}].last()}<>2) + (last(/Cisco Catalyst 3750V2-48PS SNMP/net.if.status[{#SNMPINDEX}])<>2) recovery_mode: RECOVERY_EXPRESSION recovery_expression: | - ({Cisco Catalyst 3750V2-48PS SNMP:net.if.speed[{#SNMPINDEX}].change()}>0 and {Cisco Catalyst 3750V2-48PS SNMP:net.if.speed[{#SNMPINDEX}].prev()}>0) or - ({Cisco Catalyst 3750V2-48PS SNMP:net.if.status[{#SNMPINDEX}].last()}=2) + (change(/Cisco Catalyst 3750V2-48PS SNMP/net.if.speed[{#SNMPINDEX}])>0 and last(/Cisco Catalyst 3750V2-48PS SNMP/net.if.speed[{#SNMPINDEX}],#2)>0) or + (last(/Cisco Catalyst 3750V2-48PS SNMP/net.if.status[{#SNMPINDEX}])=2) name: 'Interface {#IFNAME}({#IFALIAS}): Ethernet has changed to lower speed than it was before' opdata: 'Current reported speed: {ITEM.LASTVALUE1}' priority: INFO @@ -877,13 +877,13 @@ zabbix_export: dependencies: - name: 'Interface {#IFNAME}({#IFALIAS}): Link down' - expression: '{$IFCONTROL:"{#IFNAME}"}=1 and ({Cisco Catalyst 3750V2-48PS SNMP:net.if.status[{#SNMPINDEX}].last()}=2)' + expression: '{$IFCONTROL:"{#IFNAME}"}=1 and (last(/Cisco Catalyst 3750V2-48PS SNMP/net.if.status[{#SNMPINDEX}])=2)' - expression: | - ({Cisco Catalyst 3750V2-48PS SNMP:net.if.in[{#SNMPINDEX}].avg(15m)}>({$IF.UTIL.MAX:"{#IFNAME}"}/100)*{Cisco Catalyst 3750V2-48PS SNMP:net.if.speed[{#SNMPINDEX}].last()}) and - {Cisco Catalyst 3750V2-48PS SNMP:net.if.speed[{#SNMPINDEX}].last()}>0 + (avg(/Cisco Catalyst 3750V2-48PS SNMP/net.if.in[{#SNMPINDEX}],15m)>({$IF.UTIL.MAX:"{#IFNAME}"}/100)*last(/Cisco Catalyst 3750V2-48PS SNMP/net.if.speed[{#SNMPINDEX}])) and + last(/Cisco Catalyst 3750V2-48PS SNMP/net.if.speed[{#SNMPINDEX}])>0 recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{Cisco Catalyst 3750V2-48PS SNMP:net.if.in[{#SNMPINDEX}].avg(15m)}<(({$IF.UTIL.MAX:"{#IFNAME}"}-3)/100)*{Cisco Catalyst 3750V2-48PS SNMP:net.if.speed[{#SNMPINDEX}].last()}' + recovery_expression: 'avg(/Cisco Catalyst 3750V2-48PS SNMP/net.if.in[{#SNMPINDEX}],15m)<(({$IF.UTIL.MAX:"{#IFNAME}"}-3)/100)*last(/Cisco Catalyst 3750V2-48PS SNMP/net.if.speed[{#SNMPINDEX}])' name: 'Interface {#IFNAME}({#IFALIAS}): High inbound bandwidth usage ( > {$IF.UTIL.MAX:"{#IFNAME}"}% )' opdata: 'In: {ITEM.LASTVALUE1}, speed: {ITEM.LASTVALUE2}' priority: WARNING @@ -891,13 +891,13 @@ zabbix_export: dependencies: - name: 'Interface {#IFNAME}({#IFALIAS}): Link down' - expression: '{$IFCONTROL:"{#IFNAME}"}=1 and ({Cisco Catalyst 3750V2-48PS SNMP:net.if.status[{#SNMPINDEX}].last()}=2)' + expression: '{$IFCONTROL:"{#IFNAME}"}=1 and (last(/Cisco Catalyst 3750V2-48PS SNMP/net.if.status[{#SNMPINDEX}])=2)' - expression: | - ({Cisco Catalyst 3750V2-48PS SNMP:net.if.out[{#SNMPINDEX}].avg(15m)}>({$IF.UTIL.MAX:"{#IFNAME}"}/100)*{Cisco Catalyst 3750V2-48PS SNMP:net.if.speed[{#SNMPINDEX}].last()}) and - {Cisco Catalyst 3750V2-48PS SNMP:net.if.speed[{#SNMPINDEX}].last()}>0 + (avg(/Cisco Catalyst 3750V2-48PS SNMP/net.if.out[{#SNMPINDEX}],15m)>({$IF.UTIL.MAX:"{#IFNAME}"}/100)*last(/Cisco Catalyst 3750V2-48PS SNMP/net.if.speed[{#SNMPINDEX}])) and + last(/Cisco Catalyst 3750V2-48PS SNMP/net.if.speed[{#SNMPINDEX}])>0 recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{Cisco Catalyst 3750V2-48PS SNMP:net.if.out[{#SNMPINDEX}].avg(15m)}<(({$IF.UTIL.MAX:"{#IFNAME}"}-3)/100)*{Cisco Catalyst 3750V2-48PS SNMP:net.if.speed[{#SNMPINDEX}].last()}' + recovery_expression: 'avg(/Cisco Catalyst 3750V2-48PS SNMP/net.if.out[{#SNMPINDEX}],15m)<(({$IF.UTIL.MAX:"{#IFNAME}"}-3)/100)*last(/Cisco Catalyst 3750V2-48PS SNMP/net.if.speed[{#SNMPINDEX}])' name: 'Interface {#IFNAME}({#IFALIAS}): High outbound bandwidth usage ( > {$IF.UTIL.MAX:"{#IFNAME}"}% )' opdata: 'Out: {ITEM.LASTVALUE1}, speed: {ITEM.LASTVALUE2}' priority: WARNING @@ -905,7 +905,7 @@ zabbix_export: dependencies: - name: 'Interface {#IFNAME}({#IFALIAS}): Link down' - expression: '{$IFCONTROL:"{#IFNAME}"}=1 and ({Cisco Catalyst 3750V2-48PS SNMP:net.if.status[{#SNMPINDEX}].last()}=2)' + expression: '{$IFCONTROL:"{#IFNAME}"}=1 and (last(/Cisco Catalyst 3750V2-48PS SNMP/net.if.status[{#SNMPINDEX}])=2)' graph_prototypes: - name: 'Interface {#IFNAME}({#IFALIAS}): Network traffic' @@ -1011,7 +1011,7 @@ zabbix_export: value: 'Interface {#IFNAME}({#IFALIAS})' trigger_prototypes: - - expression: '{last()}=2' + expression: 'last(/Cisco Catalyst 3750V2-48PS SNMP/net.if.duplex[{#SNMPINDEX}])=2' name: 'Interface {#IFNAME}({#IFALIAS}): In half-duplex mode' priority: WARNING description: 'Please check autonegotiation settings and cabling' @@ -1040,13 +1040,13 @@ zabbix_export: value: 'Power supply' trigger_prototypes: - - expression: '{last()}=3 or {last(4)}=4' + expression: 'last(/Cisco Catalyst 3750V2-48PS SNMP/sensor.psu.status[{#SNMPINDEX}])=3 or last(/Cisco Catalyst 3750V2-48PS SNMP/sensor.psu.status[{#SNMPINDEX}])=4' name: '{#SNMPVALUE}: Power supply is in critical state' opdata: 'Current state: {ITEM.LASTVALUE1}' priority: AVERAGE description: 'Please check the power supply unit for errors' - - expression: '{last()}=2' + expression: 'last(/Cisco Catalyst 3750V2-48PS SNMP/sensor.psu.status[{#SNMPINDEX}])=2' name: '{#SNMPVALUE}: Power supply is in warning state' opdata: 'Current state: {ITEM.LASTVALUE1}' priority: WARNING @@ -1054,7 +1054,7 @@ zabbix_export: dependencies: - name: '{#SNMPVALUE}: Power supply is in critical state' - expression: '{Cisco Catalyst 3750V2-48PS SNMP:sensor.psu.status[{#SNMPINDEX}].last()}=3 or {Cisco Catalyst 3750V2-48PS SNMP:sensor.psu.status[{#SNMPINDEX}].last(4)}=4' + expression: 'last(/Cisco Catalyst 3750V2-48PS SNMP/sensor.psu.status[{#SNMPINDEX}])=3 or last(/Cisco Catalyst 3750V2-48PS SNMP/sensor.psu.status[{#SNMPINDEX}])=4' - name: 'Temperature discovery' type: SNMP_AGENT @@ -1083,13 +1083,13 @@ zabbix_export: value: Temperature trigger_prototypes: - - expression: '{last()}=3 or {last()}=4' + expression: 'last(/Cisco Catalyst 3750V2-48PS SNMP/sensor.temp.status[{#SNMPINDEX}])=3 or last(/Cisco Catalyst 3750V2-48PS SNMP/sensor.temp.status[{#SNMPINDEX}])=4' name: '{#SNMPVALUE}: Temperature is in critical state' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: HIGH description: 'This trigger uses temperature sensor state' - - expression: '{last()}=2' + expression: 'last(/Cisco Catalyst 3750V2-48PS SNMP/sensor.temp.status[{#SNMPINDEX}])=2' name: '{#SNMPVALUE}: Temperature is in warning state' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING @@ -1097,7 +1097,7 @@ zabbix_export: dependencies: - name: '{#SNMPVALUE}: Temperature is in critical state' - expression: '{Cisco Catalyst 3750V2-48PS SNMP:sensor.temp.status[{#SNMPINDEX}].last()}=3 or {Cisco Catalyst 3750V2-48PS SNMP:sensor.temp.status[{#SNMPINDEX}].last()}=4' + expression: 'last(/Cisco Catalyst 3750V2-48PS SNMP/sensor.temp.status[{#SNMPINDEX}])=3 or last(/Cisco Catalyst 3750V2-48PS SNMP/sensor.temp.status[{#SNMPINDEX}])=4' - name: '{#SNMPVALUE}: Temperature' type: SNMP_AGENT @@ -1116,17 +1116,17 @@ zabbix_export: value: Temperature trigger_prototypes: - - expression: '{avg(5m)}>{$TEMP_CRIT:"{#SNMPVALUE}"}' + expression: 'avg(/Cisco Catalyst 3750V2-48PS SNMP/sensor.temp.value[{#SNMPINDEX}],5m)>{$TEMP_CRIT:"{#SNMPVALUE}"}' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{max(5m)}<{$TEMP_CRIT:"{#SNMPVALUE}"}-3' + recovery_expression: 'max(/Cisco Catalyst 3750V2-48PS SNMP/sensor.temp.value[{#SNMPINDEX}],5m)<{$TEMP_CRIT:"{#SNMPVALUE}"}-3' name: '{#SNMPVALUE}: Temperature is above critical threshold: >{$TEMP_CRIT:"{#SNMPVALUE}"}' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: HIGH description: 'This trigger uses temperature sensor values as well as temperature sensor status if available' - - expression: '{avg(5m)}>{$TEMP_WARN:"{#SNMPVALUE}"}' + expression: 'avg(/Cisco Catalyst 3750V2-48PS SNMP/sensor.temp.value[{#SNMPINDEX}],5m)>{$TEMP_WARN:"{#SNMPVALUE}"}' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{max(5m)}<{$TEMP_WARN:"{#SNMPVALUE}"}-3' + recovery_expression: 'max(/Cisco Catalyst 3750V2-48PS SNMP/sensor.temp.value[{#SNMPINDEX}],5m)<{$TEMP_WARN:"{#SNMPVALUE}"}-3' name: '{#SNMPVALUE}: Temperature is above warning threshold: >{$TEMP_WARN:"{#SNMPVALUE}"}' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING @@ -1134,12 +1134,12 @@ zabbix_export: dependencies: - name: '{#SNMPVALUE}: Temperature is above critical threshold: >{$TEMP_CRIT:"{#SNMPVALUE}"}' - expression: '{Cisco Catalyst 3750V2-48PS SNMP:sensor.temp.value[{#SNMPINDEX}].avg(5m)}>{$TEMP_CRIT:"{#SNMPVALUE}"}' - recovery_expression: '{Cisco Catalyst 3750V2-48PS SNMP:sensor.temp.value[{#SNMPINDEX}].max(5m)}<{$TEMP_CRIT:"{#SNMPVALUE}"}-3' + expression: 'avg(/Cisco Catalyst 3750V2-48PS SNMP/sensor.temp.value[{#SNMPINDEX}],5m)>{$TEMP_CRIT:"{#SNMPVALUE}"}' + recovery_expression: 'max(/Cisco Catalyst 3750V2-48PS SNMP/sensor.temp.value[{#SNMPINDEX}],5m)<{$TEMP_CRIT:"{#SNMPVALUE}"}-3' - - expression: '{avg(5m)}<{$TEMP_CRIT_LOW:"{#SNMPVALUE}"}' + expression: 'avg(/Cisco Catalyst 3750V2-48PS SNMP/sensor.temp.value[{#SNMPINDEX}],5m)<{$TEMP_CRIT_LOW:"{#SNMPVALUE}"}' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{min(5m)}>{$TEMP_CRIT_LOW:"{#SNMPVALUE}"}+3' + recovery_expression: 'min(/Cisco Catalyst 3750V2-48PS SNMP/sensor.temp.value[{#SNMPINDEX}],5m)>{$TEMP_CRIT_LOW:"{#SNMPVALUE}"}+3' name: '{#SNMPVALUE}: Temperature is too low: <{$TEMP_CRIT_LOW:"{#SNMPVALUE}"}' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: AVERAGE diff --git a/templates/net/cisco_catalyst_3750/cisco_catalyst_3750_48ts_snmp/template_net_cisco_catalyst_3750_48ts_snmp.yaml b/templates/net/cisco_catalyst_3750/cisco_catalyst_3750_48ts_snmp/template_net_cisco_catalyst_3750_48ts_snmp.yaml index 7e222e2f882..53098a61db3 100644 --- a/templates/net/cisco_catalyst_3750/cisco_catalyst_3750_48ts_snmp/template_net_cisco_catalyst_3750_48ts_snmp.yaml +++ b/templates/net/cisco_catalyst_3750/cisco_catalyst_3750_48ts_snmp/template_net_cisco_catalyst_3750_48ts_snmp.yaml @@ -1,6 +1,6 @@ zabbix_export: version: '5.4' - date: '2021-04-22T11:27:08Z' + date: '2021-05-09T00:00:00Z' groups: - name: Templates/Modules @@ -38,7 +38,7 @@ zabbix_export: value: Status triggers: - - expression: '{max(#3)}=0' + expression: 'max(/Cisco Catalyst 3750V2-48TS SNMP/icmpping,#3)=0' name: 'Unavailable by ICMP ping' priority: HIGH description: 'Last three attempts returned timeout. Please check device connectivity.' @@ -55,14 +55,14 @@ zabbix_export: value: Status triggers: - - expression: '{min(5m)}>{$ICMP_LOSS_WARN} and {min(5m)}<100' + expression: 'min(/Cisco Catalyst 3750V2-48TS SNMP/icmppingloss,5m)>{$ICMP_LOSS_WARN} and min(/Cisco Catalyst 3750V2-48TS SNMP/icmppingloss,5m)<100' name: 'High ICMP ping loss' opdata: 'Loss: {ITEM.LASTVALUE1}' priority: WARNING dependencies: - name: 'Unavailable by ICMP ping' - expression: '{Cisco Catalyst 3750V2-48TS SNMP:icmpping.max(#3)}=0' + expression: 'max(/Cisco Catalyst 3750V2-48TS SNMP/icmpping,#3)=0' - name: 'ICMP response time' type: SIMPLE @@ -76,17 +76,17 @@ zabbix_export: value: Status triggers: - - expression: '{avg(5m)}>{$ICMP_RESPONSE_TIME_WARN}' + expression: 'avg(/Cisco Catalyst 3750V2-48TS SNMP/icmppingsec,5m)>{$ICMP_RESPONSE_TIME_WARN}' name: 'High ICMP ping response time' opdata: 'Value: {ITEM.LASTVALUE1}' priority: WARNING dependencies: - name: 'High ICMP ping loss' - expression: '{Cisco Catalyst 3750V2-48TS SNMP:icmppingloss.min(5m)}>{$ICMP_LOSS_WARN} and {Cisco Catalyst 3750V2-48TS SNMP:icmppingloss.min(5m)}<100' + expression: 'min(/Cisco Catalyst 3750V2-48TS SNMP/icmppingloss,5m)>{$ICMP_LOSS_WARN} and min(/Cisco Catalyst 3750V2-48TS SNMP/icmppingloss,5m)<100' - name: 'Unavailable by ICMP ping' - expression: '{Cisco Catalyst 3750V2-48TS SNMP:icmpping.max(#3)}=0' + expression: 'max(/Cisco Catalyst 3750V2-48TS SNMP/icmpping,#3)=0' - name: 'SNMP traps (fallback)' type: SNMP_TRAP @@ -187,7 +187,7 @@ zabbix_export: value: Inventory triggers: - - expression: '{diff()}=1 and {strlen()}>0' + expression: '(last(/Cisco Catalyst 3750V2-48TS SNMP/system.hw.serialnumber,#1)<>last(/Cisco Catalyst 3750V2-48TS SNMP/system.hw.serialnumber,#2))=1 and length(last(/Cisco Catalyst 3750V2-48TS SNMP/system.hw.serialnumber))>0' name: 'Device has been replaced (new serial number received)' priority: INFO description: 'Device serial number has changed. Ack to close' @@ -238,7 +238,7 @@ zabbix_export: value: General triggers: - - expression: '{diff()}=1 and {strlen()}>0' + expression: '(last(/Cisco Catalyst 3750V2-48TS SNMP/system.name,#1)<>last(/Cisco Catalyst 3750V2-48TS SNMP/system.name,#2))=1 and length(last(/Cisco Catalyst 3750V2-48TS SNMP/system.name))>0' name: 'System name has changed (new name: {ITEM.VALUE})' priority: INFO description: 'System name has changed. Ack to close.' @@ -290,7 +290,7 @@ zabbix_export: value: Inventory triggers: - - expression: '{diff()}=1 and {strlen()}>0' + expression: '(last(/Cisco Catalyst 3750V2-48TS SNMP/system.sw.os,#1)<>last(/Cisco Catalyst 3750V2-48TS SNMP/system.sw.os,#2))=1 and length(last(/Cisco Catalyst 3750V2-48TS SNMP/system.sw.os))>0' recovery_mode: NONE name: 'Operating system description has changed' priority: INFO @@ -299,7 +299,7 @@ zabbix_export: dependencies: - name: 'System name has changed (new name: {ITEM.VALUE})' - expression: '{Cisco Catalyst 3750V2-48TS SNMP:system.name.diff()}=1 and {Cisco Catalyst 3750V2-48TS SNMP:system.name.strlen()}>0' + expression: '(last(/Cisco Catalyst 3750V2-48TS SNMP/system.name,#1)<>last(/Cisco Catalyst 3750V2-48TS SNMP/system.name,#2))=1 and length(last(/Cisco Catalyst 3750V2-48TS SNMP/system.name))>0' - name: Uptime type: SNMP_AGENT @@ -322,7 +322,7 @@ zabbix_export: value: Status triggers: - - expression: '{last()}<10m' + expression: 'last(/Cisco Catalyst 3750V2-48TS SNMP/system.uptime)<10m' name: '{HOST.NAME} has been restarted (uptime < 10m)' priority: WARNING description: 'Uptime is less than 10 minutes' @@ -340,7 +340,7 @@ zabbix_export: value: Status triggers: - - expression: '{max({$SNMP.TIMEOUT})}=0' + expression: 'max(/Cisco Catalyst 3750V2-48TS SNMP/zabbix[host,snmp,available],{$SNMP.TIMEOUT})=0' name: 'No SNMP data collection' opdata: 'Current state: {ITEM.LASTVALUE1}' priority: WARNING @@ -379,7 +379,7 @@ zabbix_export: value: CPU trigger_prototypes: - - expression: '{min(5m)}>{$CPU.UTIL.CRIT}' + expression: 'min(/Cisco Catalyst 3750V2-48TS SNMP/system.cpu.util[{#SNMPINDEX}],5m)>{$CPU.UTIL.CRIT}' name: '#{#SNMPINDEX}: High CPU utilization (over {$CPU.UTIL.CRIT}% for 5m)' opdata: 'Current utilization: {ITEM.LASTVALUE1}' priority: WARNING @@ -437,7 +437,7 @@ zabbix_export: value: Inventory trigger_prototypes: - - expression: '{diff()}=1 and {strlen()}>0' + expression: '(last(/Cisco Catalyst 3750V2-48TS SNMP/system.hw.serialnumber[{#SNMPINDEX}],#1)<>last(/Cisco Catalyst 3750V2-48TS SNMP/system.hw.serialnumber[{#SNMPINDEX}],#2))=1 and length(last(/Cisco Catalyst 3750V2-48TS SNMP/system.hw.serialnumber[{#SNMPINDEX}]))>0' name: '{#ENT_NAME}: Device has been replaced (new serial number received)' priority: INFO description: 'Device serial number has changed. Ack to close' @@ -467,13 +467,13 @@ zabbix_export: value: Fans trigger_prototypes: - - expression: '{last()}=3 or {last()}=4' + expression: 'last(/Cisco Catalyst 3750V2-48TS SNMP/sensor.fan.status[{#SNMPINDEX}])=3 or last(/Cisco Catalyst 3750V2-48TS SNMP/sensor.fan.status[{#SNMPINDEX}])=4' name: '{#SNMPVALUE}: Fan is in critical state' opdata: 'Current state: {ITEM.LASTVALUE1}' priority: AVERAGE description: 'Please check the fan unit' - - expression: '{last()}=2' + expression: 'last(/Cisco Catalyst 3750V2-48TS SNMP/sensor.fan.status[{#SNMPINDEX}])=2' name: '{#SNMPVALUE}: Fan is in warning state' opdata: 'Current state: {ITEM.LASTVALUE1}' priority: WARNING @@ -481,7 +481,7 @@ zabbix_export: dependencies: - name: '{#SNMPVALUE}: Fan is in critical state' - expression: '{Cisco Catalyst 3750V2-48TS SNMP:sensor.fan.status[{#SNMPINDEX}].last()}=3 or {Cisco Catalyst 3750V2-48TS SNMP:sensor.fan.status[{#SNMPINDEX}].last()}=4' + expression: 'last(/Cisco Catalyst 3750V2-48TS SNMP/sensor.fan.status[{#SNMPINDEX}])=3 or last(/Cisco Catalyst 3750V2-48TS SNMP/sensor.fan.status[{#SNMPINDEX}])=4' - name: 'Memory discovery' type: SNMP_AGENT @@ -531,7 +531,7 @@ zabbix_export: history: 7d value_type: FLOAT units: '%' - params: 'last("vm.memory.used[{#SNMPINDEX}]")/(last("vm.memory.free[{#SNMPINDEX}]")+last("vm.memory.used[{#SNMPINDEX}]"))*100' + params: 'last(//vm.memory.used[{#SNMPINDEX}])/(last(//vm.memory.free[{#SNMPINDEX}])+last(//vm.memory.used[{#SNMPINDEX}]))*100' description: 'Memory utilization in %' tags: - @@ -539,7 +539,7 @@ zabbix_export: value: Memory trigger_prototypes: - - expression: '{min(5m)}>{$MEMORY.UTIL.MAX}' + expression: 'min(/Cisco Catalyst 3750V2-48TS SNMP/vm.memory.util[{#SNMPINDEX}],5m)>{$MEMORY.UTIL.MAX}' name: '{#SNMPVALUE}: High memory utilization ( >{$MEMORY.UTIL.MAX}% for 5m)' priority: AVERAGE description: 'The system is running out of free memory.' @@ -662,9 +662,9 @@ zabbix_export: value: 'Interface {#IFNAME}({#IFALIAS})' trigger_prototypes: - - expression: '{min(5m)}>{$IF.ERRORS.WARN:"{#IFNAME}"}' + expression: 'min(/Cisco Catalyst 3750V2-48TS SNMP/net.if.in.errors[{#SNMPINDEX}],5m)>{$IF.ERRORS.WARN:"{#IFNAME}"}' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{max(5m)}<{$IF.ERRORS.WARN:"{#IFNAME}"}*0.8' + recovery_expression: 'max(/Cisco Catalyst 3750V2-48TS SNMP/net.if.in.errors[{#SNMPINDEX}],5m)<{$IF.ERRORS.WARN:"{#IFNAME}"}*0.8' name: 'Interface {#IFNAME}({#IFALIAS}): High input error rate ( > {$IF.ERRORS.WARN:"{#IFNAME}"} for 5m)' opdata: 'errors in: {ITEM.LASTVALUE1}' priority: WARNING @@ -673,7 +673,7 @@ zabbix_export: dependencies: - name: 'Interface {#IFNAME}({#IFALIAS}): Link down' - expression: '{$IFCONTROL:"{#IFNAME}"}=1 and ({Cisco Catalyst 3750V2-48TS SNMP:net.if.status[{#SNMPINDEX}].last()}=2)' + expression: '{$IFCONTROL:"{#IFNAME}"}=1 and (last(/Cisco Catalyst 3750V2-48TS SNMP/net.if.status[{#SNMPINDEX}])=2)' - name: 'Interface {#IFNAME}({#IFALIAS}): Bits received' type: SNMP_AGENT @@ -739,9 +739,9 @@ zabbix_export: value: 'Interface {#IFNAME}({#IFALIAS})' trigger_prototypes: - - expression: '{min(5m)}>{$IF.ERRORS.WARN:"{#IFNAME}"}' + expression: 'min(/Cisco Catalyst 3750V2-48TS SNMP/net.if.out.errors[{#SNMPINDEX}],5m)>{$IF.ERRORS.WARN:"{#IFNAME}"}' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{max(5m)}<{$IF.ERRORS.WARN:"{#IFNAME}"}*0.8' + recovery_expression: 'max(/Cisco Catalyst 3750V2-48TS SNMP/net.if.out.errors[{#SNMPINDEX}],5m)<{$IF.ERRORS.WARN:"{#IFNAME}"}*0.8' name: 'Interface {#IFNAME}({#IFALIAS}): High output error rate ( > {$IF.ERRORS.WARN:"{#IFNAME}"} for 5m)' opdata: 'errors out: {ITEM.LASTVALUE2}' priority: WARNING @@ -750,7 +750,7 @@ zabbix_export: dependencies: - name: 'Interface {#IFNAME}({#IFALIAS}): Link down' - expression: '{$IFCONTROL:"{#IFNAME}"}=1 and ({Cisco Catalyst 3750V2-48TS SNMP:net.if.status[{#SNMPINDEX}].last()}=2)' + expression: '{$IFCONTROL:"{#IFNAME}"}=1 and (last(/Cisco Catalyst 3750V2-48TS SNMP/net.if.status[{#SNMPINDEX}])=2)' - name: 'Interface {#IFNAME}({#IFALIAS}): Bits sent' type: SNMP_AGENT @@ -825,7 +825,7 @@ zabbix_export: value: 'Interface {#IFNAME}({#IFALIAS})' trigger_prototypes: - - expression: '{$IFCONTROL:"{#IFNAME}"}=1 and ({last()}=2)' + expression: '{$IFCONTROL:"{#IFNAME}"}=1 and (last(/Cisco Catalyst 3750V2-48TS SNMP/net.if.status[{#SNMPINDEX}])=2)' name: 'Interface {#IFNAME}({#IFALIAS}): Link down' opdata: 'Current state: {ITEM.LASTVALUE1}' priority: AVERAGE @@ -859,21 +859,21 @@ zabbix_export: trigger_prototypes: - expression: | - {Cisco Catalyst 3750V2-48TS SNMP:net.if.speed[{#SNMPINDEX}].change()}<0 and {Cisco Catalyst 3750V2-48TS SNMP:net.if.speed[{#SNMPINDEX}].last()}>0 + change(/Cisco Catalyst 3750V2-48TS SNMP/net.if.speed[{#SNMPINDEX}])<0 and last(/Cisco Catalyst 3750V2-48TS SNMP/net.if.speed[{#SNMPINDEX}])>0 and ( - {Cisco Catalyst 3750V2-48TS SNMP:net.if.type[{#SNMPINDEX}].last()}=6 or - {Cisco Catalyst 3750V2-48TS SNMP:net.if.type[{#SNMPINDEX}].last()}=7 or - {Cisco Catalyst 3750V2-48TS SNMP:net.if.type[{#SNMPINDEX}].last()}=11 or - {Cisco Catalyst 3750V2-48TS SNMP:net.if.type[{#SNMPINDEX}].last()}=62 or - {Cisco Catalyst 3750V2-48TS SNMP:net.if.type[{#SNMPINDEX}].last()}=69 or - {Cisco Catalyst 3750V2-48TS SNMP:net.if.type[{#SNMPINDEX}].last()}=117 + last(/Cisco Catalyst 3750V2-48TS SNMP/net.if.type[{#SNMPINDEX}])=6 or + last(/Cisco Catalyst 3750V2-48TS SNMP/net.if.type[{#SNMPINDEX}])=7 or + last(/Cisco Catalyst 3750V2-48TS SNMP/net.if.type[{#SNMPINDEX}])=11 or + last(/Cisco Catalyst 3750V2-48TS SNMP/net.if.type[{#SNMPINDEX}])=62 or + last(/Cisco Catalyst 3750V2-48TS SNMP/net.if.type[{#SNMPINDEX}])=69 or + last(/Cisco Catalyst 3750V2-48TS SNMP/net.if.type[{#SNMPINDEX}])=117 ) and - ({Cisco Catalyst 3750V2-48TS SNMP:net.if.status[{#SNMPINDEX}].last()}<>2) + (last(/Cisco Catalyst 3750V2-48TS SNMP/net.if.status[{#SNMPINDEX}])<>2) recovery_mode: RECOVERY_EXPRESSION recovery_expression: | - ({Cisco Catalyst 3750V2-48TS SNMP:net.if.speed[{#SNMPINDEX}].change()}>0 and {Cisco Catalyst 3750V2-48TS SNMP:net.if.speed[{#SNMPINDEX}].prev()}>0) or - ({Cisco Catalyst 3750V2-48TS SNMP:net.if.status[{#SNMPINDEX}].last()}=2) + (change(/Cisco Catalyst 3750V2-48TS SNMP/net.if.speed[{#SNMPINDEX}])>0 and last(/Cisco Catalyst 3750V2-48TS SNMP/net.if.speed[{#SNMPINDEX}],#2)>0) or + (last(/Cisco Catalyst 3750V2-48TS SNMP/net.if.status[{#SNMPINDEX}])=2) name: 'Interface {#IFNAME}({#IFALIAS}): Ethernet has changed to lower speed than it was before' opdata: 'Current reported speed: {ITEM.LASTVALUE1}' priority: INFO @@ -882,13 +882,13 @@ zabbix_export: dependencies: - name: 'Interface {#IFNAME}({#IFALIAS}): Link down' - expression: '{$IFCONTROL:"{#IFNAME}"}=1 and ({Cisco Catalyst 3750V2-48TS SNMP:net.if.status[{#SNMPINDEX}].last()}=2)' + expression: '{$IFCONTROL:"{#IFNAME}"}=1 and (last(/Cisco Catalyst 3750V2-48TS SNMP/net.if.status[{#SNMPINDEX}])=2)' - expression: | - ({Cisco Catalyst 3750V2-48TS SNMP:net.if.in[{#SNMPINDEX}].avg(15m)}>({$IF.UTIL.MAX:"{#IFNAME}"}/100)*{Cisco Catalyst 3750V2-48TS SNMP:net.if.speed[{#SNMPINDEX}].last()}) and - {Cisco Catalyst 3750V2-48TS SNMP:net.if.speed[{#SNMPINDEX}].last()}>0 + (avg(/Cisco Catalyst 3750V2-48TS SNMP/net.if.in[{#SNMPINDEX}],15m)>({$IF.UTIL.MAX:"{#IFNAME}"}/100)*last(/Cisco Catalyst 3750V2-48TS SNMP/net.if.speed[{#SNMPINDEX}])) and + last(/Cisco Catalyst 3750V2-48TS SNMP/net.if.speed[{#SNMPINDEX}])>0 recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{Cisco Catalyst 3750V2-48TS SNMP:net.if.in[{#SNMPINDEX}].avg(15m)}<(({$IF.UTIL.MAX:"{#IFNAME}"}-3)/100)*{Cisco Catalyst 3750V2-48TS SNMP:net.if.speed[{#SNMPINDEX}].last()}' + recovery_expression: 'avg(/Cisco Catalyst 3750V2-48TS SNMP/net.if.in[{#SNMPINDEX}],15m)<(({$IF.UTIL.MAX:"{#IFNAME}"}-3)/100)*last(/Cisco Catalyst 3750V2-48TS SNMP/net.if.speed[{#SNMPINDEX}])' name: 'Interface {#IFNAME}({#IFALIAS}): High inbound bandwidth usage ( > {$IF.UTIL.MAX:"{#IFNAME}"}% )' opdata: 'In: {ITEM.LASTVALUE1}, speed: {ITEM.LASTVALUE2}' priority: WARNING @@ -897,13 +897,13 @@ zabbix_export: dependencies: - name: 'Interface {#IFNAME}({#IFALIAS}): Link down' - expression: '{$IFCONTROL:"{#IFNAME}"}=1 and ({Cisco Catalyst 3750V2-48TS SNMP:net.if.status[{#SNMPINDEX}].last()}=2)' + expression: '{$IFCONTROL:"{#IFNAME}"}=1 and (last(/Cisco Catalyst 3750V2-48TS SNMP/net.if.status[{#SNMPINDEX}])=2)' - expression: | - ({Cisco Catalyst 3750V2-48TS SNMP:net.if.out[{#SNMPINDEX}].avg(15m)}>({$IF.UTIL.MAX:"{#IFNAME}"}/100)*{Cisco Catalyst 3750V2-48TS SNMP:net.if.speed[{#SNMPINDEX}].last()}) and - {Cisco Catalyst 3750V2-48TS SNMP:net.if.speed[{#SNMPINDEX}].last()}>0 + (avg(/Cisco Catalyst 3750V2-48TS SNMP/net.if.out[{#SNMPINDEX}],15m)>({$IF.UTIL.MAX:"{#IFNAME}"}/100)*last(/Cisco Catalyst 3750V2-48TS SNMP/net.if.speed[{#SNMPINDEX}])) and + last(/Cisco Catalyst 3750V2-48TS SNMP/net.if.speed[{#SNMPINDEX}])>0 recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{Cisco Catalyst 3750V2-48TS SNMP:net.if.out[{#SNMPINDEX}].avg(15m)}<(({$IF.UTIL.MAX:"{#IFNAME}"}-3)/100)*{Cisco Catalyst 3750V2-48TS SNMP:net.if.speed[{#SNMPINDEX}].last()}' + recovery_expression: 'avg(/Cisco Catalyst 3750V2-48TS SNMP/net.if.out[{#SNMPINDEX}],15m)<(({$IF.UTIL.MAX:"{#IFNAME}"}-3)/100)*last(/Cisco Catalyst 3750V2-48TS SNMP/net.if.speed[{#SNMPINDEX}])' name: 'Interface {#IFNAME}({#IFALIAS}): High outbound bandwidth usage ( > {$IF.UTIL.MAX:"{#IFNAME}"}% )' opdata: 'Out: {ITEM.LASTVALUE1}, speed: {ITEM.LASTVALUE2}' priority: WARNING @@ -912,7 +912,7 @@ zabbix_export: dependencies: - name: 'Interface {#IFNAME}({#IFALIAS}): Link down' - expression: '{$IFCONTROL:"{#IFNAME}"}=1 and ({Cisco Catalyst 3750V2-48TS SNMP:net.if.status[{#SNMPINDEX}].last()}=2)' + expression: '{$IFCONTROL:"{#IFNAME}"}=1 and (last(/Cisco Catalyst 3750V2-48TS SNMP/net.if.status[{#SNMPINDEX}])=2)' graph_prototypes: - name: 'Interface {#IFNAME}({#IFALIAS}): Network traffic' @@ -1018,7 +1018,7 @@ zabbix_export: value: 'Interface {#IFNAME}({#IFALIAS})' trigger_prototypes: - - expression: '{last()}=2' + expression: 'last(/Cisco Catalyst 3750V2-48TS SNMP/net.if.duplex[{#SNMPINDEX}])=2' name: 'Interface {#IFNAME}({#IFALIAS}): In half-duplex mode' priority: WARNING description: 'Please check autonegotiation settings and cabling' @@ -1048,13 +1048,13 @@ zabbix_export: value: 'Power supply' trigger_prototypes: - - expression: '{last()}=3 or {last(4)}=4' + expression: 'last(/Cisco Catalyst 3750V2-48TS SNMP/sensor.psu.status[{#SNMPINDEX}])=3 or last(/Cisco Catalyst 3750V2-48TS SNMP/sensor.psu.status[{#SNMPINDEX}])=4' name: '{#SNMPVALUE}: Power supply is in critical state' opdata: 'Current state: {ITEM.LASTVALUE1}' priority: AVERAGE description: 'Please check the power supply unit for errors' - - expression: '{last()}=2' + expression: 'last(/Cisco Catalyst 3750V2-48TS SNMP/sensor.psu.status[{#SNMPINDEX}])=2' name: '{#SNMPVALUE}: Power supply is in warning state' opdata: 'Current state: {ITEM.LASTVALUE1}' priority: WARNING @@ -1062,7 +1062,7 @@ zabbix_export: dependencies: - name: '{#SNMPVALUE}: Power supply is in critical state' - expression: '{Cisco Catalyst 3750V2-48TS SNMP:sensor.psu.status[{#SNMPINDEX}].last()}=3 or {Cisco Catalyst 3750V2-48TS SNMP:sensor.psu.status[{#SNMPINDEX}].last(4)}=4' + expression: 'last(/Cisco Catalyst 3750V2-48TS SNMP/sensor.psu.status[{#SNMPINDEX}])=3 or last(/Cisco Catalyst 3750V2-48TS SNMP/sensor.psu.status[{#SNMPINDEX}])=4' - name: 'Temperature discovery' type: SNMP_AGENT @@ -1091,13 +1091,13 @@ zabbix_export: value: Temperature trigger_prototypes: - - expression: '{last()}=3 or {last()}=4' + expression: 'last(/Cisco Catalyst 3750V2-48TS SNMP/sensor.temp.status[{#SNMPINDEX}])=3 or last(/Cisco Catalyst 3750V2-48TS SNMP/sensor.temp.status[{#SNMPINDEX}])=4' name: '{#SNMPVALUE}: Temperature is in critical state' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: HIGH description: 'This trigger uses temperature sensor state' - - expression: '{last()}=2' + expression: 'last(/Cisco Catalyst 3750V2-48TS SNMP/sensor.temp.status[{#SNMPINDEX}])=2' name: '{#SNMPVALUE}: Temperature is in warning state' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING @@ -1105,7 +1105,7 @@ zabbix_export: dependencies: - name: '{#SNMPVALUE}: Temperature is in critical state' - expression: '{Cisco Catalyst 3750V2-48TS SNMP:sensor.temp.status[{#SNMPINDEX}].last()}=3 or {Cisco Catalyst 3750V2-48TS SNMP:sensor.temp.status[{#SNMPINDEX}].last()}=4' + expression: 'last(/Cisco Catalyst 3750V2-48TS SNMP/sensor.temp.status[{#SNMPINDEX}])=3 or last(/Cisco Catalyst 3750V2-48TS SNMP/sensor.temp.status[{#SNMPINDEX}])=4' - name: '{#SNMPVALUE}: Temperature' type: SNMP_AGENT @@ -1124,17 +1124,17 @@ zabbix_export: value: Temperature trigger_prototypes: - - expression: '{avg(5m)}>{$TEMP_CRIT:"{#SNMPVALUE}"}' + expression: 'avg(/Cisco Catalyst 3750V2-48TS SNMP/sensor.temp.value[{#SNMPINDEX}],5m)>{$TEMP_CRIT:"{#SNMPVALUE}"}' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{max(5m)}<{$TEMP_CRIT:"{#SNMPVALUE}"}-3' + recovery_expression: 'max(/Cisco Catalyst 3750V2-48TS SNMP/sensor.temp.value[{#SNMPINDEX}],5m)<{$TEMP_CRIT:"{#SNMPVALUE}"}-3' name: '{#SNMPVALUE}: Temperature is above critical threshold: >{$TEMP_CRIT:"{#SNMPVALUE}"}' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: HIGH description: 'This trigger uses temperature sensor values as well as temperature sensor status if available' - - expression: '{avg(5m)}>{$TEMP_WARN:"{#SNMPVALUE}"}' + expression: 'avg(/Cisco Catalyst 3750V2-48TS SNMP/sensor.temp.value[{#SNMPINDEX}],5m)>{$TEMP_WARN:"{#SNMPVALUE}"}' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{max(5m)}<{$TEMP_WARN:"{#SNMPVALUE}"}-3' + recovery_expression: 'max(/Cisco Catalyst 3750V2-48TS SNMP/sensor.temp.value[{#SNMPINDEX}],5m)<{$TEMP_WARN:"{#SNMPVALUE}"}-3' name: '{#SNMPVALUE}: Temperature is above warning threshold: >{$TEMP_WARN:"{#SNMPVALUE}"}' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING @@ -1142,12 +1142,12 @@ zabbix_export: dependencies: - name: '{#SNMPVALUE}: Temperature is above critical threshold: >{$TEMP_CRIT:"{#SNMPVALUE}"}' - expression: '{Cisco Catalyst 3750V2-48TS SNMP:sensor.temp.value[{#SNMPINDEX}].avg(5m)}>{$TEMP_CRIT:"{#SNMPVALUE}"}' - recovery_expression: '{Cisco Catalyst 3750V2-48TS SNMP:sensor.temp.value[{#SNMPINDEX}].max(5m)}<{$TEMP_CRIT:"{#SNMPVALUE}"}-3' + expression: 'avg(/Cisco Catalyst 3750V2-48TS SNMP/sensor.temp.value[{#SNMPINDEX}],5m)>{$TEMP_CRIT:"{#SNMPVALUE}"}' + recovery_expression: 'max(/Cisco Catalyst 3750V2-48TS SNMP/sensor.temp.value[{#SNMPINDEX}],5m)<{$TEMP_CRIT:"{#SNMPVALUE}"}-3' - - expression: '{avg(5m)}<{$TEMP_CRIT_LOW:"{#SNMPVALUE}"}' + expression: 'avg(/Cisco Catalyst 3750V2-48TS SNMP/sensor.temp.value[{#SNMPINDEX}],5m)<{$TEMP_CRIT_LOW:"{#SNMPVALUE}"}' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{min(5m)}>{$TEMP_CRIT_LOW:"{#SNMPVALUE}"}+3' + recovery_expression: 'min(/Cisco Catalyst 3750V2-48TS SNMP/sensor.temp.value[{#SNMPINDEX}],5m)>{$TEMP_CRIT_LOW:"{#SNMPVALUE}"}+3' name: '{#SNMPVALUE}: Temperature is too low: <{$TEMP_CRIT_LOW:"{#SNMPVALUE}"}' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: AVERAGE diff --git a/templates/net/cisco_snmp/template_net_cisco_snmp.yaml b/templates/net/cisco_snmp/template_net_cisco_snmp.yaml index c9391713987..c4ab9cfadb6 100644 --- a/templates/net/cisco_snmp/template_net_cisco_snmp.yaml +++ b/templates/net/cisco_snmp/template_net_cisco_snmp.yaml @@ -1,6 +1,6 @@ zabbix_export: version: '5.4' - date: '2021-02-23T11:04:33Z' + date: '2021-05-09T00:00:00Z' groups: - name: Templates/Modules @@ -46,13 +46,13 @@ zabbix_export: value: Fans trigger_prototypes: - - expression: '{count(#1,{$FAN_CRIT_STATUS:"critical"},eq)}=1 or {count(#1,{$FAN_CRIT_STATUS:"shutdown"},eq)}=1' + expression: 'count(/Cisco CISCO-ENVMON-MIB SNMP/sensor.fan.status[ciscoEnvMonFanState.{#SNMPINDEX}],#1,"eq","{$FAN_CRIT_STATUS:\"critical\"}")=1 or count(/Cisco CISCO-ENVMON-MIB SNMP/sensor.fan.status[ciscoEnvMonFanState.{#SNMPINDEX}],#1,"eq","{$FAN_CRIT_STATUS:\"shutdown\"}")=1' name: '{#SENSOR_INFO}: Fan is in critical state' opdata: 'Current state: {ITEM.LASTVALUE1}' priority: AVERAGE description: 'Please check the fan unit' - - expression: '{count(#1,{$FAN_WARN_STATUS:"warning"},eq)}=1 or {count(#1,{$FAN_WARN_STATUS:"notFunctioning"},eq)}=1' + expression: 'count(/Cisco CISCO-ENVMON-MIB SNMP/sensor.fan.status[ciscoEnvMonFanState.{#SNMPINDEX}],#1,"eq","{$FAN_WARN_STATUS:\"warning\"}")=1 or count(/Cisco CISCO-ENVMON-MIB SNMP/sensor.fan.status[ciscoEnvMonFanState.{#SNMPINDEX}],#1,"eq","{$FAN_WARN_STATUS:\"notFunctioning\"}")=1' name: '{#SENSOR_INFO}: Fan is in warning state' opdata: 'Current state: {ITEM.LASTVALUE1}' priority: WARNING @@ -60,7 +60,7 @@ zabbix_export: dependencies: - name: '{#SENSOR_INFO}: Fan is in critical state' - expression: '{Cisco CISCO-ENVMON-MIB SNMP:sensor.fan.status[ciscoEnvMonFanState.{#SNMPINDEX}].count(#1,{$FAN_CRIT_STATUS:"critical"},eq)}=1 or {Cisco CISCO-ENVMON-MIB SNMP:sensor.fan.status[ciscoEnvMonFanState.{#SNMPINDEX}].count(#1,{$FAN_CRIT_STATUS:"shutdown"},eq)}=1' + expression: 'count(/Cisco CISCO-ENVMON-MIB SNMP/sensor.fan.status[ciscoEnvMonFanState.{#SNMPINDEX}],#1,"eq","{$FAN_CRIT_STATUS:\"critical\"}")=1 or count(/Cisco CISCO-ENVMON-MIB SNMP/sensor.fan.status[ciscoEnvMonFanState.{#SNMPINDEX}],#1,"eq","{$FAN_CRIT_STATUS:\"shutdown\"}")=1' - name: 'PSU Discovery' type: SNMP_AGENT @@ -86,13 +86,13 @@ zabbix_export: value: 'Power supply' trigger_prototypes: - - expression: '{count(#1,{$PSU_CRIT_STATUS:"critical"},eq)}=1 or {count(#1,{$PSU_CRIT_STATUS:"shutdown"},eq)}=1' + expression: 'count(/Cisco CISCO-ENVMON-MIB SNMP/sensor.psu.status[ciscoEnvMonSupplyState.{#SNMPINDEX}],#1,"eq","{$PSU_CRIT_STATUS:\"critical\"}")=1 or count(/Cisco CISCO-ENVMON-MIB SNMP/sensor.psu.status[ciscoEnvMonSupplyState.{#SNMPINDEX}],#1,"eq","{$PSU_CRIT_STATUS:\"shutdown\"}")=1' name: '{#SENSOR_INFO}: Power supply is in critical state' opdata: 'Current state: {ITEM.LASTVALUE1}' priority: AVERAGE description: 'Please check the power supply unit for errors' - - expression: '{count(#1,{$PSU_WARN_STATUS:"warning"},eq)}=1 or {count(#1,{$PSU_WARN_STATUS:"notFunctioning"},eq)}=1' + expression: 'count(/Cisco CISCO-ENVMON-MIB SNMP/sensor.psu.status[ciscoEnvMonSupplyState.{#SNMPINDEX}],#1,"eq","{$PSU_WARN_STATUS:\"warning\"}")=1 or count(/Cisco CISCO-ENVMON-MIB SNMP/sensor.psu.status[ciscoEnvMonSupplyState.{#SNMPINDEX}],#1,"eq","{$PSU_WARN_STATUS:\"notFunctioning\"}")=1' name: '{#SENSOR_INFO}: Power supply is in warning state' opdata: 'Current state: {ITEM.LASTVALUE1}' priority: WARNING @@ -100,7 +100,7 @@ zabbix_export: dependencies: - name: '{#SENSOR_INFO}: Power supply is in critical state' - expression: '{Cisco CISCO-ENVMON-MIB SNMP:sensor.psu.status[ciscoEnvMonSupplyState.{#SNMPINDEX}].count(#1,{$PSU_CRIT_STATUS:"critical"},eq)}=1 or {Cisco CISCO-ENVMON-MIB SNMP:sensor.psu.status[ciscoEnvMonSupplyState.{#SNMPINDEX}].count(#1,{$PSU_CRIT_STATUS:"shutdown"},eq)}=1' + expression: 'count(/Cisco CISCO-ENVMON-MIB SNMP/sensor.psu.status[ciscoEnvMonSupplyState.{#SNMPINDEX}],#1,"eq","{$PSU_CRIT_STATUS:\"critical\"}")=1 or count(/Cisco CISCO-ENVMON-MIB SNMP/sensor.psu.status[ciscoEnvMonSupplyState.{#SNMPINDEX}],#1,"eq","{$PSU_CRIT_STATUS:\"shutdown\"}")=1' - name: 'Temperature Discovery' type: SNMP_AGENT @@ -145,33 +145,33 @@ zabbix_export: value: Temperature trigger_prototypes: - - expression: '{avg(5m)}<{$TEMP_CRIT_LOW:"{#SNMPVALUE}"}' + expression: 'avg(/Cisco CISCO-ENVMON-MIB SNMP/sensor.temp.value[ciscoEnvMonTemperatureValue.{#SNMPINDEX}],5m)<{$TEMP_CRIT_LOW:"{#SNMPVALUE}"}' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{min(5m)}>{$TEMP_CRIT_LOW:"{#SNMPVALUE}"}+3' + recovery_expression: 'min(/Cisco CISCO-ENVMON-MIB SNMP/sensor.temp.value[ciscoEnvMonTemperatureValue.{#SNMPINDEX}],5m)>{$TEMP_CRIT_LOW:"{#SNMPVALUE}"}+3' name: '{#SNMPVALUE}: Temperature is too low: <{$TEMP_CRIT_LOW:"{#SNMPVALUE}"}' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: AVERAGE trigger_prototypes: - expression: | - {Cisco CISCO-ENVMON-MIB SNMP:sensor.temp.value[ciscoEnvMonTemperatureValue.{#SNMPINDEX}].avg(5m)}>{$TEMP_CRIT:"{#SNMPVALUE}"} + avg(/Cisco CISCO-ENVMON-MIB SNMP/sensor.temp.value[ciscoEnvMonTemperatureValue.{#SNMPINDEX}],5m)>{$TEMP_CRIT:"{#SNMPVALUE}"} or - {Cisco CISCO-ENVMON-MIB SNMP:sensor.temp.status[ciscoEnvMonTemperatureState.{#SNMPINDEX}].last()}={$TEMP_CRIT_STATUS} + last(/Cisco CISCO-ENVMON-MIB SNMP/sensor.temp.status[ciscoEnvMonTemperatureState.{#SNMPINDEX}])={$TEMP_CRIT_STATUS} or - {Cisco CISCO-ENVMON-MIB SNMP:sensor.temp.status[ciscoEnvMonTemperatureState.{#SNMPINDEX}].last()}={$TEMP_DISASTER_STATUS} + last(/Cisco CISCO-ENVMON-MIB SNMP/sensor.temp.status[ciscoEnvMonTemperatureState.{#SNMPINDEX}])={$TEMP_DISASTER_STATUS} recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{Cisco CISCO-ENVMON-MIB SNMP:sensor.temp.value[ciscoEnvMonTemperatureValue.{#SNMPINDEX}].max(5m)}<{$TEMP_CRIT:"{#SNMPVALUE}"}-3' + recovery_expression: 'max(/Cisco CISCO-ENVMON-MIB SNMP/sensor.temp.value[ciscoEnvMonTemperatureValue.{#SNMPINDEX}],5m)<{$TEMP_CRIT:"{#SNMPVALUE}"}-3' name: '{#SNMPVALUE}: Temperature is above critical threshold: >{$TEMP_CRIT:"{#SNMPVALUE}"}' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: HIGH description: 'This trigger uses temperature sensor values as well as temperature sensor status if available' - expression: | - {Cisco CISCO-ENVMON-MIB SNMP:sensor.temp.value[ciscoEnvMonTemperatureValue.{#SNMPINDEX}].avg(5m)}>{$TEMP_WARN:"{#SNMPVALUE}"} + avg(/Cisco CISCO-ENVMON-MIB SNMP/sensor.temp.value[ciscoEnvMonTemperatureValue.{#SNMPINDEX}],5m)>{$TEMP_WARN:"{#SNMPVALUE}"} or - {Cisco CISCO-ENVMON-MIB SNMP:sensor.temp.status[ciscoEnvMonTemperatureState.{#SNMPINDEX}].last()}={$TEMP_WARN_STATUS} + last(/Cisco CISCO-ENVMON-MIB SNMP/sensor.temp.status[ciscoEnvMonTemperatureState.{#SNMPINDEX}])={$TEMP_WARN_STATUS} recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{Cisco CISCO-ENVMON-MIB SNMP:sensor.temp.value[ciscoEnvMonTemperatureValue.{#SNMPINDEX}].max(5m)}<{$TEMP_WARN:"{#SNMPVALUE}"}-3' + recovery_expression: 'max(/Cisco CISCO-ENVMON-MIB SNMP/sensor.temp.value[ciscoEnvMonTemperatureValue.{#SNMPINDEX}],5m)<{$TEMP_WARN:"{#SNMPVALUE}"}-3' name: '{#SNMPVALUE}: Temperature is above warning threshold: >{$TEMP_WARN:"{#SNMPVALUE}"}' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING @@ -180,12 +180,12 @@ zabbix_export: - name: '{#SNMPVALUE}: Temperature is above critical threshold: >{$TEMP_CRIT:"{#SNMPVALUE}"}' expression: | - {Cisco CISCO-ENVMON-MIB SNMP:sensor.temp.value[ciscoEnvMonTemperatureValue.{#SNMPINDEX}].avg(5m)}>{$TEMP_CRIT:"{#SNMPVALUE}"} + avg(/Cisco CISCO-ENVMON-MIB SNMP/sensor.temp.value[ciscoEnvMonTemperatureValue.{#SNMPINDEX}],5m)>{$TEMP_CRIT:"{#SNMPVALUE}"} or - {Cisco CISCO-ENVMON-MIB SNMP:sensor.temp.status[ciscoEnvMonTemperatureState.{#SNMPINDEX}].last()}={$TEMP_CRIT_STATUS} + last(/Cisco CISCO-ENVMON-MIB SNMP/sensor.temp.status[ciscoEnvMonTemperatureState.{#SNMPINDEX}])={$TEMP_CRIT_STATUS} or - {Cisco CISCO-ENVMON-MIB SNMP:sensor.temp.status[ciscoEnvMonTemperatureState.{#SNMPINDEX}].last()}={$TEMP_DISASTER_STATUS} - recovery_expression: '{Cisco CISCO-ENVMON-MIB SNMP:sensor.temp.value[ciscoEnvMonTemperatureValue.{#SNMPINDEX}].max(5m)}<{$TEMP_CRIT:"{#SNMPVALUE}"}-3' + last(/Cisco CISCO-ENVMON-MIB SNMP/sensor.temp.status[ciscoEnvMonTemperatureState.{#SNMPINDEX}])={$TEMP_DISASTER_STATUS} + recovery_expression: 'max(/Cisco CISCO-ENVMON-MIB SNMP/sensor.temp.value[ciscoEnvMonTemperatureValue.{#SNMPINDEX}],5m)<{$TEMP_CRIT:"{#SNMPVALUE}"}-3' macros: - macro: '{$FAN_CRIT_STATUS:"critical"}' @@ -318,7 +318,7 @@ zabbix_export: history: 7d value_type: FLOAT units: '%' - params: 'last("vm.memory.used[ciscoMemoryPoolUsed.{#SNMPINDEX}]")/(last("vm.memory.free[ciscoMemoryPoolFree.{#SNMPINDEX}]")+last("vm.memory.used[ciscoMemoryPoolUsed.{#SNMPINDEX}]"))*100' + params: 'last(//vm.memory.used[ciscoMemoryPoolUsed.{#SNMPINDEX}])/(last(//vm.memory.free[ciscoMemoryPoolFree.{#SNMPINDEX}])+last(//vm.memory.used[ciscoMemoryPoolUsed.{#SNMPINDEX}]))*100' description: 'Memory utilization in %' tags: - @@ -326,7 +326,7 @@ zabbix_export: value: Memory trigger_prototypes: - - expression: '{min(5m)}>{$MEMORY.UTIL.MAX}' + expression: 'min(/Cisco CISCO-MEMORY-POOL-MIB SNMP/vm.memory.util[vm.memory.util.{#SNMPINDEX}],5m)>{$MEMORY.UTIL.MAX}' name: '{#SNMPVALUE}: High memory utilization (>{$MEMORY.UTIL.MAX}% for 5m)' priority: AVERAGE description: 'The system is running out of free memory.' @@ -396,7 +396,7 @@ zabbix_export: value: CPU trigger_prototypes: - - expression: '{min(5m)}>{$CPU.UTIL.CRIT}' + expression: 'min(/Cisco CISCO-PROCESS-MIB IOS versions 12.0_3_T-12.2_3.5 SNMP/system.cpu.util[cpmCPUTotal5min.{#SNMPINDEX}],5m)>{$CPU.UTIL.CRIT}' name: '{#SNMPVALUE}: High CPU utilization (over {$CPU.UTIL.CRIT}% for 5m)' opdata: 'Current utilization: {ITEM.LASTVALUE1}' priority: WARNING @@ -463,7 +463,7 @@ zabbix_export: value: CPU trigger_prototypes: - - expression: '{min(5m)}>{$CPU.UTIL.CRIT}' + expression: 'min(/Cisco CISCO-PROCESS-MIB SNMP/system.cpu.util[cpmCPUTotal5minRev.{#SNMPINDEX}],5m)>{$CPU.UTIL.CRIT}' name: '#{#SNMPINDEX}: High CPU utilization (over {$CPU.UTIL.CRIT}% for 5m)' opdata: 'Current utilization: {ITEM.LASTVALUE1}' priority: WARNING @@ -541,7 +541,7 @@ zabbix_export: value: Inventory triggers: - - expression: '{diff()}=1 and {strlen()}>0' + expression: '(last(/Cisco Inventory SNMP/system.hw.serialnumber,#1)<>last(/Cisco Inventory SNMP/system.hw.serialnumber,#2))=1 and length(last(/Cisco Inventory SNMP/system.hw.serialnumber))>0' name: 'Device has been replaced (new serial number received)' priority: INFO description: 'Device serial number has changed. Ack to close' @@ -573,7 +573,7 @@ zabbix_export: value: Inventory triggers: - - expression: '{diff()}=1 and {strlen()}>0' + expression: '(last(/Cisco Inventory SNMP/system.sw.os[sysDescr.0],#1)<>last(/Cisco Inventory SNMP/system.sw.os[sysDescr.0],#2))=1 and length(last(/Cisco Inventory SNMP/system.sw.os[sysDescr.0]))>0' name: 'Operating system description has changed' priority: INFO description: 'Operating system description has changed. Possible reasons that system has been updated or replaced. Ack to close.' @@ -618,7 +618,7 @@ zabbix_export: value: Inventory trigger_prototypes: - - expression: '{diff()}=1 and {strlen()}>0' + expression: '(last(/Cisco Inventory SNMP/system.hw.serialnumber[entPhysicalSerialNum.{#SNMPINDEX}],#1)<>last(/Cisco Inventory SNMP/system.hw.serialnumber[entPhysicalSerialNum.{#SNMPINDEX}],#2))=1 and length(last(/Cisco Inventory SNMP/system.hw.serialnumber[entPhysicalSerialNum.{#SNMPINDEX}]))>0' name: '{#ENT_NAME}: Device has been replaced (new serial number received)' priority: INFO description: 'Device serial number has changed. Ack to close' @@ -731,7 +731,7 @@ zabbix_export: value: CPU triggers: - - expression: '{min(5m)}>{$CPU.UTIL.CRIT}' + expression: 'min(/Cisco OLD-CISCO-CPU-MIB SNMP/system.cpu.util[avgBusy5],5m)>{$CPU.UTIL.CRIT}' name: 'High CPU utilization (over {$CPU.UTIL.CRIT}% for 5m)' opdata: 'Current utilization: {ITEM.LASTVALUE1}' priority: WARNING diff --git a/templates/net/dell_force_s_series_snmp/template_net_dell_force_s_series_snmp.yaml b/templates/net/dell_force_s_series_snmp/template_net_dell_force_s_series_snmp.yaml index e60e94dc291..eab98da9a11 100644 --- a/templates/net/dell_force_s_series_snmp/template_net_dell_force_s_series_snmp.yaml +++ b/templates/net/dell_force_s_series_snmp/template_net_dell_force_s_series_snmp.yaml @@ -1,6 +1,6 @@ zabbix_export: version: '5.4' - date: '2021-02-23T11:04:32Z' + date: '2021-05-09T00:00:00Z' groups: - name: 'Templates/Network devices' @@ -52,13 +52,13 @@ zabbix_export: value: Fans trigger_prototypes: - - expression: '{count(#1,{$FAN_CRIT_STATUS},eq)}=1' + expression: 'count(/Dell Force S-Series SNMP/sensor.fan.status[chSysFanTrayOperStatus.{#SNMPINDEX}],#1,"eq","{$FAN_CRIT_STATUS}")=1' name: 'Fan {#SNMPVALUE}: Fan is in critical state' opdata: 'Current state: {ITEM.LASTVALUE1}' priority: AVERAGE description: 'Please check the fan unit' - - expression: '{count(#1,{$FAN_OK_STATUS},ne)}=1' + expression: 'count(/Dell Force S-Series SNMP/sensor.fan.status[chSysFanTrayOperStatus.{#SNMPINDEX}],#1,"ne","{$FAN_OK_STATUS}")=1' name: 'Fan {#SNMPVALUE}: Fan is not in normal state' opdata: 'Current state: {ITEM.LASTVALUE1}' priority: INFO @@ -66,7 +66,7 @@ zabbix_export: dependencies: - name: 'Fan {#SNMPVALUE}: Fan is in critical state' - expression: '{Dell Force S-Series SNMP:sensor.fan.status[chSysFanTrayOperStatus.{#SNMPINDEX}].count(#1,{$FAN_CRIT_STATUS},eq)}=1' + expression: 'count(/Dell Force S-Series SNMP/sensor.fan.status[chSysFanTrayOperStatus.{#SNMPINDEX}],#1,"eq","{$FAN_CRIT_STATUS}")=1' - name: 'CPU and Memory and Flash Discovery' type: SNMP_AGENT @@ -91,7 +91,7 @@ zabbix_export: value: CPU trigger_prototypes: - - expression: '{min(5m)}>{$CPU.UTIL.CRIT}' + expression: 'min(/Dell Force S-Series SNMP/system.cpu.util[chStackUnitCpuUtil1Min.{#SNMPINDEX}],5m)>{$CPU.UTIL.CRIT}' name: '#{#SNMPINDEX}: High CPU utilization (over {$CPU.UTIL.CRIT}% for 5m)' opdata: 'Current utilization: {ITEM.LASTVALUE1}' priority: WARNING @@ -113,7 +113,7 @@ zabbix_export: value: Memory trigger_prototypes: - - expression: '{min(5m)}>{$MEMORY.UTIL.MAX}' + expression: 'min(/Dell Force S-Series SNMP/vm.memory.util[chStackUnitMemUsageUtil.{#SNMPINDEX}],5m)>{$MEMORY.UTIL.MAX}' name: '#{#SNMPINDEX}: High memory utilization (>{$MEMORY.UTIL.MAX}% for 5m)' priority: AVERAGE description: 'The system is running out of free memory.' @@ -167,13 +167,13 @@ zabbix_export: value: 'Power supply' trigger_prototypes: - - expression: '{count(#1,{$PSU_CRIT_STATUS},eq)}=1' + expression: 'count(/Dell Force S-Series SNMP/sensor.psu.status[chSysPowerSupplyOperStatus.{#SNMPINDEX}],#1,"eq","{$PSU_CRIT_STATUS}")=1' name: 'PSU {#SNMPVALUE}: Power supply is in critical state' opdata: 'Current state: {ITEM.LASTVALUE1}' priority: AVERAGE description: 'Please check the power supply unit for errors' - - expression: '{count(#1,{$PSU_OK_STATUS},ne)}=1' + expression: 'count(/Dell Force S-Series SNMP/sensor.psu.status[chSysPowerSupplyOperStatus.{#SNMPINDEX}],#1,"ne","{$PSU_OK_STATUS}")=1' name: 'PSU {#SNMPVALUE}: Power supply is not in normal state' opdata: 'Current state: {ITEM.LASTVALUE1}' priority: INFO @@ -181,7 +181,7 @@ zabbix_export: dependencies: - name: 'PSU {#SNMPVALUE}: Power supply is in critical state' - expression: '{Dell Force S-Series SNMP:sensor.psu.status[chSysPowerSupplyOperStatus.{#SNMPINDEX}].count(#1,{$PSU_CRIT_STATUS},eq)}=1' + expression: 'count(/Dell Force S-Series SNMP/sensor.psu.status[chSysPowerSupplyOperStatus.{#SNMPINDEX}],#1,"eq","{$PSU_CRIT_STATUS}")=1' - name: 'Stack Unit Discovery' type: SNMP_AGENT @@ -206,17 +206,17 @@ zabbix_export: value: Temperature trigger_prototypes: - - expression: '{avg(5m)}>{$TEMP_CRIT:""}' + expression: 'avg(/Dell Force S-Series SNMP/sensor.temp.value[chStackUnitTemp.{#SNMPINDEX}],5m)>{$TEMP_CRIT:""}' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{max(5m)}<{$TEMP_CRIT:""}-3' + recovery_expression: 'max(/Dell Force S-Series SNMP/sensor.temp.value[chStackUnitTemp.{#SNMPINDEX}],5m)<{$TEMP_CRIT:""}-3' name: 'Device {#SNMPVALUE}: Temperature is above critical threshold: >{$TEMP_CRIT:""}' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: HIGH description: 'This trigger uses temperature sensor values as well as temperature sensor status if available' - - expression: '{avg(5m)}>{$TEMP_WARN:""}' + expression: 'avg(/Dell Force S-Series SNMP/sensor.temp.value[chStackUnitTemp.{#SNMPINDEX}],5m)>{$TEMP_WARN:""}' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{max(5m)}<{$TEMP_WARN:""}-3' + recovery_expression: 'max(/Dell Force S-Series SNMP/sensor.temp.value[chStackUnitTemp.{#SNMPINDEX}],5m)<{$TEMP_WARN:""}-3' name: 'Device {#SNMPVALUE}: Temperature is above warning threshold: >{$TEMP_WARN:""}' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING @@ -224,12 +224,12 @@ zabbix_export: dependencies: - name: 'Device {#SNMPVALUE}: Temperature is above critical threshold: >{$TEMP_CRIT:""}' - expression: '{Dell Force S-Series SNMP:sensor.temp.value[chStackUnitTemp.{#SNMPINDEX}].avg(5m)}>{$TEMP_CRIT:""}' - recovery_expression: '{Dell Force S-Series SNMP:sensor.temp.value[chStackUnitTemp.{#SNMPINDEX}].max(5m)}<{$TEMP_CRIT:""}-3' + expression: 'avg(/Dell Force S-Series SNMP/sensor.temp.value[chStackUnitTemp.{#SNMPINDEX}],5m)>{$TEMP_CRIT:""}' + recovery_expression: 'max(/Dell Force S-Series SNMP/sensor.temp.value[chStackUnitTemp.{#SNMPINDEX}],5m)<{$TEMP_CRIT:""}-3' - - expression: '{avg(5m)}<{$TEMP_CRIT_LOW:""}' + expression: 'avg(/Dell Force S-Series SNMP/sensor.temp.value[chStackUnitTemp.{#SNMPINDEX}],5m)<{$TEMP_CRIT_LOW:""}' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{min(5m)}>{$TEMP_CRIT_LOW:""}+3' + recovery_expression: 'min(/Dell Force S-Series SNMP/sensor.temp.value[chStackUnitTemp.{#SNMPINDEX}],5m)>{$TEMP_CRIT_LOW:""}+3' name: 'Device {#SNMPVALUE}: Temperature is too low: <{$TEMP_CRIT_LOW:""}' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: AVERAGE @@ -277,7 +277,7 @@ zabbix_export: value: Inventory trigger_prototypes: - - expression: '{diff()}=1 and {strlen()}>0' + expression: '(last(/Dell Force S-Series SNMP/system.hw.serialnumber[chStackUnitSerialNumber.{#SNMPINDEX}],#1)<>last(/Dell Force S-Series SNMP/system.hw.serialnumber[chStackUnitSerialNumber.{#SNMPINDEX}],#2))=1 and length(last(/Dell Force S-Series SNMP/system.hw.serialnumber[chStackUnitSerialNumber.{#SNMPINDEX}]))>0' name: '#{#SNMPVALUE}: Device has been replaced (new serial number received)' priority: INFO description: 'Device serial number has changed. Ack to close' @@ -326,7 +326,7 @@ zabbix_export: value: Inventory trigger_prototypes: - - expression: '{diff()}=1 and {strlen()}>0' + expression: '(last(/Dell Force S-Series SNMP/system.sw.os[chStackUnitCodeVersion.{#SNMPINDEX}],#1)<>last(/Dell Force S-Series SNMP/system.sw.os[chStackUnitCodeVersion.{#SNMPINDEX}],#2))=1 and length(last(/Dell Force S-Series SNMP/system.sw.os[chStackUnitCodeVersion.{#SNMPINDEX}]))>0' name: '#{#SNMPVALUE}: Operating system description has changed' priority: INFO description: 'Operating system description has changed. Possible reasons that system has been updated or replaced. Ack to close.' diff --git a/templates/net/dlink_des7200_snmp/template_net_dlink_des7200_snmp.yaml b/templates/net/dlink_des7200_snmp/template_net_dlink_des7200_snmp.yaml index 8f0c68d2939..81ed875a6b2 100644 --- a/templates/net/dlink_des7200_snmp/template_net_dlink_des7200_snmp.yaml +++ b/templates/net/dlink_des7200_snmp/template_net_dlink_des7200_snmp.yaml @@ -1,6 +1,6 @@ zabbix_export: version: '5.4' - date: '2021-02-23T11:04:30Z' + date: '2021-05-09T00:00:00Z' groups: - name: 'Templates/Network devices' @@ -45,7 +45,7 @@ zabbix_export: value: CPU triggers: - - expression: '{min(5m)}>{$CPU.UTIL.CRIT}' + expression: 'min(/D-Link DES 7200 SNMP/system.cpu.util[myCPUUtilization5Min.0],5m)>{$CPU.UTIL.CRIT}' name: 'High CPU utilization (over {$CPU.UTIL.CRIT}% for 5m)' opdata: 'Current utilization: {ITEM.LASTVALUE1}' priority: WARNING @@ -71,7 +71,7 @@ zabbix_export: value: Inventory triggers: - - expression: '{diff()}=1 and {strlen()}>0' + expression: '(last(/D-Link DES 7200 SNMP/system.hw.firmware,#1)<>last(/D-Link DES 7200 SNMP/system.hw.firmware,#2))=1 and length(last(/D-Link DES 7200 SNMP/system.hw.firmware))>0' name: 'Firmware has changed' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: INFO @@ -142,7 +142,7 @@ zabbix_export: value: Inventory triggers: - - expression: '{diff()}=1 and {strlen()}>0' + expression: '(last(/D-Link DES 7200 SNMP/system.sw.os[mySystemSwVersion.0],#1)<>last(/D-Link DES 7200 SNMP/system.sw.os[mySystemSwVersion.0],#2))=1 and length(last(/D-Link DES 7200 SNMP/system.sw.os[mySystemSwVersion.0]))>0' name: 'Operating system description has changed' priority: INFO description: 'Operating system description has changed. Possible reasons that system has been updated or replaced. Ack to close.' @@ -172,7 +172,7 @@ zabbix_export: value: Fans trigger_prototypes: - - expression: '{count(#1,{$FAN_CRIT_STATUS},eq)}=1' + expression: 'count(/D-Link DES 7200 SNMP/sensor.fan.status[mySystemFanIsNormal.{#SNMPINDEX}],#1,"eq","{$FAN_CRIT_STATUS}")=1' name: '{#SNMPVALUE}: Fan is in critical state' opdata: 'Current state: {ITEM.LASTVALUE1}' priority: AVERAGE @@ -201,7 +201,7 @@ zabbix_export: value: Memory trigger_prototypes: - - expression: '{min(5m)}>{$MEMORY.UTIL.MAX}' + expression: 'min(/D-Link DES 7200 SNMP/vm.memory.util[myMemoryPoolCurrentUtilization.{#SNMPINDEX}],5m)>{$MEMORY.UTIL.MAX}' name: '{#SNMPINDEX}: High memory utilization (>{$MEMORY.UTIL.MAX}% for 5m)' priority: AVERAGE description: 'The system is running out of free memory.' @@ -241,7 +241,7 @@ zabbix_export: value: 'Power supply' trigger_prototypes: - - expression: '{count(#1,{$PSU_CRIT_STATUS},eq)}=1' + expression: 'count(/D-Link DES 7200 SNMP/sensor.psu.status[mySystemElectricalSourceIsNormal.{#SNMPINDEX}],#1,"eq","{$PSU_CRIT_STATUS}")=1' name: '{#SNMPVALUE}: Power supply is in critical state' opdata: 'Current state: {ITEM.LASTVALUE1}' priority: AVERAGE @@ -270,17 +270,17 @@ zabbix_export: value: Temperature trigger_prototypes: - - expression: '{avg(5m)}>{$TEMP_CRIT:""}' + expression: 'avg(/D-Link DES 7200 SNMP/sensor.temp.value[mySystemTemperatureCurrent.{#SNMPINDEX}],5m)>{$TEMP_CRIT:""}' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{max(5m)}<{$TEMP_CRIT:""}-3' + recovery_expression: 'max(/D-Link DES 7200 SNMP/sensor.temp.value[mySystemTemperatureCurrent.{#SNMPINDEX}],5m)<{$TEMP_CRIT:""}-3' name: '{#SNMPVALUE}: Temperature is above critical threshold: >{$TEMP_CRIT:""}' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: HIGH description: 'This trigger uses temperature sensor values as well as temperature sensor status if available' - - expression: '{avg(5m)}>{$TEMP_WARN:""}' + expression: 'avg(/D-Link DES 7200 SNMP/sensor.temp.value[mySystemTemperatureCurrent.{#SNMPINDEX}],5m)>{$TEMP_WARN:""}' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{max(5m)}<{$TEMP_WARN:""}-3' + recovery_expression: 'max(/D-Link DES 7200 SNMP/sensor.temp.value[mySystemTemperatureCurrent.{#SNMPINDEX}],5m)<{$TEMP_WARN:""}-3' name: '{#SNMPVALUE}: Temperature is above warning threshold: >{$TEMP_WARN:""}' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING @@ -288,12 +288,12 @@ zabbix_export: dependencies: - name: '{#SNMPVALUE}: Temperature is above critical threshold: >{$TEMP_CRIT:""}' - expression: '{D-Link DES 7200 SNMP:sensor.temp.value[mySystemTemperatureCurrent.{#SNMPINDEX}].avg(5m)}>{$TEMP_CRIT:""}' - recovery_expression: '{D-Link DES 7200 SNMP:sensor.temp.value[mySystemTemperatureCurrent.{#SNMPINDEX}].max(5m)}<{$TEMP_CRIT:""}-3' + expression: 'avg(/D-Link DES 7200 SNMP/sensor.temp.value[mySystemTemperatureCurrent.{#SNMPINDEX}],5m)>{$TEMP_CRIT:""}' + recovery_expression: 'max(/D-Link DES 7200 SNMP/sensor.temp.value[mySystemTemperatureCurrent.{#SNMPINDEX}],5m)<{$TEMP_CRIT:""}-3' - - expression: '{avg(5m)}<{$TEMP_CRIT_LOW:""}' + expression: 'avg(/D-Link DES 7200 SNMP/sensor.temp.value[mySystemTemperatureCurrent.{#SNMPINDEX}],5m)<{$TEMP_CRIT_LOW:""}' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{min(5m)}>{$TEMP_CRIT_LOW:""}+3' + recovery_expression: 'min(/D-Link DES 7200 SNMP/sensor.temp.value[mySystemTemperatureCurrent.{#SNMPINDEX}],5m)>{$TEMP_CRIT_LOW:""}+3' name: '{#SNMPVALUE}: Temperature is too low: <{$TEMP_CRIT_LOW:""}' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: AVERAGE diff --git a/templates/net/dlink_des_snmp/template_net_dlink_des_snmp.yaml b/templates/net/dlink_des_snmp/template_net_dlink_des_snmp.yaml index 7d8b2618400..ce9c29c8e97 100644 --- a/templates/net/dlink_des_snmp/template_net_dlink_des_snmp.yaml +++ b/templates/net/dlink_des_snmp/template_net_dlink_des_snmp.yaml @@ -1,6 +1,6 @@ zabbix_export: version: '5.4' - date: '2021-02-23T11:04:25Z' + date: '2021-05-09T00:00:00Z' groups: - name: 'Templates/Network devices' @@ -52,7 +52,7 @@ zabbix_export: value: CPU triggers: - - expression: '{min(5m)}>{$CPU.UTIL.CRIT}' + expression: 'min(/D-Link DES_DGS Switch SNMP/system.cpu.util[agentCPUutilizationIn1min.0],5m)>{$CPU.UTIL.CRIT}' name: 'High CPU utilization (over {$CPU.UTIL.CRIT}% for 5m)' opdata: 'Current utilization: {ITEM.LASTVALUE1}' priority: WARNING @@ -78,7 +78,7 @@ zabbix_export: value: Inventory triggers: - - expression: '{diff()}=1 and {strlen()}>0' + expression: '(last(/D-Link DES_DGS Switch SNMP/system.hw.firmware,#1)<>last(/D-Link DES_DGS Switch SNMP/system.hw.firmware,#2))=1 and length(last(/D-Link DES_DGS Switch SNMP/system.hw.firmware))>0' name: 'Firmware has changed' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: INFO @@ -132,7 +132,7 @@ zabbix_export: value: Inventory triggers: - - expression: '{diff()}=1 and {strlen()}>0' + expression: '(last(/D-Link DES_DGS Switch SNMP/system.hw.serialnumber,#1)<>last(/D-Link DES_DGS Switch SNMP/system.hw.serialnumber,#2))=1 and length(last(/D-Link DES_DGS Switch SNMP/system.hw.serialnumber))>0' name: 'Device has been replaced (new serial number received)' priority: INFO description: 'Device serial number has changed. Ack to close' @@ -194,7 +194,7 @@ zabbix_export: value: Fans trigger_prototypes: - - expression: '{count(#1,{$FAN_CRIT_STATUS},eq)}=1' + expression: 'count(/D-Link DES_DGS Switch SNMP/sensor.fan.status[swFanStatus.{#SNMPINDEX}],#1,"eq","{$FAN_CRIT_STATUS}")=1' name: '#{#SNMPVALUE}: Fan is in critical state' opdata: 'Current state: {ITEM.LASTVALUE1}' priority: AVERAGE @@ -223,7 +223,7 @@ zabbix_export: value: Memory trigger_prototypes: - - expression: '{min(5m)}>{$MEMORY.UTIL.MAX}' + expression: 'min(/D-Link DES_DGS Switch SNMP/vm.memory.util[agentDRAMutilization.{#SNMPINDEX}],5m)>{$MEMORY.UTIL.MAX}' name: '#{#SNMPVALUE}: High memory utilization (>{$MEMORY.UTIL.MAX}% for 5m)' priority: AVERAGE description: 'The system is running out of free memory.' @@ -278,7 +278,7 @@ zabbix_export: value: 'Power supply' trigger_prototypes: - - expression: '{count(#1,{$PSU_CRIT_STATUS},eq)}=1' + expression: 'count(/D-Link DES_DGS Switch SNMP/sensor.psu.status[swPowerStatus.{#SNMPINDEX}],#1,"eq","{$PSU_CRIT_STATUS}")=1' name: '#{#SNMPVALUE}: Power supply is in critical state' opdata: 'Current state: {ITEM.LASTVALUE1}' priority: AVERAGE @@ -307,17 +307,17 @@ zabbix_export: value: Temperature trigger_prototypes: - - expression: '{avg(5m)}>{$TEMP_CRIT:""}' + expression: 'avg(/D-Link DES_DGS Switch SNMP/sensor.temp.value[swTemperatureCurrent.{#SNMPINDEX}],5m)>{$TEMP_CRIT:""}' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{max(5m)}<{$TEMP_CRIT:""}-3' + recovery_expression: 'max(/D-Link DES_DGS Switch SNMP/sensor.temp.value[swTemperatureCurrent.{#SNMPINDEX}],5m)<{$TEMP_CRIT:""}-3' name: '#{#SNMPVALUE}: Temperature is above critical threshold: >{$TEMP_CRIT:""}' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: HIGH description: 'This trigger uses temperature sensor values as well as temperature sensor status if available' - - expression: '{avg(5m)}>{$TEMP_WARN:""}' + expression: 'avg(/D-Link DES_DGS Switch SNMP/sensor.temp.value[swTemperatureCurrent.{#SNMPINDEX}],5m)>{$TEMP_WARN:""}' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{max(5m)}<{$TEMP_WARN:""}-3' + recovery_expression: 'max(/D-Link DES_DGS Switch SNMP/sensor.temp.value[swTemperatureCurrent.{#SNMPINDEX}],5m)<{$TEMP_WARN:""}-3' name: '#{#SNMPVALUE}: Temperature is above warning threshold: >{$TEMP_WARN:""}' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING @@ -325,12 +325,12 @@ zabbix_export: dependencies: - name: '#{#SNMPVALUE}: Temperature is above critical threshold: >{$TEMP_CRIT:""}' - expression: '{D-Link DES_DGS Switch SNMP:sensor.temp.value[swTemperatureCurrent.{#SNMPINDEX}].avg(5m)}>{$TEMP_CRIT:""}' - recovery_expression: '{D-Link DES_DGS Switch SNMP:sensor.temp.value[swTemperatureCurrent.{#SNMPINDEX}].max(5m)}<{$TEMP_CRIT:""}-3' + expression: 'avg(/D-Link DES_DGS Switch SNMP/sensor.temp.value[swTemperatureCurrent.{#SNMPINDEX}],5m)>{$TEMP_CRIT:""}' + recovery_expression: 'max(/D-Link DES_DGS Switch SNMP/sensor.temp.value[swTemperatureCurrent.{#SNMPINDEX}],5m)<{$TEMP_CRIT:""}-3' - - expression: '{avg(5m)}<{$TEMP_CRIT_LOW:""}' + expression: 'avg(/D-Link DES_DGS Switch SNMP/sensor.temp.value[swTemperatureCurrent.{#SNMPINDEX}],5m)<{$TEMP_CRIT_LOW:""}' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{min(5m)}>{$TEMP_CRIT_LOW:""}+3' + recovery_expression: 'min(/D-Link DES_DGS Switch SNMP/sensor.temp.value[swTemperatureCurrent.{#SNMPINDEX}],5m)>{$TEMP_CRIT_LOW:""}+3' name: '#{#SNMPVALUE}: Temperature is too low: <{$TEMP_CRIT_LOW:""}' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: AVERAGE diff --git a/templates/net/extreme_snmp/template_net_extreme_snmp.yaml b/templates/net/extreme_snmp/template_net_extreme_snmp.yaml index 44b3131c174..f12aa6f8d29 100644 --- a/templates/net/extreme_snmp/template_net_extreme_snmp.yaml +++ b/templates/net/extreme_snmp/template_net_extreme_snmp.yaml @@ -1,6 +1,6 @@ zabbix_export: version: '5.4' - date: '2021-02-23T11:04:26Z' + date: '2021-05-09T00:00:00Z' groups: - name: 'Templates/Network devices' @@ -63,9 +63,9 @@ zabbix_export: value: Temperature triggers: - - expression: '{avg(5m)}>{$TEMP_WARN:""}' + expression: 'avg(/Extreme EXOS SNMP/sensor.temp.value[extremeCurrentTemperature.0],5m)>{$TEMP_WARN:""}' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{max(5m)}<{$TEMP_WARN:""}-3' + recovery_expression: 'max(/Extreme EXOS SNMP/sensor.temp.value[extremeCurrentTemperature.0],5m)<{$TEMP_WARN:""}-3' name: 'Device: Temperature is above warning threshold: >{$TEMP_WARN:""}' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING @@ -74,14 +74,14 @@ zabbix_export: - name: 'Device: Temperature is above critical threshold: >{$TEMP_CRIT:""}' expression: | - {Extreme EXOS SNMP:sensor.temp.value[extremeCurrentTemperature.0].avg(5m)}>{$TEMP_CRIT:""} + avg(/Extreme EXOS SNMP/sensor.temp.value[extremeCurrentTemperature.0],5m)>{$TEMP_CRIT:""} or - {Extreme EXOS SNMP:sensor.temp.status[extremeOverTemperatureAlarm.0].last()}={$TEMP_CRIT_STATUS} - recovery_expression: '{Extreme EXOS SNMP:sensor.temp.value[extremeCurrentTemperature.0].max(5m)}<{$TEMP_CRIT:""}-3' + last(/Extreme EXOS SNMP/sensor.temp.status[extremeOverTemperatureAlarm.0])={$TEMP_CRIT_STATUS} + recovery_expression: 'max(/Extreme EXOS SNMP/sensor.temp.value[extremeCurrentTemperature.0],5m)<{$TEMP_CRIT:""}-3' - - expression: '{avg(5m)}<{$TEMP_CRIT_LOW:""}' + expression: 'avg(/Extreme EXOS SNMP/sensor.temp.value[extremeCurrentTemperature.0],5m)<{$TEMP_CRIT_LOW:""}' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{min(5m)}>{$TEMP_CRIT_LOW:""}+3' + recovery_expression: 'min(/Extreme EXOS SNMP/sensor.temp.value[extremeCurrentTemperature.0],5m)>{$TEMP_CRIT_LOW:""}+3' name: 'Device: Temperature is too low: <{$TEMP_CRIT_LOW:""}' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: AVERAGE @@ -102,7 +102,7 @@ zabbix_export: value: CPU triggers: - - expression: '{min(5m)}>{$CPU.UTIL.CRIT}' + expression: 'min(/Extreme EXOS SNMP/system.cpu.util[extremeCpuMonitorTotalUtilization.0],5m)>{$CPU.UTIL.CRIT}' name: 'High CPU utilization (over {$CPU.UTIL.CRIT}% for 5m)' opdata: 'Current utilization: {ITEM.LASTVALUE1}' priority: WARNING @@ -128,7 +128,7 @@ zabbix_export: value: Inventory triggers: - - expression: '{diff()}=1 and {strlen()}>0' + expression: '(last(/Extreme EXOS SNMP/system.hw.firmware,#1)<>last(/Extreme EXOS SNMP/system.hw.firmware,#2))=1 and length(last(/Extreme EXOS SNMP/system.hw.firmware))>0' name: 'Firmware has changed' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: INFO @@ -176,7 +176,7 @@ zabbix_export: value: Inventory triggers: - - expression: '{diff()}=1 and {strlen()}>0' + expression: '(last(/Extreme EXOS SNMP/system.hw.serialnumber,#1)<>last(/Extreme EXOS SNMP/system.hw.serialnumber,#2))=1 and length(last(/Extreme EXOS SNMP/system.hw.serialnumber))>0' name: 'Device has been replaced (new serial number received)' priority: INFO description: 'Device serial number has changed. Ack to close' @@ -226,7 +226,7 @@ zabbix_export: value: Inventory triggers: - - expression: '{diff()}=1 and {strlen()}>0' + expression: '(last(/Extreme EXOS SNMP/system.sw.os[extremePrimarySoftwareRev.0],#1)<>last(/Extreme EXOS SNMP/system.sw.os[extremePrimarySoftwareRev.0],#2))=1 and length(last(/Extreme EXOS SNMP/system.sw.os[extremePrimarySoftwareRev.0]))>0' name: 'Operating system description has changed' priority: INFO description: 'Operating system description has changed. Possible reasons that system has been updated or replaced. Ack to close.' @@ -271,7 +271,7 @@ zabbix_export: value: Fans trigger_prototypes: - - expression: '{count(#1,{$FAN_CRIT_STATUS},eq)}=1' + expression: 'count(/Extreme EXOS SNMP/sensor.fan.status[extremeFanOperational.{#SNMPINDEX}],#1,"eq","{$FAN_CRIT_STATUS}")=1' name: 'Fan {#SNMPVALUE}: Fan is in critical state' opdata: 'Current state: {ITEM.LASTVALUE1}' priority: AVERAGE @@ -328,7 +328,7 @@ zabbix_export: history: 7d value_type: FLOAT units: '%' - params: '(last("vm.memory.total[extremeMemoryMonitorSystemTotal.{#SNMPINDEX}]") - last("vm.memory.available[extremeMemoryMonitorSystemFree.{#SNMPINDEX}]")) / last("vm.memory.total[extremeMemoryMonitorSystemTotal.{#SNMPINDEX}]") * 100' + params: '(last(//vm.memory.total[extremeMemoryMonitorSystemTotal.{#SNMPINDEX}]) - last(//vm.memory.available[extremeMemoryMonitorSystemFree.{#SNMPINDEX}])) / last(//vm.memory.total[extremeMemoryMonitorSystemTotal.{#SNMPINDEX}]) * 100' description: 'Memory utilization in %' tags: - @@ -336,7 +336,7 @@ zabbix_export: value: Memory trigger_prototypes: - - expression: '{min(5m)}>{$MEMORY.UTIL.MAX}' + expression: 'min(/Extreme EXOS SNMP/vm.memory.util[{#SNMPVALUE}],5m)>{$MEMORY.UTIL.MAX}' name: '#{#SNMPVALUE}: High memory utilization (>{$MEMORY.UTIL.MAX}% for 5m)' priority: AVERAGE description: 'The system is running out of free memory.' @@ -396,7 +396,7 @@ zabbix_export: value: 'Power supply' trigger_prototypes: - - expression: '{count(#1,{$PSU_CRIT_STATUS},eq)}=1' + expression: 'count(/Extreme EXOS SNMP/sensor.psu.status[extremePowerSupplyStatus.{#SNMPINDEX}],#1,"eq","{$PSU_CRIT_STATUS}")=1' name: 'PSU {#SNMPVALUE}: Power supply is in critical state' opdata: 'Current state: {ITEM.LASTVALUE1}' priority: AVERAGE @@ -463,11 +463,11 @@ zabbix_export: triggers: - expression: | - {Extreme EXOS SNMP:sensor.temp.value[extremeCurrentTemperature.0].avg(5m)}>{$TEMP_CRIT:""} + avg(/Extreme EXOS SNMP/sensor.temp.value[extremeCurrentTemperature.0],5m)>{$TEMP_CRIT:""} or - {Extreme EXOS SNMP:sensor.temp.status[extremeOverTemperatureAlarm.0].last()}={$TEMP_CRIT_STATUS} + last(/Extreme EXOS SNMP/sensor.temp.status[extremeOverTemperatureAlarm.0])={$TEMP_CRIT_STATUS} recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{Extreme EXOS SNMP:sensor.temp.value[extremeCurrentTemperature.0].max(5m)}<{$TEMP_CRIT:""}-3' + recovery_expression: 'max(/Extreme EXOS SNMP/sensor.temp.value[extremeCurrentTemperature.0],5m)<{$TEMP_CRIT:""}-3' name: 'Device: Temperature is above critical threshold: >{$TEMP_CRIT:""}' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: HIGH diff --git a/templates/net/generic_snmp/template_net_generic_snmp.yaml b/templates/net/generic_snmp/template_net_generic_snmp.yaml index 427112a6935..d541f85899d 100644 --- a/templates/net/generic_snmp/template_net_generic_snmp.yaml +++ b/templates/net/generic_snmp/template_net_generic_snmp.yaml @@ -1,6 +1,6 @@ zabbix_export: version: '5.4' - date: '2021-02-23T11:04:34Z' + date: '2021-05-09T00:00:00Z' groups: - name: 'Templates/Network devices' diff --git a/templates/net/hp_hh3c_snmp/template_net_hp_hh3c_snmp.yaml b/templates/net/hp_hh3c_snmp/template_net_hp_hh3c_snmp.yaml index aed6f864abe..6b7b9c8351b 100644 --- a/templates/net/hp_hh3c_snmp/template_net_hp_hh3c_snmp.yaml +++ b/templates/net/hp_hh3c_snmp/template_net_hp_hh3c_snmp.yaml @@ -1,6 +1,6 @@ zabbix_export: version: '5.4' - date: '2021-02-23T11:04:31Z' + date: '2021-05-09T00:00:00Z' groups: - name: 'Templates/Network devices' @@ -67,7 +67,7 @@ zabbix_export: value: Inventory trigger_prototypes: - - expression: '{diff()}=1 and {strlen()}>0' + expression: '(last(/HP Comware HH3C SNMP/system.hw.firmware[entPhysicalFirmwareRev.{#SNMPINDEX}],#1)<>last(/HP Comware HH3C SNMP/system.hw.firmware[entPhysicalFirmwareRev.{#SNMPINDEX}],#2))=1 and length(last(/HP Comware HH3C SNMP/system.hw.firmware[entPhysicalFirmwareRev.{#SNMPINDEX}]))>0' name: '{#ENT_NAME}: Firmware has changed' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: INFO @@ -113,7 +113,7 @@ zabbix_export: value: Inventory trigger_prototypes: - - expression: '{diff()}=1 and {strlen()}>0' + expression: '(last(/HP Comware HH3C SNMP/system.hw.serialnumber[entPhysicalSerialNum.{#SNMPINDEX}],#1)<>last(/HP Comware HH3C SNMP/system.hw.serialnumber[entPhysicalSerialNum.{#SNMPINDEX}],#2))=1 and length(last(/HP Comware HH3C SNMP/system.hw.serialnumber[entPhysicalSerialNum.{#SNMPINDEX}]))>0' name: '{#ENT_NAME}: Device has been replaced (new serial number received)' priority: INFO description: 'Device serial number has changed. Ack to close' @@ -158,7 +158,7 @@ zabbix_export: value: Inventory trigger_prototypes: - - expression: '{diff()}=1 and {strlen()}>0' + expression: '(last(/HP Comware HH3C SNMP/system.sw.os[entPhysicalSoftwareRev.{#SNMPINDEX}],#1)<>last(/HP Comware HH3C SNMP/system.sw.os[entPhysicalSoftwareRev.{#SNMPINDEX}],#2))=1 and length(last(/HP Comware HH3C SNMP/system.sw.os[entPhysicalSoftwareRev.{#SNMPINDEX}]))>0' name: '{#ENT_NAME}: Operating system description has changed' priority: INFO description: 'Operating system description has changed. Possible reasons that system has been updated or replaced. Ack to close.' @@ -197,7 +197,7 @@ zabbix_export: value: Fans trigger_prototypes: - - expression: '{count(#1,{$FAN_CRIT_STATUS:"fanError"},eq)}=1 or {count(#1,{$FAN_CRIT_STATUS:"hardwareFaulty"},eq)}=1' + expression: 'count(/HP Comware HH3C SNMP/sensor.fan.status[hh3cEntityExtErrorStatus.{#SNMPINDEX}],#1,"eq","{$FAN_CRIT_STATUS:\"fanError\"}")=1 or count(/HP Comware HH3C SNMP/sensor.fan.status[hh3cEntityExtErrorStatus.{#SNMPINDEX}],#1,"eq","{$FAN_CRIT_STATUS:\"hardwareFaulty\"}")=1' name: '{#ENT_NAME}: Fan is in critical state' opdata: 'Current state: {ITEM.LASTVALUE1}' priority: AVERAGE @@ -240,7 +240,7 @@ zabbix_export: value: CPU trigger_prototypes: - - expression: '{min(5m)}>{$CPU.UTIL.CRIT}' + expression: 'min(/HP Comware HH3C SNMP/system.cpu.util[hh3cEntityExtCpuUsage.{#SNMPINDEX}],5m)>{$CPU.UTIL.CRIT}' name: '{#MODULE_NAME}: High CPU utilization (over {$CPU.UTIL.CRIT}% for 5m)' opdata: 'Current utilization: {ITEM.LASTVALUE1}' priority: WARNING @@ -263,7 +263,7 @@ zabbix_export: value: Memory trigger_prototypes: - - expression: '{min(5m)}>{$MEMORY.UTIL.MAX}' + expression: 'min(/HP Comware HH3C SNMP/vm.memory.util[hh3cEntityExtMemUsage.{#SNMPINDEX}],5m)>{$MEMORY.UTIL.MAX}' name: '{#MODULE_NAME}: High memory utilization (>{$MEMORY.UTIL.MAX}% for 5m)' priority: AVERAGE description: 'The system is running out of free memory.' @@ -325,7 +325,7 @@ zabbix_export: value: 'Power supply' trigger_prototypes: - - expression: '{count(#1,{$PSU_CRIT_STATUS:"psuError"},eq)}=1 or {count(#1,{$PSU_CRIT_STATUS:"rpsError"},eq)}=1 or {count(#1,{$PSU_CRIT_STATUS:"hardwareFaulty"},eq)}=1' + expression: 'count(/HP Comware HH3C SNMP/sensor.psu.status[hh3cEntityExtErrorStatus.{#SNMPINDEX}],#1,"eq","{$PSU_CRIT_STATUS:\"psuError\"}")=1 or count(/HP Comware HH3C SNMP/sensor.psu.status[hh3cEntityExtErrorStatus.{#SNMPINDEX}],#1,"eq","{$PSU_CRIT_STATUS:\"rpsError\"}")=1 or count(/HP Comware HH3C SNMP/sensor.psu.status[hh3cEntityExtErrorStatus.{#SNMPINDEX}],#1,"eq","{$PSU_CRIT_STATUS:\"hardwareFaulty\"}")=1' name: '{#ENT_NAME}: Power supply is in critical state' opdata: 'Current state: {ITEM.LASTVALUE1}' priority: AVERAGE @@ -370,17 +370,17 @@ zabbix_export: value: Temperature trigger_prototypes: - - expression: '{avg(5m)}>{$TEMP_CRIT:""}' + expression: 'avg(/HP Comware HH3C SNMP/sensor.temp.value[hh3cEntityExtTemperature.{#SNMPINDEX}],5m)>{$TEMP_CRIT:""}' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{max(5m)}<{$TEMP_CRIT:""}-3' + recovery_expression: 'max(/HP Comware HH3C SNMP/sensor.temp.value[hh3cEntityExtTemperature.{#SNMPINDEX}],5m)<{$TEMP_CRIT:""}-3' name: '{#SNMPVALUE}: Temperature is above critical threshold: >{$TEMP_CRIT:""}' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: HIGH description: 'This trigger uses temperature sensor values as well as temperature sensor status if available' - - expression: '{avg(5m)}>{$TEMP_WARN:""}' + expression: 'avg(/HP Comware HH3C SNMP/sensor.temp.value[hh3cEntityExtTemperature.{#SNMPINDEX}],5m)>{$TEMP_WARN:""}' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{max(5m)}<{$TEMP_WARN:""}-3' + recovery_expression: 'max(/HP Comware HH3C SNMP/sensor.temp.value[hh3cEntityExtTemperature.{#SNMPINDEX}],5m)<{$TEMP_WARN:""}-3' name: '{#SNMPVALUE}: Temperature is above warning threshold: >{$TEMP_WARN:""}' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING @@ -388,12 +388,12 @@ zabbix_export: dependencies: - name: '{#SNMPVALUE}: Temperature is above critical threshold: >{$TEMP_CRIT:""}' - expression: '{HP Comware HH3C SNMP:sensor.temp.value[hh3cEntityExtTemperature.{#SNMPINDEX}].avg(5m)}>{$TEMP_CRIT:""}' - recovery_expression: '{HP Comware HH3C SNMP:sensor.temp.value[hh3cEntityExtTemperature.{#SNMPINDEX}].max(5m)}<{$TEMP_CRIT:""}-3' + expression: 'avg(/HP Comware HH3C SNMP/sensor.temp.value[hh3cEntityExtTemperature.{#SNMPINDEX}],5m)>{$TEMP_CRIT:""}' + recovery_expression: 'max(/HP Comware HH3C SNMP/sensor.temp.value[hh3cEntityExtTemperature.{#SNMPINDEX}],5m)<{$TEMP_CRIT:""}-3' - - expression: '{avg(5m)}<{$TEMP_CRIT_LOW:""}' + expression: 'avg(/HP Comware HH3C SNMP/sensor.temp.value[hh3cEntityExtTemperature.{#SNMPINDEX}],5m)<{$TEMP_CRIT_LOW:""}' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{min(5m)}>{$TEMP_CRIT_LOW:""}+3' + recovery_expression: 'min(/HP Comware HH3C SNMP/sensor.temp.value[hh3cEntityExtTemperature.{#SNMPINDEX}],5m)>{$TEMP_CRIT_LOW:""}+3' name: '{#SNMPVALUE}: Temperature is too low: <{$TEMP_CRIT_LOW:""}' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: AVERAGE diff --git a/templates/net/hp_hpn_snmp/template_net_hp_hpn_snmp.yaml b/templates/net/hp_hpn_snmp/template_net_hp_hpn_snmp.yaml index 4d7814ecbcf..d9aabd3ef83 100644 --- a/templates/net/hp_hpn_snmp/template_net_hp_hpn_snmp.yaml +++ b/templates/net/hp_hpn_snmp/template_net_hp_hpn_snmp.yaml @@ -1,6 +1,6 @@ zabbix_export: version: '5.4' - date: '2021-02-23T11:04:26Z' + date: '2021-05-09T00:00:00Z' groups: - name: 'Templates/Network devices' @@ -49,7 +49,7 @@ zabbix_export: value: CPU triggers: - - expression: '{min(5m)}>{$CPU.UTIL.CRIT}' + expression: 'min(/HP Enterprise Switch SNMP/system.cpu.util[hpSwitchCpuStat.0],5m)>{$CPU.UTIL.CRIT}' name: 'High CPU utilization (over {$CPU.UTIL.CRIT}% for 5m)' opdata: 'Current utilization: {ITEM.LASTVALUE1}' priority: WARNING @@ -81,7 +81,7 @@ zabbix_export: value: Inventory triggers: - - expression: '{diff()}=1 and {strlen()}>0' + expression: '(last(/HP Enterprise Switch SNMP/system.hw.firmware,#1)<>last(/HP Enterprise Switch SNMP/system.hw.firmware,#2))=1 and length(last(/HP Enterprise Switch SNMP/system.hw.firmware))>0' name: 'Firmware has changed' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: INFO @@ -109,7 +109,7 @@ zabbix_export: value: Inventory triggers: - - expression: '{diff()}=1 and {strlen()}>0' + expression: '(last(/HP Enterprise Switch SNMP/system.hw.serialnumber,#1)<>last(/HP Enterprise Switch SNMP/system.hw.serialnumber,#2))=1 and length(last(/HP Enterprise Switch SNMP/system.hw.serialnumber))>0' name: 'Device has been replaced (new serial number received)' priority: INFO description: 'Device serial number has changed. Ack to close' @@ -204,13 +204,13 @@ zabbix_export: value: Fans trigger_prototypes: - - expression: '{count(#1,{$FAN_CRIT_STATUS:"bad"},eq)}=1' + expression: 'count(/HP Enterprise Switch SNMP/sensor.fan.status[hpicfSensorStatus.{#SNMPINDEX}],#1,"eq","{$FAN_CRIT_STATUS:\"bad\"}")=1' name: '{#ENT_DESCR}: Fan is in critical state' opdata: 'Current state: {ITEM.LASTVALUE1}' priority: AVERAGE description: 'Please check the fan unit' - - expression: '{count(#1,{$FAN_WARN_STATUS:"warning"},eq)}=1' + expression: 'count(/HP Enterprise Switch SNMP/sensor.fan.status[hpicfSensorStatus.{#SNMPINDEX}],#1,"eq","{$FAN_WARN_STATUS:\"warning\"}")=1' name: '{#ENT_DESCR}: Fan is in warning state' opdata: 'Current state: {ITEM.LASTVALUE1}' priority: WARNING @@ -218,7 +218,7 @@ zabbix_export: dependencies: - name: '{#ENT_DESCR}: Fan is in critical state' - expression: '{HP Enterprise Switch SNMP:sensor.fan.status[hpicfSensorStatus.{#SNMPINDEX}].count(#1,{$FAN_CRIT_STATUS:"bad"},eq)}=1' + expression: 'count(/HP Enterprise Switch SNMP/sensor.fan.status[hpicfSensorStatus.{#SNMPINDEX}],#1,"eq","{$FAN_CRIT_STATUS:\"bad\"}")=1' - name: 'Memory Discovery' type: SNMP_AGENT @@ -276,7 +276,7 @@ zabbix_export: history: 7d value_type: FLOAT units: '%' - params: 'last("vm.memory.used[hpLocalMemAllocBytes.{#SNMPINDEX}]")/last("vm.memory.total[hpLocalMemTotalBytes.{#SNMPINDEX}]")*100' + params: 'last(//vm.memory.used[hpLocalMemAllocBytes.{#SNMPINDEX}])/last(//vm.memory.total[hpLocalMemTotalBytes.{#SNMPINDEX}])*100' description: 'Memory utilization in %' tags: - @@ -284,7 +284,7 @@ zabbix_export: value: Memory trigger_prototypes: - - expression: '{min(5m)}>{$MEMORY.UTIL.MAX}' + expression: 'min(/HP Enterprise Switch SNMP/vm.memory.util[snmp.{#SNMPINDEX}],5m)>{$MEMORY.UTIL.MAX}' name: '#{#SNMPVALUE}: High memory utilization (>{$MEMORY.UTIL.MAX}% for 5m)' priority: AVERAGE description: 'The system is running out of free memory.' @@ -355,13 +355,13 @@ zabbix_export: value: 'Power supply' trigger_prototypes: - - expression: '{count(#1,{$PSU_CRIT_STATUS:"bad"},eq)}=1' + expression: 'count(/HP Enterprise Switch SNMP/sensor.psu.status[hpicfSensorStatus.{#SNMPINDEX}],#1,"eq","{$PSU_CRIT_STATUS:\"bad\"}")=1' name: '{#ENT_DESCR}: Power supply is in critical state' opdata: 'Current state: {ITEM.LASTVALUE1}' priority: AVERAGE description: 'Please check the power supply unit for errors' - - expression: '{count(#1,{$PSU_WARN_STATUS:"warning"},eq)}=1' + expression: 'count(/HP Enterprise Switch SNMP/sensor.psu.status[hpicfSensorStatus.{#SNMPINDEX}],#1,"eq","{$PSU_WARN_STATUS:\"warning\"}")=1' name: '{#ENT_DESCR}: Power supply is in warning state' opdata: 'Current state: {ITEM.LASTVALUE1}' priority: WARNING @@ -369,7 +369,7 @@ zabbix_export: dependencies: - name: '{#ENT_DESCR}: Power supply is in critical state' - expression: '{HP Enterprise Switch SNMP:sensor.psu.status[hpicfSensorStatus.{#SNMPINDEX}].count(#1,{$PSU_CRIT_STATUS:"bad"},eq)}=1' + expression: 'count(/HP Enterprise Switch SNMP/sensor.psu.status[hpicfSensorStatus.{#SNMPINDEX}],#1,"eq","{$PSU_CRIT_STATUS:\"bad\"}")=1' - name: 'Temperature Discovery' type: SNMP_AGENT @@ -408,17 +408,17 @@ zabbix_export: value: Temperature trigger_prototypes: - - expression: '{avg(5m)}>{$TEMP_CRIT:""}' + expression: 'avg(/HP Enterprise Switch SNMP/sensor.temp.value[entPhySensorValue.{#SNMPINDEX}],5m)>{$TEMP_CRIT:""}' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{max(5m)}<{$TEMP_CRIT:""}-3' + recovery_expression: 'max(/HP Enterprise Switch SNMP/sensor.temp.value[entPhySensorValue.{#SNMPINDEX}],5m)<{$TEMP_CRIT:""}-3' name: '{#SENSOR_INFO}: Temperature is above critical threshold: >{$TEMP_CRIT:""}' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: HIGH description: 'This trigger uses temperature sensor values as well as temperature sensor status if available' - - expression: '{avg(5m)}>{$TEMP_WARN:""}' + expression: 'avg(/HP Enterprise Switch SNMP/sensor.temp.value[entPhySensorValue.{#SNMPINDEX}],5m)>{$TEMP_WARN:""}' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{max(5m)}<{$TEMP_WARN:""}-3' + recovery_expression: 'max(/HP Enterprise Switch SNMP/sensor.temp.value[entPhySensorValue.{#SNMPINDEX}],5m)<{$TEMP_WARN:""}-3' name: '{#SENSOR_INFO}: Temperature is above warning threshold: >{$TEMP_WARN:""}' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING @@ -426,12 +426,12 @@ zabbix_export: dependencies: - name: '{#SENSOR_INFO}: Temperature is above critical threshold: >{$TEMP_CRIT:""}' - expression: '{HP Enterprise Switch SNMP:sensor.temp.value[entPhySensorValue.{#SNMPINDEX}].avg(5m)}>{$TEMP_CRIT:""}' - recovery_expression: '{HP Enterprise Switch SNMP:sensor.temp.value[entPhySensorValue.{#SNMPINDEX}].max(5m)}<{$TEMP_CRIT:""}-3' + expression: 'avg(/HP Enterprise Switch SNMP/sensor.temp.value[entPhySensorValue.{#SNMPINDEX}],5m)>{$TEMP_CRIT:""}' + recovery_expression: 'max(/HP Enterprise Switch SNMP/sensor.temp.value[entPhySensorValue.{#SNMPINDEX}],5m)<{$TEMP_CRIT:""}-3' - - expression: '{avg(5m)}<{$TEMP_CRIT_LOW:""}' + expression: 'avg(/HP Enterprise Switch SNMP/sensor.temp.value[entPhySensorValue.{#SNMPINDEX}],5m)<{$TEMP_CRIT_LOW:""}' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{min(5m)}>{$TEMP_CRIT_LOW:""}+3' + recovery_expression: 'min(/HP Enterprise Switch SNMP/sensor.temp.value[entPhySensorValue.{#SNMPINDEX}],5m)>{$TEMP_CRIT_LOW:""}+3' name: '{#SENSOR_INFO}: Temperature is too low: <{$TEMP_CRIT_LOW:""}' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: AVERAGE diff --git a/templates/net/huawei_snmp/template_net_huawei_snmp.yaml b/templates/net/huawei_snmp/template_net_huawei_snmp.yaml index b60d50c4e50..74c64049094 100644 --- a/templates/net/huawei_snmp/template_net_huawei_snmp.yaml +++ b/templates/net/huawei_snmp/template_net_huawei_snmp.yaml @@ -1,6 +1,6 @@ zabbix_export: version: '5.4' - date: '2021-02-23T11:04:27Z' + date: '2021-05-09T00:00:00Z' groups: - name: 'Templates/Network devices' @@ -51,7 +51,7 @@ zabbix_export: value: Fans trigger_prototypes: - - expression: '{count(#1,{$FAN_CRIT_STATUS},eq)}=1' + expression: 'count(/Huawei VRP SNMP/sensor.fan.status[hwEntityFanState.{#SNMPINDEX}],#1,"eq","{$FAN_CRIT_STATUS}")=1' name: '#{#SNMPVALUE}: Fan is in critical state' opdata: 'Current state: {ITEM.LASTVALUE1}' priority: AVERAGE @@ -119,17 +119,17 @@ zabbix_export: value: Temperature trigger_prototypes: - - expression: '{avg(5m)}>{$TEMP_CRIT:""}' + expression: 'avg(/Huawei VRP SNMP/sensor.temp.value[hwEntityTemperature.{#SNMPINDEX}],5m)>{$TEMP_CRIT:""}' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{max(5m)}<{$TEMP_CRIT:""}-3' + recovery_expression: 'max(/Huawei VRP SNMP/sensor.temp.value[hwEntityTemperature.{#SNMPINDEX}],5m)<{$TEMP_CRIT:""}-3' name: '{#ENT_NAME}: Temperature is above critical threshold: >{$TEMP_CRIT:""}' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: HIGH description: 'This trigger uses temperature sensor values as well as temperature sensor status if available' - - expression: '{avg(5m)}>{$TEMP_WARN:""}' + expression: 'avg(/Huawei VRP SNMP/sensor.temp.value[hwEntityTemperature.{#SNMPINDEX}],5m)>{$TEMP_WARN:""}' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{max(5m)}<{$TEMP_WARN:""}-3' + recovery_expression: 'max(/Huawei VRP SNMP/sensor.temp.value[hwEntityTemperature.{#SNMPINDEX}],5m)<{$TEMP_WARN:""}-3' name: '{#ENT_NAME}: Temperature is above warning threshold: >{$TEMP_WARN:""}' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING @@ -137,12 +137,12 @@ zabbix_export: dependencies: - name: '{#ENT_NAME}: Temperature is above critical threshold: >{$TEMP_CRIT:""}' - expression: '{Huawei VRP SNMP:sensor.temp.value[hwEntityTemperature.{#SNMPINDEX}].avg(5m)}>{$TEMP_CRIT:""}' - recovery_expression: '{Huawei VRP SNMP:sensor.temp.value[hwEntityTemperature.{#SNMPINDEX}].max(5m)}<{$TEMP_CRIT:""}-3' + expression: 'avg(/Huawei VRP SNMP/sensor.temp.value[hwEntityTemperature.{#SNMPINDEX}],5m)>{$TEMP_CRIT:""}' + recovery_expression: 'max(/Huawei VRP SNMP/sensor.temp.value[hwEntityTemperature.{#SNMPINDEX}],5m)<{$TEMP_CRIT:""}-3' - - expression: '{avg(5m)}<{$TEMP_CRIT_LOW:""}' + expression: 'avg(/Huawei VRP SNMP/sensor.temp.value[hwEntityTemperature.{#SNMPINDEX}],5m)<{$TEMP_CRIT_LOW:""}' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{min(5m)}>{$TEMP_CRIT_LOW:""}+3' + recovery_expression: 'min(/Huawei VRP SNMP/sensor.temp.value[hwEntityTemperature.{#SNMPINDEX}],5m)>{$TEMP_CRIT_LOW:""}+3' name: '{#ENT_NAME}: Temperature is too low: <{$TEMP_CRIT_LOW:""}' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: AVERAGE @@ -164,7 +164,7 @@ zabbix_export: value: CPU trigger_prototypes: - - expression: '{min(5m)}>{$CPU.UTIL.CRIT}' + expression: 'min(/Huawei VRP SNMP/system.cpu.util[hwEntityCpuUsage.{#SNMPINDEX}],5m)>{$CPU.UTIL.CRIT}' name: '{#ENT_NAME}: High CPU utilization (over {$CPU.UTIL.CRIT}% for 5m)' opdata: 'Current utilization: {ITEM.LASTVALUE1}' priority: WARNING @@ -190,7 +190,7 @@ zabbix_export: value: Inventory trigger_prototypes: - - expression: '{diff()}=1 and {strlen()}>0' + expression: '(last(/Huawei VRP SNMP/system.hw.serialnumber[entPhysicalSerialNum.{#SNMPINDEX}],#1)<>last(/Huawei VRP SNMP/system.hw.serialnumber[entPhysicalSerialNum.{#SNMPINDEX}],#2))=1 and length(last(/Huawei VRP SNMP/system.hw.serialnumber[entPhysicalSerialNum.{#SNMPINDEX}]))>0' name: '{#ENT_NAME}: Device has been replaced (new serial number received)' priority: INFO description: 'Device serial number has changed. Ack to close' @@ -235,7 +235,7 @@ zabbix_export: value: Inventory trigger_prototypes: - - expression: '{diff()}=1 and {strlen()}>0' + expression: '(last(/Huawei VRP SNMP/system.sw.os[entPhysicalSoftwareRev.{#SNMPINDEX}],#1)<>last(/Huawei VRP SNMP/system.sw.os[entPhysicalSoftwareRev.{#SNMPINDEX}],#2))=1 and length(last(/Huawei VRP SNMP/system.sw.os[entPhysicalSoftwareRev.{#SNMPINDEX}]))>0' name: '{#ENT_NAME}: Operating system description has changed' priority: INFO description: 'Operating system description has changed. Possible reasons that system has been updated or replaced. Ack to close.' @@ -258,7 +258,7 @@ zabbix_export: value: Memory trigger_prototypes: - - expression: '{min(5m)}>{$MEMORY.UTIL.MAX}' + expression: 'min(/Huawei VRP SNMP/vm.memory.util[hwEntityMemUsage.{#SNMPINDEX}],5m)>{$MEMORY.UTIL.MAX}' name: '{#ENT_NAME}: High memory utilization (>{$MEMORY.UTIL.MAX}% for 5m)' priority: AVERAGE description: 'The system is running out of free memory.' diff --git a/templates/net/intel_qlogic_infiniband_snmp/template_net_intel_qlogic_infiniband_snmp.yaml b/templates/net/intel_qlogic_infiniband_snmp/template_net_intel_qlogic_infiniband_snmp.yaml index 0a397a14cf2..9bd3de66490 100644 --- a/templates/net/intel_qlogic_infiniband_snmp/template_net_intel_qlogic_infiniband_snmp.yaml +++ b/templates/net/intel_qlogic_infiniband_snmp/template_net_intel_qlogic_infiniband_snmp.yaml @@ -1,6 +1,6 @@ zabbix_export: version: '5.4' - date: '2021-02-23T11:04:31Z' + date: '2021-05-09T00:00:00Z' groups: - name: 'Templates/Network devices' @@ -50,7 +50,7 @@ zabbix_export: value: Inventory triggers: - - expression: '{diff()}=1 and {strlen()}>0' + expression: '(last(/Intel_Qlogic Infiniband SNMP/system.hw.firmware,#1)<>last(/Intel_Qlogic Infiniband SNMP/system.hw.firmware,#2))=1 and length(last(/Intel_Qlogic Infiniband SNMP/system.hw.firmware))>0' name: 'Firmware has changed' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: INFO @@ -109,7 +109,7 @@ zabbix_export: value: Fans trigger_prototypes: - - expression: '{count(#1,{$FAN_CRIT_STATUS},eq)}=1' + expression: 'count(/Intel_Qlogic Infiniband SNMP/sensor.fan.status[icsChassisFanOperStatus.{#SNMPINDEX}],#1,"eq","{$FAN_CRIT_STATUS}")=1' name: '{#SNMPVALUE}: Fan is in critical state' opdata: 'Current state: {ITEM.LASTVALUE1}' priority: AVERAGE @@ -149,13 +149,13 @@ zabbix_export: value: 'Power supply' trigger_prototypes: - - expression: '{count(#1,{$PSU_CRIT_STATUS},eq)}=1' + expression: 'count(/Intel_Qlogic Infiniband SNMP/sensor.psu.status[icsChassisPowerSupplyEntry.{#SNMPINDEX}],#1,"eq","{$PSU_CRIT_STATUS}")=1' name: '{#SNMPVALUE}: Power supply is in critical state' opdata: 'Current state: {ITEM.LASTVALUE1}' priority: AVERAGE description: 'Please check the power supply unit for errors' - - expression: '{count(#1,{$PSU_WARN_STATUS},eq)}=1' + expression: 'count(/Intel_Qlogic Infiniband SNMP/sensor.psu.status[icsChassisPowerSupplyEntry.{#SNMPINDEX}],#1,"eq","{$PSU_WARN_STATUS}")=1' name: '{#SNMPVALUE}: Power supply is in warning state' opdata: 'Current state: {ITEM.LASTVALUE1}' priority: WARNING @@ -163,7 +163,7 @@ zabbix_export: dependencies: - name: '{#SNMPVALUE}: Power supply is in critical state' - expression: '{Intel_Qlogic Infiniband SNMP:sensor.psu.status[icsChassisPowerSupplyEntry.{#SNMPINDEX}].count(#1,{$PSU_CRIT_STATUS},eq)}=1' + expression: 'count(/Intel_Qlogic Infiniband SNMP/sensor.psu.status[icsChassisPowerSupplyEntry.{#SNMPINDEX}],#1,"eq","{$PSU_CRIT_STATUS}")=1' - name: 'Temperature Discovery' type: SNMP_AGENT @@ -213,31 +213,31 @@ zabbix_export: value: Temperature trigger_prototypes: - - expression: '{avg(5m)}<{$TEMP_CRIT_LOW:""}' + expression: 'avg(/Intel_Qlogic Infiniband SNMP/sensor.temp.value[icsChassisSensorSlotValue.{#SNMPINDEX}],5m)<{$TEMP_CRIT_LOW:""}' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{min(5m)}>{$TEMP_CRIT_LOW:""}+3' + recovery_expression: 'min(/Intel_Qlogic Infiniband SNMP/sensor.temp.value[icsChassisSensorSlotValue.{#SNMPINDEX}],5m)>{$TEMP_CRIT_LOW:""}+3' name: '{#SENSOR_INFO}: Temperature is too low: <{$TEMP_CRIT_LOW:""}' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: AVERAGE trigger_prototypes: - expression: | - {Intel_Qlogic Infiniband SNMP:sensor.temp.value[icsChassisSensorSlotValue.{#SNMPINDEX}].avg(5m)}>{$TEMP_CRIT:""} + avg(/Intel_Qlogic Infiniband SNMP/sensor.temp.value[icsChassisSensorSlotValue.{#SNMPINDEX}],5m)>{$TEMP_CRIT:""} or - {Intel_Qlogic Infiniband SNMP:sensor.temp.status[icsChassisSensorSlotOperStatus.{#SNMPINDEX}].last(0)}={$TEMP_CRIT_STATUS} + last(/Intel_Qlogic Infiniband SNMP/sensor.temp.status[icsChassisSensorSlotOperStatus.{#SNMPINDEX}])={$TEMP_CRIT_STATUS} recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{Intel_Qlogic Infiniband SNMP:sensor.temp.value[icsChassisSensorSlotValue.{#SNMPINDEX}].max(5m)}<{$TEMP_CRIT:""}-3' + recovery_expression: 'max(/Intel_Qlogic Infiniband SNMP/sensor.temp.value[icsChassisSensorSlotValue.{#SNMPINDEX}],5m)<{$TEMP_CRIT:""}-3' name: '{#SENSOR_INFO}: Temperature is above critical threshold: >{$TEMP_CRIT:""}' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: HIGH description: 'This trigger uses temperature sensor values as well as temperature sensor status if available' - expression: | - {Intel_Qlogic Infiniband SNMP:sensor.temp.value[icsChassisSensorSlotValue.{#SNMPINDEX}].avg(5m)}>{$TEMP_WARN:""} + avg(/Intel_Qlogic Infiniband SNMP/sensor.temp.value[icsChassisSensorSlotValue.{#SNMPINDEX}],5m)>{$TEMP_WARN:""} or - {Intel_Qlogic Infiniband SNMP:sensor.temp.status[icsChassisSensorSlotOperStatus.{#SNMPINDEX}].last(0)}={$TEMP_WARN_STATUS} + last(/Intel_Qlogic Infiniband SNMP/sensor.temp.status[icsChassisSensorSlotOperStatus.{#SNMPINDEX}])={$TEMP_WARN_STATUS} recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{Intel_Qlogic Infiniband SNMP:sensor.temp.value[icsChassisSensorSlotValue.{#SNMPINDEX}].max(5m)}<{$TEMP_WARN:""}-3' + recovery_expression: 'max(/Intel_Qlogic Infiniband SNMP/sensor.temp.value[icsChassisSensorSlotValue.{#SNMPINDEX}],5m)<{$TEMP_WARN:""}-3' name: '{#SENSOR_INFO}: Temperature is above warning threshold: >{$TEMP_WARN:""}' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING @@ -246,10 +246,10 @@ zabbix_export: - name: '{#SENSOR_INFO}: Temperature is above critical threshold: >{$TEMP_CRIT:""}' expression: | - {Intel_Qlogic Infiniband SNMP:sensor.temp.value[icsChassisSensorSlotValue.{#SNMPINDEX}].avg(5m)}>{$TEMP_CRIT:""} + avg(/Intel_Qlogic Infiniband SNMP/sensor.temp.value[icsChassisSensorSlotValue.{#SNMPINDEX}],5m)>{$TEMP_CRIT:""} or - {Intel_Qlogic Infiniband SNMP:sensor.temp.status[icsChassisSensorSlotOperStatus.{#SNMPINDEX}].last(0)}={$TEMP_CRIT_STATUS} - recovery_expression: '{Intel_Qlogic Infiniband SNMP:sensor.temp.value[icsChassisSensorSlotValue.{#SNMPINDEX}].max(5m)}<{$TEMP_CRIT:""}-3' + last(/Intel_Qlogic Infiniband SNMP/sensor.temp.status[icsChassisSensorSlotOperStatus.{#SNMPINDEX}])={$TEMP_CRIT_STATUS} + recovery_expression: 'max(/Intel_Qlogic Infiniband SNMP/sensor.temp.value[icsChassisSensorSlotValue.{#SNMPINDEX}],5m)<{$TEMP_CRIT:""}-3' - name: 'Unit Discovery' type: SNMP_AGENT @@ -286,7 +286,7 @@ zabbix_export: value: Inventory trigger_prototypes: - - expression: '{diff()}=1 and {strlen()}>0' + expression: '(last(/Intel_Qlogic Infiniband SNMP/system.hw.serialnumber[icsChassisSystemUnitFruSerialNumber.{#SNMPINDEX}],#1)<>last(/Intel_Qlogic Infiniband SNMP/system.hw.serialnumber[icsChassisSystemUnitFruSerialNumber.{#SNMPINDEX}],#2))=1 and length(last(/Intel_Qlogic Infiniband SNMP/system.hw.serialnumber[icsChassisSystemUnitFruSerialNumber.{#SNMPINDEX}]))>0' name: '{#ENT_NAME}: Device has been replaced (new serial number received)' priority: INFO description: 'Device serial number has changed. Ack to close' diff --git a/templates/net/juniper_snmp/template_net_juniper_snmp.yaml b/templates/net/juniper_snmp/template_net_juniper_snmp.yaml index 3b744242ad5..fe1a3e44d0a 100644 --- a/templates/net/juniper_snmp/template_net_juniper_snmp.yaml +++ b/templates/net/juniper_snmp/template_net_juniper_snmp.yaml @@ -1,6 +1,6 @@ zabbix_export: version: '5.4' - date: '2021-02-23T11:04:32Z' + date: '2021-05-09T00:00:00Z' groups: - name: 'Templates/Network devices' @@ -74,7 +74,7 @@ zabbix_export: value: Inventory triggers: - - expression: '{diff()}=1 and {strlen()}>0' + expression: '(last(/Juniper SNMP/system.hw.serialnumber,#1)<>last(/Juniper SNMP/system.hw.serialnumber,#2))=1 and length(last(/Juniper SNMP/system.hw.serialnumber))>0' name: 'Device has been replaced (new serial number received)' priority: INFO description: 'Device serial number has changed. Ack to close' @@ -106,7 +106,7 @@ zabbix_export: value: Status triggers: - - expression: '{count(#1,{$HEALTH_CRIT_STATUS},eq)}=1' + expression: 'count(/Juniper SNMP/system.status[jnxRedAlarmState.0],#1,"eq","{$HEALTH_CRIT_STATUS}")=1' name: 'System status is in critical state' opdata: 'Current state: {ITEM.LASTVALUE1}' priority: HIGH @@ -138,7 +138,7 @@ zabbix_export: value: Inventory triggers: - - expression: '{diff()}=1 and {strlen()}>0' + expression: '(last(/Juniper SNMP/system.sw.os[sysDescr.0],#1)<>last(/Juniper SNMP/system.sw.os[sysDescr.0],#2))=1 and length(last(/Juniper SNMP/system.sw.os[sysDescr.0]))>0' name: 'Operating system description has changed' priority: INFO description: 'Operating system description has changed. Possible reasons that system has been updated or replaced. Ack to close.' @@ -178,7 +178,7 @@ zabbix_export: value: CPU trigger_prototypes: - - expression: '{min(5m)}>{$CPU.UTIL.CRIT}' + expression: 'min(/Juniper SNMP/system.cpu.util[jnxOperatingCPU.{#SNMPINDEX}],5m)>{$CPU.UTIL.CRIT}' name: '{#SNMPVALUE}: High CPU utilization (over {$CPU.UTIL.CRIT}% for 5m)' opdata: 'Current utilization: {ITEM.LASTVALUE1}' priority: WARNING @@ -201,7 +201,7 @@ zabbix_export: value: Memory trigger_prototypes: - - expression: '{min(5m)}>{$MEMORY.UTIL.MAX}' + expression: 'min(/Juniper SNMP/vm.memory.util[jnxOperatingBuffer.{#SNMPINDEX}],5m)>{$MEMORY.UTIL.MAX}' name: '{#SNMPVALUE}: High memory utilization (>{$MEMORY.UTIL.MAX}% for 5m)' priority: AVERAGE description: 'The system is running out of free memory.' @@ -253,7 +253,7 @@ zabbix_export: value: Fans trigger_prototypes: - - expression: '{count(#1,{$FAN_CRIT_STATUS},eq)}=1' + expression: 'count(/Juniper SNMP/sensor.fan.status[jnxOperatingState.4.{#SNMPINDEX}],#1,"eq","{$FAN_CRIT_STATUS}")=1' name: '{#SNMPVALUE}: Fan is in critical state' opdata: 'Current state: {ITEM.LASTVALUE1}' priority: AVERAGE @@ -286,7 +286,7 @@ zabbix_export: value: 'Power supply' trigger_prototypes: - - expression: '{count(#1,{$PSU_CRIT_STATUS},eq)}=1' + expression: 'count(/Juniper SNMP/sensor.psu.status[jnxOperatingState.2.{#SNMPINDEX}],#1,"eq","{$PSU_CRIT_STATUS}")=1' name: '{#SNMPVALUE}: Power supply is in critical state' opdata: 'Current state: {ITEM.LASTVALUE1}' priority: AVERAGE @@ -324,17 +324,17 @@ zabbix_export: value: Temperature trigger_prototypes: - - expression: '{avg(5m)}>{$TEMP_CRIT:""}' + expression: 'avg(/Juniper SNMP/sensor.temp.value[jnxOperatingTemp.{#SNMPINDEX}],5m)>{$TEMP_CRIT:""}' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{max(5m)}<{$TEMP_CRIT:""}-3' + recovery_expression: 'max(/Juniper SNMP/sensor.temp.value[jnxOperatingTemp.{#SNMPINDEX}],5m)<{$TEMP_CRIT:""}-3' name: '{#SENSOR_INFO}: Temperature is above critical threshold: >{$TEMP_CRIT:""}' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: HIGH description: 'This trigger uses temperature sensor values as well as temperature sensor status if available' - - expression: '{avg(5m)}>{$TEMP_WARN:""}' + expression: 'avg(/Juniper SNMP/sensor.temp.value[jnxOperatingTemp.{#SNMPINDEX}],5m)>{$TEMP_WARN:""}' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{max(5m)}<{$TEMP_WARN:""}-3' + recovery_expression: 'max(/Juniper SNMP/sensor.temp.value[jnxOperatingTemp.{#SNMPINDEX}],5m)<{$TEMP_WARN:""}-3' name: '{#SENSOR_INFO}: Temperature is above warning threshold: >{$TEMP_WARN:""}' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING @@ -342,12 +342,12 @@ zabbix_export: dependencies: - name: '{#SENSOR_INFO}: Temperature is above critical threshold: >{$TEMP_CRIT:""}' - expression: '{Juniper SNMP:sensor.temp.value[jnxOperatingTemp.{#SNMPINDEX}].avg(5m)}>{$TEMP_CRIT:""}' - recovery_expression: '{Juniper SNMP:sensor.temp.value[jnxOperatingTemp.{#SNMPINDEX}].max(5m)}<{$TEMP_CRIT:""}-3' + expression: 'avg(/Juniper SNMP/sensor.temp.value[jnxOperatingTemp.{#SNMPINDEX}],5m)>{$TEMP_CRIT:""}' + recovery_expression: 'max(/Juniper SNMP/sensor.temp.value[jnxOperatingTemp.{#SNMPINDEX}],5m)<{$TEMP_CRIT:""}-3' - - expression: '{avg(5m)}<{$TEMP_CRIT_LOW:""}' + expression: 'avg(/Juniper SNMP/sensor.temp.value[jnxOperatingTemp.{#SNMPINDEX}],5m)<{$TEMP_CRIT_LOW:""}' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{min(5m)}>{$TEMP_CRIT_LOW:""}+3' + recovery_expression: 'min(/Juniper SNMP/sensor.temp.value[jnxOperatingTemp.{#SNMPINDEX}],5m)>{$TEMP_CRIT_LOW:""}+3' name: '{#SENSOR_INFO}: Temperature is too low: <{$TEMP_CRIT_LOW:""}' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: AVERAGE diff --git a/templates/net/mellanox_snmp/template_net_mellanox_snmp.yaml b/templates/net/mellanox_snmp/template_net_mellanox_snmp.yaml index 150da6481af..8dcdaf4f187 100644 --- a/templates/net/mellanox_snmp/template_net_mellanox_snmp.yaml +++ b/templates/net/mellanox_snmp/template_net_mellanox_snmp.yaml @@ -1,6 +1,6 @@ zabbix_export: version: '5.4' - date: '2021-04-22T12:40:12Z' + date: '2021-05-09T00:00:00Z' groups: - name: 'Templates/Network devices' @@ -37,7 +37,7 @@ zabbix_export: value: Status triggers: - - expression: '{max(#3)}=0' + expression: 'max(/Mellanox SNMP/icmpping,#3)=0' name: 'Unavailable by ICMP ping' priority: HIGH description: 'Last three attempts returned timeout. Please check device connectivity.' @@ -54,14 +54,14 @@ zabbix_export: value: Status triggers: - - expression: '{min(5m)}>{$ICMP.LOSS.WARN} and {min(5m)}<100' + expression: 'min(/Mellanox SNMP/icmppingloss,5m)>{$ICMP.LOSS.WARN} and min(/Mellanox SNMP/icmppingloss,5m)<100' name: 'High ICMP ping loss' opdata: 'Loss: {ITEM.LASTVALUE1}' priority: WARNING dependencies: - name: 'Unavailable by ICMP ping' - expression: '{Mellanox SNMP:icmpping.max(#3)}=0' + expression: 'max(/Mellanox SNMP/icmpping,#3)=0' - name: 'ICMP response time' type: SIMPLE @@ -75,17 +75,17 @@ zabbix_export: value: Status triggers: - - expression: '{avg(5m)}>{$ICMP.RESPONSE_TIME.WARN}' + expression: 'avg(/Mellanox SNMP/icmppingsec,5m)>{$ICMP.RESPONSE_TIME.WARN}' name: 'High ICMP ping response time' opdata: 'Value: {ITEM.LASTVALUE1}' priority: WARNING dependencies: - name: 'High ICMP ping loss' - expression: '{Mellanox SNMP:icmppingloss.min(5m)}>{$ICMP.LOSS.WARN} and {Mellanox SNMP:icmppingloss.min(5m)}<100' + expression: 'min(/Mellanox SNMP/icmppingloss,5m)>{$ICMP.LOSS.WARN} and min(/Mellanox SNMP/icmppingloss,5m)<100' - name: 'Unavailable by ICMP ping' - expression: '{Mellanox SNMP:icmpping.max(#3)}=0' + expression: 'max(/Mellanox SNMP/icmpping,#3)=0' - name: 'SNMP traps (fallback)' type: SNMP_TRAP @@ -144,7 +144,7 @@ zabbix_export: value: CPU triggers: - - expression: '{min(5m)}>{$CPU.UTIL.CRIT}' + expression: 'min(/Mellanox SNMP/system.cpu.util,5m)>{$CPU.UTIL.CRIT}' name: 'High CPU utilization (over {$CPU.UTIL.CRIT}% for 5m)' opdata: 'Current utilization: {ITEM.LASTVALUE1}' priority: WARNING @@ -218,7 +218,7 @@ zabbix_export: value: General triggers: - - expression: '{diff()}=1 and {strlen()}>0' + expression: '(last(/Mellanox SNMP/system.name,#1)<>last(/Mellanox SNMP/system.name,#2))=1 and length(last(/Mellanox SNMP/system.name))>0' name: 'System name has changed (new name: {ITEM.VALUE})' priority: INFO description: 'System name has changed. Ack to close.' @@ -267,7 +267,7 @@ zabbix_export: value: Status triggers: - - expression: '{last()}<10m' + expression: 'last(/Mellanox SNMP/system.uptime[sysUpTime.0])<10m' name: '{HOST.NAME} has been restarted (uptime < 10m)' priority: WARNING description: 'Uptime is less than 10 minutes' @@ -275,7 +275,7 @@ zabbix_export: dependencies: - name: 'No SNMP data collection' - expression: '{Mellanox SNMP:zabbix[host,snmp,available].max({$SNMP.TIMEOUT})}=0' + expression: 'max(/Mellanox SNMP/zabbix[host,snmp,available],{$SNMP.TIMEOUT})=0' - name: 'SNMP agent availability' type: INTERNAL @@ -289,7 +289,7 @@ zabbix_export: value: Status triggers: - - expression: '{max({$SNMP.TIMEOUT})}=0' + expression: 'max(/Mellanox SNMP/zabbix[host,snmp,available],{$SNMP.TIMEOUT})=0' name: 'No SNMP data collection' opdata: 'Current state: {ITEM.LASTVALUE1}' priority: WARNING @@ -297,7 +297,7 @@ zabbix_export: dependencies: - name: 'Unavailable by ICMP ping' - expression: '{Mellanox SNMP:icmpping.max(#3)}=0' + expression: 'max(/Mellanox SNMP/icmpping,#3)=0' discovery_rules: - name: 'Entity Discovery' @@ -352,7 +352,7 @@ zabbix_export: value: Inventory trigger_prototypes: - - expression: '{diff()}=1 and {strlen()}>0' + expression: '(last(/Mellanox SNMP/system.hw.serialnumber[entPhysicalSerialNum.{#SNMPINDEX}],#1)<>last(/Mellanox SNMP/system.hw.serialnumber[entPhysicalSerialNum.{#SNMPINDEX}],#2))=1 and length(last(/Mellanox SNMP/system.hw.serialnumber[entPhysicalSerialNum.{#SNMPINDEX}]))>0' name: '{#ENT_NAME}: Device has been replaced (new serial number received)' priority: INFO description: 'Device serial number has changed. Ack to close' @@ -411,7 +411,7 @@ zabbix_export: value: Fans trigger_prototypes: - - expression: '{count(#1,{$FAN.STATUS.CRIT},eq)}=1' + expression: 'count(/Mellanox SNMP/sensor.fan.status[entPhySensorOperStatus.{#SNMPINDEX}],#1,"eq","{$FAN.STATUS.CRIT}")=1' name: '{#SENSOR_INFO}: Fan is in critical state' opdata: 'Current state: {ITEM.LASTVALUE1}' priority: AVERAGE @@ -676,9 +676,9 @@ zabbix_export: value: 'Interface {#IFNAME}({#IFALIAS})' trigger_prototypes: - - expression: '{$IFCONTROL:"{#IFNAME}"}=1 and ({last()}=2 and {diff()}=1)' + expression: '{$IFCONTROL:"{#IFNAME}"}=1 and (last(/Mellanox SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}])=2 and (last(/Mellanox SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}],#1)<>last(/Mellanox SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}],#2))=1)' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{last()}<>2 or {$IFCONTROL:"{#IFNAME}"}=0' + recovery_expression: 'last(/Mellanox SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}])<>2 or {$IFCONTROL:"{#IFNAME}"}=0' name: 'Interface {#IFNAME}({#IFALIAS}): Link down' opdata: 'Current state: {ITEM.LASTVALUE1}' priority: AVERAGE @@ -717,21 +717,21 @@ zabbix_export: trigger_prototypes: - expression: | - {Mellanox SNMP:net.if.speed[ifHighSpeed.{#SNMPINDEX}].change()}<0 and {Mellanox SNMP:net.if.speed[ifHighSpeed.{#SNMPINDEX}].last()}>0 + change(/Mellanox SNMP/net.if.speed[ifHighSpeed.{#SNMPINDEX}])<0 and last(/Mellanox SNMP/net.if.speed[ifHighSpeed.{#SNMPINDEX}])>0 and ( - {Mellanox SNMP:net.if.type[ifType.{#SNMPINDEX}].last()}=6 or - {Mellanox SNMP:net.if.type[ifType.{#SNMPINDEX}].last()}=7 or - {Mellanox SNMP:net.if.type[ifType.{#SNMPINDEX}].last()}=11 or - {Mellanox SNMP:net.if.type[ifType.{#SNMPINDEX}].last()}=62 or - {Mellanox SNMP:net.if.type[ifType.{#SNMPINDEX}].last()}=69 or - {Mellanox SNMP:net.if.type[ifType.{#SNMPINDEX}].last()}=117 + last(/Mellanox SNMP/net.if.type[ifType.{#SNMPINDEX}])=6 or + last(/Mellanox SNMP/net.if.type[ifType.{#SNMPINDEX}])=7 or + last(/Mellanox SNMP/net.if.type[ifType.{#SNMPINDEX}])=11 or + last(/Mellanox SNMP/net.if.type[ifType.{#SNMPINDEX}])=62 or + last(/Mellanox SNMP/net.if.type[ifType.{#SNMPINDEX}])=69 or + last(/Mellanox SNMP/net.if.type[ifType.{#SNMPINDEX}])=117 ) and - ({Mellanox SNMP:net.if.status[ifOperStatus.{#SNMPINDEX}].last()}<>2) + (last(/Mellanox SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}])<>2) recovery_mode: RECOVERY_EXPRESSION recovery_expression: | - ({Mellanox SNMP:net.if.speed[ifHighSpeed.{#SNMPINDEX}].change()}>0 and {Mellanox SNMP:net.if.speed[ifHighSpeed.{#SNMPINDEX}].prev()}>0) or - ({Mellanox SNMP:net.if.status[ifOperStatus.{#SNMPINDEX}].last()}=2) + (change(/Mellanox SNMP/net.if.speed[ifHighSpeed.{#SNMPINDEX}])>0 and last(/Mellanox SNMP/net.if.speed[ifHighSpeed.{#SNMPINDEX}],#2)>0) or + (last(/Mellanox SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}])=2) name: 'Interface {#IFNAME}({#IFALIAS}): Ethernet has changed to lower speed than it was before' opdata: 'Current reported speed: {ITEM.LASTVALUE1}' priority: INFO @@ -740,17 +740,17 @@ zabbix_export: dependencies: - name: 'Interface {#IFNAME}({#IFALIAS}): Link down' - expression: '{$IFCONTROL:"{#IFNAME}"}=1 and ({Mellanox SNMP:net.if.status[ifOperStatus.{#SNMPINDEX}].last()}=2 and {Mellanox SNMP:net.if.status[ifOperStatus.{#SNMPINDEX}].diff()}=1)' - recovery_expression: '{Mellanox SNMP:net.if.status[ifOperStatus.{#SNMPINDEX}].last()}<>2 or {$IFCONTROL:"{#IFNAME}"}=0' + expression: '{$IFCONTROL:"{#IFNAME}"}=1 and (last(/Mellanox SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}])=2 and (last(/Mellanox SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}],#1)<>last(/Mellanox SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}],#2))=1)' + recovery_expression: 'last(/Mellanox SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}])<>2 or {$IFCONTROL:"{#IFNAME}"}=0' - expression: | - ({Mellanox SNMP:net.if.in[ifHCInOctets.{#SNMPINDEX}].avg(15m)}>({$IF.UTIL.MAX:"{#IFNAME}"}/100)*{Mellanox SNMP:net.if.speed[ifHighSpeed.{#SNMPINDEX}].last()} or - {Mellanox SNMP:net.if.out[ifHCOutOctets.{#SNMPINDEX}].avg(15m)}>({$IF.UTIL.MAX:"{#IFNAME}"}/100)*{Mellanox SNMP:net.if.speed[ifHighSpeed.{#SNMPINDEX}].last()}) and - {Mellanox SNMP:net.if.speed[ifHighSpeed.{#SNMPINDEX}].last()}>0 + (avg(/Mellanox SNMP/net.if.in[ifHCInOctets.{#SNMPINDEX}],15m)>({$IF.UTIL.MAX:"{#IFNAME}"}/100)*last(/Mellanox SNMP/net.if.speed[ifHighSpeed.{#SNMPINDEX}]) or + avg(/Mellanox SNMP/net.if.out[ifHCOutOctets.{#SNMPINDEX}],15m)>({$IF.UTIL.MAX:"{#IFNAME}"}/100)*last(/Mellanox SNMP/net.if.speed[ifHighSpeed.{#SNMPINDEX}])) and + last(/Mellanox SNMP/net.if.speed[ifHighSpeed.{#SNMPINDEX}])>0 recovery_mode: RECOVERY_EXPRESSION recovery_expression: | - {Mellanox SNMP:net.if.in[ifHCInOctets.{#SNMPINDEX}].avg(15m)}<(({$IF.UTIL.MAX:"{#IFNAME}"}-3)/100)*{Mellanox SNMP:net.if.speed[ifHighSpeed.{#SNMPINDEX}].last()} and - {Mellanox SNMP:net.if.out[ifHCOutOctets.{#SNMPINDEX}].avg(15m)}<(({$IF.UTIL.MAX:"{#IFNAME}"}-3)/100)*{Mellanox SNMP:net.if.speed[ifHighSpeed.{#SNMPINDEX}].last()} + avg(/Mellanox SNMP/net.if.in[ifHCInOctets.{#SNMPINDEX}],15m)<(({$IF.UTIL.MAX:"{#IFNAME}"}-3)/100)*last(/Mellanox SNMP/net.if.speed[ifHighSpeed.{#SNMPINDEX}]) and + avg(/Mellanox SNMP/net.if.out[ifHCOutOctets.{#SNMPINDEX}],15m)<(({$IF.UTIL.MAX:"{#IFNAME}"}-3)/100)*last(/Mellanox SNMP/net.if.speed[ifHighSpeed.{#SNMPINDEX}]) name: 'Interface {#IFNAME}({#IFALIAS}): High bandwidth usage ( > {$IF.UTIL.MAX:"{#IFNAME}"}% )' opdata: 'In: {ITEM.LASTVALUE1}, out: {ITEM.LASTVALUE3}, speed: {ITEM.LASTVALUE2}' priority: WARNING @@ -759,16 +759,16 @@ zabbix_export: dependencies: - name: 'Interface {#IFNAME}({#IFALIAS}): Link down' - expression: '{$IFCONTROL:"{#IFNAME}"}=1 and ({Mellanox SNMP:net.if.status[ifOperStatus.{#SNMPINDEX}].last()}=2 and {Mellanox SNMP:net.if.status[ifOperStatus.{#SNMPINDEX}].diff()}=1)' - recovery_expression: '{Mellanox SNMP:net.if.status[ifOperStatus.{#SNMPINDEX}].last()}<>2 or {$IFCONTROL:"{#IFNAME}"}=0' + expression: '{$IFCONTROL:"{#IFNAME}"}=1 and (last(/Mellanox SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}])=2 and (last(/Mellanox SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}],#1)<>last(/Mellanox SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}],#2))=1)' + recovery_expression: 'last(/Mellanox SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}])<>2 or {$IFCONTROL:"{#IFNAME}"}=0' - expression: | - {Mellanox SNMP:net.if.in.errors[ifInErrors.{#SNMPINDEX}].min(5m)}>{$IF.ERRORS.WARN:"{#IFNAME}"} - or {Mellanox SNMP:net.if.out.errors[ifOutErrors.{#SNMPINDEX}].min(5m)}>{$IF.ERRORS.WARN:"{#IFNAME}"} + min(/Mellanox SNMP/net.if.in.errors[ifInErrors.{#SNMPINDEX}],5m)>{$IF.ERRORS.WARN:"{#IFNAME}"} + or min(/Mellanox SNMP/net.if.out.errors[ifOutErrors.{#SNMPINDEX}],5m)>{$IF.ERRORS.WARN:"{#IFNAME}"} recovery_mode: RECOVERY_EXPRESSION recovery_expression: | - {Mellanox SNMP:net.if.in.errors[ifInErrors.{#SNMPINDEX}].max(5m)}<{$IF.ERRORS.WARN:"{#IFNAME}"}*0.8 - and {Mellanox SNMP:net.if.out.errors[ifOutErrors.{#SNMPINDEX}].max(5m)}<{$IF.ERRORS.WARN:"{#IFNAME}"}*0.8 + max(/Mellanox SNMP/net.if.in.errors[ifInErrors.{#SNMPINDEX}],5m)<{$IF.ERRORS.WARN:"{#IFNAME}"}*0.8 + and max(/Mellanox SNMP/net.if.out.errors[ifOutErrors.{#SNMPINDEX}],5m)<{$IF.ERRORS.WARN:"{#IFNAME}"}*0.8 name: 'Interface {#IFNAME}({#IFALIAS}): High error rate ( > {$IF.ERRORS.WARN:"{#IFNAME}"} for 5m)' opdata: 'errors in: {ITEM.LASTVALUE1}, errors out: {ITEM.LASTVALUE2}' priority: WARNING @@ -777,8 +777,8 @@ zabbix_export: dependencies: - name: 'Interface {#IFNAME}({#IFALIAS}): Link down' - expression: '{$IFCONTROL:"{#IFNAME}"}=1 and ({Mellanox SNMP:net.if.status[ifOperStatus.{#SNMPINDEX}].last()}=2 and {Mellanox SNMP:net.if.status[ifOperStatus.{#SNMPINDEX}].diff()}=1)' - recovery_expression: '{Mellanox SNMP:net.if.status[ifOperStatus.{#SNMPINDEX}].last()}<>2 or {$IFCONTROL:"{#IFNAME}"}=0' + expression: '{$IFCONTROL:"{#IFNAME}"}=1 and (last(/Mellanox SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}])=2 and (last(/Mellanox SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}],#1)<>last(/Mellanox SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}],#2))=1)' + recovery_expression: 'last(/Mellanox SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}])<>2 or {$IFCONTROL:"{#IFNAME}"}=0' graph_prototypes: - name: 'Interface {#IFNAME}({#IFALIAS}): Network traffic' @@ -859,7 +859,7 @@ zabbix_export: value: 'Power supply' trigger_prototypes: - - expression: '{count(#1,{$PSU.STATUS.CRIT},eq)}=1' + expression: 'count(/Mellanox SNMP/sensor.psu.status[entStateOper.{#SNMPINDEX}],#1,"eq","{$PSU.STATUS.CRIT}")=1' name: '{#ENT_NAME}: Power supply is in critical state' opdata: 'Current state: {ITEM.LASTVALUE1}' priority: AVERAGE @@ -932,28 +932,28 @@ zabbix_export: value: Temperature trigger_prototypes: - - expression: '{avg(5m)}>{$TEMP.MAX.CRIT:"{#SENSOR_INFO}"}' + expression: 'avg(/Mellanox SNMP/sensor.temp.value[entPhySensorValue.{#SNMPINDEX}],5m)>{$TEMP.MAX.CRIT:"{#SENSOR_INFO}"}' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{max(5m)}<{$TEMP.MAX.CRIT:"{#SENSOR_INFO}"}-3' + recovery_expression: 'max(/Mellanox SNMP/sensor.temp.value[entPhySensorValue.{#SNMPINDEX}],5m)<{$TEMP.MAX.CRIT:"{#SENSOR_INFO}"}-3' name: '{#SENSOR_INFO}: Temperature is above critical threshold: >{$TEMP.MAX.CRIT:"{#SENSOR_INFO}"}' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: HIGH description: 'This trigger uses temperature sensor values as well as temperature sensor status if available' - - expression: '{avg(5m)}<{$TEMP.MIN.CRIT:"{#SENSOR_INFO}"}' + expression: 'avg(/Mellanox SNMP/sensor.temp.value[entPhySensorValue.{#SNMPINDEX}],5m)<{$TEMP.MIN.CRIT:"{#SENSOR_INFO}"}' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{min(5m)}>{$TEMP.MIN.CRIT:"{#SENSOR_INFO}"}+3' + recovery_expression: 'min(/Mellanox SNMP/sensor.temp.value[entPhySensorValue.{#SNMPINDEX}],5m)>{$TEMP.MIN.CRIT:"{#SENSOR_INFO}"}+3' name: '{#SENSOR_INFO}: Temperature is too low: <{$TEMP.MIN.CRIT:"{#SENSOR_INFO}"}' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: AVERAGE trigger_prototypes: - expression: | - {Mellanox SNMP:sensor.temp.value[entPhySensorValue.{#SNMPINDEX}].avg(5m)}>{$TEMP.MAX.WARN:"{#SENSOR_INFO}"} + avg(/Mellanox SNMP/sensor.temp.value[entPhySensorValue.{#SNMPINDEX}],5m)>{$TEMP.MAX.WARN:"{#SENSOR_INFO}"} or - {Mellanox SNMP:sensor.temp.status[entPhySensorOperStatus.{#SNMPINDEX}].last()}={$TEMP.STATUS.WARN} + last(/Mellanox SNMP/sensor.temp.status[entPhySensorOperStatus.{#SNMPINDEX}])={$TEMP.STATUS.WARN} recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{Mellanox SNMP:sensor.temp.value[entPhySensorValue.{#SNMPINDEX}].max(5m)}<{$TEMP.MAX.WARN:"{#SENSOR_INFO}"}-3' + recovery_expression: 'max(/Mellanox SNMP/sensor.temp.value[entPhySensorValue.{#SNMPINDEX}],5m)<{$TEMP.MAX.WARN:"{#SENSOR_INFO}"}-3' name: '{#SENSOR_INFO}: Temperature is above warning threshold: >{$TEMP.MAX.WARN:"{#SENSOR_INFO}"}' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING @@ -961,8 +961,8 @@ zabbix_export: dependencies: - name: '{#SENSOR_INFO}: Temperature is above critical threshold: >{$TEMP.MAX.CRIT:"{#SENSOR_INFO}"}' - expression: '{Mellanox SNMP:sensor.temp.value[entPhySensorValue.{#SNMPINDEX}].avg(5m)}>{$TEMP.MAX.CRIT:"{#SENSOR_INFO}"}' - recovery_expression: '{Mellanox SNMP:sensor.temp.value[entPhySensorValue.{#SNMPINDEX}].max(5m)}<{$TEMP.MAX.CRIT:"{#SENSOR_INFO}"}-3' + expression: 'avg(/Mellanox SNMP/sensor.temp.value[entPhySensorValue.{#SNMPINDEX}],5m)>{$TEMP.MAX.CRIT:"{#SENSOR_INFO}"}' + recovery_expression: 'max(/Mellanox SNMP/sensor.temp.value[entPhySensorValue.{#SNMPINDEX}],5m)<{$TEMP.MAX.CRIT:"{#SENSOR_INFO}"}-3' preprocessing: - type: JAVASCRIPT @@ -1013,7 +1013,7 @@ zabbix_export: history: 7d value_type: FLOAT units: '%' - params: '(last("vfs.fs.used[hrStorageUsed.{#SNMPINDEX}]")/last("vfs.fs.total[hrStorageSize.{#SNMPINDEX}]"))*100' + params: '(last(//vfs.fs.used[hrStorageUsed.{#SNMPINDEX}])/last(//vfs.fs.total[hrStorageSize.{#SNMPINDEX}]))*100' description: 'Space utilization in % for {#FSNAME}' tags: - @@ -1062,8 +1062,8 @@ zabbix_export: trigger_prototypes: - expression: | - {Mellanox SNMP:vfs.fs.pused[storageUsedPercentage.{#SNMPINDEX}].last()}>{$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"} and - (({Mellanox SNMP:vfs.fs.total[hrStorageSize.{#SNMPINDEX}].last()}-{Mellanox SNMP:vfs.fs.used[hrStorageUsed.{#SNMPINDEX}].last()})<5G or {Mellanox SNMP:vfs.fs.pused[storageUsedPercentage.{#SNMPINDEX}].timeleft(1h,,100)}<1d) + last(/Mellanox SNMP/vfs.fs.pused[storageUsedPercentage.{#SNMPINDEX}])>{$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"} and + ((last(/Mellanox SNMP/vfs.fs.total[hrStorageSize.{#SNMPINDEX}])-last(/Mellanox SNMP/vfs.fs.used[hrStorageUsed.{#SNMPINDEX}]))<5G or timeleft(/Mellanox SNMP/vfs.fs.pused[storageUsedPercentage.{#SNMPINDEX}],1h,100)<1d) name: '{#FSNAME}: Disk space is critically low (used > {$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"}%)' opdata: 'Space used: {ITEM.LASTVALUE3} of {ITEM.LASTVALUE2} ({ITEM.LASTVALUE1})' priority: AVERAGE @@ -1075,8 +1075,8 @@ zabbix_export: manual_close: 'YES' - expression: | - {Mellanox SNMP:vfs.fs.pused[storageUsedPercentage.{#SNMPINDEX}].last()}>{$VFS.FS.PUSED.MAX.WARN:"{#FSNAME}"} and - (({Mellanox SNMP:vfs.fs.total[hrStorageSize.{#SNMPINDEX}].last()}-{Mellanox SNMP:vfs.fs.used[hrStorageUsed.{#SNMPINDEX}].last()})<10G or {Mellanox SNMP:vfs.fs.pused[storageUsedPercentage.{#SNMPINDEX}].timeleft(1h,,100)}<1d) + last(/Mellanox SNMP/vfs.fs.pused[storageUsedPercentage.{#SNMPINDEX}])>{$VFS.FS.PUSED.MAX.WARN:"{#FSNAME}"} and + ((last(/Mellanox SNMP/vfs.fs.total[hrStorageSize.{#SNMPINDEX}])-last(/Mellanox SNMP/vfs.fs.used[hrStorageUsed.{#SNMPINDEX}]))<10G or timeleft(/Mellanox SNMP/vfs.fs.pused[storageUsedPercentage.{#SNMPINDEX}],1h,100)<1d) name: '{#FSNAME}: Disk space is low (used > {$VFS.FS.PUSED.MAX.WARN:"{#FSNAME}"}%)' opdata: 'Space used: {ITEM.LASTVALUE3} of {ITEM.LASTVALUE2} ({ITEM.LASTVALUE1})' priority: WARNING @@ -1090,8 +1090,8 @@ zabbix_export: - name: '{#FSNAME}: Disk space is critically low (used > {$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"}%)' expression: | - {Mellanox SNMP:vfs.fs.pused[storageUsedPercentage.{#SNMPINDEX}].last()}>{$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"} and - (({Mellanox SNMP:vfs.fs.total[hrStorageSize.{#SNMPINDEX}].last()}-{Mellanox SNMP:vfs.fs.used[hrStorageUsed.{#SNMPINDEX}].last()})<5G or {Mellanox SNMP:vfs.fs.pused[storageUsedPercentage.{#SNMPINDEX}].timeleft(1h,,100)}<1d) + last(/Mellanox SNMP/vfs.fs.pused[storageUsedPercentage.{#SNMPINDEX}])>{$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"} and + ((last(/Mellanox SNMP/vfs.fs.total[hrStorageSize.{#SNMPINDEX}])-last(/Mellanox SNMP/vfs.fs.used[hrStorageUsed.{#SNMPINDEX}]))<5G or timeleft(/Mellanox SNMP/vfs.fs.pused[storageUsedPercentage.{#SNMPINDEX}],1h,100)<1d) graph_prototypes: - name: '{#FSNAME}: Disk space usage' @@ -1195,7 +1195,7 @@ zabbix_export: history: 7d value_type: FLOAT units: '%' - params: 'last("vm.memory.used[hrStorageUsed.{#SNMPINDEX}]")/last("vm.memory.total[hrStorageSize.{#SNMPINDEX}]")*100' + params: 'last(//vm.memory.used[hrStorageUsed.{#SNMPINDEX}])/last(//vm.memory.total[hrStorageSize.{#SNMPINDEX}])*100' description: 'Memory utilization in %' tags: - @@ -1203,7 +1203,7 @@ zabbix_export: value: Memory trigger_prototypes: - - expression: '{min(5m)}>{$MEMORY.UTIL.MAX}' + expression: 'min(/Mellanox SNMP/vm.memory.util[memoryUsedPercentage.{#SNMPINDEX}],5m)>{$MEMORY.UTIL.MAX}' name: '{#MEMNAME}: High memory utilization ( >{$MEMORY.UTIL.MAX}% for 5m)' priority: AVERAGE description: 'The system is running out of free memory.' @@ -1353,103 +1353,6 @@ zabbix_export: - macro: '{$VFS.FS.PUSED.MAX.WARN}' value: '80' - dashboards: - - - name: 'Network interfaces' - pages: - - - widgets: - - - type: GRAPH_PROTOTYPE - width: '24' - height: '5' - fields: - - - type: INTEGER - name: columns - value: '1' - - - type: INTEGER - name: rows - value: '1' - - - type: INTEGER - name: source_type - value: '2' - - - type: GRAPH_PROTOTYPE - name: graphid - value: - name: 'Interface {#IFNAME}({#IFALIAS}): Network traffic' - host: 'Mellanox SNMP' - - - name: 'System performance' - pages: - - - widgets: - - - type: GRAPH_CLASSIC - width: '24' - height: '5' - fields: - - - type: INTEGER - name: source_type - value: '0' - - - type: GRAPH - name: graphid - value: - name: 'CPU utilization' - host: 'Mellanox SNMP' - - - type: GRAPH_PROTOTYPE - 'y': '5' - width: '24' - height: '5' - fields: - - - type: INTEGER - name: columns - value: '1' - - - type: INTEGER - name: rows - value: '1' - - - type: INTEGER - name: source_type - value: '2' - - - type: GRAPH_PROTOTYPE - name: graphid - value: - name: '{#MEMNAME}: Memory utilization' - host: 'Mellanox SNMP' - - - type: GRAPH_PROTOTYPE - 'y': '10' - width: '24' - height: '5' - fields: - - - type: INTEGER - name: columns - value: '1' - - - type: INTEGER - name: rows - value: '1' - - - type: INTEGER - name: source_type - value: '2' - - - type: GRAPH_PROTOTYPE - name: graphid - value: - name: '{#FSNAME}: Disk space usage' - host: 'Mellanox SNMP' valuemaps: - name: 'ENTITY-SENSORS-MIB::EntitySensorStatus' diff --git a/templates/net/mikrotik_snmp/template_net_mikrotik_snmp.yaml b/templates/net/mikrotik_snmp/template_net_mikrotik_snmp.yaml index bb402fadba1..7bf31d46dc9 100644 --- a/templates/net/mikrotik_snmp/template_net_mikrotik_snmp.yaml +++ b/templates/net/mikrotik_snmp/template_net_mikrotik_snmp.yaml @@ -1,6 +1,6 @@ zabbix_export: version: '5.4' - date: '2021-02-23T11:04:32Z' + date: '2021-05-09T00:00:00Z' groups: - name: 'Templates/Network devices' @@ -57,7 +57,7 @@ zabbix_export: value: Inventory triggers: - - expression: '{diff()}=1 and {strlen()}>0' + expression: '(last(/Mikrotik SNMP/system.hw.firmware,#1)<>last(/Mikrotik SNMP/system.hw.firmware,#2))=1 and length(last(/Mikrotik SNMP/system.hw.firmware))>0' name: 'Firmware has changed' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: INFO @@ -106,7 +106,7 @@ zabbix_export: value: Inventory triggers: - - expression: '{diff()}=1 and {strlen()}>0' + expression: '(last(/Mikrotik SNMP/system.hw.serialnumber,#1)<>last(/Mikrotik SNMP/system.hw.serialnumber,#2))=1 and length(last(/Mikrotik SNMP/system.hw.serialnumber))>0' name: 'Device has been replaced (new serial number received)' priority: INFO description: 'Device serial number has changed. Ack to close' @@ -135,7 +135,7 @@ zabbix_export: value: Inventory triggers: - - expression: '{diff()}=1 and {strlen()}>0' + expression: '(last(/Mikrotik SNMP/system.sw.os[mtxrLicVersion.0],#1)<>last(/Mikrotik SNMP/system.sw.os[mtxrLicVersion.0],#2))=1 and length(last(/Mikrotik SNMP/system.sw.os[mtxrLicVersion.0]))>0' name: 'Operating system description has changed' priority: INFO description: 'Operating system description has changed. Possible reasons that system has been updated or replaced. Ack to close.' @@ -193,7 +193,7 @@ zabbix_export: history: 7d value_type: FLOAT units: '%' - params: 'last("vm.memory.used[hrStorageUsed.Memory]")/last("vm.memory.total[hrStorageSize.Memory]")*100' + params: 'last(//vm.memory.used[hrStorageUsed.Memory])/last(//vm.memory.total[hrStorageSize.Memory])*100' description: 'Memory utilization in %' tags: - @@ -201,7 +201,7 @@ zabbix_export: value: Memory triggers: - - expression: '{min(5m)}>{$MEMORY.UTIL.MAX}' + expression: 'min(/Mikrotik SNMP/vm.memory.util[memoryUsedPercentage.Memory],5m)>{$MEMORY.UTIL.MAX}' name: 'High memory utilization (>{$MEMORY.UTIL.MAX}% for 5m)' priority: AVERAGE description: 'The system is running out of free memory.' @@ -231,7 +231,7 @@ zabbix_export: value: CPU trigger_prototypes: - - expression: '{min(5m)}>{$CPU.UTIL.CRIT}' + expression: 'min(/Mikrotik SNMP/system.cpu.util[hrProcessorLoad.{#SNMPINDEX}],5m)>{$CPU.UTIL.CRIT}' name: '#{#SNMPINDEX}: High CPU utilization (over {$CPU.UTIL.CRIT}% for 5m)' opdata: 'Current utilization: {ITEM.LASTVALUE1}' priority: WARNING @@ -281,17 +281,17 @@ zabbix_export: value: Temperature trigger_prototypes: - - expression: '{avg(5m)}>{$TEMP_CRIT:"CPU"}' + expression: 'avg(/Mikrotik SNMP/sensor.temp.value[mtxrHlProcessorTemperature.{#SNMPINDEX}],5m)>{$TEMP_CRIT:"CPU"}' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{max(5m)}<{$TEMP_CRIT:"CPU"}-3' + recovery_expression: 'max(/Mikrotik SNMP/sensor.temp.value[mtxrHlProcessorTemperature.{#SNMPINDEX}],5m)<{$TEMP_CRIT:"CPU"}-3' name: 'CPU: Temperature is above critical threshold: >{$TEMP_CRIT:"CPU"}' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: HIGH description: 'This trigger uses temperature sensor values as well as temperature sensor status if available' - - expression: '{avg(5m)}>{$TEMP_WARN:"CPU"}' + expression: 'avg(/Mikrotik SNMP/sensor.temp.value[mtxrHlProcessorTemperature.{#SNMPINDEX}],5m)>{$TEMP_WARN:"CPU"}' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{max(5m)}<{$TEMP_WARN:"CPU"}-3' + recovery_expression: 'max(/Mikrotik SNMP/sensor.temp.value[mtxrHlProcessorTemperature.{#SNMPINDEX}],5m)<{$TEMP_WARN:"CPU"}-3' name: 'CPU: Temperature is above warning threshold: >{$TEMP_WARN:"CPU"}' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING @@ -299,12 +299,12 @@ zabbix_export: dependencies: - name: 'CPU: Temperature is above critical threshold: >{$TEMP_CRIT:"CPU"}' - expression: '{Mikrotik SNMP:sensor.temp.value[mtxrHlProcessorTemperature.{#SNMPINDEX}].avg(5m)}>{$TEMP_CRIT:"CPU"}' - recovery_expression: '{Mikrotik SNMP:sensor.temp.value[mtxrHlProcessorTemperature.{#SNMPINDEX}].max(5m)}<{$TEMP_CRIT:"CPU"}-3' + expression: 'avg(/Mikrotik SNMP/sensor.temp.value[mtxrHlProcessorTemperature.{#SNMPINDEX}],5m)>{$TEMP_CRIT:"CPU"}' + recovery_expression: 'max(/Mikrotik SNMP/sensor.temp.value[mtxrHlProcessorTemperature.{#SNMPINDEX}],5m)<{$TEMP_CRIT:"CPU"}-3' - - expression: '{avg(5m)}<{$TEMP_CRIT_LOW:"CPU"}' + expression: 'avg(/Mikrotik SNMP/sensor.temp.value[mtxrHlProcessorTemperature.{#SNMPINDEX}],5m)<{$TEMP_CRIT_LOW:"CPU"}' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{min(5m)}>{$TEMP_CRIT_LOW:"CPU"}+3' + recovery_expression: 'min(/Mikrotik SNMP/sensor.temp.value[mtxrHlProcessorTemperature.{#SNMPINDEX}],5m)>{$TEMP_CRIT_LOW:"CPU"}+3' name: 'CPU: Temperature is too low: <{$TEMP_CRIT_LOW:"CPU"}' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: AVERAGE @@ -344,17 +344,17 @@ zabbix_export: value: Temperature trigger_prototypes: - - expression: '{avg(5m)}>{$TEMP_CRIT:"Device"}' + expression: 'avg(/Mikrotik SNMP/sensor.temp.value[mtxrHlTemperature.{#SNMPINDEX}],5m)>{$TEMP_CRIT:"Device"}' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{max(5m)}<{$TEMP_CRIT:"Device"}-3' + recovery_expression: 'max(/Mikrotik SNMP/sensor.temp.value[mtxrHlTemperature.{#SNMPINDEX}],5m)<{$TEMP_CRIT:"Device"}-3' name: 'Device: Temperature is above critical threshold: >{$TEMP_CRIT:"Device"}' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: HIGH description: 'This trigger uses temperature sensor values as well as temperature sensor status if available' - - expression: '{avg(5m)}>{$TEMP_WARN:"Device"}' + expression: 'avg(/Mikrotik SNMP/sensor.temp.value[mtxrHlTemperature.{#SNMPINDEX}],5m)>{$TEMP_WARN:"Device"}' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{max(5m)}<{$TEMP_WARN:"Device"}-3' + recovery_expression: 'max(/Mikrotik SNMP/sensor.temp.value[mtxrHlTemperature.{#SNMPINDEX}],5m)<{$TEMP_WARN:"Device"}-3' name: 'Device: Temperature is above warning threshold: >{$TEMP_WARN:"Device"}' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING @@ -362,12 +362,12 @@ zabbix_export: dependencies: - name: 'Device: Temperature is above critical threshold: >{$TEMP_CRIT:"Device"}' - expression: '{Mikrotik SNMP:sensor.temp.value[mtxrHlTemperature.{#SNMPINDEX}].avg(5m)}>{$TEMP_CRIT:"Device"}' - recovery_expression: '{Mikrotik SNMP:sensor.temp.value[mtxrHlTemperature.{#SNMPINDEX}].max(5m)}<{$TEMP_CRIT:"Device"}-3' + expression: 'avg(/Mikrotik SNMP/sensor.temp.value[mtxrHlTemperature.{#SNMPINDEX}],5m)>{$TEMP_CRIT:"Device"}' + recovery_expression: 'max(/Mikrotik SNMP/sensor.temp.value[mtxrHlTemperature.{#SNMPINDEX}],5m)<{$TEMP_CRIT:"Device"}-3' - - expression: '{avg(5m)}<{$TEMP_CRIT_LOW:"Device"}' + expression: 'avg(/Mikrotik SNMP/sensor.temp.value[mtxrHlTemperature.{#SNMPINDEX}],5m)<{$TEMP_CRIT_LOW:"Device"}' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{min(5m)}>{$TEMP_CRIT_LOW:"Device"}+3' + recovery_expression: 'min(/Mikrotik SNMP/sensor.temp.value[mtxrHlTemperature.{#SNMPINDEX}],5m)>{$TEMP_CRIT_LOW:"Device"}+3' name: 'Device: Temperature is too low: <{$TEMP_CRIT_LOW:"Device"}' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: AVERAGE @@ -407,7 +407,7 @@ zabbix_export: value: 'Interface {#IFNAME}({#IFALIAS})' trigger_prototypes: - - expression: '{max(5m)} < {$LTEMODEM.RSRP.MIN.WARN}' + expression: 'max(/Mikrotik SNMP/lte.modem.rsrp[mtxrLTEModemSignalRSRP.{#SNMPINDEX}],5m) < {$LTEMODEM.RSRP.MIN.WARN}' name: 'Interface {#IFNAME}({#IFALIAS}): LTE modem RSRP is low (below {$LTEMODEM.RSRP.MIN.WARN}dbm for 5m)' priority: WARNING - @@ -427,7 +427,7 @@ zabbix_export: value: 'Interface {#IFNAME}({#IFALIAS})' trigger_prototypes: - - expression: '{max(5m)} < {$LTEMODEM.RSRQ.MIN.WARN}' + expression: 'max(/Mikrotik SNMP/lte.modem.rsrq[mtxrLTEModemSignalRSRQ.{#SNMPINDEX}],5m) < {$LTEMODEM.RSRQ.MIN.WARN}' name: 'Interface {#IFNAME}({#IFALIAS}): LTE modem RSRQ is low (below {$LTEMODEM.RSRQ.MIN.WARN}db for 5m)' priority: WARNING - @@ -447,7 +447,7 @@ zabbix_export: value: 'Interface {#IFNAME}({#IFALIAS})' trigger_prototypes: - - expression: '{max(5m)} < {$LTEMODEM.RSSI.MIN.WARN}' + expression: 'max(/Mikrotik SNMP/lte.modem.rssi[mtxrLTEModemSignalRSSI.{#SNMPINDEX}],5m) < {$LTEMODEM.RSSI.MIN.WARN}' name: 'Interface {#IFNAME}({#IFALIAS}): LTE modem RSSI is low (below {$LTEMODEM.RSSI.MIN.WARN}dbm for 5m)' priority: WARNING - @@ -467,7 +467,7 @@ zabbix_export: value: 'Interface {#IFNAME}({#IFALIAS})' trigger_prototypes: - - expression: '{max(5m)} < {$LTEMODEM.SINR.MIN.WARN}' + expression: 'max(/Mikrotik SNMP/lte.modem.sinr[mtxrLTEModemSignalSINR.{#SNMPINDEX}],5m) < {$LTEMODEM.SINR.MIN.WARN}' name: 'Interface {#IFNAME}({#IFALIAS}): LTE modem SINR is low (below {$LTEMODEM.SINR.MIN.WARN}db for 5m)' priority: WARNING graph_prototypes: @@ -688,7 +688,7 @@ zabbix_export: value: 'Interface {#IFNAME}({#IFALIAS})' trigger_prototypes: - - expression: '{last()}<>"running-ap"' + expression: 'last(/Mikrotik SNMP/ssid.state[mtxrWlCMState.{#SNMPINDEX}])<>"running-ap"' name: 'Interface {#IFNAME}({#IFALIAS}): AP interface {#IFNAME}({#IFALIAS}) is not running' priority: WARNING description: 'Access point interface can be not running by different reasons - disabled interface, power off, network link down.' @@ -718,7 +718,7 @@ zabbix_export: history: 7d value_type: FLOAT units: '%' - params: '(last("vfs.fs.used[hrStorageSize.{#SNMPINDEX}]")/last("vfs.fs.total[hrStorageSize.{#SNMPINDEX}]"))*100' + params: '(last(//vfs.fs.used[hrStorageSize.{#SNMPINDEX}])/last(//vfs.fs.total[hrStorageSize.{#SNMPINDEX}]))*100' description: 'Space utilization in % for Disk-{#SNMPINDEX}' tags: - @@ -773,8 +773,8 @@ zabbix_export: trigger_prototypes: - expression: | - {Mikrotik SNMP:vfs.fs.pused[hrStorageSize.{#SNMPINDEX}].last()}>{$VFS.FS.PUSED.MAX.CRIT:"Disk-{#SNMPINDEX}"} and - (({Mikrotik SNMP:vfs.fs.total[hrStorageSize.{#SNMPINDEX}].last()}-{Mikrotik SNMP:vfs.fs.used[hrStorageSize.{#SNMPINDEX}].last()})<5G or {Mikrotik SNMP:vfs.fs.pused[hrStorageSize.{#SNMPINDEX}].timeleft(1h,,100)}<1d) + last(/Mikrotik SNMP/vfs.fs.pused[hrStorageSize.{#SNMPINDEX}])>{$VFS.FS.PUSED.MAX.CRIT:"Disk-{#SNMPINDEX}"} and + ((last(/Mikrotik SNMP/vfs.fs.total[hrStorageSize.{#SNMPINDEX}])-last(/Mikrotik SNMP/vfs.fs.used[hrStorageSize.{#SNMPINDEX}]))<5G or timeleft(/Mikrotik SNMP/vfs.fs.pused[hrStorageSize.{#SNMPINDEX}],1h,100)<1d) name: 'Disk-{#SNMPINDEX}: Disk space is critically low (used > {$VFS.FS.PUSED.MAX.CRIT:"Disk-{#SNMPINDEX}"}%)' opdata: 'Space used: {ITEM.LASTVALUE3} of {ITEM.LASTVALUE2} ({ITEM.LASTVALUE1})' priority: AVERAGE @@ -786,8 +786,8 @@ zabbix_export: manual_close: 'YES' - expression: | - {Mikrotik SNMP:vfs.fs.pused[hrStorageSize.{#SNMPINDEX}].last()}>{$VFS.FS.PUSED.MAX.WARN:"Disk-{#SNMPINDEX}"} and - (({Mikrotik SNMP:vfs.fs.total[hrStorageSize.{#SNMPINDEX}].last()}-{Mikrotik SNMP:vfs.fs.used[hrStorageSize.{#SNMPINDEX}].last()})<10G or {Mikrotik SNMP:vfs.fs.pused[hrStorageSize.{#SNMPINDEX}].timeleft(1h,,100)}<1d) + last(/Mikrotik SNMP/vfs.fs.pused[hrStorageSize.{#SNMPINDEX}])>{$VFS.FS.PUSED.MAX.WARN:"Disk-{#SNMPINDEX}"} and + ((last(/Mikrotik SNMP/vfs.fs.total[hrStorageSize.{#SNMPINDEX}])-last(/Mikrotik SNMP/vfs.fs.used[hrStorageSize.{#SNMPINDEX}]))<10G or timeleft(/Mikrotik SNMP/vfs.fs.pused[hrStorageSize.{#SNMPINDEX}],1h,100)<1d) name: 'Disk-{#SNMPINDEX}: Disk space is low (used > {$VFS.FS.PUSED.MAX.WARN:"Disk-{#SNMPINDEX}"}%)' opdata: 'Space used: {ITEM.LASTVALUE3} of {ITEM.LASTVALUE2} ({ITEM.LASTVALUE1})' priority: WARNING @@ -801,8 +801,8 @@ zabbix_export: - name: 'Disk-{#SNMPINDEX}: Disk space is critically low (used > {$VFS.FS.PUSED.MAX.CRIT:"Disk-{#SNMPINDEX}"}%)' expression: | - {Mikrotik SNMP:vfs.fs.pused[hrStorageSize.{#SNMPINDEX}].last()}>{$VFS.FS.PUSED.MAX.CRIT:"Disk-{#SNMPINDEX}"} and - (({Mikrotik SNMP:vfs.fs.total[hrStorageSize.{#SNMPINDEX}].last()}-{Mikrotik SNMP:vfs.fs.used[hrStorageSize.{#SNMPINDEX}].last()})<5G or {Mikrotik SNMP:vfs.fs.pused[hrStorageSize.{#SNMPINDEX}].timeleft(1h,,100)}<1d) + last(/Mikrotik SNMP/vfs.fs.pused[hrStorageSize.{#SNMPINDEX}])>{$VFS.FS.PUSED.MAX.CRIT:"Disk-{#SNMPINDEX}"} and + ((last(/Mikrotik SNMP/vfs.fs.total[hrStorageSize.{#SNMPINDEX}])-last(/Mikrotik SNMP/vfs.fs.used[hrStorageSize.{#SNMPINDEX}]))<5G or timeleft(/Mikrotik SNMP/vfs.fs.pused[hrStorageSize.{#SNMPINDEX}],1h,100)<1d) graph_prototypes: - name: 'Disk-{#SNMPINDEX}: Disk space usage' diff --git a/templates/net/morningstar_snmp/prostar_mppt_snmp/prostar_mppt_snmp.yaml b/templates/net/morningstar_snmp/prostar_mppt_snmp/prostar_mppt_snmp.yaml index c4f6cc06f71..60ef94461dc 100644 --- a/templates/net/morningstar_snmp/prostar_mppt_snmp/prostar_mppt_snmp.yaml +++ b/templates/net/morningstar_snmp/prostar_mppt_snmp/prostar_mppt_snmp.yaml @@ -1,6 +1,6 @@ zabbix_export: version: '5.4' - date: '2021-02-23T11:04:28Z' + date: '2021-05-09T00:00:00Z' groups: - name: Templates/Modules @@ -168,19 +168,19 @@ zabbix_export: value: Battery triggers: - - expression: '{last()}={$CHARGE.STATE.CRIT}' + expression: 'last(/Morningstar ProStar MPPT SNMP/charge.state[chargeState.0])={$CHARGE.STATE.CRIT}' name: 'Battery: Device charge in critical state' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: HIGH - - expression: '{last()}={$CHARGE.STATE.WARN}' + expression: 'last(/Morningstar ProStar MPPT SNMP/charge.state[chargeState.0])={$CHARGE.STATE.WARN}' name: 'Battery: Device charge in warning state' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING dependencies: - name: 'Battery: Device charge in critical state' - expression: '{Morningstar ProStar MPPT SNMP:charge.state[chargeState.0].last()}={$CHARGE.STATE.CRIT}' + expression: 'last(/Morningstar ProStar MPPT SNMP/charge.state[chargeState.0])={$CHARGE.STATE.CRIT}' - name: 'Counter: Charge Amp-hours' type: SNMP_AGENT @@ -305,19 +305,19 @@ zabbix_export: value: Load triggers: - - expression: '{last()}={$LOAD.STATE.CRIT:"lvd"} or {last()}={$LOAD.STATE.CRIT:"fault"}' + expression: 'last(/Morningstar ProStar MPPT SNMP/load.state[loadState.0])={$LOAD.STATE.CRIT:"lvd"} or last(/Morningstar ProStar MPPT SNMP/load.state[loadState.0])={$LOAD.STATE.CRIT:"fault"}' name: 'Load: Device load in critical state' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: HIGH - - expression: '{last()}={$LOAD.STATE.WARN:"lvdWarning"} or {last()}={$LOAD.STATE.WARN:"override"}' + expression: 'last(/Morningstar ProStar MPPT SNMP/load.state[loadState.0])={$LOAD.STATE.WARN:"lvdWarning"} or last(/Morningstar ProStar MPPT SNMP/load.state[loadState.0])={$LOAD.STATE.WARN:"override"}' name: 'Load: Device load in warning state' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING dependencies: - name: 'Load: Device load in critical state' - expression: '{Morningstar ProStar MPPT SNMP:load.state[loadState.0].last()}={$LOAD.STATE.CRIT:"lvd"} or {Morningstar ProStar MPPT SNMP:load.state[loadState.0].last()}={$LOAD.STATE.CRIT:"fault"}' + expression: 'last(/Morningstar ProStar MPPT SNMP/load.state[loadState.0])={$LOAD.STATE.CRIT:"lvd"} or last(/Morningstar ProStar MPPT SNMP/load.state[loadState.0])={$LOAD.STATE.CRIT:"fault"}' - name: 'Load: Voltage' type: SNMP_AGENT @@ -405,127 +405,127 @@ zabbix_export: value: Status triggers: - - expression: '{count(#3,"arrayCurrentOffset","like")}=2' + expression: 'count(/Morningstar ProStar MPPT SNMP/status.alarms[alarms.0],#3,"like","arrayCurrentOffset")=2' name: 'Status: Device has "arrayCurrentOffset" alarm flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING - - expression: '{count(#3,"batterySenseDisconnected","like")}=2' + expression: 'count(/Morningstar ProStar MPPT SNMP/status.alarms[alarms.0],#3,"like","batterySenseDisconnected")=2' name: 'Status: Device has "batterySenseDisconnected" alarm flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING - - expression: '{count(#3,"batterySenseOutOfRange","like")}=2' + expression: 'count(/Morningstar ProStar MPPT SNMP/status.alarms[alarms.0],#3,"like","batterySenseOutOfRange")=2' name: 'Status: Device has "batterySenseOutOfRange" alarm flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING - - expression: '{count(#3,"controllerReset","like")}=2' + expression: 'count(/Morningstar ProStar MPPT SNMP/status.alarms[alarms.0],#3,"like","controllerReset")=2' name: 'Status: Device has "controllerReset" alarm flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING - - expression: '{count(#3,"currentLimit","like")}=2' + expression: 'count(/Morningstar ProStar MPPT SNMP/status.alarms[alarms.0],#3,"like","currentLimit")=2' name: 'Status: Device has "currentLimit" alarm flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING - - expression: '{count(#3,"currentMeasurementError","like")}=2' + expression: 'count(/Morningstar ProStar MPPT SNMP/status.alarms[alarms.0],#3,"like","currentMeasurementError")=2' name: 'Status: Device has "currentMeasurementError" alarm flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING - - expression: '{count(#3,"eepromAccessFailure","like")}=2' + expression: 'count(/Morningstar ProStar MPPT SNMP/status.alarms[alarms.0],#3,"like","eepromAccessFailure")=2' name: 'Status: Device has "eepromAccessFailure" alarm flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING - - expression: '{count(#3,"fp10SupplyOutOfRange","like")}=2' + expression: 'count(/Morningstar ProStar MPPT SNMP/status.alarms[alarms.0],#3,"like","fp10SupplyOutOfRange")=2' name: 'Status: Device has "fp10SupplyOutOfRange" alarm flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING - - expression: '{count(#3,"heatsinkTempLimit","like")}=2' + expression: 'count(/Morningstar ProStar MPPT SNMP/status.alarms[alarms.0],#3,"like","heatsinkTempLimit")=2' name: 'Status: Device has "heatsinkTempLimit" alarm flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING - - expression: '{count(#3,"heatsinkTempSensorOpen","like")}=2' + expression: 'count(/Morningstar ProStar MPPT SNMP/status.alarms[alarms.0],#3,"like","heatsinkTempSensorOpen")=2' name: 'Status: Device has "heatsinkTempSensorOpen" alarm flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING - - expression: '{count(#3,"heatsinkTempSensorShorted","like")}=2' + expression: 'count(/Morningstar ProStar MPPT SNMP/status.alarms[alarms.0],#3,"like","heatsinkTempSensorShorted")=2' name: 'Status: Device has "heatsinkTempSensorShorted" alarm flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING - - expression: '{count(#3,"hightInputVoltageLimit","like")}=2' + expression: 'count(/Morningstar ProStar MPPT SNMP/status.alarms[alarms.0],#3,"like","hightInputVoltageLimit")=2' name: 'Status: Device has "hightInputVoltageLimit" alarm flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING - - expression: '{count(#3,"inductorTempLimit","like")}=2' + expression: 'count(/Morningstar ProStar MPPT SNMP/status.alarms[alarms.0],#3,"like","inductorTempLimit")=2' name: 'Status: Device has "inductorTempLimit" alarm flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING - - expression: '{count(#3,"inductorTempSensorOpen","like")}=2' + expression: 'count(/Morningstar ProStar MPPT SNMP/status.alarms[alarms.0],#3,"like","inductorTempSensorOpen")=2' name: 'Status: Device has "inductorTempSensorOpen" alarm flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING - - expression: '{count(#3,"inductorTempSensorShorted","like")}=2' + expression: 'count(/Morningstar ProStar MPPT SNMP/status.alarms[alarms.0],#3,"like","inductorTempSensorShorted")=2' name: 'Status: Device has "inductorTempSensorShorted" alarm flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING - - expression: '{count(#3,"loadCurrentOffset","like")}=2' + expression: 'count(/Morningstar ProStar MPPT SNMP/status.alarms[alarms.0],#3,"like","loadCurrentOffset")=2' name: 'Status: Device has "loadCurrentOffset" alarm flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING - - expression: '{count(#3,"loadLvd","like")}=2' + expression: 'count(/Morningstar ProStar MPPT SNMP/status.alarms[alarms.0],#3,"like","loadLvd")=2' name: 'Status: Device has "loadLvd" alarm flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING - - expression: '{count(#3,"logTimeout","like")}=2' + expression: 'count(/Morningstar ProStar MPPT SNMP/status.alarms[alarms.0],#3,"like","logTimeout")=2' name: 'Status: Device has "logTimeout" alarm flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING - - expression: '{count(#3,"mosfetOpen","like")}=2' + expression: 'count(/Morningstar ProStar MPPT SNMP/status.alarms[alarms.0],#3,"like","mosfetOpen")=2' name: 'Status: Device has "mosfetOpen" alarm flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING - - expression: '{count(#3,"p12SupplyOutOfRange","like")}=2' + expression: 'count(/Morningstar ProStar MPPT SNMP/status.alarms[alarms.0],#3,"like","p12SupplyOutOfRange")=2' name: 'Status: Device has "p12SupplyOutOfRange" alarm flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING - - expression: '{count(#3,"p33SupplyOutOfRange","like")}=2' + expression: 'count(/Morningstar ProStar MPPT SNMP/status.alarms[alarms.0],#3,"like","p33SupplyOutOfRange")=2' name: 'Status: Device has "p33SupplyOutOfRange" alarm flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING - - expression: '{count(#3,"rtsDisconnected","like")}=2' + expression: 'count(/Morningstar ProStar MPPT SNMP/status.alarms[alarms.0],#3,"like","rtsDisconnected")=2' name: 'Status: Device has "rtsDisconnected" alarm flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING - - expression: '{count(#3,"rtsShorted","like")}=2' + expression: 'count(/Morningstar ProStar MPPT SNMP/status.alarms[alarms.0],#3,"like","rtsShorted")=2' name: 'Status: Device has "rtsShorted" alarm flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING - - expression: '{count(#3,"tb5v","like")}=2' + expression: 'count(/Morningstar ProStar MPPT SNMP/status.alarms[alarms.0],#3,"like","tb5v")=2' name: 'Status: Device has "tb5v" alarm flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING - - expression: '{count(#3,"uncalibrated","like")}=2' + expression: 'count(/Morningstar ProStar MPPT SNMP/status.alarms[alarms.0],#3,"like","uncalibrated")=2' name: 'Status: Device has "uncalibrated" alarm flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING @@ -581,62 +581,62 @@ zabbix_export: value: Status triggers: - - expression: '{count(#3,"arrayHvd","like")}=2' + expression: 'count(/Morningstar ProStar MPPT SNMP/status.array_faults[arrayFaults.0],#3,"like","arrayHvd")=2' name: 'Status: Device has "arrayHvd" array faults flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: HIGH - - expression: '{count(#3,"batteryHvd","like")}=2' + expression: 'count(/Morningstar ProStar MPPT SNMP/status.array_faults[arrayFaults.0],#3,"like","batteryHvd")=2' name: 'Status: Device has "batteryHvd" array faults flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: HIGH - - expression: '{count(#3,"batteryLowVoltageDisconnect","like")}=2' + expression: 'count(/Morningstar ProStar MPPT SNMP/status.array_faults[arrayFaults.0],#3,"like","batteryLowVoltageDisconnect")=2' name: 'Status: Device has "batteryLowVoltageDisconnect" array faults flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: HIGH - - expression: '{count(#3,"customSettingsEdit","like")}=2' + expression: 'count(/Morningstar ProStar MPPT SNMP/status.array_faults[arrayFaults.0],#3,"like","customSettingsEdit")=2' name: 'Status: Device has "customSettingsEdit" array faults flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: HIGH - - expression: '{count(#3,"dipSwitchChanged","like")}=2' + expression: 'count(/Morningstar ProStar MPPT SNMP/status.array_faults[arrayFaults.0],#3,"like","dipSwitchChanged")=2' name: 'Status: Device has "dipSwitchChanged" array faults flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: HIGH - - expression: '{count(#3,"localTempSensorDamaged","like")}=2' + expression: 'count(/Morningstar ProStar MPPT SNMP/status.array_faults[arrayFaults.0],#3,"like","localTempSensorDamaged")=2' name: 'Status: Device has "localTempSensorDamaged" array faults flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: HIGH - - expression: '{count(#3,"mosfetSShorted","like")}=2' + expression: 'count(/Morningstar ProStar MPPT SNMP/status.array_faults[arrayFaults.0],#3,"like","mosfetSShorted")=2' name: 'Status: Device has "mosfetSShorted" array faults flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: HIGH - - expression: '{count(#3,"overcurrent","like")}=2' + expression: 'count(/Morningstar ProStar MPPT SNMP/status.array_faults[arrayFaults.0],#3,"like","overcurrent")=2' name: 'Status: Device has "overcurrent" array faults flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: HIGH - - expression: '{count(#3,"rtsNoLongerValid","like")}=2' + expression: 'count(/Morningstar ProStar MPPT SNMP/status.array_faults[arrayFaults.0],#3,"like","rtsNoLongerValid")=2' name: 'Status: Device has "rtsNoLongerValid" array faults flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: HIGH - - expression: '{count(#3,"rtsShorted","like")}=2' + expression: 'count(/Morningstar ProStar MPPT SNMP/status.array_faults[arrayFaults.0],#3,"like","rtsShorted")=2' name: 'Status: Device has "rtsShorted" array faults flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: HIGH - - expression: '{count(#3,"slaveTimeout","like")}=2' + expression: 'count(/Morningstar ProStar MPPT SNMP/status.array_faults[arrayFaults.0],#3,"like","slaveTimeout")=2' name: 'Status: Device has "slaveTimeout" array faults flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: HIGH - - expression: '{count(#3,"software","like")}=2' + expression: 'count(/Morningstar ProStar MPPT SNMP/status.array_faults[arrayFaults.0],#3,"like","software")=2' name: 'Status: Device has "software" array faults flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: HIGH @@ -688,42 +688,42 @@ zabbix_export: value: Status triggers: - - expression: '{count(#3,"customSettingsEdit","like")}=2' + expression: 'count(/Morningstar ProStar MPPT SNMP/status.load_faults[loadFaults.0],#3,"like","customSettingsEdit")=2' name: 'Status: Device has "customSettingsEdit" load faults flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: HIGH - - expression: '{count(#3,"dipSwitchChanged","like")}=2' + expression: 'count(/Morningstar ProStar MPPT SNMP/status.load_faults[loadFaults.0],#3,"like","dipSwitchChanged")=2' name: 'Status: Device has "dipSwitchChanged" load faults flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: HIGH - - expression: '{count(#3,"externalShortCircuit","like")}=2' + expression: 'count(/Morningstar ProStar MPPT SNMP/status.load_faults[loadFaults.0],#3,"like","externalShortCircuit")=2' name: 'Status: Device has "externalShortCircuit" load faults flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: HIGH - - expression: '{count(#3,"highTempDisconnect","like")}=2' + expression: 'count(/Morningstar ProStar MPPT SNMP/status.load_faults[loadFaults.0],#3,"like","highTempDisconnect")=2' name: 'Status: Device has "highTempDisconnect" load faults flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: HIGH - - expression: '{count(#3,"loadHvd","like")}=2' + expression: 'count(/Morningstar ProStar MPPT SNMP/status.load_faults[loadFaults.0],#3,"like","loadHvd")=2' name: 'Status: Device has "loadHvd" load faults flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: HIGH - - expression: '{count(#3,"mosfetShorted","like")}=2' + expression: 'count(/Morningstar ProStar MPPT SNMP/status.load_faults[loadFaults.0],#3,"like","mosfetShorted")=2' name: 'Status: Device has "mosfetShorted" load faults flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: HIGH - - expression: '{count(#3,"overcurrent","like")}=2' + expression: 'count(/Morningstar ProStar MPPT SNMP/status.load_faults[loadFaults.0],#3,"like","overcurrent")=2' name: 'Status: Device has "overcurrent" load faults flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: HIGH - - expression: '{count(#3,"software","like")}=2' + expression: 'count(/Morningstar ProStar MPPT SNMP/status.load_faults[loadFaults.0],#3,"like","software")=2' name: 'Status: Device has "software" load faults flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: HIGH @@ -746,13 +746,13 @@ zabbix_export: value: Status triggers: - - expression: '{last()}<10m' + expression: 'last(/Morningstar ProStar MPPT SNMP/status.uptime)<10m' name: 'Status: Device has been restarted (uptime < 10m)' priority: INFO description: 'Uptime is less than 10 minutes' manual_close: 'YES' - - expression: '{nodata(5m)}=1' + expression: 'nodata(/Morningstar ProStar MPPT SNMP/status.uptime,5m)=1' name: 'Status: Failed to fetch data (or no data for 5m)' priority: WARNING description: 'Zabbix has not received data for items for the last 5 minutes' @@ -824,33 +824,33 @@ zabbix_export: value: Temperature triggers: - - expression: '{min(5m)}>{$BATTERY.TEMP.MAX.CRIT}' + expression: 'min(/Morningstar ProStar MPPT SNMP/temp.battery[batteryTemperature.0],5m)>{$BATTERY.TEMP.MAX.CRIT}' name: 'Temperature: Critically high battery temperature (over {$BATTERY.TEMP.MAX.CRIT}C for 5m)' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: HIGH - - expression: '{max(5m)}<{$BATTERY.TEMP.MIN.CRIT}' + expression: 'max(/Morningstar ProStar MPPT SNMP/temp.battery[batteryTemperature.0],5m)<{$BATTERY.TEMP.MIN.CRIT}' name: 'Temperature: Critically low battery temperature (below {$BATTERY.TEMP.MIN.WARN}C for 5m)' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: HIGH - - expression: '{min(5m)}>{$BATTERY.TEMP.MAX.WARN}' + expression: 'min(/Morningstar ProStar MPPT SNMP/temp.battery[batteryTemperature.0],5m)>{$BATTERY.TEMP.MAX.WARN}' name: 'Temperature: High battery temperature (over {$BATTERY.TEMP.MAX.WARN}C for 5m)' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING dependencies: - name: 'Temperature: Critically high battery temperature (over {$BATTERY.TEMP.MAX.CRIT}C for 5m)' - expression: '{Morningstar ProStar MPPT SNMP:temp.battery[batteryTemperature.0].min(5m)}>{$BATTERY.TEMP.MAX.CRIT}' + expression: 'min(/Morningstar ProStar MPPT SNMP/temp.battery[batteryTemperature.0],5m)>{$BATTERY.TEMP.MAX.CRIT}' - - expression: '{max(5m)}<{$BATTERY.TEMP.MIN.WARN}' + expression: 'max(/Morningstar ProStar MPPT SNMP/temp.battery[batteryTemperature.0],5m)<{$BATTERY.TEMP.MIN.WARN}' name: 'Temperature: Low battery temperature (below {$BATTERY.TEMP.MIN.WARN}C for 5m)' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING dependencies: - name: 'Temperature: Critically low battery temperature (below {$BATTERY.TEMP.MIN.WARN}C for 5m)' - expression: '{Morningstar ProStar MPPT SNMP:temp.battery[batteryTemperature.0].max(5m)}<{$BATTERY.TEMP.MIN.CRIT}' + expression: 'max(/Morningstar ProStar MPPT SNMP/temp.battery[batteryTemperature.0],5m)<{$BATTERY.TEMP.MIN.CRIT}' - name: 'Temperature: Heatsink' type: SNMP_AGENT @@ -901,33 +901,33 @@ zabbix_export: value: Battery trigger_prototypes: - - expression: '{min(5m)}>{#VOLTAGE.MAX.CRIT}' + expression: 'min(/Morningstar ProStar MPPT SNMP/battery.voltage[batteryTerminalVoltage.0{#SINGLETON}],5m)>{#VOLTAGE.MAX.CRIT}' name: 'Battery: Critically high battery voltage (over {#VOLTAGE.MAX.CRIT}V for 5m)' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: HIGH - - expression: '{max(5m)}<{#VOLTAGE.MIN.CRIT}' + expression: 'max(/Morningstar ProStar MPPT SNMP/battery.voltage[batteryTerminalVoltage.0{#SINGLETON}],5m)<{#VOLTAGE.MIN.CRIT}' name: 'Battery: Critically low battery voltage (below {#VOLTAGE.MIN.CRIT}V for 5m)' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: HIGH - - expression: '{min(5m)}>{#VOLTAGE.MAX.WARN}' + expression: 'min(/Morningstar ProStar MPPT SNMP/battery.voltage[batteryTerminalVoltage.0{#SINGLETON}],5m)>{#VOLTAGE.MAX.WARN}' name: 'Battery: High battery voltage (over {#VOLTAGE.MAX.WARN}V for 5m)' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING dependencies: - name: 'Battery: Critically high battery voltage (over {#VOLTAGE.MAX.CRIT}V for 5m)' - expression: '{Morningstar ProStar MPPT SNMP:battery.voltage[batteryTerminalVoltage.0{#SINGLETON}].min(5m)}>{#VOLTAGE.MAX.CRIT}' + expression: 'min(/Morningstar ProStar MPPT SNMP/battery.voltage[batteryTerminalVoltage.0{#SINGLETON}],5m)>{#VOLTAGE.MAX.CRIT}' - - expression: '{max(5m)}<{#VOLTAGE.MIN.WARN}' + expression: 'max(/Morningstar ProStar MPPT SNMP/battery.voltage[batteryTerminalVoltage.0{#SINGLETON}],5m)<{#VOLTAGE.MIN.WARN}' name: 'Battery: Low battery voltage (below {#VOLTAGE.MIN.WARN}V for 5m)' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING dependencies: - name: 'Battery: Critically low battery voltage (below {#VOLTAGE.MIN.CRIT}V for 5m)' - expression: '{Morningstar ProStar MPPT SNMP:battery.voltage[batteryTerminalVoltage.0{#SINGLETON}].max(5m)}<{#VOLTAGE.MIN.CRIT}' + expression: 'max(/Morningstar ProStar MPPT SNMP/battery.voltage[batteryTerminalVoltage.0{#SINGLETON}],5m)<{#VOLTAGE.MIN.CRIT}' graph_prototypes: - name: 'Voltage: Battery/Load{#SINGLETON}' diff --git a/templates/net/morningstar_snmp/prostar_pwm_snmp/prostar_pwm_snmp.yaml b/templates/net/morningstar_snmp/prostar_pwm_snmp/prostar_pwm_snmp.yaml index 186fffdb7d9..479df26b0f4 100644 --- a/templates/net/morningstar_snmp/prostar_pwm_snmp/prostar_pwm_snmp.yaml +++ b/templates/net/morningstar_snmp/prostar_pwm_snmp/prostar_pwm_snmp.yaml @@ -1,6 +1,6 @@ zabbix_export: version: '5.4' - date: '2021-02-23T11:04:29Z' + date: '2021-05-09T00:00:00Z' groups: - name: Templates/Modules @@ -103,19 +103,19 @@ zabbix_export: value: Battery triggers: - - expression: '{last()}={$CHARGE.STATE.CRIT}' + expression: 'last(/Morningstar ProStar PWM SNMP/charge.state[chargeState.0])={$CHARGE.STATE.CRIT}' name: 'Battery: Device charge in critical state' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: HIGH - - expression: '{last()}={$CHARGE.STATE.WARN}' + expression: 'last(/Morningstar ProStar PWM SNMP/charge.state[chargeState.0])={$CHARGE.STATE.WARN}' name: 'Battery: Device charge in warning state' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING dependencies: - name: 'Battery: Device charge in critical state' - expression: '{Morningstar ProStar PWM SNMP:charge.state[chargeState.0].last()}={$CHARGE.STATE.CRIT}' + expression: 'last(/Morningstar ProStar PWM SNMP/charge.state[chargeState.0])={$CHARGE.STATE.CRIT}' - name: 'Counter: Charge Amp-hours' type: SNMP_AGENT @@ -236,19 +236,19 @@ zabbix_export: value: Load triggers: - - expression: '{last()}={$LOAD.STATE.CRIT:"lvd"} or {last()}={$LOAD.STATE.CRIT:"fault"}' + expression: 'last(/Morningstar ProStar PWM SNMP/load.state[loadState.0])={$LOAD.STATE.CRIT:"lvd"} or last(/Morningstar ProStar PWM SNMP/load.state[loadState.0])={$LOAD.STATE.CRIT:"fault"}' name: 'Load: Device load in critical state' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: HIGH - - expression: '{last()}={$LOAD.STATE.WARN:"lvdWarning"} or {last()}={$LOAD.STATE.WARN:"override"}' + expression: 'last(/Morningstar ProStar PWM SNMP/load.state[loadState.0])={$LOAD.STATE.WARN:"lvdWarning"} or last(/Morningstar ProStar PWM SNMP/load.state[loadState.0])={$LOAD.STATE.WARN:"override"}' name: 'Load: Device load in warning state' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING dependencies: - name: 'Load: Device load in critical state' - expression: '{Morningstar ProStar PWM SNMP:load.state[loadState.0].last()}={$LOAD.STATE.CRIT:"lvd"} or {Morningstar ProStar PWM SNMP:load.state[loadState.0].last()}={$LOAD.STATE.CRIT:"fault"}' + expression: 'last(/Morningstar ProStar PWM SNMP/load.state[loadState.0])={$LOAD.STATE.CRIT:"lvd"} or last(/Morningstar ProStar PWM SNMP/load.state[loadState.0])={$LOAD.STATE.CRIT:"fault"}' - name: 'Load: Voltage' type: SNMP_AGENT @@ -331,112 +331,112 @@ zabbix_export: value: Status triggers: - - expression: '{count(#3,"arrayCurrentOffset","like")}=2' + expression: 'count(/Morningstar ProStar PWM SNMP/status.alarms[alarms.0],#3,"like","arrayCurrentOffset")=2' name: 'Status: Device has "arrayCurrentOffset" alarm flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING - - expression: '{count(#3,"batterySenseDisconnected","like")}=2' + expression: 'count(/Morningstar ProStar PWM SNMP/status.alarms[alarms.0],#3,"like","batterySenseDisconnected")=2' name: 'Status: Device has "batterySenseDisconnected" alarm flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING - - expression: '{count(#3,"batterySenseOutOfRange","like")}=2' + expression: 'count(/Morningstar ProStar PWM SNMP/status.alarms[alarms.0],#3,"like","batterySenseOutOfRange")=2' name: 'Status: Device has "batterySenseOutOfRange" alarm flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING - - expression: '{count(#3,"batteryTempOutOfRange","like")}=2' + expression: 'count(/Morningstar ProStar PWM SNMP/status.alarms[alarms.0],#3,"like","batteryTempOutOfRange")=2' name: 'Status: Device has "batteryTempOutOfRange" alarm flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING - - expression: '{count(#3,"controllerReset","like")}=2' + expression: 'count(/Morningstar ProStar PWM SNMP/status.alarms[alarms.0],#3,"like","controllerReset")=2' name: 'Status: Device has "controllerReset" alarm flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING - - expression: '{count(#3,"currentLimit","like")}=2' + expression: 'count(/Morningstar ProStar PWM SNMP/status.alarms[alarms.0],#3,"like","currentLimit")=2' name: 'Status: Device has "currentLimit" alarm flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING - - expression: '{count(#3,"currentMeasurementError","like")}=2' + expression: 'count(/Morningstar ProStar PWM SNMP/status.alarms[alarms.0],#3,"like","currentMeasurementError")=2' name: 'Status: Device has "currentMeasurementError" alarm flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING - - expression: '{count(#3,"eepromAccessFailure","like")}=2' + expression: 'count(/Morningstar ProStar PWM SNMP/status.alarms[alarms.0],#3,"like","eepromAccessFailure")=2' name: 'Status: Device has "eepromAccessFailure" alarm flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING - - expression: '{count(#3,"fp10SupplyOutOfRange","like")}=2' + expression: 'count(/Morningstar ProStar PWM SNMP/status.alarms[alarms.0],#3,"like","fp10SupplyOutOfRange")=2' name: 'Status: Device has "fp10SupplyOutOfRange" alarm flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING - - expression: '{count(#3,"heatsinkTempLimit","like")}=2' + expression: 'count(/Morningstar ProStar PWM SNMP/status.alarms[alarms.0],#3,"like","heatsinkTempLimit")=2' name: 'Status: Device has "heatsinkTempLimit" alarm flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING - - expression: '{count(#3,"heatsinkTempSensorOpen","like")}=2' + expression: 'count(/Morningstar ProStar PWM SNMP/status.alarms[alarms.0],#3,"like","heatsinkTempSensorOpen")=2' name: 'Status: Device has "heatsinkTempSensorOpen" alarm flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING - - expression: '{count(#3,"heatsinkTempSensorShorted","like")}=2' + expression: 'count(/Morningstar ProStar PWM SNMP/status.alarms[alarms.0],#3,"like","heatsinkTempSensorShorted")=2' name: 'Status: Device has "heatsinkTempSensorShorted" alarm flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING - - expression: '{count(#3,"hightInputVoltageLimit","like")}=2' + expression: 'count(/Morningstar ProStar PWM SNMP/status.alarms[alarms.0],#3,"like","hightInputVoltageLimit")=2' name: 'Status: Device has "hightInputVoltageLimit" alarm flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING - - expression: '{count(#3,"loadCurrentOffset","like")}=2' + expression: 'count(/Morningstar ProStar PWM SNMP/status.alarms[alarms.0],#3,"like","loadCurrentOffset")=2' name: 'Status: Device has "loadCurrentOffset" alarm flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING - - expression: '{count(#3,"loadLvd","like")}=2' + expression: 'count(/Morningstar ProStar PWM SNMP/status.alarms[alarms.0],#3,"like","loadLvd")=2' name: 'Status: Device has "loadLvd" alarm flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING - - expression: '{count(#3,"logTimeout","like")}=2' + expression: 'count(/Morningstar ProStar PWM SNMP/status.alarms[alarms.0],#3,"like","logTimeout")=2' name: 'Status: Device has "logTimeout" alarm flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING - - expression: '{count(#3,"mosfetOpen","like")}=2' + expression: 'count(/Morningstar ProStar PWM SNMP/status.alarms[alarms.0],#3,"like","mosfetOpen")=2' name: 'Status: Device has "mosfetOpen" alarm flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING - - expression: '{count(#3,"p12SupplyOutOfRange","like")}=2' + expression: 'count(/Morningstar ProStar PWM SNMP/status.alarms[alarms.0],#3,"like","p12SupplyOutOfRange")=2' name: 'Status: Device has "p12SupplyOutOfRange" alarm flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING - - expression: '{count(#3,"p33SupplyOutOfRange","like")}=2' + expression: 'count(/Morningstar ProStar PWM SNMP/status.alarms[alarms.0],#3,"like","p33SupplyOutOfRange")=2' name: 'Status: Device has "p33SupplyOutOfRange" alarm flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING - - expression: '{count(#3,"rtsDisconnected","like")}=2' + expression: 'count(/Morningstar ProStar PWM SNMP/status.alarms[alarms.0],#3,"like","rtsDisconnected")=2' name: 'Status: Device has "rtsDisconnected" alarm flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING - - expression: '{count(#3,"rtsShorted","like")}=2' + expression: 'count(/Morningstar ProStar PWM SNMP/status.alarms[alarms.0],#3,"like","rtsShorted")=2' name: 'Status: Device has "rtsShorted" alarm flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING - - expression: '{count(#3,"uncalibrated","like")}=2' + expression: 'count(/Morningstar ProStar PWM SNMP/status.alarms[alarms.0],#3,"like","uncalibrated")=2' name: 'Status: Device has "uncalibrated" alarm flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING @@ -493,67 +493,67 @@ zabbix_export: value: Status triggers: - - expression: '{count(#3,"arrayHvd","like")}=2' + expression: 'count(/Morningstar ProStar PWM SNMP/status.array_faults[arrayFaults.0],#3,"like","arrayHvd")=2' name: 'Status: Device has "arrayHvd" array faults flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: HIGH - - expression: '{count(#3,"batteryHvd","like")}=2' + expression: 'count(/Morningstar ProStar PWM SNMP/status.array_faults[arrayFaults.0],#3,"like","batteryHvd")=2' name: 'Status: Device has "batteryHvd" array faults flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: HIGH - - expression: '{count(#3,"batteryLowVoltageDisconnect","like")}=2' + expression: 'count(/Morningstar ProStar PWM SNMP/status.array_faults[arrayFaults.0],#3,"like","batteryLowVoltageDisconnect")=2' name: 'Status: Device has "batteryLowVoltageDisconnect" array faults flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: HIGH - - expression: '{count(#3,"customSettingsEdit","like")}=2' + expression: 'count(/Morningstar ProStar PWM SNMP/status.array_faults[arrayFaults.0],#3,"like","customSettingsEdit")=2' name: 'Status: Device has "customSettingsEdit" array faults flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: HIGH - - expression: '{count(#3,"dipSwitchChanged","like")}=2' + expression: 'count(/Morningstar ProStar PWM SNMP/status.array_faults[arrayFaults.0],#3,"like","dipSwitchChanged")=2' name: 'Status: Device has "dipSwitchChanged" array faults flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: HIGH - - expression: '{count(#3,"localTempSensorDamaged","like")}=2' + expression: 'count(/Morningstar ProStar PWM SNMP/status.array_faults[arrayFaults.0],#3,"like","localTempSensorDamaged")=2' name: 'Status: Device has "localTempSensorDamaged" array faults flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: HIGH - - expression: '{count(#3,"mosfetSShorted","like")}=2' + expression: 'count(/Morningstar ProStar PWM SNMP/status.array_faults[arrayFaults.0],#3,"like","mosfetSShorted")=2' name: 'Status: Device has "mosfetSShorted" array faults flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: HIGH - - expression: '{count(#3,"overcurrent","like")}=2' + expression: 'count(/Morningstar ProStar PWM SNMP/status.array_faults[arrayFaults.0],#3,"like","overcurrent")=2' name: 'Status: Device has "overcurrent" array faults flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: HIGH - - expression: '{count(#3,"p3Fault","like")}=2' + expression: 'count(/Morningstar ProStar PWM SNMP/status.array_faults[arrayFaults.0],#3,"like","p3Fault")=2' name: 'Status: Device has "p3Fault" array faults flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: HIGH - - expression: '{count(#3,"rtsNoLongerValid","like")}=2' + expression: 'count(/Morningstar ProStar PWM SNMP/status.array_faults[arrayFaults.0],#3,"like","rtsNoLongerValid")=2' name: 'Status: Device has "rtsNoLongerValid" array faults flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: HIGH - - expression: '{count(#3,"rtsShorted","like")}=2' + expression: 'count(/Morningstar ProStar PWM SNMP/status.array_faults[arrayFaults.0],#3,"like","rtsShorted")=2' name: 'Status: Device has "rtsShorted" array faults flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: HIGH - - expression: '{count(#3,"slaveTimeout","like")}=2' + expression: 'count(/Morningstar ProStar PWM SNMP/status.array_faults[arrayFaults.0],#3,"like","slaveTimeout")=2' name: 'Status: Device has "slaveTimeout" array faults flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: HIGH - - expression: '{count(#3,"software","like")}=2' + expression: 'count(/Morningstar ProStar PWM SNMP/status.array_faults[arrayFaults.0],#3,"like","software")=2' name: 'Status: Device has "software" array faults flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: HIGH @@ -606,47 +606,47 @@ zabbix_export: value: Status triggers: - - expression: '{count(#3,"customSettingsEdit","like")}=2' + expression: 'count(/Morningstar ProStar PWM SNMP/status.load_faults[loadFaults.0],#3,"like","customSettingsEdit")=2' name: 'Status: Device has "customSettingsEdit" load faults flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: HIGH - - expression: '{count(#3,"dipSwitchChanged","like")}=2' + expression: 'count(/Morningstar ProStar PWM SNMP/status.load_faults[loadFaults.0],#3,"like","dipSwitchChanged")=2' name: 'Status: Device has "dipSwitchChanged" load faults flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: HIGH - - expression: '{count(#3,"externalShortCircuit","like")}=2' + expression: 'count(/Morningstar ProStar PWM SNMP/status.load_faults[loadFaults.0],#3,"like","externalShortCircuit")=2' name: 'Status: Device has "externalShortCircuit" load faults flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: HIGH - - expression: '{count(#3,"highTempDisconnect","like")}=2' + expression: 'count(/Morningstar ProStar PWM SNMP/status.load_faults[loadFaults.0],#3,"like","highTempDisconnect")=2' name: 'Status: Device has "highTempDisconnect" load faults flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: HIGH - - expression: '{count(#3,"loadHvd","like")}=2' + expression: 'count(/Morningstar ProStar PWM SNMP/status.load_faults[loadFaults.0],#3,"like","loadHvd")=2' name: 'Status: Device has "loadHvd" load faults flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: HIGH - - expression: '{count(#3,"mosfetShorted","like")}=2' + expression: 'count(/Morningstar ProStar PWM SNMP/status.load_faults[loadFaults.0],#3,"like","mosfetShorted")=2' name: 'Status: Device has "mosfetShorted" load faults flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: HIGH - - expression: '{count(#3,"overcurrent","like")}=2' + expression: 'count(/Morningstar ProStar PWM SNMP/status.load_faults[loadFaults.0],#3,"like","overcurrent")=2' name: 'Status: Device has "overcurrent" load faults flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: HIGH - - expression: '{count(#3,"p3Fault","like")}=2' + expression: 'count(/Morningstar ProStar PWM SNMP/status.load_faults[loadFaults.0],#3,"like","p3Fault")=2' name: 'Status: Device has "p3Fault" load faults flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: HIGH - - expression: '{count(#3,"software","like")}=2' + expression: 'count(/Morningstar ProStar PWM SNMP/status.load_faults[loadFaults.0],#3,"like","software")=2' name: 'Status: Device has "software" load faults flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: HIGH @@ -669,13 +669,13 @@ zabbix_export: value: Status triggers: - - expression: '{last()}<10m' + expression: 'last(/Morningstar ProStar PWM SNMP/status.uptime)<10m' name: 'Status: Device has been restarted (uptime < 10m)' priority: INFO description: 'Uptime is less than 10 minutes' manual_close: 'YES' - - expression: '{nodata(5m)}=1' + expression: 'nodata(/Morningstar ProStar PWM SNMP/status.uptime,5m)=1' name: 'Status: Failed to fetch data (or no data for 5m)' priority: WARNING description: 'Zabbix has not received data for items for the last 5 minutes' @@ -744,33 +744,33 @@ zabbix_export: value: Temperature triggers: - - expression: '{min(5m)}>{$BATTERY.TEMP.MAX.CRIT}' + expression: 'min(/Morningstar ProStar PWM SNMP/temp.battery[batteryTemperature.0],5m)>{$BATTERY.TEMP.MAX.CRIT}' name: 'Temperature: Critically high battery temperature (over {$BATTERY.TEMP.MAX.CRIT}C for 5m)' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: HIGH - - expression: '{max(5m)}<{$BATTERY.TEMP.MIN.CRIT}' + expression: 'max(/Morningstar ProStar PWM SNMP/temp.battery[batteryTemperature.0],5m)<{$BATTERY.TEMP.MIN.CRIT}' name: 'Temperature: Critically low battery temperature (below {$BATTERY.TEMP.MIN.WARN}C for 5m)' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: HIGH - - expression: '{min(5m)}>{$BATTERY.TEMP.MAX.WARN}' + expression: 'min(/Morningstar ProStar PWM SNMP/temp.battery[batteryTemperature.0],5m)>{$BATTERY.TEMP.MAX.WARN}' name: 'Temperature: High battery temperature (over {$BATTERY.TEMP.MAX.WARN}C for 5m)' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING dependencies: - name: 'Temperature: Critically high battery temperature (over {$BATTERY.TEMP.MAX.CRIT}C for 5m)' - expression: '{Morningstar ProStar PWM SNMP:temp.battery[batteryTemperature.0].min(5m)}>{$BATTERY.TEMP.MAX.CRIT}' + expression: 'min(/Morningstar ProStar PWM SNMP/temp.battery[batteryTemperature.0],5m)>{$BATTERY.TEMP.MAX.CRIT}' - - expression: '{max(5m)}<{$BATTERY.TEMP.MIN.WARN}' + expression: 'max(/Morningstar ProStar PWM SNMP/temp.battery[batteryTemperature.0],5m)<{$BATTERY.TEMP.MIN.WARN}' name: 'Temperature: Low battery temperature (below {$BATTERY.TEMP.MIN.WARN}C for 5m)' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING dependencies: - name: 'Temperature: Critically low battery temperature (below {$BATTERY.TEMP.MIN.WARN}C for 5m)' - expression: '{Morningstar ProStar PWM SNMP:temp.battery[batteryTemperature.0].max(5m)}<{$BATTERY.TEMP.MIN.CRIT}' + expression: 'max(/Morningstar ProStar PWM SNMP/temp.battery[batteryTemperature.0],5m)<{$BATTERY.TEMP.MIN.CRIT}' - name: 'Temperature: Heatsink' type: SNMP_AGENT @@ -816,33 +816,33 @@ zabbix_export: value: Battery trigger_prototypes: - - expression: '{min(5m)}>{#VOLTAGE.MAX.CRIT}' + expression: 'min(/Morningstar ProStar PWM SNMP/battery.voltage[batteryTerminalVoltage.0{#SINGLETON}],5m)>{#VOLTAGE.MAX.CRIT}' name: 'Battery: Critically high battery voltage (over {#VOLTAGE.MAX.CRIT}V for 5m)' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: HIGH - - expression: '{max(5m)}<{#VOLTAGE.MIN.CRIT}' + expression: 'max(/Morningstar ProStar PWM SNMP/battery.voltage[batteryTerminalVoltage.0{#SINGLETON}],5m)<{#VOLTAGE.MIN.CRIT}' name: 'Battery: Critically low battery voltage (below {#VOLTAGE.MIN.CRIT}V for 5m)' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: HIGH - - expression: '{min(5m)}>{#VOLTAGE.MAX.WARN}' + expression: 'min(/Morningstar ProStar PWM SNMP/battery.voltage[batteryTerminalVoltage.0{#SINGLETON}],5m)>{#VOLTAGE.MAX.WARN}' name: 'Battery: High battery voltage (over {#VOLTAGE.MAX.WARN}V for 5m)' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING dependencies: - name: 'Battery: Critically high battery voltage (over {#VOLTAGE.MAX.CRIT}V for 5m)' - expression: '{Morningstar ProStar PWM SNMP:battery.voltage[batteryTerminalVoltage.0{#SINGLETON}].min(5m)}>{#VOLTAGE.MAX.CRIT}' + expression: 'min(/Morningstar ProStar PWM SNMP/battery.voltage[batteryTerminalVoltage.0{#SINGLETON}],5m)>{#VOLTAGE.MAX.CRIT}' - - expression: '{max(5m)}<{#VOLTAGE.MIN.WARN}' + expression: 'max(/Morningstar ProStar PWM SNMP/battery.voltage[batteryTerminalVoltage.0{#SINGLETON}],5m)<{#VOLTAGE.MIN.WARN}' name: 'Battery: Low battery voltage (below {#VOLTAGE.MIN.WARN}V for 5m)' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING dependencies: - name: 'Battery: Critically low battery voltage (below {#VOLTAGE.MIN.CRIT}V for 5m)' - expression: '{Morningstar ProStar PWM SNMP:battery.voltage[batteryTerminalVoltage.0{#SINGLETON}].max(5m)}<{#VOLTAGE.MIN.CRIT}' + expression: 'max(/Morningstar ProStar PWM SNMP/battery.voltage[batteryTerminalVoltage.0{#SINGLETON}],5m)<{#VOLTAGE.MIN.CRIT}' graph_prototypes: - name: 'Voltage: Battery/Load{#SINGLETON}' diff --git a/templates/net/morningstar_snmp/sunsaver_mppt_snmp/sunsaver_mppt_snmp.yaml b/templates/net/morningstar_snmp/sunsaver_mppt_snmp/sunsaver_mppt_snmp.yaml index 16fe5f1b5d3..a2f8434eddb 100644 --- a/templates/net/morningstar_snmp/sunsaver_mppt_snmp/sunsaver_mppt_snmp.yaml +++ b/templates/net/morningstar_snmp/sunsaver_mppt_snmp/sunsaver_mppt_snmp.yaml @@ -1,6 +1,6 @@ zabbix_export: version: '5.4' - date: '2021-02-23T11:04:27Z' + date: '2021-05-09T00:00:00Z' groups: - name: Templates/Modules @@ -215,19 +215,19 @@ zabbix_export: value: Battery triggers: - - expression: '{last()}={$CHARGE.STATE.CRIT}' + expression: 'last(/Morningstar SunSaver MPPT SNMP/charge.state[chargeState.0])={$CHARGE.STATE.CRIT}' name: 'Battery: Device charge in critical state' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: HIGH - - expression: '{last()}={$CHARGE.STATE.WARN}' + expression: 'last(/Morningstar SunSaver MPPT SNMP/charge.state[chargeState.0])={$CHARGE.STATE.WARN}' name: 'Battery: Device charge in warning state' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING dependencies: - name: 'Battery: Device charge in critical state' - expression: '{Morningstar SunSaver MPPT SNMP:charge.state[chargeState.0].last()}={$CHARGE.STATE.CRIT}' + expression: 'last(/Morningstar SunSaver MPPT SNMP/charge.state[chargeState.0])={$CHARGE.STATE.CRIT}' - name: 'Counter: Charge Amp-hours' type: SNMP_AGENT @@ -351,19 +351,19 @@ zabbix_export: value: Load triggers: - - expression: '{last()}={$LOAD.STATE.CRIT:"lvd"} or {last()}={$LOAD.STATE.CRIT:"fault"}' + expression: 'last(/Morningstar SunSaver MPPT SNMP/load.state[loadState.0])={$LOAD.STATE.CRIT:"lvd"} or last(/Morningstar SunSaver MPPT SNMP/load.state[loadState.0])={$LOAD.STATE.CRIT:"fault"}' name: 'Load: Device load in critical state' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: HIGH - - expression: '{last()}={$LOAD.STATE.WARN:"lvdWarning"} or {last()}={$LOAD.STATE.WARN:"override"}' + expression: 'last(/Morningstar SunSaver MPPT SNMP/load.state[loadState.0])={$LOAD.STATE.WARN:"lvdWarning"} or last(/Morningstar SunSaver MPPT SNMP/load.state[loadState.0])={$LOAD.STATE.WARN:"override"}' name: 'Load: Device load in warning state' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING dependencies: - name: 'Load: Device load in critical state' - expression: '{Morningstar SunSaver MPPT SNMP:load.state[loadState.0].last()}={$LOAD.STATE.CRIT:"lvd"} or {Morningstar SunSaver MPPT SNMP:load.state[loadState.0].last()}={$LOAD.STATE.CRIT:"fault"}' + expression: 'last(/Morningstar SunSaver MPPT SNMP/load.state[loadState.0])={$LOAD.STATE.CRIT:"lvd"} or last(/Morningstar SunSaver MPPT SNMP/load.state[loadState.0])={$LOAD.STATE.CRIT:"fault"}' - name: 'Load: Voltage' type: SNMP_AGENT @@ -451,67 +451,67 @@ zabbix_export: value: Status triggers: - - expression: '{count(#3,"currentLimit","like")}=2' + expression: 'count(/Morningstar SunSaver MPPT SNMP/status.alarms[alarms.0],#3,"like","currentLimit")=2' name: 'Status: Device has "currentLimit" alarm flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING - - expression: '{count(#3,"currentOffset","like")}=2' + expression: 'count(/Morningstar SunSaver MPPT SNMP/status.alarms[alarms.0],#3,"like","currentOffset")=2' name: 'Status: Device has "currentOffset" alarm flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING - - expression: '{count(#3,"heatsinkTempSensorOpen","like")}=2' + expression: 'count(/Morningstar SunSaver MPPT SNMP/status.alarms[alarms.0],#3,"like","heatsinkTempSensorOpen")=2' name: 'Status: Device has "heatsinkTempSensorOpen" alarm flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING - - expression: '{count(#3,"heatsinkTempSensorShorted","like")}=2' + expression: 'count(/Morningstar SunSaver MPPT SNMP/status.alarms[alarms.0],#3,"like","heatsinkTempSensorShorted")=2' name: 'Status: Device has "heatsinkTempSensorShorted" alarm flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING - - expression: '{count(#3,"highVaCurrentLimit","like")}=2' + expression: 'count(/Morningstar SunSaver MPPT SNMP/status.alarms[alarms.0],#3,"like","highVaCurrentLimit")=2' name: 'Status: Device has "highVaCurrentLimit" alarm flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING - - expression: '{count(#3,"mosfetSOpen","like")}=2' + expression: 'count(/Morningstar SunSaver MPPT SNMP/status.alarms[alarms.0],#3,"like","mosfetSOpen")=2' name: 'Status: Device has "mosfetSOpen" alarm flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING - - expression: '{count(#3,"p12VoltageReferenceOff","like")}=2' + expression: 'count(/Morningstar SunSaver MPPT SNMP/status.alarms[alarms.0],#3,"like","p12VoltageReferenceOff")=2' name: 'Status: Device has "p12VoltageReferenceOff" alarm flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING - - expression: '{count(#3,"rtsDisconnected","like")}=2' + expression: 'count(/Morningstar SunSaver MPPT SNMP/status.alarms[alarms.0],#3,"like","rtsDisconnected")=2' name: 'Status: Device has "rtsDisconnected" alarm flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING - - expression: '{count(#3,"rtsMiswire","like")}=2' + expression: 'count(/Morningstar SunSaver MPPT SNMP/status.alarms[alarms.0],#3,"like","rtsMiswire")=2' name: 'Status: Device has "rtsMiswire" alarm flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING - - expression: '{count(#3,"rtsShorted","like")}=2' + expression: 'count(/Morningstar SunSaver MPPT SNMP/status.alarms[alarms.0],#3,"like","rtsShorted")=2' name: 'Status: Device has "rtsShorted" alarm flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING - - expression: '{count(#3,"sspptHot","like")}=2' + expression: 'count(/Morningstar SunSaver MPPT SNMP/status.alarms[alarms.0],#3,"like","sspptHot")=2' name: 'Status: Device has "sspptHot" alarm flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING - - expression: '{count(#3,"systemMiswire","like")}=2' + expression: 'count(/Morningstar SunSaver MPPT SNMP/status.alarms[alarms.0],#3,"like","systemMiswire")=2' name: 'Status: Device has "systemMiswire" alarm flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING - - expression: '{count(#3,"uncalibrated","like")}=2' + expression: 'count(/Morningstar SunSaver MPPT SNMP/status.alarms[alarms.0],#3,"like","uncalibrated")=2' name: 'Status: Device has "uncalibrated" alarm flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING @@ -564,47 +564,47 @@ zabbix_export: value: Status triggers: - - expression: '{count(#3,"arrayHvd","like")}=2' + expression: 'count(/Morningstar SunSaver MPPT SNMP/status.array_faults[arrayFaults.0],#3,"like","arrayHvd")=2' name: 'Status: Device has "arrayHvd" array faults flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: HIGH - - expression: '{count(#3,"batteryHvd","like")}=2' + expression: 'count(/Morningstar SunSaver MPPT SNMP/status.array_faults[arrayFaults.0],#3,"like","batteryHvd")=2' name: 'Status: Device has "batteryHvd" array faults flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: HIGH - - expression: '{count(#3,"customSettingsEdit","like")}=2' + expression: 'count(/Morningstar SunSaver MPPT SNMP/status.array_faults[arrayFaults.0],#3,"like","customSettingsEdit")=2' name: 'Status: Device has "customSettingsEdit" array faults flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: HIGH - - expression: '{count(#3,"localTempSensorDamaged","like")}=2' + expression: 'count(/Morningstar SunSaver MPPT SNMP/status.array_faults[arrayFaults.0],#3,"like","localTempSensorDamaged")=2' name: 'Status: Device has "localTempSensorDamaged" array faults flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: HIGH - - expression: '{count(#3,"mosfetSShorted","like")}=2' + expression: 'count(/Morningstar SunSaver MPPT SNMP/status.array_faults[arrayFaults.0],#3,"like","mosfetSShorted")=2' name: 'Status: Device has "mosfetSShorted" array faults flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: HIGH - - expression: '{count(#3,"overcurrent","like")}=2' + expression: 'count(/Morningstar SunSaver MPPT SNMP/status.array_faults[arrayFaults.0],#3,"like","overcurrent")=2' name: 'Status: Device has "overcurrent" array faults flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: HIGH - - expression: '{count(#3,"rtsNoLongerValid","like")}=2' + expression: 'count(/Morningstar SunSaver MPPT SNMP/status.array_faults[arrayFaults.0],#3,"like","rtsNoLongerValid")=2' name: 'Status: Device has "rtsNoLongerValid" array faults flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: HIGH - - expression: '{count(#3,"rtsShorted","like")}=2' + expression: 'count(/Morningstar SunSaver MPPT SNMP/status.array_faults[arrayFaults.0],#3,"like","rtsShorted")=2' name: 'Status: Device has "rtsShorted" array faults flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: HIGH - - expression: '{count(#3,"softwareFault","like")}=2' + expression: 'count(/Morningstar SunSaver MPPT SNMP/status.array_faults[arrayFaults.0],#3,"like","softwareFault")=2' name: 'Status: Device has "softwareFault" array faults flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: HIGH @@ -656,42 +656,42 @@ zabbix_export: value: Status triggers: - - expression: '{count(#3,"customSettingsEdit","like")}=2' + expression: 'count(/Morningstar SunSaver MPPT SNMP/status.load_faults[loadFaults.0],#3,"like","customSettingsEdit")=2' name: 'Status: Device has "customSettingsEdit" load faults flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: HIGH - - expression: '{count(#3,"externalShortCircuit","like")}=2' + expression: 'count(/Morningstar SunSaver MPPT SNMP/status.load_faults[loadFaults.0],#3,"like","externalShortCircuit")=2' name: 'Status: Device has "externalShortCircuit" load faults flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: HIGH - - expression: '{count(#3,"highTempDisconnect","like")}=2' + expression: 'count(/Morningstar SunSaver MPPT SNMP/status.load_faults[loadFaults.0],#3,"like","highTempDisconnect")=2' name: 'Status: Device has "highTempDisconnect" load faults flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: HIGH - - expression: '{count(#3,"loadHvd","like")}=2' + expression: 'count(/Morningstar SunSaver MPPT SNMP/status.load_faults[loadFaults.0],#3,"like","loadHvd")=2' name: 'Status: Device has "loadHvd" load faults flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: HIGH - - expression: '{count(#3,"mosfetShorted","like")}=2' + expression: 'count(/Morningstar SunSaver MPPT SNMP/status.load_faults[loadFaults.0],#3,"like","mosfetShorted")=2' name: 'Status: Device has "mosfetShorted" load faults flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: HIGH - - expression: '{count(#3,"overcurrent","like")}=2' + expression: 'count(/Morningstar SunSaver MPPT SNMP/status.load_faults[loadFaults.0],#3,"like","overcurrent")=2' name: 'Status: Device has "overcurrent" load faults flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: HIGH - - expression: '{count(#3,"software","like")}=2' + expression: 'count(/Morningstar SunSaver MPPT SNMP/status.load_faults[loadFaults.0],#3,"like","software")=2' name: 'Status: Device has "software" load faults flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: HIGH - - expression: '{count(#3,"unknownLoadFault","like")}=2' + expression: 'count(/Morningstar SunSaver MPPT SNMP/status.load_faults[loadFaults.0],#3,"like","unknownLoadFault")=2' name: 'Status: Device has "unknownLoadFault" load faults flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: HIGH @@ -714,13 +714,13 @@ zabbix_export: value: Status triggers: - - expression: '{last()}<10m' + expression: 'last(/Morningstar SunSaver MPPT SNMP/status.uptime)<10m' name: 'Status: Device has been restarted (uptime < 10m)' priority: INFO description: 'Uptime is less than 10 minutes' manual_close: 'YES' - - expression: '{nodata(5m)}=1' + expression: 'nodata(/Morningstar SunSaver MPPT SNMP/status.uptime,5m)=1' name: 'Status: Failed to fetch data (or no data for 5m)' priority: WARNING description: 'Zabbix has not received data for items for the last 5 minutes' @@ -794,33 +794,33 @@ zabbix_export: value: Temperature triggers: - - expression: '{min(5m)}>{$BATTERY.TEMP.MAX.CRIT}' + expression: 'min(/Morningstar SunSaver MPPT SNMP/temp.battery[batteryTemperature.0],5m)>{$BATTERY.TEMP.MAX.CRIT}' name: 'Temperature: Critically high battery temperature (over {$BATTERY.TEMP.MAX.CRIT}C for 5m)' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: HIGH - - expression: '{max(5m)}<{$BATTERY.TEMP.MIN.CRIT}' + expression: 'max(/Morningstar SunSaver MPPT SNMP/temp.battery[batteryTemperature.0],5m)<{$BATTERY.TEMP.MIN.CRIT}' name: 'Temperature: Critically low battery temperature (below {$BATTERY.TEMP.MIN.WARN}C for 5m)' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: HIGH - - expression: '{min(5m)}>{$BATTERY.TEMP.MAX.WARN}' + expression: 'min(/Morningstar SunSaver MPPT SNMP/temp.battery[batteryTemperature.0],5m)>{$BATTERY.TEMP.MAX.WARN}' name: 'Temperature: High battery temperature (over {$BATTERY.TEMP.MAX.WARN}C for 5m)' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING dependencies: - name: 'Temperature: Critically high battery temperature (over {$BATTERY.TEMP.MAX.CRIT}C for 5m)' - expression: '{Morningstar SunSaver MPPT SNMP:temp.battery[batteryTemperature.0].min(5m)}>{$BATTERY.TEMP.MAX.CRIT}' + expression: 'min(/Morningstar SunSaver MPPT SNMP/temp.battery[batteryTemperature.0],5m)>{$BATTERY.TEMP.MAX.CRIT}' - - expression: '{max(5m)}<{$BATTERY.TEMP.MIN.WARN}' + expression: 'max(/Morningstar SunSaver MPPT SNMP/temp.battery[batteryTemperature.0],5m)<{$BATTERY.TEMP.MIN.WARN}' name: 'Temperature: Low battery temperature (below {$BATTERY.TEMP.MIN.WARN}C for 5m)' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING dependencies: - name: 'Temperature: Critically low battery temperature (below {$BATTERY.TEMP.MIN.WARN}C for 5m)' - expression: '{Morningstar SunSaver MPPT SNMP:temp.battery[batteryTemperature.0].max(5m)}<{$BATTERY.TEMP.MIN.CRIT}' + expression: 'max(/Morningstar SunSaver MPPT SNMP/temp.battery[batteryTemperature.0],5m)<{$BATTERY.TEMP.MIN.CRIT}' - name: 'Temperature: Heatsink' type: SNMP_AGENT @@ -876,33 +876,33 @@ zabbix_export: value: Battery trigger_prototypes: - - expression: '{min(5m)}>{#VOLTAGE.MAX.CRIT}' + expression: 'min(/Morningstar SunSaver MPPT SNMP/battery.voltage[batteryVoltage.0{#SINGLETON}],5m)>{#VOLTAGE.MAX.CRIT}' name: 'Battery: Critically high battery voltage (over {#VOLTAGE.MAX.CRIT}V for 5m)' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: HIGH - - expression: '{max(5m)}<{#VOLTAGE.MIN.CRIT}' + expression: 'max(/Morningstar SunSaver MPPT SNMP/battery.voltage[batteryVoltage.0{#SINGLETON}],5m)<{#VOLTAGE.MIN.CRIT}' name: 'Battery: Critically low battery voltage (below {#VOLTAGE.MIN.CRIT}V for 5m)' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: HIGH - - expression: '{min(5m)}>{#VOLTAGE.MAX.WARN}' + expression: 'min(/Morningstar SunSaver MPPT SNMP/battery.voltage[batteryVoltage.0{#SINGLETON}],5m)>{#VOLTAGE.MAX.WARN}' name: 'Battery: High battery voltage (over {#VOLTAGE.MAX.WARN}V for 5m)' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING dependencies: - name: 'Battery: Critically high battery voltage (over {#VOLTAGE.MAX.CRIT}V for 5m)' - expression: '{Morningstar SunSaver MPPT SNMP:battery.voltage[batteryVoltage.0{#SINGLETON}].min(5m)}>{#VOLTAGE.MAX.CRIT}' + expression: 'min(/Morningstar SunSaver MPPT SNMP/battery.voltage[batteryVoltage.0{#SINGLETON}],5m)>{#VOLTAGE.MAX.CRIT}' - - expression: '{max(5m)}<{#VOLTAGE.MIN.WARN}' + expression: 'max(/Morningstar SunSaver MPPT SNMP/battery.voltage[batteryVoltage.0{#SINGLETON}],5m)<{#VOLTAGE.MIN.WARN}' name: 'Battery: Low battery voltage (below {#VOLTAGE.MIN.WARN}V for 5m)' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING dependencies: - name: 'Battery: Critically low battery voltage (below {#VOLTAGE.MIN.CRIT}V for 5m)' - expression: '{Morningstar SunSaver MPPT SNMP:battery.voltage[batteryVoltage.0{#SINGLETON}].max(5m)}<{#VOLTAGE.MIN.CRIT}' + expression: 'max(/Morningstar SunSaver MPPT SNMP/battery.voltage[batteryVoltage.0{#SINGLETON}],5m)<{#VOLTAGE.MIN.CRIT}' graph_prototypes: - name: 'Voltage: Battery/Load{#SINGLETON}' diff --git a/templates/net/morningstar_snmp/suresine_snmp/suresine_snmp.yaml b/templates/net/morningstar_snmp/suresine_snmp/suresine_snmp.yaml index 10024857bae..c66f5930368 100644 --- a/templates/net/morningstar_snmp/suresine_snmp/suresine_snmp.yaml +++ b/templates/net/morningstar_snmp/suresine_snmp/suresine_snmp.yaml @@ -1,6 +1,6 @@ zabbix_export: version: '5.4' - date: '2021-02-23T11:04:30Z' + date: '2021-05-09T00:00:00Z' groups: - name: Templates/Modules @@ -103,19 +103,19 @@ zabbix_export: value: Load triggers: - - expression: '{last()}={$LOAD.STATE.CRIT:"lvd"} or {last()}={$LOAD.STATE.CRIT:"fault"}' + expression: 'last(/Morningstar SureSine SNMP/load.state[loadState.0])={$LOAD.STATE.CRIT:"lvd"} or last(/Morningstar SureSine SNMP/load.state[loadState.0])={$LOAD.STATE.CRIT:"fault"}' name: 'Load: Device load in critical state' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: HIGH - - expression: '{last()}={$LOAD.STATE.WARN:"lvdWarning"} or {last()}={$LOAD.STATE.WARN:"override"}' + expression: 'last(/Morningstar SureSine SNMP/load.state[loadState.0])={$LOAD.STATE.WARN:"lvdWarning"} or last(/Morningstar SureSine SNMP/load.state[loadState.0])={$LOAD.STATE.WARN:"override"}' name: 'Load: Device load in warning state' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING dependencies: - name: 'Load: Device load in critical state' - expression: '{Morningstar SureSine SNMP:load.state[loadState.0].last()}={$LOAD.STATE.CRIT:"lvd"} or {Morningstar SureSine SNMP:load.state[loadState.0].last()}={$LOAD.STATE.CRIT:"fault"}' + expression: 'last(/Morningstar SureSine SNMP/load.state[loadState.0])={$LOAD.STATE.CRIT:"lvd"} or last(/Morningstar SureSine SNMP/load.state[loadState.0])={$LOAD.STATE.CRIT:"fault"}' - name: 'Status: Alarms' type: SNMP_AGENT @@ -160,22 +160,22 @@ zabbix_export: value: Status triggers: - - expression: '{count(#3,"heatsinkTempSensorOpen","like")}=2' + expression: 'count(/Morningstar SureSine SNMP/status.alarms[alarms.0],#3,"like","heatsinkTempSensorOpen")=2' name: 'Status: Device has "heatsinkTempSensorOpen" alarm flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING - - expression: '{count(#3,"heatsinkTempSensorShort","like")}=2' + expression: 'count(/Morningstar SureSine SNMP/status.alarms[alarms.0],#3,"like","heatsinkTempSensorShort")=2' name: 'Status: Device has "heatsinkTempSensorShort" alarm flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING - - expression: '{count(#3,"suresineHot","like")}=2' + expression: 'count(/Morningstar SureSine SNMP/status.alarms[alarms.0],#3,"like","suresineHot")=2' name: 'Status: Device has "suresineHot" alarm flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING - - expression: '{count(#3,"unknownAlarm","like")}=2' + expression: 'count(/Morningstar SureSine SNMP/status.alarms[alarms.0],#3,"like","unknownAlarm")=2' name: 'Status: Device has "unknownAlarm" alarm flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING @@ -227,42 +227,42 @@ zabbix_export: value: Status triggers: - - expression: '{count(#3,"customSettingsEdit","like")}=2' + expression: 'count(/Morningstar SureSine SNMP/status.faults[faults.0],#3,"like","customSettingsEdit")=2' name: 'Status: Device has "customSettingsEdit" faults flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: HIGH - - expression: '{count(#3,"dipSwitchChanged","like")}=2' + expression: 'count(/Morningstar SureSine SNMP/status.faults[faults.0],#3,"like","dipSwitchChanged")=2' name: 'Status: Device has "dipSwitchChanged" faults flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: HIGH - - expression: '{count(#3,"highVoltageDisconnect","like")}=2' + expression: 'count(/Morningstar SureSine SNMP/status.faults[faults.0],#3,"like","highVoltageDisconnect")=2' name: 'Status: Device has "highVoltageDisconnect" faults flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: HIGH - - expression: '{count(#3,"overcurrent","like")}=2' + expression: 'count(/Morningstar SureSine SNMP/status.faults[faults.0],#3,"like","overcurrent")=2' name: 'Status: Device has "overcurrent" faults flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: HIGH - - expression: '{count(#3,"reset","like")}=2' + expression: 'count(/Morningstar SureSine SNMP/status.faults[faults.0],#3,"like","reset")=2' name: 'Status: Device has "reset" faults flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: HIGH - - expression: '{count(#3,"software","like")}=2' + expression: 'count(/Morningstar SureSine SNMP/status.faults[faults.0],#3,"like","software")=2' name: 'Status: Device has "software" faults flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: HIGH - - expression: '{count(#3,"suresineHot","like")}=2' + expression: 'count(/Morningstar SureSine SNMP/status.faults[faults.0],#3,"like","suresineHot")=2' name: 'Status: Device has "suresineHot" faults flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: HIGH - - expression: '{count(#3,"unknownFault","like")}=2' + expression: 'count(/Morningstar SureSine SNMP/status.faults[faults.0],#3,"like","unknownFault")=2' name: 'Status: Device has "unknownFault" faults flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: HIGH @@ -285,13 +285,13 @@ zabbix_export: value: Status triggers: - - expression: '{last()}<10m' + expression: 'last(/Morningstar SureSine SNMP/status.uptime)<10m' name: 'Status: Device has been restarted (uptime < 10m)' priority: INFO description: 'Uptime is less than 10 minutes' manual_close: 'YES' - - expression: '{nodata(5m)}=1' + expression: 'nodata(/Morningstar SureSine SNMP/status.uptime,5m)=1' name: 'Status: Failed to fetch data (or no data for 5m)' priority: WARNING description: 'Zabbix has not received data for items for the last 5 minutes' @@ -354,33 +354,33 @@ zabbix_export: value: Battery trigger_prototypes: - - expression: '{min(5m)}>{#VOLTAGE.MAX.CRIT}' + expression: 'min(/Morningstar SureSine SNMP/battery.voltage[batteryVoltageSlow.0{#SINGLETON}],5m)>{#VOLTAGE.MAX.CRIT}' name: 'Battery: Critically high battery voltage (over {#VOLTAGE.MAX.CRIT}V for 5m)' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: HIGH - - expression: '{max(5m)}<{#VOLTAGE.MIN.CRIT}' + expression: 'max(/Morningstar SureSine SNMP/battery.voltage[batteryVoltageSlow.0{#SINGLETON}],5m)<{#VOLTAGE.MIN.CRIT}' name: 'Battery: Critically low battery voltage (below {#VOLTAGE.MIN.CRIT}V for 5m)' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: HIGH - - expression: '{min(5m)}>{#VOLTAGE.MAX.WARN}' + expression: 'min(/Morningstar SureSine SNMP/battery.voltage[batteryVoltageSlow.0{#SINGLETON}],5m)>{#VOLTAGE.MAX.WARN}' name: 'Battery: High battery voltage (over {#VOLTAGE.MAX.WARN}V for 5m)' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING dependencies: - name: 'Battery: Critically high battery voltage (over {#VOLTAGE.MAX.CRIT}V for 5m)' - expression: '{Morningstar SureSine SNMP:battery.voltage[batteryVoltageSlow.0{#SINGLETON}].min(5m)}>{#VOLTAGE.MAX.CRIT}' + expression: 'min(/Morningstar SureSine SNMP/battery.voltage[batteryVoltageSlow.0{#SINGLETON}],5m)>{#VOLTAGE.MAX.CRIT}' - - expression: '{max(5m)}<{#VOLTAGE.MIN.WARN}' + expression: 'max(/Morningstar SureSine SNMP/battery.voltage[batteryVoltageSlow.0{#SINGLETON}],5m)<{#VOLTAGE.MIN.WARN}' name: 'Battery: Low battery voltage (below {#VOLTAGE.MIN.WARN}V for 5m)' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING dependencies: - name: 'Battery: Critically low battery voltage (below {#VOLTAGE.MIN.CRIT}V for 5m)' - expression: '{Morningstar SureSine SNMP:battery.voltage[batteryVoltageSlow.0{#SINGLETON}].max(5m)}<{#VOLTAGE.MIN.CRIT}' + expression: 'max(/Morningstar SureSine SNMP/battery.voltage[batteryVoltageSlow.0{#SINGLETON}],5m)<{#VOLTAGE.MIN.CRIT}' graph_prototypes: - name: 'Voltage: Battery{#SINGLETON}' diff --git a/templates/net/morningstar_snmp/tristar_mppt_600V_snmp/tristar_mppt_600V_snmp.yaml b/templates/net/morningstar_snmp/tristar_mppt_600V_snmp/tristar_mppt_600V_snmp.yaml index 1defcae5c61..82aad7b9a56 100644 --- a/templates/net/morningstar_snmp/tristar_mppt_600V_snmp/tristar_mppt_600V_snmp.yaml +++ b/templates/net/morningstar_snmp/tristar_mppt_600V_snmp/tristar_mppt_600V_snmp.yaml @@ -1,6 +1,6 @@ zabbix_export: version: '5.4' - date: '2021-02-23T11:04:28Z' + date: '2021-05-09T00:00:00Z' groups: - name: Templates/Modules @@ -206,19 +206,19 @@ zabbix_export: value: Battery triggers: - - expression: '{last()}={$CHARGE.STATE.CRIT}' + expression: 'last(/Morningstar TriStar MPPT 600V SNMP/charge.state[chargeState.0])={$CHARGE.STATE.CRIT}' name: 'Battery: Device charge in critical state' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: HIGH - - expression: '{last()}={$CHARGE.STATE.WARN}' + expression: 'last(/Morningstar TriStar MPPT 600V SNMP/charge.state[chargeState.0])={$CHARGE.STATE.WARN}' name: 'Battery: Device charge in warning state' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING dependencies: - name: 'Battery: Device charge in critical state' - expression: '{Morningstar TriStar MPPT 600V SNMP:charge.state[chargeState.0].last()}={$CHARGE.STATE.CRIT}' + expression: 'last(/Morningstar TriStar MPPT 600V SNMP/charge.state[chargeState.0])={$CHARGE.STATE.CRIT}' - name: 'Counter: Charge Amp-hours' type: SNMP_AGENT @@ -329,147 +329,147 @@ zabbix_export: value: Status triggers: - - expression: '{count(#3,"alarm21Internal","like")}=2' + expression: 'count(/Morningstar TriStar MPPT 600V SNMP/status.alarms[alarms.0],#3,"like","alarm21Internal")=2' name: 'Status: Device has "alarm21Internal" alarm flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING - - expression: '{count(#3,"arrayCurrentOffset","like")}=2' + expression: 'count(/Morningstar TriStar MPPT 600V SNMP/status.alarms[alarms.0],#3,"like","arrayCurrentOffset")=2' name: 'Status: Device has "arrayCurrentOffset" alarm flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING - - expression: '{count(#3,"batterySense","like")}=2' + expression: 'count(/Morningstar TriStar MPPT 600V SNMP/status.alarms[alarms.0],#3,"like","batterySense")=2' name: 'Status: Device has "batterySense" alarm flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING - - expression: '{count(#3,"batterySenseDisconnected","like")}=2' + expression: 'count(/Morningstar TriStar MPPT 600V SNMP/status.alarms[alarms.0],#3,"like","batterySenseDisconnected")=2' name: 'Status: Device has "batterySenseDisconnected" alarm flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING - - expression: '{count(#3,"controllerWasReset","like")}=2' + expression: 'count(/Morningstar TriStar MPPT 600V SNMP/status.alarms[alarms.0],#3,"like","controllerWasReset")=2' name: 'Status: Device has "controllerWasReset" alarm flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING - - expression: '{count(#3,"currentLimit","like")}=2' + expression: 'count(/Morningstar TriStar MPPT 600V SNMP/status.alarms[alarms.0],#3,"like","currentLimit")=2' name: 'Status: Device has "currentLimit" alarm flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING - - expression: '{count(#3,"currentOffset","like")}=2' + expression: 'count(/Morningstar TriStar MPPT 600V SNMP/status.alarms[alarms.0],#3,"like","currentOffset")=2' name: 'Status: Device has "currentOffset" alarm flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING - - expression: '{count(#3,"derateLimit","like")}=2' + expression: 'count(/Morningstar TriStar MPPT 600V SNMP/status.alarms[alarms.0],#3,"like","derateLimit")=2' name: 'Status: Device has "derateLimit" alarm flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING - - expression: '{count(#3,"ee-i2cRetryLimit","like")}=2' + expression: 'count(/Morningstar TriStar MPPT 600V SNMP/status.alarms[alarms.0],#3,"like","ee-i2cRetryLimit")=2' name: 'Status: Device has "ee-i2cRetryLimit" alarm flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING - - expression: '{count(#3,"ethernetAlarm","like")}=2' + expression: 'count(/Morningstar TriStar MPPT 600V SNMP/status.alarms[alarms.0],#3,"like","ethernetAlarm")=2' name: 'Status: Device has "ethernetAlarm" alarm flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING - - expression: '{count(#3,"extflashFault","like")}=2' + expression: 'count(/Morningstar TriStar MPPT 600V SNMP/status.alarms[alarms.0],#3,"like","extflashFault")=2' name: 'Status: Device has "extflashFault" alarm flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING - - expression: '{count(#3,"fp12VoltageOutOfRange","like")}=2' + expression: 'count(/Morningstar TriStar MPPT 600V SNMP/status.alarms[alarms.0],#3,"like","fp12VoltageOutOfRange")=2' name: 'Status: Device has "fp12VoltageOutOfRange" alarm flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING - - expression: '{count(#3,"heatsinkTempSensorOpen","like")}=2' + expression: 'count(/Morningstar TriStar MPPT 600V SNMP/status.alarms[alarms.0],#3,"like","heatsinkTempSensorOpen")=2' name: 'Status: Device has "heatsinkTempSensorOpen" alarm flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING - - expression: '{count(#3,"heatsinkTempSensorShorted","like")}=2' + expression: 'count(/Morningstar TriStar MPPT 600V SNMP/status.alarms[alarms.0],#3,"like","heatsinkTempSensorShorted")=2' name: 'Status: Device has "heatsinkTempSensorShorted" alarm flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING - - expression: '{count(#3,"highArrayVCurrentLimit","like")}=2' + expression: 'count(/Morningstar TriStar MPPT 600V SNMP/status.alarms[alarms.0],#3,"like","highArrayVCurrentLimit")=2' name: 'Status: Device has "highArrayVCurrentLimit" alarm flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING - - expression: '{count(#3,"highTemperatureCurrentLimit","like")}=2' + expression: 'count(/Morningstar TriStar MPPT 600V SNMP/status.alarms[alarms.0],#3,"like","highTemperatureCurrentLimit")=2' name: 'Status: Device has "highTemperatureCurrentLimit" alarm flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING - - expression: '{count(#3,"highVoltageDisconnect","like")}=2' + expression: 'count(/Morningstar TriStar MPPT 600V SNMP/status.alarms[alarms.0],#3,"like","highVoltageDisconnect")=2' name: 'Status: Device has "highVoltageDisconnect" alarm flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING - - expression: '{count(#3,"lvd","like")}=2' + expression: 'count(/Morningstar TriStar MPPT 600V SNMP/status.alarms[alarms.0],#3,"like","lvd")=2' name: 'Status: Device has "lvd" alarm flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING - - expression: '{count(#3,"maxAdcValueReached","like")}=2' + expression: 'count(/Morningstar TriStar MPPT 600V SNMP/status.alarms[alarms.0],#3,"like","maxAdcValueReached")=2' name: 'Status: Device has "maxAdcValueReached" alarm flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING - - expression: '{count(#3,"mosfetSOpen","like")}=2' + expression: 'count(/Morningstar TriStar MPPT 600V SNMP/status.alarms[alarms.0],#3,"like","mosfetSOpen")=2' name: 'Status: Device has "mosfetSOpen" alarm flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING - - expression: '{count(#3,"p3VoltageOutOfRange","like")}=2' + expression: 'count(/Morningstar TriStar MPPT 600V SNMP/status.alarms[alarms.0],#3,"like","p3VoltageOutOfRange")=2' name: 'Status: Device has "p3VoltageOutOfRange" alarm flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING - - expression: '{count(#3,"p12VoltageOutOfRange","like")}=2' + expression: 'count(/Morningstar TriStar MPPT 600V SNMP/status.alarms[alarms.0],#3,"like","p12VoltageOutOfRange")=2' name: 'Status: Device has "p12VoltageOutOfRange" alarm flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING - - expression: '{count(#3,"rtsDisconnected","like")}=2' + expression: 'count(/Morningstar TriStar MPPT 600V SNMP/status.alarms[alarms.0],#3,"like","rtsDisconnected")=2' name: 'Status: Device has "rtsDisconnected" alarm flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING - - expression: '{count(#3,"rtsMiswire","like")}=2' + expression: 'count(/Morningstar TriStar MPPT 600V SNMP/status.alarms[alarms.0],#3,"like","rtsMiswire")=2' name: 'Status: Device has "rtsMiswire" alarm flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING - - expression: '{count(#3,"rtsShorted","like")}=2' + expression: 'count(/Morningstar TriStar MPPT 600V SNMP/status.alarms[alarms.0],#3,"like","rtsShorted")=2' name: 'Status: Device has "rtsShorted" alarm flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING - - expression: '{count(#3,"slaveControlFault","like")}=2' + expression: 'count(/Morningstar TriStar MPPT 600V SNMP/status.alarms[alarms.0],#3,"like","slaveControlFault")=2' name: 'Status: Device has "slaveControlFault" alarm flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING - - expression: '{count(#3,"software","like")}=2' + expression: 'count(/Morningstar TriStar MPPT 600V SNMP/status.alarms[alarms.0],#3,"like","software")=2' name: 'Status: Device has "software" alarm flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING - - expression: '{count(#3,"systemMiswire","like")}=2' + expression: 'count(/Morningstar TriStar MPPT 600V SNMP/status.alarms[alarms.0],#3,"like","systemMiswire")=2' name: 'Status: Device has "systemMiswire" alarm flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING - - expression: '{count(#3,"uncalibrated","like")}=2' + expression: 'count(/Morningstar TriStar MPPT 600V SNMP/status.alarms[alarms.0],#3,"like","uncalibrated")=2' name: 'Status: Device has "uncalibrated" alarm flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING @@ -542,142 +542,142 @@ zabbix_export: value: Status triggers: - - expression: '{count(#3,"arrayHvd","like")}=2' + expression: 'count(/Morningstar TriStar MPPT 600V SNMP/status.faults[faults.0],#3,"like","arrayHvd")=2' name: 'Status: Device has "arrayHvd" faults flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: HIGH - - expression: '{count(#3,"batteryHvd","like")}=2' + expression: 'count(/Morningstar TriStar MPPT 600V SNMP/status.faults[faults.0],#3,"like","batteryHvd")=2' name: 'Status: Device has "batteryHvd" faults flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: HIGH - - expression: '{count(#3,"batteryLvd","like")}=2' + expression: 'count(/Morningstar TriStar MPPT 600V SNMP/status.faults[faults.0],#3,"like","batteryLvd")=2' name: 'Status: Device has "batteryLvd" faults flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: HIGH - - expression: '{count(#3,"blockbusBoot","like")}=2' + expression: 'count(/Morningstar TriStar MPPT 600V SNMP/status.faults[faults.0],#3,"like","blockbusBoot")=2' name: 'Status: Device has "blockbusBoot" faults flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: HIGH - - expression: '{count(#3,"chargeSlaveControlTimeout","like")}=2' + expression: 'count(/Morningstar TriStar MPPT 600V SNMP/status.faults[faults.0],#3,"like","chargeSlaveControlTimeout")=2' name: 'Status: Device has "chargeSlaveControlTimeout" faults flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: HIGH - - expression: '{count(#3,"controllerWasReset","like")}=2' + expression: 'count(/Morningstar TriStar MPPT 600V SNMP/status.faults[faults.0],#3,"like","controllerWasReset")=2' name: 'Status: Device has "controllerWasReset" faults flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: HIGH - - expression: '{count(#3,"currentSensorReferenceOutOfRange","like")}=2' + expression: 'count(/Morningstar TriStar MPPT 600V SNMP/status.faults[faults.0],#3,"like","currentSensorReferenceOutOfRange")=2' name: 'Status: Device has "currentSensorReferenceOutOfRange" faults flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: HIGH - - expression: '{count(#3,"customSettingsEdit","like")}=2' + expression: 'count(/Morningstar TriStar MPPT 600V SNMP/status.faults[faults.0],#3,"like","customSettingsEdit")=2' name: 'Status: Device has "customSettingsEdit" faults flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: HIGH - - expression: '{count(#3,"dipSwitchChange","like")}=2' + expression: 'count(/Morningstar TriStar MPPT 600V SNMP/status.faults[faults.0],#3,"like","dipSwitchChange")=2' name: 'Status: Device has "dipSwitchChange" faults flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: HIGH - - expression: '{count(#3,"eepromRetryLimit","like")}=2' + expression: 'count(/Morningstar TriStar MPPT 600V SNMP/status.faults[faults.0],#3,"like","eepromRetryLimit")=2' name: 'Status: Device has "eepromRetryLimit" faults flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: HIGH - - expression: '{count(#3,"fault16Software","like")}=2' + expression: 'count(/Morningstar TriStar MPPT 600V SNMP/status.faults[faults.0],#3,"like","fault16Software")=2' name: 'Status: Device has "fault16Software" faults flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: HIGH - - expression: '{count(#3,"fault17Software","like")}=2' + expression: 'count(/Morningstar TriStar MPPT 600V SNMP/status.faults[faults.0],#3,"like","fault17Software")=2' name: 'Status: Device has "fault17Software" faults flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: HIGH - - expression: '{count(#3,"fault18Software","like")}=2' + expression: 'count(/Morningstar TriStar MPPT 600V SNMP/status.faults[faults.0],#3,"like","fault18Software")=2' name: 'Status: Device has "fault18Software" faults flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: HIGH - - expression: '{count(#3,"fault19Software","like")}=2' + expression: 'count(/Morningstar TriStar MPPT 600V SNMP/status.faults[faults.0],#3,"like","fault19Software")=2' name: 'Status: Device has "fault19Software" faults flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: HIGH - - expression: '{count(#3,"fault20Software","like")}=2' + expression: 'count(/Morningstar TriStar MPPT 600V SNMP/status.faults[faults.0],#3,"like","fault20Software")=2' name: 'Status: Device has "fault20Software" faults flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: HIGH - - expression: '{count(#3,"fault21Software","like")}=2' + expression: 'count(/Morningstar TriStar MPPT 600V SNMP/status.faults[faults.0],#3,"like","fault21Software")=2' name: 'Status: Device has "fault21Software" faults flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: HIGH - - expression: '{count(#3,"fetShort","like")}=2' + expression: 'count(/Morningstar TriStar MPPT 600V SNMP/status.faults[faults.0],#3,"like","fetShort")=2' name: 'Status: Device has "fetShort" faults flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: HIGH - - expression: '{count(#3,"fpgaVersion","like")}=2' + expression: 'count(/Morningstar TriStar MPPT 600V SNMP/status.faults[faults.0],#3,"like","fpgaVersion")=2' name: 'Status: Device has "fpgaVersion" faults flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: HIGH - - expression: '{count(#3,"hscomm","like")}=2' + expression: 'count(/Morningstar TriStar MPPT 600V SNMP/status.faults[faults.0],#3,"like","hscomm")=2' name: 'Status: Device has "hscomm" faults flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: HIGH - - expression: '{count(#3,"hscommMaster","like")}=2' + expression: 'count(/Morningstar TriStar MPPT 600V SNMP/status.faults[faults.0],#3,"like","hscommMaster")=2' name: 'Status: Device has "hscommMaster" faults flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: HIGH - - expression: '{count(#3,"ia-refSlaveModeTimeout","like")}=2' + expression: 'count(/Morningstar TriStar MPPT 600V SNMP/status.faults[faults.0],#3,"like","ia-refSlaveModeTimeout")=2' name: 'Status: Device has "ia-refSlaveModeTimeout" faults flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: HIGH - - expression: '{count(#3,"overcurrent","like")}=2' + expression: 'count(/Morningstar TriStar MPPT 600V SNMP/status.faults[faults.0],#3,"like","overcurrent")=2' name: 'Status: Device has "overcurrent" faults flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: HIGH - - expression: '{count(#3,"powerboardCommunicationFault","like")}=2' + expression: 'count(/Morningstar TriStar MPPT 600V SNMP/status.faults[faults.0],#3,"like","powerboardCommunicationFault")=2' name: 'Status: Device has "powerboardCommunicationFault" faults flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: HIGH - - expression: '{count(#3,"rs232SerialToMeterBridge","like")}=2' + expression: 'count(/Morningstar TriStar MPPT 600V SNMP/status.faults[faults.0],#3,"like","rs232SerialToMeterBridge")=2' name: 'Status: Device has "rs232SerialToMeterBridge" faults flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: HIGH - - expression: '{count(#3,"rtsDisconnected","like")}=2' + expression: 'count(/Morningstar TriStar MPPT 600V SNMP/status.faults[faults.0],#3,"like","rtsDisconnected")=2' name: 'Status: Device has "rtsDisconnected" faults flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: HIGH - - expression: '{count(#3,"rtsShorted","like")}=2' + expression: 'count(/Morningstar TriStar MPPT 600V SNMP/status.faults[faults.0],#3,"like","rtsShorted")=2' name: 'Status: Device has "rtsShorted" faults flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: HIGH - - expression: '{count(#3,"slave","like")}=2' + expression: 'count(/Morningstar TriStar MPPT 600V SNMP/status.faults[faults.0],#3,"like","slave")=2' name: 'Status: Device has "slave" faults flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: HIGH - - expression: '{count(#3,"softwareFault","like")}=2' + expression: 'count(/Morningstar TriStar MPPT 600V SNMP/status.faults[faults.0],#3,"like","softwareFault")=2' name: 'Status: Device has "softwareFault" faults flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: HIGH @@ -700,13 +700,13 @@ zabbix_export: value: Status triggers: - - expression: '{last()}<10m' + expression: 'last(/Morningstar TriStar MPPT 600V SNMP/status.uptime)<10m' name: 'Status: Device has been restarted (uptime < 10m)' priority: INFO description: 'Uptime is less than 10 minutes' manual_close: 'YES' - - expression: '{nodata(5m)}=1' + expression: 'nodata(/Morningstar TriStar MPPT 600V SNMP/status.uptime,5m)=1' name: 'Status: Failed to fetch data (or no data for 5m)' priority: WARNING description: 'Zabbix has not received data for items for the last 5 minutes' @@ -756,33 +756,33 @@ zabbix_export: value: Temperature triggers: - - expression: '{min(5m)}>{$BATTERY.TEMP.MAX.CRIT}' + expression: 'min(/Morningstar TriStar MPPT 600V SNMP/temp.battery[batteryTemperature.0],5m)>{$BATTERY.TEMP.MAX.CRIT}' name: 'Temperature: Critically high battery temperature (over {$BATTERY.TEMP.MAX.CRIT}C for 5m)' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: HIGH - - expression: '{max(5m)}<{$BATTERY.TEMP.MIN.CRIT}' + expression: 'max(/Morningstar TriStar MPPT 600V SNMP/temp.battery[batteryTemperature.0],5m)<{$BATTERY.TEMP.MIN.CRIT}' name: 'Temperature: Critically low battery temperature (below {$BATTERY.TEMP.MIN.WARN}C for 5m)' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: HIGH - - expression: '{min(5m)}>{$BATTERY.TEMP.MAX.WARN}' + expression: 'min(/Morningstar TriStar MPPT 600V SNMP/temp.battery[batteryTemperature.0],5m)>{$BATTERY.TEMP.MAX.WARN}' name: 'Temperature: High battery temperature (over {$BATTERY.TEMP.MAX.WARN}C for 5m)' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING dependencies: - name: 'Temperature: Critically high battery temperature (over {$BATTERY.TEMP.MAX.CRIT}C for 5m)' - expression: '{Morningstar TriStar MPPT 600V SNMP:temp.battery[batteryTemperature.0].min(5m)}>{$BATTERY.TEMP.MAX.CRIT}' + expression: 'min(/Morningstar TriStar MPPT 600V SNMP/temp.battery[batteryTemperature.0],5m)>{$BATTERY.TEMP.MAX.CRIT}' - - expression: '{max(5m)}<{$BATTERY.TEMP.MIN.WARN}' + expression: 'max(/Morningstar TriStar MPPT 600V SNMP/temp.battery[batteryTemperature.0],5m)<{$BATTERY.TEMP.MIN.WARN}' name: 'Temperature: Low battery temperature (below {$BATTERY.TEMP.MIN.WARN}C for 5m)' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING dependencies: - name: 'Temperature: Critically low battery temperature (below {$BATTERY.TEMP.MIN.WARN}C for 5m)' - expression: '{Morningstar TriStar MPPT 600V SNMP:temp.battery[batteryTemperature.0].max(5m)}<{$BATTERY.TEMP.MIN.CRIT}' + expression: 'max(/Morningstar TriStar MPPT 600V SNMP/temp.battery[batteryTemperature.0],5m)<{$BATTERY.TEMP.MIN.CRIT}' - name: 'Temperature: Heatsink' type: SNMP_AGENT @@ -831,33 +831,33 @@ zabbix_export: value: Battery trigger_prototypes: - - expression: '{min(5m)}>{#VOLTAGE.MAX.CRIT}' + expression: 'min(/Morningstar TriStar MPPT 600V SNMP/battery.voltage[batteryVoltage.0{#SINGLETON}],5m)>{#VOLTAGE.MAX.CRIT}' name: 'Battery: Critically high battery voltage (over {#VOLTAGE.MAX.CRIT}V for 5m)' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: HIGH - - expression: '{max(5m)}<{#VOLTAGE.MIN.CRIT}' + expression: 'max(/Morningstar TriStar MPPT 600V SNMP/battery.voltage[batteryVoltage.0{#SINGLETON}],5m)<{#VOLTAGE.MIN.CRIT}' name: 'Battery: Critically low battery voltage (below {#VOLTAGE.MIN.CRIT}V for 5m)' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: HIGH - - expression: '{min(5m)}>{#VOLTAGE.MAX.WARN}' + expression: 'min(/Morningstar TriStar MPPT 600V SNMP/battery.voltage[batteryVoltage.0{#SINGLETON}],5m)>{#VOLTAGE.MAX.WARN}' name: 'Battery: High battery voltage (over {#VOLTAGE.MAX.WARN}V for 5m)' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING dependencies: - name: 'Battery: Critically high battery voltage (over {#VOLTAGE.MAX.CRIT}V for 5m)' - expression: '{Morningstar TriStar MPPT 600V SNMP:battery.voltage[batteryVoltage.0{#SINGLETON}].min(5m)}>{#VOLTAGE.MAX.CRIT}' + expression: 'min(/Morningstar TriStar MPPT 600V SNMP/battery.voltage[batteryVoltage.0{#SINGLETON}],5m)>{#VOLTAGE.MAX.CRIT}' - - expression: '{max(5m)}<{#VOLTAGE.MIN.WARN}' + expression: 'max(/Morningstar TriStar MPPT 600V SNMP/battery.voltage[batteryVoltage.0{#SINGLETON}],5m)<{#VOLTAGE.MIN.WARN}' name: 'Battery: Low battery voltage (below {#VOLTAGE.MIN.WARN}V for 5m)' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING dependencies: - name: 'Battery: Critically low battery voltage (below {#VOLTAGE.MIN.CRIT}V for 5m)' - expression: '{Morningstar TriStar MPPT 600V SNMP:battery.voltage[batteryVoltage.0{#SINGLETON}].max(5m)}<{#VOLTAGE.MIN.CRIT}' + expression: 'max(/Morningstar TriStar MPPT 600V SNMP/battery.voltage[batteryVoltage.0{#SINGLETON}],5m)<{#VOLTAGE.MIN.CRIT}' graph_prototypes: - name: 'Battery: Voltage{#SINGLETON}' diff --git a/templates/net/morningstar_snmp/tristar_mppt_snmp/tristar_mppt_snmp.yaml b/templates/net/morningstar_snmp/tristar_mppt_snmp/tristar_mppt_snmp.yaml index 1b6856413fd..2a136a65783 100644 --- a/templates/net/morningstar_snmp/tristar_mppt_snmp/tristar_mppt_snmp.yaml +++ b/templates/net/morningstar_snmp/tristar_mppt_snmp/tristar_mppt_snmp.yaml @@ -1,6 +1,6 @@ zabbix_export: version: '5.4' - date: '2021-02-23T11:04:27Z' + date: '2021-05-09T00:00:00Z' groups: - name: Templates/Modules @@ -274,19 +274,19 @@ zabbix_export: value: Battery triggers: - - expression: '{last()}={$CHARGE.STATE.CRIT}' + expression: 'last(/Morningstar TriStar MPPT SNMP/charge.state[chargeState.0])={$CHARGE.STATE.CRIT}' name: 'Battery: Device charge in critical state' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: HIGH - - expression: '{last()}={$CHARGE.STATE.WARN}' + expression: 'last(/Morningstar TriStar MPPT SNMP/charge.state[chargeState.0])={$CHARGE.STATE.WARN}' name: 'Battery: Device charge in warning state' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING dependencies: - name: 'Battery: Device charge in critical state' - expression: '{Morningstar TriStar MPPT SNMP:charge.state[chargeState.0].last()}={$CHARGE.STATE.CRIT}' + expression: 'last(/Morningstar TriStar MPPT SNMP/charge.state[chargeState.0])={$CHARGE.STATE.CRIT}' - name: 'Counter: Charge Amp-hours' type: SNMP_AGENT @@ -389,92 +389,92 @@ zabbix_export: value: Status triggers: - - expression: '{count(#3,"batterySense","like")}=2' + expression: 'count(/Morningstar TriStar MPPT SNMP/status.alarms[alarms.0],#3,"like","batterySense")=2' name: 'Status: Device has "batterySense" alarm flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING - - expression: '{count(#3,"batterySenseDisconnected","like")}=2' + expression: 'count(/Morningstar TriStar MPPT SNMP/status.alarms[alarms.0],#3,"like","batterySenseDisconnected")=2' name: 'Status: Device has "batterySenseDisconnected" alarm flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING - - expression: '{count(#3,"controllerWasReset","like")}=2' + expression: 'count(/Morningstar TriStar MPPT SNMP/status.alarms[alarms.0],#3,"like","controllerWasReset")=2' name: 'Status: Device has "controllerWasReset" alarm flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING - - expression: '{count(#3,"currentLimit","like")}=2' + expression: 'count(/Morningstar TriStar MPPT SNMP/status.alarms[alarms.0],#3,"like","currentLimit")=2' name: 'Status: Device has "currentLimit" alarm flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING - - expression: '{count(#3,"currentOffset","like")}=2' + expression: 'count(/Morningstar TriStar MPPT SNMP/status.alarms[alarms.0],#3,"like","currentOffset")=2' name: 'Status: Device has "currentOffset" alarm flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING - - expression: '{count(#3,"heatsinkTempSensorOpen","like")}=2' + expression: 'count(/Morningstar TriStar MPPT SNMP/status.alarms[alarms.0],#3,"like","heatsinkTempSensorOpen")=2' name: 'Status: Device has "heatsinkTempSensorOpen" alarm flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING - - expression: '{count(#3,"heatsinkTempSensorShorted","like")}=2' + expression: 'count(/Morningstar TriStar MPPT SNMP/status.alarms[alarms.0],#3,"like","heatsinkTempSensorShorted")=2' name: 'Status: Device has "heatsinkTempSensorShorted" alarm flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING - - expression: '{count(#3,"highArrayVCurrentLimit","like")}=2' + expression: 'count(/Morningstar TriStar MPPT SNMP/status.alarms[alarms.0],#3,"like","highArrayVCurrentLimit")=2' name: 'Status: Device has "highArrayVCurrentLimit" alarm flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING - - expression: '{count(#3,"highTemperatureCurrentLimit","like")}=2' + expression: 'count(/Morningstar TriStar MPPT SNMP/status.alarms[alarms.0],#3,"like","highTemperatureCurrentLimit")=2' name: 'Status: Device has "highTemperatureCurrentLimit" alarm flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING - - expression: '{count(#3,"highVoltageDisconnect","like")}=2' + expression: 'count(/Morningstar TriStar MPPT SNMP/status.alarms[alarms.0],#3,"like","highVoltageDisconnect")=2' name: 'Status: Device has "highVoltageDisconnect" alarm flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING - - expression: '{count(#3,"maxAdcValueReached","like")}=2' + expression: 'count(/Morningstar TriStar MPPT SNMP/status.alarms[alarms.0],#3,"like","maxAdcValueReached")=2' name: 'Status: Device has "maxAdcValueReached" alarm flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING - - expression: '{count(#3,"mosfetSOpen","like")}=2' + expression: 'count(/Morningstar TriStar MPPT SNMP/status.alarms[alarms.0],#3,"like","mosfetSOpen")=2' name: 'Status: Device has "mosfetSOpen" alarm flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING - - expression: '{count(#3,"p12VoltageReferenceOff","like")}=2' + expression: 'count(/Morningstar TriStar MPPT SNMP/status.alarms[alarms.0],#3,"like","p12VoltageReferenceOff")=2' name: 'Status: Device has "p12VoltageReferenceOff" alarm flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING - - expression: '{count(#3,"rtsDisconnected","like")}=2' + expression: 'count(/Morningstar TriStar MPPT SNMP/status.alarms[alarms.0],#3,"like","rtsDisconnected")=2' name: 'Status: Device has "rtsDisconnected" alarm flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING - - expression: '{count(#3,"rtsMiswire","like")}=2' + expression: 'count(/Morningstar TriStar MPPT SNMP/status.alarms[alarms.0],#3,"like","rtsMiswire")=2' name: 'Status: Device has "rtsMiswire" alarm flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING - - expression: '{count(#3,"rtsShorted","like")}=2' + expression: 'count(/Morningstar TriStar MPPT SNMP/status.alarms[alarms.0],#3,"like","rtsShorted")=2' name: 'Status: Device has "rtsShorted" alarm flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING - - expression: '{count(#3,"systemMiswire","like")}=2' + expression: 'count(/Morningstar TriStar MPPT SNMP/status.alarms[alarms.0],#3,"like","systemMiswire")=2' name: 'Status: Device has "systemMiswire" alarm flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING - - expression: '{count(#3,"uncalibrated","like")}=2' + expression: 'count(/Morningstar TriStar MPPT SNMP/status.alarms[alarms.0],#3,"like","uncalibrated")=2' name: 'Status: Device has "uncalibrated" alarm flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING @@ -530,57 +530,57 @@ zabbix_export: value: Status triggers: - - expression: '{count(#3,"arrayHvd","like")}=2' + expression: 'count(/Morningstar TriStar MPPT SNMP/status.faults[faults.0],#3,"like","arrayHvd")=2' name: 'Status: Device has "arrayHvd" faults flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: HIGH - - expression: '{count(#3,"batteryHvd","like")}=2' + expression: 'count(/Morningstar TriStar MPPT SNMP/status.faults[faults.0],#3,"like","batteryHvd")=2' name: 'Status: Device has "batteryHvd" faults flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: HIGH - - expression: '{count(#3,"customSettingsEdit","like")}=2' + expression: 'count(/Morningstar TriStar MPPT SNMP/status.faults[faults.0],#3,"like","customSettingsEdit")=2' name: 'Status: Device has "customSettingsEdit" faults flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: HIGH - - expression: '{count(#3,"dipSwitchChange","like")}=2' + expression: 'count(/Morningstar TriStar MPPT SNMP/status.faults[faults.0],#3,"like","dipSwitchChange")=2' name: 'Status: Device has "dipSwitchChange" faults flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: HIGH - - expression: '{count(#3,"eepromRetryLimit","like")}=2' + expression: 'count(/Morningstar TriStar MPPT SNMP/status.faults[faults.0],#3,"like","eepromRetryLimit")=2' name: 'Status: Device has "eepromRetryLimit" faults flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: HIGH - - expression: '{count(#3,"fetShort","like")}=2' + expression: 'count(/Morningstar TriStar MPPT SNMP/status.faults[faults.0],#3,"like","fetShort")=2' name: 'Status: Device has "fetShort" faults flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: HIGH - - expression: '{count(#3,"overcurrent","like")}=2' + expression: 'count(/Morningstar TriStar MPPT SNMP/status.faults[faults.0],#3,"like","overcurrent")=2' name: 'Status: Device has "overcurrent" faults flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: HIGH - - expression: '{count(#3,"rtsDisconnected","like")}=2' + expression: 'count(/Morningstar TriStar MPPT SNMP/status.faults[faults.0],#3,"like","rtsDisconnected")=2' name: 'Status: Device has "rtsDisconnected" faults flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: HIGH - - expression: '{count(#3,"rtsShorted","like")}=2' + expression: 'count(/Morningstar TriStar MPPT SNMP/status.faults[faults.0],#3,"like","rtsShorted")=2' name: 'Status: Device has "rtsShorted" faults flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: HIGH - - expression: '{count(#3,"slaveControlTimeout","like")}=2' + expression: 'count(/Morningstar TriStar MPPT SNMP/status.faults[faults.0],#3,"like","slaveControlTimeout")=2' name: 'Status: Device has "slaveControlTimeout" faults flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: HIGH - - expression: '{count(#3,"softwareFault","like")}=2' + expression: 'count(/Morningstar TriStar MPPT SNMP/status.faults[faults.0],#3,"like","softwareFault")=2' name: 'Status: Device has "softwareFault" faults flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: HIGH @@ -603,13 +603,13 @@ zabbix_export: value: Status triggers: - - expression: '{last()}<10m' + expression: 'last(/Morningstar TriStar MPPT SNMP/status.uptime)<10m' name: 'Status: Device has been restarted (uptime < 10m)' priority: INFO description: 'Uptime is less than 10 minutes' manual_close: 'YES' - - expression: '{nodata(5m)}=1' + expression: 'nodata(/Morningstar TriStar MPPT SNMP/status.uptime,5m)=1' name: 'Status: Failed to fetch data (or no data for 5m)' priority: WARNING description: 'Zabbix has not received data for items for the last 5 minutes' @@ -664,33 +664,33 @@ zabbix_export: value: Temperature triggers: - - expression: '{min(5m)}>{$BATTERY.TEMP.MAX.CRIT}' + expression: 'min(/Morningstar TriStar MPPT SNMP/temp.battery[batteryTemperature.0],5m)>{$BATTERY.TEMP.MAX.CRIT}' name: 'Temperature: Critically high battery temperature (over {$BATTERY.TEMP.MAX.CRIT}C for 5m)' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: HIGH - - expression: '{max(5m)}<{$BATTERY.TEMP.MIN.CRIT}' + expression: 'max(/Morningstar TriStar MPPT SNMP/temp.battery[batteryTemperature.0],5m)<{$BATTERY.TEMP.MIN.CRIT}' name: 'Temperature: Critically low battery temperature (below {$BATTERY.TEMP.MIN.WARN}C for 5m)' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: HIGH - - expression: '{min(5m)}>{$BATTERY.TEMP.MAX.WARN}' + expression: 'min(/Morningstar TriStar MPPT SNMP/temp.battery[batteryTemperature.0],5m)>{$BATTERY.TEMP.MAX.WARN}' name: 'Temperature: High battery temperature (over {$BATTERY.TEMP.MAX.WARN}C for 5m)' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING dependencies: - name: 'Temperature: Critically high battery temperature (over {$BATTERY.TEMP.MAX.CRIT}C for 5m)' - expression: '{Morningstar TriStar MPPT SNMP:temp.battery[batteryTemperature.0].min(5m)}>{$BATTERY.TEMP.MAX.CRIT}' + expression: 'min(/Morningstar TriStar MPPT SNMP/temp.battery[batteryTemperature.0],5m)>{$BATTERY.TEMP.MAX.CRIT}' - - expression: '{max(5m)}<{$BATTERY.TEMP.MIN.WARN}' + expression: 'max(/Morningstar TriStar MPPT SNMP/temp.battery[batteryTemperature.0],5m)<{$BATTERY.TEMP.MIN.WARN}' name: 'Temperature: Low battery temperature (below {$BATTERY.TEMP.MIN.WARN}C for 5m)' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING dependencies: - name: 'Temperature: Critically low battery temperature (below {$BATTERY.TEMP.MIN.WARN}C for 5m)' - expression: '{Morningstar TriStar MPPT SNMP:temp.battery[batteryTemperature.0].max(5m)}<{$BATTERY.TEMP.MIN.CRIT}' + expression: 'max(/Morningstar TriStar MPPT SNMP/temp.battery[batteryTemperature.0],5m)<{$BATTERY.TEMP.MIN.CRIT}' - name: 'Temperature: Heatsink' type: SNMP_AGENT @@ -749,33 +749,33 @@ zabbix_export: value: Battery trigger_prototypes: - - expression: '{min(5m)}>{#VOLTAGE.MAX.CRIT}' + expression: 'min(/Morningstar TriStar MPPT SNMP/battery.voltage[batteryVoltage.0{#SINGLETON}],5m)>{#VOLTAGE.MAX.CRIT}' name: 'Battery: Critically high battery voltage (over {#VOLTAGE.MAX.CRIT}V for 5m)' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: HIGH - - expression: '{max(5m)}<{#VOLTAGE.MIN.CRIT}' + expression: 'max(/Morningstar TriStar MPPT SNMP/battery.voltage[batteryVoltage.0{#SINGLETON}],5m)<{#VOLTAGE.MIN.CRIT}' name: 'Battery: Critically low battery voltage (below {#VOLTAGE.MIN.CRIT}V for 5m)' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: HIGH - - expression: '{min(5m)}>{#VOLTAGE.MAX.WARN}' + expression: 'min(/Morningstar TriStar MPPT SNMP/battery.voltage[batteryVoltage.0{#SINGLETON}],5m)>{#VOLTAGE.MAX.WARN}' name: 'Battery: High battery voltage (over {#VOLTAGE.MAX.WARN}V for 5m)' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING dependencies: - name: 'Battery: Critically high battery voltage (over {#VOLTAGE.MAX.CRIT}V for 5m)' - expression: '{Morningstar TriStar MPPT SNMP:battery.voltage[batteryVoltage.0{#SINGLETON}].min(5m)}>{#VOLTAGE.MAX.CRIT}' + expression: 'min(/Morningstar TriStar MPPT SNMP/battery.voltage[batteryVoltage.0{#SINGLETON}],5m)>{#VOLTAGE.MAX.CRIT}' - - expression: '{max(5m)}<{#VOLTAGE.MIN.WARN}' + expression: 'max(/Morningstar TriStar MPPT SNMP/battery.voltage[batteryVoltage.0{#SINGLETON}],5m)<{#VOLTAGE.MIN.WARN}' name: 'Battery: Low battery voltage (below {#VOLTAGE.MIN.WARN}V for 5m)' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING dependencies: - name: 'Battery: Critically low battery voltage (below {#VOLTAGE.MIN.CRIT}V for 5m)' - expression: '{Morningstar TriStar MPPT SNMP:battery.voltage[batteryVoltage.0{#SINGLETON}].max(5m)}<{#VOLTAGE.MIN.CRIT}' + expression: 'max(/Morningstar TriStar MPPT SNMP/battery.voltage[batteryVoltage.0{#SINGLETON}],5m)<{#VOLTAGE.MIN.CRIT}' graph_prototypes: - name: 'Battery: Voltage{#SINGLETON}' diff --git a/templates/net/morningstar_snmp/tristar_pwm_snmp/tristar_pwm_snmp.yaml b/templates/net/morningstar_snmp/tristar_pwm_snmp/tristar_pwm_snmp.yaml index 1b6cab0520e..dd715e1fb66 100644 --- a/templates/net/morningstar_snmp/tristar_pwm_snmp/tristar_pwm_snmp.yaml +++ b/templates/net/morningstar_snmp/tristar_pwm_snmp/tristar_pwm_snmp.yaml @@ -1,6 +1,6 @@ zabbix_export: version: '5.4' - date: '2021-02-23T11:04:29Z' + date: '2021-05-09T00:00:00Z' groups: - name: Templates/Modules @@ -175,87 +175,87 @@ zabbix_export: value: Status triggers: - - expression: '{count(#3,"batterySense","like")}=2' + expression: 'count(/Morningstar TriStar PWM SNMP/status.alarms[alarms.0],#3,"like","batterySense")=2' name: 'Status: Device has "batterySense" alarm flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING - - expression: '{count(#3,"batterySenseDisconnected","like")}=2' + expression: 'count(/Morningstar TriStar PWM SNMP/status.alarms[alarms.0],#3,"like","batterySenseDisconnected")=2' name: 'Status: Device has "batterySenseDisconnected" alarm flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING - - expression: '{count(#3,"currentLimit","like")}=2' + expression: 'count(/Morningstar TriStar PWM SNMP/status.alarms[alarms.0],#3,"like","currentLimit")=2' name: 'Status: Device has "currentLimit" alarm flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING - - expression: '{count(#3,"currentOffset","like")}=2' + expression: 'count(/Morningstar TriStar PWM SNMP/status.alarms[alarms.0],#3,"like","currentOffset")=2' name: 'Status: Device has "currentOffset" alarm flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING - - expression: '{count(#3,"diversionLoadNearMax","like")}=2' + expression: 'count(/Morningstar TriStar PWM SNMP/status.alarms[alarms.0],#3,"like","diversionLoadNearMax")=2' name: 'Status: Device has "diversionLoadNearMax" alarm flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING - - expression: '{count(#3,"heatsinkTempSensorOpen","like")}=2' + expression: 'count(/Morningstar TriStar PWM SNMP/status.alarms[alarms.0],#3,"like","heatsinkTempSensorOpen")=2' name: 'Status: Device has "heatsinkTempSensorOpen" alarm flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING - - expression: '{count(#3,"heatsinkTempSensorShorted","like")}=2' + expression: 'count(/Morningstar TriStar PWM SNMP/status.alarms[alarms.0],#3,"like","heatsinkTempSensorShorted")=2' name: 'Status: Device has "heatsinkTempSensorShorted" alarm flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING - - expression: '{count(#3,"highVoltageDisconnect","like")}=2' + expression: 'count(/Morningstar TriStar PWM SNMP/status.alarms[alarms.0],#3,"like","highVoltageDisconnect")=2' name: 'Status: Device has "highVoltageDisconnect" alarm flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING - - expression: '{count(#3,"loadDisconnectState","like")}=2' + expression: 'count(/Morningstar TriStar PWM SNMP/status.alarms[alarms.0],#3,"like","loadDisconnectState")=2' name: 'Status: Device has "loadDisconnectState" alarm flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING - - expression: '{count(#3,"mosfetSOpen","like")}=2' + expression: 'count(/Morningstar TriStar PWM SNMP/status.alarms[alarms.0],#3,"like","mosfetSOpen")=2' name: 'Status: Device has "mosfetSOpen" alarm flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING - - expression: '{count(#3,"p12VoltageReferenceOff","like")}=2' + expression: 'count(/Morningstar TriStar PWM SNMP/status.alarms[alarms.0],#3,"like","p12VoltageReferenceOff")=2' name: 'Status: Device has "p12VoltageReferenceOff" alarm flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING - - expression: '{count(#3,"rtsDisconnected","like")}=2' + expression: 'count(/Morningstar TriStar PWM SNMP/status.alarms[alarms.0],#3,"like","rtsDisconnected")=2' name: 'Status: Device has "rtsDisconnected" alarm flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING - - expression: '{count(#3,"rtsMiswire","like")}=2' + expression: 'count(/Morningstar TriStar PWM SNMP/status.alarms[alarms.0],#3,"like","rtsMiswire")=2' name: 'Status: Device has "rtsMiswire" alarm flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING - - expression: '{count(#3,"rtsShorted","like")}=2' + expression: 'count(/Morningstar TriStar PWM SNMP/status.alarms[alarms.0],#3,"like","rtsShorted")=2' name: 'Status: Device has "rtsShorted" alarm flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING - - expression: '{count(#3,"systemMiswire","like")}=2' + expression: 'count(/Morningstar TriStar PWM SNMP/status.alarms[alarms.0],#3,"like","systemMiswire")=2' name: 'Status: Device has "systemMiswire" alarm flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING - - expression: '{count(#3,"tristarHot","like")}=2' + expression: 'count(/Morningstar TriStar PWM SNMP/status.alarms[alarms.0],#3,"like","tristarHot")=2' name: 'Status: Device has "tristarHot" alarm flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING - - expression: '{count(#3,"uncalibrated","like")}=2' + expression: 'count(/Morningstar TriStar PWM SNMP/status.alarms[alarms.0],#3,"like","uncalibrated")=2' name: 'Status: Device has "uncalibrated" alarm flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING @@ -314,62 +314,62 @@ zabbix_export: value: Status triggers: - - expression: '{count(#3,"customSettingsEdit","like")}=2' + expression: 'count(/Morningstar TriStar PWM SNMP/status.faults[faults.0],#3,"like","customSettingsEdit")=2' name: 'Status: Device has "customSettingsEdit" faults flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: HIGH - - expression: '{count(#3,"dipSwitchChange","like")}=2' + expression: 'count(/Morningstar TriStar PWM SNMP/status.faults[faults.0],#3,"like","dipSwitchChange")=2' name: 'Status: Device has "dipSwitchChange" faults flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: HIGH - - expression: '{count(#3,"externalShort","like")}=2' + expression: 'count(/Morningstar TriStar PWM SNMP/status.faults[faults.0],#3,"like","externalShort")=2' name: 'Status: Device has "externalShort" faults flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: HIGH - - expression: '{count(#3,"highVoltageDisconnect","like")}=2' + expression: 'count(/Morningstar TriStar PWM SNMP/status.faults[faults.0],#3,"like","highVoltageDisconnect")=2' name: 'Status: Device has "highVoltageDisconnect" faults flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: HIGH - - expression: '{count(#3,"mosfetSShorted","like")}=2' + expression: 'count(/Morningstar TriStar PWM SNMP/status.faults[faults.0],#3,"like","mosfetSShorted")=2' name: 'Status: Device has "mosfetSShorted" faults flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: HIGH - - expression: '{count(#3,"overcurrent","like")}=2' + expression: 'count(/Morningstar TriStar PWM SNMP/status.faults[faults.0],#3,"like","overcurrent")=2' name: 'Status: Device has "overcurrent" faults flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: HIGH - - expression: '{count(#3,"reset","like")}=2' + expression: 'count(/Morningstar TriStar PWM SNMP/status.faults[faults.0],#3,"like","reset")=2' name: 'Status: Device has "reset" faults flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: HIGH - - expression: '{count(#3,"rtsDisconnected","like")}=2' + expression: 'count(/Morningstar TriStar PWM SNMP/status.faults[faults.0],#3,"like","rtsDisconnected")=2' name: 'Status: Device has "rtsDisconnected" faults flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: HIGH - - expression: '{count(#3,"rtsShorted","like")}=2' + expression: 'count(/Morningstar TriStar PWM SNMP/status.faults[faults.0],#3,"like","rtsShorted")=2' name: 'Status: Device has "rtsShorted" faults flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: HIGH - - expression: '{count(#3,"softwareFault","like")}=2' + expression: 'count(/Morningstar TriStar PWM SNMP/status.faults[faults.0],#3,"like","softwareFault")=2' name: 'Status: Device has "softwareFault" faults flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: HIGH - - expression: '{count(#3,"systemMiswire","like")}=2' + expression: 'count(/Morningstar TriStar PWM SNMP/status.faults[faults.0],#3,"like","systemMiswire")=2' name: 'Status: Device has "systemMiswire" faults flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: HIGH - - expression: '{count(#3,"tristarHot","like")}=2' + expression: 'count(/Morningstar TriStar PWM SNMP/status.faults[faults.0],#3,"like","tristarHot")=2' name: 'Status: Device has "tristarHot" faults flag' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: HIGH @@ -392,13 +392,13 @@ zabbix_export: value: Status triggers: - - expression: '{last()}<10m' + expression: 'last(/Morningstar TriStar PWM SNMP/status.uptime)<10m' name: 'Status: Device has been restarted (uptime < 10m)' priority: INFO description: 'Uptime is less than 10 minutes' manual_close: 'YES' - - expression: '{nodata(5m)}=1' + expression: 'nodata(/Morningstar TriStar PWM SNMP/status.uptime,5m)=1' name: 'Status: Failed to fetch data (or no data for 5m)' priority: WARNING description: 'Zabbix has not received data for items for the last 5 minutes' @@ -424,33 +424,33 @@ zabbix_export: value: Temperature triggers: - - expression: '{min(5m)}>{$BATTERY.TEMP.MAX.CRIT}' + expression: 'min(/Morningstar TriStar PWM SNMP/temp.battery[batteryTemperature.0],5m)>{$BATTERY.TEMP.MAX.CRIT}' name: 'Temperature: Critically high battery temperature (over {$BATTERY.TEMP.MAX.CRIT}C for 5m)' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: HIGH - - expression: '{max(5m)}<{$BATTERY.TEMP.MIN.CRIT}' + expression: 'max(/Morningstar TriStar PWM SNMP/temp.battery[batteryTemperature.0],5m)<{$BATTERY.TEMP.MIN.CRIT}' name: 'Temperature: Critically low battery temperature (below {$BATTERY.TEMP.MIN.WARN}C for 5m)' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: HIGH - - expression: '{min(5m)}>{$BATTERY.TEMP.MAX.WARN}' + expression: 'min(/Morningstar TriStar PWM SNMP/temp.battery[batteryTemperature.0],5m)>{$BATTERY.TEMP.MAX.WARN}' name: 'Temperature: High battery temperature (over {$BATTERY.TEMP.MAX.WARN}C for 5m)' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING dependencies: - name: 'Temperature: Critically high battery temperature (over {$BATTERY.TEMP.MAX.CRIT}C for 5m)' - expression: '{Morningstar TriStar PWM SNMP:temp.battery[batteryTemperature.0].min(5m)}>{$BATTERY.TEMP.MAX.CRIT}' + expression: 'min(/Morningstar TriStar PWM SNMP/temp.battery[batteryTemperature.0],5m)>{$BATTERY.TEMP.MAX.CRIT}' - - expression: '{max(5m)}<{$BATTERY.TEMP.MIN.WARN}' + expression: 'max(/Morningstar TriStar PWM SNMP/temp.battery[batteryTemperature.0],5m)<{$BATTERY.TEMP.MIN.WARN}' name: 'Temperature: Low battery temperature (below {$BATTERY.TEMP.MIN.WARN}C for 5m)' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING dependencies: - name: 'Temperature: Critically low battery temperature (below {$BATTERY.TEMP.MIN.WARN}C for 5m)' - expression: '{Morningstar TriStar PWM SNMP:temp.battery[batteryTemperature.0].max(5m)}<{$BATTERY.TEMP.MIN.CRIT}' + expression: 'max(/Morningstar TriStar PWM SNMP/temp.battery[batteryTemperature.0],5m)<{$BATTERY.TEMP.MIN.CRIT}' - name: 'Temperature: Heatsink' type: SNMP_AGENT @@ -509,33 +509,33 @@ zabbix_export: value: Battery trigger_prototypes: - - expression: '{min(5m)}>{#VOLTAGE.MAX.CRIT}' + expression: 'min(/Morningstar TriStar PWM SNMP/battery.voltage[batteryVoltage.0{#SINGLETON}],5m)>{#VOLTAGE.MAX.CRIT}' name: 'Battery: Critically high battery voltage (over {#VOLTAGE.MAX.CRIT}V for 5m)' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: HIGH - - expression: '{max(5m)}<{#VOLTAGE.MIN.CRIT}' + expression: 'max(/Morningstar TriStar PWM SNMP/battery.voltage[batteryVoltage.0{#SINGLETON}],5m)<{#VOLTAGE.MIN.CRIT}' name: 'Battery: Critically low battery voltage (below {#VOLTAGE.MIN.CRIT}V for 5m)' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: HIGH - - expression: '{min(5m)}>{#VOLTAGE.MAX.WARN}' + expression: 'min(/Morningstar TriStar PWM SNMP/battery.voltage[batteryVoltage.0{#SINGLETON}],5m)>{#VOLTAGE.MAX.WARN}' name: 'Battery: High battery voltage (over {#VOLTAGE.MAX.WARN}V for 5m)' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING dependencies: - name: 'Battery: Critically high battery voltage (over {#VOLTAGE.MAX.CRIT}V for 5m)' - expression: '{Morningstar TriStar PWM SNMP:battery.voltage[batteryVoltage.0{#SINGLETON}].min(5m)}>{#VOLTAGE.MAX.CRIT}' + expression: 'min(/Morningstar TriStar PWM SNMP/battery.voltage[batteryVoltage.0{#SINGLETON}],5m)>{#VOLTAGE.MAX.CRIT}' - - expression: '{max(5m)}<{#VOLTAGE.MIN.WARN}' + expression: 'max(/Morningstar TriStar PWM SNMP/battery.voltage[batteryVoltage.0{#SINGLETON}],5m)<{#VOLTAGE.MIN.WARN}' name: 'Battery: Low battery voltage (below {#VOLTAGE.MIN.WARN}V for 5m)' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING dependencies: - name: 'Battery: Critically low battery voltage (below {#VOLTAGE.MIN.CRIT}V for 5m)' - expression: '{Morningstar TriStar PWM SNMP:battery.voltage[batteryVoltage.0{#SINGLETON}].max(5m)}<{#VOLTAGE.MIN.CRIT}' + expression: 'max(/Morningstar TriStar PWM SNMP/battery.voltage[batteryVoltage.0{#SINGLETON}],5m)<{#VOLTAGE.MIN.CRIT}' graph_prototypes: - name: 'Battery: Voltage{#SINGLETON}' @@ -698,19 +698,19 @@ zabbix_export: value: Battery trigger_prototypes: - - expression: '{last()}={$CHARGE.STATE.CRIT}' + expression: 'last(/Morningstar TriStar PWM SNMP/charge.state[controlState.0{#SINGLETON}])={$CHARGE.STATE.CRIT}' name: 'Battery: Device charge in critical state' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: HIGH - - expression: '{last()}={$CHARGE.STATE.WARN}' + expression: 'last(/Morningstar TriStar PWM SNMP/charge.state[controlState.0{#SINGLETON}])={$CHARGE.STATE.WARN}' name: 'Battery: Device charge in warning state' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING dependencies: - name: 'Battery: Device charge in critical state' - expression: '{Morningstar TriStar PWM SNMP:charge.state[controlState.0{#SINGLETON}].last()}={$CHARGE.STATE.CRIT}' + expression: 'last(/Morningstar TriStar PWM SNMP/charge.state[controlState.0{#SINGLETON}])={$CHARGE.STATE.CRIT}' - name: 'Battery: Target Voltage{#SINGLETON}' type: SNMP_AGENT @@ -834,19 +834,19 @@ zabbix_export: value: Load trigger_prototypes: - - expression: '{last()}={$LOAD.STATE.CRIT:"lvd"} or {last()}={$LOAD.STATE.CRIT:"fault"}' + expression: 'last(/Morningstar TriStar PWM SNMP/load.state[loadState.0{#SINGLETON}])={$LOAD.STATE.CRIT:"lvd"} or last(/Morningstar TriStar PWM SNMP/load.state[loadState.0{#SINGLETON}])={$LOAD.STATE.CRIT:"fault"}' name: 'Load: Device load in critical state' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: HIGH - - expression: '{last()}={$LOAD.STATE.WARN:"lvdWarning"} or {last()}={$LOAD.STATE.WARN:"override"}' + expression: 'last(/Morningstar TriStar PWM SNMP/load.state[loadState.0{#SINGLETON}])={$LOAD.STATE.WARN:"lvdWarning"} or last(/Morningstar TriStar PWM SNMP/load.state[loadState.0{#SINGLETON}])={$LOAD.STATE.WARN:"override"}' name: 'Load: Device load in warning state' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING dependencies: - name: 'Load: Device load in critical state' - expression: '{Morningstar TriStar PWM SNMP:load.state[loadState.0{#SINGLETON}].last()}={$LOAD.STATE.CRIT:"lvd"} or {Morningstar TriStar PWM SNMP:load.state[loadState.0{#SINGLETON}].last()}={$LOAD.STATE.CRIT:"fault"}' + expression: 'last(/Morningstar TriStar PWM SNMP/load.state[loadState.0{#SINGLETON}])={$LOAD.STATE.CRIT:"lvd"} or last(/Morningstar TriStar PWM SNMP/load.state[loadState.0{#SINGLETON}])={$LOAD.STATE.CRIT:"fault"}' master_item: key: 'control.mode[controlMode.0]' preprocessing: diff --git a/templates/net/netgear_snmp/template_net_netgear_snmp.yaml b/templates/net/netgear_snmp/template_net_netgear_snmp.yaml index b1a5d791ed9..18a369dfca3 100644 --- a/templates/net/netgear_snmp/template_net_netgear_snmp.yaml +++ b/templates/net/netgear_snmp/template_net_netgear_snmp.yaml @@ -1,6 +1,6 @@ zabbix_export: version: '5.4' - date: '2021-02-23T11:04:25Z' + date: '2021-05-09T00:00:00Z' groups: - name: 'Templates/Network devices' @@ -48,7 +48,7 @@ zabbix_export: value: CPU triggers: - - expression: '{min(5m)}>{$CPU.UTIL.CRIT}' + expression: 'min(/Netgear Fastpath SNMP/system.cpu.util[agentSwitchCpuProcessTotalUtilization.0],5m)>{$CPU.UTIL.CRIT}' name: 'High CPU utilization (over {$CPU.UTIL.CRIT}% for 5m)' opdata: 'Current utilization: {ITEM.LASTVALUE1}' priority: WARNING @@ -97,7 +97,7 @@ zabbix_export: value: Inventory triggers: - - expression: '{diff()}=1 and {strlen()}>0' + expression: '(last(/Netgear Fastpath SNMP/system.hw.serialnumber,#1)<>last(/Netgear Fastpath SNMP/system.hw.serialnumber,#2))=1 and length(last(/Netgear Fastpath SNMP/system.hw.serialnumber))>0' name: 'Device has been replaced (new serial number received)' priority: INFO description: 'Device serial number has changed. Ack to close' @@ -126,7 +126,7 @@ zabbix_export: value: Inventory triggers: - - expression: '{diff()}=1 and {strlen()}>0' + expression: '(last(/Netgear Fastpath SNMP/system.sw.os[agentInventoryOperatingSystem.0],#1)<>last(/Netgear Fastpath SNMP/system.sw.os[agentInventoryOperatingSystem.0],#2))=1 and length(last(/Netgear Fastpath SNMP/system.sw.os[agentInventoryOperatingSystem.0]))>0' name: 'Operating system description has changed' priority: INFO description: 'Operating system description has changed. Possible reasons that system has been updated or replaced. Ack to close.' @@ -166,7 +166,7 @@ zabbix_export: history: 7d value_type: FLOAT units: '%' - params: '(last("vm.memory.total[agentSwitchCpuProcessMemAvailable.0]")-last("vm.memory.available[agentSwitchCpuProcessMemFree.0]"))/last("vm.memory.total[agentSwitchCpuProcessMemAvailable.0]")*100' + params: '(last(//vm.memory.total[agentSwitchCpuProcessMemAvailable.0])-last(//vm.memory.available[agentSwitchCpuProcessMemFree.0]))/last(//vm.memory.total[agentSwitchCpuProcessMemAvailable.0])*100' description: 'Memory utilization in %' tags: - @@ -174,7 +174,7 @@ zabbix_export: value: Memory triggers: - - expression: '{min(5m)}>{$MEMORY.UTIL.MAX}' + expression: 'min(/Netgear Fastpath SNMP/vm.memory.util[memoryUsedPercentage.0],5m)>{$MEMORY.UTIL.MAX}' name: 'High memory utilization (>{$MEMORY.UTIL.MAX}% for 5m)' priority: AVERAGE description: 'The system is running out of free memory.' @@ -206,7 +206,7 @@ zabbix_export: value: Fans trigger_prototypes: - - expression: '{count(#1,{$FAN_CRIT_STATUS:"failed"},eq)}=1' + expression: 'count(/Netgear Fastpath SNMP/sensor.fan.status[boxServicesFanItemState.{#SNMPINDEX}],#1,"eq","{$FAN_CRIT_STATUS:\"failed\"}")=1' name: '#{#SNMPVALUE}: Fan is in critical state' opdata: 'Current state: {ITEM.LASTVALUE1}' priority: AVERAGE @@ -238,7 +238,7 @@ zabbix_export: value: 'Power supply' trigger_prototypes: - - expression: '{count(#1,{$PSU_CRIT_STATUS:"failed"},eq)}=1' + expression: 'count(/Netgear Fastpath SNMP/sensor.psu.status[boxServicesPowSupplyItemState.{#SNMPINDEX}],#1,"eq","{$PSU_CRIT_STATUS:\"failed\"}")=1' name: '#{#SNMPVALUE}: Power supply is in critical state' opdata: 'Current state: {ITEM.LASTVALUE1}' priority: AVERAGE @@ -285,31 +285,31 @@ zabbix_export: value: Temperature trigger_prototypes: - - expression: '{avg(5m)}<{$TEMP_CRIT_LOW:""}' + expression: 'avg(/Netgear Fastpath SNMP/sensor.temp.value[boxServicesTempSensorTemperature.{#SNMPINDEX}],5m)<{$TEMP_CRIT_LOW:""}' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{min(5m)}>{$TEMP_CRIT_LOW:""}+3' + recovery_expression: 'min(/Netgear Fastpath SNMP/sensor.temp.value[boxServicesTempSensorTemperature.{#SNMPINDEX}],5m)>{$TEMP_CRIT_LOW:""}+3' name: '#{#SNMPVALUE}: Temperature is too low: <{$TEMP_CRIT_LOW:""}' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: AVERAGE trigger_prototypes: - expression: | - {Netgear Fastpath SNMP:sensor.temp.value[boxServicesTempSensorTemperature.{#SNMPINDEX}].avg(5m)}>{$TEMP_CRIT:""} + avg(/Netgear Fastpath SNMP/sensor.temp.value[boxServicesTempSensorTemperature.{#SNMPINDEX}],5m)>{$TEMP_CRIT:""} or - {Netgear Fastpath SNMP:sensor.temp.status[boxServicesTempSensorState.{#SNMPINDEX}].last()}={$TEMP_CRIT_STATUS} + last(/Netgear Fastpath SNMP/sensor.temp.status[boxServicesTempSensorState.{#SNMPINDEX}])={$TEMP_CRIT_STATUS} recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{Netgear Fastpath SNMP:sensor.temp.value[boxServicesTempSensorTemperature.{#SNMPINDEX}].max(5m)}<{$TEMP_CRIT:""}-3' + recovery_expression: 'max(/Netgear Fastpath SNMP/sensor.temp.value[boxServicesTempSensorTemperature.{#SNMPINDEX}],5m)<{$TEMP_CRIT:""}-3' name: '#{#SNMPVALUE}: Temperature is above critical threshold: >{$TEMP_CRIT:""}' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: HIGH description: 'This trigger uses temperature sensor values as well as temperature sensor status if available' - expression: | - {Netgear Fastpath SNMP:sensor.temp.value[boxServicesTempSensorTemperature.{#SNMPINDEX}].avg(5m)}>{$TEMP_WARN:""} + avg(/Netgear Fastpath SNMP/sensor.temp.value[boxServicesTempSensorTemperature.{#SNMPINDEX}],5m)>{$TEMP_WARN:""} or - {Netgear Fastpath SNMP:sensor.temp.status[boxServicesTempSensorState.{#SNMPINDEX}].last()}={$TEMP_WARN_STATUS} + last(/Netgear Fastpath SNMP/sensor.temp.status[boxServicesTempSensorState.{#SNMPINDEX}])={$TEMP_WARN_STATUS} recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{Netgear Fastpath SNMP:sensor.temp.value[boxServicesTempSensorTemperature.{#SNMPINDEX}].max(5m)}<{$TEMP_WARN:""}-3' + recovery_expression: 'max(/Netgear Fastpath SNMP/sensor.temp.value[boxServicesTempSensorTemperature.{#SNMPINDEX}],5m)<{$TEMP_WARN:""}-3' name: '#{#SNMPVALUE}: Temperature is above warning threshold: >{$TEMP_WARN:""}' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING @@ -318,10 +318,10 @@ zabbix_export: - name: '#{#SNMPVALUE}: Temperature is above critical threshold: >{$TEMP_CRIT:""}' expression: | - {Netgear Fastpath SNMP:sensor.temp.value[boxServicesTempSensorTemperature.{#SNMPINDEX}].avg(5m)}>{$TEMP_CRIT:""} + avg(/Netgear Fastpath SNMP/sensor.temp.value[boxServicesTempSensorTemperature.{#SNMPINDEX}],5m)>{$TEMP_CRIT:""} or - {Netgear Fastpath SNMP:sensor.temp.status[boxServicesTempSensorState.{#SNMPINDEX}].last()}={$TEMP_CRIT_STATUS} - recovery_expression: '{Netgear Fastpath SNMP:sensor.temp.value[boxServicesTempSensorTemperature.{#SNMPINDEX}].max(5m)}<{$TEMP_CRIT:""}-3' + last(/Netgear Fastpath SNMP/sensor.temp.status[boxServicesTempSensorState.{#SNMPINDEX}])={$TEMP_CRIT_STATUS} + recovery_expression: 'max(/Netgear Fastpath SNMP/sensor.temp.value[boxServicesTempSensorTemperature.{#SNMPINDEX}],5m)<{$TEMP_CRIT:""}-3' macros: - macro: '{$CPU.UTIL.CRIT}' diff --git a/templates/net/qtech_snmp/template_net_qtech_snmp.yaml b/templates/net/qtech_snmp/template_net_qtech_snmp.yaml index 18ae1f40310..570fa2dcdf1 100644 --- a/templates/net/qtech_snmp/template_net_qtech_snmp.yaml +++ b/templates/net/qtech_snmp/template_net_qtech_snmp.yaml @@ -1,6 +1,6 @@ zabbix_export: version: '5.4' - date: '2021-02-23T11:04:33Z' + date: '2021-05-09T00:00:00Z' groups: - name: 'Templates/Network devices' @@ -44,17 +44,17 @@ zabbix_export: value: Temperature triggers: - - expression: '{avg(5m)}>{$TEMP_CRIT:""}' + expression: 'avg(/QTech QSW SNMP/sensor.temp.value[switchTemperature.0],5m)>{$TEMP_CRIT:""}' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{max(5m)}<{$TEMP_CRIT:""}-3' + recovery_expression: 'max(/QTech QSW SNMP/sensor.temp.value[switchTemperature.0],5m)<{$TEMP_CRIT:""}-3' name: 'Temperature is above critical threshold: >{$TEMP_CRIT:""}' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: HIGH description: 'This trigger uses temperature sensor values as well as temperature sensor status if available' - - expression: '{avg(5m)}>{$TEMP_WARN:""}' + expression: 'avg(/QTech QSW SNMP/sensor.temp.value[switchTemperature.0],5m)>{$TEMP_WARN:""}' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{max(5m)}<{$TEMP_WARN:""}-3' + recovery_expression: 'max(/QTech QSW SNMP/sensor.temp.value[switchTemperature.0],5m)<{$TEMP_WARN:""}-3' name: 'Temperature is above warning threshold: >{$TEMP_WARN:""}' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING @@ -62,12 +62,12 @@ zabbix_export: dependencies: - name: 'Temperature is above critical threshold: >{$TEMP_CRIT:""}' - expression: '{QTech QSW SNMP:sensor.temp.value[switchTemperature.0].avg(5m)}>{$TEMP_CRIT:""}' - recovery_expression: '{QTech QSW SNMP:sensor.temp.value[switchTemperature.0].max(5m)}<{$TEMP_CRIT:""}-3' + expression: 'avg(/QTech QSW SNMP/sensor.temp.value[switchTemperature.0],5m)>{$TEMP_CRIT:""}' + recovery_expression: 'max(/QTech QSW SNMP/sensor.temp.value[switchTemperature.0],5m)<{$TEMP_CRIT:""}-3' - - expression: '{avg(5m)}<{$TEMP_CRIT_LOW:""}' + expression: 'avg(/QTech QSW SNMP/sensor.temp.value[switchTemperature.0],5m)<{$TEMP_CRIT_LOW:""}' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{min(5m)}>{$TEMP_CRIT_LOW:""}+3' + recovery_expression: 'min(/QTech QSW SNMP/sensor.temp.value[switchTemperature.0],5m)>{$TEMP_CRIT_LOW:""}+3' name: 'Temperature is too low: <{$TEMP_CRIT_LOW:""}' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: AVERAGE @@ -88,7 +88,7 @@ zabbix_export: value: CPU triggers: - - expression: '{min(5m)}>{$CPU.UTIL.CRIT}' + expression: 'min(/QTech QSW SNMP/system.cpu.util[switchCpuUsage.0],5m)>{$CPU.UTIL.CRIT}' name: 'High CPU utilization (over {$CPU.UTIL.CRIT}% for 5m)' opdata: 'Current utilization: {ITEM.LASTVALUE1}' priority: WARNING @@ -114,7 +114,7 @@ zabbix_export: value: Inventory triggers: - - expression: '{diff()}=1 and {strlen()}>0' + expression: '(last(/QTech QSW SNMP/system.hw.firmware,#1)<>last(/QTech QSW SNMP/system.hw.firmware,#2))=1 and length(last(/QTech QSW SNMP/system.hw.firmware))>0' name: 'Firmware has changed' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: INFO @@ -162,7 +162,7 @@ zabbix_export: value: Inventory triggers: - - expression: '{diff()}=1 and {strlen()}>0' + expression: '(last(/QTech QSW SNMP/system.hw.serialnumber,#1)<>last(/QTech QSW SNMP/system.hw.serialnumber,#2))=1 and length(last(/QTech QSW SNMP/system.hw.serialnumber))>0' name: 'Device has been replaced (new serial number received)' priority: INFO description: 'Device serial number has changed. Ack to close' @@ -208,7 +208,7 @@ zabbix_export: value: Inventory triggers: - - expression: '{diff()}=1 and {strlen()}>0' + expression: '(last(/QTech QSW SNMP/system.sw.os[sysSoftwareVersion.0],#1)<>last(/QTech QSW SNMP/system.sw.os[sysSoftwareVersion.0],#2))=1 and length(last(/QTech QSW SNMP/system.sw.os[sysSoftwareVersion.0]))>0' name: 'Operating system description has changed' priority: INFO description: 'Operating system description has changed. Possible reasons that system has been updated or replaced. Ack to close.' @@ -248,7 +248,7 @@ zabbix_export: history: 7d value_type: FLOAT units: '%' - params: 'last("vm.memory.used[switchMemoryBusy.0]")/last("vm.memory.total[switchMemorySize.0]")*100' + params: 'last(//vm.memory.used[switchMemoryBusy.0])/last(//vm.memory.total[switchMemorySize.0])*100' description: 'Memory utilization in %' tags: - @@ -256,7 +256,7 @@ zabbix_export: value: Memory triggers: - - expression: '{min(5m)}>{$MEMORY.UTIL.MAX}' + expression: 'min(/QTech QSW SNMP/vm.memory.util[vm.memory.util.0],5m)>{$MEMORY.UTIL.MAX}' name: 'High memory utilization (>{$MEMORY.UTIL.MAX}% for 5m)' priority: AVERAGE description: 'The system is running out of free memory.' @@ -285,7 +285,7 @@ zabbix_export: value: Fans trigger_prototypes: - - expression: '{count(#1,{$FAN_CRIT_STATUS},eq)}=1' + expression: 'count(/QTech QSW SNMP/sensor.fan.status[sysFanStatus.{#SNMPINDEX}],#1,"eq","{$FAN_CRIT_STATUS}")=1' name: '{#SNMPINDEX}: Fan is in critical state' opdata: 'Current state: {ITEM.LASTVALUE1}' priority: AVERAGE @@ -314,7 +314,7 @@ zabbix_export: value: 'Power supply' trigger_prototypes: - - expression: '{count(#1,{$PSU_CRIT_STATUS},eq)}=1' + expression: 'count(/QTech QSW SNMP/sensor.psu.status[sysPowerStatus.{#SNMPINDEX}],#1,"eq","{$PSU_CRIT_STATUS}")=1' name: '{#SNMPINDEX}: Power supply is in critical state' opdata: 'Current state: {ITEM.LASTVALUE1}' priority: AVERAGE diff --git a/templates/net/tplink_snmp/template_net_tplink_snmp.yaml b/templates/net/tplink_snmp/template_net_tplink_snmp.yaml index 151c0007b3b..a4a7f0361fc 100644 --- a/templates/net/tplink_snmp/template_net_tplink_snmp.yaml +++ b/templates/net/tplink_snmp/template_net_tplink_snmp.yaml @@ -1,6 +1,6 @@ zabbix_export: version: '5.4' - date: '2021-02-23T11:04:32Z' + date: '2021-05-09T00:00:00Z' groups: - name: 'Templates/Network devices' @@ -58,7 +58,7 @@ zabbix_export: value: Inventory triggers: - - expression: '{diff()}=1 and {strlen()}>0' + expression: '(last(/TP-LINK SNMP/system.hw.firmware,#1)<>last(/TP-LINK SNMP/system.hw.firmware,#2))=1 and length(last(/TP-LINK SNMP/system.hw.firmware))>0' name: 'Firmware has changed' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: INFO @@ -110,7 +110,7 @@ zabbix_export: value: Inventory triggers: - - expression: '{diff()}=1 and {strlen()}>0' + expression: '(last(/TP-LINK SNMP/system.hw.serialnumber,#1)<>last(/TP-LINK SNMP/system.hw.serialnumber,#2))=1 and length(last(/TP-LINK SNMP/system.hw.serialnumber))>0' name: 'Device has been replaced (new serial number received)' priority: INFO description: 'Device serial number has changed. Ack to close' @@ -163,7 +163,7 @@ zabbix_export: value: CPU trigger_prototypes: - - expression: '{min(5m)}>{$CPU.UTIL.CRIT}' + expression: 'min(/TP-LINK SNMP/system.cpu.util[tpSysMonitorCpu1Minute.{#SNMPINDEX}],5m)>{$CPU.UTIL.CRIT}' name: '#{#SNMPVALUE}: High CPU utilization (over {$CPU.UTIL.CRIT}% for 5m)' opdata: 'Current utilization: {ITEM.LASTVALUE1}' priority: WARNING @@ -206,7 +206,7 @@ zabbix_export: value: Memory trigger_prototypes: - - expression: '{min(5m)}>{$MEMORY.UTIL.MAX}' + expression: 'min(/TP-LINK SNMP/vm.memory.util[tpSysMonitorMemoryUtilization.{#SNMPINDEX}],5m)>{$MEMORY.UTIL.MAX}' name: '#{#SNMPVALUE}: High memory utilization (>{$MEMORY.UTIL.MAX}% for 5m)' priority: AVERAGE description: 'The system is running out of free memory.' diff --git a/templates/net/ubiquiti_airos_snmp/template_net_ubiquiti_airos_snmp.yaml b/templates/net/ubiquiti_airos_snmp/template_net_ubiquiti_airos_snmp.yaml index 32cbf886412..94e4f9afd65 100644 --- a/templates/net/ubiquiti_airos_snmp/template_net_ubiquiti_airos_snmp.yaml +++ b/templates/net/ubiquiti_airos_snmp/template_net_ubiquiti_airos_snmp.yaml @@ -1,6 +1,6 @@ zabbix_export: version: '5.4' - date: '2021-02-23T11:04:33Z' + date: '2021-05-09T00:00:00Z' groups: - name: 'Templates/Network devices' @@ -60,7 +60,7 @@ zabbix_export: value: CPU triggers: - - expression: '{min(5m)}>{$CPU.UTIL.CRIT}' + expression: 'min(/Ubiquiti AirOS SNMP/system.cpu.util[loadValue.2],5m)>{$CPU.UTIL.CRIT}' name: 'High CPU utilization (over {$CPU.UTIL.CRIT}% for 5m)' opdata: 'Current utilization: {ITEM.LASTVALUE1}' priority: WARNING @@ -88,7 +88,7 @@ zabbix_export: value: Inventory triggers: - - expression: '{diff()}=1 and {strlen()}>0' + expression: '(last(/Ubiquiti AirOS SNMP/system.hw.firmware,#1)<>last(/Ubiquiti AirOS SNMP/system.hw.firmware,#2))=1 and length(last(/Ubiquiti AirOS SNMP/system.hw.firmware))>0' name: 'Firmware has changed' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: INFO @@ -197,7 +197,7 @@ zabbix_export: history: 7d value_type: FLOAT units: '%' - params: '(last("vm.memory.total[memTotal.0]")-(last("vm.memory.free[memFree.0]")+last("vm.memory.buffers[memBuffer.0]")+last("vm.memory.cached[memCache.0]")))/last("vm.memory.total[memTotal.0]")*100' + params: '(last(//vm.memory.total[memTotal.0])-(last(//vm.memory.free[memFree.0])+last(//vm.memory.buffers[memBuffer.0])+last(//vm.memory.cached[memCache.0])))/last(//vm.memory.total[memTotal.0])*100' description: 'Memory utilization in %' tags: - @@ -205,7 +205,7 @@ zabbix_export: value: Memory triggers: - - expression: '{min(5m)}>{$MEMORY.UTIL.MAX}' + expression: 'min(/Ubiquiti AirOS SNMP/vm.memory.util[memoryUsedPercentage],5m)>{$MEMORY.UTIL.MAX}' name: 'High memory utilization (>{$MEMORY.UTIL.MAX}% for 5m)' priority: AVERAGE description: 'The system is running out of free memory.' diff --git a/templates/os/linux/template_os_linux.yaml b/templates/os/linux/template_os_linux.yaml index d4e86e420be..42b4f75fc3d 100644 --- a/templates/os/linux/template_os_linux.yaml +++ b/templates/os/linux/template_os_linux.yaml @@ -1,6 +1,6 @@ zabbix_export: version: '5.4' - date: '2021-04-22T11:28:49Z' + date: '2021-05-09T00:00:00Z' groups: - name: Templates/Modules @@ -70,7 +70,7 @@ zabbix_export: history: 7d value_type: FLOAT units: '!ms' - params: '(last("vfs.dev.read.time.rate[{#DEVNAME}]")/(last("vfs.dev.read.rate[{#DEVNAME}]")+(last("vfs.dev.read.rate[{#DEVNAME}]")=0)))*1000*(last("vfs.dev.read.rate[{#DEVNAME}]") > 0)' + params: '(last(//vfs.dev.read.time.rate[{#DEVNAME}])/(last(//vfs.dev.read.rate[{#DEVNAME}])+(last(//vfs.dev.read.rate[{#DEVNAME}])=0)))*1000*(last(//vfs.dev.read.rate[{#DEVNAME}]) > 0)' description: 'This formula contains two boolean expressions that evaluates to 1 or 0 in order to set calculated metric to zero and to avoid division by zero exception.' tags: - @@ -162,7 +162,7 @@ zabbix_export: history: 7d value_type: FLOAT units: '!ms' - params: '(last("vfs.dev.write.time.rate[{#DEVNAME}]")/(last("vfs.dev.write.rate[{#DEVNAME}]")+(last("vfs.dev.write.rate[{#DEVNAME}]")=0)))*1000*(last("vfs.dev.write.rate[{#DEVNAME}]") > 0)' + params: '(last(//vfs.dev.write.time.rate[{#DEVNAME}])/(last(//vfs.dev.write.rate[{#DEVNAME}])+(last(//vfs.dev.write.rate[{#DEVNAME}])=0)))*1000*(last(//vfs.dev.write.rate[{#DEVNAME}]) > 0)' description: 'This formula contains two boolean expressions that evaluates to 1 or 0 in order to set calculated metric to zero and to avoid division by zero exception.' tags: - @@ -237,7 +237,7 @@ zabbix_export: value: 'Zabbix raw items' trigger_prototypes: - - expression: '{Linux block devices by Zabbix agent:vfs.dev.read.await[{#DEVNAME}].min(15m)} > {$VFS.DEV.READ.AWAIT.WARN:"{#DEVNAME}"} or {Linux block devices by Zabbix agent:vfs.dev.write.await[{#DEVNAME}].min(15m)} > {$VFS.DEV.WRITE.AWAIT.WARN:"{#DEVNAME}"}' + expression: 'min(/Linux block devices by Zabbix agent/vfs.dev.read.await[{#DEVNAME}],15m) > {$VFS.DEV.READ.AWAIT.WARN:"{#DEVNAME}"} or min(/Linux block devices by Zabbix agent/vfs.dev.write.await[{#DEVNAME}],15m) > {$VFS.DEV.WRITE.AWAIT.WARN:"{#DEVNAME}"}' name: '{#DEVNAME}: Disk read/write request responses are too high (read > {$VFS.DEV.READ.AWAIT.WARN:"{#DEVNAME}"} ms for 15m or write > {$VFS.DEV.WRITE.AWAIT.WARN:"{#DEVNAME}"} ms for 15m)' priority: WARNING description: 'This trigger might indicate disk {#DEVNAME} saturation.' @@ -354,6 +354,10 @@ zabbix_export: height: '5' fields: - + type: INTEGER + name: source_type + value: '0' + - type: GRAPH name: graphid value: @@ -366,6 +370,10 @@ zabbix_export: height: '5' fields: - + type: INTEGER + name: source_type + value: '0' + - type: GRAPH name: graphid value: @@ -378,6 +386,10 @@ zabbix_export: height: '5' fields: - + type: INTEGER + name: source_type + value: '0' + - type: GRAPH name: graphid value: @@ -391,6 +403,10 @@ zabbix_export: height: '5' fields: - + type: INTEGER + name: source_type + value: '0' + - type: GRAPH name: graphid value: @@ -400,7 +416,7 @@ zabbix_export: type: GRAPH_PROTOTYPE 'y': '10' width: '24' - height: '12' + height: '5' fields: - type: INTEGER @@ -409,7 +425,11 @@ zabbix_export: - type: INTEGER name: rows - value: '3' + value: '1' + - + type: INTEGER + name: source_type + value: '2' - type: GRAPH_PROTOTYPE name: graphid @@ -418,9 +438,9 @@ zabbix_export: host: 'Linux by Zabbix agent' - type: GRAPH_PROTOTYPE - 'y': '22' + 'y': '15' width: '24' - height: '12' + height: '5' fields: - type: INTEGER @@ -429,7 +449,11 @@ zabbix_export: - type: INTEGER name: rows - value: '3' + value: '1' + - + type: INTEGER + name: source_type + value: '2' - type: GRAPH_PROTOTYPE name: graphid @@ -438,9 +462,9 @@ zabbix_export: host: 'Linux by Zabbix agent' - type: GRAPH_PROTOTYPE - 'y': '34' + 'y': '20' width: '24' - height: '12' + height: '5' fields: - type: INTEGER @@ -449,7 +473,11 @@ zabbix_export: - type: INTEGER name: rows - value: '3' + value: '1' + - + type: INTEGER + name: source_type + value: '2' - type: GRAPH_PROTOTYPE name: graphid @@ -458,9 +486,9 @@ zabbix_export: host: 'Linux by Zabbix agent' - type: GRAPH_PROTOTYPE - 'y': '46' + 'y': '25' width: '24' - height: '12' + height: '5' fields: - type: INTEGER @@ -469,7 +497,11 @@ zabbix_export: - type: INTEGER name: rows - value: '3' + value: '1' + - + type: INTEGER + name: source_type + value: '2' - type: GRAPH_PROTOTYPE name: graphid @@ -478,7 +510,7 @@ zabbix_export: host: 'Linux by Zabbix agent' - type: GRAPH_PROTOTYPE - 'y': '58' + 'y': '30' width: '24' height: '5' fields: @@ -487,6 +519,14 @@ zabbix_export: name: columns value: '1' - + type: INTEGER + name: rows + value: '1' + - + type: INTEGER + name: source_type + value: '2' + - type: GRAPH_PROTOTYPE name: graphid value: @@ -592,7 +632,7 @@ zabbix_export: value: CPU triggers: - - expression: '{min(5m)}>{$CPU.UTIL.CRIT}' + expression: 'min(/Linux CPU by Zabbix agent/system.cpu.util,5m)>{$CPU.UTIL.CRIT}' name: 'High CPU utilization (over {$CPU.UTIL.CRIT}% for 5m)' opdata: 'Current utilization: {ITEM.LASTVALUE1}' priority: WARNING @@ -601,9 +641,9 @@ zabbix_export: - name: 'Load average is too high (per CPU load over {$LOAD_AVG_PER_CPU.MAX.WARN} for 5m)' expression: | - {Linux CPU by Zabbix agent:system.cpu.load[all,avg1].min(5m)}/{Linux CPU by Zabbix agent:system.cpu.num.last()}>{$LOAD_AVG_PER_CPU.MAX.WARN} - and {Linux CPU by Zabbix agent:system.cpu.load[all,avg5].last()}>0 - and {Linux CPU by Zabbix agent:system.cpu.load[all,avg15].last()}>0 + min(/Linux CPU by Zabbix agent/system.cpu.load[all,avg1],5m)/last(/Linux CPU by Zabbix agent/system.cpu.num)>{$LOAD_AVG_PER_CPU.MAX.WARN} + and last(/Linux CPU by Zabbix agent/system.cpu.load[all,avg5])>0 + and last(/Linux CPU by Zabbix agent/system.cpu.load[all,avg15])>0 - name: 'CPU guest time' key: 'system.cpu.util[,guest]' @@ -769,7 +809,7 @@ zabbix_export: value: 'Filesystem {#FSNAME}' trigger_prototypes: - - expression: '{min(5m)}<{$VFS.FS.INODE.PFREE.MIN.CRIT:"{#FSNAME}"}' + expression: 'min(/Linux filesystems by Zabbix agent/vfs.fs.inode[{#FSNAME},pfree],5m)<{$VFS.FS.INODE.PFREE.MIN.CRIT:"{#FSNAME}"}' name: '{#FSNAME}: Running out of free inodes (free < {$VFS.FS.INODE.PFREE.MIN.CRIT:"{#FSNAME}"}%)' opdata: 'Free inodes: {ITEM.LASTVALUE1}' priority: AVERAGE @@ -777,7 +817,7 @@ zabbix_export: It may become impossible to write to disk if there are no index nodes left. As symptoms, 'No space left on device' or 'Disk is full' errors may be seen even though free space is available. - - expression: '{min(5m)}<{$VFS.FS.INODE.PFREE.MIN.WARN:"{#FSNAME}"}' + expression: 'min(/Linux filesystems by Zabbix agent/vfs.fs.inode[{#FSNAME},pfree],5m)<{$VFS.FS.INODE.PFREE.MIN.WARN:"{#FSNAME}"}' name: '{#FSNAME}: Running out of free inodes (free < {$VFS.FS.INODE.PFREE.MIN.WARN:"{#FSNAME}"}%)' opdata: 'Free inodes: {ITEM.LASTVALUE1}' priority: WARNING @@ -787,7 +827,7 @@ zabbix_export: dependencies: - name: '{#FSNAME}: Running out of free inodes (free < {$VFS.FS.INODE.PFREE.MIN.CRIT:"{#FSNAME}"}%)' - expression: '{Linux filesystems by Zabbix agent:vfs.fs.inode[{#FSNAME},pfree].min(5m)}<{$VFS.FS.INODE.PFREE.MIN.CRIT:"{#FSNAME}"}' + expression: 'min(/Linux filesystems by Zabbix agent/vfs.fs.inode[{#FSNAME},pfree],5m)<{$VFS.FS.INODE.PFREE.MIN.CRIT:"{#FSNAME}"}' - name: '{#FSNAME}: Space utilization' key: 'vfs.fs.size[{#FSNAME},pused]' @@ -822,8 +862,8 @@ zabbix_export: trigger_prototypes: - expression: | - {Linux filesystems by Zabbix agent:vfs.fs.size[{#FSNAME},pused].last()}>{$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"} and - (({Linux filesystems by Zabbix agent:vfs.fs.size[{#FSNAME},total].last()}-{Linux filesystems by Zabbix agent:vfs.fs.size[{#FSNAME},used].last()})<5G or {Linux filesystems by Zabbix agent:vfs.fs.size[{#FSNAME},pused].timeleft(1h,,100)}<1d) + last(/Linux filesystems by Zabbix agent/vfs.fs.size[{#FSNAME},pused])>{$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"} and + ((last(/Linux filesystems by Zabbix agent/vfs.fs.size[{#FSNAME},total])-last(/Linux filesystems by Zabbix agent/vfs.fs.size[{#FSNAME},used]))<5G or timeleft(/Linux filesystems by Zabbix agent/vfs.fs.size[{#FSNAME},pused],1h,100)<1d) name: '{#FSNAME}: Disk space is critically low (used > {$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"}%)' opdata: 'Space used: {ITEM.LASTVALUE3} of {ITEM.LASTVALUE2} ({ITEM.LASTVALUE1})' priority: AVERAGE @@ -835,8 +875,8 @@ zabbix_export: manual_close: 'YES' - expression: | - {Linux filesystems by Zabbix agent:vfs.fs.size[{#FSNAME},pused].last()}>{$VFS.FS.PUSED.MAX.WARN:"{#FSNAME}"} and - (({Linux filesystems by Zabbix agent:vfs.fs.size[{#FSNAME},total].last()}-{Linux filesystems by Zabbix agent:vfs.fs.size[{#FSNAME},used].last()})<10G or {Linux filesystems by Zabbix agent:vfs.fs.size[{#FSNAME},pused].timeleft(1h,,100)}<1d) + last(/Linux filesystems by Zabbix agent/vfs.fs.size[{#FSNAME},pused])>{$VFS.FS.PUSED.MAX.WARN:"{#FSNAME}"} and + ((last(/Linux filesystems by Zabbix agent/vfs.fs.size[{#FSNAME},total])-last(/Linux filesystems by Zabbix agent/vfs.fs.size[{#FSNAME},used]))<10G or timeleft(/Linux filesystems by Zabbix agent/vfs.fs.size[{#FSNAME},pused],1h,100)<1d) name: '{#FSNAME}: Disk space is low (used > {$VFS.FS.PUSED.MAX.WARN:"{#FSNAME}"}%)' opdata: 'Space used: {ITEM.LASTVALUE3} of {ITEM.LASTVALUE2} ({ITEM.LASTVALUE1})' priority: WARNING @@ -850,8 +890,8 @@ zabbix_export: - name: '{#FSNAME}: Disk space is critically low (used > {$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"}%)' expression: | - {Linux filesystems by Zabbix agent:vfs.fs.size[{#FSNAME},pused].last()}>{$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"} and - (({Linux filesystems by Zabbix agent:vfs.fs.size[{#FSNAME},total].last()}-{Linux filesystems by Zabbix agent:vfs.fs.size[{#FSNAME},used].last()})<5G or {Linux filesystems by Zabbix agent:vfs.fs.size[{#FSNAME},pused].timeleft(1h,,100)}<1d) + last(/Linux filesystems by Zabbix agent/vfs.fs.size[{#FSNAME},pused])>{$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"} and + ((last(/Linux filesystems by Zabbix agent/vfs.fs.size[{#FSNAME},total])-last(/Linux filesystems by Zabbix agent/vfs.fs.size[{#FSNAME},used]))<5G or timeleft(/Linux filesystems by Zabbix agent/vfs.fs.size[{#FSNAME},pused],1h,100)<1d) graph_prototypes: - name: '{#FSNAME}: Disk space usage' @@ -928,7 +968,7 @@ zabbix_export: value: General triggers: - - expression: '{last()}<{$KERNEL.MAXFILES.MIN}' + expression: 'last(/Linux generic by Zabbix agent/kernel.maxfiles)<{$KERNEL.MAXFILES.MIN}' name: 'Configured max number of open filedescriptors is too low (< {$KERNEL.MAXFILES.MIN})' priority: INFO - @@ -948,13 +988,13 @@ zabbix_export: value: General triggers: - - expression: '{last()}<{$KERNEL.MAXPROC.MIN}' + expression: 'last(/Linux generic by Zabbix agent/kernel.maxproc)<{$KERNEL.MAXPROC.MIN}' name: 'Configured max number of processes is too low (< {$KERNEL.MAXPROC.MIN})' priority: INFO dependencies: - name: 'Getting closer to process limit (over 80% used)' - expression: '{Linux generic by Zabbix agent:proc.num.last()}/{Linux generic by Zabbix agent:kernel.maxproc.last()}*100>80' + expression: 'last(/Linux generic by Zabbix agent/proc.num)/last(/Linux generic by Zabbix agent/kernel.maxproc)*100>80' - name: 'Number of processes' key: proc.num @@ -1006,7 +1046,7 @@ zabbix_export: value: General triggers: - - expression: '{diff()}=1 and {strlen()}>0' + expression: '(last(/Linux generic by Zabbix agent/system.hostname,#1)<>last(/Linux generic by Zabbix agent/system.hostname,#2))=1 and length(last(/Linux generic by Zabbix agent/system.hostname))>0' name: 'System name has changed (new name: {ITEM.VALUE})' priority: INFO description: 'System name has changed. Ack to close.' @@ -1023,7 +1063,7 @@ zabbix_export: value: General triggers: - - expression: '{fuzzytime({$SYSTEM.FUZZYTIME.MAX})}=0' + expression: 'fuzzytime(/Linux generic by Zabbix agent/system.localtime,{$SYSTEM.FUZZYTIME.MAX})=0' name: 'System time is out of sync (diff with Zabbix server > {$SYSTEM.FUZZYTIME.MAX}s)' priority: WARNING description: 'The host system time is different from the Zabbix server time.' @@ -1064,7 +1104,7 @@ zabbix_export: value: Inventory triggers: - - expression: '{diff()}=1 and {strlen()}>0' + expression: '(last(/Linux generic by Zabbix agent/system.sw.os,#1)<>last(/Linux generic by Zabbix agent/system.sw.os,#2))=1 and length(last(/Linux generic by Zabbix agent/system.sw.os))>0' name: 'Operating system description has changed' priority: INFO description: 'Operating system description has changed. Possible reasons that system has been updated or replaced. Ack to close.' @@ -1072,7 +1112,7 @@ zabbix_export: dependencies: - name: 'System name has changed (new name: {ITEM.VALUE})' - expression: '{Linux generic by Zabbix agent:system.hostname.diff()}=1 and {Linux generic by Zabbix agent:system.hostname.strlen()}>0' + expression: '(last(/Linux generic by Zabbix agent/system.hostname,#1)<>last(/Linux generic by Zabbix agent/system.hostname,#2))=1 and length(last(/Linux generic by Zabbix agent/system.hostname))>0' - name: 'Software installed' key: system.sw.packages @@ -1120,7 +1160,7 @@ zabbix_export: value: Status triggers: - - expression: '{last()}<10m' + expression: 'last(/Linux generic by Zabbix agent/system.uptime)<10m' name: '{HOST.NAME} has been restarted (uptime < 10m)' priority: WARNING description: 'The host uptime is less than 10 minutes' @@ -1152,17 +1192,17 @@ zabbix_export: value: Security triggers: - - expression: '{diff()}>0' + expression: '(last(/Linux generic by Zabbix agent/vfs.file.cksum[/etc/passwd],#1)<>last(/Linux generic by Zabbix agent/vfs.file.cksum[/etc/passwd],#2))>0' name: '/etc/passwd has been changed' priority: INFO manual_close: 'YES' dependencies: - name: 'Operating system description has changed' - expression: '{Linux generic by Zabbix agent:system.sw.os.diff()}=1 and {Linux generic by Zabbix agent:system.sw.os.strlen()}>0' + expression: '(last(/Linux generic by Zabbix agent/system.sw.os,#1)<>last(/Linux generic by Zabbix agent/system.sw.os,#2))=1 and length(last(/Linux generic by Zabbix agent/system.sw.os))>0' - name: 'System name has changed (new name: {ITEM.VALUE})' - expression: '{Linux generic by Zabbix agent:system.hostname.diff()}=1 and {Linux generic by Zabbix agent:system.hostname.strlen()}>0' + expression: '(last(/Linux generic by Zabbix agent/system.hostname,#1)<>last(/Linux generic by Zabbix agent/system.hostname,#2))=1 and length(last(/Linux generic by Zabbix agent/system.hostname))>0' macros: - macro: '{$KERNEL.MAXFILES.MIN}' @@ -1265,14 +1305,14 @@ zabbix_export: value: Memory triggers: - - expression: '{min(5m)}>{$MEMORY.UTIL.MAX}' + expression: 'min(/Linux memory by Zabbix agent/vm.memory.utilization,5m)>{$MEMORY.UTIL.MAX}' name: 'High memory utilization (>{$MEMORY.UTIL.MAX}% for 5m)' priority: AVERAGE description: 'The system is running out of free memory.' dependencies: - name: 'Lack of available memory (<{$MEMORY.AVAILABLE.MIN} of {ITEM.VALUE2})' - expression: '{Linux memory by Zabbix agent:vm.memory.size[available].min(5m)}<{$MEMORY.AVAILABLE.MIN} and {Linux memory by Zabbix agent:vm.memory.size[total].last()}>0' + expression: 'min(/Linux memory by Zabbix agent/vm.memory.size[available],5m)<{$MEMORY.AVAILABLE.MIN} and last(/Linux memory by Zabbix agent/vm.memory.size[total])>0' macros: - macro: '{$MEMORY.AVAILABLE.MIN}' @@ -1456,9 +1496,9 @@ zabbix_export: value: 'Interface {#IFNAME}' trigger_prototypes: - - expression: '{$IFCONTROL:"{#IFNAME}"}=1 and ({last()}=2 and {diff()}=1)' + expression: '{$IFCONTROL:"{#IFNAME}"}=1 and (last(/Linux network interfaces by Zabbix agent/vfs.file.contents["/sys/class/net/{#IFNAME}/operstate"])=2 and (last(/Linux network interfaces by Zabbix agent/vfs.file.contents["/sys/class/net/{#IFNAME}/operstate"],#1)<>last(/Linux network interfaces by Zabbix agent/vfs.file.contents["/sys/class/net/{#IFNAME}/operstate"],#2))=1)' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{last()}<>2 or {$IFCONTROL:"{#IFNAME}"}=0' + recovery_expression: 'last(/Linux network interfaces by Zabbix agent/vfs.file.contents["/sys/class/net/{#IFNAME}/operstate"])<>2 or {$IFCONTROL:"{#IFNAME}"}=0' name: 'Interface {#IFNAME}: Link down' opdata: 'Current state: {ITEM.LASTVALUE1}' priority: AVERAGE @@ -1494,16 +1534,16 @@ zabbix_export: trigger_prototypes: - expression: | - {Linux network interfaces by Zabbix agent:vfs.file.contents["/sys/class/net/{#IFNAME}/type"].change()}<0 and {Linux network interfaces by Zabbix agent:vfs.file.contents["/sys/class/net/{#IFNAME}/type"].last()}>0 + change(/Linux network interfaces by Zabbix agent/vfs.file.contents["/sys/class/net/{#IFNAME}/type"])<0 and last(/Linux network interfaces by Zabbix agent/vfs.file.contents["/sys/class/net/{#IFNAME}/type"])>0 and - ({Linux network interfaces by Zabbix agent:vfs.file.contents["/sys/class/net/{#IFNAME}/type"].last()}=6 - or {Linux network interfaces by Zabbix agent:vfs.file.contents["/sys/class/net/{#IFNAME}/type"].last()}=1) + (last(/Linux network interfaces by Zabbix agent/vfs.file.contents["/sys/class/net/{#IFNAME}/type"])=6 + or last(/Linux network interfaces by Zabbix agent/vfs.file.contents["/sys/class/net/{#IFNAME}/type"])=1) and - ({Linux network interfaces by Zabbix agent:vfs.file.contents["/sys/class/net/{#IFNAME}/operstate"].last()}<>2) + (last(/Linux network interfaces by Zabbix agent/vfs.file.contents["/sys/class/net/{#IFNAME}/operstate"])<>2) recovery_mode: RECOVERY_EXPRESSION recovery_expression: | - ({Linux network interfaces by Zabbix agent:vfs.file.contents["/sys/class/net/{#IFNAME}/type"].change()}>0 and {Linux network interfaces by Zabbix agent:vfs.file.contents["/sys/class/net/{#IFNAME}/type"].prev()}>0) or - ({Linux network interfaces by Zabbix agent:vfs.file.contents["/sys/class/net/{#IFNAME}/operstate"].last()}=2) + (change(/Linux network interfaces by Zabbix agent/vfs.file.contents["/sys/class/net/{#IFNAME}/type"])>0 and last(/Linux network interfaces by Zabbix agent/vfs.file.contents["/sys/class/net/{#IFNAME}/type"],#2)>0) or + (last(/Linux network interfaces by Zabbix agent/vfs.file.contents["/sys/class/net/{#IFNAME}/operstate"])=2) name: 'Interface {#IFNAME}: Ethernet has changed to lower speed than it was before' opdata: 'Current reported speed: {ITEM.LASTVALUE1}' priority: INFO @@ -1512,16 +1552,16 @@ zabbix_export: dependencies: - name: 'Interface {#IFNAME}: Link down' - expression: '{$IFCONTROL:"{#IFNAME}"}=1 and ({Linux network interfaces by Zabbix agent:vfs.file.contents["/sys/class/net/{#IFNAME}/operstate"].last()}=2 and {Linux network interfaces by Zabbix agent:vfs.file.contents["/sys/class/net/{#IFNAME}/operstate"].diff()}=1)' - recovery_expression: '{Linux network interfaces by Zabbix agent:vfs.file.contents["/sys/class/net/{#IFNAME}/operstate"].last()}<>2 or {$IFCONTROL:"{#IFNAME}"}=0' + expression: '{$IFCONTROL:"{#IFNAME}"}=1 and (last(/Linux network interfaces by Zabbix agent/vfs.file.contents["/sys/class/net/{#IFNAME}/operstate"])=2 and (last(/Linux network interfaces by Zabbix agent/vfs.file.contents["/sys/class/net/{#IFNAME}/operstate"],#1)<>last(/Linux network interfaces by Zabbix agent/vfs.file.contents["/sys/class/net/{#IFNAME}/operstate"],#2))=1)' + recovery_expression: 'last(/Linux network interfaces by Zabbix agent/vfs.file.contents["/sys/class/net/{#IFNAME}/operstate"])<>2 or {$IFCONTROL:"{#IFNAME}"}=0' - expression: | - {Linux network interfaces by Zabbix agent:net.if.in["{#IFNAME}",errors].min(5m)}>{$IF.ERRORS.WARN:"{#IFNAME}"} - or {Linux network interfaces by Zabbix agent:net.if.out["{#IFNAME}",errors].min(5m)}>{$IF.ERRORS.WARN:"{#IFNAME}"} + min(/Linux network interfaces by Zabbix agent/net.if.in["{#IFNAME}",errors],5m)>{$IF.ERRORS.WARN:"{#IFNAME}"} + or min(/Linux network interfaces by Zabbix agent/net.if.out["{#IFNAME}",errors],5m)>{$IF.ERRORS.WARN:"{#IFNAME}"} recovery_mode: RECOVERY_EXPRESSION recovery_expression: | - {Linux network interfaces by Zabbix agent:net.if.in["{#IFNAME}",errors].max(5m)}<{$IF.ERRORS.WARN:"{#IFNAME}"}*0.8 - and {Linux network interfaces by Zabbix agent:net.if.out["{#IFNAME}",errors].max(5m)}<{$IF.ERRORS.WARN:"{#IFNAME}"}*0.8 + max(/Linux network interfaces by Zabbix agent/net.if.in["{#IFNAME}",errors],5m)<{$IF.ERRORS.WARN:"{#IFNAME}"}*0.8 + and max(/Linux network interfaces by Zabbix agent/net.if.out["{#IFNAME}",errors],5m)<{$IF.ERRORS.WARN:"{#IFNAME}"}*0.8 name: 'Interface {#IFNAME}: High error rate (>{$IF.ERRORS.WARN:"{#IFNAME}"} for 5m)' opdata: 'errors in: {ITEM.LASTVALUE1}, errors out: {ITEM.LASTVALUE2}' priority: WARNING @@ -1530,8 +1570,8 @@ zabbix_export: dependencies: - name: 'Interface {#IFNAME}: Link down' - expression: '{$IFCONTROL:"{#IFNAME}"}=1 and ({Linux network interfaces by Zabbix agent:vfs.file.contents["/sys/class/net/{#IFNAME}/operstate"].last()}=2 and {Linux network interfaces by Zabbix agent:vfs.file.contents["/sys/class/net/{#IFNAME}/operstate"].diff()}=1)' - recovery_expression: '{Linux network interfaces by Zabbix agent:vfs.file.contents["/sys/class/net/{#IFNAME}/operstate"].last()}<>2 or {$IFCONTROL:"{#IFNAME}"}=0' + expression: '{$IFCONTROL:"{#IFNAME}"}=1 and (last(/Linux network interfaces by Zabbix agent/vfs.file.contents["/sys/class/net/{#IFNAME}/operstate"])=2 and (last(/Linux network interfaces by Zabbix agent/vfs.file.contents["/sys/class/net/{#IFNAME}/operstate"],#1)<>last(/Linux network interfaces by Zabbix agent/vfs.file.contents["/sys/class/net/{#IFNAME}/operstate"],#2))=1)' + recovery_expression: 'last(/Linux network interfaces by Zabbix agent/vfs.file.contents["/sys/class/net/{#IFNAME}/operstate"])<>2 or {$IFCONTROL:"{#IFNAME}"}=0' graph_prototypes: - name: 'Interface {#IFNAME}: Network traffic' @@ -1600,7 +1640,7 @@ zabbix_export: - type: GRAPH_PROTOTYPE width: '24' - height: '12' + height: '5' fields: - type: INTEGER @@ -1609,7 +1649,11 @@ zabbix_export: - type: INTEGER name: rows - value: '3' + value: '1' + - + type: INTEGER + name: source_type + value: '2' - type: GRAPH_PROTOTYPE name: graphid @@ -1835,12 +1879,12 @@ zabbix_export: newvalue: 'Vsock monitor header' triggers: - - expression: '{Linux generic by Zabbix agent:proc.num.last()}/{Linux generic by Zabbix agent:kernel.maxproc.last()}*100>80' + expression: 'last(/Linux generic by Zabbix agent/proc.num)/last(/Linux generic by Zabbix agent/kernel.maxproc)*100>80' name: 'Getting closer to process limit (over 80% used)' opdata: '{ITEM.LASTVALUE1} active, {ITEM.LASTVALUE2} limit.' priority: WARNING - - expression: '{Linux memory by Zabbix agent:system.swap.size[,pfree].min(5m)}<{$SWAP.PFREE.MIN.WARN} and {Linux memory by Zabbix agent:system.swap.size[,total].last()}>0' + expression: 'min(/Linux memory by Zabbix agent/system.swap.size[,pfree],5m)<{$SWAP.PFREE.MIN.WARN} and last(/Linux memory by Zabbix agent/system.swap.size[,total])>0' name: 'High swap space usage (less than {$SWAP.PFREE.MIN.WARN}% free)' opdata: 'Free: {ITEM.LASTVALUE1}, total: {ITEM.LASTVALUE2}' priority: WARNING @@ -1848,20 +1892,20 @@ zabbix_export: dependencies: - name: 'High memory utilization (>{$MEMORY.UTIL.MAX}% for 5m)' - expression: '{Linux memory by Zabbix agent:vm.memory.utilization.min(5m)}>{$MEMORY.UTIL.MAX}' + expression: 'min(/Linux memory by Zabbix agent/vm.memory.utilization,5m)>{$MEMORY.UTIL.MAX}' - name: 'Lack of available memory (<{$MEMORY.AVAILABLE.MIN} of {ITEM.VALUE2})' - expression: '{Linux memory by Zabbix agent:vm.memory.size[available].min(5m)}<{$MEMORY.AVAILABLE.MIN} and {Linux memory by Zabbix agent:vm.memory.size[total].last()}>0' + expression: 'min(/Linux memory by Zabbix agent/vm.memory.size[available],5m)<{$MEMORY.AVAILABLE.MIN} and last(/Linux memory by Zabbix agent/vm.memory.size[total])>0' - - expression: '{Linux memory by Zabbix agent:vm.memory.size[available].min(5m)}<{$MEMORY.AVAILABLE.MIN} and {Linux memory by Zabbix agent:vm.memory.size[total].last()}>0' + expression: 'min(/Linux memory by Zabbix agent/vm.memory.size[available],5m)<{$MEMORY.AVAILABLE.MIN} and last(/Linux memory by Zabbix agent/vm.memory.size[total])>0' name: 'Lack of available memory (<{$MEMORY.AVAILABLE.MIN} of {ITEM.VALUE2})' opdata: 'Available: {ITEM.LASTVALUE1}, total: {ITEM.LASTVALUE2}' priority: AVERAGE - expression: | - {Linux CPU by Zabbix agent:system.cpu.load[all,avg1].min(5m)}/{Linux CPU by Zabbix agent:system.cpu.num.last()}>{$LOAD_AVG_PER_CPU.MAX.WARN} - and {Linux CPU by Zabbix agent:system.cpu.load[all,avg5].last()}>0 - and {Linux CPU by Zabbix agent:system.cpu.load[all,avg15].last()}>0 + min(/Linux CPU by Zabbix agent/system.cpu.load[all,avg1],5m)/last(/Linux CPU by Zabbix agent/system.cpu.num)>{$LOAD_AVG_PER_CPU.MAX.WARN} + and last(/Linux CPU by Zabbix agent/system.cpu.load[all,avg5])>0 + and last(/Linux CPU by Zabbix agent/system.cpu.load[all,avg15])>0 name: 'Load average is too high (per CPU load over {$LOAD_AVG_PER_CPU.MAX.WARN} for 5m)' opdata: 'Load averages(1m 5m 15m): ({ITEM.LASTVALUE1} {ITEM.LASTVALUE3} {ITEM.LASTVALUE4}), # of CPUs: {ITEM.LASTVALUE2}' priority: AVERAGE diff --git a/templates/os/linux_active/template_os_linux_active.yaml b/templates/os/linux_active/template_os_linux_active.yaml index 17ddb58b48c..3379d64bc14 100644 --- a/templates/os/linux_active/template_os_linux_active.yaml +++ b/templates/os/linux_active/template_os_linux_active.yaml @@ -1,6 +1,6 @@ zabbix_export: version: '5.4' - date: '2021-04-22T11:28:50Z' + date: '2021-05-09T00:00:00Z' groups: - name: Templates/Modules @@ -71,7 +71,7 @@ zabbix_export: history: 7d value_type: FLOAT units: '!ms' - params: '(last("vfs.dev.read.time.rate[{#DEVNAME}]")/(last("vfs.dev.read.rate[{#DEVNAME}]")+(last("vfs.dev.read.rate[{#DEVNAME}]")=0)))*1000*(last("vfs.dev.read.rate[{#DEVNAME}]") > 0)' + params: '(last(//vfs.dev.read.time.rate[{#DEVNAME}])/(last(//vfs.dev.read.rate[{#DEVNAME}])+(last(//vfs.dev.read.rate[{#DEVNAME}])=0)))*1000*(last(//vfs.dev.read.rate[{#DEVNAME}]) > 0)' description: 'This formula contains two boolean expressions that evaluates to 1 or 0 in order to set calculated metric to zero and to avoid division by zero exception.' tags: - @@ -163,7 +163,7 @@ zabbix_export: history: 7d value_type: FLOAT units: '!ms' - params: '(last("vfs.dev.write.time.rate[{#DEVNAME}]")/(last("vfs.dev.write.rate[{#DEVNAME}]")+(last("vfs.dev.write.rate[{#DEVNAME}]")=0)))*1000*(last("vfs.dev.write.rate[{#DEVNAME}]") > 0)' + params: '(last(//vfs.dev.write.time.rate[{#DEVNAME}])/(last(//vfs.dev.write.rate[{#DEVNAME}])+(last(//vfs.dev.write.rate[{#DEVNAME}])=0)))*1000*(last(//vfs.dev.write.rate[{#DEVNAME}]) > 0)' description: 'This formula contains two boolean expressions that evaluates to 1 or 0 in order to set calculated metric to zero and to avoid division by zero exception.' tags: - @@ -239,7 +239,7 @@ zabbix_export: value: 'Zabbix raw items' trigger_prototypes: - - expression: '{Linux block devices by Zabbix agent active:vfs.dev.read.await[{#DEVNAME}].min(15m)} > {$VFS.DEV.READ.AWAIT.WARN:"{#DEVNAME}"} or {Linux block devices by Zabbix agent active:vfs.dev.write.await[{#DEVNAME}].min(15m)} > {$VFS.DEV.WRITE.AWAIT.WARN:"{#DEVNAME}"}' + expression: 'min(/Linux block devices by Zabbix agent active/vfs.dev.read.await[{#DEVNAME}],15m) > {$VFS.DEV.READ.AWAIT.WARN:"{#DEVNAME}"} or min(/Linux block devices by Zabbix agent active/vfs.dev.write.await[{#DEVNAME}],15m) > {$VFS.DEV.WRITE.AWAIT.WARN:"{#DEVNAME}"}' name: '{#DEVNAME}: Disk read/write request responses are too high (read > {$VFS.DEV.READ.AWAIT.WARN:"{#DEVNAME}"} ms for 15m or write > {$VFS.DEV.WRITE.AWAIT.WARN:"{#DEVNAME}"} ms for 15m)' priority: WARNING description: 'This trigger might indicate disk {#DEVNAME} saturation.' @@ -356,6 +356,10 @@ zabbix_export: height: '5' fields: - + type: INTEGER + name: source_type + value: '0' + - type: GRAPH name: graphid value: @@ -368,6 +372,10 @@ zabbix_export: height: '5' fields: - + type: INTEGER + name: source_type + value: '0' + - type: GRAPH name: graphid value: @@ -380,6 +388,10 @@ zabbix_export: height: '5' fields: - + type: INTEGER + name: source_type + value: '0' + - type: GRAPH name: graphid value: @@ -393,6 +405,10 @@ zabbix_export: height: '5' fields: - + type: INTEGER + name: source_type + value: '0' + - type: GRAPH name: graphid value: @@ -402,7 +418,7 @@ zabbix_export: type: GRAPH_PROTOTYPE 'y': '10' width: '24' - height: '12' + height: '5' fields: - type: INTEGER @@ -411,7 +427,11 @@ zabbix_export: - type: INTEGER name: rows - value: '3' + value: '1' + - + type: INTEGER + name: source_type + value: '2' - type: GRAPH_PROTOTYPE name: graphid @@ -420,9 +440,9 @@ zabbix_export: host: 'Linux by Zabbix agent active' - type: GRAPH_PROTOTYPE - 'y': '22' + 'y': '15' width: '24' - height: '12' + height: '5' fields: - type: INTEGER @@ -431,7 +451,11 @@ zabbix_export: - type: INTEGER name: rows - value: '3' + value: '1' + - + type: INTEGER + name: source_type + value: '2' - type: GRAPH_PROTOTYPE name: graphid @@ -440,9 +464,9 @@ zabbix_export: host: 'Linux by Zabbix agent active' - type: GRAPH_PROTOTYPE - 'y': '34' + 'y': '20' width: '24' - height: '12' + height: '5' fields: - type: INTEGER @@ -451,7 +475,11 @@ zabbix_export: - type: INTEGER name: rows - value: '3' + value: '1' + - + type: INTEGER + name: source_type + value: '2' - type: GRAPH_PROTOTYPE name: graphid @@ -460,9 +488,9 @@ zabbix_export: host: 'Linux by Zabbix agent active' - type: GRAPH_PROTOTYPE - 'y': '46' + 'y': '25' width: '24' - height: '12' + height: '5' fields: - type: INTEGER @@ -471,7 +499,11 @@ zabbix_export: - type: INTEGER name: rows - value: '3' + value: '1' + - + type: INTEGER + name: source_type + value: '2' - type: GRAPH_PROTOTYPE name: graphid @@ -480,7 +512,7 @@ zabbix_export: host: 'Linux by Zabbix agent active' - type: GRAPH_PROTOTYPE - 'y': '58' + 'y': '30' width: '24' height: '5' fields: @@ -489,6 +521,14 @@ zabbix_export: name: columns value: '1' - + type: INTEGER + name: rows + value: '1' + - + type: INTEGER + name: source_type + value: '2' + - type: GRAPH_PROTOTYPE name: graphid value: @@ -600,7 +640,7 @@ zabbix_export: value: CPU triggers: - - expression: '{min(5m)}>{$CPU.UTIL.CRIT}' + expression: 'min(/Linux CPU by Zabbix agent active/system.cpu.util,5m)>{$CPU.UTIL.CRIT}' name: 'High CPU utilization (over {$CPU.UTIL.CRIT}% for 5m)' opdata: 'Current utilization: {ITEM.LASTVALUE1}' priority: WARNING @@ -609,9 +649,9 @@ zabbix_export: - name: 'Load average is too high (per CPU load over {$LOAD_AVG_PER_CPU.MAX.WARN} for 5m)' expression: | - {Linux CPU by Zabbix agent active:system.cpu.load[all,avg1].min(5m)}/{Linux CPU by Zabbix agent active:system.cpu.num.last()}>{$LOAD_AVG_PER_CPU.MAX.WARN} - and {Linux CPU by Zabbix agent active:system.cpu.load[all,avg5].last()}>0 - and {Linux CPU by Zabbix agent active:system.cpu.load[all,avg15].last()}>0 + min(/Linux CPU by Zabbix agent active/system.cpu.load[all,avg1],5m)/last(/Linux CPU by Zabbix agent active/system.cpu.num)>{$LOAD_AVG_PER_CPU.MAX.WARN} + and last(/Linux CPU by Zabbix agent active/system.cpu.load[all,avg5])>0 + and last(/Linux CPU by Zabbix agent active/system.cpu.load[all,avg15])>0 - name: 'CPU guest time' type: ZABBIX_ACTIVE @@ -789,7 +829,7 @@ zabbix_export: value: 'Filesystem {#FSNAME}' trigger_prototypes: - - expression: '{min(5m)}<{$VFS.FS.INODE.PFREE.MIN.CRIT:"{#FSNAME}"}' + expression: 'min(/Linux filesystems by Zabbix agent active/vfs.fs.inode[{#FSNAME},pfree],5m)<{$VFS.FS.INODE.PFREE.MIN.CRIT:"{#FSNAME}"}' name: '{#FSNAME}: Running out of free inodes (free < {$VFS.FS.INODE.PFREE.MIN.CRIT:"{#FSNAME}"}%)' opdata: 'Free inodes: {ITEM.LASTVALUE1}' priority: AVERAGE @@ -797,7 +837,7 @@ zabbix_export: It may become impossible to write to disk if there are no index nodes left. As symptoms, 'No space left on device' or 'Disk is full' errors may be seen even though free space is available. - - expression: '{min(5m)}<{$VFS.FS.INODE.PFREE.MIN.WARN:"{#FSNAME}"}' + expression: 'min(/Linux filesystems by Zabbix agent active/vfs.fs.inode[{#FSNAME},pfree],5m)<{$VFS.FS.INODE.PFREE.MIN.WARN:"{#FSNAME}"}' name: '{#FSNAME}: Running out of free inodes (free < {$VFS.FS.INODE.PFREE.MIN.WARN:"{#FSNAME}"}%)' opdata: 'Free inodes: {ITEM.LASTVALUE1}' priority: WARNING @@ -807,7 +847,7 @@ zabbix_export: dependencies: - name: '{#FSNAME}: Running out of free inodes (free < {$VFS.FS.INODE.PFREE.MIN.CRIT:"{#FSNAME}"}%)' - expression: '{Linux filesystems by Zabbix agent active:vfs.fs.inode[{#FSNAME},pfree].min(5m)}<{$VFS.FS.INODE.PFREE.MIN.CRIT:"{#FSNAME}"}' + expression: 'min(/Linux filesystems by Zabbix agent active/vfs.fs.inode[{#FSNAME},pfree],5m)<{$VFS.FS.INODE.PFREE.MIN.CRIT:"{#FSNAME}"}' - name: '{#FSNAME}: Space utilization' type: ZABBIX_ACTIVE @@ -845,8 +885,8 @@ zabbix_export: trigger_prototypes: - expression: | - {Linux filesystems by Zabbix agent active:vfs.fs.size[{#FSNAME},pused].last()}>{$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"} and - (({Linux filesystems by Zabbix agent active:vfs.fs.size[{#FSNAME},total].last()}-{Linux filesystems by Zabbix agent active:vfs.fs.size[{#FSNAME},used].last()})<5G or {Linux filesystems by Zabbix agent active:vfs.fs.size[{#FSNAME},pused].timeleft(1h,,100)}<1d) + last(/Linux filesystems by Zabbix agent active/vfs.fs.size[{#FSNAME},pused])>{$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"} and + ((last(/Linux filesystems by Zabbix agent active/vfs.fs.size[{#FSNAME},total])-last(/Linux filesystems by Zabbix agent active/vfs.fs.size[{#FSNAME},used]))<5G or timeleft(/Linux filesystems by Zabbix agent active/vfs.fs.size[{#FSNAME},pused],1h,100)<1d) name: '{#FSNAME}: Disk space is critically low (used > {$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"}%)' opdata: 'Space used: {ITEM.LASTVALUE3} of {ITEM.LASTVALUE2} ({ITEM.LASTVALUE1})' priority: AVERAGE @@ -858,8 +898,8 @@ zabbix_export: manual_close: 'YES' - expression: | - {Linux filesystems by Zabbix agent active:vfs.fs.size[{#FSNAME},pused].last()}>{$VFS.FS.PUSED.MAX.WARN:"{#FSNAME}"} and - (({Linux filesystems by Zabbix agent active:vfs.fs.size[{#FSNAME},total].last()}-{Linux filesystems by Zabbix agent active:vfs.fs.size[{#FSNAME},used].last()})<10G or {Linux filesystems by Zabbix agent active:vfs.fs.size[{#FSNAME},pused].timeleft(1h,,100)}<1d) + last(/Linux filesystems by Zabbix agent active/vfs.fs.size[{#FSNAME},pused])>{$VFS.FS.PUSED.MAX.WARN:"{#FSNAME}"} and + ((last(/Linux filesystems by Zabbix agent active/vfs.fs.size[{#FSNAME},total])-last(/Linux filesystems by Zabbix agent active/vfs.fs.size[{#FSNAME},used]))<10G or timeleft(/Linux filesystems by Zabbix agent active/vfs.fs.size[{#FSNAME},pused],1h,100)<1d) name: '{#FSNAME}: Disk space is low (used > {$VFS.FS.PUSED.MAX.WARN:"{#FSNAME}"}%)' opdata: 'Space used: {ITEM.LASTVALUE3} of {ITEM.LASTVALUE2} ({ITEM.LASTVALUE1})' priority: WARNING @@ -873,8 +913,8 @@ zabbix_export: - name: '{#FSNAME}: Disk space is critically low (used > {$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"}%)' expression: | - {Linux filesystems by Zabbix agent active:vfs.fs.size[{#FSNAME},pused].last()}>{$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"} and - (({Linux filesystems by Zabbix agent active:vfs.fs.size[{#FSNAME},total].last()}-{Linux filesystems by Zabbix agent active:vfs.fs.size[{#FSNAME},used].last()})<5G or {Linux filesystems by Zabbix agent active:vfs.fs.size[{#FSNAME},pused].timeleft(1h,,100)}<1d) + last(/Linux filesystems by Zabbix agent active/vfs.fs.size[{#FSNAME},pused])>{$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"} and + ((last(/Linux filesystems by Zabbix agent active/vfs.fs.size[{#FSNAME},total])-last(/Linux filesystems by Zabbix agent active/vfs.fs.size[{#FSNAME},used]))<5G or timeleft(/Linux filesystems by Zabbix agent active/vfs.fs.size[{#FSNAME},pused],1h,100)<1d) graph_prototypes: - name: '{#FSNAME}: Disk space usage' @@ -952,7 +992,7 @@ zabbix_export: value: General triggers: - - expression: '{last()}<{$KERNEL.MAXFILES.MIN}' + expression: 'last(/Linux generic by Zabbix agent active/kernel.maxfiles)<{$KERNEL.MAXFILES.MIN}' name: 'Configured max number of open filedescriptors is too low (< {$KERNEL.MAXFILES.MIN})' priority: INFO - @@ -973,13 +1013,13 @@ zabbix_export: value: General triggers: - - expression: '{last()}<{$KERNEL.MAXPROC.MIN}' + expression: 'last(/Linux generic by Zabbix agent active/kernel.maxproc)<{$KERNEL.MAXPROC.MIN}' name: 'Configured max number of processes is too low (< {$KERNEL.MAXPROC.MIN})' priority: INFO dependencies: - name: 'Getting closer to process limit (over 80% used)' - expression: '{Linux generic by Zabbix agent active:proc.num.last()}/{Linux generic by Zabbix agent active:kernel.maxproc.last()}*100>80' + expression: 'last(/Linux generic by Zabbix agent active/proc.num)/last(/Linux generic by Zabbix agent active/kernel.maxproc)*100>80' - name: 'Number of processes' type: ZABBIX_ACTIVE @@ -1035,7 +1075,7 @@ zabbix_export: value: General triggers: - - expression: '{diff()}=1 and {strlen()}>0' + expression: '(last(/Linux generic by Zabbix agent active/system.hostname,#1)<>last(/Linux generic by Zabbix agent active/system.hostname,#2))=1 and length(last(/Linux generic by Zabbix agent active/system.hostname))>0' name: 'System name has changed (new name: {ITEM.VALUE})' priority: INFO description: 'System name has changed. Ack to close.' @@ -1053,7 +1093,7 @@ zabbix_export: value: General triggers: - - expression: '{fuzzytime({$SYSTEM.FUZZYTIME.MAX})}=0' + expression: 'fuzzytime(/Linux generic by Zabbix agent active/system.localtime,{$SYSTEM.FUZZYTIME.MAX})=0' name: 'System time is out of sync (diff with Zabbix server > {$SYSTEM.FUZZYTIME.MAX}s)' priority: WARNING description: 'The host system time is different from the Zabbix server time.' @@ -1096,7 +1136,7 @@ zabbix_export: value: Inventory triggers: - - expression: '{diff()}=1 and {strlen()}>0' + expression: '(last(/Linux generic by Zabbix agent active/system.sw.os,#1)<>last(/Linux generic by Zabbix agent active/system.sw.os,#2))=1 and length(last(/Linux generic by Zabbix agent active/system.sw.os))>0' name: 'Operating system description has changed' priority: INFO description: 'Operating system description has changed. Possible reasons that system has been updated or replaced. Ack to close.' @@ -1104,7 +1144,7 @@ zabbix_export: dependencies: - name: 'System name has changed (new name: {ITEM.VALUE})' - expression: '{Linux generic by Zabbix agent active:system.hostname.diff()}=1 and {Linux generic by Zabbix agent active:system.hostname.strlen()}>0' + expression: '(last(/Linux generic by Zabbix agent active/system.hostname,#1)<>last(/Linux generic by Zabbix agent active/system.hostname,#2))=1 and length(last(/Linux generic by Zabbix agent active/system.hostname))>0' - name: 'Software installed' type: ZABBIX_ACTIVE @@ -1155,7 +1195,7 @@ zabbix_export: value: Status triggers: - - expression: '{last()}<10m' + expression: 'last(/Linux generic by Zabbix agent active/system.uptime)<10m' name: '{HOST.NAME} has been restarted (uptime < 10m)' priority: WARNING description: 'The host uptime is less than 10 minutes' @@ -1189,17 +1229,17 @@ zabbix_export: value: Security triggers: - - expression: '{diff()}>0' + expression: '(last(/Linux generic by Zabbix agent active/vfs.file.cksum[/etc/passwd],#1)<>last(/Linux generic by Zabbix agent active/vfs.file.cksum[/etc/passwd],#2))>0' name: '/etc/passwd has been changed' priority: INFO manual_close: 'YES' dependencies: - name: 'Operating system description has changed' - expression: '{Linux generic by Zabbix agent active:system.sw.os.diff()}=1 and {Linux generic by Zabbix agent active:system.sw.os.strlen()}>0' + expression: '(last(/Linux generic by Zabbix agent active/system.sw.os,#1)<>last(/Linux generic by Zabbix agent active/system.sw.os,#2))=1 and length(last(/Linux generic by Zabbix agent active/system.sw.os))>0' - name: 'System name has changed (new name: {ITEM.VALUE})' - expression: '{Linux generic by Zabbix agent active:system.hostname.diff()}=1 and {Linux generic by Zabbix agent active:system.hostname.strlen()}>0' + expression: '(last(/Linux generic by Zabbix agent active/system.hostname,#1)<>last(/Linux generic by Zabbix agent active/system.hostname,#2))=1 and length(last(/Linux generic by Zabbix agent active/system.hostname))>0' macros: - macro: '{$KERNEL.MAXFILES.MIN}' @@ -1308,14 +1348,14 @@ zabbix_export: value: Memory triggers: - - expression: '{min(5m)}>{$MEMORY.UTIL.MAX}' + expression: 'min(/Linux memory by Zabbix agent active/vm.memory.utilization,5m)>{$MEMORY.UTIL.MAX}' name: 'High memory utilization (>{$MEMORY.UTIL.MAX}% for 5m)' priority: AVERAGE description: 'The system is running out of free memory.' dependencies: - name: 'Lack of available memory (<{$MEMORY.AVAILABLE.MIN} of {ITEM.VALUE2})' - expression: '{Linux memory by Zabbix agent active:vm.memory.size[available].min(5m)}<{$MEMORY.AVAILABLE.MIN} and {Linux memory by Zabbix agent active:vm.memory.size[total].last()}>0' + expression: 'min(/Linux memory by Zabbix agent active/vm.memory.size[available],5m)<{$MEMORY.AVAILABLE.MIN} and last(/Linux memory by Zabbix agent active/vm.memory.size[total])>0' macros: - macro: '{$MEMORY.AVAILABLE.MIN}' @@ -1507,9 +1547,9 @@ zabbix_export: value: 'Interface {#IFNAME}' trigger_prototypes: - - expression: '{$IFCONTROL:"{#IFNAME}"}=1 and ({last()}=2 and {diff()}=1)' + expression: '{$IFCONTROL:"{#IFNAME}"}=1 and (last(/Linux network interfaces by Zabbix agent active/vfs.file.contents["/sys/class/net/{#IFNAME}/operstate"])=2 and (last(/Linux network interfaces by Zabbix agent active/vfs.file.contents["/sys/class/net/{#IFNAME}/operstate"],#1)<>last(/Linux network interfaces by Zabbix agent active/vfs.file.contents["/sys/class/net/{#IFNAME}/operstate"],#2))=1)' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{last()}<>2 or {$IFCONTROL:"{#IFNAME}"}=0' + recovery_expression: 'last(/Linux network interfaces by Zabbix agent active/vfs.file.contents["/sys/class/net/{#IFNAME}/operstate"])<>2 or {$IFCONTROL:"{#IFNAME}"}=0' name: 'Interface {#IFNAME}: Link down' opdata: 'Current state: {ITEM.LASTVALUE1}' priority: AVERAGE @@ -1546,16 +1586,16 @@ zabbix_export: trigger_prototypes: - expression: | - {Linux network interfaces by Zabbix agent active:vfs.file.contents["/sys/class/net/{#IFNAME}/type"].change()}<0 and {Linux network interfaces by Zabbix agent active:vfs.file.contents["/sys/class/net/{#IFNAME}/type"].last()}>0 + change(/Linux network interfaces by Zabbix agent active/vfs.file.contents["/sys/class/net/{#IFNAME}/type"])<0 and last(/Linux network interfaces by Zabbix agent active/vfs.file.contents["/sys/class/net/{#IFNAME}/type"])>0 and - ({Linux network interfaces by Zabbix agent active:vfs.file.contents["/sys/class/net/{#IFNAME}/type"].last()}=6 - or {Linux network interfaces by Zabbix agent active:vfs.file.contents["/sys/class/net/{#IFNAME}/type"].last()}=1) + (last(/Linux network interfaces by Zabbix agent active/vfs.file.contents["/sys/class/net/{#IFNAME}/type"])=6 + or last(/Linux network interfaces by Zabbix agent active/vfs.file.contents["/sys/class/net/{#IFNAME}/type"])=1) and - ({Linux network interfaces by Zabbix agent active:vfs.file.contents["/sys/class/net/{#IFNAME}/operstate"].last()}<>2) + (last(/Linux network interfaces by Zabbix agent active/vfs.file.contents["/sys/class/net/{#IFNAME}/operstate"])<>2) recovery_mode: RECOVERY_EXPRESSION recovery_expression: | - ({Linux network interfaces by Zabbix agent active:vfs.file.contents["/sys/class/net/{#IFNAME}/type"].change()}>0 and {Linux network interfaces by Zabbix agent active:vfs.file.contents["/sys/class/net/{#IFNAME}/type"].prev()}>0) or - ({Linux network interfaces by Zabbix agent active:vfs.file.contents["/sys/class/net/{#IFNAME}/operstate"].last()}=2) + (change(/Linux network interfaces by Zabbix agent active/vfs.file.contents["/sys/class/net/{#IFNAME}/type"])>0 and last(/Linux network interfaces by Zabbix agent active/vfs.file.contents["/sys/class/net/{#IFNAME}/type"],#2)>0) or + (last(/Linux network interfaces by Zabbix agent active/vfs.file.contents["/sys/class/net/{#IFNAME}/operstate"])=2) name: 'Interface {#IFNAME}: Ethernet has changed to lower speed than it was before' opdata: 'Current reported speed: {ITEM.LASTVALUE1}' priority: INFO @@ -1564,16 +1604,16 @@ zabbix_export: dependencies: - name: 'Interface {#IFNAME}: Link down' - expression: '{$IFCONTROL:"{#IFNAME}"}=1 and ({Linux network interfaces by Zabbix agent active:vfs.file.contents["/sys/class/net/{#IFNAME}/operstate"].last()}=2 and {Linux network interfaces by Zabbix agent active:vfs.file.contents["/sys/class/net/{#IFNAME}/operstate"].diff()}=1)' - recovery_expression: '{Linux network interfaces by Zabbix agent active:vfs.file.contents["/sys/class/net/{#IFNAME}/operstate"].last()}<>2 or {$IFCONTROL:"{#IFNAME}"}=0' + expression: '{$IFCONTROL:"{#IFNAME}"}=1 and (last(/Linux network interfaces by Zabbix agent active/vfs.file.contents["/sys/class/net/{#IFNAME}/operstate"])=2 and (last(/Linux network interfaces by Zabbix agent active/vfs.file.contents["/sys/class/net/{#IFNAME}/operstate"],#1)<>last(/Linux network interfaces by Zabbix agent active/vfs.file.contents["/sys/class/net/{#IFNAME}/operstate"],#2))=1)' + recovery_expression: 'last(/Linux network interfaces by Zabbix agent active/vfs.file.contents["/sys/class/net/{#IFNAME}/operstate"])<>2 or {$IFCONTROL:"{#IFNAME}"}=0' - expression: | - {Linux network interfaces by Zabbix agent active:net.if.in["{#IFNAME}",errors].min(5m)}>{$IF.ERRORS.WARN:"{#IFNAME}"} - or {Linux network interfaces by Zabbix agent active:net.if.out["{#IFNAME}",errors].min(5m)}>{$IF.ERRORS.WARN:"{#IFNAME}"} + min(/Linux network interfaces by Zabbix agent active/net.if.in["{#IFNAME}",errors],5m)>{$IF.ERRORS.WARN:"{#IFNAME}"} + or min(/Linux network interfaces by Zabbix agent active/net.if.out["{#IFNAME}",errors],5m)>{$IF.ERRORS.WARN:"{#IFNAME}"} recovery_mode: RECOVERY_EXPRESSION recovery_expression: | - {Linux network interfaces by Zabbix agent active:net.if.in["{#IFNAME}",errors].max(5m)}<{$IF.ERRORS.WARN:"{#IFNAME}"}*0.8 - and {Linux network interfaces by Zabbix agent active:net.if.out["{#IFNAME}",errors].max(5m)}<{$IF.ERRORS.WARN:"{#IFNAME}"}*0.8 + max(/Linux network interfaces by Zabbix agent active/net.if.in["{#IFNAME}",errors],5m)<{$IF.ERRORS.WARN:"{#IFNAME}"}*0.8 + and max(/Linux network interfaces by Zabbix agent active/net.if.out["{#IFNAME}",errors],5m)<{$IF.ERRORS.WARN:"{#IFNAME}"}*0.8 name: 'Interface {#IFNAME}: High error rate (>{$IF.ERRORS.WARN:"{#IFNAME}"} for 5m)' opdata: 'errors in: {ITEM.LASTVALUE1}, errors out: {ITEM.LASTVALUE2}' priority: WARNING @@ -1582,8 +1622,8 @@ zabbix_export: dependencies: - name: 'Interface {#IFNAME}: Link down' - expression: '{$IFCONTROL:"{#IFNAME}"}=1 and ({Linux network interfaces by Zabbix agent active:vfs.file.contents["/sys/class/net/{#IFNAME}/operstate"].last()}=2 and {Linux network interfaces by Zabbix agent active:vfs.file.contents["/sys/class/net/{#IFNAME}/operstate"].diff()}=1)' - recovery_expression: '{Linux network interfaces by Zabbix agent active:vfs.file.contents["/sys/class/net/{#IFNAME}/operstate"].last()}<>2 or {$IFCONTROL:"{#IFNAME}"}=0' + expression: '{$IFCONTROL:"{#IFNAME}"}=1 and (last(/Linux network interfaces by Zabbix agent active/vfs.file.contents["/sys/class/net/{#IFNAME}/operstate"])=2 and (last(/Linux network interfaces by Zabbix agent active/vfs.file.contents["/sys/class/net/{#IFNAME}/operstate"],#1)<>last(/Linux network interfaces by Zabbix agent active/vfs.file.contents["/sys/class/net/{#IFNAME}/operstate"],#2))=1)' + recovery_expression: 'last(/Linux network interfaces by Zabbix agent active/vfs.file.contents["/sys/class/net/{#IFNAME}/operstate"])<>2 or {$IFCONTROL:"{#IFNAME}"}=0' graph_prototypes: - name: 'Interface {#IFNAME}: Network traffic' @@ -1652,7 +1692,7 @@ zabbix_export: - type: GRAPH_PROTOTYPE width: '24' - height: '12' + height: '5' fields: - type: INTEGER @@ -1661,7 +1701,11 @@ zabbix_export: - type: INTEGER name: rows - value: '3' + value: '1' + - + type: INTEGER + name: source_type + value: '2' - type: GRAPH_PROTOTYPE name: graphid @@ -1887,12 +1931,12 @@ zabbix_export: newvalue: 'Vsock monitor header' triggers: - - expression: '{Linux generic by Zabbix agent active:proc.num.last()}/{Linux generic by Zabbix agent active:kernel.maxproc.last()}*100>80' + expression: 'last(/Linux generic by Zabbix agent active/proc.num)/last(/Linux generic by Zabbix agent active/kernel.maxproc)*100>80' name: 'Getting closer to process limit (over 80% used)' opdata: '{ITEM.LASTVALUE1} active, {ITEM.LASTVALUE2} limit.' priority: WARNING - - expression: '{Linux memory by Zabbix agent active:system.swap.size[,pfree].min(5m)}<{$SWAP.PFREE.MIN.WARN} and {Linux memory by Zabbix agent active:system.swap.size[,total].last()}>0' + expression: 'min(/Linux memory by Zabbix agent active/system.swap.size[,pfree],5m)<{$SWAP.PFREE.MIN.WARN} and last(/Linux memory by Zabbix agent active/system.swap.size[,total])>0' name: 'High swap space usage (less than {$SWAP.PFREE.MIN.WARN}% free)' opdata: 'Free: {ITEM.LASTVALUE1}, total: {ITEM.LASTVALUE2}' priority: WARNING @@ -1900,20 +1944,20 @@ zabbix_export: dependencies: - name: 'High memory utilization (>{$MEMORY.UTIL.MAX}% for 5m)' - expression: '{Linux memory by Zabbix agent active:vm.memory.utilization.min(5m)}>{$MEMORY.UTIL.MAX}' + expression: 'min(/Linux memory by Zabbix agent active/vm.memory.utilization,5m)>{$MEMORY.UTIL.MAX}' - name: 'Lack of available memory (<{$MEMORY.AVAILABLE.MIN} of {ITEM.VALUE2})' - expression: '{Linux memory by Zabbix agent active:vm.memory.size[available].min(5m)}<{$MEMORY.AVAILABLE.MIN} and {Linux memory by Zabbix agent active:vm.memory.size[total].last()}>0' + expression: 'min(/Linux memory by Zabbix agent active/vm.memory.size[available],5m)<{$MEMORY.AVAILABLE.MIN} and last(/Linux memory by Zabbix agent active/vm.memory.size[total])>0' - - expression: '{Linux memory by Zabbix agent active:vm.memory.size[available].min(5m)}<{$MEMORY.AVAILABLE.MIN} and {Linux memory by Zabbix agent active:vm.memory.size[total].last()}>0' + expression: 'min(/Linux memory by Zabbix agent active/vm.memory.size[available],5m)<{$MEMORY.AVAILABLE.MIN} and last(/Linux memory by Zabbix agent active/vm.memory.size[total])>0' name: 'Lack of available memory (<{$MEMORY.AVAILABLE.MIN} of {ITEM.VALUE2})' opdata: 'Available: {ITEM.LASTVALUE1}, total: {ITEM.LASTVALUE2}' priority: AVERAGE - expression: | - {Linux CPU by Zabbix agent active:system.cpu.load[all,avg1].min(5m)}/{Linux CPU by Zabbix agent active:system.cpu.num.last()}>{$LOAD_AVG_PER_CPU.MAX.WARN} - and {Linux CPU by Zabbix agent active:system.cpu.load[all,avg5].last()}>0 - and {Linux CPU by Zabbix agent active:system.cpu.load[all,avg15].last()}>0 + min(/Linux CPU by Zabbix agent active/system.cpu.load[all,avg1],5m)/last(/Linux CPU by Zabbix agent active/system.cpu.num)>{$LOAD_AVG_PER_CPU.MAX.WARN} + and last(/Linux CPU by Zabbix agent active/system.cpu.load[all,avg5])>0 + and last(/Linux CPU by Zabbix agent active/system.cpu.load[all,avg15])>0 name: 'Load average is too high (per CPU load over {$LOAD_AVG_PER_CPU.MAX.WARN} for 5m)' opdata: 'Load averages(1m 5m 15m): ({ITEM.LASTVALUE1} {ITEM.LASTVALUE3} {ITEM.LASTVALUE4}), # of CPUs: {ITEM.LASTVALUE2}' priority: AVERAGE diff --git a/templates/os/linux_prom/template_os_linux_prom.yaml b/templates/os/linux_prom/template_os_linux_prom.yaml index 5ec427242a5..9e72d3a33f4 100644 --- a/templates/os/linux_prom/template_os_linux_prom.yaml +++ b/templates/os/linux_prom/template_os_linux_prom.yaml @@ -1,6 +1,6 @@ zabbix_export: version: '5.4' - date: '2021-04-22T11:28:48Z' + date: '2021-05-09T00:00:00Z' groups: - name: 'Templates/Operating systems' @@ -96,13 +96,13 @@ zabbix_export: value: General triggers: - - expression: '{last()}<{$KERNEL.MAXFILES.MIN}' + expression: 'last(/Linux by Prom/kernel.maxfiles[node_exporter])<{$KERNEL.MAXFILES.MIN}' name: 'Configured max number of open filedescriptors is too low (< {$KERNEL.MAXFILES.MIN})' priority: INFO dependencies: - name: 'Running out of file descriptors (less than < 20% free)' - expression: '{Linux by Prom:fd.open[node_exporter].last()}/{Linux by Prom:kernel.maxfiles[node_exporter].last()}*100>80' + expression: 'last(/Linux by Prom/fd.open[node_exporter])/last(/Linux by Prom/kernel.maxfiles[node_exporter])*100>80' - name: 'Get node_exporter metrics' type: HTTP_AGENT @@ -117,7 +117,7 @@ zabbix_export: value: 'Zabbix raw items' triggers: - - expression: '{nodata(30m)}=1' + expression: 'nodata(/Linux by Prom/node_exporter.get,30m)=1' name: 'node_exporter is not available (or no data for 30m)' priority: WARNING description: 'Failed to fetch system metrics from node_exporter in time.' @@ -662,7 +662,7 @@ zabbix_export: value: CPU triggers: - - expression: '{min(5m)}>{$CPU.UTIL.CRIT}' + expression: 'min(/Linux by Prom/system.cpu.util[node_exporter],5m)>{$CPU.UTIL.CRIT}' name: 'High CPU utilization (over {$CPU.UTIL.CRIT}% for 5m)' opdata: 'Current utilization: {ITEM.LASTVALUE1}' priority: WARNING @@ -671,9 +671,9 @@ zabbix_export: - name: 'Load average is too high (per CPU load over {$LOAD_AVG_PER_CPU.MAX.WARN} for 5m)' expression: | - {Linux by Prom:system.cpu.load.avg1[node_exporter].min(5m)}/{Linux by Prom:system.cpu.num[node_exporter].last()}>{$LOAD_AVG_PER_CPU.MAX.WARN} - and {Linux by Prom:system.cpu.load.avg5[node_exporter].last()}>0 - and {Linux by Prom:system.cpu.load.avg15[node_exporter].last()}>0 + min(/Linux by Prom/system.cpu.load.avg1[node_exporter],5m)/last(/Linux by Prom/system.cpu.num[node_exporter])>{$LOAD_AVG_PER_CPU.MAX.WARN} + and last(/Linux by Prom/system.cpu.load.avg5[node_exporter])>0 + and last(/Linux by Prom/system.cpu.load.avg15[node_exporter])>0 - name: 'System description' type: DEPENDENT @@ -727,7 +727,7 @@ zabbix_export: value: General triggers: - - expression: '{fuzzytime({$SYSTEM.FUZZYTIME.MAX})}=0' + expression: 'fuzzytime(/Linux by Prom/system.localtime[node_exporter],{$SYSTEM.FUZZYTIME.MAX})=0' name: 'System time is out of sync (diff with Zabbix server > {$SYSTEM.FUZZYTIME.MAX}s)' priority: WARNING description: 'The host system time is different from the Zabbix server time.' @@ -760,7 +760,7 @@ zabbix_export: value: General triggers: - - expression: '{diff()}=1 and {strlen()}>0' + expression: '(last(/Linux by Prom/system.name[node_exporter],#1)<>last(/Linux by Prom/system.name[node_exporter],#2))=1 and length(last(/Linux by Prom/system.name[node_exporter]))>0' name: 'System name has changed (new name: {ITEM.VALUE})' priority: INFO description: 'System name has changed. Ack to close.' @@ -812,7 +812,7 @@ zabbix_export: value: Inventory triggers: - - expression: '{diff()}=1 and {strlen()}>0' + expression: '(last(/Linux by Prom/system.sw.os[node_exporter],#1)<>last(/Linux by Prom/system.sw.os[node_exporter],#2))=1 and length(last(/Linux by Prom/system.sw.os[node_exporter]))>0' name: 'Operating system description has changed' priority: INFO description: 'Operating system description has changed. Possible reasons that system has been updated or replaced. Ack to close.' @@ -820,7 +820,7 @@ zabbix_export: dependencies: - name: 'System name has changed (new name: {ITEM.VALUE})' - expression: '{Linux by Prom:system.name[node_exporter].diff()}=1 and {Linux by Prom:system.name[node_exporter].strlen()}>0' + expression: '(last(/Linux by Prom/system.name[node_exporter],#1)<>last(/Linux by Prom/system.name[node_exporter],#2))=1 and length(last(/Linux by Prom/system.name[node_exporter]))>0' - name: 'Free swap space' type: DEPENDENT @@ -849,7 +849,7 @@ zabbix_export: history: 7d value_type: FLOAT units: '%' - params: 'last("system.swap.free[node_exporter]")/last("system.swap.total[node_exporter]")*100' + params: 'last(//system.swap.free[node_exporter])/last(//system.swap.total[node_exporter])*100' description: 'The free space of swap volume/file in percent.' tags: - @@ -905,7 +905,7 @@ zabbix_export: value: Status triggers: - - expression: '{last()}<10m' + expression: 'last(/Linux by Prom/system.uptime[node_exporter])<10m' name: '{HOST.NAME} has been restarted (uptime < 10m)' priority: WARNING description: 'The device uptime is less than 10 minutes' @@ -959,7 +959,7 @@ zabbix_export: history: 7d value_type: FLOAT units: '%' - params: '(last("vm.memory.total[node_exporter]")-last("vm.memory.available[node_exporter]"))/last("vm.memory.total[node_exporter]")*100' + params: '(last(//vm.memory.total[node_exporter])-last(//vm.memory.available[node_exporter]))/last(//vm.memory.total[node_exporter])*100' description: 'Memory used percentage is calculated as (total-available)/total*100' tags: - @@ -967,14 +967,14 @@ zabbix_export: value: Memory triggers: - - expression: '{min(5m)}>{$MEMORY.UTIL.MAX}' + expression: 'min(/Linux by Prom/vm.memory.util[node_exporter],5m)>{$MEMORY.UTIL.MAX}' name: 'High memory utilization (>{$MEMORY.UTIL.MAX}% for 5m)' priority: AVERAGE description: 'The system is running out of free memory.' dependencies: - name: 'Lack of available memory (<{$MEMORY.AVAILABLE.MIN} of {ITEM.VALUE2})' - expression: '{Linux by Prom:vm.memory.available[node_exporter].min(5m)}<{$MEMORY.AVAILABLE.MIN} and {Linux by Prom:vm.memory.total[node_exporter].last()}>0' + expression: 'min(/Linux by Prom/vm.memory.available[node_exporter],5m)<{$MEMORY.AVAILABLE.MIN} and last(/Linux by Prom/vm.memory.total[node_exporter])>0' discovery_rules: - name: 'Network interface discovery' @@ -1243,9 +1243,9 @@ zabbix_export: value: 'Interface {#IFNAME}({#IFALIAS})' trigger_prototypes: - - expression: '{$IFCONTROL:"{#IFNAME}"}=1 and ({last()}=2 and {diff()}=1)' + expression: '{$IFCONTROL:"{#IFNAME}"}=1 and (last(/Linux by Prom/net.if.status[node_exporter,"{#IFNAME}"])=2 and (last(/Linux by Prom/net.if.status[node_exporter,"{#IFNAME}"],#1)<>last(/Linux by Prom/net.if.status[node_exporter,"{#IFNAME}"],#2))=1)' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{last()}<>2 or {$IFCONTROL:"{#IFNAME}"}=0' + recovery_expression: 'last(/Linux by Prom/net.if.status[node_exporter,"{#IFNAME}"])<>2 or {$IFCONTROL:"{#IFNAME}"}=0' name: 'Interface {#IFNAME}({#IFALIAS}): Link down' opdata: 'Current state: {ITEM.LASTVALUE1}' priority: AVERAGE @@ -1282,21 +1282,21 @@ zabbix_export: trigger_prototypes: - expression: | - {Linux by Prom:net.if.speed[node_exporter,"{#IFNAME}"].change()}<0 and {Linux by Prom:net.if.speed[node_exporter,"{#IFNAME}"].last()}>0 + change(/Linux by Prom/net.if.speed[node_exporter,"{#IFNAME}"])<0 and last(/Linux by Prom/net.if.speed[node_exporter,"{#IFNAME}"])>0 and ( - {Linux by Prom:net.if.type[node_exporter,"{#IFNAME}"].last()}=6 or - {Linux by Prom:net.if.type[node_exporter,"{#IFNAME}"].last()}=7 or - {Linux by Prom:net.if.type[node_exporter,"{#IFNAME}"].last()}=11 or - {Linux by Prom:net.if.type[node_exporter,"{#IFNAME}"].last()}=62 or - {Linux by Prom:net.if.type[node_exporter,"{#IFNAME}"].last()}=69 or - {Linux by Prom:net.if.type[node_exporter,"{#IFNAME}"].last()}=117 + last(/Linux by Prom/net.if.type[node_exporter,"{#IFNAME}"])=6 or + last(/Linux by Prom/net.if.type[node_exporter,"{#IFNAME}"])=7 or + last(/Linux by Prom/net.if.type[node_exporter,"{#IFNAME}"])=11 or + last(/Linux by Prom/net.if.type[node_exporter,"{#IFNAME}"])=62 or + last(/Linux by Prom/net.if.type[node_exporter,"{#IFNAME}"])=69 or + last(/Linux by Prom/net.if.type[node_exporter,"{#IFNAME}"])=117 ) and - ({Linux by Prom:net.if.status[node_exporter,"{#IFNAME}"].last()}<>2) + (last(/Linux by Prom/net.if.status[node_exporter,"{#IFNAME}"])<>2) recovery_mode: RECOVERY_EXPRESSION recovery_expression: | - ({Linux by Prom:net.if.speed[node_exporter,"{#IFNAME}"].change()}>0 and {Linux by Prom:net.if.speed[node_exporter,"{#IFNAME}"].prev()}>0) or - ({Linux by Prom:net.if.status[node_exporter,"{#IFNAME}"].last()}=2) + (change(/Linux by Prom/net.if.speed[node_exporter,"{#IFNAME}"])>0 and last(/Linux by Prom/net.if.speed[node_exporter,"{#IFNAME}"],#2)>0) or + (last(/Linux by Prom/net.if.status[node_exporter,"{#IFNAME}"])=2) name: 'Interface {#IFNAME}({#IFALIAS}): Ethernet has changed to lower speed than it was before' opdata: 'Current reported speed: {ITEM.LASTVALUE1}' priority: INFO @@ -1305,20 +1305,20 @@ zabbix_export: dependencies: - name: 'Interface {#IFNAME}({#IFALIAS}): Link down' - expression: '{$IFCONTROL:"{#IFNAME}"}=1 and ({Linux by Prom:net.if.status[node_exporter,"{#IFNAME}"].last()}=2 and {Linux by Prom:net.if.status[node_exporter,"{#IFNAME}"].diff()}=1)' - recovery_expression: '{Linux by Prom:net.if.status[node_exporter,"{#IFNAME}"].last()}<>2 or {$IFCONTROL:"{#IFNAME}"}=0' + expression: '{$IFCONTROL:"{#IFNAME}"}=1 and (last(/Linux by Prom/net.if.status[node_exporter,"{#IFNAME}"])=2 and (last(/Linux by Prom/net.if.status[node_exporter,"{#IFNAME}"],#1)<>last(/Linux by Prom/net.if.status[node_exporter,"{#IFNAME}"],#2))=1)' + recovery_expression: 'last(/Linux by Prom/net.if.status[node_exporter,"{#IFNAME}"])<>2 or {$IFCONTROL:"{#IFNAME}"}=0' - expression: | - {Linux by Prom:net.if.type[node_exporter,"{#IFNAME}"].change()}<0 and {Linux by Prom:net.if.type[node_exporter,"{#IFNAME}"].last()}>0 + change(/Linux by Prom/net.if.type[node_exporter,"{#IFNAME}"])<0 and last(/Linux by Prom/net.if.type[node_exporter,"{#IFNAME}"])>0 and - ({Linux by Prom:net.if.type[node_exporter,"{#IFNAME}"].last()}=6 - or {Linux by Prom:net.if.type[node_exporter,"{#IFNAME}"].last()}=1) + (last(/Linux by Prom/net.if.type[node_exporter,"{#IFNAME}"])=6 + or last(/Linux by Prom/net.if.type[node_exporter,"{#IFNAME}"])=1) and - ({Linux by Prom:net.if.status[node_exporter,"{#IFNAME}"].last()}<>2) + (last(/Linux by Prom/net.if.status[node_exporter,"{#IFNAME}"])<>2) recovery_mode: RECOVERY_EXPRESSION recovery_expression: | - ({Linux by Prom:net.if.type[node_exporter,"{#IFNAME}"].change()}>0 and {Linux by Prom:net.if.type[node_exporter,"{#IFNAME}"].prev()}>0) or - ({Linux by Prom:net.if.status[node_exporter,"{#IFNAME}"].last()}=2) + (change(/Linux by Prom/net.if.type[node_exporter,"{#IFNAME}"])>0 and last(/Linux by Prom/net.if.type[node_exporter,"{#IFNAME}"],#2)>0) or + (last(/Linux by Prom/net.if.status[node_exporter,"{#IFNAME}"])=2) name: 'Interface {#IFNAME}({#IFALIAS}): Ethernet has changed to lower speed than it was before' opdata: 'Current reported speed: {ITEM.LASTVALUE1}' priority: INFO @@ -1327,17 +1327,17 @@ zabbix_export: dependencies: - name: 'Interface {#IFNAME}({#IFALIAS}): Link down' - expression: '{$IFCONTROL:"{#IFNAME}"}=1 and ({Linux by Prom:net.if.status[node_exporter,"{#IFNAME}"].last()}=2 and {Linux by Prom:net.if.status[node_exporter,"{#IFNAME}"].diff()}=1)' - recovery_expression: '{Linux by Prom:net.if.status[node_exporter,"{#IFNAME}"].last()}<>2 or {$IFCONTROL:"{#IFNAME}"}=0' + expression: '{$IFCONTROL:"{#IFNAME}"}=1 and (last(/Linux by Prom/net.if.status[node_exporter,"{#IFNAME}"])=2 and (last(/Linux by Prom/net.if.status[node_exporter,"{#IFNAME}"],#1)<>last(/Linux by Prom/net.if.status[node_exporter,"{#IFNAME}"],#2))=1)' + recovery_expression: 'last(/Linux by Prom/net.if.status[node_exporter,"{#IFNAME}"])<>2 or {$IFCONTROL:"{#IFNAME}"}=0' - expression: | - ({Linux by Prom:net.if.in[node_exporter,"{#IFNAME}"].avg(15m)}>({$IF.UTIL.MAX:"{#IFNAME}"}/100)*{Linux by Prom:net.if.speed[node_exporter,"{#IFNAME}"].last()} or - {Linux by Prom:net.if.out[node_exporter,"{#IFNAME}"].avg(15m)}>({$IF.UTIL.MAX:"{#IFNAME}"}/100)*{Linux by Prom:net.if.speed[node_exporter,"{#IFNAME}"].last()}) and - {Linux by Prom:net.if.speed[node_exporter,"{#IFNAME}"].last()}>0 + (avg(/Linux by Prom/net.if.in[node_exporter,"{#IFNAME}"],15m)>({$IF.UTIL.MAX:"{#IFNAME}"}/100)*last(/Linux by Prom/net.if.speed[node_exporter,"{#IFNAME}"]) or + avg(/Linux by Prom/net.if.out[node_exporter,"{#IFNAME}"],15m)>({$IF.UTIL.MAX:"{#IFNAME}"}/100)*last(/Linux by Prom/net.if.speed[node_exporter,"{#IFNAME}"])) and + last(/Linux by Prom/net.if.speed[node_exporter,"{#IFNAME}"])>0 recovery_mode: RECOVERY_EXPRESSION recovery_expression: | - {Linux by Prom:net.if.in[node_exporter,"{#IFNAME}"].avg(15m)}<(({$IF.UTIL.MAX:"{#IFNAME}"}-3)/100)*{Linux by Prom:net.if.speed[node_exporter,"{#IFNAME}"].last()} and - {Linux by Prom:net.if.out[node_exporter,"{#IFNAME}"].avg(15m)}<(({$IF.UTIL.MAX:"{#IFNAME}"}-3)/100)*{Linux by Prom:net.if.speed[node_exporter,"{#IFNAME}"].last()} + avg(/Linux by Prom/net.if.in[node_exporter,"{#IFNAME}"],15m)<(({$IF.UTIL.MAX:"{#IFNAME}"}-3)/100)*last(/Linux by Prom/net.if.speed[node_exporter,"{#IFNAME}"]) and + avg(/Linux by Prom/net.if.out[node_exporter,"{#IFNAME}"],15m)<(({$IF.UTIL.MAX:"{#IFNAME}"}-3)/100)*last(/Linux by Prom/net.if.speed[node_exporter,"{#IFNAME}"]) name: 'Interface {#IFNAME}({#IFALIAS}): High bandwidth usage (>{$IF.UTIL.MAX:"{#IFNAME}"}% )' opdata: 'In: {ITEM.LASTVALUE1}, out: {ITEM.LASTVALUE3}, speed: {ITEM.LASTVALUE2}' priority: WARNING @@ -1346,16 +1346,16 @@ zabbix_export: dependencies: - name: 'Interface {#IFNAME}({#IFALIAS}): Link down' - expression: '{$IFCONTROL:"{#IFNAME}"}=1 and ({Linux by Prom:net.if.status[node_exporter,"{#IFNAME}"].last()}=2 and {Linux by Prom:net.if.status[node_exporter,"{#IFNAME}"].diff()}=1)' - recovery_expression: '{Linux by Prom:net.if.status[node_exporter,"{#IFNAME}"].last()}<>2 or {$IFCONTROL:"{#IFNAME}"}=0' + expression: '{$IFCONTROL:"{#IFNAME}"}=1 and (last(/Linux by Prom/net.if.status[node_exporter,"{#IFNAME}"])=2 and (last(/Linux by Prom/net.if.status[node_exporter,"{#IFNAME}"],#1)<>last(/Linux by Prom/net.if.status[node_exporter,"{#IFNAME}"],#2))=1)' + recovery_expression: 'last(/Linux by Prom/net.if.status[node_exporter,"{#IFNAME}"])<>2 or {$IFCONTROL:"{#IFNAME}"}=0' - expression: | - {Linux by Prom:net.if.in.errors[node_exporter,"{#IFNAME}"].min(5m)}>{$IF.ERRORS.WARN:"{#IFNAME}"} - or {Linux by Prom:net.if.out.errors[node_exporter"{#IFNAME}"].min(5m)}>{$IF.ERRORS.WARN:"{#IFNAME}"} + min(/Linux by Prom/net.if.in.errors[node_exporter,"{#IFNAME}"],5m)>{$IF.ERRORS.WARN:"{#IFNAME}"} + or min(/Linux by Prom/net.if.out.errors[node_exporter"{#IFNAME}"],5m)>{$IF.ERRORS.WARN:"{#IFNAME}"} recovery_mode: RECOVERY_EXPRESSION recovery_expression: | - {Linux by Prom:net.if.in.errors[node_exporter,"{#IFNAME}"].max(5m)}<{$IF.ERRORS.WARN:"{#IFNAME}"}*0.8 - and {Linux by Prom:net.if.out.errors[node_exporter"{#IFNAME}"].max(5m)}<{$IF.ERRORS.WARN:"{#IFNAME}"}*0.8 + max(/Linux by Prom/net.if.in.errors[node_exporter,"{#IFNAME}"],5m)<{$IF.ERRORS.WARN:"{#IFNAME}"}*0.8 + and max(/Linux by Prom/net.if.out.errors[node_exporter"{#IFNAME}"],5m)<{$IF.ERRORS.WARN:"{#IFNAME}"}*0.8 name: 'Interface {#IFNAME}({#IFALIAS}): High error rate (>{$IF.ERRORS.WARN:"{#IFNAME}"} for 5m)' opdata: 'errors in: {ITEM.LASTVALUE1}, errors out: {ITEM.LASTVALUE2}' priority: WARNING @@ -1364,8 +1364,8 @@ zabbix_export: dependencies: - name: 'Interface {#IFNAME}({#IFALIAS}): Link down' - expression: '{$IFCONTROL:"{#IFNAME}"}=1 and ({Linux by Prom:net.if.status[node_exporter,"{#IFNAME}"].last()}=2 and {Linux by Prom:net.if.status[node_exporter,"{#IFNAME}"].diff()}=1)' - recovery_expression: '{Linux by Prom:net.if.status[node_exporter,"{#IFNAME}"].last()}<>2 or {$IFCONTROL:"{#IFNAME}"}=0' + expression: '{$IFCONTROL:"{#IFNAME}"}=1 and (last(/Linux by Prom/net.if.status[node_exporter,"{#IFNAME}"])=2 and (last(/Linux by Prom/net.if.status[node_exporter,"{#IFNAME}"],#1)<>last(/Linux by Prom/net.if.status[node_exporter,"{#IFNAME}"],#2))=1)' + recovery_expression: 'last(/Linux by Prom/net.if.status[node_exporter,"{#IFNAME}"])<>2 or {$IFCONTROL:"{#IFNAME}"}=0' graph_prototypes: - name: 'Interface {#IFNAME}({#IFALIAS}): Network traffic' @@ -1480,7 +1480,7 @@ zabbix_export: history: 7d value_type: FLOAT units: '!ms' - params: '(last("vfs.dev.read.time.rate[node_exporter,\"{#DEVNAME}\"]")/(last("vfs.dev.read.rate[node_exporter,\"{#DEVNAME}\"]")+(last("vfs.dev.read.rate[node_exporter,\"{#DEVNAME}\"]")=0)))*1000*(last("vfs.dev.read.rate[node_exporter,\"{#DEVNAME}\"]") > 0)' + params: '(last(//vfs.dev.read.time.rate[node_exporter,"{#DEVNAME}"])/(last(//vfs.dev.read.rate[node_exporter,"{#DEVNAME}"])+(last(//vfs.dev.read.rate[node_exporter,"{#DEVNAME}"])=0)))*1000*(last(//vfs.dev.read.rate[node_exporter,"{#DEVNAME}"]) > 0)' description: 'This formula contains two boolean expressions that evaluates to 1 or 0 in order to set calculated metric to zero and to avoid division by zero exception.' tags: - @@ -1571,7 +1571,7 @@ zabbix_export: history: 7d value_type: FLOAT units: '!ms' - params: '(last("vfs.dev.write.time.rate[node_exporter,\"{#DEVNAME}\"]")/(last("vfs.dev.write.rate[node_exporter,\"{#DEVNAME}\"]")+(last("vfs.dev.write.rate[node_exporter,\"{#DEVNAME}\"]")=0)))*1000*(last("vfs.dev.write.rate[node_exporter,\"{#DEVNAME}\"]") > 0)' + params: '(last(//vfs.dev.write.time.rate[node_exporter,"{#DEVNAME}"])/(last(//vfs.dev.write.rate[node_exporter,"{#DEVNAME}"])+(last(//vfs.dev.write.rate[node_exporter,"{#DEVNAME}"])=0)))*1000*(last(//vfs.dev.write.rate[node_exporter,"{#DEVNAME}"]) > 0)' description: 'This formula contains two boolean expressions that evaluates to 1 or 0 in order to set calculated metric to zero and to avoid division by zero exception.' tags: - @@ -1628,7 +1628,7 @@ zabbix_export: value: 'Zabbix raw items' trigger_prototypes: - - expression: '{Linux by Prom:vfs.dev.read.await[node_exporter,"{#DEVNAME}"].min(15m)} > {$VFS.DEV.READ.AWAIT.WARN:"{#DEVNAME}"} or {Linux by Prom:vfs.dev.write.await[node_exporter,"{#DEVNAME}"].min(15m)} > {$VFS.DEV.WRITE.AWAIT.WARN:"{#DEVNAME}"}' + expression: 'min(/Linux by Prom/vfs.dev.read.await[node_exporter,"{#DEVNAME}"],15m) > {$VFS.DEV.READ.AWAIT.WARN:"{#DEVNAME}"} or min(/Linux by Prom/vfs.dev.write.await[node_exporter,"{#DEVNAME}"],15m) > {$VFS.DEV.WRITE.AWAIT.WARN:"{#DEVNAME}"}' name: '{#DEVNAME}: Disk read/write request responses are too high (read > {$VFS.DEV.READ.AWAIT.WARN:"{#DEVNAME}"} ms for 15m or write > {$VFS.DEV.WRITE.AWAIT.WARN:"{#DEVNAME}"} ms for 15m)' priority: WARNING description: 'This trigger might indicate disk {#DEVNAME} saturation.' @@ -1787,7 +1787,7 @@ zabbix_export: value: 'Filesystem {#FSNAME}' trigger_prototypes: - - expression: '{min(5m)}<{$VFS.FS.INODE.PFREE.MIN.CRIT:"{#FSNAME}"}' + expression: 'min(/Linux by Prom/vfs.fs.inode.pfree[node_exporter,"{#FSNAME}"],5m)<{$VFS.FS.INODE.PFREE.MIN.CRIT:"{#FSNAME}"}' name: '{#FSNAME}: Running out of free inodes (free < {$VFS.FS.INODE.PFREE.MIN.CRIT:"{#FSNAME}"}%)' opdata: 'Free inodes: {ITEM.LASTVALUE1}' priority: AVERAGE @@ -1795,7 +1795,7 @@ zabbix_export: It may become impossible to write to disk if there are no index nodes left. As symptoms, 'No space left on device' or 'Disk is full' errors may be seen even though free space is available. - - expression: '{min(5m)}<{$VFS.FS.INODE.PFREE.MIN.WARN:"{#FSNAME}"}' + expression: 'min(/Linux by Prom/vfs.fs.inode.pfree[node_exporter,"{#FSNAME}"],5m)<{$VFS.FS.INODE.PFREE.MIN.WARN:"{#FSNAME}"}' name: '{#FSNAME}: Running out of free inodes (free < {$VFS.FS.INODE.PFREE.MIN.WARN:"{#FSNAME}"}%)' opdata: 'Free inodes: {ITEM.LASTVALUE1}' priority: WARNING @@ -1805,7 +1805,7 @@ zabbix_export: dependencies: - name: '{#FSNAME}: Running out of free inodes (free < {$VFS.FS.INODE.PFREE.MIN.CRIT:"{#FSNAME}"}%)' - expression: '{Linux by Prom:vfs.fs.inode.pfree[node_exporter,"{#FSNAME}"].min(5m)}<{$VFS.FS.INODE.PFREE.MIN.CRIT:"{#FSNAME}"}' + expression: 'min(/Linux by Prom/vfs.fs.inode.pfree[node_exporter,"{#FSNAME}"],5m)<{$VFS.FS.INODE.PFREE.MIN.CRIT:"{#FSNAME}"}' - name: '{#FSNAME}: Space utilization' type: CALCULATED @@ -1813,7 +1813,7 @@ zabbix_export: history: 7d value_type: FLOAT units: '%' - params: '(last("vfs.fs.used[node_exporter,\"{#FSNAME}\"]")/last("vfs.fs.total[node_exporter,\"{#FSNAME}\"]"))*100' + params: '(last(//vfs.fs.used[node_exporter,"{#FSNAME}"])/last(//vfs.fs.total[node_exporter,"{#FSNAME}"]))*100' description: 'Space utilization in % for {#FSNAME}' tags: - @@ -1847,7 +1847,7 @@ zabbix_export: history: 7d value_type: FLOAT units: B - params: '(last("vfs.fs.total[node_exporter,\"{#FSNAME}\"]")-last("vfs.fs.free[node_exporter,\"{#FSNAME}\"]"))' + params: '(last(//vfs.fs.total[node_exporter,"{#FSNAME}"])-last(//vfs.fs.free[node_exporter,"{#FSNAME}"]))' description: 'Used storage in Bytes' tags: - @@ -1856,8 +1856,8 @@ zabbix_export: trigger_prototypes: - expression: | - {Linux by Prom:vfs.fs.pused[node_exporter,"{#FSNAME}"].last()}>{$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"} and - (({Linux by Prom:vfs.fs.total[node_exporter,"{#FSNAME}"].last()}-{Linux by Prom:vfs.fs.used[node_exporter,"{#FSNAME}"].last()})<5G or {Linux by Prom:vfs.fs.pused[node_exporter,"{#FSNAME}"].timeleft(1h,,100)}<1d) + last(/Linux by Prom/vfs.fs.pused[node_exporter,"{#FSNAME}"])>{$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"} and + ((last(/Linux by Prom/vfs.fs.total[node_exporter,"{#FSNAME}"])-last(/Linux by Prom/vfs.fs.used[node_exporter,"{#FSNAME}"]))<5G or timeleft(/Linux by Prom/vfs.fs.pused[node_exporter,"{#FSNAME}"],1h,100)<1d) name: '{#FSNAME}: Disk space is critically low (used > {$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"}%)' opdata: 'Space used: {ITEM.LASTVALUE3} of {ITEM.LASTVALUE2} ({ITEM.LASTVALUE1})' priority: AVERAGE @@ -1869,8 +1869,8 @@ zabbix_export: manual_close: 'YES' - expression: | - {Linux by Prom:vfs.fs.pused[node_exporter,"{#FSNAME}"].last()}>{$VFS.FS.PUSED.MAX.WARN:"{#FSNAME}"} and - (({Linux by Prom:vfs.fs.total[node_exporter,"{#FSNAME}"].last()}-{Linux by Prom:vfs.fs.used[node_exporter,"{#FSNAME}"].last()})<10G or {Linux by Prom:vfs.fs.pused[node_exporter,"{#FSNAME}"].timeleft(1h,,100)}<1d) + last(/Linux by Prom/vfs.fs.pused[node_exporter,"{#FSNAME}"])>{$VFS.FS.PUSED.MAX.WARN:"{#FSNAME}"} and + ((last(/Linux by Prom/vfs.fs.total[node_exporter,"{#FSNAME}"])-last(/Linux by Prom/vfs.fs.used[node_exporter,"{#FSNAME}"]))<10G or timeleft(/Linux by Prom/vfs.fs.pused[node_exporter,"{#FSNAME}"],1h,100)<1d) name: '{#FSNAME}: Disk space is low (used > {$VFS.FS.PUSED.MAX.WARN:"{#FSNAME}"}%)' opdata: 'Space used: {ITEM.LASTVALUE3} of {ITEM.LASTVALUE2} ({ITEM.LASTVALUE1})' priority: WARNING @@ -1884,8 +1884,8 @@ zabbix_export: - name: '{#FSNAME}: Disk space is critically low (used > {$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"}%)' expression: | - {Linux by Prom:vfs.fs.pused[node_exporter,"{#FSNAME}"].last()}>{$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"} and - (({Linux by Prom:vfs.fs.total[node_exporter,"{#FSNAME}"].last()}-{Linux by Prom:vfs.fs.used[node_exporter,"{#FSNAME}"].last()})<5G or {Linux by Prom:vfs.fs.pused[node_exporter,"{#FSNAME}"].timeleft(1h,,100)}<1d) + last(/Linux by Prom/vfs.fs.pused[node_exporter,"{#FSNAME}"])>{$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"} and + ((last(/Linux by Prom/vfs.fs.total[node_exporter,"{#FSNAME}"])-last(/Linux by Prom/vfs.fs.used[node_exporter,"{#FSNAME}"]))<5G or timeleft(/Linux by Prom/vfs.fs.pused[node_exporter,"{#FSNAME}"],1h,100)<1d) graph_prototypes: - name: '{#FSNAME}: Disk space usage' @@ -2045,7 +2045,7 @@ zabbix_export: - type: GRAPH_PROTOTYPE width: '24' - height: '12' + height: '5' fields: - type: INTEGER @@ -2054,7 +2054,11 @@ zabbix_export: - type: INTEGER name: rows - value: '3' + value: '1' + - + type: INTEGER + name: source_type + value: '2' - type: GRAPH_PROTOTYPE name: graphid @@ -2072,6 +2076,10 @@ zabbix_export: height: '5' fields: - + type: INTEGER + name: source_type + value: '0' + - type: GRAPH name: graphid value: @@ -2084,6 +2092,10 @@ zabbix_export: height: '5' fields: - + type: INTEGER + name: source_type + value: '0' + - type: GRAPH name: graphid value: @@ -2096,6 +2108,10 @@ zabbix_export: height: '5' fields: - + type: INTEGER + name: source_type + value: '0' + - type: GRAPH name: graphid value: @@ -2109,6 +2125,10 @@ zabbix_export: height: '5' fields: - + type: INTEGER + name: source_type + value: '0' + - type: GRAPH name: graphid value: @@ -2118,7 +2138,7 @@ zabbix_export: type: GRAPH_PROTOTYPE 'y': '10' width: '24' - height: '12' + height: '5' fields: - type: INTEGER @@ -2127,7 +2147,11 @@ zabbix_export: - type: INTEGER name: rows - value: '3' + value: '1' + - + type: INTEGER + name: source_type + value: '2' - type: GRAPH_PROTOTYPE name: graphid @@ -2136,9 +2160,9 @@ zabbix_export: host: 'Linux by Prom' - type: GRAPH_PROTOTYPE - 'y': '22' + 'y': '15' width: '24' - height: '12' + height: '5' fields: - type: INTEGER @@ -2147,7 +2171,11 @@ zabbix_export: - type: INTEGER name: rows - value: '3' + value: '1' + - + type: INTEGER + name: source_type + value: '2' - type: GRAPH_PROTOTYPE name: graphid @@ -2156,9 +2184,9 @@ zabbix_export: host: 'Linux by Prom' - type: GRAPH_PROTOTYPE - 'y': '34' + 'y': '20' width: '24' - height: '12' + height: '5' fields: - type: INTEGER @@ -2167,7 +2195,11 @@ zabbix_export: - type: INTEGER name: rows - value: '3' + value: '1' + - + type: INTEGER + name: source_type + value: '2' - type: GRAPH_PROTOTYPE name: graphid @@ -2176,9 +2208,9 @@ zabbix_export: host: 'Linux by Prom' - type: GRAPH_PROTOTYPE - 'y': '46' + 'y': '25' width: '24' - height: '12' + height: '5' fields: - type: INTEGER @@ -2187,7 +2219,11 @@ zabbix_export: - type: INTEGER name: rows - value: '3' + value: '1' + - + type: INTEGER + name: source_type + value: '2' - type: GRAPH_PROTOTYPE name: graphid @@ -2196,15 +2232,23 @@ zabbix_export: host: 'Linux by Prom' - type: GRAPH_PROTOTYPE - 'y': '58' + 'y': '30' width: '24' - height: '6' + height: '5' fields: - type: INTEGER name: columns value: '1' - + type: INTEGER + name: rows + value: '1' + - + type: INTEGER + name: source_type + value: '2' + - type: GRAPH_PROTOTYPE name: graphid value: @@ -2429,7 +2473,7 @@ zabbix_export: newvalue: 'Vsock monitor header' triggers: - - expression: '{Linux by Prom:system.swap.pfree[node_exporter].min(5m)}<{$SWAP.PFREE.MIN.WARN} and {Linux by Prom:system.swap.total[node_exporter].last()}>0' + expression: 'min(/Linux by Prom/system.swap.pfree[node_exporter],5m)<{$SWAP.PFREE.MIN.WARN} and last(/Linux by Prom/system.swap.total[node_exporter])>0' name: 'High swap space usage (less than {$SWAP.PFREE.MIN.WARN}% free)' opdata: 'Free: {ITEM.LASTVALUE1}, total: {ITEM.LASTVALUE2}' priority: WARNING @@ -2437,26 +2481,26 @@ zabbix_export: dependencies: - name: 'High memory utilization (>{$MEMORY.UTIL.MAX}% for 5m)' - expression: '{Linux by Prom:vm.memory.util[node_exporter].min(5m)}>{$MEMORY.UTIL.MAX}' + expression: 'min(/Linux by Prom/vm.memory.util[node_exporter],5m)>{$MEMORY.UTIL.MAX}' - name: 'Lack of available memory (<{$MEMORY.AVAILABLE.MIN} of {ITEM.VALUE2})' - expression: '{Linux by Prom:vm.memory.available[node_exporter].min(5m)}<{$MEMORY.AVAILABLE.MIN} and {Linux by Prom:vm.memory.total[node_exporter].last()}>0' + expression: 'min(/Linux by Prom/vm.memory.available[node_exporter],5m)<{$MEMORY.AVAILABLE.MIN} and last(/Linux by Prom/vm.memory.total[node_exporter])>0' - - expression: '{Linux by Prom:vm.memory.available[node_exporter].min(5m)}<{$MEMORY.AVAILABLE.MIN} and {Linux by Prom:vm.memory.total[node_exporter].last()}>0' + expression: 'min(/Linux by Prom/vm.memory.available[node_exporter],5m)<{$MEMORY.AVAILABLE.MIN} and last(/Linux by Prom/vm.memory.total[node_exporter])>0' name: 'Lack of available memory (<{$MEMORY.AVAILABLE.MIN} of {ITEM.VALUE2})' opdata: 'Available: {ITEM.LASTVALUE1}, total: {ITEM.LASTVALUE2}' priority: AVERAGE - expression: | - {Linux by Prom:system.cpu.load.avg1[node_exporter].min(5m)}/{Linux by Prom:system.cpu.num[node_exporter].last()}>{$LOAD_AVG_PER_CPU.MAX.WARN} - and {Linux by Prom:system.cpu.load.avg5[node_exporter].last()}>0 - and {Linux by Prom:system.cpu.load.avg15[node_exporter].last()}>0 + min(/Linux by Prom/system.cpu.load.avg1[node_exporter],5m)/last(/Linux by Prom/system.cpu.num[node_exporter])>{$LOAD_AVG_PER_CPU.MAX.WARN} + and last(/Linux by Prom/system.cpu.load.avg5[node_exporter])>0 + and last(/Linux by Prom/system.cpu.load.avg15[node_exporter])>0 name: 'Load average is too high (per CPU load over {$LOAD_AVG_PER_CPU.MAX.WARN} for 5m)' opdata: 'Load averages(1m 5m 15m): ({ITEM.LASTVALUE1} {ITEM.LASTVALUE3} {ITEM.LASTVALUE4}), # of CPUs: {ITEM.LASTVALUE2}' priority: AVERAGE description: 'Per CPU load average is too high. Your system may be slow to respond.' - - expression: '{Linux by Prom:fd.open[node_exporter].last()}/{Linux by Prom:kernel.maxfiles[node_exporter].last()}*100>80' + expression: 'last(/Linux by Prom/fd.open[node_exporter])/last(/Linux by Prom/kernel.maxfiles[node_exporter])*100>80' name: 'Running out of file descriptors (less than < 20% free)' opdata: '{ITEM.LASTVALUE1} of {ITEM.LASTVALUE2} file descriptors are in use.' priority: WARNING diff --git a/templates/os/linux_snmp_snmp/template_os_linux_snmp_snmp.yaml b/templates/os/linux_snmp_snmp/template_os_linux_snmp_snmp.yaml index eaf53e38cf4..cb539490a88 100644 --- a/templates/os/linux_snmp_snmp/template_os_linux_snmp_snmp.yaml +++ b/templates/os/linux_snmp_snmp/template_os_linux_snmp_snmp.yaml @@ -1,6 +1,6 @@ zabbix_export: version: '5.4' - date: '2021-04-22T11:28:46Z' + date: '2021-05-09T00:00:00Z' groups: - name: Templates/Modules @@ -512,7 +512,7 @@ zabbix_export: value: CPU trigger_prototypes: - - expression: '{min(5m)}>{$CPU.UTIL.CRIT}' + expression: 'min(/Linux CPU SNMP/system.cpu.util[snmp,{#SNMPINDEX}],5m)>{$CPU.UTIL.CRIT}' name: 'High CPU utilization (over {$CPU.UTIL.CRIT}% for 5m)' opdata: 'Current utilization: {ITEM.LASTVALUE1}' priority: WARNING @@ -669,7 +669,7 @@ zabbix_export: value: 'Filesystem {#FSNAME}' trigger_prototypes: - - expression: '{min(5m)}<{$VFS.FS.INODE.PFREE.MIN.CRIT:"{#FSNAME}"}' + expression: 'min(/Linux filesystems SNMP/vfs.fs.inode.pfree[dskPercentNode.{#SNMPINDEX}],5m)<{$VFS.FS.INODE.PFREE.MIN.CRIT:"{#FSNAME}"}' name: '{#FSNAME}: Running out of free inodes (free < {$VFS.FS.INODE.PFREE.MIN.CRIT:"{#FSNAME}"}%)' opdata: 'Free inodes: {ITEM.LASTVALUE1}' priority: AVERAGE @@ -677,7 +677,7 @@ zabbix_export: It may become impossible to write to disk if there are no index nodes left. As symptoms, 'No space left on device' or 'Disk is full' errors may be seen even though free space is available. - - expression: '{min(5m)}<{$VFS.FS.INODE.PFREE.MIN.WARN:"{#FSNAME}"}' + expression: 'min(/Linux filesystems SNMP/vfs.fs.inode.pfree[dskPercentNode.{#SNMPINDEX}],5m)<{$VFS.FS.INODE.PFREE.MIN.WARN:"{#FSNAME}"}' name: '{#FSNAME}: Running out of free inodes (free < {$VFS.FS.INODE.PFREE.MIN.WARN:"{#FSNAME}"}%)' opdata: 'Free inodes: {ITEM.LASTVALUE1}' priority: WARNING @@ -687,7 +687,7 @@ zabbix_export: dependencies: - name: '{#FSNAME}: Running out of free inodes (free < {$VFS.FS.INODE.PFREE.MIN.CRIT:"{#FSNAME}"}%)' - expression: '{Linux filesystems SNMP:vfs.fs.inode.pfree[dskPercentNode.{#SNMPINDEX}].min(5m)}<{$VFS.FS.INODE.PFREE.MIN.CRIT:"{#FSNAME}"}' + expression: 'min(/Linux filesystems SNMP/vfs.fs.inode.pfree[dskPercentNode.{#SNMPINDEX}],5m)<{$VFS.FS.INODE.PFREE.MIN.CRIT:"{#FSNAME}"}' - name: '{#FSNAME}: Space utilization' type: CALCULATED @@ -695,7 +695,7 @@ zabbix_export: history: 7d value_type: FLOAT units: '%' - params: '(last("vfs.fs.used[hrStorageUsed.{#SNMPINDEX}]")/last("vfs.fs.total[hrStorageSize.{#SNMPINDEX}]"))*100' + params: '(last(//vfs.fs.used[hrStorageUsed.{#SNMPINDEX}])/last(//vfs.fs.total[hrStorageSize.{#SNMPINDEX}]))*100' description: 'Space utilization in % for {#FSNAME}' tags: - @@ -744,8 +744,8 @@ zabbix_export: trigger_prototypes: - expression: | - {Linux filesystems SNMP:vfs.fs.pused[storageUsedPercentage.{#SNMPINDEX}].last()}>{$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"} and - (({Linux filesystems SNMP:vfs.fs.total[hrStorageSize.{#SNMPINDEX}].last()}-{Linux filesystems SNMP:vfs.fs.used[hrStorageUsed.{#SNMPINDEX}].last()})<5G or {Linux filesystems SNMP:vfs.fs.pused[storageUsedPercentage.{#SNMPINDEX}].timeleft(1h,,100)}<1d) + last(/Linux filesystems SNMP/vfs.fs.pused[storageUsedPercentage.{#SNMPINDEX}])>{$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"} and + ((last(/Linux filesystems SNMP/vfs.fs.total[hrStorageSize.{#SNMPINDEX}])-last(/Linux filesystems SNMP/vfs.fs.used[hrStorageUsed.{#SNMPINDEX}]))<5G or timeleft(/Linux filesystems SNMP/vfs.fs.pused[storageUsedPercentage.{#SNMPINDEX}],1h,100)<1d) name: '{#FSNAME}: Disk space is critically low (used > {$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"}%)' opdata: 'Space used: {ITEM.LASTVALUE3} of {ITEM.LASTVALUE2} ({ITEM.LASTVALUE1})' priority: AVERAGE @@ -757,8 +757,8 @@ zabbix_export: manual_close: 'YES' - expression: | - {Linux filesystems SNMP:vfs.fs.pused[storageUsedPercentage.{#SNMPINDEX}].last()}>{$VFS.FS.PUSED.MAX.WARN:"{#FSNAME}"} and - (({Linux filesystems SNMP:vfs.fs.total[hrStorageSize.{#SNMPINDEX}].last()}-{Linux filesystems SNMP:vfs.fs.used[hrStorageUsed.{#SNMPINDEX}].last()})<10G or {Linux filesystems SNMP:vfs.fs.pused[storageUsedPercentage.{#SNMPINDEX}].timeleft(1h,,100)}<1d) + last(/Linux filesystems SNMP/vfs.fs.pused[storageUsedPercentage.{#SNMPINDEX}])>{$VFS.FS.PUSED.MAX.WARN:"{#FSNAME}"} and + ((last(/Linux filesystems SNMP/vfs.fs.total[hrStorageSize.{#SNMPINDEX}])-last(/Linux filesystems SNMP/vfs.fs.used[hrStorageUsed.{#SNMPINDEX}]))<10G or timeleft(/Linux filesystems SNMP/vfs.fs.pused[storageUsedPercentage.{#SNMPINDEX}],1h,100)<1d) name: '{#FSNAME}: Disk space is low (used > {$VFS.FS.PUSED.MAX.WARN:"{#FSNAME}"}%)' opdata: 'Space used: {ITEM.LASTVALUE3} of {ITEM.LASTVALUE2} ({ITEM.LASTVALUE1})' priority: WARNING @@ -772,8 +772,8 @@ zabbix_export: - name: '{#FSNAME}: Disk space is critically low (used > {$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"}%)' expression: | - {Linux filesystems SNMP:vfs.fs.pused[storageUsedPercentage.{#SNMPINDEX}].last()}>{$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"} and - (({Linux filesystems SNMP:vfs.fs.total[hrStorageSize.{#SNMPINDEX}].last()}-{Linux filesystems SNMP:vfs.fs.used[hrStorageUsed.{#SNMPINDEX}].last()})<5G or {Linux filesystems SNMP:vfs.fs.pused[storageUsedPercentage.{#SNMPINDEX}].timeleft(1h,,100)}<1d) + last(/Linux filesystems SNMP/vfs.fs.pused[storageUsedPercentage.{#SNMPINDEX}])>{$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"} and + ((last(/Linux filesystems SNMP/vfs.fs.total[hrStorageSize.{#SNMPINDEX}])-last(/Linux filesystems SNMP/vfs.fs.used[hrStorageUsed.{#SNMPINDEX}]))<5G or timeleft(/Linux filesystems SNMP/vfs.fs.pused[storageUsedPercentage.{#SNMPINDEX}],1h,100)<1d) graph_prototypes: - name: '{#FSNAME}: Disk space usage' @@ -867,7 +867,7 @@ zabbix_export: history: 7d value_type: FLOAT units: '%' - params: 'last("system.swap.free[memAvailSwap.0]")/last("system.swap.total[memTotalSwap.0]")*100' + params: 'last(//system.swap.free[memAvailSwap.0])/last(//system.swap.total[memTotalSwap.0])*100' description: 'The free space of swap volume/file in percent.' tags: - @@ -898,7 +898,7 @@ zabbix_export: key: 'vm.memory.available[snmp]' history: 7d units: B - params: 'last("vm.memory.free[memAvailReal.0]")+last("vm.memory.buffers[memBuffer.0]")+last("vm.memory.cached[memCached.0]")' + params: 'last(//vm.memory.free[memAvailReal.0])+last(//vm.memory.buffers[memBuffer.0])+last(//vm.memory.cached[memCached.0])' description: 'Please note that memory utilization is a rough estimate, since memory available is calculated as free+buffers+cached, which is not 100% accurate, but the best we can get using SNMP.' tags: - @@ -985,7 +985,7 @@ zabbix_export: history: 7d value_type: FLOAT units: '%' - params: '(last("vm.memory.total[memTotalReal.0]")-(last("vm.memory.free[memAvailReal.0]")+last("vm.memory.buffers[memBuffer.0]")+last("vm.memory.cached[memCached.0]")))/last("vm.memory.total[memTotalReal.0]")*100' + params: '(last(//vm.memory.total[memTotalReal.0])-(last(//vm.memory.free[memAvailReal.0])+last(//vm.memory.buffers[memBuffer.0])+last(//vm.memory.cached[memCached.0])))/last(//vm.memory.total[memTotalReal.0])*100' description: 'Please note that memory utilization is a rough estimate, since memory available is calculated as free+buffers+cached, which is not 100% accurate, but the best we can get using SNMP.' tags: - @@ -993,14 +993,14 @@ zabbix_export: value: Memory triggers: - - expression: '{min(5m)}>{$MEMORY.UTIL.MAX}' + expression: 'min(/Linux memory SNMP/vm.memory.util[snmp],5m)>{$MEMORY.UTIL.MAX}' name: 'High memory utilization (>{$MEMORY.UTIL.MAX}% for 5m)' priority: AVERAGE description: 'The system is running out of free memory.' dependencies: - name: 'Lack of available memory (< {$MEMORY.AVAILABLE.MIN} of {ITEM.VALUE2})' - expression: '{Linux memory SNMP:vm.memory.available[snmp].min(5m)}<{$MEMORY.AVAILABLE.MIN} and {Linux memory SNMP:vm.memory.total[memTotalReal.0].last()}>0' + expression: 'min(/Linux memory SNMP/vm.memory.available[snmp],5m)<{$MEMORY.AVAILABLE.MIN} and last(/Linux memory SNMP/vm.memory.total[memTotalReal.0])>0' macros: - macro: '{$MEMORY.AVAILABLE.MIN}' @@ -1214,7 +1214,7 @@ zabbix_export: host: 'Linux SNMP' triggers: - - expression: '{Linux memory SNMP:system.swap.pfree[snmp].min(5m)}<{$SWAP.PFREE.MIN.WARN} and {Linux memory SNMP:system.swap.total[memTotalSwap.0].last()}>0' + expression: 'min(/Linux memory SNMP/system.swap.pfree[snmp],5m)<{$SWAP.PFREE.MIN.WARN} and last(/Linux memory SNMP/system.swap.total[memTotalSwap.0])>0' name: 'High swap space usage (less than {$SWAP.PFREE.MIN.WARN}% free)' opdata: 'Free: {ITEM.LASTVALUE1}, total: {ITEM.LASTVALUE2}' priority: WARNING @@ -1222,20 +1222,20 @@ zabbix_export: dependencies: - name: 'High memory utilization (>{$MEMORY.UTIL.MAX}% for 5m)' - expression: '{Linux memory SNMP:vm.memory.util[snmp].min(5m)}>{$MEMORY.UTIL.MAX}' + expression: 'min(/Linux memory SNMP/vm.memory.util[snmp],5m)>{$MEMORY.UTIL.MAX}' - name: 'Lack of available memory (< {$MEMORY.AVAILABLE.MIN} of {ITEM.VALUE2})' - expression: '{Linux memory SNMP:vm.memory.available[snmp].min(5m)}<{$MEMORY.AVAILABLE.MIN} and {Linux memory SNMP:vm.memory.total[memTotalReal.0].last()}>0' + expression: 'min(/Linux memory SNMP/vm.memory.available[snmp],5m)<{$MEMORY.AVAILABLE.MIN} and last(/Linux memory SNMP/vm.memory.total[memTotalReal.0])>0' - - expression: '{Linux memory SNMP:vm.memory.available[snmp].min(5m)}<{$MEMORY.AVAILABLE.MIN} and {Linux memory SNMP:vm.memory.total[memTotalReal.0].last()}>0' + expression: 'min(/Linux memory SNMP/vm.memory.available[snmp],5m)<{$MEMORY.AVAILABLE.MIN} and last(/Linux memory SNMP/vm.memory.total[memTotalReal.0])>0' name: 'Lack of available memory (< {$MEMORY.AVAILABLE.MIN} of {ITEM.VALUE2})' opdata: 'Available: {ITEM.LASTVALUE1}, total: {ITEM.LASTVALUE2}' priority: AVERAGE - expression: | - {Linux CPU SNMP:system.cpu.load.avg1[laLoad.1].min(5m)}/{Linux CPU SNMP:system.cpu.num[snmp].last()}>{$LOAD_AVG_PER_CPU.MAX.WARN} - and {Linux CPU SNMP:system.cpu.load.avg5[laLoad.2].last()}>0 - and {Linux CPU SNMP:system.cpu.load.avg15[laLoad.3].last()}>0 + min(/Linux CPU SNMP/system.cpu.load.avg1[laLoad.1],5m)/last(/Linux CPU SNMP/system.cpu.num[snmp])>{$LOAD_AVG_PER_CPU.MAX.WARN} + and last(/Linux CPU SNMP/system.cpu.load.avg5[laLoad.2])>0 + and last(/Linux CPU SNMP/system.cpu.load.avg15[laLoad.3])>0 name: 'Load average is too high (per CPU load over {$LOAD_AVG_PER_CPU.MAX.WARN} for 5m)' opdata: 'Load averages(1m 5m 15m): ({ITEM.LASTVALUE1} {ITEM.LASTVALUE3} {ITEM.LASTVALUE4}), # of CPUs: {ITEM.LASTVALUE2}' priority: AVERAGE diff --git a/templates/os/windows_agent/template_os_windows_agent.yaml b/templates/os/windows_agent/template_os_windows_agent.yaml index c6858f5fc41..a1f8bb5c541 100644 --- a/templates/os/windows_agent/template_os_windows_agent.yaml +++ b/templates/os/windows_agent/template_os_windows_agent.yaml @@ -1,6 +1,6 @@ zabbix_export: version: '5.4' - date: '2021-04-22T11:28:48Z' + date: '2021-05-09T00:00:00Z' groups: - name: Templates/Modules @@ -245,7 +245,7 @@ zabbix_export: value: CPU triggers: - - expression: '{min(5m)}>{$CPU.INTERRUPT.CRIT.MAX}' + expression: 'min(/Windows CPU by Zabbix agent/perf_counter_en["\Processor Information(_total)\% Interrupt Time"],5m)>{$CPU.INTERRUPT.CRIT.MAX}' name: 'CPU interrupt time is too high (over {$CPU.INTERRUPT.CRIT.MAX}% for 5m)' priority: WARNING description: | @@ -258,7 +258,7 @@ zabbix_export: dependencies: - name: 'High CPU utilization (over {$CPU.UTIL.CRIT}% for 5m)' - expression: '{Windows CPU by Zabbix agent:system.cpu.util.min(5m)}>{$CPU.UTIL.CRIT}' + expression: 'min(/Windows CPU by Zabbix agent/system.cpu.util,5m)>{$CPU.UTIL.CRIT}' - name: 'CPU privileged time' key: 'perf_counter_en["\Processor Information(_total)\% Privileged Time"]' @@ -276,17 +276,17 @@ zabbix_export: value: CPU triggers: - - expression: '{min(5m)}>{$CPU.PRIV.CRIT.MAX}' + expression: 'min(/Windows CPU by Zabbix agent/perf_counter_en["\Processor Information(_total)\% Privileged Time"],5m)>{$CPU.PRIV.CRIT.MAX}' name: 'CPU privileged time is too high (over {$CPU.PRIV.CRIT.MAX}% for 5m)' priority: WARNING description: 'The CPU privileged time in the last 5 minutes exceeds {$CPU.PRIV.CRIT.MAX}%.' dependencies: - name: 'CPU interrupt time is too high (over {$CPU.INTERRUPT.CRIT.MAX}% for 5m)' - expression: '{Windows CPU by Zabbix agent:perf_counter_en["\Processor Information(_total)\% Interrupt Time"].min(5m)}>{$CPU.INTERRUPT.CRIT.MAX}' + expression: 'min(/Windows CPU by Zabbix agent/perf_counter_en["\Processor Information(_total)\% Interrupt Time"],5m)>{$CPU.INTERRUPT.CRIT.MAX}' - name: 'High CPU utilization (over {$CPU.UTIL.CRIT}% for 5m)' - expression: '{Windows CPU by Zabbix agent:system.cpu.util.min(5m)}>{$CPU.UTIL.CRIT}' + expression: 'min(/Windows CPU by Zabbix agent/system.cpu.util,5m)>{$CPU.UTIL.CRIT}' - name: 'CPU user time' key: 'perf_counter_en["\Processor Information(_total)\% User Time"]' @@ -339,7 +339,7 @@ zabbix_export: value: CPU triggers: - - expression: '{min(5m)}>{$CPU.UTIL.CRIT}' + expression: 'min(/Windows CPU by Zabbix agent/system.cpu.util,5m)>{$CPU.UTIL.CRIT}' name: 'High CPU utilization (over {$CPU.UTIL.CRIT}% for 5m)' opdata: 'Current utilization: {ITEM.LASTVALUE1}' priority: WARNING @@ -448,8 +448,8 @@ zabbix_export: trigger_prototypes: - expression: | - {Windows filesystems by Zabbix agent:vfs.fs.size[{#FSNAME},pused].last()}>{$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"} and - (({Windows filesystems by Zabbix agent:vfs.fs.size[{#FSNAME},total].last()}-{Windows filesystems by Zabbix agent:vfs.fs.size[{#FSNAME},used].last()})<5G or {Windows filesystems by Zabbix agent:vfs.fs.size[{#FSNAME},pused].timeleft(1h,,100)}<1d) + last(/Windows filesystems by Zabbix agent/vfs.fs.size[{#FSNAME},pused])>{$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"} and + ((last(/Windows filesystems by Zabbix agent/vfs.fs.size[{#FSNAME},total])-last(/Windows filesystems by Zabbix agent/vfs.fs.size[{#FSNAME},used]))<5G or timeleft(/Windows filesystems by Zabbix agent/vfs.fs.size[{#FSNAME},pused],1h,100)<1d) name: '{#FSNAME}: Disk space is critically low (used > {$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"}%)' opdata: 'Space used: {ITEM.LASTVALUE3} of {ITEM.LASTVALUE2} ({ITEM.LASTVALUE1})' priority: AVERAGE @@ -461,8 +461,8 @@ zabbix_export: manual_close: 'YES' - expression: | - {Windows filesystems by Zabbix agent:vfs.fs.size[{#FSNAME},pused].last()}>{$VFS.FS.PUSED.MAX.WARN:"{#FSNAME}"} and - (({Windows filesystems by Zabbix agent:vfs.fs.size[{#FSNAME},total].last()}-{Windows filesystems by Zabbix agent:vfs.fs.size[{#FSNAME},used].last()})<10G or {Windows filesystems by Zabbix agent:vfs.fs.size[{#FSNAME},pused].timeleft(1h,,100)}<1d) + last(/Windows filesystems by Zabbix agent/vfs.fs.size[{#FSNAME},pused])>{$VFS.FS.PUSED.MAX.WARN:"{#FSNAME}"} and + ((last(/Windows filesystems by Zabbix agent/vfs.fs.size[{#FSNAME},total])-last(/Windows filesystems by Zabbix agent/vfs.fs.size[{#FSNAME},used]))<10G or timeleft(/Windows filesystems by Zabbix agent/vfs.fs.size[{#FSNAME},pused],1h,100)<1d) name: '{#FSNAME}: Disk space is low (used > {$VFS.FS.PUSED.MAX.WARN:"{#FSNAME}"}%)' opdata: 'Space used: {ITEM.LASTVALUE3} of {ITEM.LASTVALUE2} ({ITEM.LASTVALUE1})' priority: WARNING @@ -476,8 +476,8 @@ zabbix_export: - name: '{#FSNAME}: Disk space is critically low (used > {$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"}%)' expression: | - {Windows filesystems by Zabbix agent:vfs.fs.size[{#FSNAME},pused].last()}>{$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"} and - (({Windows filesystems by Zabbix agent:vfs.fs.size[{#FSNAME},total].last()}-{Windows filesystems by Zabbix agent:vfs.fs.size[{#FSNAME},used].last()})<5G or {Windows filesystems by Zabbix agent:vfs.fs.size[{#FSNAME},pused].timeleft(1h,,100)}<1d) + last(/Windows filesystems by Zabbix agent/vfs.fs.size[{#FSNAME},pused])>{$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"} and + ((last(/Windows filesystems by Zabbix agent/vfs.fs.size[{#FSNAME},total])-last(/Windows filesystems by Zabbix agent/vfs.fs.size[{#FSNAME},used]))<5G or timeleft(/Windows filesystems by Zabbix agent/vfs.fs.size[{#FSNAME},pused],1h,100)<1d) graph_prototypes: - name: '{#FSNAME}: Disk space usage' @@ -579,7 +579,7 @@ zabbix_export: value: General triggers: - - expression: '{diff()}=1 and {strlen()}>0' + expression: '(last(/Windows generic by Zabbix agent/system.hostname,#1)<>last(/Windows generic by Zabbix agent/system.hostname,#2))=1 and length(last(/Windows generic by Zabbix agent/system.hostname))>0' name: 'System name has changed (new name: {ITEM.VALUE})' priority: INFO description: 'System name has changed. Ack to close.' @@ -596,7 +596,7 @@ zabbix_export: value: General triggers: - - expression: '{fuzzytime({$SYSTEM.FUZZYTIME.MAX})}=0' + expression: 'fuzzytime(/Windows generic by Zabbix agent/system.localtime,{$SYSTEM.FUZZYTIME.MAX})=0' name: 'System time is out of sync (diff with Zabbix server > {$SYSTEM.FUZZYTIME.MAX}s)' priority: WARNING description: 'The host system time is different from the Zabbix server time.' @@ -649,7 +649,7 @@ zabbix_export: value: Status triggers: - - expression: '{last()}<10m' + expression: 'last(/Windows generic by Zabbix agent/system.uptime)<10m' name: 'Host has been restarted (uptime < 10m)' priority: WARNING description: 'The device uptime is less than 10 minutes.' @@ -693,14 +693,14 @@ zabbix_export: value: Memory triggers: - - expression: '{max(5m)}<{$MEM.PAGE_TABLE_CRIT.MIN}' + expression: 'max(/Windows memory by Zabbix agent/perf_counter_en["\Memory\Free System Page Table Entries"],5m)<{$MEM.PAGE_TABLE_CRIT.MIN}' name: 'Number of free system page table entries is too low (less {$MEM.PAGE_TABLE_CRIT.MIN} for 5m)' priority: WARNING description: 'The Memory Free System Page Table Entries is less than {$MEM.PAGE_TABLE_CRIT.MIN} for 5 minutes. If the number is less than 5,000, there may well be a memory leak.' dependencies: - name: 'High memory utilization (>{$MEMORY.UTIL.MAX}% for 5m)' - expression: '{Windows memory by Zabbix agent:vm.memory.util.min(5m)}>{$MEMORY.UTIL.MAX}' + expression: 'min(/Windows memory by Zabbix agent/vm.memory.util,5m)>{$MEMORY.UTIL.MAX}' - name: 'Memory page faults per second' key: 'perf_counter_en["\Memory\Page Faults/sec"]' @@ -731,14 +731,14 @@ zabbix_export: value: Memory triggers: - - expression: '{min(5m)}>{$MEM.PAGE_SEC.CRIT.MAX}' + expression: 'min(/Windows memory by Zabbix agent/perf_counter_en["\Memory\Pages/sec"],5m)>{$MEM.PAGE_SEC.CRIT.MAX}' name: 'The Memory Pages/sec is too high (over {$MEM.PAGE_SEC.CRIT.MAX} for 5m)' priority: WARNING description: 'The Memory Pages/sec in the last 5 minutes exceeds {$MEM.PAGE_SEC.CRIT.MAX}. If the value is greater than 1,000, as a result of excessive paging, there may be a memory leak.' dependencies: - name: 'High memory utilization (>{$MEMORY.UTIL.MAX}% for 5m)' - expression: '{Windows memory by Zabbix agent:vm.memory.util.min(5m)}>{$MEMORY.UTIL.MAX}' + expression: 'min(/Windows memory by Zabbix agent/vm.memory.util,5m)>{$MEMORY.UTIL.MAX}' - name: 'Memory pool non-paged' key: 'perf_counter_en["\Memory\Pool Nonpaged Bytes"]' @@ -770,7 +770,7 @@ zabbix_export: key: system.swap.free history: 7d units: B - params: 'last("system.swap.size[,total]") - last("system.swap.size[,total]") / 100 * last("perf_counter_en[\"\Paging file(_Total)\% Usage\"]")' + params: 'last(//system.swap.size[,total]) - last(//system.swap.size[,total]) / 100 * last(//perf_counter_en["\Paging file(_Total)\% Usage"])' description: 'The free space of swap volume/file in bytes.' tags: - @@ -833,7 +833,7 @@ zabbix_export: history: 7d value_type: FLOAT units: '%' - params: 'last("vm.memory.size[used]") / last("vm.memory.size[total]") * 100' + params: 'last(//vm.memory.size[used]) / last(//vm.memory.size[total]) * 100' description: 'Memory utilization in %' tags: - @@ -841,7 +841,7 @@ zabbix_export: value: Memory triggers: - - expression: '{min(5m)}>{$MEMORY.UTIL.MAX}' + expression: 'min(/Windows memory by Zabbix agent/vm.memory.util,5m)>{$MEMORY.UTIL.MAX}' name: 'High memory utilization (>{$MEMORY.UTIL.MAX}% for 5m)' priority: AVERAGE description: 'The system is running out of free memory.' @@ -1076,9 +1076,9 @@ zabbix_export: value: 'Interface {#IFNAME}({#IFALIAS})' trigger_prototypes: - - expression: '{$IFCONTROL:"{#IFNAME}"}=1 and ({last()}<>2 and {diff()}=1)' + expression: '{$IFCONTROL:"{#IFNAME}"}=1 and (last(/Windows network by Zabbix agent/net.if.status["{#IFNAME}"])<>2 and (last(/Windows network by Zabbix agent/net.if.status["{#IFNAME}"],#1)<>last(/Windows network by Zabbix agent/net.if.status["{#IFNAME}"],#2))=1)' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{last()}=2 or {$IFCONTROL:"{#IFNAME}"}=0' + recovery_expression: 'last(/Windows network by Zabbix agent/net.if.status["{#IFNAME}"])=2 or {$IFCONTROL:"{#IFNAME}"}=0' name: 'Interface {#IFNAME}({#IFALIAS}): Link down' opdata: 'Current state: {ITEM.LASTVALUE1}' priority: AVERAGE @@ -1119,9 +1119,9 @@ zabbix_export: trigger_prototypes: - expression: | - {Windows network by Zabbix agent:net.if.speed["{#IFNAME}"].change()}<0 and - {Windows network by Zabbix agent:net.if.speed["{#IFNAME}"].last()}>0 and - {Windows network by Zabbix agent:net.if.status["{#IFNAME}"].last()}=2 + change(/Windows network by Zabbix agent/net.if.speed["{#IFNAME}"])<0 and + last(/Windows network by Zabbix agent/net.if.speed["{#IFNAME}"])>0 and + last(/Windows network by Zabbix agent/net.if.status["{#IFNAME}"])=2 name: 'Interface {#IFNAME}({#IFALIAS}): Ethernet has changed to lower speed than it was before' opdata: 'Current reported speed: {ITEM.LASTVALUE1}' priority: INFO @@ -1130,17 +1130,17 @@ zabbix_export: dependencies: - name: 'Interface {#IFNAME}({#IFALIAS}): Link down' - expression: '{$IFCONTROL:"{#IFNAME}"}=1 and ({Windows network by Zabbix agent:net.if.status["{#IFNAME}"].last()}<>2 and {Windows network by Zabbix agent:net.if.status["{#IFNAME}"].diff()}=1)' - recovery_expression: '{Windows network by Zabbix agent:net.if.status["{#IFNAME}"].last()}=2 or {$IFCONTROL:"{#IFNAME}"}=0' + expression: '{$IFCONTROL:"{#IFNAME}"}=1 and (last(/Windows network by Zabbix agent/net.if.status["{#IFNAME}"])<>2 and (last(/Windows network by Zabbix agent/net.if.status["{#IFNAME}"],#1)<>last(/Windows network by Zabbix agent/net.if.status["{#IFNAME}"],#2))=1)' + recovery_expression: 'last(/Windows network by Zabbix agent/net.if.status["{#IFNAME}"])=2 or {$IFCONTROL:"{#IFNAME}"}=0' - expression: | - ({Windows network by Zabbix agent:net.if.in["{#IFNAME}"].avg(15m)}>({$IF.UTIL.MAX:"{#IFNAME}"}/100)*{Windows network by Zabbix agent:net.if.speed["{#IFNAME}"].last()} or - {Windows network by Zabbix agent:net.if.out["{#IFNAME}"].avg(15m)}>({$IF.UTIL.MAX:"{#IFNAME}"}/100)*{Windows network by Zabbix agent:net.if.speed["{#IFNAME}"].last()}) and - {Windows network by Zabbix agent:net.if.speed["{#IFNAME}"].last()}>0 + (avg(/Windows network by Zabbix agent/net.if.in["{#IFNAME}"],15m)>({$IF.UTIL.MAX:"{#IFNAME}"}/100)*last(/Windows network by Zabbix agent/net.if.speed["{#IFNAME}"]) or + avg(/Windows network by Zabbix agent/net.if.out["{#IFNAME}"],15m)>({$IF.UTIL.MAX:"{#IFNAME}"}/100)*last(/Windows network by Zabbix agent/net.if.speed["{#IFNAME}"])) and + last(/Windows network by Zabbix agent/net.if.speed["{#IFNAME}"])>0 recovery_mode: RECOVERY_EXPRESSION recovery_expression: | - {Windows network by Zabbix agent:net.if.in["{#IFNAME}"].avg(15m)}<(({$IF.UTIL.MAX:"{#IFNAME}"}-3)/100)*{Windows network by Zabbix agent:net.if.speed["{#IFNAME}"].last()} and - {Windows network by Zabbix agent:net.if.out["{#IFNAME}"].avg(15m)}<(({$IF.UTIL.MAX:"{#IFNAME}"}-3)/100)*{Windows network by Zabbix agent:net.if.speed["{#IFNAME}"].last()} + avg(/Windows network by Zabbix agent/net.if.in["{#IFNAME}"],15m)<(({$IF.UTIL.MAX:"{#IFNAME}"}-3)/100)*last(/Windows network by Zabbix agent/net.if.speed["{#IFNAME}"]) and + avg(/Windows network by Zabbix agent/net.if.out["{#IFNAME}"],15m)<(({$IF.UTIL.MAX:"{#IFNAME}"}-3)/100)*last(/Windows network by Zabbix agent/net.if.speed["{#IFNAME}"]) name: 'Interface {#IFNAME}({#IFALIAS}): High bandwidth usage (>{$IF.UTIL.MAX:"{#IFNAME}"}% )' opdata: 'In: {ITEM.LASTVALUE1}, out: {ITEM.LASTVALUE3}, speed: {ITEM.LASTVALUE2}' priority: WARNING @@ -1149,16 +1149,16 @@ zabbix_export: dependencies: - name: 'Interface {#IFNAME}({#IFALIAS}): Link down' - expression: '{$IFCONTROL:"{#IFNAME}"}=1 and ({Windows network by Zabbix agent:net.if.status["{#IFNAME}"].last()}<>2 and {Windows network by Zabbix agent:net.if.status["{#IFNAME}"].diff()}=1)' - recovery_expression: '{Windows network by Zabbix agent:net.if.status["{#IFNAME}"].last()}=2 or {$IFCONTROL:"{#IFNAME}"}=0' + expression: '{$IFCONTROL:"{#IFNAME}"}=1 and (last(/Windows network by Zabbix agent/net.if.status["{#IFNAME}"])<>2 and (last(/Windows network by Zabbix agent/net.if.status["{#IFNAME}"],#1)<>last(/Windows network by Zabbix agent/net.if.status["{#IFNAME}"],#2))=1)' + recovery_expression: 'last(/Windows network by Zabbix agent/net.if.status["{#IFNAME}"])=2 or {$IFCONTROL:"{#IFNAME}"}=0' - expression: | - {Windows network by Zabbix agent:net.if.in["{#IFNAME}",errors].min(5m)}>{$IF.ERRORS.WARN:"{#IFNAME}"} - or {Windows network by Zabbix agent:net.if.out["{#IFNAME}",errors].min(5m)}>{$IF.ERRORS.WARN:"{#IFNAME}"} + min(/Windows network by Zabbix agent/net.if.in["{#IFNAME}",errors],5m)>{$IF.ERRORS.WARN:"{#IFNAME}"} + or min(/Windows network by Zabbix agent/net.if.out["{#IFNAME}",errors],5m)>{$IF.ERRORS.WARN:"{#IFNAME}"} recovery_mode: RECOVERY_EXPRESSION recovery_expression: | - {Windows network by Zabbix agent:net.if.in["{#IFNAME}",errors].max(5m)}<{$IF.ERRORS.WARN:"{#IFNAME}"}*0.8 - and {Windows network by Zabbix agent:net.if.out["{#IFNAME}",errors].max(5m)}<{$IF.ERRORS.WARN:"{#IFNAME}"}*0.8 + max(/Windows network by Zabbix agent/net.if.in["{#IFNAME}",errors],5m)<{$IF.ERRORS.WARN:"{#IFNAME}"}*0.8 + and max(/Windows network by Zabbix agent/net.if.out["{#IFNAME}",errors],5m)<{$IF.ERRORS.WARN:"{#IFNAME}"}*0.8 name: 'Interface {#IFNAME}({#IFALIAS}): High error rate (>{$IF.ERRORS.WARN:"{#IFNAME}"} for 5m)' opdata: 'errors in: {ITEM.LASTVALUE1}, errors out: {ITEM.LASTVALUE2}' priority: WARNING @@ -1167,8 +1167,8 @@ zabbix_export: dependencies: - name: 'Interface {#IFNAME}({#IFALIAS}): Link down' - expression: '{$IFCONTROL:"{#IFNAME}"}=1 and ({Windows network by Zabbix agent:net.if.status["{#IFNAME}"].last()}<>2 and {Windows network by Zabbix agent:net.if.status["{#IFNAME}"].diff()}=1)' - recovery_expression: '{Windows network by Zabbix agent:net.if.status["{#IFNAME}"].last()}=2 or {$IFCONTROL:"{#IFNAME}"}=0' + expression: '{$IFCONTROL:"{#IFNAME}"}=1 and (last(/Windows network by Zabbix agent/net.if.status["{#IFNAME}"])<>2 and (last(/Windows network by Zabbix agent/net.if.status["{#IFNAME}"],#1)<>last(/Windows network by Zabbix agent/net.if.status["{#IFNAME}"],#2))=1)' + recovery_expression: 'last(/Windows network by Zabbix agent/net.if.status["{#IFNAME}"])=2 or {$IFCONTROL:"{#IFNAME}"}=0' graph_prototypes: - name: 'Interface {#IFNAME}({#IFALIAS}): Network traffic' @@ -1422,7 +1422,7 @@ zabbix_export: value: 'Disk {#DEVNAME}' trigger_prototypes: - - expression: '{min(15m)}>{$VFS.DEV.UTIL.MAX.WARN}' + expression: 'min(/Windows physical disks by Zabbix agent/perf_counter_en["\PhysicalDisk({#DEVNAME})\% Disk Time",60],15m)>{$VFS.DEV.UTIL.MAX.WARN}' name: '{#DEVNAME}: Disk is overloaded (util > {$VFS.DEV.UTIL.MAX.WARN}% for 15m)' priority: WARNING description: 'The disk appears to be under heavy load' @@ -1430,10 +1430,10 @@ zabbix_export: dependencies: - name: '{#DEVNAME}: Disk read request responses are too high (read > {$VFS.DEV.READ.AWAIT.WARN:"{#DEVNAME}"}s for 15m' - expression: '{Windows physical disks by Zabbix agent:perf_counter_en["\PhysicalDisk({#DEVNAME})\Avg. Disk sec/Read",60].min(15m)} > {$VFS.DEV.READ.AWAIT.WARN:"{#DEVNAME}"}' + expression: 'min(/Windows physical disks by Zabbix agent/perf_counter_en["\PhysicalDisk({#DEVNAME})\Avg. Disk sec/Read",60],15m) > {$VFS.DEV.READ.AWAIT.WARN:"{#DEVNAME}"}' - name: '{#DEVNAME}: Disk write request responses are too high (write > {$VFS.DEV.WRITE.AWAIT.WARN:"{#DEVNAME}"}s for 15m)' - expression: '{Windows physical disks by Zabbix agent:perf_counter_en["\PhysicalDisk({#DEVNAME})\Avg. Disk sec/Write",60].min(15m)} > {$VFS.DEV.WRITE.AWAIT.WARN:"{#DEVNAME}"}' + expression: 'min(/Windows physical disks by Zabbix agent/perf_counter_en["\PhysicalDisk({#DEVNAME})\Avg. Disk sec/Write",60],15m) > {$VFS.DEV.WRITE.AWAIT.WARN:"{#DEVNAME}"}' - name: '{#DEVNAME}: Average disk read queue length' key: 'perf_counter_en["\PhysicalDisk({#DEVNAME})\Avg. Disk Read Queue Length",60]' @@ -1457,7 +1457,7 @@ zabbix_export: value: 'Disk {#DEVNAME}' trigger_prototypes: - - expression: '{min(15m)} > {$VFS.DEV.READ.AWAIT.WARN:"{#DEVNAME}"}' + expression: 'min(/Windows physical disks by Zabbix agent/perf_counter_en["\PhysicalDisk({#DEVNAME})\Avg. Disk sec/Read",60],15m) > {$VFS.DEV.READ.AWAIT.WARN:"{#DEVNAME}"}' name: '{#DEVNAME}: Disk read request responses are too high (read > {$VFS.DEV.READ.AWAIT.WARN:"{#DEVNAME}"}s for 15m' priority: WARNING description: 'This trigger might indicate disk {#DEVNAME} saturation.' @@ -1475,7 +1475,7 @@ zabbix_export: value: 'Disk {#DEVNAME}' trigger_prototypes: - - expression: '{min(15m)} > {$VFS.DEV.WRITE.AWAIT.WARN:"{#DEVNAME}"}' + expression: 'min(/Windows physical disks by Zabbix agent/perf_counter_en["\PhysicalDisk({#DEVNAME})\Avg. Disk sec/Write",60],15m) > {$VFS.DEV.WRITE.AWAIT.WARN:"{#DEVNAME}"}' name: '{#DEVNAME}: Disk write request responses are too high (write > {$VFS.DEV.WRITE.AWAIT.WARN:"{#DEVNAME}"}s for 15m)' priority: WARNING description: 'This trigger might indicate disk {#DEVNAME} saturation.' @@ -1660,7 +1660,7 @@ zabbix_export: value: Services trigger_prototypes: - - expression: '{min(#3)}<>0' + expression: 'min(/Windows services by Zabbix agent/service.info["{#SERVICE.NAME}",state],#3)<>0' name: '"{#SERVICE.NAME}" ({#SERVICE.DISPLAYNAME}) is not running (startup type {#SERVICE.STARTUPNAME})' priority: AVERAGE description: 'The service has a state other than "Running" for the last three times.' @@ -1714,16 +1714,16 @@ zabbix_export: newvalue: 'No such service' triggers: - - expression: '{Windows CPU by Zabbix agent:perf_counter_en["\System\Processor Queue Length"].min(5m)} - {Windows CPU by Zabbix agent:wmi.get[root/cimv2,"Select NumberOfLogicalProcessors from Win32_ComputerSystem"].last()} * 2 > {$CPU.QUEUE.CRIT.MAX}' + expression: 'min(/Windows CPU by Zabbix agent/perf_counter_en["\System\Processor Queue Length"],5m) - last(/Windows CPU by Zabbix agent/wmi.get[root/cimv2,"Select NumberOfLogicalProcessors from Win32_ComputerSystem"]) * 2 > {$CPU.QUEUE.CRIT.MAX}' name: 'CPU queue length is too high (over {$CPU.QUEUE.CRIT.MAX} for 5m)' priority: WARNING description: 'The CPU Queue Length in the last 5 minutes exceeds {$CPU.QUEUE.CRIT.MAX}. According to actual observations, PQL should not exceed the number of cores * 2. To fine-tune the conditions, use the macro {$CPU.QUEUE.CRIT.MAX }.' dependencies: - name: 'High CPU utilization (over {$CPU.UTIL.CRIT}% for 5m)' - expression: '{Windows CPU by Zabbix agent:system.cpu.util.min(5m)}>{$CPU.UTIL.CRIT}' + expression: 'min(/Windows CPU by Zabbix agent/system.cpu.util,5m)>{$CPU.UTIL.CRIT}' - - expression: '{Windows memory by Zabbix agent:system.swap.pfree.min(5m)}<{$SWAP.PFREE.MIN.WARN} and {Windows memory by Zabbix agent:system.swap.size[,total].last()}>0' + expression: 'min(/Windows memory by Zabbix agent/system.swap.pfree,5m)<{$SWAP.PFREE.MIN.WARN} and last(/Windows memory by Zabbix agent/system.swap.size[,total])>0' name: 'High swap space usage (less than {$SWAP.PFREE.MIN.WARN}% free)' opdata: 'Free: {ITEM.LASTVALUE1}, total: {ITEM.LASTVALUE2}' priority: WARNING @@ -1731,7 +1731,7 @@ zabbix_export: dependencies: - name: 'High memory utilization (>{$MEMORY.UTIL.MAX}% for 5m)' - expression: '{Windows memory by Zabbix agent:vm.memory.util.min(5m)}>{$MEMORY.UTIL.MAX}' + expression: 'min(/Windows memory by Zabbix agent/vm.memory.util,5m)>{$MEMORY.UTIL.MAX}' graphs: - name: 'CPU jumps' diff --git a/templates/os/windows_agent_active/template_os_windows_agent_active.yaml b/templates/os/windows_agent_active/template_os_windows_agent_active.yaml index e1f0548f28d..88cae571ea7 100644 --- a/templates/os/windows_agent_active/template_os_windows_agent_active.yaml +++ b/templates/os/windows_agent_active/template_os_windows_agent_active.yaml @@ -1,6 +1,6 @@ zabbix_export: version: '5.4' - date: '2021-04-22T11:28:50Z' + date: '2021-05-09T00:00:00Z' groups: - name: Templates/Modules @@ -247,7 +247,7 @@ zabbix_export: value: CPU triggers: - - expression: '{min(5m)}>{$CPU.INTERRUPT.CRIT.MAX}' + expression: 'min(/Windows CPU by Zabbix agent active/perf_counter_en["\Processor Information(_total)\% Interrupt Time"],5m)>{$CPU.INTERRUPT.CRIT.MAX}' name: 'CPU interrupt time is too high (over {$CPU.INTERRUPT.CRIT.MAX}% for 5m)' priority: WARNING description: | @@ -260,7 +260,7 @@ zabbix_export: dependencies: - name: 'High CPU utilization (over {$CPU.UTIL.CRIT}% for 5m)' - expression: '{Windows CPU by Zabbix agent active:system.cpu.util.min(5m)}>{$CPU.UTIL.CRIT}' + expression: 'min(/Windows CPU by Zabbix agent active/system.cpu.util,5m)>{$CPU.UTIL.CRIT}' - name: 'CPU privileged time' type: ZABBIX_ACTIVE @@ -279,17 +279,17 @@ zabbix_export: value: CPU triggers: - - expression: '{min(5m)}>{$CPU.PRIV.CRIT.MAX}' + expression: 'min(/Windows CPU by Zabbix agent active/perf_counter_en["\Processor Information(_total)\% Privileged Time"],5m)>{$CPU.PRIV.CRIT.MAX}' name: 'CPU privileged time is too high (over {$CPU.PRIV.CRIT.MAX}% for 5m)' priority: WARNING description: 'The CPU privileged time in the last 5 minutes exceeds {$CPU.PRIV.CRIT.MAX}%.' dependencies: - name: 'CPU interrupt time is too high (over {$CPU.INTERRUPT.CRIT.MAX}% for 5m)' - expression: '{Windows CPU by Zabbix agent active:perf_counter_en["\Processor Information(_total)\% Interrupt Time"].min(5m)}>{$CPU.INTERRUPT.CRIT.MAX}' + expression: 'min(/Windows CPU by Zabbix agent active/perf_counter_en["\Processor Information(_total)\% Interrupt Time"],5m)>{$CPU.INTERRUPT.CRIT.MAX}' - name: 'High CPU utilization (over {$CPU.UTIL.CRIT}% for 5m)' - expression: '{Windows CPU by Zabbix agent active:system.cpu.util.min(5m)}>{$CPU.UTIL.CRIT}' + expression: 'min(/Windows CPU by Zabbix agent active/system.cpu.util,5m)>{$CPU.UTIL.CRIT}' - name: 'CPU user time' type: ZABBIX_ACTIVE @@ -346,7 +346,7 @@ zabbix_export: value: CPU triggers: - - expression: '{min(5m)}>{$CPU.UTIL.CRIT}' + expression: 'min(/Windows CPU by Zabbix agent active/system.cpu.util,5m)>{$CPU.UTIL.CRIT}' name: 'High CPU utilization (over {$CPU.UTIL.CRIT}% for 5m)' opdata: 'Current utilization: {ITEM.LASTVALUE1}' priority: WARNING @@ -460,8 +460,8 @@ zabbix_export: trigger_prototypes: - expression: | - {Windows filesystems by Zabbix agent active:vfs.fs.size[{#FSNAME},pused].last()}>{$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"} and - (({Windows filesystems by Zabbix agent active:vfs.fs.size[{#FSNAME},total].last()}-{Windows filesystems by Zabbix agent active:vfs.fs.size[{#FSNAME},used].last()})<5G or {Windows filesystems by Zabbix agent active:vfs.fs.size[{#FSNAME},pused].timeleft(1h,,100)}<1d) + last(/Windows filesystems by Zabbix agent active/vfs.fs.size[{#FSNAME},pused])>{$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"} and + ((last(/Windows filesystems by Zabbix agent active/vfs.fs.size[{#FSNAME},total])-last(/Windows filesystems by Zabbix agent active/vfs.fs.size[{#FSNAME},used]))<5G or timeleft(/Windows filesystems by Zabbix agent active/vfs.fs.size[{#FSNAME},pused],1h,100)<1d) name: '{#FSNAME}: Disk space is critically low (used > {$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"}%)' opdata: 'Space used: {ITEM.LASTVALUE3} of {ITEM.LASTVALUE2} ({ITEM.LASTVALUE1})' priority: AVERAGE @@ -473,8 +473,8 @@ zabbix_export: manual_close: 'YES' - expression: | - {Windows filesystems by Zabbix agent active:vfs.fs.size[{#FSNAME},pused].last()}>{$VFS.FS.PUSED.MAX.WARN:"{#FSNAME}"} and - (({Windows filesystems by Zabbix agent active:vfs.fs.size[{#FSNAME},total].last()}-{Windows filesystems by Zabbix agent active:vfs.fs.size[{#FSNAME},used].last()})<10G or {Windows filesystems by Zabbix agent active:vfs.fs.size[{#FSNAME},pused].timeleft(1h,,100)}<1d) + last(/Windows filesystems by Zabbix agent active/vfs.fs.size[{#FSNAME},pused])>{$VFS.FS.PUSED.MAX.WARN:"{#FSNAME}"} and + ((last(/Windows filesystems by Zabbix agent active/vfs.fs.size[{#FSNAME},total])-last(/Windows filesystems by Zabbix agent active/vfs.fs.size[{#FSNAME},used]))<10G or timeleft(/Windows filesystems by Zabbix agent active/vfs.fs.size[{#FSNAME},pused],1h,100)<1d) name: '{#FSNAME}: Disk space is low (used > {$VFS.FS.PUSED.MAX.WARN:"{#FSNAME}"}%)' opdata: 'Space used: {ITEM.LASTVALUE3} of {ITEM.LASTVALUE2} ({ITEM.LASTVALUE1})' priority: WARNING @@ -488,8 +488,8 @@ zabbix_export: - name: '{#FSNAME}: Disk space is critically low (used > {$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"}%)' expression: | - {Windows filesystems by Zabbix agent active:vfs.fs.size[{#FSNAME},pused].last()}>{$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"} and - (({Windows filesystems by Zabbix agent active:vfs.fs.size[{#FSNAME},total].last()}-{Windows filesystems by Zabbix agent active:vfs.fs.size[{#FSNAME},used].last()})<5G or {Windows filesystems by Zabbix agent active:vfs.fs.size[{#FSNAME},pused].timeleft(1h,,100)}<1d) + last(/Windows filesystems by Zabbix agent active/vfs.fs.size[{#FSNAME},pused])>{$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"} and + ((last(/Windows filesystems by Zabbix agent active/vfs.fs.size[{#FSNAME},total])-last(/Windows filesystems by Zabbix agent active/vfs.fs.size[{#FSNAME},used]))<5G or timeleft(/Windows filesystems by Zabbix agent active/vfs.fs.size[{#FSNAME},pused],1h,100)<1d) graph_prototypes: - name: '{#FSNAME}: Disk space usage' @@ -594,7 +594,7 @@ zabbix_export: value: General triggers: - - expression: '{diff()}=1 and {strlen()}>0' + expression: '(last(/Windows generic by Zabbix agent active/system.hostname,#1)<>last(/Windows generic by Zabbix agent active/system.hostname,#2))=1 and length(last(/Windows generic by Zabbix agent active/system.hostname))>0' name: 'System name has changed (new name: {ITEM.VALUE})' priority: INFO description: 'System name has changed. Ack to close.' @@ -612,7 +612,7 @@ zabbix_export: value: General triggers: - - expression: '{fuzzytime({$SYSTEM.FUZZYTIME.MAX})}=0' + expression: 'fuzzytime(/Windows generic by Zabbix agent active/system.localtime,{$SYSTEM.FUZZYTIME.MAX})=0' name: 'System time is out of sync (diff with Zabbix server > {$SYSTEM.FUZZYTIME.MAX}s)' priority: WARNING description: 'The host system time is different from the Zabbix server time.' @@ -668,7 +668,7 @@ zabbix_export: value: Status triggers: - - expression: '{last()}<10m' + expression: 'last(/Windows generic by Zabbix agent active/system.uptime)<10m' name: 'Host has been restarted (uptime < 10m)' priority: WARNING description: 'The device uptime is less than 10 minutes.' @@ -714,14 +714,14 @@ zabbix_export: value: Memory triggers: - - expression: '{max(5m)}<{$MEM.PAGE_TABLE_CRIT.MIN}' + expression: 'max(/Windows memory by Zabbix agent active/perf_counter_en["\Memory\Free System Page Table Entries"],5m)<{$MEM.PAGE_TABLE_CRIT.MIN}' name: 'Number of free system page table entries is too low (less {$MEM.PAGE_TABLE_CRIT.MIN} for 5m)' priority: WARNING description: 'The Memory Free System Page Table Entries is less than {$MEM.PAGE_TABLE_CRIT.MIN} for 5 minutes. If the number is less than 5,000, there may well be a memory leak.' dependencies: - name: 'High memory utilization (>{$MEMORY.UTIL.MAX}% for 5m)' - expression: '{Windows memory by Zabbix agent active:vm.memory.util.min(5m)}>{$MEMORY.UTIL.MAX}' + expression: 'min(/Windows memory by Zabbix agent active/vm.memory.util,5m)>{$MEMORY.UTIL.MAX}' - name: 'Memory page faults per second' type: ZABBIX_ACTIVE @@ -754,14 +754,14 @@ zabbix_export: value: Memory triggers: - - expression: '{min(5m)}>{$MEM.PAGE_SEC.CRIT.MAX}' + expression: 'min(/Windows memory by Zabbix agent active/perf_counter_en["\Memory\Pages/sec"],5m)>{$MEM.PAGE_SEC.CRIT.MAX}' name: 'The Memory Pages/sec is too high (over {$MEM.PAGE_SEC.CRIT.MAX} for 5m)' priority: WARNING description: 'The Memory Pages/sec in the last 5 minutes exceeds {$MEM.PAGE_SEC.CRIT.MAX}. If the value is greater than 1,000, as a result of excessive paging, there may be a memory leak.' dependencies: - name: 'High memory utilization (>{$MEMORY.UTIL.MAX}% for 5m)' - expression: '{Windows memory by Zabbix agent active:vm.memory.util.min(5m)}>{$MEMORY.UTIL.MAX}' + expression: 'min(/Windows memory by Zabbix agent active/vm.memory.util,5m)>{$MEMORY.UTIL.MAX}' - name: 'Memory pool non-paged' type: ZABBIX_ACTIVE @@ -795,7 +795,7 @@ zabbix_export: key: system.swap.free history: 7d units: B - params: 'last("system.swap.size[,total]") - last("system.swap.size[,total]") / 100 * last("perf_counter_en[\"\Paging file(_Total)\% Usage\"]")' + params: 'last(//system.swap.size[,total]) - last(//system.swap.size[,total]) / 100 * last(//perf_counter_en["\Paging file(_Total)\% Usage"])' description: 'The free space of swap volume/file in bytes.' tags: - @@ -861,7 +861,7 @@ zabbix_export: history: 7d value_type: FLOAT units: '%' - params: 'last("vm.memory.size[used]") / last("vm.memory.size[total]") * 100' + params: 'last(//vm.memory.size[used]) / last(//vm.memory.size[total]) * 100' description: 'Memory utilization in %' tags: - @@ -869,7 +869,7 @@ zabbix_export: value: Memory triggers: - - expression: '{min(5m)}>{$MEMORY.UTIL.MAX}' + expression: 'min(/Windows memory by Zabbix agent active/vm.memory.util,5m)>{$MEMORY.UTIL.MAX}' name: 'High memory utilization (>{$MEMORY.UTIL.MAX}% for 5m)' priority: AVERAGE description: 'The system is running out of free memory.' @@ -1111,9 +1111,9 @@ zabbix_export: value: 'Interface {#IFNAME}({#IFALIAS})' trigger_prototypes: - - expression: '{$IFCONTROL:"{#IFNAME}"}=1 and ({last()}<>2 and {diff()}=1)' + expression: '{$IFCONTROL:"{#IFNAME}"}=1 and (last(/Windows network by Zabbix agent active/net.if.status["{#IFNAME}"])<>2 and (last(/Windows network by Zabbix agent active/net.if.status["{#IFNAME}"],#1)<>last(/Windows network by Zabbix agent active/net.if.status["{#IFNAME}"],#2))=1)' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{last()}=2 or {$IFCONTROL:"{#IFNAME}"}=0' + recovery_expression: 'last(/Windows network by Zabbix agent active/net.if.status["{#IFNAME}"])=2 or {$IFCONTROL:"{#IFNAME}"}=0' name: 'Interface {#IFNAME}({#IFALIAS}): Link down' opdata: 'Current state: {ITEM.LASTVALUE1}' priority: AVERAGE @@ -1154,9 +1154,9 @@ zabbix_export: trigger_prototypes: - expression: | - {Windows network by Zabbix agent active:net.if.speed["{#IFNAME}"].change()}<0 and - {Windows network by Zabbix agent active:net.if.speed["{#IFNAME}"].last()}>0 and - {Windows network by Zabbix agent active:net.if.status["{#IFNAME}"].last()}=2 + change(/Windows network by Zabbix agent active/net.if.speed["{#IFNAME}"])<0 and + last(/Windows network by Zabbix agent active/net.if.speed["{#IFNAME}"])>0 and + last(/Windows network by Zabbix agent active/net.if.status["{#IFNAME}"])=2 name: 'Interface {#IFNAME}({#IFALIAS}): Ethernet has changed to lower speed than it was before' opdata: 'Current reported speed: {ITEM.LASTVALUE1}' priority: INFO @@ -1165,17 +1165,17 @@ zabbix_export: dependencies: - name: 'Interface {#IFNAME}({#IFALIAS}): Link down' - expression: '{$IFCONTROL:"{#IFNAME}"}=1 and ({Windows network by Zabbix agent active:net.if.status["{#IFNAME}"].last()}<>2 and {Windows network by Zabbix agent active:net.if.status["{#IFNAME}"].diff()}=1)' - recovery_expression: '{Windows network by Zabbix agent active:net.if.status["{#IFNAME}"].last()}=2 or {$IFCONTROL:"{#IFNAME}"}=0' + expression: '{$IFCONTROL:"{#IFNAME}"}=1 and (last(/Windows network by Zabbix agent active/net.if.status["{#IFNAME}"])<>2 and (last(/Windows network by Zabbix agent active/net.if.status["{#IFNAME}"],#1)<>last(/Windows network by Zabbix agent active/net.if.status["{#IFNAME}"],#2))=1)' + recovery_expression: 'last(/Windows network by Zabbix agent active/net.if.status["{#IFNAME}"])=2 or {$IFCONTROL:"{#IFNAME}"}=0' - expression: | - ({Windows network by Zabbix agent active:net.if.in["{#IFNAME}"].avg(15m)}>({$IF.UTIL.MAX:"{#IFNAME}"}/100)*{Windows network by Zabbix agent active:net.if.speed["{#IFNAME}"].last()} or - {Windows network by Zabbix agent active:net.if.out["{#IFNAME}"].avg(15m)}>({$IF.UTIL.MAX:"{#IFNAME}"}/100)*{Windows network by Zabbix agent active:net.if.speed["{#IFNAME}"].last()}) and - {Windows network by Zabbix agent active:net.if.speed["{#IFNAME}"].last()}>0 + (avg(/Windows network by Zabbix agent active/net.if.in["{#IFNAME}"],15m)>({$IF.UTIL.MAX:"{#IFNAME}"}/100)*last(/Windows network by Zabbix agent active/net.if.speed["{#IFNAME}"]) or + avg(/Windows network by Zabbix agent active/net.if.out["{#IFNAME}"],15m)>({$IF.UTIL.MAX:"{#IFNAME}"}/100)*last(/Windows network by Zabbix agent active/net.if.speed["{#IFNAME}"])) and + last(/Windows network by Zabbix agent active/net.if.speed["{#IFNAME}"])>0 recovery_mode: RECOVERY_EXPRESSION recovery_expression: | - {Windows network by Zabbix agent active:net.if.in["{#IFNAME}"].avg(15m)}<(({$IF.UTIL.MAX:"{#IFNAME}"}-3)/100)*{Windows network by Zabbix agent active:net.if.speed["{#IFNAME}"].last()} and - {Windows network by Zabbix agent active:net.if.out["{#IFNAME}"].avg(15m)}<(({$IF.UTIL.MAX:"{#IFNAME}"}-3)/100)*{Windows network by Zabbix agent active:net.if.speed["{#IFNAME}"].last()} + avg(/Windows network by Zabbix agent active/net.if.in["{#IFNAME}"],15m)<(({$IF.UTIL.MAX:"{#IFNAME}"}-3)/100)*last(/Windows network by Zabbix agent active/net.if.speed["{#IFNAME}"]) and + avg(/Windows network by Zabbix agent active/net.if.out["{#IFNAME}"],15m)<(({$IF.UTIL.MAX:"{#IFNAME}"}-3)/100)*last(/Windows network by Zabbix agent active/net.if.speed["{#IFNAME}"]) name: 'Interface {#IFNAME}({#IFALIAS}): High bandwidth usage (>{$IF.UTIL.MAX:"{#IFNAME}"}% )' opdata: 'In: {ITEM.LASTVALUE1}, out: {ITEM.LASTVALUE3}, speed: {ITEM.LASTVALUE2}' priority: WARNING @@ -1184,16 +1184,16 @@ zabbix_export: dependencies: - name: 'Interface {#IFNAME}({#IFALIAS}): Link down' - expression: '{$IFCONTROL:"{#IFNAME}"}=1 and ({Windows network by Zabbix agent active:net.if.status["{#IFNAME}"].last()}<>2 and {Windows network by Zabbix agent active:net.if.status["{#IFNAME}"].diff()}=1)' - recovery_expression: '{Windows network by Zabbix agent active:net.if.status["{#IFNAME}"].last()}=2 or {$IFCONTROL:"{#IFNAME}"}=0' + expression: '{$IFCONTROL:"{#IFNAME}"}=1 and (last(/Windows network by Zabbix agent active/net.if.status["{#IFNAME}"])<>2 and (last(/Windows network by Zabbix agent active/net.if.status["{#IFNAME}"],#1)<>last(/Windows network by Zabbix agent active/net.if.status["{#IFNAME}"],#2))=1)' + recovery_expression: 'last(/Windows network by Zabbix agent active/net.if.status["{#IFNAME}"])=2 or {$IFCONTROL:"{#IFNAME}"}=0' - expression: | - {Windows network by Zabbix agent active:net.if.in["{#IFNAME}",errors].min(5m)}>{$IF.ERRORS.WARN:"{#IFNAME}"} - or {Windows network by Zabbix agent active:net.if.out["{#IFNAME}",errors].min(5m)}>{$IF.ERRORS.WARN:"{#IFNAME}"} + min(/Windows network by Zabbix agent active/net.if.in["{#IFNAME}",errors],5m)>{$IF.ERRORS.WARN:"{#IFNAME}"} + or min(/Windows network by Zabbix agent active/net.if.out["{#IFNAME}",errors],5m)>{$IF.ERRORS.WARN:"{#IFNAME}"} recovery_mode: RECOVERY_EXPRESSION recovery_expression: | - {Windows network by Zabbix agent active:net.if.in["{#IFNAME}",errors].max(5m)}<{$IF.ERRORS.WARN:"{#IFNAME}"}*0.8 - and {Windows network by Zabbix agent active:net.if.out["{#IFNAME}",errors].max(5m)}<{$IF.ERRORS.WARN:"{#IFNAME}"}*0.8 + max(/Windows network by Zabbix agent active/net.if.in["{#IFNAME}",errors],5m)<{$IF.ERRORS.WARN:"{#IFNAME}"}*0.8 + and max(/Windows network by Zabbix agent active/net.if.out["{#IFNAME}",errors],5m)<{$IF.ERRORS.WARN:"{#IFNAME}"}*0.8 name: 'Interface {#IFNAME}({#IFALIAS}): High error rate (>{$IF.ERRORS.WARN:"{#IFNAME}"} for 5m)' opdata: 'errors in: {ITEM.LASTVALUE1}, errors out: {ITEM.LASTVALUE2}' priority: WARNING @@ -1202,8 +1202,8 @@ zabbix_export: dependencies: - name: 'Interface {#IFNAME}({#IFALIAS}): Link down' - expression: '{$IFCONTROL:"{#IFNAME}"}=1 and ({Windows network by Zabbix agent active:net.if.status["{#IFNAME}"].last()}<>2 and {Windows network by Zabbix agent active:net.if.status["{#IFNAME}"].diff()}=1)' - recovery_expression: '{Windows network by Zabbix agent active:net.if.status["{#IFNAME}"].last()}=2 or {$IFCONTROL:"{#IFNAME}"}=0' + expression: '{$IFCONTROL:"{#IFNAME}"}=1 and (last(/Windows network by Zabbix agent active/net.if.status["{#IFNAME}"])<>2 and (last(/Windows network by Zabbix agent active/net.if.status["{#IFNAME}"],#1)<>last(/Windows network by Zabbix agent active/net.if.status["{#IFNAME}"],#2))=1)' + recovery_expression: 'last(/Windows network by Zabbix agent active/net.if.status["{#IFNAME}"])=2 or {$IFCONTROL:"{#IFNAME}"}=0' graph_prototypes: - name: 'Interface {#IFNAME}({#IFALIAS}): Network traffic' @@ -1459,7 +1459,7 @@ zabbix_export: value: 'Disk {#DEVNAME}' trigger_prototypes: - - expression: '{min(15m)}>{$VFS.DEV.UTIL.MAX.WARN}' + expression: 'min(/Windows physical disks by Zabbix agent active/perf_counter_en["\PhysicalDisk({#DEVNAME})\% Disk Time",60],15m)>{$VFS.DEV.UTIL.MAX.WARN}' name: '{#DEVNAME}: Disk is overloaded (util > {$VFS.DEV.UTIL.MAX.WARN}% for 15m)' priority: WARNING description: 'The disk appears to be under heavy load' @@ -1467,10 +1467,10 @@ zabbix_export: dependencies: - name: '{#DEVNAME}: Disk read request responses are too high (read > {$VFS.DEV.READ.AWAIT.WARN:"{#DEVNAME}"}s for 15m' - expression: '{Windows physical disks by Zabbix agent active:perf_counter_en["\PhysicalDisk({#DEVNAME})\Avg. Disk sec/Read",60].min(15m)} > {$VFS.DEV.READ.AWAIT.WARN:"{#DEVNAME}"}' + expression: 'min(/Windows physical disks by Zabbix agent active/perf_counter_en["\PhysicalDisk({#DEVNAME})\Avg. Disk sec/Read",60],15m) > {$VFS.DEV.READ.AWAIT.WARN:"{#DEVNAME}"}' - name: '{#DEVNAME}: Disk write request responses are too high (write > {$VFS.DEV.WRITE.AWAIT.WARN:"{#DEVNAME}"}s for 15m)' - expression: '{Windows physical disks by Zabbix agent active:perf_counter_en["\PhysicalDisk({#DEVNAME})\Avg. Disk sec/Write",60].min(15m)} > {$VFS.DEV.WRITE.AWAIT.WARN:"{#DEVNAME}"}' + expression: 'min(/Windows physical disks by Zabbix agent active/perf_counter_en["\PhysicalDisk({#DEVNAME})\Avg. Disk sec/Write",60],15m) > {$VFS.DEV.WRITE.AWAIT.WARN:"{#DEVNAME}"}' - name: '{#DEVNAME}: Average disk read queue length' type: ZABBIX_ACTIVE @@ -1496,7 +1496,7 @@ zabbix_export: value: 'Disk {#DEVNAME}' trigger_prototypes: - - expression: '{min(15m)} > {$VFS.DEV.READ.AWAIT.WARN:"{#DEVNAME}"}' + expression: 'min(/Windows physical disks by Zabbix agent active/perf_counter_en["\PhysicalDisk({#DEVNAME})\Avg. Disk sec/Read",60],15m) > {$VFS.DEV.READ.AWAIT.WARN:"{#DEVNAME}"}' name: '{#DEVNAME}: Disk read request responses are too high (read > {$VFS.DEV.READ.AWAIT.WARN:"{#DEVNAME}"}s for 15m' priority: WARNING description: 'This trigger might indicate disk {#DEVNAME} saturation.' @@ -1515,7 +1515,7 @@ zabbix_export: value: 'Disk {#DEVNAME}' trigger_prototypes: - - expression: '{min(15m)} > {$VFS.DEV.WRITE.AWAIT.WARN:"{#DEVNAME}"}' + expression: 'min(/Windows physical disks by Zabbix agent active/perf_counter_en["\PhysicalDisk({#DEVNAME})\Avg. Disk sec/Write",60],15m) > {$VFS.DEV.WRITE.AWAIT.WARN:"{#DEVNAME}"}' name: '{#DEVNAME}: Disk write request responses are too high (write > {$VFS.DEV.WRITE.AWAIT.WARN:"{#DEVNAME}"}s for 15m)' priority: WARNING description: 'This trigger might indicate disk {#DEVNAME} saturation.' @@ -1706,7 +1706,7 @@ zabbix_export: value: Services trigger_prototypes: - - expression: '{min(#3)}<>0' + expression: 'min(/Windows services by Zabbix agent active/service.info["{#SERVICE.NAME}",state],#3)<>0' name: '"{#SERVICE.NAME}" ({#SERVICE.DISPLAYNAME}) is not running (startup type {#SERVICE.STARTUPNAME})' priority: AVERAGE description: 'The service has a state other than "Running" for the last three times.' @@ -1760,16 +1760,16 @@ zabbix_export: newvalue: 'No such service' triggers: - - expression: '{Windows CPU by Zabbix agent active:perf_counter_en["\System\Processor Queue Length"].min(5m)} - {Windows CPU by Zabbix agent active:wmi.get[root/cimv2,"Select NumberOfLogicalProcessors from Win32_ComputerSystem"].last()} * 2 > {$CPU.QUEUE.CRIT.MAX}' + expression: 'min(/Windows CPU by Zabbix agent active/perf_counter_en["\System\Processor Queue Length"],5m) - last(/Windows CPU by Zabbix agent active/wmi.get[root/cimv2,"Select NumberOfLogicalProcessors from Win32_ComputerSystem"]) * 2 > {$CPU.QUEUE.CRIT.MAX}' name: 'CPU queue length is too high (over {$CPU.QUEUE.CRIT.MAX} for 5m)' priority: WARNING description: 'The CPU Queue Length in the last 5 minutes exceeds {$CPU.QUEUE.CRIT.MAX}. According to actual observations, PQL should not exceed the number of cores * 2. To fine-tune the conditions, use the macro {$CPU.QUEUE.CRIT.MAX }.' dependencies: - name: 'High CPU utilization (over {$CPU.UTIL.CRIT}% for 5m)' - expression: '{Windows CPU by Zabbix agent active:system.cpu.util.min(5m)}>{$CPU.UTIL.CRIT}' + expression: 'min(/Windows CPU by Zabbix agent active/system.cpu.util,5m)>{$CPU.UTIL.CRIT}' - - expression: '{Windows memory by Zabbix agent active:system.swap.pfree.min(5m)}<{$SWAP.PFREE.MIN.WARN} and {Windows memory by Zabbix agent active:system.swap.size[,total].last()}>0' + expression: 'min(/Windows memory by Zabbix agent active/system.swap.pfree,5m)<{$SWAP.PFREE.MIN.WARN} and last(/Windows memory by Zabbix agent active/system.swap.size[,total])>0' name: 'High swap space usage (less than {$SWAP.PFREE.MIN.WARN}% free)' opdata: 'Free: {ITEM.LASTVALUE1}, total: {ITEM.LASTVALUE2}' priority: WARNING @@ -1777,7 +1777,7 @@ zabbix_export: dependencies: - name: 'High memory utilization (>{$MEMORY.UTIL.MAX}% for 5m)' - expression: '{Windows memory by Zabbix agent active:vm.memory.util.min(5m)}>{$MEMORY.UTIL.MAX}' + expression: 'min(/Windows memory by Zabbix agent active/vm.memory.util,5m)>{$MEMORY.UTIL.MAX}' graphs: - name: 'CPU jumps' diff --git a/templates/os/windows_snmp/template_os_windows_snmp.yaml b/templates/os/windows_snmp/template_os_windows_snmp.yaml index 4aff7e7784e..75019bf13b7 100644 --- a/templates/os/windows_snmp/template_os_windows_snmp.yaml +++ b/templates/os/windows_snmp/template_os_windows_snmp.yaml @@ -1,6 +1,6 @@ zabbix_export: version: '5.4' - date: '2021-02-23T11:04:58Z' + date: '2021-05-09T00:00:00Z' groups: - name: 'Templates/Operating systems' diff --git a/templates/power/apc/apc_ups_galaxy_3500_snmp/template_power_apc_ups_galaxy_3500_snmp.yaml b/templates/power/apc/apc_ups_galaxy_3500_snmp/template_power_apc_ups_galaxy_3500_snmp.yaml index 57be81de008..d7dae9fe838 100644 --- a/templates/power/apc/apc_ups_galaxy_3500_snmp/template_power_apc_ups_galaxy_3500_snmp.yaml +++ b/templates/power/apc/apc_ups_galaxy_3500_snmp/template_power_apc_ups_galaxy_3500_snmp.yaml @@ -1,6 +1,6 @@ zabbix_export: version: '5.4' - date: '2021-04-15T12:14:16Z' + date: '2021-05-09T00:00:00Z' groups: - name: Templates/Power @@ -48,7 +48,7 @@ zabbix_export: tag: Status triggers: - - expression: '{last()} < {$BATTERY.CAPACITY.MIN.WARN}' + expression: 'last(/APC UPS Galaxy 3500 SNMP/battery.capacity[upsHighPrecBatteryCapacity]) < {$BATTERY.CAPACITY.MIN.WARN}' name: 'Battery has low capacity (below {$BATTERY.CAPACITY.MIN.WARN}%)' opdata: 'Current capacity: {ITEM.LASTVALUE1}' priority: HIGH @@ -117,7 +117,7 @@ zabbix_export: tag: Status triggers: - - expression: '{last()}=2' + expression: 'last(/APC UPS Galaxy 3500 SNMP/battery.replace_indicator[upsAdvBatteryReplaceIndicator])=2' name: 'Battery needs replacement' priority: HIGH description: 'A battery installed has an internal error condition.' @@ -172,12 +172,12 @@ zabbix_export: tag: Status triggers: - - expression: '{last()}=4' + expression: 'last(/APC UPS Galaxy 3500 SNMP/battery.status[upsBasicBatteryStatus])=4' name: 'Battery has an internal error condition' priority: AVERAGE description: 'A battery installed has an internal error condition.' - - expression: '{last()}=3' + expression: 'last(/APC UPS Galaxy 3500 SNMP/battery.status[upsBasicBatteryStatus])=3' name: 'Battery is Low' priority: AVERAGE description: 'The UPS will be unable to sustain the current load, and its services will be lost if power is not restored.' @@ -207,7 +207,7 @@ zabbix_export: tag: Status triggers: - - expression: '{min({$TIME.PERIOD})} > {$BATTERY.TEMP.MAX.WARN}' + expression: 'min(/APC UPS Galaxy 3500 SNMP/battery.temperature[upsHighPrecBatteryTemperature],{$TIME.PERIOD}) > {$BATTERY.TEMP.MAX.WARN}' name: 'Battery has high temperature (over {$BATTERY.TEMP.MAX.WARN}℃ for {$TIME.PERIOD})' opdata: 'Current temperature: {ITEM.LASTVALUE1}' priority: HIGH @@ -301,7 +301,7 @@ zabbix_export: tag: Status triggers: - - expression: '{min({$TIME.PERIOD})} > 0 and ({min({$TIME.PERIOD})} > {$UPS.INPUT_FREQ.MAX.WARN} or {max({$TIME.PERIOD})} < {$UPS.INPUT_FREQ.MIN.WARN})' + expression: 'min(/APC UPS Galaxy 3500 SNMP/input.frequency[upsHighPrecInputFrequency],{$TIME.PERIOD}) > 0 and (min(/APC UPS Galaxy 3500 SNMP/input.frequency[upsHighPrecInputFrequency],{$TIME.PERIOD}) > {$UPS.INPUT_FREQ.MAX.WARN} or max(/APC UPS Galaxy 3500 SNMP/input.frequency[upsHighPrecInputFrequency],{$TIME.PERIOD}) < {$UPS.INPUT_FREQ.MIN.WARN})' name: 'Unacceptable input frequency (out of range {$UPS.INPUT_FREQ.MIN.WARN}-{$UPS.INPUT_FREQ.MAX.WARN}Hz for {$TIME.PERIOD})' opdata: 'Current frequency: {ITEM.LASTVALUE1}' priority: HIGH @@ -330,7 +330,7 @@ zabbix_export: tag: Status triggers: - - expression: '{min({$TIME.PERIOD})} > 0 and ({min({$TIME.PERIOD})} > {$UPS.INPUT_VOLT.MAX.WARN} or {max({$TIME.PERIOD})} < {$UPS.INPUT_VOLT.MIN.WARN})' + expression: 'min(/APC UPS Galaxy 3500 SNMP/input.voltage[upsHighPrecInputLineVoltage],{$TIME.PERIOD}) > 0 and (min(/APC UPS Galaxy 3500 SNMP/input.voltage[upsHighPrecInputLineVoltage],{$TIME.PERIOD}) > {$UPS.INPUT_VOLT.MAX.WARN} or max(/APC UPS Galaxy 3500 SNMP/input.voltage[upsHighPrecInputLineVoltage],{$TIME.PERIOD}) < {$UPS.INPUT_VOLT.MIN.WARN})' name: 'Unacceptable input voltage (out of range {$UPS.INPUT_VOLT.MIN.WARN}-{$UPS.INPUT_VOLT.MAX.WARN}V for {$TIME.PERIOD})' opdata: 'Current voltage: {ITEM.LASTVALUE1}' priority: HIGH @@ -383,7 +383,7 @@ zabbix_export: tag: Status triggers: - - expression: '{min({$TIME.PERIOD})} > {$UPS.OUTPUT.MAX.WARN}' + expression: 'min(/APC UPS Galaxy 3500 SNMP/output.load[upsHighPrecOutputLoad],{$TIME.PERIOD}) > {$UPS.OUTPUT.MAX.WARN}' name: 'Output load is high (over {$UPS.OUTPUT.MAX.WARN}% for {$TIME.PERIOD})' opdata: 'Current load: {ITEM.LASTVALUE1}' priority: HIGH @@ -415,47 +415,47 @@ zabbix_export: tag: Status triggers: - - expression: '{last()}=16' + expression: 'last(/APC UPS Galaxy 3500 SNMP/output.status[upsBasicOutputStatus])=16' name: 'UPS is Emergency Static Bypass' priority: AVERAGE - - expression: '{last()}=10' + expression: 'last(/APC UPS Galaxy 3500 SNMP/output.status[upsBasicOutputStatus])=10' name: 'UPS is Hardware Failure Bypass' priority: AVERAGE - - expression: '{last()}=7' + expression: 'last(/APC UPS Galaxy 3500 SNMP/output.status[upsBasicOutputStatus])=7' name: 'UPS is Off' priority: AVERAGE - - expression: '{last()}=3' + expression: 'last(/APC UPS Galaxy 3500 SNMP/output.status[upsBasicOutputStatus])=3' name: 'UPS is on battery' priority: AVERAGE - - expression: '{last()}=4' + expression: 'last(/APC UPS Galaxy 3500 SNMP/output.status[upsBasicOutputStatus])=4' name: 'UPS is on Smart Boost' priority: AVERAGE - - expression: '{last()}=12' + expression: 'last(/APC UPS Galaxy 3500 SNMP/output.status[upsBasicOutputStatus])=12' name: 'UPS is On Smart Trim' priority: AVERAGE - - expression: '{last()}=8' + expression: 'last(/APC UPS Galaxy 3500 SNMP/output.status[upsBasicOutputStatus])=8' name: 'UPS is Rebooting' priority: AVERAGE - - expression: '{last()}=11' + expression: 'last(/APC UPS Galaxy 3500 SNMP/output.status[upsBasicOutputStatus])=11' name: 'UPS is Sleeping Until Power Return' priority: AVERAGE - - expression: '{last()}=6' + expression: 'last(/APC UPS Galaxy 3500 SNMP/output.status[upsBasicOutputStatus])=6' name: 'UPS is Software Bypass' priority: AVERAGE - - expression: '{last()}=9' + expression: 'last(/APC UPS Galaxy 3500 SNMP/output.status[upsBasicOutputStatus])=9' name: 'UPS is Switched Bypass' priority: AVERAGE - - expression: '{last()}=5' + expression: 'last(/APC UPS Galaxy 3500 SNMP/output.status[upsBasicOutputStatus])=5' name: 'UPS is Timed Sleeping' priority: AVERAGE - @@ -605,7 +605,7 @@ zabbix_export: tag: General triggers: - - expression: '{diff()}=1 and {strlen()}>0' + expression: '(last(/APC UPS Galaxy 3500 SNMP/system.name[sysName.0],#1)<>last(/APC UPS Galaxy 3500 SNMP/system.name[sysName.0],#2))=1 and length(last(/APC UPS Galaxy 3500 SNMP/system.name[sysName.0]))>0' name: 'System name has changed (new name: {ITEM.VALUE})' priority: INFO description: 'System name has changed. Ack to close.' @@ -681,7 +681,7 @@ zabbix_export: tag: Status triggers: - - expression: '{last()}<10m' + expression: 'last(/APC UPS Galaxy 3500 SNMP/system.uptime[sysUpTime.0])<10m' name: '{HOST.NAME} has been restarted (uptime < 10m)' priority: WARNING description: 'Uptime is less than 10 minutes' @@ -689,7 +689,7 @@ zabbix_export: dependencies: - name: 'No SNMP data collection' - expression: '{APC UPS Galaxy 3500 SNMP:zabbix[host,snmp,available].max({$SNMP.TIMEOUT})}=0' + expression: 'max(/APC UPS Galaxy 3500 SNMP/zabbix[host,snmp,available],{$SNMP.TIMEOUT})=0' - name: 'SNMP agent availability' type: INTERNAL @@ -707,7 +707,7 @@ zabbix_export: tag: Status triggers: - - expression: '{max({$SNMP.TIMEOUT})}=0' + expression: 'max(/APC UPS Galaxy 3500 SNMP/zabbix[host,snmp,available],{$SNMP.TIMEOUT})=0' name: 'No SNMP data collection' opdata: 'Current state: {ITEM.LASTVALUE1}' priority: WARNING @@ -804,7 +804,7 @@ zabbix_export: tag: Status trigger_prototypes: - - expression: '{regexp("^(0)[0|1]{15}$")}=1' + expression: 'find(/APC UPS Galaxy 3500 SNMP/battery.pack.cartridge_health[upsHighPrecBatteryPackCartridgeHealth.{#BATTERY_PACK}.{#CARTRIDGE_INDEX}],,"regexp","^(0)[0|1]{15}$")=1' name: '{#BATTERY_PACK}.{#CARTRIDGE_INDEX}: Battery lifetime is not okay' opdata: 'Current bit set: {ITEM.LASTVALUE1}' priority: WARNING @@ -850,7 +850,7 @@ zabbix_export: tag: Status trigger_prototypes: - - expression: '{regexp("^(0{16})$")}=0' + expression: 'find(/APC UPS Galaxy 3500 SNMP/battery.pack.status[upsHighPrecBatteryPackCartridgeStatus.{#BATTERY_PACK}.{#CARTRIDGE_INDEX}],,"regexp","^(0{16})$")=0' name: '{#BATTERY_PACK}.{#CARTRIDGE_INDEX}: Battery status is not okay' opdata: 'Current bit set: {ITEM.LASTVALUE1}' priority: WARNING @@ -893,7 +893,7 @@ zabbix_export: tag: Status trigger_prototypes: - - expression: '{min({$TIME.PERIOD})} > {$BATTERY.TEMP.MAX.WARN}' + expression: 'min(/APC UPS Galaxy 3500 SNMP/battery.temperature[upsHighPrecBatteryPackTemperature.{#BATTERY_PACK}.{#CARTRIDGE_INDEX}],{$TIME.PERIOD}) > {$BATTERY.TEMP.MAX.WARN}' name: '{#BATTERY_PACK}.{#CARTRIDGE_INDEX}: Battery has high temperature (over {$BATTERY.TEMP.MAX.WARN}℃ for {$TIME.PERIOD})' opdata: 'Current temperature: {ITEM.LASTVALUE1}' priority: HIGH @@ -971,17 +971,17 @@ zabbix_export: tag: Status trigger_prototypes: - - expression: '{last()}=3' + expression: 'last(/APC UPS Galaxy 3500 SNMP/external.sensor.status[uioSensorStatusAlarmStatus.1.{#SNMPINDEX}])=3' name: '{#EXTERNAL_SENSOR1_NAME}: Sensor has status Critical' priority: HIGH description: 'The external sensor has returned a value greater than the critical threshold.' - - expression: '{last()}=4' + expression: 'last(/APC UPS Galaxy 3500 SNMP/external.sensor.status[uioSensorStatusAlarmStatus.1.{#SNMPINDEX}])=4' name: '{#EXTERNAL_SENSOR1_NAME}: Sensor has status Not Applicable' priority: INFO description: 'The external sensor does not work or is not connected.' - - expression: '{last()}=2' + expression: 'last(/APC UPS Galaxy 3500 SNMP/external.sensor.status[uioSensorStatusAlarmStatus.1.{#SNMPINDEX}])=2' name: '{#EXTERNAL_SENSOR1_NAME}: Sensor has status Warning' priority: AVERAGE description: 'The external sensor has returned a value greater than the warning threshold.' @@ -1076,17 +1076,17 @@ zabbix_export: tag: Status trigger_prototypes: - - expression: '{last()}=3' + expression: 'last(/APC UPS Galaxy 3500 SNMP/external.sensor.status[uioSensorStatusAlarmStatus.2.{#SNMPINDEX}])=3' name: '{#EXTERNAL_SENSOR2_NAME}: Sensor has status Critical' priority: HIGH description: 'The external sensor has returned a value greater than the critical threshold.' - - expression: '{last()}=4' + expression: 'last(/APC UPS Galaxy 3500 SNMP/external.sensor.status[uioSensorStatusAlarmStatus.2.{#SNMPINDEX}])=4' name: '{#EXTERNAL_SENSOR2_NAME}: Sensor has status Not Applicable' priority: INFO description: 'The external sensor does not work or is not connected.' - - expression: '{last()}=2' + expression: 'last(/APC UPS Galaxy 3500 SNMP/external.sensor.status[uioSensorStatusAlarmStatus.2.{#SNMPINDEX}])=2' name: '{#EXTERNAL_SENSOR2_NAME}: Sensor has status Warning' priority: AVERAGE description: 'The external sensor has returned a value greater than the warning threshold.' @@ -1181,7 +1181,7 @@ zabbix_export: tag: Status trigger_prototypes: - - expression: '{min({$TIME.PERIOD})} > {$UPS.INPUT_VOLT.MAX.WARN} or {max({$TIME.PERIOD})} < {$UPS.INPUT_VOLT.MIN.WARN}' + expression: 'min(/APC UPS Galaxy 3500 SNMP/phase.input.voltage[upsPhaseInputVoltage.1.1.{#PHASEINDEX}],{$TIME.PERIOD}) > {$UPS.INPUT_VOLT.MAX.WARN} or max(/APC UPS Galaxy 3500 SNMP/phase.input.voltage[upsPhaseInputVoltage.1.1.{#PHASEINDEX}],{$TIME.PERIOD}) < {$UPS.INPUT_VOLT.MIN.WARN}' name: '{#PHASEINDEX}: Unacceptable phase {#PHASEINDEX} input voltage (out of range {$UPS.INPUT_VOLT.MIN.WARN}-{$UPS.INPUT_VOLT.MAX.WARN}V for {$TIME.PERIOD})' opdata: 'Current phase {#PHASEINDEX} voltage: {ITEM.LASTVALUE1}' priority: HIGH @@ -1261,7 +1261,7 @@ zabbix_export: tag: Status trigger_prototypes: - - expression: '{min({$TIME.PERIOD})} > {$UPS.INPUT_VOLT.MAX.WARN} or {max({$TIME.PERIOD})} < {$UPS.INPUT_VOLT.MIN.WARN}' + expression: 'min(/APC UPS Galaxy 3500 SNMP/phase.output.voltage[upsPhaseOutputVoltage.1.1.{#PHASEINDEX}],{$TIME.PERIOD}) > {$UPS.INPUT_VOLT.MAX.WARN} or max(/APC UPS Galaxy 3500 SNMP/phase.output.voltage[upsPhaseOutputVoltage.1.1.{#PHASEINDEX}],{$TIME.PERIOD}) < {$UPS.INPUT_VOLT.MIN.WARN}' name: '{#PHASEINDEX}: Unacceptable phase {#PHASEINDEX} output voltage (out of range {$UPS.INPUT_VOLT.MIN.WARN}-{$UPS.INPUT_VOLT.MAX.WARN}V for {$TIME.PERIOD})' opdata: 'Current phase {#PHASEINDEX} voltage: {ITEM.LASTVALUE1}' priority: HIGH @@ -1302,177 +1302,6 @@ zabbix_export: macro: '{$UPS.OUTPUT.MAX.WARN}' value: '80' description: 'Maximum output load in % for trigger expression.' - dashboards: - - - name: 'UPS Summary' - pages: - - - widgets: - - - type: PLAIN_TEXT - width: '8' - fields: - - - type: INTEGER - name: show_as_html - value: '0' - - - type: INTEGER - name: show_lines - value: '1' - - - type: ITEM - name: itemids - value: - key: 'system.uptime[sysUpTime.0]' - host: 'APC UPS Galaxy 3500 SNMP' - - - type: PLAIN_TEXT - x: '8' - width: '8' - fields: - - - type: INTEGER - name: show_as_html - value: '0' - - - type: INTEGER - name: show_lines - value: '1' - - - type: ITEM - name: itemids - value: - key: 'input.fail[upsAdvInputLineFailCause]' - host: 'APC UPS Galaxy 3500 SNMP' - - - type: PLAIN_TEXT - x: '16' - width: '8' - fields: - - - type: INTEGER - name: show_as_html - value: '0' - - - type: INTEGER - name: show_lines - value: '1' - - - type: ITEM - name: itemids - value: - key: 'output.status[upsBasicOutputStatus]' - host: 'APC UPS Galaxy 3500 SNMP' - - - type: PLAIN_TEXT - 'y': '2' - width: '8' - fields: - - - type: INTEGER - name: show_as_html - value: '0' - - - type: INTEGER - name: show_lines - value: '1' - - - type: ITEM - name: itemids - value: - key: 'battery.status[upsBasicBatteryStatus]' - host: 'APC UPS Galaxy 3500 SNMP' - - - type: PLAIN_TEXT - x: '8' - 'y': '2' - width: '8' - fields: - - - type: INTEGER - name: show_as_html - value: '0' - - - type: INTEGER - name: show_lines - value: '1' - - - type: ITEM - name: itemids - value: - key: 'battery.runtime_remaining[upsAdvBatteryRunTimeRemaining]' - host: 'APC UPS Galaxy 3500 SNMP' - - - type: PLAIN_TEXT - x: '16' - 'y': '2' - width: '8' - fields: - - - type: INTEGER - name: show_as_html - value: '0' - - - type: INTEGER - name: show_lines - value: '1' - - - type: ITEM - name: itemids - value: - key: 'battery.last_replace_date[upsBasicBatteryLastReplaceDate]' - host: 'APC UPS Galaxy 3500 SNMP' - - - type: GRAPH_CLASSIC - 'y': '4' - width: '8' - height: '7' - fields: - - - type: INTEGER - name: source_type - value: '0' - - - type: GRAPH - name: graphid - value: - name: 'Capacity of the UPS batteries' - host: 'APC UPS Galaxy 3500 SNMP' - - - type: GRAPH_CLASSIC - x: '8' - 'y': '4' - width: '8' - height: '7' - fields: - - - type: INTEGER - name: source_type - value: '0' - - - type: GRAPH - name: graphid - value: - name: Voltage - host: 'APC UPS Galaxy 3500 SNMP' - - - type: GRAPH_CLASSIC - x: '16' - 'y': '4' - width: '8' - height: '7' - fields: - - - type: INTEGER - name: source_type - value: '0' - - - type: GRAPH - name: graphid - value: - name: Output - host: 'APC UPS Galaxy 3500 SNMP' valuemaps: - name: 'PowerNet-MIB::uioSensorStatusAlarmStatus' diff --git a/templates/power/apc/apc_ups_smart_2200_rm_snmp/template_power_apc_ups_smart_2200_rm_snmp.yaml b/templates/power/apc/apc_ups_smart_2200_rm_snmp/template_power_apc_ups_smart_2200_rm_snmp.yaml index c1ba123a3d5..fce38f1e5a7 100644 --- a/templates/power/apc/apc_ups_smart_2200_rm_snmp/template_power_apc_ups_smart_2200_rm_snmp.yaml +++ b/templates/power/apc/apc_ups_smart_2200_rm_snmp/template_power_apc_ups_smart_2200_rm_snmp.yaml @@ -1,6 +1,6 @@ zabbix_export: version: '5.4' - date: '2021-04-15T12:06:08Z' + date: '2021-05-09T00:00:00Z' groups: - name: Templates/Power @@ -48,7 +48,7 @@ zabbix_export: tag: Status triggers: - - expression: '{last()} < {$BATTERY.CAPACITY.MIN.WARN}' + expression: 'last(/APC Smart-UPS 2200 RM SNMP/battery.capacity[upsHighPrecBatteryCapacity]) < {$BATTERY.CAPACITY.MIN.WARN}' name: 'Battery has low capacity (below {$BATTERY.CAPACITY.MIN.WARN}%)' opdata: 'Current capacity: {ITEM.LASTVALUE1}' priority: HIGH @@ -117,7 +117,7 @@ zabbix_export: tag: Status triggers: - - expression: '{last()}=2' + expression: 'last(/APC Smart-UPS 2200 RM SNMP/battery.replace_indicator[upsAdvBatteryReplaceIndicator])=2' name: 'Battery needs replacement' priority: HIGH description: 'A battery installed has an internal error condition.' @@ -172,12 +172,12 @@ zabbix_export: tag: Status triggers: - - expression: '{last()}=4' + expression: 'last(/APC Smart-UPS 2200 RM SNMP/battery.status[upsBasicBatteryStatus])=4' name: 'Battery has an internal error condition' priority: AVERAGE description: 'A battery installed has an internal error condition.' - - expression: '{last()}=3' + expression: 'last(/APC Smart-UPS 2200 RM SNMP/battery.status[upsBasicBatteryStatus])=3' name: 'Battery is Low' priority: AVERAGE description: 'The UPS will be unable to sustain the current load, and its services will be lost if power is not restored.' @@ -207,7 +207,7 @@ zabbix_export: tag: Status triggers: - - expression: '{min({$TIME.PERIOD})} > {$BATTERY.TEMP.MAX.WARN}' + expression: 'min(/APC Smart-UPS 2200 RM SNMP/battery.temperature[upsHighPrecBatteryTemperature],{$TIME.PERIOD}) > {$BATTERY.TEMP.MAX.WARN}' name: 'Battery has high temperature (over {$BATTERY.TEMP.MAX.WARN}℃ for {$TIME.PERIOD})' opdata: 'Current temperature: {ITEM.LASTVALUE1}' priority: HIGH @@ -301,7 +301,7 @@ zabbix_export: tag: Status triggers: - - expression: '{min({$TIME.PERIOD})} > 0 and ({min({$TIME.PERIOD})} > {$UPS.INPUT_FREQ.MAX.WARN} or {max({$TIME.PERIOD})} < {$UPS.INPUT_FREQ.MIN.WARN})' + expression: 'min(/APC Smart-UPS 2200 RM SNMP/input.frequency[upsHighPrecInputFrequency],{$TIME.PERIOD}) > 0 and (min(/APC Smart-UPS 2200 RM SNMP/input.frequency[upsHighPrecInputFrequency],{$TIME.PERIOD}) > {$UPS.INPUT_FREQ.MAX.WARN} or max(/APC Smart-UPS 2200 RM SNMP/input.frequency[upsHighPrecInputFrequency],{$TIME.PERIOD}) < {$UPS.INPUT_FREQ.MIN.WARN})' name: 'Unacceptable input frequency (out of range {$UPS.INPUT_FREQ.MIN.WARN}-{$UPS.INPUT_FREQ.MAX.WARN}Hz for {$TIME.PERIOD})' opdata: 'Current frequency: {ITEM.LASTVALUE1}' priority: HIGH @@ -330,7 +330,7 @@ zabbix_export: tag: Status triggers: - - expression: '{min({$TIME.PERIOD})} > 0 and ({min({$TIME.PERIOD})} > {$UPS.INPUT_VOLT.MAX.WARN} or {max({$TIME.PERIOD})} < {$UPS.INPUT_VOLT.MIN.WARN})' + expression: 'min(/APC Smart-UPS 2200 RM SNMP/input.voltage[upsHighPrecInputLineVoltage],{$TIME.PERIOD}) > 0 and (min(/APC Smart-UPS 2200 RM SNMP/input.voltage[upsHighPrecInputLineVoltage],{$TIME.PERIOD}) > {$UPS.INPUT_VOLT.MAX.WARN} or max(/APC Smart-UPS 2200 RM SNMP/input.voltage[upsHighPrecInputLineVoltage],{$TIME.PERIOD}) < {$UPS.INPUT_VOLT.MIN.WARN})' name: 'Unacceptable input voltage (out of range {$UPS.INPUT_VOLT.MIN.WARN}-{$UPS.INPUT_VOLT.MAX.WARN}V for {$TIME.PERIOD})' opdata: 'Current voltage: {ITEM.LASTVALUE1}' priority: HIGH @@ -383,7 +383,7 @@ zabbix_export: tag: Status triggers: - - expression: '{min({$TIME.PERIOD})} > {$UPS.OUTPUT.MAX.WARN}' + expression: 'min(/APC Smart-UPS 2200 RM SNMP/output.load[upsHighPrecOutputLoad],{$TIME.PERIOD}) > {$UPS.OUTPUT.MAX.WARN}' name: 'Output load is high (over {$UPS.OUTPUT.MAX.WARN}% for {$TIME.PERIOD})' opdata: 'Current load: {ITEM.LASTVALUE1}' priority: HIGH @@ -415,47 +415,47 @@ zabbix_export: tag: Status triggers: - - expression: '{last()}=16' + expression: 'last(/APC Smart-UPS 2200 RM SNMP/output.status[upsBasicOutputStatus])=16' name: 'UPS is Emergency Static Bypass' priority: AVERAGE - - expression: '{last()}=10' + expression: 'last(/APC Smart-UPS 2200 RM SNMP/output.status[upsBasicOutputStatus])=10' name: 'UPS is Hardware Failure Bypass' priority: AVERAGE - - expression: '{last()}=7' + expression: 'last(/APC Smart-UPS 2200 RM SNMP/output.status[upsBasicOutputStatus])=7' name: 'UPS is Off' priority: AVERAGE - - expression: '{last()}=3' + expression: 'last(/APC Smart-UPS 2200 RM SNMP/output.status[upsBasicOutputStatus])=3' name: 'UPS is on battery' priority: AVERAGE - - expression: '{last()}=4' + expression: 'last(/APC Smart-UPS 2200 RM SNMP/output.status[upsBasicOutputStatus])=4' name: 'UPS is on Smart Boost' priority: AVERAGE - - expression: '{last()}=12' + expression: 'last(/APC Smart-UPS 2200 RM SNMP/output.status[upsBasicOutputStatus])=12' name: 'UPS is On Smart Trim' priority: AVERAGE - - expression: '{last()}=8' + expression: 'last(/APC Smart-UPS 2200 RM SNMP/output.status[upsBasicOutputStatus])=8' name: 'UPS is Rebooting' priority: AVERAGE - - expression: '{last()}=11' + expression: 'last(/APC Smart-UPS 2200 RM SNMP/output.status[upsBasicOutputStatus])=11' name: 'UPS is Sleeping Until Power Return' priority: AVERAGE - - expression: '{last()}=6' + expression: 'last(/APC Smart-UPS 2200 RM SNMP/output.status[upsBasicOutputStatus])=6' name: 'UPS is Software Bypass' priority: AVERAGE - - expression: '{last()}=9' + expression: 'last(/APC Smart-UPS 2200 RM SNMP/output.status[upsBasicOutputStatus])=9' name: 'UPS is Switched Bypass' priority: AVERAGE - - expression: '{last()}=5' + expression: 'last(/APC Smart-UPS 2200 RM SNMP/output.status[upsBasicOutputStatus])=5' name: 'UPS is Timed Sleeping' priority: AVERAGE - @@ -605,7 +605,7 @@ zabbix_export: tag: General triggers: - - expression: '{diff()}=1 and {strlen()}>0' + expression: '(last(/APC Smart-UPS 2200 RM SNMP/system.name[sysName.0],#1)<>last(/APC Smart-UPS 2200 RM SNMP/system.name[sysName.0],#2))=1 and length(last(/APC Smart-UPS 2200 RM SNMP/system.name[sysName.0]))>0' name: 'System name has changed (new name: {ITEM.VALUE})' priority: INFO description: 'System name has changed. Ack to close.' @@ -681,7 +681,7 @@ zabbix_export: tag: Status triggers: - - expression: '{last()}<10m' + expression: 'last(/APC Smart-UPS 2200 RM SNMP/system.uptime[sysUpTime.0])<10m' name: '{HOST.NAME} has been restarted (uptime < 10m)' priority: WARNING description: 'Uptime is less than 10 minutes' @@ -689,7 +689,7 @@ zabbix_export: dependencies: - name: 'No SNMP data collection' - expression: '{APC Smart-UPS 2200 RM SNMP:zabbix[host,snmp,available].max({$SNMP.TIMEOUT})}=0' + expression: 'max(/APC Smart-UPS 2200 RM SNMP/zabbix[host,snmp,available],{$SNMP.TIMEOUT})=0' - name: 'SNMP agent availability' type: INTERNAL @@ -707,7 +707,7 @@ zabbix_export: tag: Status triggers: - - expression: '{max({$SNMP.TIMEOUT})}=0' + expression: 'max(/APC Smart-UPS 2200 RM SNMP/zabbix[host,snmp,available],{$SNMP.TIMEOUT})=0' name: 'No SNMP data collection' opdata: 'Current state: {ITEM.LASTVALUE1}' priority: WARNING @@ -804,7 +804,7 @@ zabbix_export: tag: Status trigger_prototypes: - - expression: '{regexp("^(0)[0|1]{15}$")}=1' + expression: 'find(/APC Smart-UPS 2200 RM SNMP/battery.pack.cartridge_health[upsHighPrecBatteryPackCartridgeHealth.{#BATTERY_PACK}.{#CARTRIDGE_INDEX}],,"regexp","^(0)[0|1]{15}$")=1' name: '{#BATTERY_PACK}.{#CARTRIDGE_INDEX}: Battery lifetime is not okay' opdata: 'Current bit set: {ITEM.LASTVALUE1}' priority: WARNING @@ -850,7 +850,7 @@ zabbix_export: tag: Status trigger_prototypes: - - expression: '{regexp("^(0{16})$")}=0' + expression: 'find(/APC Smart-UPS 2200 RM SNMP/battery.pack.status[upsHighPrecBatteryPackCartridgeStatus.{#BATTERY_PACK}.{#CARTRIDGE_INDEX}],,"regexp","^(0{16})$")=0' name: '{#BATTERY_PACK}.{#CARTRIDGE_INDEX}: Battery status is not okay' opdata: 'Current bit set: {ITEM.LASTVALUE1}' priority: WARNING @@ -893,7 +893,7 @@ zabbix_export: tag: Status trigger_prototypes: - - expression: '{min({$TIME.PERIOD})} > {$BATTERY.TEMP.MAX.WARN}' + expression: 'min(/APC Smart-UPS 2200 RM SNMP/battery.temperature[upsHighPrecBatteryPackTemperature.{#BATTERY_PACK}.{#CARTRIDGE_INDEX}],{$TIME.PERIOD}) > {$BATTERY.TEMP.MAX.WARN}' name: '{#BATTERY_PACK}.{#CARTRIDGE_INDEX}: Battery has high temperature (over {$BATTERY.TEMP.MAX.WARN}℃ for {$TIME.PERIOD})' opdata: 'Current temperature: {ITEM.LASTVALUE1}' priority: HIGH @@ -971,17 +971,17 @@ zabbix_export: tag: Status trigger_prototypes: - - expression: '{last()}=3' + expression: 'last(/APC Smart-UPS 2200 RM SNMP/external.sensor.status[uioSensorStatusAlarmStatus.1.{#SNMPINDEX}])=3' name: '{#EXTERNAL_SENSOR1_NAME}: Sensor has status Critical' priority: HIGH description: 'The external sensor has returned a value greater than the critical threshold.' - - expression: '{last()}=4' + expression: 'last(/APC Smart-UPS 2200 RM SNMP/external.sensor.status[uioSensorStatusAlarmStatus.1.{#SNMPINDEX}])=4' name: '{#EXTERNAL_SENSOR1_NAME}: Sensor has status Not Applicable' priority: INFO description: 'The external sensor does not work or is not connected.' - - expression: '{last()}=2' + expression: 'last(/APC Smart-UPS 2200 RM SNMP/external.sensor.status[uioSensorStatusAlarmStatus.1.{#SNMPINDEX}])=2' name: '{#EXTERNAL_SENSOR1_NAME}: Sensor has status Warning' priority: AVERAGE description: 'The external sensor has returned a value greater than the warning threshold.' @@ -1076,17 +1076,17 @@ zabbix_export: tag: Status trigger_prototypes: - - expression: '{last()}=3' + expression: 'last(/APC Smart-UPS 2200 RM SNMP/external.sensor.status[uioSensorStatusAlarmStatus.2.{#SNMPINDEX}])=3' name: '{#EXTERNAL_SENSOR2_NAME}: Sensor has status Critical' priority: HIGH description: 'The external sensor has returned a value greater than the critical threshold.' - - expression: '{last()}=4' + expression: 'last(/APC Smart-UPS 2200 RM SNMP/external.sensor.status[uioSensorStatusAlarmStatus.2.{#SNMPINDEX}])=4' name: '{#EXTERNAL_SENSOR2_NAME}: Sensor has status Not Applicable' priority: INFO description: 'The external sensor does not work or is not connected.' - - expression: '{last()}=2' + expression: 'last(/APC Smart-UPS 2200 RM SNMP/external.sensor.status[uioSensorStatusAlarmStatus.2.{#SNMPINDEX}])=2' name: '{#EXTERNAL_SENSOR2_NAME}: Sensor has status Warning' priority: AVERAGE description: 'The external sensor has returned a value greater than the warning threshold.' @@ -1181,7 +1181,7 @@ zabbix_export: tag: Status trigger_prototypes: - - expression: '{min({$TIME.PERIOD})} > {$UPS.INPUT_VOLT.MAX.WARN} or {max({$TIME.PERIOD})} < {$UPS.INPUT_VOLT.MIN.WARN}' + expression: 'min(/APC Smart-UPS 2200 RM SNMP/phase.input.voltage[upsPhaseInputVoltage.1.1.{#PHASEINDEX}],{$TIME.PERIOD}) > {$UPS.INPUT_VOLT.MAX.WARN} or max(/APC Smart-UPS 2200 RM SNMP/phase.input.voltage[upsPhaseInputVoltage.1.1.{#PHASEINDEX}],{$TIME.PERIOD}) < {$UPS.INPUT_VOLT.MIN.WARN}' name: '{#PHASEINDEX}: Unacceptable phase {#PHASEINDEX} input voltage (out of range {$UPS.INPUT_VOLT.MIN.WARN}-{$UPS.INPUT_VOLT.MAX.WARN}V for {$TIME.PERIOD})' opdata: 'Current phase {#PHASEINDEX} voltage: {ITEM.LASTVALUE1}' priority: HIGH @@ -1261,7 +1261,7 @@ zabbix_export: tag: Status trigger_prototypes: - - expression: '{min({$TIME.PERIOD})} > {$UPS.INPUT_VOLT.MAX.WARN} or {max({$TIME.PERIOD})} < {$UPS.INPUT_VOLT.MIN.WARN}' + expression: 'min(/APC Smart-UPS 2200 RM SNMP/phase.output.voltage[upsPhaseOutputVoltage.1.1.{#PHASEINDEX}],{$TIME.PERIOD}) > {$UPS.INPUT_VOLT.MAX.WARN} or max(/APC Smart-UPS 2200 RM SNMP/phase.output.voltage[upsPhaseOutputVoltage.1.1.{#PHASEINDEX}],{$TIME.PERIOD}) < {$UPS.INPUT_VOLT.MIN.WARN}' name: '{#PHASEINDEX}: Unacceptable phase {#PHASEINDEX} output voltage (out of range {$UPS.INPUT_VOLT.MIN.WARN}-{$UPS.INPUT_VOLT.MAX.WARN}V for {$TIME.PERIOD})' opdata: 'Current phase {#PHASEINDEX} voltage: {ITEM.LASTVALUE1}' priority: HIGH @@ -1302,177 +1302,6 @@ zabbix_export: macro: '{$UPS.OUTPUT.MAX.WARN}' value: '80' description: 'Maximum output load in % for trigger expression.' - dashboards: - - - name: 'UPS Summary' - pages: - - - widgets: - - - type: PLAIN_TEXT - width: '8' - fields: - - - type: INTEGER - name: show_as_html - value: '0' - - - type: INTEGER - name: show_lines - value: '1' - - - type: ITEM - name: itemids - value: - key: 'system.uptime[sysUpTime.0]' - host: 'APC Smart-UPS 2200 RM SNMP' - - - type: PLAIN_TEXT - x: '8' - width: '8' - fields: - - - type: INTEGER - name: show_as_html - value: '0' - - - type: INTEGER - name: show_lines - value: '1' - - - type: ITEM - name: itemids - value: - key: 'input.fail[upsAdvInputLineFailCause]' - host: 'APC Smart-UPS 2200 RM SNMP' - - - type: PLAIN_TEXT - x: '16' - width: '8' - fields: - - - type: INTEGER - name: show_as_html - value: '0' - - - type: INTEGER - name: show_lines - value: '1' - - - type: ITEM - name: itemids - value: - key: 'output.status[upsBasicOutputStatus]' - host: 'APC Smart-UPS 2200 RM SNMP' - - - type: PLAIN_TEXT - 'y': '2' - width: '8' - fields: - - - type: INTEGER - name: show_as_html - value: '0' - - - type: INTEGER - name: show_lines - value: '1' - - - type: ITEM - name: itemids - value: - key: 'battery.status[upsBasicBatteryStatus]' - host: 'APC Smart-UPS 2200 RM SNMP' - - - type: PLAIN_TEXT - x: '8' - 'y': '2' - width: '8' - fields: - - - type: INTEGER - name: show_as_html - value: '0' - - - type: INTEGER - name: show_lines - value: '1' - - - type: ITEM - name: itemids - value: - key: 'battery.runtime_remaining[upsAdvBatteryRunTimeRemaining]' - host: 'APC Smart-UPS 2200 RM SNMP' - - - type: PLAIN_TEXT - x: '16' - 'y': '2' - width: '8' - fields: - - - type: INTEGER - name: show_as_html - value: '0' - - - type: INTEGER - name: show_lines - value: '1' - - - type: ITEM - name: itemids - value: - key: 'battery.last_replace_date[upsBasicBatteryLastReplaceDate]' - host: 'APC Smart-UPS 2200 RM SNMP' - - - type: GRAPH_CLASSIC - 'y': '4' - width: '8' - height: '7' - fields: - - - type: INTEGER - name: source_type - value: '0' - - - type: GRAPH - name: graphid - value: - name: 'Capacity of the UPS batteries' - host: 'APC Smart-UPS 2200 RM SNMP' - - - type: GRAPH_CLASSIC - x: '8' - 'y': '4' - width: '8' - height: '7' - fields: - - - type: INTEGER - name: source_type - value: '0' - - - type: GRAPH - name: graphid - value: - name: Voltage - host: 'APC Smart-UPS 2200 RM SNMP' - - - type: GRAPH_CLASSIC - x: '16' - 'y': '4' - width: '8' - height: '7' - fields: - - - type: INTEGER - name: source_type - value: '0' - - - type: GRAPH - name: graphid - value: - name: Output - host: 'APC Smart-UPS 2200 RM SNMP' valuemaps: - name: 'PowerNet-MIB::uioSensorStatusAlarmStatus' diff --git a/templates/power/apc/apc_ups_smart_3000_xlm_snmp/template_power_apc_ups_smart_3000_xlm_snmp.yaml b/templates/power/apc/apc_ups_smart_3000_xlm_snmp/template_power_apc_ups_smart_3000_xlm_snmp.yaml index dad743bfe4b..443f36de7c7 100644 --- a/templates/power/apc/apc_ups_smart_3000_xlm_snmp/template_power_apc_ups_smart_3000_xlm_snmp.yaml +++ b/templates/power/apc/apc_ups_smart_3000_xlm_snmp/template_power_apc_ups_smart_3000_xlm_snmp.yaml @@ -1,6 +1,6 @@ zabbix_export: version: '5.4' - date: '2021-04-15T12:07:50Z' + date: '2021-05-09T00:00:00Z' groups: - name: Templates/Power @@ -48,7 +48,7 @@ zabbix_export: tag: Status triggers: - - expression: '{last()} < {$BATTERY.CAPACITY.MIN.WARN}' + expression: 'last(/APC Smart-UPS 3000 XLM SNMP/battery.capacity[upsHighPrecBatteryCapacity]) < {$BATTERY.CAPACITY.MIN.WARN}' name: 'Battery has low capacity (below {$BATTERY.CAPACITY.MIN.WARN}%)' opdata: 'Current capacity: {ITEM.LASTVALUE1}' priority: HIGH @@ -117,7 +117,7 @@ zabbix_export: tag: Status triggers: - - expression: '{last()}=2' + expression: 'last(/APC Smart-UPS 3000 XLM SNMP/battery.replace_indicator[upsAdvBatteryReplaceIndicator])=2' name: 'Battery needs replacement' priority: HIGH description: 'A battery installed has an internal error condition.' @@ -172,12 +172,12 @@ zabbix_export: tag: Status triggers: - - expression: '{last()}=4' + expression: 'last(/APC Smart-UPS 3000 XLM SNMP/battery.status[upsBasicBatteryStatus])=4' name: 'Battery has an internal error condition' priority: AVERAGE description: 'A battery installed has an internal error condition.' - - expression: '{last()}=3' + expression: 'last(/APC Smart-UPS 3000 XLM SNMP/battery.status[upsBasicBatteryStatus])=3' name: 'Battery is Low' priority: AVERAGE description: 'The UPS will be unable to sustain the current load, and its services will be lost if power is not restored.' @@ -207,7 +207,7 @@ zabbix_export: tag: Status triggers: - - expression: '{min({$TIME.PERIOD})} > {$BATTERY.TEMP.MAX.WARN}' + expression: 'min(/APC Smart-UPS 3000 XLM SNMP/battery.temperature[upsHighPrecBatteryTemperature],{$TIME.PERIOD}) > {$BATTERY.TEMP.MAX.WARN}' name: 'Battery has high temperature (over {$BATTERY.TEMP.MAX.WARN}℃ for {$TIME.PERIOD})' opdata: 'Current temperature: {ITEM.LASTVALUE1}' priority: HIGH @@ -301,7 +301,7 @@ zabbix_export: tag: Status triggers: - - expression: '{min({$TIME.PERIOD})} > 0 and ({min({$TIME.PERIOD})} > {$UPS.INPUT_FREQ.MAX.WARN} or {max({$TIME.PERIOD})} < {$UPS.INPUT_FREQ.MIN.WARN})' + expression: 'min(/APC Smart-UPS 3000 XLM SNMP/input.frequency[upsHighPrecInputFrequency],{$TIME.PERIOD}) > 0 and (min(/APC Smart-UPS 3000 XLM SNMP/input.frequency[upsHighPrecInputFrequency],{$TIME.PERIOD}) > {$UPS.INPUT_FREQ.MAX.WARN} or max(/APC Smart-UPS 3000 XLM SNMP/input.frequency[upsHighPrecInputFrequency],{$TIME.PERIOD}) < {$UPS.INPUT_FREQ.MIN.WARN})' name: 'Unacceptable input frequency (out of range {$UPS.INPUT_FREQ.MIN.WARN}-{$UPS.INPUT_FREQ.MAX.WARN}Hz for {$TIME.PERIOD})' opdata: 'Current frequency: {ITEM.LASTVALUE1}' priority: HIGH @@ -330,7 +330,7 @@ zabbix_export: tag: Status triggers: - - expression: '{min({$TIME.PERIOD})} > 0 and ({min({$TIME.PERIOD})} > {$UPS.INPUT_VOLT.MAX.WARN} or {max({$TIME.PERIOD})} < {$UPS.INPUT_VOLT.MIN.WARN})' + expression: 'min(/APC Smart-UPS 3000 XLM SNMP/input.voltage[upsHighPrecInputLineVoltage],{$TIME.PERIOD}) > 0 and (min(/APC Smart-UPS 3000 XLM SNMP/input.voltage[upsHighPrecInputLineVoltage],{$TIME.PERIOD}) > {$UPS.INPUT_VOLT.MAX.WARN} or max(/APC Smart-UPS 3000 XLM SNMP/input.voltage[upsHighPrecInputLineVoltage],{$TIME.PERIOD}) < {$UPS.INPUT_VOLT.MIN.WARN})' name: 'Unacceptable input voltage (out of range {$UPS.INPUT_VOLT.MIN.WARN}-{$UPS.INPUT_VOLT.MAX.WARN}V for {$TIME.PERIOD})' opdata: 'Current voltage: {ITEM.LASTVALUE1}' priority: HIGH @@ -383,7 +383,7 @@ zabbix_export: tag: Status triggers: - - expression: '{min({$TIME.PERIOD})} > {$UPS.OUTPUT.MAX.WARN}' + expression: 'min(/APC Smart-UPS 3000 XLM SNMP/output.load[upsHighPrecOutputLoad],{$TIME.PERIOD}) > {$UPS.OUTPUT.MAX.WARN}' name: 'Output load is high (over {$UPS.OUTPUT.MAX.WARN}% for {$TIME.PERIOD})' opdata: 'Current load: {ITEM.LASTVALUE1}' priority: HIGH @@ -415,47 +415,47 @@ zabbix_export: tag: Status triggers: - - expression: '{last()}=16' + expression: 'last(/APC Smart-UPS 3000 XLM SNMP/output.status[upsBasicOutputStatus])=16' name: 'UPS is Emergency Static Bypass' priority: AVERAGE - - expression: '{last()}=10' + expression: 'last(/APC Smart-UPS 3000 XLM SNMP/output.status[upsBasicOutputStatus])=10' name: 'UPS is Hardware Failure Bypass' priority: AVERAGE - - expression: '{last()}=7' + expression: 'last(/APC Smart-UPS 3000 XLM SNMP/output.status[upsBasicOutputStatus])=7' name: 'UPS is Off' priority: AVERAGE - - expression: '{last()}=3' + expression: 'last(/APC Smart-UPS 3000 XLM SNMP/output.status[upsBasicOutputStatus])=3' name: 'UPS is on battery' priority: AVERAGE - - expression: '{last()}=4' + expression: 'last(/APC Smart-UPS 3000 XLM SNMP/output.status[upsBasicOutputStatus])=4' name: 'UPS is on Smart Boost' priority: AVERAGE - - expression: '{last()}=12' + expression: 'last(/APC Smart-UPS 3000 XLM SNMP/output.status[upsBasicOutputStatus])=12' name: 'UPS is On Smart Trim' priority: AVERAGE - - expression: '{last()}=8' + expression: 'last(/APC Smart-UPS 3000 XLM SNMP/output.status[upsBasicOutputStatus])=8' name: 'UPS is Rebooting' priority: AVERAGE - - expression: '{last()}=11' + expression: 'last(/APC Smart-UPS 3000 XLM SNMP/output.status[upsBasicOutputStatus])=11' name: 'UPS is Sleeping Until Power Return' priority: AVERAGE - - expression: '{last()}=6' + expression: 'last(/APC Smart-UPS 3000 XLM SNMP/output.status[upsBasicOutputStatus])=6' name: 'UPS is Software Bypass' priority: AVERAGE - - expression: '{last()}=9' + expression: 'last(/APC Smart-UPS 3000 XLM SNMP/output.status[upsBasicOutputStatus])=9' name: 'UPS is Switched Bypass' priority: AVERAGE - - expression: '{last()}=5' + expression: 'last(/APC Smart-UPS 3000 XLM SNMP/output.status[upsBasicOutputStatus])=5' name: 'UPS is Timed Sleeping' priority: AVERAGE - @@ -605,7 +605,7 @@ zabbix_export: tag: General triggers: - - expression: '{diff()}=1 and {strlen()}>0' + expression: '(last(/APC Smart-UPS 3000 XLM SNMP/system.name[sysName.0],#1)<>last(/APC Smart-UPS 3000 XLM SNMP/system.name[sysName.0],#2))=1 and length(last(/APC Smart-UPS 3000 XLM SNMP/system.name[sysName.0]))>0' name: 'System name has changed (new name: {ITEM.VALUE})' priority: INFO description: 'System name has changed. Ack to close.' @@ -681,7 +681,7 @@ zabbix_export: tag: Status triggers: - - expression: '{last()}<10m' + expression: 'last(/APC Smart-UPS 3000 XLM SNMP/system.uptime[sysUpTime.0])<10m' name: '{HOST.NAME} has been restarted (uptime < 10m)' priority: WARNING description: 'Uptime is less than 10 minutes' @@ -689,7 +689,7 @@ zabbix_export: dependencies: - name: 'No SNMP data collection' - expression: '{APC Smart-UPS 3000 XLM SNMP:zabbix[host,snmp,available].max({$SNMP.TIMEOUT})}=0' + expression: 'max(/APC Smart-UPS 3000 XLM SNMP/zabbix[host,snmp,available],{$SNMP.TIMEOUT})=0' - name: 'SNMP agent availability' type: INTERNAL @@ -707,7 +707,7 @@ zabbix_export: tag: Status triggers: - - expression: '{max({$SNMP.TIMEOUT})}=0' + expression: 'max(/APC Smart-UPS 3000 XLM SNMP/zabbix[host,snmp,available],{$SNMP.TIMEOUT})=0' name: 'No SNMP data collection' opdata: 'Current state: {ITEM.LASTVALUE1}' priority: WARNING @@ -804,7 +804,7 @@ zabbix_export: tag: Status trigger_prototypes: - - expression: '{regexp("^(0)[0|1]{15}$")}=1' + expression: 'find(/APC Smart-UPS 3000 XLM SNMP/battery.pack.cartridge_health[upsHighPrecBatteryPackCartridgeHealth.{#BATTERY_PACK}.{#CARTRIDGE_INDEX}],,"regexp","^(0)[0|1]{15}$")=1' name: '{#BATTERY_PACK}.{#CARTRIDGE_INDEX}: Battery lifetime is not okay' opdata: 'Current bit set: {ITEM.LASTVALUE1}' priority: WARNING @@ -850,7 +850,7 @@ zabbix_export: tag: Status trigger_prototypes: - - expression: '{regexp("^(0{16})$")}=0' + expression: 'find(/APC Smart-UPS 3000 XLM SNMP/battery.pack.status[upsHighPrecBatteryPackCartridgeStatus.{#BATTERY_PACK}.{#CARTRIDGE_INDEX}],,"regexp","^(0{16})$")=0' name: '{#BATTERY_PACK}.{#CARTRIDGE_INDEX}: Battery status is not okay' opdata: 'Current bit set: {ITEM.LASTVALUE1}' priority: WARNING @@ -893,7 +893,7 @@ zabbix_export: tag: Status trigger_prototypes: - - expression: '{min({$TIME.PERIOD})} > {$BATTERY.TEMP.MAX.WARN}' + expression: 'min(/APC Smart-UPS 3000 XLM SNMP/battery.temperature[upsHighPrecBatteryPackTemperature.{#BATTERY_PACK}.{#CARTRIDGE_INDEX}],{$TIME.PERIOD}) > {$BATTERY.TEMP.MAX.WARN}' name: '{#BATTERY_PACK}.{#CARTRIDGE_INDEX}: Battery has high temperature (over {$BATTERY.TEMP.MAX.WARN}℃ for {$TIME.PERIOD})' opdata: 'Current temperature: {ITEM.LASTVALUE1}' priority: HIGH @@ -971,17 +971,17 @@ zabbix_export: tag: Status trigger_prototypes: - - expression: '{last()}=3' + expression: 'last(/APC Smart-UPS 3000 XLM SNMP/external.sensor.status[uioSensorStatusAlarmStatus.1.{#SNMPINDEX}])=3' name: '{#EXTERNAL_SENSOR1_NAME}: Sensor has status Critical' priority: HIGH description: 'The external sensor has returned a value greater than the critical threshold.' - - expression: '{last()}=4' + expression: 'last(/APC Smart-UPS 3000 XLM SNMP/external.sensor.status[uioSensorStatusAlarmStatus.1.{#SNMPINDEX}])=4' name: '{#EXTERNAL_SENSOR1_NAME}: Sensor has status Not Applicable' priority: INFO description: 'The external sensor does not work or is not connected.' - - expression: '{last()}=2' + expression: 'last(/APC Smart-UPS 3000 XLM SNMP/external.sensor.status[uioSensorStatusAlarmStatus.1.{#SNMPINDEX}])=2' name: '{#EXTERNAL_SENSOR1_NAME}: Sensor has status Warning' priority: AVERAGE description: 'The external sensor has returned a value greater than the warning threshold.' @@ -1076,17 +1076,17 @@ zabbix_export: tag: Status trigger_prototypes: - - expression: '{last()}=3' + expression: 'last(/APC Smart-UPS 3000 XLM SNMP/external.sensor.status[uioSensorStatusAlarmStatus.2.{#SNMPINDEX}])=3' name: '{#EXTERNAL_SENSOR2_NAME}: Sensor has status Critical' priority: HIGH description: 'The external sensor has returned a value greater than the critical threshold.' - - expression: '{last()}=4' + expression: 'last(/APC Smart-UPS 3000 XLM SNMP/external.sensor.status[uioSensorStatusAlarmStatus.2.{#SNMPINDEX}])=4' name: '{#EXTERNAL_SENSOR2_NAME}: Sensor has status Not Applicable' priority: INFO description: 'The external sensor does not work or is not connected.' - - expression: '{last()}=2' + expression: 'last(/APC Smart-UPS 3000 XLM SNMP/external.sensor.status[uioSensorStatusAlarmStatus.2.{#SNMPINDEX}])=2' name: '{#EXTERNAL_SENSOR2_NAME}: Sensor has status Warning' priority: AVERAGE description: 'The external sensor has returned a value greater than the warning threshold.' @@ -1181,7 +1181,7 @@ zabbix_export: tag: Status trigger_prototypes: - - expression: '{min({$TIME.PERIOD})} > {$UPS.INPUT_VOLT.MAX.WARN} or {max({$TIME.PERIOD})} < {$UPS.INPUT_VOLT.MIN.WARN}' + expression: 'min(/APC Smart-UPS 3000 XLM SNMP/phase.input.voltage[upsPhaseInputVoltage.1.1.{#PHASEINDEX}],{$TIME.PERIOD}) > {$UPS.INPUT_VOLT.MAX.WARN} or max(/APC Smart-UPS 3000 XLM SNMP/phase.input.voltage[upsPhaseInputVoltage.1.1.{#PHASEINDEX}],{$TIME.PERIOD}) < {$UPS.INPUT_VOLT.MIN.WARN}' name: '{#PHASEINDEX}: Unacceptable phase {#PHASEINDEX} input voltage (out of range {$UPS.INPUT_VOLT.MIN.WARN}-{$UPS.INPUT_VOLT.MAX.WARN}V for {$TIME.PERIOD})' opdata: 'Current phase {#PHASEINDEX} voltage: {ITEM.LASTVALUE1}' priority: HIGH @@ -1261,7 +1261,7 @@ zabbix_export: tag: Status trigger_prototypes: - - expression: '{min({$TIME.PERIOD})} > {$UPS.INPUT_VOLT.MAX.WARN} or {max({$TIME.PERIOD})} < {$UPS.INPUT_VOLT.MIN.WARN}' + expression: 'min(/APC Smart-UPS 3000 XLM SNMP/phase.output.voltage[upsPhaseOutputVoltage.1.1.{#PHASEINDEX}],{$TIME.PERIOD}) > {$UPS.INPUT_VOLT.MAX.WARN} or max(/APC Smart-UPS 3000 XLM SNMP/phase.output.voltage[upsPhaseOutputVoltage.1.1.{#PHASEINDEX}],{$TIME.PERIOD}) < {$UPS.INPUT_VOLT.MIN.WARN}' name: '{#PHASEINDEX}: Unacceptable phase {#PHASEINDEX} output voltage (out of range {$UPS.INPUT_VOLT.MIN.WARN}-{$UPS.INPUT_VOLT.MAX.WARN}V for {$TIME.PERIOD})' opdata: 'Current phase {#PHASEINDEX} voltage: {ITEM.LASTVALUE1}' priority: HIGH @@ -1302,177 +1302,6 @@ zabbix_export: macro: '{$UPS.OUTPUT.MAX.WARN}' value: '80' description: 'Maximum output load in % for trigger expression.' - dashboards: - - - name: 'UPS Summary' - pages: - - - widgets: - - - type: PLAIN_TEXT - width: '8' - fields: - - - type: INTEGER - name: show_as_html - value: '0' - - - type: INTEGER - name: show_lines - value: '1' - - - type: ITEM - name: itemids - value: - key: 'system.uptime[sysUpTime.0]' - host: 'APC Smart-UPS 3000 XLM SNMP' - - - type: PLAIN_TEXT - x: '8' - width: '8' - fields: - - - type: INTEGER - name: show_as_html - value: '0' - - - type: INTEGER - name: show_lines - value: '1' - - - type: ITEM - name: itemids - value: - key: 'input.fail[upsAdvInputLineFailCause]' - host: 'APC Smart-UPS 3000 XLM SNMP' - - - type: PLAIN_TEXT - x: '16' - width: '8' - fields: - - - type: INTEGER - name: show_as_html - value: '0' - - - type: INTEGER - name: show_lines - value: '1' - - - type: ITEM - name: itemids - value: - key: 'output.status[upsBasicOutputStatus]' - host: 'APC Smart-UPS 3000 XLM SNMP' - - - type: PLAIN_TEXT - 'y': '2' - width: '8' - fields: - - - type: INTEGER - name: show_as_html - value: '0' - - - type: INTEGER - name: show_lines - value: '1' - - - type: ITEM - name: itemids - value: - key: 'battery.status[upsBasicBatteryStatus]' - host: 'APC Smart-UPS 3000 XLM SNMP' - - - type: PLAIN_TEXT - x: '8' - 'y': '2' - width: '8' - fields: - - - type: INTEGER - name: show_as_html - value: '0' - - - type: INTEGER - name: show_lines - value: '1' - - - type: ITEM - name: itemids - value: - key: 'battery.runtime_remaining[upsAdvBatteryRunTimeRemaining]' - host: 'APC Smart-UPS 3000 XLM SNMP' - - - type: PLAIN_TEXT - x: '16' - 'y': '2' - width: '8' - fields: - - - type: INTEGER - name: show_as_html - value: '0' - - - type: INTEGER - name: show_lines - value: '1' - - - type: ITEM - name: itemids - value: - key: 'battery.last_replace_date[upsBasicBatteryLastReplaceDate]' - host: 'APC Smart-UPS 3000 XLM SNMP' - - - type: GRAPH_CLASSIC - 'y': '4' - width: '8' - height: '7' - fields: - - - type: INTEGER - name: source_type - value: '0' - - - type: GRAPH - name: graphid - value: - name: 'Capacity of the UPS batteries' - host: 'APC Smart-UPS 3000 XLM SNMP' - - - type: GRAPH_CLASSIC - x: '8' - 'y': '4' - width: '8' - height: '7' - fields: - - - type: INTEGER - name: source_type - value: '0' - - - type: GRAPH - name: graphid - value: - name: Voltage - host: 'APC Smart-UPS 3000 XLM SNMP' - - - type: GRAPH_CLASSIC - x: '16' - 'y': '4' - width: '8' - height: '7' - fields: - - - type: INTEGER - name: source_type - value: '0' - - - type: GRAPH - name: graphid - value: - name: Output - host: 'APC Smart-UPS 3000 XLM SNMP' valuemaps: - name: 'PowerNet-MIB::uioSensorStatusAlarmStatus' diff --git a/templates/power/apc/apc_ups_smart_rt_1000_rm_xl_snmp/template_power_apc_ups_smart_rt_1000_rm_xl_snmp.yaml b/templates/power/apc/apc_ups_smart_rt_1000_rm_xl_snmp/template_power_apc_ups_smart_rt_1000_rm_xl_snmp.yaml index ebfdb501d9a..829248cfcf6 100644 --- a/templates/power/apc/apc_ups_smart_rt_1000_rm_xl_snmp/template_power_apc_ups_smart_rt_1000_rm_xl_snmp.yaml +++ b/templates/power/apc/apc_ups_smart_rt_1000_rm_xl_snmp/template_power_apc_ups_smart_rt_1000_rm_xl_snmp.yaml @@ -1,6 +1,6 @@ zabbix_export: version: '5.4' - date: '2021-04-15T12:08:52Z' + date: '2021-05-09T00:00:00Z' groups: - name: Templates/Power @@ -48,7 +48,7 @@ zabbix_export: tag: Status triggers: - - expression: '{last()} < {$BATTERY.CAPACITY.MIN.WARN}' + expression: 'last(/APC Smart-UPS RT 1000 RM XL SNMP/battery.capacity[upsHighPrecBatteryCapacity]) < {$BATTERY.CAPACITY.MIN.WARN}' name: 'Battery has low capacity (below {$BATTERY.CAPACITY.MIN.WARN}%)' opdata: 'Current capacity: {ITEM.LASTVALUE1}' priority: HIGH @@ -117,7 +117,7 @@ zabbix_export: tag: Status triggers: - - expression: '{last()}=2' + expression: 'last(/APC Smart-UPS RT 1000 RM XL SNMP/battery.replace_indicator[upsAdvBatteryReplaceIndicator])=2' name: 'Battery needs replacement' priority: HIGH description: 'A battery installed has an internal error condition.' @@ -172,12 +172,12 @@ zabbix_export: tag: Status triggers: - - expression: '{last()}=4' + expression: 'last(/APC Smart-UPS RT 1000 RM XL SNMP/battery.status[upsBasicBatteryStatus])=4' name: 'Battery has an internal error condition' priority: AVERAGE description: 'A battery installed has an internal error condition.' - - expression: '{last()}=3' + expression: 'last(/APC Smart-UPS RT 1000 RM XL SNMP/battery.status[upsBasicBatteryStatus])=3' name: 'Battery is Low' priority: AVERAGE description: 'The UPS will be unable to sustain the current load, and its services will be lost if power is not restored.' @@ -207,7 +207,7 @@ zabbix_export: tag: Status triggers: - - expression: '{min({$TIME.PERIOD})} > {$BATTERY.TEMP.MAX.WARN}' + expression: 'min(/APC Smart-UPS RT 1000 RM XL SNMP/battery.temperature[upsHighPrecBatteryTemperature],{$TIME.PERIOD}) > {$BATTERY.TEMP.MAX.WARN}' name: 'Battery has high temperature (over {$BATTERY.TEMP.MAX.WARN}℃ for {$TIME.PERIOD})' opdata: 'Current temperature: {ITEM.LASTVALUE1}' priority: HIGH @@ -301,7 +301,7 @@ zabbix_export: tag: Status triggers: - - expression: '{min({$TIME.PERIOD})} > 0 and ({min({$TIME.PERIOD})} > {$UPS.INPUT_FREQ.MAX.WARN} or {max({$TIME.PERIOD})} < {$UPS.INPUT_FREQ.MIN.WARN})' + expression: 'min(/APC Smart-UPS RT 1000 RM XL SNMP/input.frequency[upsHighPrecInputFrequency],{$TIME.PERIOD}) > 0 and (min(/APC Smart-UPS RT 1000 RM XL SNMP/input.frequency[upsHighPrecInputFrequency],{$TIME.PERIOD}) > {$UPS.INPUT_FREQ.MAX.WARN} or max(/APC Smart-UPS RT 1000 RM XL SNMP/input.frequency[upsHighPrecInputFrequency],{$TIME.PERIOD}) < {$UPS.INPUT_FREQ.MIN.WARN})' name: 'Unacceptable input frequency (out of range {$UPS.INPUT_FREQ.MIN.WARN}-{$UPS.INPUT_FREQ.MAX.WARN}Hz for {$TIME.PERIOD})' opdata: 'Current frequency: {ITEM.LASTVALUE1}' priority: HIGH @@ -330,7 +330,7 @@ zabbix_export: tag: Status triggers: - - expression: '{min({$TIME.PERIOD})} > 0 and ({min({$TIME.PERIOD})} > {$UPS.INPUT_VOLT.MAX.WARN} or {max({$TIME.PERIOD})} < {$UPS.INPUT_VOLT.MIN.WARN})' + expression: 'min(/APC Smart-UPS RT 1000 RM XL SNMP/input.voltage[upsHighPrecInputLineVoltage],{$TIME.PERIOD}) > 0 and (min(/APC Smart-UPS RT 1000 RM XL SNMP/input.voltage[upsHighPrecInputLineVoltage],{$TIME.PERIOD}) > {$UPS.INPUT_VOLT.MAX.WARN} or max(/APC Smart-UPS RT 1000 RM XL SNMP/input.voltage[upsHighPrecInputLineVoltage],{$TIME.PERIOD}) < {$UPS.INPUT_VOLT.MIN.WARN})' name: 'Unacceptable input voltage (out of range {$UPS.INPUT_VOLT.MIN.WARN}-{$UPS.INPUT_VOLT.MAX.WARN}V for {$TIME.PERIOD})' opdata: 'Current voltage: {ITEM.LASTVALUE1}' priority: HIGH @@ -383,7 +383,7 @@ zabbix_export: tag: Status triggers: - - expression: '{min({$TIME.PERIOD})} > {$UPS.OUTPUT.MAX.WARN}' + expression: 'min(/APC Smart-UPS RT 1000 RM XL SNMP/output.load[upsHighPrecOutputLoad],{$TIME.PERIOD}) > {$UPS.OUTPUT.MAX.WARN}' name: 'Output load is high (over {$UPS.OUTPUT.MAX.WARN}% for {$TIME.PERIOD})' opdata: 'Current load: {ITEM.LASTVALUE1}' priority: HIGH @@ -415,47 +415,47 @@ zabbix_export: tag: Status triggers: - - expression: '{last()}=16' + expression: 'last(/APC Smart-UPS RT 1000 RM XL SNMP/output.status[upsBasicOutputStatus])=16' name: 'UPS is Emergency Static Bypass' priority: AVERAGE - - expression: '{last()}=10' + expression: 'last(/APC Smart-UPS RT 1000 RM XL SNMP/output.status[upsBasicOutputStatus])=10' name: 'UPS is Hardware Failure Bypass' priority: AVERAGE - - expression: '{last()}=7' + expression: 'last(/APC Smart-UPS RT 1000 RM XL SNMP/output.status[upsBasicOutputStatus])=7' name: 'UPS is Off' priority: AVERAGE - - expression: '{last()}=3' + expression: 'last(/APC Smart-UPS RT 1000 RM XL SNMP/output.status[upsBasicOutputStatus])=3' name: 'UPS is on battery' priority: AVERAGE - - expression: '{last()}=4' + expression: 'last(/APC Smart-UPS RT 1000 RM XL SNMP/output.status[upsBasicOutputStatus])=4' name: 'UPS is on Smart Boost' priority: AVERAGE - - expression: '{last()}=12' + expression: 'last(/APC Smart-UPS RT 1000 RM XL SNMP/output.status[upsBasicOutputStatus])=12' name: 'UPS is On Smart Trim' priority: AVERAGE - - expression: '{last()}=8' + expression: 'last(/APC Smart-UPS RT 1000 RM XL SNMP/output.status[upsBasicOutputStatus])=8' name: 'UPS is Rebooting' priority: AVERAGE - - expression: '{last()}=11' + expression: 'last(/APC Smart-UPS RT 1000 RM XL SNMP/output.status[upsBasicOutputStatus])=11' name: 'UPS is Sleeping Until Power Return' priority: AVERAGE - - expression: '{last()}=6' + expression: 'last(/APC Smart-UPS RT 1000 RM XL SNMP/output.status[upsBasicOutputStatus])=6' name: 'UPS is Software Bypass' priority: AVERAGE - - expression: '{last()}=9' + expression: 'last(/APC Smart-UPS RT 1000 RM XL SNMP/output.status[upsBasicOutputStatus])=9' name: 'UPS is Switched Bypass' priority: AVERAGE - - expression: '{last()}=5' + expression: 'last(/APC Smart-UPS RT 1000 RM XL SNMP/output.status[upsBasicOutputStatus])=5' name: 'UPS is Timed Sleeping' priority: AVERAGE - @@ -605,7 +605,7 @@ zabbix_export: tag: General triggers: - - expression: '{diff()}=1 and {strlen()}>0' + expression: '(last(/APC Smart-UPS RT 1000 RM XL SNMP/system.name[sysName.0],#1)<>last(/APC Smart-UPS RT 1000 RM XL SNMP/system.name[sysName.0],#2))=1 and length(last(/APC Smart-UPS RT 1000 RM XL SNMP/system.name[sysName.0]))>0' name: 'System name has changed (new name: {ITEM.VALUE})' priority: INFO description: 'System name has changed. Ack to close.' @@ -681,7 +681,7 @@ zabbix_export: tag: Status triggers: - - expression: '{last()}<10m' + expression: 'last(/APC Smart-UPS RT 1000 RM XL SNMP/system.uptime[sysUpTime.0])<10m' name: '{HOST.NAME} has been restarted (uptime < 10m)' priority: WARNING description: 'Uptime is less than 10 minutes' @@ -689,7 +689,7 @@ zabbix_export: dependencies: - name: 'No SNMP data collection' - expression: '{APC Smart-UPS RT 1000 RM XL SNMP:zabbix[host,snmp,available].max({$SNMP.TIMEOUT})}=0' + expression: 'max(/APC Smart-UPS RT 1000 RM XL SNMP/zabbix[host,snmp,available],{$SNMP.TIMEOUT})=0' - name: 'SNMP agent availability' type: INTERNAL @@ -707,7 +707,7 @@ zabbix_export: tag: Status triggers: - - expression: '{max({$SNMP.TIMEOUT})}=0' + expression: 'max(/APC Smart-UPS RT 1000 RM XL SNMP/zabbix[host,snmp,available],{$SNMP.TIMEOUT})=0' name: 'No SNMP data collection' opdata: 'Current state: {ITEM.LASTVALUE1}' priority: WARNING @@ -804,7 +804,7 @@ zabbix_export: tag: Status trigger_prototypes: - - expression: '{regexp("^(0)[0|1]{15}$")}=1' + expression: 'find(/APC Smart-UPS RT 1000 RM XL SNMP/battery.pack.cartridge_health[upsHighPrecBatteryPackCartridgeHealth.{#BATTERY_PACK}.{#CARTRIDGE_INDEX}],,"regexp","^(0)[0|1]{15}$")=1' name: '{#BATTERY_PACK}.{#CARTRIDGE_INDEX}: Battery lifetime is not okay' opdata: 'Current bit set: {ITEM.LASTVALUE1}' priority: WARNING @@ -850,7 +850,7 @@ zabbix_export: tag: Status trigger_prototypes: - - expression: '{regexp("^(0{16})$")}=0' + expression: 'find(/APC Smart-UPS RT 1000 RM XL SNMP/battery.pack.status[upsHighPrecBatteryPackCartridgeStatus.{#BATTERY_PACK}.{#CARTRIDGE_INDEX}],,"regexp","^(0{16})$")=0' name: '{#BATTERY_PACK}.{#CARTRIDGE_INDEX}: Battery status is not okay' opdata: 'Current bit set: {ITEM.LASTVALUE1}' priority: WARNING @@ -893,7 +893,7 @@ zabbix_export: tag: Status trigger_prototypes: - - expression: '{min({$TIME.PERIOD})} > {$BATTERY.TEMP.MAX.WARN}' + expression: 'min(/APC Smart-UPS RT 1000 RM XL SNMP/battery.temperature[upsHighPrecBatteryPackTemperature.{#BATTERY_PACK}.{#CARTRIDGE_INDEX}],{$TIME.PERIOD}) > {$BATTERY.TEMP.MAX.WARN}' name: '{#BATTERY_PACK}.{#CARTRIDGE_INDEX}: Battery has high temperature (over {$BATTERY.TEMP.MAX.WARN}℃ for {$TIME.PERIOD})' opdata: 'Current temperature: {ITEM.LASTVALUE1}' priority: HIGH @@ -971,17 +971,17 @@ zabbix_export: tag: Status trigger_prototypes: - - expression: '{last()}=3' + expression: 'last(/APC Smart-UPS RT 1000 RM XL SNMP/external.sensor.status[uioSensorStatusAlarmStatus.1.{#SNMPINDEX}])=3' name: '{#EXTERNAL_SENSOR1_NAME}: Sensor has status Critical' priority: HIGH description: 'The external sensor has returned a value greater than the critical threshold.' - - expression: '{last()}=4' + expression: 'last(/APC Smart-UPS RT 1000 RM XL SNMP/external.sensor.status[uioSensorStatusAlarmStatus.1.{#SNMPINDEX}])=4' name: '{#EXTERNAL_SENSOR1_NAME}: Sensor has status Not Applicable' priority: INFO description: 'The external sensor does not work or is not connected.' - - expression: '{last()}=2' + expression: 'last(/APC Smart-UPS RT 1000 RM XL SNMP/external.sensor.status[uioSensorStatusAlarmStatus.1.{#SNMPINDEX}])=2' name: '{#EXTERNAL_SENSOR1_NAME}: Sensor has status Warning' priority: AVERAGE description: 'The external sensor has returned a value greater than the warning threshold.' @@ -1076,17 +1076,17 @@ zabbix_export: tag: Status trigger_prototypes: - - expression: '{last()}=3' + expression: 'last(/APC Smart-UPS RT 1000 RM XL SNMP/external.sensor.status[uioSensorStatusAlarmStatus.2.{#SNMPINDEX}])=3' name: '{#EXTERNAL_SENSOR2_NAME}: Sensor has status Critical' priority: HIGH description: 'The external sensor has returned a value greater than the critical threshold.' - - expression: '{last()}=4' + expression: 'last(/APC Smart-UPS RT 1000 RM XL SNMP/external.sensor.status[uioSensorStatusAlarmStatus.2.{#SNMPINDEX}])=4' name: '{#EXTERNAL_SENSOR2_NAME}: Sensor has status Not Applicable' priority: INFO description: 'The external sensor does not work or is not connected.' - - expression: '{last()}=2' + expression: 'last(/APC Smart-UPS RT 1000 RM XL SNMP/external.sensor.status[uioSensorStatusAlarmStatus.2.{#SNMPINDEX}])=2' name: '{#EXTERNAL_SENSOR2_NAME}: Sensor has status Warning' priority: AVERAGE description: 'The external sensor has returned a value greater than the warning threshold.' @@ -1181,7 +1181,7 @@ zabbix_export: tag: Status trigger_prototypes: - - expression: '{min({$TIME.PERIOD})} > {$UPS.INPUT_VOLT.MAX.WARN} or {max({$TIME.PERIOD})} < {$UPS.INPUT_VOLT.MIN.WARN}' + expression: 'min(/APC Smart-UPS RT 1000 RM XL SNMP/phase.input.voltage[upsPhaseInputVoltage.1.1.{#PHASEINDEX}],{$TIME.PERIOD}) > {$UPS.INPUT_VOLT.MAX.WARN} or max(/APC Smart-UPS RT 1000 RM XL SNMP/phase.input.voltage[upsPhaseInputVoltage.1.1.{#PHASEINDEX}],{$TIME.PERIOD}) < {$UPS.INPUT_VOLT.MIN.WARN}' name: '{#PHASEINDEX}: Unacceptable phase {#PHASEINDEX} input voltage (out of range {$UPS.INPUT_VOLT.MIN.WARN}-{$UPS.INPUT_VOLT.MAX.WARN}V for {$TIME.PERIOD})' opdata: 'Current phase {#PHASEINDEX} voltage: {ITEM.LASTVALUE1}' priority: HIGH @@ -1261,7 +1261,7 @@ zabbix_export: tag: Status trigger_prototypes: - - expression: '{min({$TIME.PERIOD})} > {$UPS.INPUT_VOLT.MAX.WARN} or {max({$TIME.PERIOD})} < {$UPS.INPUT_VOLT.MIN.WARN}' + expression: 'min(/APC Smart-UPS RT 1000 RM XL SNMP/phase.output.voltage[upsPhaseOutputVoltage.1.1.{#PHASEINDEX}],{$TIME.PERIOD}) > {$UPS.INPUT_VOLT.MAX.WARN} or max(/APC Smart-UPS RT 1000 RM XL SNMP/phase.output.voltage[upsPhaseOutputVoltage.1.1.{#PHASEINDEX}],{$TIME.PERIOD}) < {$UPS.INPUT_VOLT.MIN.WARN}' name: '{#PHASEINDEX}: Unacceptable phase {#PHASEINDEX} output voltage (out of range {$UPS.INPUT_VOLT.MIN.WARN}-{$UPS.INPUT_VOLT.MAX.WARN}V for {$TIME.PERIOD})' opdata: 'Current phase {#PHASEINDEX} voltage: {ITEM.LASTVALUE1}' priority: HIGH @@ -1302,177 +1302,6 @@ zabbix_export: macro: '{$UPS.OUTPUT.MAX.WARN}' value: '80' description: 'Maximum output load in % for trigger expression.' - dashboards: - - - name: 'UPS Summary' - pages: - - - widgets: - - - type: PLAIN_TEXT - width: '8' - fields: - - - type: INTEGER - name: show_as_html - value: '0' - - - type: INTEGER - name: show_lines - value: '1' - - - type: ITEM - name: itemids - value: - key: 'system.uptime[sysUpTime.0]' - host: 'APC Smart-UPS RT 1000 RM XL SNMP' - - - type: PLAIN_TEXT - x: '8' - width: '8' - fields: - - - type: INTEGER - name: show_as_html - value: '0' - - - type: INTEGER - name: show_lines - value: '1' - - - type: ITEM - name: itemids - value: - key: 'input.fail[upsAdvInputLineFailCause]' - host: 'APC Smart-UPS RT 1000 RM XL SNMP' - - - type: PLAIN_TEXT - x: '16' - width: '8' - fields: - - - type: INTEGER - name: show_as_html - value: '0' - - - type: INTEGER - name: show_lines - value: '1' - - - type: ITEM - name: itemids - value: - key: 'output.status[upsBasicOutputStatus]' - host: 'APC Smart-UPS RT 1000 RM XL SNMP' - - - type: PLAIN_TEXT - 'y': '2' - width: '8' - fields: - - - type: INTEGER - name: show_as_html - value: '0' - - - type: INTEGER - name: show_lines - value: '1' - - - type: ITEM - name: itemids - value: - key: 'battery.status[upsBasicBatteryStatus]' - host: 'APC Smart-UPS RT 1000 RM XL SNMP' - - - type: PLAIN_TEXT - x: '8' - 'y': '2' - width: '8' - fields: - - - type: INTEGER - name: show_as_html - value: '0' - - - type: INTEGER - name: show_lines - value: '1' - - - type: ITEM - name: itemids - value: - key: 'battery.runtime_remaining[upsAdvBatteryRunTimeRemaining]' - host: 'APC Smart-UPS RT 1000 RM XL SNMP' - - - type: PLAIN_TEXT - x: '16' - 'y': '2' - width: '8' - fields: - - - type: INTEGER - name: show_as_html - value: '0' - - - type: INTEGER - name: show_lines - value: '1' - - - type: ITEM - name: itemids - value: - key: 'battery.last_replace_date[upsBasicBatteryLastReplaceDate]' - host: 'APC Smart-UPS RT 1000 RM XL SNMP' - - - type: GRAPH_CLASSIC - 'y': '4' - width: '8' - height: '7' - fields: - - - type: INTEGER - name: source_type - value: '0' - - - type: GRAPH - name: graphid - value: - name: 'Capacity of the UPS batteries' - host: 'APC Smart-UPS RT 1000 RM XL SNMP' - - - type: GRAPH_CLASSIC - x: '8' - 'y': '4' - width: '8' - height: '7' - fields: - - - type: INTEGER - name: source_type - value: '0' - - - type: GRAPH - name: graphid - value: - name: Voltage - host: 'APC Smart-UPS RT 1000 RM XL SNMP' - - - type: GRAPH_CLASSIC - x: '16' - 'y': '4' - width: '8' - height: '7' - fields: - - - type: INTEGER - name: source_type - value: '0' - - - type: GRAPH - name: graphid - value: - name: Output - host: 'APC Smart-UPS RT 1000 RM XL SNMP' valuemaps: - name: 'PowerNet-MIB::uioSensorStatusAlarmStatus' diff --git a/templates/power/apc/apc_ups_smart_rt_1000_xl_snmp/template_power_apc_ups_smart_rt_1000_xl_snmp.yaml b/templates/power/apc/apc_ups_smart_rt_1000_xl_snmp/template_power_apc_ups_smart_rt_1000_xl_snmp.yaml index 6af523f0001..681e88a9f95 100644 --- a/templates/power/apc/apc_ups_smart_rt_1000_xl_snmp/template_power_apc_ups_smart_rt_1000_xl_snmp.yaml +++ b/templates/power/apc/apc_ups_smart_rt_1000_xl_snmp/template_power_apc_ups_smart_rt_1000_xl_snmp.yaml @@ -1,6 +1,6 @@ zabbix_export: version: '5.4' - date: '2021-04-15T12:10:26Z' + date: '2021-05-09T00:00:00Z' groups: - name: Templates/Power @@ -48,7 +48,7 @@ zabbix_export: tag: Status triggers: - - expression: '{last()} < {$BATTERY.CAPACITY.MIN.WARN}' + expression: 'last(/APC Smart-UPS RT 1000 XL SNMP/battery.capacity[upsHighPrecBatteryCapacity]) < {$BATTERY.CAPACITY.MIN.WARN}' name: 'Battery has low capacity (below {$BATTERY.CAPACITY.MIN.WARN}%)' opdata: 'Current capacity: {ITEM.LASTVALUE1}' priority: HIGH @@ -117,7 +117,7 @@ zabbix_export: tag: Status triggers: - - expression: '{last()}=2' + expression: 'last(/APC Smart-UPS RT 1000 XL SNMP/battery.replace_indicator[upsAdvBatteryReplaceIndicator])=2' name: 'Battery needs replacement' priority: HIGH description: 'A battery installed has an internal error condition.' @@ -172,12 +172,12 @@ zabbix_export: tag: Status triggers: - - expression: '{last()}=4' + expression: 'last(/APC Smart-UPS RT 1000 XL SNMP/battery.status[upsBasicBatteryStatus])=4' name: 'Battery has an internal error condition' priority: AVERAGE description: 'A battery installed has an internal error condition.' - - expression: '{last()}=3' + expression: 'last(/APC Smart-UPS RT 1000 XL SNMP/battery.status[upsBasicBatteryStatus])=3' name: 'Battery is Low' priority: AVERAGE description: 'The UPS will be unable to sustain the current load, and its services will be lost if power is not restored.' @@ -207,7 +207,7 @@ zabbix_export: tag: Status triggers: - - expression: '{min({$TIME.PERIOD})} > {$BATTERY.TEMP.MAX.WARN}' + expression: 'min(/APC Smart-UPS RT 1000 XL SNMP/battery.temperature[upsHighPrecBatteryTemperature],{$TIME.PERIOD}) > {$BATTERY.TEMP.MAX.WARN}' name: 'Battery has high temperature (over {$BATTERY.TEMP.MAX.WARN}℃ for {$TIME.PERIOD})' opdata: 'Current temperature: {ITEM.LASTVALUE1}' priority: HIGH @@ -301,7 +301,7 @@ zabbix_export: tag: Status triggers: - - expression: '{min({$TIME.PERIOD})} > 0 and ({min({$TIME.PERIOD})} > {$UPS.INPUT_FREQ.MAX.WARN} or {max({$TIME.PERIOD})} < {$UPS.INPUT_FREQ.MIN.WARN})' + expression: 'min(/APC Smart-UPS RT 1000 XL SNMP/input.frequency[upsHighPrecInputFrequency],{$TIME.PERIOD}) > 0 and (min(/APC Smart-UPS RT 1000 XL SNMP/input.frequency[upsHighPrecInputFrequency],{$TIME.PERIOD}) > {$UPS.INPUT_FREQ.MAX.WARN} or max(/APC Smart-UPS RT 1000 XL SNMP/input.frequency[upsHighPrecInputFrequency],{$TIME.PERIOD}) < {$UPS.INPUT_FREQ.MIN.WARN})' name: 'Unacceptable input frequency (out of range {$UPS.INPUT_FREQ.MIN.WARN}-{$UPS.INPUT_FREQ.MAX.WARN}Hz for {$TIME.PERIOD})' opdata: 'Current frequency: {ITEM.LASTVALUE1}' priority: HIGH @@ -330,7 +330,7 @@ zabbix_export: tag: Status triggers: - - expression: '{min({$TIME.PERIOD})} > 0 and ({min({$TIME.PERIOD})} > {$UPS.INPUT_VOLT.MAX.WARN} or {max({$TIME.PERIOD})} < {$UPS.INPUT_VOLT.MIN.WARN})' + expression: 'min(/APC Smart-UPS RT 1000 XL SNMP/input.voltage[upsHighPrecInputLineVoltage],{$TIME.PERIOD}) > 0 and (min(/APC Smart-UPS RT 1000 XL SNMP/input.voltage[upsHighPrecInputLineVoltage],{$TIME.PERIOD}) > {$UPS.INPUT_VOLT.MAX.WARN} or max(/APC Smart-UPS RT 1000 XL SNMP/input.voltage[upsHighPrecInputLineVoltage],{$TIME.PERIOD}) < {$UPS.INPUT_VOLT.MIN.WARN})' name: 'Unacceptable input voltage (out of range {$UPS.INPUT_VOLT.MIN.WARN}-{$UPS.INPUT_VOLT.MAX.WARN}V for {$TIME.PERIOD})' opdata: 'Current voltage: {ITEM.LASTVALUE1}' priority: HIGH @@ -383,7 +383,7 @@ zabbix_export: tag: Status triggers: - - expression: '{min({$TIME.PERIOD})} > {$UPS.OUTPUT.MAX.WARN}' + expression: 'min(/APC Smart-UPS RT 1000 XL SNMP/output.load[upsHighPrecOutputLoad],{$TIME.PERIOD}) > {$UPS.OUTPUT.MAX.WARN}' name: 'Output load is high (over {$UPS.OUTPUT.MAX.WARN}% for {$TIME.PERIOD})' opdata: 'Current load: {ITEM.LASTVALUE1}' priority: HIGH @@ -415,47 +415,47 @@ zabbix_export: tag: Status triggers: - - expression: '{last()}=16' + expression: 'last(/APC Smart-UPS RT 1000 XL SNMP/output.status[upsBasicOutputStatus])=16' name: 'UPS is Emergency Static Bypass' priority: AVERAGE - - expression: '{last()}=10' + expression: 'last(/APC Smart-UPS RT 1000 XL SNMP/output.status[upsBasicOutputStatus])=10' name: 'UPS is Hardware Failure Bypass' priority: AVERAGE - - expression: '{last()}=7' + expression: 'last(/APC Smart-UPS RT 1000 XL SNMP/output.status[upsBasicOutputStatus])=7' name: 'UPS is Off' priority: AVERAGE - - expression: '{last()}=3' + expression: 'last(/APC Smart-UPS RT 1000 XL SNMP/output.status[upsBasicOutputStatus])=3' name: 'UPS is on battery' priority: AVERAGE - - expression: '{last()}=4' + expression: 'last(/APC Smart-UPS RT 1000 XL SNMP/output.status[upsBasicOutputStatus])=4' name: 'UPS is on Smart Boost' priority: AVERAGE - - expression: '{last()}=12' + expression: 'last(/APC Smart-UPS RT 1000 XL SNMP/output.status[upsBasicOutputStatus])=12' name: 'UPS is On Smart Trim' priority: AVERAGE - - expression: '{last()}=8' + expression: 'last(/APC Smart-UPS RT 1000 XL SNMP/output.status[upsBasicOutputStatus])=8' name: 'UPS is Rebooting' priority: AVERAGE - - expression: '{last()}=11' + expression: 'last(/APC Smart-UPS RT 1000 XL SNMP/output.status[upsBasicOutputStatus])=11' name: 'UPS is Sleeping Until Power Return' priority: AVERAGE - - expression: '{last()}=6' + expression: 'last(/APC Smart-UPS RT 1000 XL SNMP/output.status[upsBasicOutputStatus])=6' name: 'UPS is Software Bypass' priority: AVERAGE - - expression: '{last()}=9' + expression: 'last(/APC Smart-UPS RT 1000 XL SNMP/output.status[upsBasicOutputStatus])=9' name: 'UPS is Switched Bypass' priority: AVERAGE - - expression: '{last()}=5' + expression: 'last(/APC Smart-UPS RT 1000 XL SNMP/output.status[upsBasicOutputStatus])=5' name: 'UPS is Timed Sleeping' priority: AVERAGE - @@ -605,7 +605,7 @@ zabbix_export: tag: General triggers: - - expression: '{diff()}=1 and {strlen()}>0' + expression: '(last(/APC Smart-UPS RT 1000 XL SNMP/system.name[sysName.0],#1)<>last(/APC Smart-UPS RT 1000 XL SNMP/system.name[sysName.0],#2))=1 and length(last(/APC Smart-UPS RT 1000 XL SNMP/system.name[sysName.0]))>0' name: 'System name has changed (new name: {ITEM.VALUE})' priority: INFO description: 'System name has changed. Ack to close.' @@ -681,7 +681,7 @@ zabbix_export: tag: Status triggers: - - expression: '{last()}<10m' + expression: 'last(/APC Smart-UPS RT 1000 XL SNMP/system.uptime[sysUpTime.0])<10m' name: '{HOST.NAME} has been restarted (uptime < 10m)' priority: WARNING description: 'Uptime is less than 10 minutes' @@ -689,7 +689,7 @@ zabbix_export: dependencies: - name: 'No SNMP data collection' - expression: '{APC Smart-UPS RT 1000 XL SNMP:zabbix[host,snmp,available].max({$SNMP.TIMEOUT})}=0' + expression: 'max(/APC Smart-UPS RT 1000 XL SNMP/zabbix[host,snmp,available],{$SNMP.TIMEOUT})=0' - name: 'SNMP agent availability' type: INTERNAL @@ -707,7 +707,7 @@ zabbix_export: tag: Status triggers: - - expression: '{max({$SNMP.TIMEOUT})}=0' + expression: 'max(/APC Smart-UPS RT 1000 XL SNMP/zabbix[host,snmp,available],{$SNMP.TIMEOUT})=0' name: 'No SNMP data collection' opdata: 'Current state: {ITEM.LASTVALUE1}' priority: WARNING @@ -804,7 +804,7 @@ zabbix_export: tag: Status trigger_prototypes: - - expression: '{regexp("^(0)[0|1]{15}$")}=1' + expression: 'find(/APC Smart-UPS RT 1000 XL SNMP/battery.pack.cartridge_health[upsHighPrecBatteryPackCartridgeHealth.{#BATTERY_PACK}.{#CARTRIDGE_INDEX}],,"regexp","^(0)[0|1]{15}$")=1' name: '{#BATTERY_PACK}.{#CARTRIDGE_INDEX}: Battery lifetime is not okay' opdata: 'Current bit set: {ITEM.LASTVALUE1}' priority: WARNING @@ -850,7 +850,7 @@ zabbix_export: tag: Status trigger_prototypes: - - expression: '{regexp("^(0{16})$")}=0' + expression: 'find(/APC Smart-UPS RT 1000 XL SNMP/battery.pack.status[upsHighPrecBatteryPackCartridgeStatus.{#BATTERY_PACK}.{#CARTRIDGE_INDEX}],,"regexp","^(0{16})$")=0' name: '{#BATTERY_PACK}.{#CARTRIDGE_INDEX}: Battery status is not okay' opdata: 'Current bit set: {ITEM.LASTVALUE1}' priority: WARNING @@ -893,7 +893,7 @@ zabbix_export: tag: Status trigger_prototypes: - - expression: '{min({$TIME.PERIOD})} > {$BATTERY.TEMP.MAX.WARN}' + expression: 'min(/APC Smart-UPS RT 1000 XL SNMP/battery.temperature[upsHighPrecBatteryPackTemperature.{#BATTERY_PACK}.{#CARTRIDGE_INDEX}],{$TIME.PERIOD}) > {$BATTERY.TEMP.MAX.WARN}' name: '{#BATTERY_PACK}.{#CARTRIDGE_INDEX}: Battery has high temperature (over {$BATTERY.TEMP.MAX.WARN}℃ for {$TIME.PERIOD})' opdata: 'Current temperature: {ITEM.LASTVALUE1}' priority: HIGH @@ -971,17 +971,17 @@ zabbix_export: tag: Status trigger_prototypes: - - expression: '{last()}=3' + expression: 'last(/APC Smart-UPS RT 1000 XL SNMP/external.sensor.status[uioSensorStatusAlarmStatus.1.{#SNMPINDEX}])=3' name: '{#EXTERNAL_SENSOR1_NAME}: Sensor has status Critical' priority: HIGH description: 'The external sensor has returned a value greater than the critical threshold.' - - expression: '{last()}=4' + expression: 'last(/APC Smart-UPS RT 1000 XL SNMP/external.sensor.status[uioSensorStatusAlarmStatus.1.{#SNMPINDEX}])=4' name: '{#EXTERNAL_SENSOR1_NAME}: Sensor has status Not Applicable' priority: INFO description: 'The external sensor does not work or is not connected.' - - expression: '{last()}=2' + expression: 'last(/APC Smart-UPS RT 1000 XL SNMP/external.sensor.status[uioSensorStatusAlarmStatus.1.{#SNMPINDEX}])=2' name: '{#EXTERNAL_SENSOR1_NAME}: Sensor has status Warning' priority: AVERAGE description: 'The external sensor has returned a value greater than the warning threshold.' @@ -1076,17 +1076,17 @@ zabbix_export: tag: Status trigger_prototypes: - - expression: '{last()}=3' + expression: 'last(/APC Smart-UPS RT 1000 XL SNMP/external.sensor.status[uioSensorStatusAlarmStatus.2.{#SNMPINDEX}])=3' name: '{#EXTERNAL_SENSOR2_NAME}: Sensor has status Critical' priority: HIGH description: 'The external sensor has returned a value greater than the critical threshold.' - - expression: '{last()}=4' + expression: 'last(/APC Smart-UPS RT 1000 XL SNMP/external.sensor.status[uioSensorStatusAlarmStatus.2.{#SNMPINDEX}])=4' name: '{#EXTERNAL_SENSOR2_NAME}: Sensor has status Not Applicable' priority: INFO description: 'The external sensor does not work or is not connected.' - - expression: '{last()}=2' + expression: 'last(/APC Smart-UPS RT 1000 XL SNMP/external.sensor.status[uioSensorStatusAlarmStatus.2.{#SNMPINDEX}])=2' name: '{#EXTERNAL_SENSOR2_NAME}: Sensor has status Warning' priority: AVERAGE description: 'The external sensor has returned a value greater than the warning threshold.' @@ -1181,7 +1181,7 @@ zabbix_export: tag: Status trigger_prototypes: - - expression: '{min({$TIME.PERIOD})} > {$UPS.INPUT_VOLT.MAX.WARN} or {max({$TIME.PERIOD})} < {$UPS.INPUT_VOLT.MIN.WARN}' + expression: 'min(/APC Smart-UPS RT 1000 XL SNMP/phase.input.voltage[upsPhaseInputVoltage.1.1.{#PHASEINDEX}],{$TIME.PERIOD}) > {$UPS.INPUT_VOLT.MAX.WARN} or max(/APC Smart-UPS RT 1000 XL SNMP/phase.input.voltage[upsPhaseInputVoltage.1.1.{#PHASEINDEX}],{$TIME.PERIOD}) < {$UPS.INPUT_VOLT.MIN.WARN}' name: '{#PHASEINDEX}: Unacceptable phase {#PHASEINDEX} input voltage (out of range {$UPS.INPUT_VOLT.MIN.WARN}-{$UPS.INPUT_VOLT.MAX.WARN}V for {$TIME.PERIOD})' opdata: 'Current phase {#PHASEINDEX} voltage: {ITEM.LASTVALUE1}' priority: HIGH @@ -1261,7 +1261,7 @@ zabbix_export: tag: Status trigger_prototypes: - - expression: '{min({$TIME.PERIOD})} > {$UPS.INPUT_VOLT.MAX.WARN} or {max({$TIME.PERIOD})} < {$UPS.INPUT_VOLT.MIN.WARN}' + expression: 'min(/APC Smart-UPS RT 1000 XL SNMP/phase.output.voltage[upsPhaseOutputVoltage.1.1.{#PHASEINDEX}],{$TIME.PERIOD}) > {$UPS.INPUT_VOLT.MAX.WARN} or max(/APC Smart-UPS RT 1000 XL SNMP/phase.output.voltage[upsPhaseOutputVoltage.1.1.{#PHASEINDEX}],{$TIME.PERIOD}) < {$UPS.INPUT_VOLT.MIN.WARN}' name: '{#PHASEINDEX}: Unacceptable phase {#PHASEINDEX} output voltage (out of range {$UPS.INPUT_VOLT.MIN.WARN}-{$UPS.INPUT_VOLT.MAX.WARN}V for {$TIME.PERIOD})' opdata: 'Current phase {#PHASEINDEX} voltage: {ITEM.LASTVALUE1}' priority: HIGH @@ -1302,177 +1302,6 @@ zabbix_export: macro: '{$UPS.OUTPUT.MAX.WARN}' value: '80' description: 'Maximum output load in % for trigger expression.' - dashboards: - - - name: 'UPS Summary' - pages: - - - widgets: - - - type: PLAIN_TEXT - width: '8' - fields: - - - type: INTEGER - name: show_as_html - value: '0' - - - type: INTEGER - name: show_lines - value: '1' - - - type: ITEM - name: itemids - value: - key: 'system.uptime[sysUpTime.0]' - host: 'APC Smart-UPS RT 1000 XL SNMP' - - - type: PLAIN_TEXT - x: '8' - width: '8' - fields: - - - type: INTEGER - name: show_as_html - value: '0' - - - type: INTEGER - name: show_lines - value: '1' - - - type: ITEM - name: itemids - value: - key: 'input.fail[upsAdvInputLineFailCause]' - host: 'APC Smart-UPS RT 1000 XL SNMP' - - - type: PLAIN_TEXT - x: '16' - width: '8' - fields: - - - type: INTEGER - name: show_as_html - value: '0' - - - type: INTEGER - name: show_lines - value: '1' - - - type: ITEM - name: itemids - value: - key: 'output.status[upsBasicOutputStatus]' - host: 'APC Smart-UPS RT 1000 XL SNMP' - - - type: PLAIN_TEXT - 'y': '2' - width: '8' - fields: - - - type: INTEGER - name: show_as_html - value: '0' - - - type: INTEGER - name: show_lines - value: '1' - - - type: ITEM - name: itemids - value: - key: 'battery.status[upsBasicBatteryStatus]' - host: 'APC Smart-UPS RT 1000 XL SNMP' - - - type: PLAIN_TEXT - x: '8' - 'y': '2' - width: '8' - fields: - - - type: INTEGER - name: show_as_html - value: '0' - - - type: INTEGER - name: show_lines - value: '1' - - - type: ITEM - name: itemids - value: - key: 'battery.runtime_remaining[upsAdvBatteryRunTimeRemaining]' - host: 'APC Smart-UPS RT 1000 XL SNMP' - - - type: PLAIN_TEXT - x: '16' - 'y': '2' - width: '8' - fields: - - - type: INTEGER - name: show_as_html - value: '0' - - - type: INTEGER - name: show_lines - value: '1' - - - type: ITEM - name: itemids - value: - key: 'battery.last_replace_date[upsBasicBatteryLastReplaceDate]' - host: 'APC Smart-UPS RT 1000 XL SNMP' - - - type: GRAPH_CLASSIC - 'y': '4' - width: '8' - height: '7' - fields: - - - type: INTEGER - name: source_type - value: '0' - - - type: GRAPH - name: graphid - value: - name: 'Capacity of the UPS batteries' - host: 'APC Smart-UPS RT 1000 XL SNMP' - - - type: GRAPH_CLASSIC - x: '8' - 'y': '4' - width: '8' - height: '7' - fields: - - - type: INTEGER - name: source_type - value: '0' - - - type: GRAPH - name: graphid - value: - name: Voltage - host: 'APC Smart-UPS RT 1000 XL SNMP' - - - type: GRAPH_CLASSIC - x: '16' - 'y': '4' - width: '8' - height: '7' - fields: - - - type: INTEGER - name: source_type - value: '0' - - - type: GRAPH - name: graphid - value: - name: Output - host: 'APC Smart-UPS RT 1000 XL SNMP' valuemaps: - name: 'PowerNet-MIB::uioSensorStatusAlarmStatus' diff --git a/templates/power/apc/apc_ups_smart_srt_5000_snmp/template_power_apc_ups_smart_srt_5000_snmp.yaml b/templates/power/apc/apc_ups_smart_srt_5000_snmp/template_power_apc_ups_smart_srt_5000_snmp.yaml index 78ef4e0da31..ff877362e54 100644 --- a/templates/power/apc/apc_ups_smart_srt_5000_snmp/template_power_apc_ups_smart_srt_5000_snmp.yaml +++ b/templates/power/apc/apc_ups_smart_srt_5000_snmp/template_power_apc_ups_smart_srt_5000_snmp.yaml @@ -1,13 +1,13 @@ zabbix_export: version: '5.4' - date: '2021-04-15T12:10:53Z' + date: '2021-05-09T00:00:00Z' groups: - name: Templates/Power templates: - - template: 'APC Smart-UPS SRT 5000 SNMP bkp' - name: 'APC Smart-UPS SRT 5000 SNMP bkp' + template: 'APC Smart-UPS SRT 5000 SNMP' + name: 'APC Smart-UPS SRT 5000 SNMP' description: | Template Power APC Smart-UPS SRT 5000 @@ -45,10 +45,11 @@ zabbix_export: - 6h tags: - - tag: Status + tag: Application + value: Status triggers: - - expression: '{last()} < {$BATTERY.CAPACITY.MIN.WARN}' + expression: 'last(/APC Smart-UPS SRT 5000 SNMP/battery.capacity[upsHighPrecBatteryCapacity]) < {$BATTERY.CAPACITY.MIN.WARN}' name: 'Battery has low capacity (below {$BATTERY.CAPACITY.MIN.WARN}%)' opdata: 'Current capacity: {ITEM.LASTVALUE1}' priority: HIGH @@ -71,7 +72,8 @@ zabbix_export: - 6h tags: - - tag: Status + tag: Application + value: Status - name: 'Battery last replace date' type: SNMP_AGENT @@ -95,7 +97,8 @@ zabbix_export: - 6h tags: - - tag: Status + tag: Application + value: Status - name: 'Battery replace indicator' type: SNMP_AGENT @@ -114,10 +117,11 @@ zabbix_export: - 6h tags: - - tag: Status + tag: Application + value: Status triggers: - - expression: '{last()}=2' + expression: 'last(/APC Smart-UPS SRT 5000 SNMP/battery.replace_indicator[upsAdvBatteryReplaceIndicator])=2' name: 'Battery needs replacement' priority: HIGH description: 'A battery installed has an internal error condition.' @@ -144,7 +148,8 @@ zabbix_export: - 6h tags: - - tag: Status + tag: Application + value: Status - name: 'Battery status' type: SNMP_AGENT @@ -169,15 +174,16 @@ zabbix_export: - 6h tags: - - tag: Status + tag: Application + value: Status triggers: - - expression: '{last()}=4' + expression: 'last(/APC Smart-UPS SRT 5000 SNMP/battery.status[upsBasicBatteryStatus])=4' name: 'Battery has an internal error condition' priority: AVERAGE description: 'A battery installed has an internal error condition.' - - expression: '{last()}=3' + expression: 'last(/APC Smart-UPS SRT 5000 SNMP/battery.status[upsBasicBatteryStatus])=3' name: 'Battery is Low' priority: AVERAGE description: 'The UPS will be unable to sustain the current load, and its services will be lost if power is not restored.' @@ -204,10 +210,11 @@ zabbix_export: - 6h tags: - - tag: Status + tag: Application + value: Status triggers: - - expression: '{min({$TIME.PERIOD})} > {$BATTERY.TEMP.MAX.WARN}' + expression: 'min(/APC Smart-UPS SRT 5000 SNMP/battery.temperature[upsHighPrecBatteryTemperature],{$TIME.PERIOD}) > {$BATTERY.TEMP.MAX.WARN}' name: 'Battery has high temperature (over {$BATTERY.TEMP.MAX.WARN}℃ for {$TIME.PERIOD})' opdata: 'Current temperature: {ITEM.LASTVALUE1}' priority: HIGH @@ -233,7 +240,8 @@ zabbix_export: - 6h tags: - - tag: Status + tag: Application + value: Status - name: 'Input fail cause' type: SNMP_AGENT @@ -275,7 +283,8 @@ zabbix_export: - 6h tags: - - tag: Status + tag: Application + value: Status - name: 'Input frequency' type: SNMP_AGENT @@ -298,10 +307,11 @@ zabbix_export: - 6h tags: - - tag: Status + tag: Application + value: Status triggers: - - expression: '{min({$TIME.PERIOD})} > 0 and ({min({$TIME.PERIOD})} > {$UPS.INPUT_FREQ.MAX.WARN} or {max({$TIME.PERIOD})} < {$UPS.INPUT_FREQ.MIN.WARN})' + expression: 'min(/APC Smart-UPS SRT 5000 SNMP/input.frequency[upsHighPrecInputFrequency],{$TIME.PERIOD}) > 0 and ((min(/APC Smart-UPS SRT 5000 SNMP/input.frequency[upsHighPrecInputFrequency],{$TIME.PERIOD}) > {$UPS.INPUT_FREQ.MAX.WARN} or max(/APC Smart-UPS SRT 5000 SNMP/input.frequency[upsHighPrecInputFrequency],{$TIME.PERIOD}) < {$UPS.INPUT_FREQ.MIN.WARN}))' name: 'Unacceptable input frequency (out of range {$UPS.INPUT_FREQ.MIN.WARN}-{$UPS.INPUT_FREQ.MAX.WARN}Hz for {$TIME.PERIOD})' opdata: 'Current frequency: {ITEM.LASTVALUE1}' priority: HIGH @@ -327,10 +337,11 @@ zabbix_export: - 6h tags: - - tag: Status + tag: Application + value: Status triggers: - - expression: '{min({$TIME.PERIOD})} > 0 and ({min({$TIME.PERIOD})} > {$UPS.INPUT_VOLT.MAX.WARN} or {max({$TIME.PERIOD})} < {$UPS.INPUT_VOLT.MIN.WARN})' + expression: 'min(/APC Smart-UPS SRT 5000 SNMP/input.voltage[upsHighPrecInputLineVoltage],{$TIME.PERIOD}) > 0 and ((min(/APC Smart-UPS SRT 5000 SNMP/input.voltage[upsHighPrecInputLineVoltage],{$TIME.PERIOD}) > {$UPS.INPUT_VOLT.MAX.WARN} or max(/APC Smart-UPS SRT 5000 SNMP/input.voltage[upsHighPrecInputLineVoltage],{$TIME.PERIOD}) < {$UPS.INPUT_VOLT.MIN.WARN}))' name: 'Unacceptable input voltage (out of range {$UPS.INPUT_VOLT.MIN.WARN}-{$UPS.INPUT_VOLT.MAX.WARN}V for {$TIME.PERIOD})' opdata: 'Current voltage: {ITEM.LASTVALUE1}' priority: HIGH @@ -356,7 +367,8 @@ zabbix_export: - 6h tags: - - tag: Status + tag: Application + value: Status - name: 'Output load' type: SNMP_AGENT @@ -380,10 +392,11 @@ zabbix_export: - 6h tags: - - tag: Status + tag: Application + value: Status triggers: - - expression: '{min({$TIME.PERIOD})} > {$UPS.OUTPUT.MAX.WARN}' + expression: 'min(/APC Smart-UPS SRT 5000 SNMP/output.load[upsHighPrecOutputLoad],{$TIME.PERIOD}) > {$UPS.OUTPUT.MAX.WARN}' name: 'Output load is high (over {$UPS.OUTPUT.MAX.WARN}% for {$TIME.PERIOD})' opdata: 'Current load: {ITEM.LASTVALUE1}' priority: HIGH @@ -412,50 +425,51 @@ zabbix_export: - 6h tags: - - tag: Status + tag: Application + value: Status triggers: - - expression: '{last()}=16' + expression: 'last(/APC Smart-UPS SRT 5000 SNMP/output.status[upsBasicOutputStatus])=16' name: 'UPS is Emergency Static Bypass' priority: AVERAGE - - expression: '{last()}=10' + expression: 'last(/APC Smart-UPS SRT 5000 SNMP/output.status[upsBasicOutputStatus])=10' name: 'UPS is Hardware Failure Bypass' priority: AVERAGE - - expression: '{last()}=7' + expression: 'last(/APC Smart-UPS SRT 5000 SNMP/output.status[upsBasicOutputStatus])=7' name: 'UPS is Off' priority: AVERAGE - - expression: '{last()}=3' + expression: 'last(/APC Smart-UPS SRT 5000 SNMP/output.status[upsBasicOutputStatus])=3' name: 'UPS is on battery' priority: AVERAGE - - expression: '{last()}=4' + expression: 'last(/APC Smart-UPS SRT 5000 SNMP/output.status[upsBasicOutputStatus])=4' name: 'UPS is on Smart Boost' priority: AVERAGE - - expression: '{last()}=12' + expression: 'last(/APC Smart-UPS SRT 5000 SNMP/output.status[upsBasicOutputStatus])=12' name: 'UPS is On Smart Trim' priority: AVERAGE - - expression: '{last()}=8' + expression: 'last(/APC Smart-UPS SRT 5000 SNMP/output.status[upsBasicOutputStatus])=8' name: 'UPS is Rebooting' priority: AVERAGE - - expression: '{last()}=11' + expression: 'last(/APC Smart-UPS SRT 5000 SNMP/output.status[upsBasicOutputStatus])=11' name: 'UPS is Sleeping Until Power Return' priority: AVERAGE - - expression: '{last()}=6' + expression: 'last(/APC Smart-UPS SRT 5000 SNMP/output.status[upsBasicOutputStatus])=6' name: 'UPS is Software Bypass' priority: AVERAGE - - expression: '{last()}=9' + expression: 'last(/APC Smart-UPS SRT 5000 SNMP/output.status[upsBasicOutputStatus])=9' name: 'UPS is Switched Bypass' priority: AVERAGE - - expression: '{last()}=5' + expression: 'last(/APC Smart-UPS SRT 5000 SNMP/output.status[upsBasicOutputStatus])=5' name: 'UPS is Timed Sleeping' priority: AVERAGE - @@ -480,7 +494,8 @@ zabbix_export: - 6h tags: - - tag: Status + tag: Application + value: Status - name: 'SNMP traps (fallback)' type: SNMP_TRAP @@ -492,7 +507,8 @@ zabbix_export: logtimefmt: 'hh:mm:sszyyyy/MM/dd' tags: - - tag: General + tag: Application + value: General - name: 'System contact details' type: SNMP_AGENT @@ -515,7 +531,8 @@ zabbix_export: - 1d tags: - - tag: General + tag: Application + value: General - name: 'System description' type: SNMP_AGENT @@ -537,7 +554,8 @@ zabbix_export: - 1d tags: - - tag: General + tag: Application + value: General - name: 'System location' type: SNMP_AGENT @@ -559,7 +577,8 @@ zabbix_export: - 6h tags: - - tag: General + tag: Application + value: General - name: Model type: SNMP_AGENT @@ -579,7 +598,8 @@ zabbix_export: - 6h tags: - - tag: General + tag: Application + value: General - name: 'System name' type: SNMP_AGENT @@ -602,10 +622,11 @@ zabbix_export: - 6h tags: - - tag: General + tag: Application + value: General triggers: - - expression: '{diff()}=1 and {strlen()}>0' + expression: '(last(/APC Smart-UPS SRT 5000 SNMP/system.name[sysName.0],#1)<>last(/APC Smart-UPS SRT 5000 SNMP/system.name[sysName.0],#2))=1 and length(last(/APC Smart-UPS SRT 5000 SNMP/system.name[sysName.0]))>0' name: 'System name has changed (new name: {ITEM.VALUE})' priority: INFO description: 'System name has changed. Ack to close.' @@ -634,7 +655,8 @@ zabbix_export: - 6h tags: - - tag: General + tag: Application + value: General - name: 'Serial number' type: SNMP_AGENT @@ -657,7 +679,8 @@ zabbix_export: - 6h tags: - - tag: General + tag: Application + value: General - name: Uptime type: SNMP_AGENT @@ -678,10 +701,11 @@ zabbix_export: - '0.01' tags: - - tag: Status + tag: Application + value: Status triggers: - - expression: '{last()}<10m' + expression: 'last(/APC Smart-UPS SRT 5000 SNMP/system.uptime[sysUpTime.0])<10m' name: '{HOST.NAME} has been restarted (uptime < 10m)' priority: WARNING description: 'Uptime is less than 10 minutes' @@ -689,7 +713,7 @@ zabbix_export: dependencies: - name: 'No SNMP data collection' - expression: '{APC Smart-UPS SRT 5000 SNMP bkp:zabbix[host,snmp,available].max({$SNMP.TIMEOUT})}=0' + expression: 'max(/APC Smart-UPS SRT 5000 SNMP/zabbix[host,snmp,available],{$SNMP.TIMEOUT})=0' - name: 'SNMP agent availability' type: INTERNAL @@ -704,10 +728,11 @@ zabbix_export: - 6h tags: - - tag: Status + tag: Application + value: Status triggers: - - expression: '{max({$SNMP.TIMEOUT})}=0' + expression: 'max(/APC Smart-UPS SRT 5000 SNMP/zabbix[host,snmp,available],{$SNMP.TIMEOUT})=0' name: 'No SNMP data collection' opdata: 'Current state: {ITEM.LASTVALUE1}' priority: WARNING @@ -740,7 +765,8 @@ zabbix_export: - 6h tags: - - tag: Status + tag: Application + value: Status - name: 'External battery packs discovery' type: SNMP_AGENT @@ -775,7 +801,8 @@ zabbix_export: - 6h tags: - - tag: Status + tag: Application + value: Status - name: '{#BATTERY_PACK}.{#CARTRIDGE_INDEX}: Battery pack cartridge health' type: SNMP_AGENT @@ -801,10 +828,11 @@ zabbix_export: - 6h tags: - - tag: Status + tag: Application + value: Status trigger_prototypes: - - expression: '{regexp("^(0)[0|1]{15}$")}=1' + expression: 'find(/APC Smart-UPS SRT 5000 SNMP/battery.pack.cartridge_health[upsHighPrecBatteryPackCartridgeHealth.{#BATTERY_PACK}.{#CARTRIDGE_INDEX}],,"regexp","^(0)[0|1]{15}$")=1' name: '{#BATTERY_PACK}.{#CARTRIDGE_INDEX}: Battery lifetime is not okay' opdata: 'Current bit set: {ITEM.LASTVALUE1}' priority: WARNING @@ -847,10 +875,11 @@ zabbix_export: - 6h tags: - - tag: Status + tag: Application + value: Status trigger_prototypes: - - expression: '{regexp("^(0{16})$")}=0' + expression: 'find(/APC Smart-UPS SRT 5000 SNMP/battery.pack.status[upsHighPrecBatteryPackCartridgeStatus.{#BATTERY_PACK}.{#CARTRIDGE_INDEX}],,"regexp","^(0{16})$")=0' name: '{#BATTERY_PACK}.{#CARTRIDGE_INDEX}: Battery status is not okay' opdata: 'Current bit set: {ITEM.LASTVALUE1}' priority: WARNING @@ -890,10 +919,11 @@ zabbix_export: - 6h tags: - - tag: Status + tag: Application + value: Status trigger_prototypes: - - expression: '{min({$TIME.PERIOD})} > {$BATTERY.TEMP.MAX.WARN}' + expression: 'min(/APC Smart-UPS SRT 5000 SNMP/battery.temperature[upsHighPrecBatteryPackTemperature.{#BATTERY_PACK}.{#CARTRIDGE_INDEX}],{$TIME.PERIOD}) > {$BATTERY.TEMP.MAX.WARN}' name: '{#BATTERY_PACK}.{#CARTRIDGE_INDEX}: Battery has high temperature (over {$BATTERY.TEMP.MAX.WARN}℃ for {$TIME.PERIOD})' opdata: 'Current temperature: {ITEM.LASTVALUE1}' priority: HIGH @@ -916,7 +946,8 @@ zabbix_export: - 6h tags: - - tag: General + tag: Application + value: General - name: 'External sensor port 1 discovery' type: SNMP_AGENT @@ -945,7 +976,8 @@ zabbix_export: - 6h tags: - - tag: Status + tag: Application + value: Status - name: '{#EXTERNAL_SENSOR1_NAME}: Sensor alarm status' type: SNMP_AGENT @@ -968,20 +1000,21 @@ zabbix_export: - 6h tags: - - tag: Status + tag: Application + value: Status trigger_prototypes: - - expression: '{last()}=3' + expression: 'last(/APC Smart-UPS SRT 5000 SNMP/external.sensor.status[uioSensorStatusAlarmStatus.1.{#SNMPINDEX}])=3' name: '{#EXTERNAL_SENSOR1_NAME}: Sensor has status Critical' priority: HIGH description: 'The external sensor has returned a value greater than the critical threshold.' - - expression: '{last()}=4' + expression: 'last(/APC Smart-UPS SRT 5000 SNMP/external.sensor.status[uioSensorStatusAlarmStatus.1.{#SNMPINDEX}])=4' name: '{#EXTERNAL_SENSOR1_NAME}: Sensor has status Not Applicable' priority: INFO description: 'The external sensor does not work or is not connected.' - - expression: '{last()}=2' + expression: 'last(/APC Smart-UPS SRT 5000 SNMP/external.sensor.status[uioSensorStatusAlarmStatus.1.{#SNMPINDEX}])=2' name: '{#EXTERNAL_SENSOR1_NAME}: Sensor has status Warning' priority: AVERAGE description: 'The external sensor has returned a value greater than the warning threshold.' @@ -1004,7 +1037,8 @@ zabbix_export: - 6h tags: - - tag: Status + tag: Application + value: Status overrides: - name: Temp @@ -1050,7 +1084,8 @@ zabbix_export: - 6h tags: - - tag: Status + tag: Application + value: Status - name: '{#EXTERNAL_SENSOR2_NAME}: Sensor alarm status' type: SNMP_AGENT @@ -1073,20 +1108,21 @@ zabbix_export: - 6h tags: - - tag: Status + tag: Application + value: Status trigger_prototypes: - - expression: '{last()}=3' + expression: 'last(/APC Smart-UPS SRT 5000 SNMP/external.sensor.status[uioSensorStatusAlarmStatus.2.{#SNMPINDEX}])=3' name: '{#EXTERNAL_SENSOR2_NAME}: Sensor has status Critical' priority: HIGH description: 'The external sensor has returned a value greater than the critical threshold.' - - expression: '{last()}=4' + expression: 'last(/APC Smart-UPS SRT 5000 SNMP/external.sensor.status[uioSensorStatusAlarmStatus.2.{#SNMPINDEX}])=4' name: '{#EXTERNAL_SENSOR2_NAME}: Sensor has status Not Applicable' priority: INFO description: 'The external sensor does not work or is not connected.' - - expression: '{last()}=2' + expression: 'last(/APC Smart-UPS SRT 5000 SNMP/external.sensor.status[uioSensorStatusAlarmStatus.2.{#SNMPINDEX}])=2' name: '{#EXTERNAL_SENSOR2_NAME}: Sensor has status Warning' priority: AVERAGE description: 'The external sensor has returned a value greater than the warning threshold.' @@ -1109,7 +1145,8 @@ zabbix_export: - 6h tags: - - tag: Status + tag: Application + value: Status overrides: - name: Temp @@ -1158,7 +1195,8 @@ zabbix_export: - 6h tags: - - tag: Status + tag: Application + value: Status - name: '{#PHASEINDEX}: Phase input voltage' type: SNMP_AGENT @@ -1178,10 +1216,11 @@ zabbix_export: - 6h tags: - - tag: Status + tag: Application + value: Status trigger_prototypes: - - expression: '{min({$TIME.PERIOD})} > {$UPS.INPUT_VOLT.MAX.WARN} or {max({$TIME.PERIOD})} < {$UPS.INPUT_VOLT.MIN.WARN}' + expression: 'min(/APC Smart-UPS SRT 5000 SNMP/phase.input.voltage[upsPhaseInputVoltage.1.1.{#PHASEINDEX}],{$TIME.PERIOD}) > {$UPS.INPUT_VOLT.MAX.WARN} or max(/APC Smart-UPS SRT 5000 SNMP/phase.input.voltage[upsPhaseInputVoltage.1.1.{#PHASEINDEX}],{$TIME.PERIOD}) < {$UPS.INPUT_VOLT.MIN.WARN}' name: '{#PHASEINDEX}: Unacceptable phase {#PHASEINDEX} input voltage (out of range {$UPS.INPUT_VOLT.MIN.WARN}-{$UPS.INPUT_VOLT.MAX.WARN}V for {$TIME.PERIOD})' opdata: 'Current phase {#PHASEINDEX} voltage: {ITEM.LASTVALUE1}' priority: HIGH @@ -1217,7 +1256,8 @@ zabbix_export: - 6h tags: - - tag: Status + tag: Application + value: Status - name: '{#PHASEINDEX}: Phase output load, %' type: SNMP_AGENT @@ -1238,7 +1278,8 @@ zabbix_export: - 6h tags: - - tag: Status + tag: Application + value: Status - name: '{#PHASEINDEX}: Phase output voltage' type: SNMP_AGENT @@ -1258,10 +1299,11 @@ zabbix_export: - 6h tags: - - tag: Status + tag: Application + value: Status trigger_prototypes: - - expression: '{min({$TIME.PERIOD})} > {$UPS.INPUT_VOLT.MAX.WARN} or {max({$TIME.PERIOD})} < {$UPS.INPUT_VOLT.MIN.WARN}' + expression: 'min(/APC Smart-UPS SRT 5000 SNMP/phase.output.voltage[upsPhaseOutputVoltage.1.1.{#PHASEINDEX}],{$TIME.PERIOD}) > {$UPS.INPUT_VOLT.MAX.WARN} or max(/APC Smart-UPS SRT 5000 SNMP/phase.output.voltage[upsPhaseOutputVoltage.1.1.{#PHASEINDEX}],{$TIME.PERIOD}) < {$UPS.INPUT_VOLT.MIN.WARN}' name: '{#PHASEINDEX}: Unacceptable phase {#PHASEINDEX} output voltage (out of range {$UPS.INPUT_VOLT.MIN.WARN}-{$UPS.INPUT_VOLT.MAX.WARN}V for {$TIME.PERIOD})' opdata: 'Current phase {#PHASEINDEX} voltage: {ITEM.LASTVALUE1}' priority: HIGH @@ -1314,18 +1356,18 @@ zabbix_export: fields: - type: INTEGER - name: show_as_html - value: '0' - - - type: INTEGER name: show_lines value: '1' - + type: INTEGER + name: show_as_html + value: '0' + - type: ITEM name: itemids value: key: 'system.uptime[sysUpTime.0]' - host: 'APC Smart-UPS SRT 5000 SNMP bkp' + host: 'APC Smart-UPS SRT 5000 SNMP' - type: PLAIN_TEXT x: '8' @@ -1333,18 +1375,18 @@ zabbix_export: fields: - type: INTEGER - name: show_as_html - value: '0' - - - type: INTEGER name: show_lines value: '1' - + type: INTEGER + name: show_as_html + value: '0' + - type: ITEM name: itemids value: key: 'input.fail[upsAdvInputLineFailCause]' - host: 'APC Smart-UPS SRT 5000 SNMP bkp' + host: 'APC Smart-UPS SRT 5000 SNMP' - type: PLAIN_TEXT x: '16' @@ -1352,18 +1394,18 @@ zabbix_export: fields: - type: INTEGER - name: show_as_html - value: '0' - - - type: INTEGER name: show_lines value: '1' - + type: INTEGER + name: show_as_html + value: '0' + - type: ITEM name: itemids value: key: 'output.status[upsBasicOutputStatus]' - host: 'APC Smart-UPS SRT 5000 SNMP bkp' + host: 'APC Smart-UPS SRT 5000 SNMP' - type: PLAIN_TEXT 'y': '2' @@ -1371,18 +1413,18 @@ zabbix_export: fields: - type: INTEGER - name: show_as_html - value: '0' - - - type: INTEGER name: show_lines value: '1' - + type: INTEGER + name: show_as_html + value: '0' + - type: ITEM name: itemids value: key: 'battery.status[upsBasicBatteryStatus]' - host: 'APC Smart-UPS SRT 5000 SNMP bkp' + host: 'APC Smart-UPS SRT 5000 SNMP' - type: PLAIN_TEXT x: '8' @@ -1391,18 +1433,18 @@ zabbix_export: fields: - type: INTEGER - name: show_as_html - value: '0' - - - type: INTEGER name: show_lines value: '1' - + type: INTEGER + name: show_as_html + value: '0' + - type: ITEM name: itemids value: key: 'battery.runtime_remaining[upsAdvBatteryRunTimeRemaining]' - host: 'APC Smart-UPS SRT 5000 SNMP bkp' + host: 'APC Smart-UPS SRT 5000 SNMP' - type: PLAIN_TEXT x: '16' @@ -1411,18 +1453,18 @@ zabbix_export: fields: - type: INTEGER - name: show_as_html - value: '0' - - - type: INTEGER name: show_lines value: '1' - + type: INTEGER + name: show_as_html + value: '0' + - type: ITEM name: itemids value: key: 'battery.last_replace_date[upsBasicBatteryLastReplaceDate]' - host: 'APC Smart-UPS SRT 5000 SNMP bkp' + host: 'APC Smart-UPS SRT 5000 SNMP' - type: GRAPH_CLASSIC 'y': '4' @@ -1438,7 +1480,7 @@ zabbix_export: name: graphid value: name: 'Capacity of the UPS batteries' - host: 'APC Smart-UPS SRT 5000 SNMP bkp' + host: 'APC Smart-UPS SRT 5000 SNMP' - type: GRAPH_CLASSIC x: '8' @@ -1455,7 +1497,7 @@ zabbix_export: name: graphid value: name: Voltage - host: 'APC Smart-UPS SRT 5000 SNMP bkp' + host: 'APC Smart-UPS SRT 5000 SNMP' - type: GRAPH_CLASSIC x: '16' @@ -1472,7 +1514,7 @@ zabbix_export: name: graphid value: name: Output - host: 'APC Smart-UPS SRT 5000 SNMP bkp' + host: 'APC Smart-UPS SRT 5000 SNMP' valuemaps: - name: 'PowerNet-MIB::uioSensorStatusAlarmStatus' @@ -1647,7 +1689,7 @@ zabbix_export: - color: 1A7C11 item: - host: 'APC Smart-UPS SRT 5000 SNMP bkp' + host: 'APC Smart-UPS SRT 5000 SNMP' key: 'battery.capacity[upsHighPrecBatteryCapacity]' - name: Output @@ -1655,13 +1697,13 @@ zabbix_export: - color: 1A7C11 item: - host: 'APC Smart-UPS SRT 5000 SNMP bkp' + host: 'APC Smart-UPS SRT 5000 SNMP' key: 'output.current[upsHighPrecOutputCurrent]' - sortorder: '1' color: 2774A4 item: - host: 'APC Smart-UPS SRT 5000 SNMP bkp' + host: 'APC Smart-UPS SRT 5000 SNMP' key: 'output.load[upsHighPrecOutputLoad]' - name: Voltage @@ -1669,11 +1711,11 @@ zabbix_export: - color: 1A7C11 item: - host: 'APC Smart-UPS SRT 5000 SNMP bkp' + host: 'APC Smart-UPS SRT 5000 SNMP' key: 'input.voltage[upsHighPrecInputLineVoltage]' - sortorder: '1' color: 2774A4 item: - host: 'APC Smart-UPS SRT 5000 SNMP bkp' + host: 'APC Smart-UPS SRT 5000 SNMP' key: 'output.voltage[upsHighPrecOutputVoltage]' diff --git a/templates/power/apc/apc_ups_smart_srt_8000_snmp/template_power_apc_ups_smart_srt_8000_snmp.yaml b/templates/power/apc/apc_ups_smart_srt_8000_snmp/template_power_apc_ups_smart_srt_8000_snmp.yaml index cc083b22b4b..c86e54198e6 100644 --- a/templates/power/apc/apc_ups_smart_srt_8000_snmp/template_power_apc_ups_smart_srt_8000_snmp.yaml +++ b/templates/power/apc/apc_ups_smart_srt_8000_snmp/template_power_apc_ups_smart_srt_8000_snmp.yaml @@ -1,6 +1,6 @@ zabbix_export: version: '5.4' - date: '2021-04-15T12:11:21Z' + date: '2021-05-09T00:00:00Z' groups: - name: Templates/Power @@ -48,7 +48,7 @@ zabbix_export: tag: Status triggers: - - expression: '{last()} < {$BATTERY.CAPACITY.MIN.WARN}' + expression: 'last(/APC Smart-UPS SRT 8000 SNMP/battery.capacity[upsHighPrecBatteryCapacity]) < {$BATTERY.CAPACITY.MIN.WARN}' name: 'Battery has low capacity (below {$BATTERY.CAPACITY.MIN.WARN}%)' opdata: 'Current capacity: {ITEM.LASTVALUE1}' priority: HIGH @@ -117,7 +117,7 @@ zabbix_export: tag: Status triggers: - - expression: '{last()}=2' + expression: 'last(/APC Smart-UPS SRT 8000 SNMP/battery.replace_indicator[upsAdvBatteryReplaceIndicator])=2' name: 'Battery needs replacement' priority: HIGH description: 'A battery installed has an internal error condition.' @@ -172,12 +172,12 @@ zabbix_export: tag: Status triggers: - - expression: '{last()}=4' + expression: 'last(/APC Smart-UPS SRT 8000 SNMP/battery.status[upsBasicBatteryStatus])=4' name: 'Battery has an internal error condition' priority: AVERAGE description: 'A battery installed has an internal error condition.' - - expression: '{last()}=3' + expression: 'last(/APC Smart-UPS SRT 8000 SNMP/battery.status[upsBasicBatteryStatus])=3' name: 'Battery is Low' priority: AVERAGE description: 'The UPS will be unable to sustain the current load, and its services will be lost if power is not restored.' @@ -207,7 +207,7 @@ zabbix_export: tag: Status triggers: - - expression: '{min({$TIME.PERIOD})} > {$BATTERY.TEMP.MAX.WARN}' + expression: 'min(/APC Smart-UPS SRT 8000 SNMP/battery.temperature[upsHighPrecBatteryTemperature],{$TIME.PERIOD}) > {$BATTERY.TEMP.MAX.WARN}' name: 'Battery has high temperature (over {$BATTERY.TEMP.MAX.WARN}℃ for {$TIME.PERIOD})' opdata: 'Current temperature: {ITEM.LASTVALUE1}' priority: HIGH @@ -301,7 +301,7 @@ zabbix_export: tag: Status triggers: - - expression: '{min({$TIME.PERIOD})} > 0 and ({min({$TIME.PERIOD})} > {$UPS.INPUT_FREQ.MAX.WARN} or {max({$TIME.PERIOD})} < {$UPS.INPUT_FREQ.MIN.WARN})' + expression: 'min(/APC Smart-UPS SRT 8000 SNMP/input.frequency[upsHighPrecInputFrequency],{$TIME.PERIOD}) > 0 and (min(/APC Smart-UPS SRT 8000 SNMP/input.frequency[upsHighPrecInputFrequency],{$TIME.PERIOD}) > {$UPS.INPUT_FREQ.MAX.WARN} or max(/APC Smart-UPS SRT 8000 SNMP/input.frequency[upsHighPrecInputFrequency],{$TIME.PERIOD}) < {$UPS.INPUT_FREQ.MIN.WARN})' name: 'Unacceptable input frequency (out of range {$UPS.INPUT_FREQ.MIN.WARN}-{$UPS.INPUT_FREQ.MAX.WARN}Hz for {$TIME.PERIOD})' opdata: 'Current frequency: {ITEM.LASTVALUE1}' priority: HIGH @@ -330,7 +330,7 @@ zabbix_export: tag: Status triggers: - - expression: '{min({$TIME.PERIOD})} > 0 and ({min({$TIME.PERIOD})} > {$UPS.INPUT_VOLT.MAX.WARN} or {max({$TIME.PERIOD})} < {$UPS.INPUT_VOLT.MIN.WARN})' + expression: 'min(/APC Smart-UPS SRT 8000 SNMP/input.voltage[upsHighPrecInputLineVoltage],{$TIME.PERIOD}) > 0 and (min(/APC Smart-UPS SRT 8000 SNMP/input.voltage[upsHighPrecInputLineVoltage],{$TIME.PERIOD}) > {$UPS.INPUT_VOLT.MAX.WARN} or max(/APC Smart-UPS SRT 8000 SNMP/input.voltage[upsHighPrecInputLineVoltage],{$TIME.PERIOD}) < {$UPS.INPUT_VOLT.MIN.WARN})' name: 'Unacceptable input voltage (out of range {$UPS.INPUT_VOLT.MIN.WARN}-{$UPS.INPUT_VOLT.MAX.WARN}V for {$TIME.PERIOD})' opdata: 'Current voltage: {ITEM.LASTVALUE1}' priority: HIGH @@ -383,7 +383,7 @@ zabbix_export: tag: Status triggers: - - expression: '{min({$TIME.PERIOD})} > {$UPS.OUTPUT.MAX.WARN}' + expression: 'min(/APC Smart-UPS SRT 8000 SNMP/output.load[upsHighPrecOutputLoad],{$TIME.PERIOD}) > {$UPS.OUTPUT.MAX.WARN}' name: 'Output load is high (over {$UPS.OUTPUT.MAX.WARN}% for {$TIME.PERIOD})' opdata: 'Current load: {ITEM.LASTVALUE1}' priority: HIGH @@ -415,47 +415,47 @@ zabbix_export: tag: Status triggers: - - expression: '{last()}=16' + expression: 'last(/APC Smart-UPS SRT 8000 SNMP/output.status[upsBasicOutputStatus])=16' name: 'UPS is Emergency Static Bypass' priority: AVERAGE - - expression: '{last()}=10' + expression: 'last(/APC Smart-UPS SRT 8000 SNMP/output.status[upsBasicOutputStatus])=10' name: 'UPS is Hardware Failure Bypass' priority: AVERAGE - - expression: '{last()}=7' + expression: 'last(/APC Smart-UPS SRT 8000 SNMP/output.status[upsBasicOutputStatus])=7' name: 'UPS is Off' priority: AVERAGE - - expression: '{last()}=3' + expression: 'last(/APC Smart-UPS SRT 8000 SNMP/output.status[upsBasicOutputStatus])=3' name: 'UPS is on battery' priority: AVERAGE - - expression: '{last()}=4' + expression: 'last(/APC Smart-UPS SRT 8000 SNMP/output.status[upsBasicOutputStatus])=4' name: 'UPS is on Smart Boost' priority: AVERAGE - - expression: '{last()}=12' + expression: 'last(/APC Smart-UPS SRT 8000 SNMP/output.status[upsBasicOutputStatus])=12' name: 'UPS is On Smart Trim' priority: AVERAGE - - expression: '{last()}=8' + expression: 'last(/APC Smart-UPS SRT 8000 SNMP/output.status[upsBasicOutputStatus])=8' name: 'UPS is Rebooting' priority: AVERAGE - - expression: '{last()}=11' + expression: 'last(/APC Smart-UPS SRT 8000 SNMP/output.status[upsBasicOutputStatus])=11' name: 'UPS is Sleeping Until Power Return' priority: AVERAGE - - expression: '{last()}=6' + expression: 'last(/APC Smart-UPS SRT 8000 SNMP/output.status[upsBasicOutputStatus])=6' name: 'UPS is Software Bypass' priority: AVERAGE - - expression: '{last()}=9' + expression: 'last(/APC Smart-UPS SRT 8000 SNMP/output.status[upsBasicOutputStatus])=9' name: 'UPS is Switched Bypass' priority: AVERAGE - - expression: '{last()}=5' + expression: 'last(/APC Smart-UPS SRT 8000 SNMP/output.status[upsBasicOutputStatus])=5' name: 'UPS is Timed Sleeping' priority: AVERAGE - @@ -605,7 +605,7 @@ zabbix_export: tag: General triggers: - - expression: '{diff()}=1 and {strlen()}>0' + expression: '(last(/APC Smart-UPS SRT 8000 SNMP/system.name[sysName.0],#1)<>last(/APC Smart-UPS SRT 8000 SNMP/system.name[sysName.0],#2))=1 and length(last(/APC Smart-UPS SRT 8000 SNMP/system.name[sysName.0]))>0' name: 'System name has changed (new name: {ITEM.VALUE})' priority: INFO description: 'System name has changed. Ack to close.' @@ -681,7 +681,7 @@ zabbix_export: tag: Status triggers: - - expression: '{last()}<10m' + expression: 'last(/APC Smart-UPS SRT 8000 SNMP/system.uptime[sysUpTime.0])<10m' name: '{HOST.NAME} has been restarted (uptime < 10m)' priority: WARNING description: 'Uptime is less than 10 minutes' @@ -689,7 +689,7 @@ zabbix_export: dependencies: - name: 'No SNMP data collection' - expression: '{APC Smart-UPS SRT 8000 SNMP:zabbix[host,snmp,available].max({$SNMP.TIMEOUT})}=0' + expression: 'max(/APC Smart-UPS SRT 8000 SNMP/zabbix[host,snmp,available],{$SNMP.TIMEOUT})=0' - name: 'SNMP agent availability' type: INTERNAL @@ -707,7 +707,7 @@ zabbix_export: tag: Status triggers: - - expression: '{max({$SNMP.TIMEOUT})}=0' + expression: 'max(/APC Smart-UPS SRT 8000 SNMP/zabbix[host,snmp,available],{$SNMP.TIMEOUT})=0' name: 'No SNMP data collection' opdata: 'Current state: {ITEM.LASTVALUE1}' priority: WARNING @@ -804,7 +804,7 @@ zabbix_export: tag: Status trigger_prototypes: - - expression: '{regexp("^(0)[0|1]{15}$")}=1' + expression: 'find(/APC Smart-UPS SRT 8000 SNMP/battery.pack.cartridge_health[upsHighPrecBatteryPackCartridgeHealth.{#BATTERY_PACK}.{#CARTRIDGE_INDEX}],,"regexp","^(0)[0|1]{15}$")=1' name: '{#BATTERY_PACK}.{#CARTRIDGE_INDEX}: Battery lifetime is not okay' opdata: 'Current bit set: {ITEM.LASTVALUE1}' priority: WARNING @@ -850,7 +850,7 @@ zabbix_export: tag: Status trigger_prototypes: - - expression: '{regexp("^(0{16})$")}=0' + expression: 'find(/APC Smart-UPS SRT 8000 SNMP/battery.pack.status[upsHighPrecBatteryPackCartridgeStatus.{#BATTERY_PACK}.{#CARTRIDGE_INDEX}],,"regexp","^(0{16})$")=0' name: '{#BATTERY_PACK}.{#CARTRIDGE_INDEX}: Battery status is not okay' opdata: 'Current bit set: {ITEM.LASTVALUE1}' priority: WARNING @@ -893,7 +893,7 @@ zabbix_export: tag: Status trigger_prototypes: - - expression: '{min({$TIME.PERIOD})} > {$BATTERY.TEMP.MAX.WARN}' + expression: 'min(/APC Smart-UPS SRT 8000 SNMP/battery.temperature[upsHighPrecBatteryPackTemperature.{#BATTERY_PACK}.{#CARTRIDGE_INDEX}],{$TIME.PERIOD}) > {$BATTERY.TEMP.MAX.WARN}' name: '{#BATTERY_PACK}.{#CARTRIDGE_INDEX}: Battery has high temperature (over {$BATTERY.TEMP.MAX.WARN}℃ for {$TIME.PERIOD})' opdata: 'Current temperature: {ITEM.LASTVALUE1}' priority: HIGH @@ -971,17 +971,17 @@ zabbix_export: tag: Status trigger_prototypes: - - expression: '{last()}=3' + expression: 'last(/APC Smart-UPS SRT 8000 SNMP/external.sensor.status[uioSensorStatusAlarmStatus.1.{#SNMPINDEX}])=3' name: '{#EXTERNAL_SENSOR1_NAME}: Sensor has status Critical' priority: HIGH description: 'The external sensor has returned a value greater than the critical threshold.' - - expression: '{last()}=4' + expression: 'last(/APC Smart-UPS SRT 8000 SNMP/external.sensor.status[uioSensorStatusAlarmStatus.1.{#SNMPINDEX}])=4' name: '{#EXTERNAL_SENSOR1_NAME}: Sensor has status Not Applicable' priority: INFO description: 'The external sensor does not work or is not connected.' - - expression: '{last()}=2' + expression: 'last(/APC Smart-UPS SRT 8000 SNMP/external.sensor.status[uioSensorStatusAlarmStatus.1.{#SNMPINDEX}])=2' name: '{#EXTERNAL_SENSOR1_NAME}: Sensor has status Warning' priority: AVERAGE description: 'The external sensor has returned a value greater than the warning threshold.' @@ -1076,17 +1076,17 @@ zabbix_export: tag: Status trigger_prototypes: - - expression: '{last()}=3' + expression: 'last(/APC Smart-UPS SRT 8000 SNMP/external.sensor.status[uioSensorStatusAlarmStatus.2.{#SNMPINDEX}])=3' name: '{#EXTERNAL_SENSOR2_NAME}: Sensor has status Critical' priority: HIGH description: 'The external sensor has returned a value greater than the critical threshold.' - - expression: '{last()}=4' + expression: 'last(/APC Smart-UPS SRT 8000 SNMP/external.sensor.status[uioSensorStatusAlarmStatus.2.{#SNMPINDEX}])=4' name: '{#EXTERNAL_SENSOR2_NAME}: Sensor has status Not Applicable' priority: INFO description: 'The external sensor does not work or is not connected.' - - expression: '{last()}=2' + expression: 'last(/APC Smart-UPS SRT 8000 SNMP/external.sensor.status[uioSensorStatusAlarmStatus.2.{#SNMPINDEX}])=2' name: '{#EXTERNAL_SENSOR2_NAME}: Sensor has status Warning' priority: AVERAGE description: 'The external sensor has returned a value greater than the warning threshold.' @@ -1181,7 +1181,7 @@ zabbix_export: tag: Status trigger_prototypes: - - expression: '{min({$TIME.PERIOD})} > {$UPS.INPUT_VOLT.MAX.WARN} or {max({$TIME.PERIOD})} < {$UPS.INPUT_VOLT.MIN.WARN}' + expression: 'min(/APC Smart-UPS SRT 8000 SNMP/phase.input.voltage[upsPhaseInputVoltage.1.1.{#PHASEINDEX}],{$TIME.PERIOD}) > {$UPS.INPUT_VOLT.MAX.WARN} or max(/APC Smart-UPS SRT 8000 SNMP/phase.input.voltage[upsPhaseInputVoltage.1.1.{#PHASEINDEX}],{$TIME.PERIOD}) < {$UPS.INPUT_VOLT.MIN.WARN}' name: '{#PHASEINDEX}: Unacceptable phase {#PHASEINDEX} input voltage (out of range {$UPS.INPUT_VOLT.MIN.WARN}-{$UPS.INPUT_VOLT.MAX.WARN}V for {$TIME.PERIOD})' opdata: 'Current phase {#PHASEINDEX} voltage: {ITEM.LASTVALUE1}' priority: HIGH @@ -1261,7 +1261,7 @@ zabbix_export: tag: Status trigger_prototypes: - - expression: '{min({$TIME.PERIOD})} > {$UPS.INPUT_VOLT.MAX.WARN} or {max({$TIME.PERIOD})} < {$UPS.INPUT_VOLT.MIN.WARN}' + expression: 'min(/APC Smart-UPS SRT 8000 SNMP/phase.output.voltage[upsPhaseOutputVoltage.1.1.{#PHASEINDEX}],{$TIME.PERIOD}) > {$UPS.INPUT_VOLT.MAX.WARN} or max(/APC Smart-UPS SRT 8000 SNMP/phase.output.voltage[upsPhaseOutputVoltage.1.1.{#PHASEINDEX}],{$TIME.PERIOD}) < {$UPS.INPUT_VOLT.MIN.WARN}' name: '{#PHASEINDEX}: Unacceptable phase {#PHASEINDEX} output voltage (out of range {$UPS.INPUT_VOLT.MIN.WARN}-{$UPS.INPUT_VOLT.MAX.WARN}V for {$TIME.PERIOD})' opdata: 'Current phase {#PHASEINDEX} voltage: {ITEM.LASTVALUE1}' priority: HIGH @@ -1302,177 +1302,6 @@ zabbix_export: macro: '{$UPS.OUTPUT.MAX.WARN}' value: '80' description: 'Maximum output load in % for trigger expression.' - dashboards: - - - name: 'UPS Summary' - pages: - - - widgets: - - - type: PLAIN_TEXT - width: '8' - fields: - - - type: INTEGER - name: show_as_html - value: '0' - - - type: INTEGER - name: show_lines - value: '1' - - - type: ITEM - name: itemids - value: - key: 'system.uptime[sysUpTime.0]' - host: 'APC Smart-UPS SRT 8000 SNMP' - - - type: PLAIN_TEXT - x: '8' - width: '8' - fields: - - - type: INTEGER - name: show_as_html - value: '0' - - - type: INTEGER - name: show_lines - value: '1' - - - type: ITEM - name: itemids - value: - key: 'input.fail[upsAdvInputLineFailCause]' - host: 'APC Smart-UPS SRT 8000 SNMP' - - - type: PLAIN_TEXT - x: '16' - width: '8' - fields: - - - type: INTEGER - name: show_as_html - value: '0' - - - type: INTEGER - name: show_lines - value: '1' - - - type: ITEM - name: itemids - value: - key: 'output.status[upsBasicOutputStatus]' - host: 'APC Smart-UPS SRT 8000 SNMP' - - - type: PLAIN_TEXT - 'y': '2' - width: '8' - fields: - - - type: INTEGER - name: show_as_html - value: '0' - - - type: INTEGER - name: show_lines - value: '1' - - - type: ITEM - name: itemids - value: - key: 'battery.status[upsBasicBatteryStatus]' - host: 'APC Smart-UPS SRT 8000 SNMP' - - - type: PLAIN_TEXT - x: '8' - 'y': '2' - width: '8' - fields: - - - type: INTEGER - name: show_as_html - value: '0' - - - type: INTEGER - name: show_lines - value: '1' - - - type: ITEM - name: itemids - value: - key: 'battery.runtime_remaining[upsAdvBatteryRunTimeRemaining]' - host: 'APC Smart-UPS SRT 8000 SNMP' - - - type: PLAIN_TEXT - x: '16' - 'y': '2' - width: '8' - fields: - - - type: INTEGER - name: show_as_html - value: '0' - - - type: INTEGER - name: show_lines - value: '1' - - - type: ITEM - name: itemids - value: - key: 'battery.last_replace_date[upsBasicBatteryLastReplaceDate]' - host: 'APC Smart-UPS SRT 8000 SNMP' - - - type: GRAPH_CLASSIC - 'y': '4' - width: '8' - height: '7' - fields: - - - type: INTEGER - name: source_type - value: '0' - - - type: GRAPH - name: graphid - value: - name: 'Capacity of the UPS batteries' - host: 'APC Smart-UPS SRT 8000 SNMP' - - - type: GRAPH_CLASSIC - x: '8' - 'y': '4' - width: '8' - height: '7' - fields: - - - type: INTEGER - name: source_type - value: '0' - - - type: GRAPH - name: graphid - value: - name: Voltage - host: 'APC Smart-UPS SRT 8000 SNMP' - - - type: GRAPH_CLASSIC - x: '16' - 'y': '4' - width: '8' - height: '7' - fields: - - - type: INTEGER - name: source_type - value: '0' - - - type: GRAPH - name: graphid - value: - name: Output - host: 'APC Smart-UPS SRT 8000 SNMP' valuemaps: - name: 'PowerNet-MIB::uioSensorStatusAlarmStatus' diff --git a/templates/power/apc/apc_ups_snmp/template_power_apc_ups_snmp.yaml b/templates/power/apc/apc_ups_snmp/template_power_apc_ups_snmp.yaml index 4ae8fb37a31..7f118bc6481 100644 --- a/templates/power/apc/apc_ups_snmp/template_power_apc_ups_snmp.yaml +++ b/templates/power/apc/apc_ups_snmp/template_power_apc_ups_snmp.yaml @@ -1,6 +1,6 @@ zabbix_export: version: '5.4' - date: '2021-04-15T12:15:56Z' + date: '2021-05-09T00:00:00Z' groups: - name: Templates/Power @@ -48,7 +48,7 @@ zabbix_export: tag: Status triggers: - - expression: '{last()} < {$BATTERY.CAPACITY.MIN.WARN}' + expression: 'last(/APC UPS SNMP/battery.capacity[upsHighPrecBatteryCapacity]) < {$BATTERY.CAPACITY.MIN.WARN}' name: 'Battery has low capacity (below {$BATTERY.CAPACITY.MIN.WARN}%)' opdata: 'Current capacity: {ITEM.LASTVALUE1}' priority: HIGH @@ -117,7 +117,7 @@ zabbix_export: tag: Status triggers: - - expression: '{last()}=2' + expression: 'last(/APC UPS SNMP/battery.replace_indicator[upsAdvBatteryReplaceIndicator])=2' name: 'Battery needs replacement' priority: HIGH description: 'A battery installed has an internal error condition.' @@ -172,12 +172,12 @@ zabbix_export: tag: Status triggers: - - expression: '{last()}=4' + expression: 'last(/APC UPS SNMP/battery.status[upsBasicBatteryStatus])=4' name: 'Battery has an internal error condition' priority: AVERAGE description: 'A battery installed has an internal error condition.' - - expression: '{last()}=3' + expression: 'last(/APC UPS SNMP/battery.status[upsBasicBatteryStatus])=3' name: 'Battery is Low' priority: AVERAGE description: 'The UPS will be unable to sustain the current load, and its services will be lost if power is not restored.' @@ -207,7 +207,7 @@ zabbix_export: tag: Status triggers: - - expression: '{min({$TIME.PERIOD})} > {$BATTERY.TEMP.MAX.WARN}' + expression: 'min(/APC UPS SNMP/battery.temperature[upsHighPrecBatteryTemperature],{$TIME.PERIOD}) > {$BATTERY.TEMP.MAX.WARN}' name: 'Battery has high temperature (over {$BATTERY.TEMP.MAX.WARN}℃ for {$TIME.PERIOD})' opdata: 'Current temperature: {ITEM.LASTVALUE1}' priority: HIGH @@ -301,7 +301,7 @@ zabbix_export: tag: Status triggers: - - expression: '{min({$TIME.PERIOD})} > 0 and ({min({$TIME.PERIOD})} > {$UPS.INPUT_FREQ.MAX.WARN} or {max({$TIME.PERIOD})} < {$UPS.INPUT_FREQ.MIN.WARN})' + expression: 'min(/APC UPS SNMP/input.frequency[upsHighPrecInputFrequency],{$TIME.PERIOD}) > 0 and (min(/APC UPS SNMP/input.frequency[upsHighPrecInputFrequency],{$TIME.PERIOD}) > {$UPS.INPUT_FREQ.MAX.WARN} or max(/APC UPS SNMP/input.frequency[upsHighPrecInputFrequency],{$TIME.PERIOD}) < {$UPS.INPUT_FREQ.MIN.WARN})' name: 'Unacceptable input frequency (out of range {$UPS.INPUT_FREQ.MIN.WARN}-{$UPS.INPUT_FREQ.MAX.WARN}Hz for {$TIME.PERIOD})' opdata: 'Current frequency: {ITEM.LASTVALUE1}' priority: HIGH @@ -330,7 +330,7 @@ zabbix_export: tag: Status triggers: - - expression: '{min({$TIME.PERIOD})} > 0 and ({min({$TIME.PERIOD})} > {$UPS.INPUT_VOLT.MAX.WARN} or {max({$TIME.PERIOD})} < {$UPS.INPUT_VOLT.MIN.WARN})' + expression: 'min(/APC UPS SNMP/input.voltage[upsHighPrecInputLineVoltage],{$TIME.PERIOD}) > 0 and (min(/APC UPS SNMP/input.voltage[upsHighPrecInputLineVoltage],{$TIME.PERIOD}) > {$UPS.INPUT_VOLT.MAX.WARN} or max(/APC UPS SNMP/input.voltage[upsHighPrecInputLineVoltage],{$TIME.PERIOD}) < {$UPS.INPUT_VOLT.MIN.WARN})' name: 'Unacceptable input voltage (out of range {$UPS.INPUT_VOLT.MIN.WARN}-{$UPS.INPUT_VOLT.MAX.WARN}V for {$TIME.PERIOD})' opdata: 'Current voltage: {ITEM.LASTVALUE1}' priority: HIGH @@ -383,7 +383,7 @@ zabbix_export: tag: Status triggers: - - expression: '{min({$TIME.PERIOD})} > {$UPS.OUTPUT.MAX.WARN}' + expression: 'min(/APC UPS SNMP/output.load[upsHighPrecOutputLoad],{$TIME.PERIOD}) > {$UPS.OUTPUT.MAX.WARN}' name: 'Output load is high (over {$UPS.OUTPUT.MAX.WARN}% for {$TIME.PERIOD})' opdata: 'Current load: {ITEM.LASTVALUE1}' priority: HIGH @@ -415,47 +415,47 @@ zabbix_export: tag: Status triggers: - - expression: '{last()}=16' + expression: 'last(/APC UPS SNMP/output.status[upsBasicOutputStatus])=16' name: 'UPS is Emergency Static Bypass' priority: AVERAGE - - expression: '{last()}=10' + expression: 'last(/APC UPS SNMP/output.status[upsBasicOutputStatus])=10' name: 'UPS is Hardware Failure Bypass' priority: AVERAGE - - expression: '{last()}=7' + expression: 'last(/APC UPS SNMP/output.status[upsBasicOutputStatus])=7' name: 'UPS is Off' priority: AVERAGE - - expression: '{last()}=3' + expression: 'last(/APC UPS SNMP/output.status[upsBasicOutputStatus])=3' name: 'UPS is on battery' priority: AVERAGE - - expression: '{last()}=4' + expression: 'last(/APC UPS SNMP/output.status[upsBasicOutputStatus])=4' name: 'UPS is on Smart Boost' priority: AVERAGE - - expression: '{last()}=12' + expression: 'last(/APC UPS SNMP/output.status[upsBasicOutputStatus])=12' name: 'UPS is On Smart Trim' priority: AVERAGE - - expression: '{last()}=8' + expression: 'last(/APC UPS SNMP/output.status[upsBasicOutputStatus])=8' name: 'UPS is Rebooting' priority: AVERAGE - - expression: '{last()}=11' + expression: 'last(/APC UPS SNMP/output.status[upsBasicOutputStatus])=11' name: 'UPS is Sleeping Until Power Return' priority: AVERAGE - - expression: '{last()}=6' + expression: 'last(/APC UPS SNMP/output.status[upsBasicOutputStatus])=6' name: 'UPS is Software Bypass' priority: AVERAGE - - expression: '{last()}=9' + expression: 'last(/APC UPS SNMP/output.status[upsBasicOutputStatus])=9' name: 'UPS is Switched Bypass' priority: AVERAGE - - expression: '{last()}=5' + expression: 'last(/APC UPS SNMP/output.status[upsBasicOutputStatus])=5' name: 'UPS is Timed Sleeping' priority: AVERAGE - @@ -605,7 +605,7 @@ zabbix_export: tag: General triggers: - - expression: '{diff()}=1 and {strlen()}>0' + expression: '(last(/APC UPS SNMP/system.name[sysName.0],#1)<>last(/APC UPS SNMP/system.name[sysName.0],#2))=1 and length(last(/APC UPS SNMP/system.name[sysName.0]))>0' name: 'System name has changed (new name: {ITEM.VALUE})' priority: INFO description: 'System name has changed. Ack to close.' @@ -681,7 +681,7 @@ zabbix_export: tag: Status triggers: - - expression: '{last()}<10m' + expression: 'last(/APC UPS SNMP/system.uptime[sysUpTime.0])<10m' name: '{HOST.NAME} has been restarted (uptime < 10m)' priority: WARNING description: 'Uptime is less than 10 minutes' @@ -689,7 +689,7 @@ zabbix_export: dependencies: - name: 'No SNMP data collection' - expression: '{APC UPS SNMP:zabbix[host,snmp,available].max({$SNMP.TIMEOUT})}=0' + expression: 'max(/APC UPS SNMP/zabbix[host,snmp,available],{$SNMP.TIMEOUT})=0' - name: 'SNMP agent availability' type: INTERNAL @@ -707,7 +707,7 @@ zabbix_export: tag: Status triggers: - - expression: '{max({$SNMP.TIMEOUT})}=0' + expression: 'max(/APC UPS SNMP/zabbix[host,snmp,available],{$SNMP.TIMEOUT})=0' name: 'No SNMP data collection' opdata: 'Current state: {ITEM.LASTVALUE1}' priority: WARNING @@ -804,7 +804,7 @@ zabbix_export: tag: Status trigger_prototypes: - - expression: '{regexp("^(0)[0|1]{15}$")}=1' + expression: 'find(/APC UPS SNMP/battery.pack.cartridge_health[upsHighPrecBatteryPackCartridgeHealth.{#BATTERY_PACK}.{#CARTRIDGE_INDEX}],,"regexp","^(0)[0|1]{15}$")=1' name: '{#BATTERY_PACK}.{#CARTRIDGE_INDEX}: Battery lifetime is not okay' opdata: 'Current bit set: {ITEM.LASTVALUE1}' priority: WARNING @@ -850,7 +850,7 @@ zabbix_export: tag: Status trigger_prototypes: - - expression: '{regexp("^(0{16})$")}=0' + expression: 'find(/APC UPS SNMP/battery.pack.status[upsHighPrecBatteryPackCartridgeStatus.{#BATTERY_PACK}.{#CARTRIDGE_INDEX}],,"regexp","^(0{16})$")=0' name: '{#BATTERY_PACK}.{#CARTRIDGE_INDEX}: Battery status is not okay' opdata: 'Current bit set: {ITEM.LASTVALUE1}' priority: WARNING @@ -893,7 +893,7 @@ zabbix_export: tag: Status trigger_prototypes: - - expression: '{min({$TIME.PERIOD})} > {$BATTERY.TEMP.MAX.WARN}' + expression: 'min(/APC UPS SNMP/battery.temperature[upsHighPrecBatteryPackTemperature.{#BATTERY_PACK}.{#CARTRIDGE_INDEX}],{$TIME.PERIOD}) > {$BATTERY.TEMP.MAX.WARN}' name: '{#BATTERY_PACK}.{#CARTRIDGE_INDEX}: Battery has high temperature (over {$BATTERY.TEMP.MAX.WARN}℃ for {$TIME.PERIOD})' opdata: 'Current temperature: {ITEM.LASTVALUE1}' priority: HIGH @@ -971,17 +971,17 @@ zabbix_export: tag: Status trigger_prototypes: - - expression: '{last()}=3' + expression: 'last(/APC UPS SNMP/external.sensor.status[uioSensorStatusAlarmStatus.1.{#SNMPINDEX}])=3' name: '{#EXTERNAL_SENSOR1_NAME}: Sensor has status Critical' priority: HIGH description: 'The external sensor has returned a value greater than the critical threshold.' - - expression: '{last()}=4' + expression: 'last(/APC UPS SNMP/external.sensor.status[uioSensorStatusAlarmStatus.1.{#SNMPINDEX}])=4' name: '{#EXTERNAL_SENSOR1_NAME}: Sensor has status Not Applicable' priority: INFO description: 'The external sensor does not work or is not connected.' - - expression: '{last()}=2' + expression: 'last(/APC UPS SNMP/external.sensor.status[uioSensorStatusAlarmStatus.1.{#SNMPINDEX}])=2' name: '{#EXTERNAL_SENSOR1_NAME}: Sensor has status Warning' priority: AVERAGE description: 'The external sensor has returned a value greater than the warning threshold.' @@ -1076,17 +1076,17 @@ zabbix_export: tag: Status trigger_prototypes: - - expression: '{last()}=3' + expression: 'last(/APC UPS SNMP/external.sensor.status[uioSensorStatusAlarmStatus.2.{#SNMPINDEX}])=3' name: '{#EXTERNAL_SENSOR2_NAME}: Sensor has status Critical' priority: HIGH description: 'The external sensor has returned a value greater than the critical threshold.' - - expression: '{last()}=4' + expression: 'last(/APC UPS SNMP/external.sensor.status[uioSensorStatusAlarmStatus.2.{#SNMPINDEX}])=4' name: '{#EXTERNAL_SENSOR2_NAME}: Sensor has status Not Applicable' priority: INFO description: 'The external sensor does not work or is not connected.' - - expression: '{last()}=2' + expression: 'last(/APC UPS SNMP/external.sensor.status[uioSensorStatusAlarmStatus.2.{#SNMPINDEX}])=2' name: '{#EXTERNAL_SENSOR2_NAME}: Sensor has status Warning' priority: AVERAGE description: 'The external sensor has returned a value greater than the warning threshold.' @@ -1181,7 +1181,7 @@ zabbix_export: tag: Status trigger_prototypes: - - expression: '{min({$TIME.PERIOD})} > {$UPS.INPUT_VOLT.MAX.WARN} or {max({$TIME.PERIOD})} < {$UPS.INPUT_VOLT.MIN.WARN}' + expression: 'min(/APC UPS SNMP/phase.input.voltage[upsPhaseInputVoltage.1.1.{#PHASEINDEX}],{$TIME.PERIOD}) > {$UPS.INPUT_VOLT.MAX.WARN} or max(/APC UPS SNMP/phase.input.voltage[upsPhaseInputVoltage.1.1.{#PHASEINDEX}],{$TIME.PERIOD}) < {$UPS.INPUT_VOLT.MIN.WARN}' name: '{#PHASEINDEX}: Unacceptable phase {#PHASEINDEX} input voltage (out of range {$UPS.INPUT_VOLT.MIN.WARN}-{$UPS.INPUT_VOLT.MAX.WARN}V for {$TIME.PERIOD})' opdata: 'Current phase {#PHASEINDEX} voltage: {ITEM.LASTVALUE1}' priority: HIGH @@ -1261,7 +1261,7 @@ zabbix_export: tag: Status trigger_prototypes: - - expression: '{min({$TIME.PERIOD})} > {$UPS.INPUT_VOLT.MAX.WARN} or {max({$TIME.PERIOD})} < {$UPS.INPUT_VOLT.MIN.WARN}' + expression: 'min(/APC UPS SNMP/phase.output.voltage[upsPhaseOutputVoltage.1.1.{#PHASEINDEX}],{$TIME.PERIOD}) > {$UPS.INPUT_VOLT.MAX.WARN} or max(/APC UPS SNMP/phase.output.voltage[upsPhaseOutputVoltage.1.1.{#PHASEINDEX}],{$TIME.PERIOD}) < {$UPS.INPUT_VOLT.MIN.WARN}' name: '{#PHASEINDEX}: Unacceptable phase {#PHASEINDEX} output voltage (out of range {$UPS.INPUT_VOLT.MIN.WARN}-{$UPS.INPUT_VOLT.MAX.WARN}V for {$TIME.PERIOD})' opdata: 'Current phase {#PHASEINDEX} voltage: {ITEM.LASTVALUE1}' priority: HIGH @@ -1302,177 +1302,6 @@ zabbix_export: macro: '{$UPS.OUTPUT.MAX.WARN}' value: '80' description: 'Maximum output load in % for trigger expression.' - dashboards: - - - name: 'UPS Summary' - pages: - - - widgets: - - - type: PLAIN_TEXT - width: '8' - fields: - - - type: INTEGER - name: show_as_html - value: '0' - - - type: INTEGER - name: show_lines - value: '1' - - - type: ITEM - name: itemids - value: - key: 'system.uptime[sysUpTime.0]' - host: 'APC UPS SNMP' - - - type: PLAIN_TEXT - x: '8' - width: '8' - fields: - - - type: INTEGER - name: show_as_html - value: '0' - - - type: INTEGER - name: show_lines - value: '1' - - - type: ITEM - name: itemids - value: - key: 'input.fail[upsAdvInputLineFailCause]' - host: 'APC UPS SNMP' - - - type: PLAIN_TEXT - x: '16' - width: '8' - fields: - - - type: INTEGER - name: show_as_html - value: '0' - - - type: INTEGER - name: show_lines - value: '1' - - - type: ITEM - name: itemids - value: - key: 'output.status[upsBasicOutputStatus]' - host: 'APC UPS SNMP' - - - type: PLAIN_TEXT - 'y': '2' - width: '8' - fields: - - - type: INTEGER - name: show_as_html - value: '0' - - - type: INTEGER - name: show_lines - value: '1' - - - type: ITEM - name: itemids - value: - key: 'battery.status[upsBasicBatteryStatus]' - host: 'APC UPS SNMP' - - - type: PLAIN_TEXT - x: '8' - 'y': '2' - width: '8' - fields: - - - type: INTEGER - name: show_as_html - value: '0' - - - type: INTEGER - name: show_lines - value: '1' - - - type: ITEM - name: itemids - value: - key: 'battery.runtime_remaining[upsAdvBatteryRunTimeRemaining]' - host: 'APC UPS SNMP' - - - type: PLAIN_TEXT - x: '16' - 'y': '2' - width: '8' - fields: - - - type: INTEGER - name: show_as_html - value: '0' - - - type: INTEGER - name: show_lines - value: '1' - - - type: ITEM - name: itemids - value: - key: 'battery.last_replace_date[upsBasicBatteryLastReplaceDate]' - host: 'APC UPS SNMP' - - - type: GRAPH_CLASSIC - 'y': '4' - width: '8' - height: '7' - fields: - - - type: INTEGER - name: source_type - value: '0' - - - type: GRAPH - name: graphid - value: - name: 'Capacity of the UPS batteries' - host: 'APC UPS SNMP' - - - type: GRAPH_CLASSIC - x: '8' - 'y': '4' - width: '8' - height: '7' - fields: - - - type: INTEGER - name: source_type - value: '0' - - - type: GRAPH - name: graphid - value: - name: Voltage - host: 'APC UPS SNMP' - - - type: GRAPH_CLASSIC - x: '16' - 'y': '4' - width: '8' - height: '7' - fields: - - - type: INTEGER - name: source_type - value: '0' - - - type: GRAPH - name: graphid - value: - name: Output - host: 'APC UPS SNMP' valuemaps: - name: 'PowerNet-MIB::uioSensorStatusAlarmStatus' @@ -1628,6 +1457,15 @@ zabbix_export: value: '26' newvalue: 'Charger Only' - + name: 'Service state' + mappings: + - + value: '0' + newvalue: Down + - + value: '1' + newvalue: Up + - name: zabbix.host.available mappings: - diff --git a/templates/power/apc/apc_ups_symmetra_lx_snmp/template_power_apc_ups_symmetra_lx_snmp.yaml b/templates/power/apc/apc_ups_symmetra_lx_snmp/template_power_apc_ups_symmetra_lx_snmp.yaml index 8b6cea669cc..b56a649fc28 100644 --- a/templates/power/apc/apc_ups_symmetra_lx_snmp/template_power_apc_ups_symmetra_lx_snmp.yaml +++ b/templates/power/apc/apc_ups_symmetra_lx_snmp/template_power_apc_ups_symmetra_lx_snmp.yaml @@ -1,6 +1,6 @@ zabbix_export: version: '5.4' - date: '2021-04-15T12:16:22Z' + date: '2021-05-09T00:00:00Z' groups: - name: Templates/Power @@ -48,7 +48,7 @@ zabbix_export: tag: Status triggers: - - expression: '{last()} < {$BATTERY.CAPACITY.MIN.WARN}' + expression: 'last(/APC UPS Symmetra LX SNMP/battery.capacity[upsHighPrecBatteryCapacity]) < {$BATTERY.CAPACITY.MIN.WARN}' name: 'Battery has low capacity (below {$BATTERY.CAPACITY.MIN.WARN}%)' opdata: 'Current capacity: {ITEM.LASTVALUE1}' priority: HIGH @@ -117,7 +117,7 @@ zabbix_export: tag: Status triggers: - - expression: '{last()}=2' + expression: 'last(/APC UPS Symmetra LX SNMP/battery.replace_indicator[upsAdvBatteryReplaceIndicator])=2' name: 'Battery needs replacement' priority: HIGH description: 'A battery installed has an internal error condition.' @@ -172,12 +172,12 @@ zabbix_export: tag: Status triggers: - - expression: '{last()}=4' + expression: 'last(/APC UPS Symmetra LX SNMP/battery.status[upsBasicBatteryStatus])=4' name: 'Battery has an internal error condition' priority: AVERAGE description: 'A battery installed has an internal error condition.' - - expression: '{last()}=3' + expression: 'last(/APC UPS Symmetra LX SNMP/battery.status[upsBasicBatteryStatus])=3' name: 'Battery is Low' priority: AVERAGE description: 'The UPS will be unable to sustain the current load, and its services will be lost if power is not restored.' @@ -207,7 +207,7 @@ zabbix_export: tag: Status triggers: - - expression: '{min({$TIME.PERIOD})} > {$BATTERY.TEMP.MAX.WARN}' + expression: 'min(/APC UPS Symmetra LX SNMP/battery.temperature[upsHighPrecBatteryTemperature],{$TIME.PERIOD}) > {$BATTERY.TEMP.MAX.WARN}' name: 'Battery has high temperature (over {$BATTERY.TEMP.MAX.WARN}℃ for {$TIME.PERIOD})' opdata: 'Current temperature: {ITEM.LASTVALUE1}' priority: HIGH @@ -301,7 +301,7 @@ zabbix_export: tag: Status triggers: - - expression: '{min({$TIME.PERIOD})} > 0 and ({min({$TIME.PERIOD})} > {$UPS.INPUT_FREQ.MAX.WARN} or {max({$TIME.PERIOD})} < {$UPS.INPUT_FREQ.MIN.WARN})' + expression: 'min(/APC UPS Symmetra LX SNMP/input.frequency[upsHighPrecInputFrequency],{$TIME.PERIOD}) > 0 and (min(/APC UPS Symmetra LX SNMP/input.frequency[upsHighPrecInputFrequency],{$TIME.PERIOD}) > {$UPS.INPUT_FREQ.MAX.WARN} or max(/APC UPS Symmetra LX SNMP/input.frequency[upsHighPrecInputFrequency],{$TIME.PERIOD}) < {$UPS.INPUT_FREQ.MIN.WARN})' name: 'Unacceptable input frequency (out of range {$UPS.INPUT_FREQ.MIN.WARN}-{$UPS.INPUT_FREQ.MAX.WARN}Hz for {$TIME.PERIOD})' opdata: 'Current frequency: {ITEM.LASTVALUE1}' priority: HIGH @@ -330,7 +330,7 @@ zabbix_export: tag: Status triggers: - - expression: '{min({$TIME.PERIOD})} > 0 and ({min({$TIME.PERIOD})} > {$UPS.INPUT_VOLT.MAX.WARN} or {max({$TIME.PERIOD})} < {$UPS.INPUT_VOLT.MIN.WARN})' + expression: 'min(/APC UPS Symmetra LX SNMP/input.voltage[upsHighPrecInputLineVoltage],{$TIME.PERIOD}) > 0 and (min(/APC UPS Symmetra LX SNMP/input.voltage[upsHighPrecInputLineVoltage],{$TIME.PERIOD}) > {$UPS.INPUT_VOLT.MAX.WARN} or max(/APC UPS Symmetra LX SNMP/input.voltage[upsHighPrecInputLineVoltage],{$TIME.PERIOD}) < {$UPS.INPUT_VOLT.MIN.WARN})' name: 'Unacceptable input voltage (out of range {$UPS.INPUT_VOLT.MIN.WARN}-{$UPS.INPUT_VOLT.MAX.WARN}V for {$TIME.PERIOD})' opdata: 'Current voltage: {ITEM.LASTVALUE1}' priority: HIGH @@ -383,7 +383,7 @@ zabbix_export: tag: Status triggers: - - expression: '{min({$TIME.PERIOD})} > {$UPS.OUTPUT.MAX.WARN}' + expression: 'min(/APC UPS Symmetra LX SNMP/output.load[upsHighPrecOutputLoad],{$TIME.PERIOD}) > {$UPS.OUTPUT.MAX.WARN}' name: 'Output load is high (over {$UPS.OUTPUT.MAX.WARN}% for {$TIME.PERIOD})' opdata: 'Current load: {ITEM.LASTVALUE1}' priority: HIGH @@ -415,47 +415,47 @@ zabbix_export: tag: Status triggers: - - expression: '{last()}=16' + expression: 'last(/APC UPS Symmetra LX SNMP/output.status[upsBasicOutputStatus])=16' name: 'UPS is Emergency Static Bypass' priority: AVERAGE - - expression: '{last()}=10' + expression: 'last(/APC UPS Symmetra LX SNMP/output.status[upsBasicOutputStatus])=10' name: 'UPS is Hardware Failure Bypass' priority: AVERAGE - - expression: '{last()}=7' + expression: 'last(/APC UPS Symmetra LX SNMP/output.status[upsBasicOutputStatus])=7' name: 'UPS is Off' priority: AVERAGE - - expression: '{last()}=3' + expression: 'last(/APC UPS Symmetra LX SNMP/output.status[upsBasicOutputStatus])=3' name: 'UPS is on battery' priority: AVERAGE - - expression: '{last()}=4' + expression: 'last(/APC UPS Symmetra LX SNMP/output.status[upsBasicOutputStatus])=4' name: 'UPS is on Smart Boost' priority: AVERAGE - - expression: '{last()}=12' + expression: 'last(/APC UPS Symmetra LX SNMP/output.status[upsBasicOutputStatus])=12' name: 'UPS is On Smart Trim' priority: AVERAGE - - expression: '{last()}=8' + expression: 'last(/APC UPS Symmetra LX SNMP/output.status[upsBasicOutputStatus])=8' name: 'UPS is Rebooting' priority: AVERAGE - - expression: '{last()}=11' + expression: 'last(/APC UPS Symmetra LX SNMP/output.status[upsBasicOutputStatus])=11' name: 'UPS is Sleeping Until Power Return' priority: AVERAGE - - expression: '{last()}=6' + expression: 'last(/APC UPS Symmetra LX SNMP/output.status[upsBasicOutputStatus])=6' name: 'UPS is Software Bypass' priority: AVERAGE - - expression: '{last()}=9' + expression: 'last(/APC UPS Symmetra LX SNMP/output.status[upsBasicOutputStatus])=9' name: 'UPS is Switched Bypass' priority: AVERAGE - - expression: '{last()}=5' + expression: 'last(/APC UPS Symmetra LX SNMP/output.status[upsBasicOutputStatus])=5' name: 'UPS is Timed Sleeping' priority: AVERAGE - @@ -605,7 +605,7 @@ zabbix_export: tag: General triggers: - - expression: '{diff()}=1 and {strlen()}>0' + expression: '(last(/APC UPS Symmetra LX SNMP/system.name[sysName.0],#1)<>last(/APC UPS Symmetra LX SNMP/system.name[sysName.0],#2))=1 and length(last(/APC UPS Symmetra LX SNMP/system.name[sysName.0]))>0' name: 'System name has changed (new name: {ITEM.VALUE})' priority: INFO description: 'System name has changed. Ack to close.' @@ -681,7 +681,7 @@ zabbix_export: tag: Status triggers: - - expression: '{last()}<10m' + expression: 'last(/APC UPS Symmetra LX SNMP/system.uptime[sysUpTime.0])<10m' name: '{HOST.NAME} has been restarted (uptime < 10m)' priority: WARNING description: 'Uptime is less than 10 minutes' @@ -689,7 +689,7 @@ zabbix_export: dependencies: - name: 'No SNMP data collection' - expression: '{APC UPS Symmetra LX SNMP:zabbix[host,snmp,available].max({$SNMP.TIMEOUT})}=0' + expression: 'max(/APC UPS Symmetra LX SNMP/zabbix[host,snmp,available],{$SNMP.TIMEOUT})=0' - name: 'SNMP agent availability' type: INTERNAL @@ -707,7 +707,7 @@ zabbix_export: tag: Status triggers: - - expression: '{max({$SNMP.TIMEOUT})}=0' + expression: 'max(/APC UPS Symmetra LX SNMP/zabbix[host,snmp,available],{$SNMP.TIMEOUT})=0' name: 'No SNMP data collection' opdata: 'Current state: {ITEM.LASTVALUE1}' priority: WARNING @@ -804,7 +804,7 @@ zabbix_export: tag: Status trigger_prototypes: - - expression: '{regexp("^(0)[0|1]{15}$")}=1' + expression: 'find(/APC UPS Symmetra LX SNMP/battery.pack.cartridge_health[upsHighPrecBatteryPackCartridgeHealth.{#BATTERY_PACK}.{#CARTRIDGE_INDEX}],,"regexp","^(0)[0|1]{15}$")=1' name: '{#BATTERY_PACK}.{#CARTRIDGE_INDEX}: Battery lifetime is not okay' opdata: 'Current bit set: {ITEM.LASTVALUE1}' priority: WARNING @@ -850,7 +850,7 @@ zabbix_export: tag: Status trigger_prototypes: - - expression: '{regexp("^(0{16})$")}=0' + expression: 'find(/APC UPS Symmetra LX SNMP/battery.pack.status[upsHighPrecBatteryPackCartridgeStatus.{#BATTERY_PACK}.{#CARTRIDGE_INDEX}],,"regexp","^(0{16})$")=0' name: '{#BATTERY_PACK}.{#CARTRIDGE_INDEX}: Battery status is not okay' opdata: 'Current bit set: {ITEM.LASTVALUE1}' priority: WARNING @@ -893,7 +893,7 @@ zabbix_export: tag: Status trigger_prototypes: - - expression: '{min({$TIME.PERIOD})} > {$BATTERY.TEMP.MAX.WARN}' + expression: 'min(/APC UPS Symmetra LX SNMP/battery.temperature[upsHighPrecBatteryPackTemperature.{#BATTERY_PACK}.{#CARTRIDGE_INDEX}],{$TIME.PERIOD}) > {$BATTERY.TEMP.MAX.WARN}' name: '{#BATTERY_PACK}.{#CARTRIDGE_INDEX}: Battery has high temperature (over {$BATTERY.TEMP.MAX.WARN}℃ for {$TIME.PERIOD})' opdata: 'Current temperature: {ITEM.LASTVALUE1}' priority: HIGH @@ -971,17 +971,17 @@ zabbix_export: tag: Status trigger_prototypes: - - expression: '{last()}=3' + expression: 'last(/APC UPS Symmetra LX SNMP/external.sensor.status[uioSensorStatusAlarmStatus.1.{#SNMPINDEX}])=3' name: '{#EXTERNAL_SENSOR1_NAME}: Sensor has status Critical' priority: HIGH description: 'The external sensor has returned a value greater than the critical threshold.' - - expression: '{last()}=4' + expression: 'last(/APC UPS Symmetra LX SNMP/external.sensor.status[uioSensorStatusAlarmStatus.1.{#SNMPINDEX}])=4' name: '{#EXTERNAL_SENSOR1_NAME}: Sensor has status Not Applicable' priority: INFO description: 'The external sensor does not work or is not connected.' - - expression: '{last()}=2' + expression: 'last(/APC UPS Symmetra LX SNMP/external.sensor.status[uioSensorStatusAlarmStatus.1.{#SNMPINDEX}])=2' name: '{#EXTERNAL_SENSOR1_NAME}: Sensor has status Warning' priority: AVERAGE description: 'The external sensor has returned a value greater than the warning threshold.' @@ -1076,17 +1076,17 @@ zabbix_export: tag: Status trigger_prototypes: - - expression: '{last()}=3' + expression: 'last(/APC UPS Symmetra LX SNMP/external.sensor.status[uioSensorStatusAlarmStatus.2.{#SNMPINDEX}])=3' name: '{#EXTERNAL_SENSOR2_NAME}: Sensor has status Critical' priority: HIGH description: 'The external sensor has returned a value greater than the critical threshold.' - - expression: '{last()}=4' + expression: 'last(/APC UPS Symmetra LX SNMP/external.sensor.status[uioSensorStatusAlarmStatus.2.{#SNMPINDEX}])=4' name: '{#EXTERNAL_SENSOR2_NAME}: Sensor has status Not Applicable' priority: INFO description: 'The external sensor does not work or is not connected.' - - expression: '{last()}=2' + expression: 'last(/APC UPS Symmetra LX SNMP/external.sensor.status[uioSensorStatusAlarmStatus.2.{#SNMPINDEX}])=2' name: '{#EXTERNAL_SENSOR2_NAME}: Sensor has status Warning' priority: AVERAGE description: 'The external sensor has returned a value greater than the warning threshold.' @@ -1181,7 +1181,7 @@ zabbix_export: tag: Status trigger_prototypes: - - expression: '{min({$TIME.PERIOD})} > {$UPS.INPUT_VOLT.MAX.WARN} or {max({$TIME.PERIOD})} < {$UPS.INPUT_VOLT.MIN.WARN}' + expression: 'min(/APC UPS Symmetra LX SNMP/phase.input.voltage[upsPhaseInputVoltage.1.1.{#PHASEINDEX}],{$TIME.PERIOD}) > {$UPS.INPUT_VOLT.MAX.WARN} or max(/APC UPS Symmetra LX SNMP/phase.input.voltage[upsPhaseInputVoltage.1.1.{#PHASEINDEX}],{$TIME.PERIOD}) < {$UPS.INPUT_VOLT.MIN.WARN}' name: '{#PHASEINDEX}: Unacceptable phase {#PHASEINDEX} input voltage (out of range {$UPS.INPUT_VOLT.MIN.WARN}-{$UPS.INPUT_VOLT.MAX.WARN}V for {$TIME.PERIOD})' opdata: 'Current phase {#PHASEINDEX} voltage: {ITEM.LASTVALUE1}' priority: HIGH @@ -1261,7 +1261,7 @@ zabbix_export: tag: Status trigger_prototypes: - - expression: '{min({$TIME.PERIOD})} > {$UPS.INPUT_VOLT.MAX.WARN} or {max({$TIME.PERIOD})} < {$UPS.INPUT_VOLT.MIN.WARN}' + expression: 'min(/APC UPS Symmetra LX SNMP/phase.output.voltage[upsPhaseOutputVoltage.1.1.{#PHASEINDEX}],{$TIME.PERIOD}) > {$UPS.INPUT_VOLT.MAX.WARN} or max(/APC UPS Symmetra LX SNMP/phase.output.voltage[upsPhaseOutputVoltage.1.1.{#PHASEINDEX}],{$TIME.PERIOD}) < {$UPS.INPUT_VOLT.MIN.WARN}' name: '{#PHASEINDEX}: Unacceptable phase {#PHASEINDEX} output voltage (out of range {$UPS.INPUT_VOLT.MIN.WARN}-{$UPS.INPUT_VOLT.MAX.WARN}V for {$TIME.PERIOD})' opdata: 'Current phase {#PHASEINDEX} voltage: {ITEM.LASTVALUE1}' priority: HIGH @@ -1302,177 +1302,6 @@ zabbix_export: macro: '{$UPS.OUTPUT.MAX.WARN}' value: '80' description: 'Maximum output load in % for trigger expression.' - dashboards: - - - name: 'UPS Summary' - pages: - - - widgets: - - - type: PLAIN_TEXT - width: '8' - fields: - - - type: INTEGER - name: show_as_html - value: '0' - - - type: INTEGER - name: show_lines - value: '1' - - - type: ITEM - name: itemids - value: - key: 'system.uptime[sysUpTime.0]' - host: 'APC UPS Symmetra LX SNMP' - - - type: PLAIN_TEXT - x: '8' - width: '8' - fields: - - - type: INTEGER - name: show_as_html - value: '0' - - - type: INTEGER - name: show_lines - value: '1' - - - type: ITEM - name: itemids - value: - key: 'input.fail[upsAdvInputLineFailCause]' - host: 'APC UPS Symmetra LX SNMP' - - - type: PLAIN_TEXT - x: '16' - width: '8' - fields: - - - type: INTEGER - name: show_as_html - value: '0' - - - type: INTEGER - name: show_lines - value: '1' - - - type: ITEM - name: itemids - value: - key: 'output.status[upsBasicOutputStatus]' - host: 'APC UPS Symmetra LX SNMP' - - - type: PLAIN_TEXT - 'y': '2' - width: '8' - fields: - - - type: INTEGER - name: show_as_html - value: '0' - - - type: INTEGER - name: show_lines - value: '1' - - - type: ITEM - name: itemids - value: - key: 'battery.status[upsBasicBatteryStatus]' - host: 'APC UPS Symmetra LX SNMP' - - - type: PLAIN_TEXT - x: '8' - 'y': '2' - width: '8' - fields: - - - type: INTEGER - name: show_as_html - value: '0' - - - type: INTEGER - name: show_lines - value: '1' - - - type: ITEM - name: itemids - value: - key: 'battery.runtime_remaining[upsAdvBatteryRunTimeRemaining]' - host: 'APC UPS Symmetra LX SNMP' - - - type: PLAIN_TEXT - x: '16' - 'y': '2' - width: '8' - fields: - - - type: INTEGER - name: show_as_html - value: '0' - - - type: INTEGER - name: show_lines - value: '1' - - - type: ITEM - name: itemids - value: - key: 'battery.last_replace_date[upsBasicBatteryLastReplaceDate]' - host: 'APC UPS Symmetra LX SNMP' - - - type: GRAPH_CLASSIC - 'y': '4' - width: '8' - height: '7' - fields: - - - type: INTEGER - name: source_type - value: '0' - - - type: GRAPH - name: graphid - value: - name: 'Capacity of the UPS batteries' - host: 'APC UPS Symmetra LX SNMP' - - - type: GRAPH_CLASSIC - x: '8' - 'y': '4' - width: '8' - height: '7' - fields: - - - type: INTEGER - name: source_type - value: '0' - - - type: GRAPH - name: graphid - value: - name: Voltage - host: 'APC UPS Symmetra LX SNMP' - - - type: GRAPH_CLASSIC - x: '16' - 'y': '4' - width: '8' - height: '7' - fields: - - - type: INTEGER - name: source_type - value: '0' - - - type: GRAPH - name: graphid - value: - name: Output - host: 'APC UPS Symmetra LX SNMP' valuemaps: - name: 'PowerNet-MIB::uioSensorStatusAlarmStatus' diff --git a/templates/power/apc/apc_ups_symmetra_rm_snmp/template_power_apc_ups_symmetra_rm_snmp.yaml b/templates/power/apc/apc_ups_symmetra_rm_snmp/template_power_apc_ups_symmetra_rm_snmp.yaml index ea8e1ff03f9..1b2f32f1f33 100644 --- a/templates/power/apc/apc_ups_symmetra_rm_snmp/template_power_apc_ups_symmetra_rm_snmp.yaml +++ b/templates/power/apc/apc_ups_symmetra_rm_snmp/template_power_apc_ups_symmetra_rm_snmp.yaml @@ -1,6 +1,6 @@ zabbix_export: version: '5.4' - date: '2021-04-15T12:17:04Z' + date: '2021-05-09T00:00:00Z' groups: - name: Templates/Power @@ -48,7 +48,7 @@ zabbix_export: tag: Status triggers: - - expression: '{last()} < {$BATTERY.CAPACITY.MIN.WARN}' + expression: 'last(/APC UPS Symmetra RM SNMP/battery.capacity[upsHighPrecBatteryCapacity]) < {$BATTERY.CAPACITY.MIN.WARN}' name: 'Battery has low capacity (below {$BATTERY.CAPACITY.MIN.WARN}%)' opdata: 'Current capacity: {ITEM.LASTVALUE1}' priority: HIGH @@ -117,7 +117,7 @@ zabbix_export: tag: Status triggers: - - expression: '{last()}=2' + expression: 'last(/APC UPS Symmetra RM SNMP/battery.replace_indicator[upsAdvBatteryReplaceIndicator])=2' name: 'Battery needs replacement' priority: HIGH description: 'A battery installed has an internal error condition.' @@ -172,12 +172,12 @@ zabbix_export: tag: Status triggers: - - expression: '{last()}=4' + expression: 'last(/APC UPS Symmetra RM SNMP/battery.status[upsBasicBatteryStatus])=4' name: 'Battery has an internal error condition' priority: AVERAGE description: 'A battery installed has an internal error condition.' - - expression: '{last()}=3' + expression: 'last(/APC UPS Symmetra RM SNMP/battery.status[upsBasicBatteryStatus])=3' name: 'Battery is Low' priority: AVERAGE description: 'The UPS will be unable to sustain the current load, and its services will be lost if power is not restored.' @@ -207,7 +207,7 @@ zabbix_export: tag: Status triggers: - - expression: '{min({$TIME.PERIOD})} > {$BATTERY.TEMP.MAX.WARN}' + expression: 'min(/APC UPS Symmetra RM SNMP/battery.temperature[upsHighPrecBatteryTemperature],{$TIME.PERIOD}) > {$BATTERY.TEMP.MAX.WARN}' name: 'Battery has high temperature (over {$BATTERY.TEMP.MAX.WARN}℃ for {$TIME.PERIOD})' opdata: 'Current temperature: {ITEM.LASTVALUE1}' priority: HIGH @@ -301,7 +301,7 @@ zabbix_export: tag: Status triggers: - - expression: '{min({$TIME.PERIOD})} > 0 and ({min({$TIME.PERIOD})} > {$UPS.INPUT_FREQ.MAX.WARN} or {max({$TIME.PERIOD})} < {$UPS.INPUT_FREQ.MIN.WARN})' + expression: 'min(/APC UPS Symmetra RM SNMP/input.frequency[upsHighPrecInputFrequency],{$TIME.PERIOD}) > 0 and (min(/APC UPS Symmetra RM SNMP/input.frequency[upsHighPrecInputFrequency],{$TIME.PERIOD}) > {$UPS.INPUT_FREQ.MAX.WARN} or max(/APC UPS Symmetra RM SNMP/input.frequency[upsHighPrecInputFrequency],{$TIME.PERIOD}) < {$UPS.INPUT_FREQ.MIN.WARN})' name: 'Unacceptable input frequency (out of range {$UPS.INPUT_FREQ.MIN.WARN}-{$UPS.INPUT_FREQ.MAX.WARN}Hz for {$TIME.PERIOD})' opdata: 'Current frequency: {ITEM.LASTVALUE1}' priority: HIGH @@ -330,7 +330,7 @@ zabbix_export: tag: Status triggers: - - expression: '{min({$TIME.PERIOD})} > 0 and ({min({$TIME.PERIOD})} > {$UPS.INPUT_VOLT.MAX.WARN} or {max({$TIME.PERIOD})} < {$UPS.INPUT_VOLT.MIN.WARN})' + expression: 'min(/APC UPS Symmetra RM SNMP/input.voltage[upsHighPrecInputLineVoltage],{$TIME.PERIOD}) > 0 and (min(/APC UPS Symmetra RM SNMP/input.voltage[upsHighPrecInputLineVoltage],{$TIME.PERIOD}) > {$UPS.INPUT_VOLT.MAX.WARN} or max(/APC UPS Symmetra RM SNMP/input.voltage[upsHighPrecInputLineVoltage],{$TIME.PERIOD}) < {$UPS.INPUT_VOLT.MIN.WARN})' name: 'Unacceptable input voltage (out of range {$UPS.INPUT_VOLT.MIN.WARN}-{$UPS.INPUT_VOLT.MAX.WARN}V for {$TIME.PERIOD})' opdata: 'Current voltage: {ITEM.LASTVALUE1}' priority: HIGH @@ -383,7 +383,7 @@ zabbix_export: tag: Status triggers: - - expression: '{min({$TIME.PERIOD})} > {$UPS.OUTPUT.MAX.WARN}' + expression: 'min(/APC UPS Symmetra RM SNMP/output.load[upsHighPrecOutputLoad],{$TIME.PERIOD}) > {$UPS.OUTPUT.MAX.WARN}' name: 'Output load is high (over {$UPS.OUTPUT.MAX.WARN}% for {$TIME.PERIOD})' opdata: 'Current load: {ITEM.LASTVALUE1}' priority: HIGH @@ -415,47 +415,47 @@ zabbix_export: tag: Status triggers: - - expression: '{last()}=16' + expression: 'last(/APC UPS Symmetra RM SNMP/output.status[upsBasicOutputStatus])=16' name: 'UPS is Emergency Static Bypass' priority: AVERAGE - - expression: '{last()}=10' + expression: 'last(/APC UPS Symmetra RM SNMP/output.status[upsBasicOutputStatus])=10' name: 'UPS is Hardware Failure Bypass' priority: AVERAGE - - expression: '{last()}=7' + expression: 'last(/APC UPS Symmetra RM SNMP/output.status[upsBasicOutputStatus])=7' name: 'UPS is Off' priority: AVERAGE - - expression: '{last()}=3' + expression: 'last(/APC UPS Symmetra RM SNMP/output.status[upsBasicOutputStatus])=3' name: 'UPS is on battery' priority: AVERAGE - - expression: '{last()}=4' + expression: 'last(/APC UPS Symmetra RM SNMP/output.status[upsBasicOutputStatus])=4' name: 'UPS is on Smart Boost' priority: AVERAGE - - expression: '{last()}=12' + expression: 'last(/APC UPS Symmetra RM SNMP/output.status[upsBasicOutputStatus])=12' name: 'UPS is On Smart Trim' priority: AVERAGE - - expression: '{last()}=8' + expression: 'last(/APC UPS Symmetra RM SNMP/output.status[upsBasicOutputStatus])=8' name: 'UPS is Rebooting' priority: AVERAGE - - expression: '{last()}=11' + expression: 'last(/APC UPS Symmetra RM SNMP/output.status[upsBasicOutputStatus])=11' name: 'UPS is Sleeping Until Power Return' priority: AVERAGE - - expression: '{last()}=6' + expression: 'last(/APC UPS Symmetra RM SNMP/output.status[upsBasicOutputStatus])=6' name: 'UPS is Software Bypass' priority: AVERAGE - - expression: '{last()}=9' + expression: 'last(/APC UPS Symmetra RM SNMP/output.status[upsBasicOutputStatus])=9' name: 'UPS is Switched Bypass' priority: AVERAGE - - expression: '{last()}=5' + expression: 'last(/APC UPS Symmetra RM SNMP/output.status[upsBasicOutputStatus])=5' name: 'UPS is Timed Sleeping' priority: AVERAGE - @@ -605,7 +605,7 @@ zabbix_export: tag: General triggers: - - expression: '{diff()}=1 and {strlen()}>0' + expression: '(last(/APC UPS Symmetra RM SNMP/system.name[sysName.0],#1)<>last(/APC UPS Symmetra RM SNMP/system.name[sysName.0],#2))=1 and length(last(/APC UPS Symmetra RM SNMP/system.name[sysName.0]))>0' name: 'System name has changed (new name: {ITEM.VALUE})' priority: INFO description: 'System name has changed. Ack to close.' @@ -681,7 +681,7 @@ zabbix_export: tag: Status triggers: - - expression: '{last()}<10m' + expression: 'last(/APC UPS Symmetra RM SNMP/system.uptime[sysUpTime.0])<10m' name: '{HOST.NAME} has been restarted (uptime < 10m)' priority: WARNING description: 'Uptime is less than 10 minutes' @@ -689,7 +689,7 @@ zabbix_export: dependencies: - name: 'No SNMP data collection' - expression: '{APC UPS Symmetra RM SNMP:zabbix[host,snmp,available].max({$SNMP.TIMEOUT})}=0' + expression: 'max(/APC UPS Symmetra RM SNMP/zabbix[host,snmp,available],{$SNMP.TIMEOUT})=0' - name: 'SNMP agent availability' type: INTERNAL @@ -707,7 +707,7 @@ zabbix_export: tag: Status triggers: - - expression: '{max({$SNMP.TIMEOUT})}=0' + expression: 'max(/APC UPS Symmetra RM SNMP/zabbix[host,snmp,available],{$SNMP.TIMEOUT})=0' name: 'No SNMP data collection' opdata: 'Current state: {ITEM.LASTVALUE1}' priority: WARNING @@ -804,7 +804,7 @@ zabbix_export: tag: Status trigger_prototypes: - - expression: '{regexp("^(0)[0|1]{15}$")}=1' + expression: 'find(/APC UPS Symmetra RM SNMP/battery.pack.cartridge_health[upsHighPrecBatteryPackCartridgeHealth.{#BATTERY_PACK}.{#CARTRIDGE_INDEX}],,"regexp","^(0)[0|1]{15}$")=1' name: '{#BATTERY_PACK}.{#CARTRIDGE_INDEX}: Battery lifetime is not okay' opdata: 'Current bit set: {ITEM.LASTVALUE1}' priority: WARNING @@ -850,7 +850,7 @@ zabbix_export: tag: Status trigger_prototypes: - - expression: '{regexp("^(0{16})$")}=0' + expression: 'find(/APC UPS Symmetra RM SNMP/battery.pack.status[upsHighPrecBatteryPackCartridgeStatus.{#BATTERY_PACK}.{#CARTRIDGE_INDEX}],,"regexp","^(0{16})$")=0' name: '{#BATTERY_PACK}.{#CARTRIDGE_INDEX}: Battery status is not okay' opdata: 'Current bit set: {ITEM.LASTVALUE1}' priority: WARNING @@ -893,7 +893,7 @@ zabbix_export: tag: Status trigger_prototypes: - - expression: '{min({$TIME.PERIOD})} > {$BATTERY.TEMP.MAX.WARN}' + expression: 'min(/APC UPS Symmetra RM SNMP/battery.temperature[upsHighPrecBatteryPackTemperature.{#BATTERY_PACK}.{#CARTRIDGE_INDEX}],{$TIME.PERIOD}) > {$BATTERY.TEMP.MAX.WARN}' name: '{#BATTERY_PACK}.{#CARTRIDGE_INDEX}: Battery has high temperature (over {$BATTERY.TEMP.MAX.WARN}℃ for {$TIME.PERIOD})' opdata: 'Current temperature: {ITEM.LASTVALUE1}' priority: HIGH @@ -971,17 +971,17 @@ zabbix_export: tag: Status trigger_prototypes: - - expression: '{last()}=3' + expression: 'last(/APC UPS Symmetra RM SNMP/external.sensor.status[uioSensorStatusAlarmStatus.1.{#SNMPINDEX}])=3' name: '{#EXTERNAL_SENSOR1_NAME}: Sensor has status Critical' priority: HIGH description: 'The external sensor has returned a value greater than the critical threshold.' - - expression: '{last()}=4' + expression: 'last(/APC UPS Symmetra RM SNMP/external.sensor.status[uioSensorStatusAlarmStatus.1.{#SNMPINDEX}])=4' name: '{#EXTERNAL_SENSOR1_NAME}: Sensor has status Not Applicable' priority: INFO description: 'The external sensor does not work or is not connected.' - - expression: '{last()}=2' + expression: 'last(/APC UPS Symmetra RM SNMP/external.sensor.status[uioSensorStatusAlarmStatus.1.{#SNMPINDEX}])=2' name: '{#EXTERNAL_SENSOR1_NAME}: Sensor has status Warning' priority: AVERAGE description: 'The external sensor has returned a value greater than the warning threshold.' @@ -1076,17 +1076,17 @@ zabbix_export: tag: Status trigger_prototypes: - - expression: '{last()}=3' + expression: 'last(/APC UPS Symmetra RM SNMP/external.sensor.status[uioSensorStatusAlarmStatus.2.{#SNMPINDEX}])=3' name: '{#EXTERNAL_SENSOR2_NAME}: Sensor has status Critical' priority: HIGH description: 'The external sensor has returned a value greater than the critical threshold.' - - expression: '{last()}=4' + expression: 'last(/APC UPS Symmetra RM SNMP/external.sensor.status[uioSensorStatusAlarmStatus.2.{#SNMPINDEX}])=4' name: '{#EXTERNAL_SENSOR2_NAME}: Sensor has status Not Applicable' priority: INFO description: 'The external sensor does not work or is not connected.' - - expression: '{last()}=2' + expression: 'last(/APC UPS Symmetra RM SNMP/external.sensor.status[uioSensorStatusAlarmStatus.2.{#SNMPINDEX}])=2' name: '{#EXTERNAL_SENSOR2_NAME}: Sensor has status Warning' priority: AVERAGE description: 'The external sensor has returned a value greater than the warning threshold.' @@ -1181,7 +1181,7 @@ zabbix_export: tag: Status trigger_prototypes: - - expression: '{min({$TIME.PERIOD})} > {$UPS.INPUT_VOLT.MAX.WARN} or {max({$TIME.PERIOD})} < {$UPS.INPUT_VOLT.MIN.WARN}' + expression: 'min(/APC UPS Symmetra RM SNMP/phase.input.voltage[upsPhaseInputVoltage.1.1.{#PHASEINDEX}],{$TIME.PERIOD}) > {$UPS.INPUT_VOLT.MAX.WARN} or max(/APC UPS Symmetra RM SNMP/phase.input.voltage[upsPhaseInputVoltage.1.1.{#PHASEINDEX}],{$TIME.PERIOD}) < {$UPS.INPUT_VOLT.MIN.WARN}' name: '{#PHASEINDEX}: Unacceptable phase {#PHASEINDEX} input voltage (out of range {$UPS.INPUT_VOLT.MIN.WARN}-{$UPS.INPUT_VOLT.MAX.WARN}V for {$TIME.PERIOD})' opdata: 'Current phase {#PHASEINDEX} voltage: {ITEM.LASTVALUE1}' priority: HIGH @@ -1261,7 +1261,7 @@ zabbix_export: tag: Status trigger_prototypes: - - expression: '{min({$TIME.PERIOD})} > {$UPS.INPUT_VOLT.MAX.WARN} or {max({$TIME.PERIOD})} < {$UPS.INPUT_VOLT.MIN.WARN}' + expression: 'min(/APC UPS Symmetra RM SNMP/phase.output.voltage[upsPhaseOutputVoltage.1.1.{#PHASEINDEX}],{$TIME.PERIOD}) > {$UPS.INPUT_VOLT.MAX.WARN} or max(/APC UPS Symmetra RM SNMP/phase.output.voltage[upsPhaseOutputVoltage.1.1.{#PHASEINDEX}],{$TIME.PERIOD}) < {$UPS.INPUT_VOLT.MIN.WARN}' name: '{#PHASEINDEX}: Unacceptable phase {#PHASEINDEX} output voltage (out of range {$UPS.INPUT_VOLT.MIN.WARN}-{$UPS.INPUT_VOLT.MAX.WARN}V for {$TIME.PERIOD})' opdata: 'Current phase {#PHASEINDEX} voltage: {ITEM.LASTVALUE1}' priority: HIGH @@ -1302,177 +1302,6 @@ zabbix_export: macro: '{$UPS.OUTPUT.MAX.WARN}' value: '80' description: 'Maximum output load in % for trigger expression.' - dashboards: - - - name: 'UPS Summary' - pages: - - - widgets: - - - type: PLAIN_TEXT - width: '8' - fields: - - - type: INTEGER - name: show_as_html - value: '0' - - - type: INTEGER - name: show_lines - value: '1' - - - type: ITEM - name: itemids - value: - key: 'system.uptime[sysUpTime.0]' - host: 'APC UPS Symmetra RM SNMP' - - - type: PLAIN_TEXT - x: '8' - width: '8' - fields: - - - type: INTEGER - name: show_as_html - value: '0' - - - type: INTEGER - name: show_lines - value: '1' - - - type: ITEM - name: itemids - value: - key: 'input.fail[upsAdvInputLineFailCause]' - host: 'APC UPS Symmetra RM SNMP' - - - type: PLAIN_TEXT - x: '16' - width: '8' - fields: - - - type: INTEGER - name: show_as_html - value: '0' - - - type: INTEGER - name: show_lines - value: '1' - - - type: ITEM - name: itemids - value: - key: 'output.status[upsBasicOutputStatus]' - host: 'APC UPS Symmetra RM SNMP' - - - type: PLAIN_TEXT - 'y': '2' - width: '8' - fields: - - - type: INTEGER - name: show_as_html - value: '0' - - - type: INTEGER - name: show_lines - value: '1' - - - type: ITEM - name: itemids - value: - key: 'battery.status[upsBasicBatteryStatus]' - host: 'APC UPS Symmetra RM SNMP' - - - type: PLAIN_TEXT - x: '8' - 'y': '2' - width: '8' - fields: - - - type: INTEGER - name: show_as_html - value: '0' - - - type: INTEGER - name: show_lines - value: '1' - - - type: ITEM - name: itemids - value: - key: 'battery.runtime_remaining[upsAdvBatteryRunTimeRemaining]' - host: 'APC UPS Symmetra RM SNMP' - - - type: PLAIN_TEXT - x: '16' - 'y': '2' - width: '8' - fields: - - - type: INTEGER - name: show_as_html - value: '0' - - - type: INTEGER - name: show_lines - value: '1' - - - type: ITEM - name: itemids - value: - key: 'battery.last_replace_date[upsBasicBatteryLastReplaceDate]' - host: 'APC UPS Symmetra RM SNMP' - - - type: GRAPH_CLASSIC - 'y': '4' - width: '8' - height: '7' - fields: - - - type: INTEGER - name: source_type - value: '0' - - - type: GRAPH - name: graphid - value: - name: 'Capacity of the UPS batteries' - host: 'APC UPS Symmetra RM SNMP' - - - type: GRAPH_CLASSIC - x: '8' - 'y': '4' - width: '8' - height: '7' - fields: - - - type: INTEGER - name: source_type - value: '0' - - - type: GRAPH - name: graphid - value: - name: Voltage - host: 'APC UPS Symmetra RM SNMP' - - - type: GRAPH_CLASSIC - x: '16' - 'y': '4' - width: '8' - height: '7' - fields: - - - type: INTEGER - name: source_type - value: '0' - - - type: GRAPH - name: graphid - value: - name: Output - host: 'APC UPS Symmetra RM SNMP' valuemaps: - name: 'PowerNet-MIB::uioSensorStatusAlarmStatus' diff --git a/templates/power/apc/apc_ups_symmetra_rx_snmp/template_power_apc_ups_symmetra_rx_snmp.yaml b/templates/power/apc/apc_ups_symmetra_rx_snmp/template_power_apc_ups_symmetra_rx_snmp.yaml index 7d3725419fb..1bef1935b22 100644 --- a/templates/power/apc/apc_ups_symmetra_rx_snmp/template_power_apc_ups_symmetra_rx_snmp.yaml +++ b/templates/power/apc/apc_ups_symmetra_rx_snmp/template_power_apc_ups_symmetra_rx_snmp.yaml @@ -1,6 +1,6 @@ zabbix_export: version: '5.4' - date: '2021-04-15T12:18:44Z' + date: '2021-05-09T00:00:00Z' groups: - name: Templates/Power @@ -48,7 +48,7 @@ zabbix_export: tag: Status triggers: - - expression: '{last()} < {$BATTERY.CAPACITY.MIN.WARN}' + expression: 'last(/APC UPS Symmetra RX SNMP/battery.capacity[upsHighPrecBatteryCapacity]) < {$BATTERY.CAPACITY.MIN.WARN}' name: 'Battery has low capacity (below {$BATTERY.CAPACITY.MIN.WARN}%)' opdata: 'Current capacity: {ITEM.LASTVALUE1}' priority: HIGH @@ -117,7 +117,7 @@ zabbix_export: tag: Status triggers: - - expression: '{last()}=2' + expression: 'last(/APC UPS Symmetra RX SNMP/battery.replace_indicator[upsAdvBatteryReplaceIndicator])=2' name: 'Battery needs replacement' priority: HIGH description: 'A battery installed has an internal error condition.' @@ -172,12 +172,12 @@ zabbix_export: tag: Status triggers: - - expression: '{last()}=4' + expression: 'last(/APC UPS Symmetra RX SNMP/battery.status[upsBasicBatteryStatus])=4' name: 'Battery has an internal error condition' priority: AVERAGE description: 'A battery installed has an internal error condition.' - - expression: '{last()}=3' + expression: 'last(/APC UPS Symmetra RX SNMP/battery.status[upsBasicBatteryStatus])=3' name: 'Battery is Low' priority: AVERAGE description: 'The UPS will be unable to sustain the current load, and its services will be lost if power is not restored.' @@ -207,7 +207,7 @@ zabbix_export: tag: Status triggers: - - expression: '{min({$TIME.PERIOD})} > {$BATTERY.TEMP.MAX.WARN}' + expression: 'min(/APC UPS Symmetra RX SNMP/battery.temperature[upsHighPrecBatteryTemperature],{$TIME.PERIOD}) > {$BATTERY.TEMP.MAX.WARN}' name: 'Battery has high temperature (over {$BATTERY.TEMP.MAX.WARN}℃ for {$TIME.PERIOD})' opdata: 'Current temperature: {ITEM.LASTVALUE1}' priority: HIGH @@ -301,7 +301,7 @@ zabbix_export: tag: Status triggers: - - expression: '{min({$TIME.PERIOD})} > 0 and ({min({$TIME.PERIOD})} > {$UPS.INPUT_FREQ.MAX.WARN} or {max({$TIME.PERIOD})} < {$UPS.INPUT_FREQ.MIN.WARN})' + expression: 'min(/APC UPS Symmetra RX SNMP/input.frequency[upsHighPrecInputFrequency],{$TIME.PERIOD}) > 0 and (min(/APC UPS Symmetra RX SNMP/input.frequency[upsHighPrecInputFrequency],{$TIME.PERIOD}) > {$UPS.INPUT_FREQ.MAX.WARN} or max(/APC UPS Symmetra RX SNMP/input.frequency[upsHighPrecInputFrequency],{$TIME.PERIOD}) < {$UPS.INPUT_FREQ.MIN.WARN})' name: 'Unacceptable input frequency (out of range {$UPS.INPUT_FREQ.MIN.WARN}-{$UPS.INPUT_FREQ.MAX.WARN}Hz for {$TIME.PERIOD})' opdata: 'Current frequency: {ITEM.LASTVALUE1}' priority: HIGH @@ -330,7 +330,7 @@ zabbix_export: tag: Status triggers: - - expression: '{min({$TIME.PERIOD})} > 0 and ({min({$TIME.PERIOD})} > {$UPS.INPUT_VOLT.MAX.WARN} or {max({$TIME.PERIOD})} < {$UPS.INPUT_VOLT.MIN.WARN})' + expression: 'min(/APC UPS Symmetra RX SNMP/input.voltage[upsHighPrecInputLineVoltage],{$TIME.PERIOD}) > 0 and (min(/APC UPS Symmetra RX SNMP/input.voltage[upsHighPrecInputLineVoltage],{$TIME.PERIOD}) > {$UPS.INPUT_VOLT.MAX.WARN} or max(/APC UPS Symmetra RX SNMP/input.voltage[upsHighPrecInputLineVoltage],{$TIME.PERIOD}) < {$UPS.INPUT_VOLT.MIN.WARN})' name: 'Unacceptable input voltage (out of range {$UPS.INPUT_VOLT.MIN.WARN}-{$UPS.INPUT_VOLT.MAX.WARN}V for {$TIME.PERIOD})' opdata: 'Current voltage: {ITEM.LASTVALUE1}' priority: HIGH @@ -383,7 +383,7 @@ zabbix_export: tag: Status triggers: - - expression: '{min({$TIME.PERIOD})} > {$UPS.OUTPUT.MAX.WARN}' + expression: 'min(/APC UPS Symmetra RX SNMP/output.load[upsHighPrecOutputLoad],{$TIME.PERIOD}) > {$UPS.OUTPUT.MAX.WARN}' name: 'Output load is high (over {$UPS.OUTPUT.MAX.WARN}% for {$TIME.PERIOD})' opdata: 'Current load: {ITEM.LASTVALUE1}' priority: HIGH @@ -415,47 +415,47 @@ zabbix_export: tag: Status triggers: - - expression: '{last()}=16' + expression: 'last(/APC UPS Symmetra RX SNMP/output.status[upsBasicOutputStatus])=16' name: 'UPS is Emergency Static Bypass' priority: AVERAGE - - expression: '{last()}=10' + expression: 'last(/APC UPS Symmetra RX SNMP/output.status[upsBasicOutputStatus])=10' name: 'UPS is Hardware Failure Bypass' priority: AVERAGE - - expression: '{last()}=7' + expression: 'last(/APC UPS Symmetra RX SNMP/output.status[upsBasicOutputStatus])=7' name: 'UPS is Off' priority: AVERAGE - - expression: '{last()}=3' + expression: 'last(/APC UPS Symmetra RX SNMP/output.status[upsBasicOutputStatus])=3' name: 'UPS is on battery' priority: AVERAGE - - expression: '{last()}=4' + expression: 'last(/APC UPS Symmetra RX SNMP/output.status[upsBasicOutputStatus])=4' name: 'UPS is on Smart Boost' priority: AVERAGE - - expression: '{last()}=12' + expression: 'last(/APC UPS Symmetra RX SNMP/output.status[upsBasicOutputStatus])=12' name: 'UPS is On Smart Trim' priority: AVERAGE - - expression: '{last()}=8' + expression: 'last(/APC UPS Symmetra RX SNMP/output.status[upsBasicOutputStatus])=8' name: 'UPS is Rebooting' priority: AVERAGE - - expression: '{last()}=11' + expression: 'last(/APC UPS Symmetra RX SNMP/output.status[upsBasicOutputStatus])=11' name: 'UPS is Sleeping Until Power Return' priority: AVERAGE - - expression: '{last()}=6' + expression: 'last(/APC UPS Symmetra RX SNMP/output.status[upsBasicOutputStatus])=6' name: 'UPS is Software Bypass' priority: AVERAGE - - expression: '{last()}=9' + expression: 'last(/APC UPS Symmetra RX SNMP/output.status[upsBasicOutputStatus])=9' name: 'UPS is Switched Bypass' priority: AVERAGE - - expression: '{last()}=5' + expression: 'last(/APC UPS Symmetra RX SNMP/output.status[upsBasicOutputStatus])=5' name: 'UPS is Timed Sleeping' priority: AVERAGE - @@ -605,7 +605,7 @@ zabbix_export: tag: General triggers: - - expression: '{diff()}=1 and {strlen()}>0' + expression: '(last(/APC UPS Symmetra RX SNMP/system.name[sysName.0],#1)<>last(/APC UPS Symmetra RX SNMP/system.name[sysName.0],#2))=1 and length(last(/APC UPS Symmetra RX SNMP/system.name[sysName.0]))>0' name: 'System name has changed (new name: {ITEM.VALUE})' priority: INFO description: 'System name has changed. Ack to close.' @@ -681,7 +681,7 @@ zabbix_export: tag: Status triggers: - - expression: '{last()}<10m' + expression: 'last(/APC UPS Symmetra RX SNMP/system.uptime[sysUpTime.0])<10m' name: '{HOST.NAME} has been restarted (uptime < 10m)' priority: WARNING description: 'Uptime is less than 10 minutes' @@ -689,7 +689,7 @@ zabbix_export: dependencies: - name: 'No SNMP data collection' - expression: '{APC UPS Symmetra RX SNMP:zabbix[host,snmp,available].max({$SNMP.TIMEOUT})}=0' + expression: 'max(/APC UPS Symmetra RX SNMP/zabbix[host,snmp,available],{$SNMP.TIMEOUT})=0' - name: 'SNMP agent availability' type: INTERNAL @@ -707,7 +707,7 @@ zabbix_export: tag: Status triggers: - - expression: '{max({$SNMP.TIMEOUT})}=0' + expression: 'max(/APC UPS Symmetra RX SNMP/zabbix[host,snmp,available],{$SNMP.TIMEOUT})=0' name: 'No SNMP data collection' opdata: 'Current state: {ITEM.LASTVALUE1}' priority: WARNING @@ -804,7 +804,7 @@ zabbix_export: tag: Status trigger_prototypes: - - expression: '{regexp("^(0)[0|1]{15}$")}=1' + expression: 'find(/APC UPS Symmetra RX SNMP/battery.pack.cartridge_health[upsHighPrecBatteryPackCartridgeHealth.{#BATTERY_PACK}.{#CARTRIDGE_INDEX}],,"regexp","^(0)[0|1]{15}$")=1' name: '{#BATTERY_PACK}.{#CARTRIDGE_INDEX}: Battery lifetime is not okay' opdata: 'Current bit set: {ITEM.LASTVALUE1}' priority: WARNING @@ -850,7 +850,7 @@ zabbix_export: tag: Status trigger_prototypes: - - expression: '{regexp("^(0{16})$")}=0' + expression: 'find(/APC UPS Symmetra RX SNMP/battery.pack.status[upsHighPrecBatteryPackCartridgeStatus.{#BATTERY_PACK}.{#CARTRIDGE_INDEX}],,"regexp","^(0{16})$")=0' name: '{#BATTERY_PACK}.{#CARTRIDGE_INDEX}: Battery status is not okay' opdata: 'Current bit set: {ITEM.LASTVALUE1}' priority: WARNING @@ -893,7 +893,7 @@ zabbix_export: tag: Status trigger_prototypes: - - expression: '{min({$TIME.PERIOD})} > {$BATTERY.TEMP.MAX.WARN}' + expression: 'min(/APC UPS Symmetra RX SNMP/battery.temperature[upsHighPrecBatteryPackTemperature.{#BATTERY_PACK}.{#CARTRIDGE_INDEX}],{$TIME.PERIOD}) > {$BATTERY.TEMP.MAX.WARN}' name: '{#BATTERY_PACK}.{#CARTRIDGE_INDEX}: Battery has high temperature (over {$BATTERY.TEMP.MAX.WARN}℃ for {$TIME.PERIOD})' opdata: 'Current temperature: {ITEM.LASTVALUE1}' priority: HIGH @@ -971,17 +971,17 @@ zabbix_export: tag: Status trigger_prototypes: - - expression: '{last()}=3' + expression: 'last(/APC UPS Symmetra RX SNMP/external.sensor.status[uioSensorStatusAlarmStatus.1.{#SNMPINDEX}])=3' name: '{#EXTERNAL_SENSOR1_NAME}: Sensor has status Critical' priority: HIGH description: 'The external sensor has returned a value greater than the critical threshold.' - - expression: '{last()}=4' + expression: 'last(/APC UPS Symmetra RX SNMP/external.sensor.status[uioSensorStatusAlarmStatus.1.{#SNMPINDEX}])=4' name: '{#EXTERNAL_SENSOR1_NAME}: Sensor has status Not Applicable' priority: INFO description: 'The external sensor does not work or is not connected.' - - expression: '{last()}=2' + expression: 'last(/APC UPS Symmetra RX SNMP/external.sensor.status[uioSensorStatusAlarmStatus.1.{#SNMPINDEX}])=2' name: '{#EXTERNAL_SENSOR1_NAME}: Sensor has status Warning' priority: AVERAGE description: 'The external sensor has returned a value greater than the warning threshold.' @@ -1076,17 +1076,17 @@ zabbix_export: tag: Status trigger_prototypes: - - expression: '{last()}=3' + expression: 'last(/APC UPS Symmetra RX SNMP/external.sensor.status[uioSensorStatusAlarmStatus.2.{#SNMPINDEX}])=3' name: '{#EXTERNAL_SENSOR2_NAME}: Sensor has status Critical' priority: HIGH description: 'The external sensor has returned a value greater than the critical threshold.' - - expression: '{last()}=4' + expression: 'last(/APC UPS Symmetra RX SNMP/external.sensor.status[uioSensorStatusAlarmStatus.2.{#SNMPINDEX}])=4' name: '{#EXTERNAL_SENSOR2_NAME}: Sensor has status Not Applicable' priority: INFO description: 'The external sensor does not work or is not connected.' - - expression: '{last()}=2' + expression: 'last(/APC UPS Symmetra RX SNMP/external.sensor.status[uioSensorStatusAlarmStatus.2.{#SNMPINDEX}])=2' name: '{#EXTERNAL_SENSOR2_NAME}: Sensor has status Warning' priority: AVERAGE description: 'The external sensor has returned a value greater than the warning threshold.' @@ -1181,7 +1181,7 @@ zabbix_export: tag: Status trigger_prototypes: - - expression: '{min({$TIME.PERIOD})} > {$UPS.INPUT_VOLT.MAX.WARN} or {max({$TIME.PERIOD})} < {$UPS.INPUT_VOLT.MIN.WARN}' + expression: 'min(/APC UPS Symmetra RX SNMP/phase.input.voltage[upsPhaseInputVoltage.1.1.{#PHASEINDEX}],{$TIME.PERIOD}) > {$UPS.INPUT_VOLT.MAX.WARN} or max(/APC UPS Symmetra RX SNMP/phase.input.voltage[upsPhaseInputVoltage.1.1.{#PHASEINDEX}],{$TIME.PERIOD}) < {$UPS.INPUT_VOLT.MIN.WARN}' name: '{#PHASEINDEX}: Unacceptable phase {#PHASEINDEX} input voltage (out of range {$UPS.INPUT_VOLT.MIN.WARN}-{$UPS.INPUT_VOLT.MAX.WARN}V for {$TIME.PERIOD})' opdata: 'Current phase {#PHASEINDEX} voltage: {ITEM.LASTVALUE1}' priority: HIGH @@ -1261,7 +1261,7 @@ zabbix_export: tag: Status trigger_prototypes: - - expression: '{min({$TIME.PERIOD})} > {$UPS.INPUT_VOLT.MAX.WARN} or {max({$TIME.PERIOD})} < {$UPS.INPUT_VOLT.MIN.WARN}' + expression: 'min(/APC UPS Symmetra RX SNMP/phase.output.voltage[upsPhaseOutputVoltage.1.1.{#PHASEINDEX}],{$TIME.PERIOD}) > {$UPS.INPUT_VOLT.MAX.WARN} or max(/APC UPS Symmetra RX SNMP/phase.output.voltage[upsPhaseOutputVoltage.1.1.{#PHASEINDEX}],{$TIME.PERIOD}) < {$UPS.INPUT_VOLT.MIN.WARN}' name: '{#PHASEINDEX}: Unacceptable phase {#PHASEINDEX} output voltage (out of range {$UPS.INPUT_VOLT.MIN.WARN}-{$UPS.INPUT_VOLT.MAX.WARN}V for {$TIME.PERIOD})' opdata: 'Current phase {#PHASEINDEX} voltage: {ITEM.LASTVALUE1}' priority: HIGH @@ -1302,177 +1302,6 @@ zabbix_export: macro: '{$UPS.OUTPUT.MAX.WARN}' value: '80' description: 'Maximum output load in % for trigger expression.' - dashboards: - - - name: 'UPS Summary' - pages: - - - widgets: - - - type: PLAIN_TEXT - width: '8' - fields: - - - type: INTEGER - name: show_as_html - value: '0' - - - type: INTEGER - name: show_lines - value: '1' - - - type: ITEM - name: itemids - value: - key: 'system.uptime[sysUpTime.0]' - host: 'APC UPS Symmetra RX SNMP' - - - type: PLAIN_TEXT - x: '8' - width: '8' - fields: - - - type: INTEGER - name: show_as_html - value: '0' - - - type: INTEGER - name: show_lines - value: '1' - - - type: ITEM - name: itemids - value: - key: 'input.fail[upsAdvInputLineFailCause]' - host: 'APC UPS Symmetra RX SNMP' - - - type: PLAIN_TEXT - x: '16' - width: '8' - fields: - - - type: INTEGER - name: show_as_html - value: '0' - - - type: INTEGER - name: show_lines - value: '1' - - - type: ITEM - name: itemids - value: - key: 'output.status[upsBasicOutputStatus]' - host: 'APC UPS Symmetra RX SNMP' - - - type: PLAIN_TEXT - 'y': '2' - width: '8' - fields: - - - type: INTEGER - name: show_as_html - value: '0' - - - type: INTEGER - name: show_lines - value: '1' - - - type: ITEM - name: itemids - value: - key: 'battery.status[upsBasicBatteryStatus]' - host: 'APC UPS Symmetra RX SNMP' - - - type: PLAIN_TEXT - x: '8' - 'y': '2' - width: '8' - fields: - - - type: INTEGER - name: show_as_html - value: '0' - - - type: INTEGER - name: show_lines - value: '1' - - - type: ITEM - name: itemids - value: - key: 'battery.runtime_remaining[upsAdvBatteryRunTimeRemaining]' - host: 'APC UPS Symmetra RX SNMP' - - - type: PLAIN_TEXT - x: '16' - 'y': '2' - width: '8' - fields: - - - type: INTEGER - name: show_as_html - value: '0' - - - type: INTEGER - name: show_lines - value: '1' - - - type: ITEM - name: itemids - value: - key: 'battery.last_replace_date[upsBasicBatteryLastReplaceDate]' - host: 'APC UPS Symmetra RX SNMP' - - - type: GRAPH_CLASSIC - 'y': '4' - width: '8' - height: '7' - fields: - - - type: INTEGER - name: source_type - value: '0' - - - type: GRAPH - name: graphid - value: - name: 'Capacity of the UPS batteries' - host: 'APC UPS Symmetra RX SNMP' - - - type: GRAPH_CLASSIC - x: '8' - 'y': '4' - width: '8' - height: '7' - fields: - - - type: INTEGER - name: source_type - value: '0' - - - type: GRAPH - name: graphid - value: - name: Voltage - host: 'APC UPS Symmetra RX SNMP' - - - type: GRAPH_CLASSIC - x: '16' - 'y': '4' - width: '8' - height: '7' - fields: - - - type: INTEGER - name: source_type - value: '0' - - - type: GRAPH - name: graphid - value: - name: Output - host: 'APC UPS Symmetra RX SNMP' valuemaps: - name: 'PowerNet-MIB::uioSensorStatusAlarmStatus' diff --git a/templates/san/huawei_5300v5_snmp/template_san_huawei_5300v5_snmp.yaml b/templates/san/huawei_5300v5_snmp/template_san_huawei_5300v5_snmp.yaml index 448373cd6f4..14cf4696107 100644 --- a/templates/san/huawei_5300v5_snmp/template_san_huawei_5300v5_snmp.yaml +++ b/templates/san/huawei_5300v5_snmp/template_san_huawei_5300v5_snmp.yaml @@ -1,6 +1,6 @@ zabbix_export: version: '5.4' - date: '2021-04-22T11:28:44Z' + date: '2021-05-09T00:00:00Z' groups: - name: Templates/SAN @@ -95,7 +95,7 @@ zabbix_export: value: Huawei triggers: - - expression: '{diff()}=1 and {strlen()}>0' + expression: '(last(/Huawei OceanStor 5300 V5 SNMP/huawei.5300.v5[version],#1)<>last(/Huawei OceanStor 5300 V5 SNMP/huawei.5300.v5[version],#2))=1 and length(last(/Huawei OceanStor 5300 V5 SNMP/huawei.5300.v5[version]))>0' name: 'OceanStor 5300 V5: Storage version has been changed' priority: INFO description: 'OceanStor 5300 V5 version has changed. Ack to close.' @@ -131,7 +131,7 @@ zabbix_export: value: 'BBU {#ID}' trigger_prototypes: - - expression: '{last()}<>1' + expression: 'last(/Huawei OceanStor 5300 V5 SNMP/huawei.5300.v5[hwInfoBBUHealthStatus, "{#ID}:{#LOCATION}"])<>1' name: 'BBU {#ID} on {#LOCATION}: Health status is not Normal' priority: HIGH - @@ -156,7 +156,7 @@ zabbix_export: value: 'BBU {#ID}' trigger_prototypes: - - expression: '{last()}<>2' + expression: 'last(/Huawei OceanStor 5300 V5 SNMP/huawei.5300.v5[hwInfoBBURunningStatus, "{#ID}:{#LOCATION}"])<>2' name: 'BBU {#ID} on {#LOCATION}: Running status is not Online' priority: AVERAGE - @@ -182,7 +182,7 @@ zabbix_export: value: 'Controller {#ID}' trigger_prototypes: - - expression: '{min(5m)}>{$CPU.UTIL.CRIT}' + expression: 'min(/Huawei OceanStor 5300 V5 SNMP/huawei.5300.v5[hwInfoControllerCPUUsage, "{#ID}"],5m)>{$CPU.UTIL.CRIT}' name: 'Controller {#ID}: High CPU utilization (over {$CPU.UTIL.CRIT}% for 5m)' opdata: 'Current utilization: {ITEM.LASTVALUE1}' priority: WARNING @@ -209,7 +209,7 @@ zabbix_export: value: 'Controller {#ID}' trigger_prototypes: - - expression: '{last()}<>1' + expression: 'last(/Huawei OceanStor 5300 V5 SNMP/huawei.5300.v5[hwInfoControllerHealthStatus, "{#ID}"])<>1' name: 'Controller {#ID}: Health status is not Normal' priority: HIGH - @@ -226,7 +226,7 @@ zabbix_export: value: 'Controller {#ID}' trigger_prototypes: - - expression: '{min({$HUAWEI.5300.MEM.MAX.TIME})}>{$HUAWEI.5300.MEM.MAX.WARN}' + expression: 'min(/Huawei OceanStor 5300 V5 SNMP/huawei.5300.v5[hwInfoControllerMemoryUsage, "{#ID}"],{$HUAWEI.5300.MEM.MAX.TIME})>{$HUAWEI.5300.MEM.MAX.WARN}' name: 'Controller {#ID}: Memory usage is too high (over {$HUAWEI.5300.MEM.MAX.WARN} for {$HUAWEI.5300.MEM.MAX.TIME})' priority: AVERAGE - @@ -249,7 +249,7 @@ zabbix_export: value: 'Controller {#ID}' trigger_prototypes: - - expression: '{diff()}=1' + expression: '(last(/Huawei OceanStor 5300 V5 SNMP/huawei.5300.v5[hwInfoControllerRole, "{#ID}"],#1)<>last(/Huawei OceanStor 5300 V5 SNMP/huawei.5300.v5[hwInfoControllerRole, "{#ID}"],#2))=1' name: 'Controller {#ID}: Role has been changed' priority: WARNING manual_close: 'YES' @@ -275,7 +275,7 @@ zabbix_export: value: 'Controller {#ID}' trigger_prototypes: - - expression: '{last()}<>27' + expression: 'last(/Huawei OceanStor 5300 V5 SNMP/huawei.5300.v5[hwInfoControllerRunningStatus, "{#ID}"])<>27' name: 'Controller {#ID}: Running status is not Online' priority: AVERAGE graph_prototypes: @@ -336,7 +336,7 @@ zabbix_export: value: 'Disk {#NAME}' trigger_prototypes: - - expression: '{last()}<>1' + expression: 'last(/Huawei OceanStor 5300 V5 SNMP/huawei.5300.v5[hwInfoDiskHealthStatus, "{#ID}"])<>1' name: 'Disk {#MODEL} on {#LOCATION}: Health status is not Normal' priority: HIGH - @@ -361,7 +361,7 @@ zabbix_export: value: 'Disk {#MODEL}' trigger_prototypes: - - expression: '{last()}<>27' + expression: 'last(/Huawei OceanStor 5300 V5 SNMP/huawei.5300.v5[hwInfoDiskRunningStatus, "{#ID}"])<>27' name: 'Disk {#MODEL} on {#LOCATION}: Running status is not Online' priority: AVERAGE - @@ -378,7 +378,7 @@ zabbix_export: value: 'Disk {#MODEL}' trigger_prototypes: - - expression: '{min({$HUAWEI.5300.DISK.TEMP.MAX.TIME})}>{$HUAWEI.5300.DISK.TEMP.MAX.WARN:"{#MODEL}"}' + expression: 'min(/Huawei OceanStor 5300 V5 SNMP/huawei.5300.v5[hwInfoDiskTemperature, "{#ID}"],{$HUAWEI.5300.DISK.TEMP.MAX.TIME})>{$HUAWEI.5300.DISK.TEMP.MAX.WARN:"{#MODEL}"}' name: 'Disk {#MODEL} on {#LOCATION}: Temperature is too high (over {$HUAWEI.5300.DISK.TEMP.MAX.WARN:"{#MODEL}"} for {$HUAWEI.5300.DISK.TEMP.MAX.TIME})' opdata: 'Current value: {ITEM.LASTVALUE}' priority: HIGH @@ -412,7 +412,7 @@ zabbix_export: value: 'Enclosure {#NAME}' trigger_prototypes: - - expression: '{last()}<>1' + expression: 'last(/Huawei OceanStor 5300 V5 SNMP/huawei.5300.v5[hwInfoEnclosureHealthStatus, "{#NAME}"])<>1' name: 'Enclosure {#NAME}: Health status is not Normal' priority: HIGH - @@ -437,7 +437,7 @@ zabbix_export: value: 'Enclosure {#NAME}' trigger_prototypes: - - expression: '{last()}<>27' + expression: 'last(/Huawei OceanStor 5300 V5 SNMP/huawei.5300.v5[hwInfoEnclosureRunningStatus, "{#NAME}"])<>27' name: 'Enclosure {#NAME}: Running status is not Online' priority: AVERAGE - @@ -454,7 +454,7 @@ zabbix_export: value: 'Enclosure {#NAME}' trigger_prototypes: - - expression: '{min({$HUAWEI.5300.TEMP.MAX.TIME})}>{$HUAWEI.5300.TEMP.MAX.WARN}' + expression: 'min(/Huawei OceanStor 5300 V5 SNMP/huawei.5300.v5[hwInfoEnclosureTemperature, "{#NAME}"],{$HUAWEI.5300.TEMP.MAX.TIME})>{$HUAWEI.5300.TEMP.MAX.WARN}' name: 'Enclosure {#NAME}: Temperature is too high (over {$HUAWEI.5300.TEMP.MAX.WARN} for {$HUAWEI.5300.TEMP.MAX.TIME})' opdata: 'Current value: {ITEM.LASTVALUE}' priority: HIGH @@ -488,7 +488,7 @@ zabbix_export: value: 'FAN {#ID}' trigger_prototypes: - - expression: '{last()}<>1' + expression: 'last(/Huawei OceanStor 5300 V5 SNMP/huawei.5300.v5[hwInfoFanHealthStatus, "{#ID}:{#LOCATION}"])<>1' name: 'FAN {#ID} on {#LOCATION}: Health status is not Normal' priority: HIGH - @@ -513,7 +513,7 @@ zabbix_export: value: 'FAN {#ID}' trigger_prototypes: - - expression: '{last()}<>2' + expression: 'last(/Huawei OceanStor 5300 V5 SNMP/huawei.5300.v5[hwInfoFanRunningStatus, "{#ID}:{#LOCATION}"])<>2' name: 'FAN {#ID} on {#LOCATION}: Running status is not Running' priority: AVERAGE - @@ -543,7 +543,7 @@ zabbix_export: value: 'LUN {#NAME}' trigger_prototypes: - - expression: '{min({$HUAWEI.5300.LUN.IO.TIME.MAX.TIME})}>{$HUAWEI.5300.LUN.IO.TIME.MAX.WARN}' + expression: 'min(/Huawei OceanStor 5300 V5 SNMP/huawei.5300.v5[hwPerfLunAverageIOResponseTime, "{#NAME}"],{$HUAWEI.5300.LUN.IO.TIME.MAX.TIME})>{$HUAWEI.5300.LUN.IO.TIME.MAX.WARN}' name: 'LUN {#NAME}: Average I/O response time is too high (over {$HUAWEI.5300.LUN.IO.TIME.MAX.WARN}ms for {$HUAWEI.5300.LUN.IO.TIME.MAX.TIME})' priority: WARNING - @@ -708,7 +708,7 @@ zabbix_export: value: 'LUN {#NAME}' trigger_prototypes: - - expression: '{last()}<>1' + expression: 'last(/Huawei OceanStor 5300 V5 SNMP/huawei.5300.v5[hwStorageLunStatus, "{#NAME}"])<>1' name: 'LUN {#NAME}: Status is not Normal' priority: AVERAGE graph_prototypes: @@ -795,7 +795,7 @@ zabbix_export: value: 'Node {#NODE}' trigger_prototypes: - - expression: '{min(5m)}>{$CPU.UTIL.CRIT}' + expression: 'min(/Huawei OceanStor 5300 V5 SNMP/huawei.5300.v5[hwPerfNodeCPUUsage, "{#NODE}"],5m)>{$CPU.UTIL.CRIT}' name: 'Node {#NODE}: High CPU utilization (over {$CPU.UTIL.CRIT}% for 5m)' opdata: 'Current utilization: {ITEM.LASTVALUE1}' priority: WARNING @@ -815,7 +815,7 @@ zabbix_export: value: 'Node {#NODE}' trigger_prototypes: - - expression: '{min({$HUAWEI.5300.NODE.IO.DELAY.MAX.TIME})}>{$HUAWEI.5300.NODE.IO.DELAY.MAX.WARN}' + expression: 'min(/Huawei OceanStor 5300 V5 SNMP/huawei.5300.v5[hwPerfNodeDelay, "{#NODE}"],{$HUAWEI.5300.NODE.IO.DELAY.MAX.TIME})>{$HUAWEI.5300.NODE.IO.DELAY.MAX.WARN}' name: 'Node {#NODE}: Average I/O latency is too high (over {$HUAWEI.5300.NODE.IO.DELAY.MAX.WARN}ms for {$HUAWEI.5300.NODE.IO.DELAY.MAX.TIME})' priority: WARNING - @@ -988,7 +988,7 @@ zabbix_export: key: 'huawei.5300.v5[hwInfoStoragePoolFreeCapacityPct, "{#NAME}"]' history: 7d units: '%' - params: 'last("huawei.5300.v5[hwInfoStoragePoolSubscribedCapacity, \"{#NAME}\"]")/last("huawei.5300.v5[hwInfoStoragePoolTotalCapacity, \"{#NAME}\"]")*100' + params: 'last(//huawei.5300.v5[hwInfoStoragePoolSubscribedCapacity, "{#NAME}"])/last(//huawei.5300.v5[hwInfoStoragePoolTotalCapacity, "{#NAME}"])*100' description: 'Used capacity of a storage pool in percents.' tags: - @@ -996,7 +996,7 @@ zabbix_export: value: 'Pool {#MODEL}' trigger_prototypes: - - expression: '{min({$HUAWEI.5300.POOL.CAPACITY.THRESH.TIME})}>{#THRESHOLD}' + expression: 'min(/Huawei OceanStor 5300 V5 SNMP/huawei.5300.v5[hwInfoStoragePoolFreeCapacityPct, "{#NAME}"],{$HUAWEI.5300.POOL.CAPACITY.THRESH.TIME})>{#THRESHOLD}' name: 'Pool {#NAME}: Used capacity is too high (over {#THRESHOLD}%)' priority: AVERAGE - @@ -1021,7 +1021,7 @@ zabbix_export: value: 'Pool {#NAME}' trigger_prototypes: - - expression: '{last()}<>1' + expression: 'last(/Huawei OceanStor 5300 V5 SNMP/huawei.5300.v5[hwInfoStoragePoolHealthStatus, "{#NAME}"])<>1' name: 'Pool {#NAME}: Health status is not Normal' priority: HIGH - @@ -1046,7 +1046,7 @@ zabbix_export: value: 'Pool {#MODEL}' trigger_prototypes: - - expression: '{last()}<>27' + expression: 'last(/Huawei OceanStor 5300 V5 SNMP/huawei.5300.v5[hwInfoStoragePoolRunningStatus, "{#NAME}"])<>27' name: 'Pool {#NAME}: Running status is not Online' priority: AVERAGE - diff --git a/templates/san/netapp_aff_a700_http/template_san_netapp_aff_a700_http.yaml b/templates/san/netapp_aff_a700_http/template_san_netapp_aff_a700_http.yaml index 9cd746ec62f..7d13f7086d4 100644 --- a/templates/san/netapp_aff_a700_http/template_san_netapp_aff_a700_http.yaml +++ b/templates/san/netapp_aff_a700_http/template_san_netapp_aff_a700_http.yaml @@ -1,6 +1,6 @@ zabbix_export: version: '5.4' - date: '2021-04-22T11:28:43Z' + date: '2021-05-09T00:00:00Z' groups: - name: Templates/SAN @@ -278,9 +278,9 @@ zabbix_export: value_type: FLOAT units: '!ms' params: | - (last(netapp.cluster.statistics.latency_raw.other) - prev(netapp.cluster.statistics.latency_raw.other)) / - (last(netapp.cluster.statistics.iops_raw.other) - prev(netapp.cluster.statistics.iops_raw.other) + - (last(netapp.cluster.statistics.iops_raw.other) - prev(netapp.cluster.statistics.iops_raw.other) = 0) ) * 0.001 + (last(//netapp.cluster.statistics.latency_raw.other) - last(//netapp.cluster.statistics.latency_raw.other,#2)) / + (last(//netapp.cluster.statistics.iops_raw.other) - last(//netapp.cluster.statistics.iops_raw.other,#2) + + (last(//netapp.cluster.statistics.iops_raw.other) - last(//netapp.cluster.statistics.iops_raw.other,#2) = 0) ) * 0.001 description: 'The average latency per I/O operation in milliseconds observed at the storage object. Performance metric for other I/O operations. Other I/O operations can be metadata operations, such as directory lookups and so on.' tags: - @@ -294,9 +294,9 @@ zabbix_export: value_type: FLOAT units: '!ms' params: | - (last(netapp.cluster.statistics.latency_raw.read) - prev(netapp.cluster.statistics.latency_raw.read)) / - ( last(netapp.cluster.statistics.iops_raw.read) - prev(netapp.cluster.statistics.iops_raw.read) + - (last(netapp.cluster.statistics.iops_raw.read) - prev(netapp.cluster.statistics.iops_raw.read) = 0) ) * 0.001 + (last(//netapp.cluster.statistics.latency_raw.read) - last(//netapp.cluster.statistics.latency_raw.read,#2)) / + ( last(//netapp.cluster.statistics.iops_raw.read) - last(//netapp.cluster.statistics.iops_raw.read,#2) + + (last(//netapp.cluster.statistics.iops_raw.read) - last(//netapp.cluster.statistics.iops_raw.read,#2) = 0) ) * 0.001 description: 'The average latency per I/O operation in milliseconds observed at the storage object. Performance metric for read I/O operations.' tags: - @@ -310,9 +310,9 @@ zabbix_export: value_type: FLOAT units: '!ms' params: | - (last(netapp.cluster.statistics.latency_raw.total) - prev(netapp.cluster.statistics.latency_raw.total)) / - ( last(netapp.cluster.statistics.iops_raw.total) - prev(netapp.cluster.statistics.iops_raw.total) + - (last(netapp.cluster.statistics.iops_raw.total) - prev(netapp.cluster.statistics.iops_raw.total) = 0) ) * 0.001 + (last(//netapp.cluster.statistics.latency_raw.total) - last(//netapp.cluster.statistics.latency_raw.total,#2)) / + ( last(//netapp.cluster.statistics.iops_raw.total) - last(//netapp.cluster.statistics.iops_raw.total,#2) + + (last(//netapp.cluster.statistics.iops_raw.total) - last(//netapp.cluster.statistics.iops_raw.total,#2) = 0) ) * 0.001 description: 'The average latency per I/O operation in milliseconds observed at the storage object. Performance metric aggregated over all types of I/O operations.' tags: - @@ -326,9 +326,9 @@ zabbix_export: value_type: FLOAT units: '!ms' params: | - (last(netapp.cluster.statistics.latency_raw.write) - prev(netapp.cluster.statistics.latency_raw.write)) / - ( last(netapp.cluster.statistics.iops_raw.write) - prev(netapp.cluster.statistics.iops_raw.write) + - (last(netapp.cluster.statistics.iops_raw.write) - prev(netapp.cluster.statistics.iops_raw.write) = 0) ) * 0.001 + (last(//netapp.cluster.statistics.latency_raw.write) - last(//netapp.cluster.statistics.latency_raw.write,#2)) / + ( last(//netapp.cluster.statistics.iops_raw.write) - last(//netapp.cluster.statistics.iops_raw.write,#2) + + (last(//netapp.cluster.statistics.iops_raw.write) - last(//netapp.cluster.statistics.iops_raw.write,#2) = 0) ) * 0.001 description: 'The average latency per I/O operation in milliseconds observed at the storage object. Peformance metric for write I/O operations.' tags: - @@ -532,7 +532,7 @@ zabbix_export: value: General triggers: - - expression: '({last()}<>"ok")' + expression: '(last(/NetApp AFF A700 by HTTP/netapp.cluster.status)<>"ok")' name: 'Cluster status is abnormal' priority: AVERAGE description: 'Any errors associated with the sample. For example, if the aggregation of data over multiple nodes fails then any of the partial errors might be returned, “ok” on success, or “error” on any internal uncategorized failure. Whenever a sample collection is missed but done at a later time, it is back filled to the previous 15 second timestamp and tagged with "backfilled_data". “Inconsistent_ delta_time” is encountered when the time between two collections is not the same for all nodes. Therefore, the aggregated value might be over or under inflated. “Negative_delta” is returned when an expected monotonically increasing value has decreased in value. “Inconsistent_old_data” is returned when one or more nodes do not have the latest data.' @@ -562,7 +562,7 @@ zabbix_export: value: General triggers: - - expression: '{diff()}=1 and {strlen()}>0' + expression: '(last(/NetApp AFF A700 by HTTP/netapp.cluster.version,#1)<>last(/NetApp AFF A700 by HTTP/netapp.cluster.version,#2))=1 and length(last(/NetApp AFF A700 by HTTP/netapp.cluster.version))>0' name: 'Version has changed (new version: {ITEM.VALUE})' priority: INFO description: '__RESOURCE__ version has changed. Ack to close.' @@ -746,9 +746,9 @@ zabbix_export: value: 'Chassis "{#ID}"' trigger_prototypes: - - expression: '({diff()}=1 and {last()}="error")' + expression: '((last(/NetApp AFF A700 by HTTP/netapp.chassis.state[{#ID}],#1)<>last(/NetApp AFF A700 by HTTP/netapp.chassis.state[{#ID}],#2))=1 and last(/NetApp AFF A700 by HTTP/netapp.chassis.state[{#ID}])="error")' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '({diff()}=1 and {last()}="ok")' + recovery_expression: '((last(/NetApp AFF A700 by HTTP/netapp.chassis.state[{#ID}],#1)<>last(/NetApp AFF A700 by HTTP/netapp.chassis.state[{#ID}],#2))=1 and last(/NetApp AFF A700 by HTTP/netapp.chassis.state[{#ID}])="ok")' name: '{#ID}: Chassis has something errors' priority: AVERAGE description: 'Something is wrong with the chassis.' @@ -802,9 +802,9 @@ zabbix_export: value: 'Node "{#NODENAME}" disks' trigger_prototypes: - - expression: '({diff()}=1 and {last()}<>"present")' + expression: '((last(/NetApp AFF A700 by HTTP/netapp.disk.state[{#NODENAME},{#DISKNAME}],#1)<>last(/NetApp AFF A700 by HTTP/netapp.disk.state[{#NODENAME},{#DISKNAME}],#2))=1 and last(/NetApp AFF A700 by HTTP/netapp.disk.state[{#NODENAME},{#DISKNAME}])<>"present")' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '({diff()}=1 and {last()}="present")' + recovery_expression: '((last(/NetApp AFF A700 by HTTP/netapp.disk.state[{#NODENAME},{#DISKNAME}],#1)<>last(/NetApp AFF A700 by HTTP/netapp.disk.state[{#NODENAME},{#DISKNAME}],#2))=1 and last(/NetApp AFF A700 by HTTP/netapp.disk.state[{#NODENAME},{#DISKNAME}])="present")' name: '{#DISKNAME}: Disk of the Node "{#NODENAME}" has state different from "present"' priority: AVERAGE description: 'Something is wrong with the disk.' @@ -855,9 +855,9 @@ zabbix_export: value: 'Chassis "{#CHASSISID}"' trigger_prototypes: - - expression: '({diff()}=1 and {last()}="error")' + expression: '((last(/NetApp AFF A700 by HTTP/netapp.chassis.fru.state[{#CHASSISID},{#FRUID}],#1)<>last(/NetApp AFF A700 by HTTP/netapp.chassis.fru.state[{#CHASSISID},{#FRUID}],#2))=1 and last(/NetApp AFF A700 by HTTP/netapp.chassis.fru.state[{#CHASSISID},{#FRUID}])="error")' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '({diff()}=1 and {last()}="ok")' + recovery_expression: '((last(/NetApp AFF A700 by HTTP/netapp.chassis.fru.state[{#CHASSISID},{#FRUID}],#1)<>last(/NetApp AFF A700 by HTTP/netapp.chassis.fru.state[{#CHASSISID},{#FRUID}],#2))=1 and last(/NetApp AFF A700 by HTTP/netapp.chassis.fru.state[{#CHASSISID},{#FRUID}])="ok")' name: '{#FRUID}: FRU of the chassis "{#ID}" state is error' priority: AVERAGE description: 'Something is wrong with the FRU.' @@ -961,9 +961,9 @@ zabbix_export: value: 'SVM "{#SVMNAME}"' trigger_prototypes: - - expression: '({diff()}=1 and {last()}<>"online")' + expression: '((last(/NetApp AFF A700 by HTTP/netapp.lun.status.container_state[{#SVMNAME},{#LUNNAME}],#1)<>last(/NetApp AFF A700 by HTTP/netapp.lun.status.container_state[{#SVMNAME},{#LUNNAME}],#2))=1 and last(/NetApp AFF A700 by HTTP/netapp.lun.status.container_state[{#SVMNAME},{#LUNNAME}])<>"online")' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '({diff()}=1 and {last()}="online")' + recovery_expression: '((last(/NetApp AFF A700 by HTTP/netapp.lun.status.container_state[{#SVMNAME},{#LUNNAME}],#1)<>last(/NetApp AFF A700 by HTTP/netapp.lun.status.container_state[{#SVMNAME},{#LUNNAME}],#2))=1 and last(/NetApp AFF A700 by HTTP/netapp.lun.status.container_state[{#SVMNAME},{#LUNNAME}])="online")' name: '{#LUNNAME}: LUN of the SVM "{#SVMNAME}" has abnormal container state' priority: AVERAGE description: 'LUNs are only available when their containers are available.' @@ -994,9 +994,9 @@ zabbix_export: value: 'SVM "{#SVMNAME}"' trigger_prototypes: - - expression: '({diff()}=1 and {last()}<>"online")' + expression: '((last(/NetApp AFF A700 by HTTP/netapp.lun.status.state[{#SVMNAME},{#LUNNAME}],#1)<>last(/NetApp AFF A700 by HTTP/netapp.lun.status.state[{#SVMNAME},{#LUNNAME}],#2))=1 and last(/NetApp AFF A700 by HTTP/netapp.lun.status.state[{#SVMNAME},{#LUNNAME}])<>"online")' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '({diff()}=1 and {last()}="online")' + recovery_expression: '((last(/NetApp AFF A700 by HTTP/netapp.lun.status.state[{#SVMNAME},{#LUNNAME}],#1)<>last(/NetApp AFF A700 by HTTP/netapp.lun.status.state[{#SVMNAME},{#LUNNAME}],#2))=1 and last(/NetApp AFF A700 by HTTP/netapp.lun.status.state[{#SVMNAME},{#LUNNAME}])="online")' name: '{#LUNNAME}: LUN of the SVM "{#SVMNAME}" has abnormal state' priority: AVERAGE description: 'Normal states for a LUN are online and offline. Other states indicate errors.' @@ -1050,7 +1050,7 @@ zabbix_export: value: 'Node "{#NODENAME}"' trigger_prototypes: - - expression: '{diff()}=1 and {strlen()}>0' + expression: '(last(/NetApp AFF A700 by HTTP/netapp.node.version[{#NODENAME}],#1)<>last(/NetApp AFF A700 by HTTP/netapp.node.version[{#NODENAME}],#2))=1 and length(last(/NetApp AFF A700 by HTTP/netapp.node.version[{#NODENAME}]))>0' name: '{#NODENAME}: Version has changed (new version: {ITEM.VALUE})' priority: INFO description: '{#NODENAME} version has changed. Ack to close.' @@ -1081,7 +1081,7 @@ zabbix_export: value: 'Node "{#NODENAME}"' trigger_prototypes: - - expression: '({last()}<>"normal")' + expression: '(last(/NetApp AFF A700 by HTTP/netapp.nodes.controller.over_temperature[{#NODENAME}])<>"normal")' name: '{#NODENAME}: Node has over temperature' priority: AVERAGE description: 'The hardware shuts down if the temperature exceeds critical thresholds(item''s value is "over").' @@ -1171,7 +1171,7 @@ zabbix_export: value: 'Node "{#NODENAME}"' trigger_prototypes: - - expression: '({last()}<>"up")' + expression: '(last(/NetApp AFF A700 by HTTP/netapp.nodes.state[{#NODENAME}])<>"up")' name: '{#NODENAME}: Node state is abnormal' priority: AVERAGE description: | @@ -1203,7 +1203,7 @@ zabbix_export: value: 'Node "{#NODENAME}"' trigger_prototypes: - - expression: '{last()}<10m' + expression: 'last(/NetApp AFF A700 by HTTP/netapp.nodes.uptime[{#NODENAME}])<10m' name: '{#NODENAME}: Node has been restarted (uptime < 10m)' priority: INFO description: 'Uptime is less than 10 minutes' @@ -1257,9 +1257,9 @@ zabbix_export: value: 'Node "{#NODENAME}" Ethernet ports' trigger_prototypes: - - expression: '({diff()}=1 and {last()}="down")' + expression: '((last(/NetApp AFF A700 by HTTP/netapp.port.eth.state[{#NODENAME},{#ETHPORTNAME}],#1)<>last(/NetApp AFF A700 by HTTP/netapp.port.eth.state[{#NODENAME},{#ETHPORTNAME}],#2))=1 and last(/NetApp AFF A700 by HTTP/netapp.port.eth.state[{#NODENAME},{#ETHPORTNAME}])="down")' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '({diff()}=1 and {last()}="up")' + recovery_expression: '((last(/NetApp AFF A700 by HTTP/netapp.port.eth.state[{#NODENAME},{#ETHPORTNAME}],#1)<>last(/NetApp AFF A700 by HTTP/netapp.port.eth.state[{#NODENAME},{#ETHPORTNAME}],#2))=1 and last(/NetApp AFF A700 by HTTP/netapp.port.eth.state[{#NODENAME},{#ETHPORTNAME}])="up")' name: '{#ETHPORTNAME}: Ethernet port of the Node "{#NODENAME}" is down' priority: AVERAGE description: 'Something is wrong with the ethernet port.' @@ -1345,9 +1345,9 @@ zabbix_export: value: 'Node "{#NODENAME}" FC ports' trigger_prototypes: - - expression: '({diff()}=1 and {last()}<>"online")' + expression: '((last(/NetApp AFF A700 by HTTP/netapp.port.fc.state[{#NODENAME},{#FCPORTNAME}],#1)<>last(/NetApp AFF A700 by HTTP/netapp.port.fc.state[{#NODENAME},{#FCPORTNAME}],#2))=1 and last(/NetApp AFF A700 by HTTP/netapp.port.fc.state[{#NODENAME},{#FCPORTNAME}])<>"online")' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '({diff()}=1 and {last()}="online")' + recovery_expression: '((last(/NetApp AFF A700 by HTTP/netapp.port.fc.state[{#NODENAME},{#FCPORTNAME}],#1)<>last(/NetApp AFF A700 by HTTP/netapp.port.fc.state[{#NODENAME},{#FCPORTNAME}],#2))=1 and last(/NetApp AFF A700 by HTTP/netapp.port.fc.state[{#NODENAME},{#FCPORTNAME}])="online")' name: '{#FCPORTNAME}: FC port of the Node "{#NODENAME}" has state different from "online"' priority: AVERAGE description: 'Something is wrong with the FC port.' @@ -1425,9 +1425,9 @@ zabbix_export: value: 'SVM "{#SVMNAME}"' trigger_prototypes: - - expression: '({diff()}=1 and {last()}<>"running")' + expression: '((last(/NetApp AFF A700 by HTTP/netapp.svm.state[{#SVMNAME}],#1)<>last(/NetApp AFF A700 by HTTP/netapp.svm.state[{#SVMNAME}],#2))=1 and last(/NetApp AFF A700 by HTTP/netapp.svm.state[{#SVMNAME}])<>"running")' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '({diff()}=1 and {last()}="running")' + recovery_expression: '((last(/NetApp AFF A700 by HTTP/netapp.svm.state[{#SVMNAME}],#1)<>last(/NetApp AFF A700 by HTTP/netapp.svm.state[{#SVMNAME}],#2))=1 and last(/NetApp AFF A700 by HTTP/netapp.svm.state[{#SVMNAME}])="running")' name: '{#SVMNAME}: SVM state is abnormal' priority: AVERAGE description: 'Something is wrong with the SVM.' @@ -1574,9 +1574,9 @@ zabbix_export: value: 'Volume "{#VOLUMENAME}"' trigger_prototypes: - - expression: '({diff()}=1 and {last()}<>"online")' + expression: '((last(/NetApp AFF A700 by HTTP/netapp.volume.state[{#VOLUMENAME}],#1)<>last(/NetApp AFF A700 by HTTP/netapp.volume.state[{#VOLUMENAME}],#2))=1 and last(/NetApp AFF A700 by HTTP/netapp.volume.state[{#VOLUMENAME}])<>"online")' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '({diff()}=1 and {last()}="online")' + recovery_expression: '((last(/NetApp AFF A700 by HTTP/netapp.volume.state[{#VOLUMENAME}],#1)<>last(/NetApp AFF A700 by HTTP/netapp.volume.state[{#VOLUMENAME}],#2))=1 and last(/NetApp AFF A700 by HTTP/netapp.volume.state[{#VOLUMENAME}])="online")' name: '{#VOLUMENAME}: Volume state is abnormal' priority: AVERAGE description: 'A volume can only be brought online if it is offline. Taking a volume offline removes its junction path. The ‘mixed’ state applies to FlexGroup volumes only and cannot be specified as a target state. An ‘error’ state implies that the volume is not in a state to serve data.' @@ -1761,9 +1761,9 @@ zabbix_export: value_type: FLOAT units: '!ms' params: | - (last(netapp.volume.statistics.latency_raw.other[{#VOLUMENAME}]) - prev(netapp.volume.statistics.latency_raw.other[{#VOLUMENAME}])) / - ( last(netapp.volume.statistics.iops_raw.other[{#VOLUMENAME}]) - prev(netapp.volume.statistics.iops_raw.other[{#VOLUMENAME}]) + - (last(netapp.volume.statistics.iops_raw.other[{#VOLUMENAME}]) - prev(netapp.volume.statistics.iops_raw.other[{#VOLUMENAME}]) = 0) ) * 0.001 + (last(//netapp.volume.statistics.latency_raw.other[{#VOLUMENAME}]) - last(//netapp.volume.statistics.latency_raw.other[{#VOLUMENAME}],#2)) / + ( last(//netapp.volume.statistics.iops_raw.other[{#VOLUMENAME}]) - last(//netapp.volume.statistics.iops_raw.other[{#VOLUMENAME}],#2) + + (last(//netapp.volume.statistics.iops_raw.other[{#VOLUMENAME}]) - last(//netapp.volume.statistics.iops_raw.other[{#VOLUMENAME}],#2) = 0) ) * 0.001 description: 'The average latency per I/O operation in milliseconds observed at the storage object. Performance metric for other I/O operations. Other I/O operations can be metadata operations, such as directory lookups and so on.' tags: - @@ -1777,9 +1777,9 @@ zabbix_export: value_type: FLOAT units: '!ms' params: | - (last(netapp.volume.statistics.latency_raw.read[{#VOLUMENAME}]) - prev(netapp.volume.statistics.latency_raw.read[{#VOLUMENAME}])) / - ( last(netapp.volume.statistics.iops_raw.read[{#VOLUMENAME}]) - prev(netapp.volume.statistics.iops_raw.read[{#VOLUMENAME}]) + - (last(netapp.volume.statistics.iops_raw.read[{#VOLUMENAME}]) - prev(netapp.volume.statistics.iops_raw.read[{#VOLUMENAME}]) = 0)) * 0.001 + (last(//netapp.volume.statistics.latency_raw.read[{#VOLUMENAME}]) - last(//netapp.volume.statistics.latency_raw.read[{#VOLUMENAME}],#2)) / + ( last(//netapp.volume.statistics.iops_raw.read[{#VOLUMENAME}]) - last(//netapp.volume.statistics.iops_raw.read[{#VOLUMENAME}],#2) + + (last(//netapp.volume.statistics.iops_raw.read[{#VOLUMENAME}]) - last(//netapp.volume.statistics.iops_raw.read[{#VOLUMENAME}],#2) = 0)) * 0.001 description: 'The average latency per I/O operation in milliseconds observed at the storage object. Performance metric for read I/O operations.' tags: - @@ -1793,9 +1793,9 @@ zabbix_export: value_type: FLOAT units: '!ms' params: | - (last(netapp.volume.statistics.latency_raw.total[{#VOLUMENAME}]) - prev(netapp.volume.statistics.latency_raw.total[{#VOLUMENAME}])) / - ( last(netapp.volume.statistics.iops_raw.total[{#VOLUMENAME}]) - prev(netapp.volume.statistics.iops_raw.total[{#VOLUMENAME}]) + - (last(netapp.volume.statistics.iops_raw.total[{#VOLUMENAME}]) - prev(netapp.volume.statistics.iops_raw.total[{#VOLUMENAME}]) = 0) ) * 0.001 + (last(//netapp.volume.statistics.latency_raw.total[{#VOLUMENAME}]) - last(//netapp.volume.statistics.latency_raw.total[{#VOLUMENAME}],#2)) / + ( last(//netapp.volume.statistics.iops_raw.total[{#VOLUMENAME}]) - last(//netapp.volume.statistics.iops_raw.total[{#VOLUMENAME}],#2) + + (last(//netapp.volume.statistics.iops_raw.total[{#VOLUMENAME}]) - last(//netapp.volume.statistics.iops_raw.total[{#VOLUMENAME}],#2) = 0) ) * 0.001 description: 'The average latency per I/O operation in milliseconds observed at the storage object. Performance metric aggregated over all types of I/O operations.' tags: - @@ -1809,9 +1809,9 @@ zabbix_export: value_type: FLOAT units: '!ms' params: | - (last(netapp.volume.statistics.latency_raw.write[{#VOLUMENAME}]) - prev(netapp.volume.statistics.latency_raw.write[{#VOLUMENAME}])) / - ( last(netapp.volume.statistics.iops_raw.write[{#VOLUMENAME}]) - prev(netapp.volume.statistics.iops_raw.write[{#VOLUMENAME}]) + - (last(netapp.volume.statistics.iops_raw.write[{#VOLUMENAME}]) - prev(netapp.volume.statistics.iops_raw.write[{#VOLUMENAME}]) = 0) ) * 0.001 + (last(//netapp.volume.statistics.latency_raw.write[{#VOLUMENAME}]) - last(//netapp.volume.statistics.latency_raw.write[{#VOLUMENAME}],#2)) / + ( last(//netapp.volume.statistics.iops_raw.write[{#VOLUMENAME}]) - last(//netapp.volume.statistics.iops_raw.write[{#VOLUMENAME}],#2) + + (last(//netapp.volume.statistics.iops_raw.write[{#VOLUMENAME}]) - last(//netapp.volume.statistics.iops_raw.write[{#VOLUMENAME}],#2) = 0) ) * 0.001 description: 'The average latency per I/O operation in milliseconds observed at the storage object. Performance metric for write I/O operations.' tags: - diff --git a/templates/san/netapp_fas3220_snmp/template_san_netapp_fas3220_snmp.yaml b/templates/san/netapp_fas3220_snmp/template_san_netapp_fas3220_snmp.yaml index 139e573958f..c856f8abc39 100644 --- a/templates/san/netapp_fas3220_snmp/template_san_netapp_fas3220_snmp.yaml +++ b/templates/san/netapp_fas3220_snmp/template_san_netapp_fas3220_snmp.yaml @@ -1,6 +1,6 @@ zabbix_export: version: '5.4' - date: '2021-02-23T11:04:58Z' + date: '2021-05-09T00:00:00Z' groups: - name: Templates/SAN @@ -189,7 +189,7 @@ zabbix_export: value: 'Node {#NODE.NAME} Health' trigger_prototypes: - - expression: '{last()}=2' + expression: 'last(/NetApp FAS3220 SNMP/fas3220.cluster[nodeEnvOverTemperature, "{#NODE.NAME}"])=2' name: 'Node {#NODE.NAME}: Temperature is over than recommended' priority: HIGH description: 'The hardware will shutdown if the temperature exceeds critical thresholds.' @@ -213,7 +213,7 @@ zabbix_export: value: 'Node {#NODE.NAME} Health' trigger_prototypes: - - expression: '{last()}=0' + expression: 'last(/NetApp FAS3220 SNMP/fas3220.cluster[nodeHealth, "{#NODE.NAME}"])=0' name: 'Node {#NODE.NAME}: Node can not communicate with the cluster' priority: HIGH manual_close: 'YES' @@ -285,7 +285,7 @@ zabbix_export: value: 'Node {#NODE.NAME} Health' trigger_prototypes: - - expression: '{last()}<>1' + expression: 'last(/NetApp FAS3220 SNMP/fas3220.cluster[nodeNvramBatteryStatus, "{#NODE.NAME}"])<>1' name: 'Node {#NODE.NAME}: NVRAM battery status is not OK' priority: AVERAGE manual_close: 'YES' @@ -326,19 +326,19 @@ zabbix_export: value: 'Node {#NODE.NAME} Health' trigger_prototypes: - - expression: '{last()}<10m' + expression: 'last(/NetApp FAS3220 SNMP/fas3220.cluster[nodeUptime, "{#NODE.NAME}"])<10m' name: 'Node {#NODE.NAME}: has been restarted (uptime < 10m)' priority: INFO description: 'Uptime is less than 10 minutes' manual_close: 'YES' trigger_prototypes: - - expression: '{NetApp FAS3220 SNMP:fas3220.cluster[nodeEnvFailedPowerSupplyCount, "{#NODE.NAME}"].last()}>0 and {NetApp FAS3220 SNMP:fas3220.cluster[nodeEnvFailedPowerSupplyMessage, "{#NODE.NAME}"].last()}={NetApp FAS3220 SNMP:fas3220.cluster[nodeEnvFailedPowerSupplyMessage, "{#NODE.NAME}"].last()}' + expression: 'last(/NetApp FAS3220 SNMP/fas3220.cluster[nodeEnvFailedPowerSupplyCount, "{#NODE.NAME}"])>0 and last(/NetApp FAS3220 SNMP/fas3220.cluster[nodeEnvFailedPowerSupplyMessage, "{#NODE.NAME}"])=last(/NetApp FAS3220 SNMP/fas3220.cluster[nodeEnvFailedPowerSupplyMessage, "{#NODE.NAME}"])' name: 'Node {#NODE.NAME}: Degraded power supplies count is more than zero' priority: AVERAGE description: '{{ITEM.VALUE2}.regsub("(.*)", \1)}' - - expression: '{NetApp FAS3220 SNMP:fas3220.cluster[nodeEnvFailedFanCount, "{#NODE.NAME}"].last()}>0 and {NetApp FAS3220 SNMP:fas3220.cluster[nodeEnvFailedFanMessage, "{#NODE.NAME}"].last()}={NetApp FAS3220 SNMP:fas3220.cluster[nodeEnvFailedFanMessage, "{#NODE.NAME}"].last()}' + expression: 'last(/NetApp FAS3220 SNMP/fas3220.cluster[nodeEnvFailedFanCount, "{#NODE.NAME}"])>0 and last(/NetApp FAS3220 SNMP/fas3220.cluster[nodeEnvFailedFanMessage, "{#NODE.NAME}"])=last(/NetApp FAS3220 SNMP/fas3220.cluster[nodeEnvFailedFanMessage, "{#NODE.NAME}"])' name: 'Node {#NODE.NAME}: Failed FAN count is over than zero' priority: HIGH description: '{{ITEM.VALUE2}.regsub("(.*)", \1)}' @@ -365,7 +365,7 @@ zabbix_export: value: 'Node {#NODE.NAME} CPU' trigger_prototypes: - - expression: '{min(5m)}>{$CPU.UTIL.CRIT}' + expression: 'min(/NetApp FAS3220 SNMP/fas3220.cpu[cDOTCpuBusyTimePerCent, "{#NODE.NAME}"],5m)>{$CPU.UTIL.CRIT}' name: 'Node {#NODE.NAME}: High CPU utilization (over {$CPU.UTIL.CRIT}% for 5m)' opdata: 'Current utilization: {ITEM.LASTVALUE1}' priority: WARNING @@ -430,7 +430,7 @@ zabbix_export: value: '{#VSERVER}{#FSNAME}' trigger_prototypes: - - expression: '{min({$FAS3220.FS.TIME:"{#FSNAME}"})}<{$FAS3220.FS.AVAIL.MIN.CRIT:"{#FSNAME}"} and {$FAS3220.FS.USE.PCT:"{#FSNAME}"}=0' + expression: 'min(/NetApp FAS3220 SNMP/fas3220.fs[df64AvailKBytes, "{#VSERVER}{#FSNAME}"],{$FAS3220.FS.TIME:"{#FSNAME}"})<{$FAS3220.FS.AVAIL.MIN.CRIT:"{#FSNAME}"} and {$FAS3220.FS.USE.PCT:"{#FSNAME}"}=0' name: '{#VSERVER}{#FSNAME}: Disk space is too low (below {$FAS3220.FS.AVAIL.MIN.CRIT:"{#FSNAME}"} for {$FAS3220.FS.TIME:"{#FSNAME}"})' priority: HIGH - @@ -507,7 +507,7 @@ zabbix_export: value: '{#VSERVER}{#FSNAME}' trigger_prototypes: - - expression: '{max({$FAS3220.FS.TIME:"{#FSNAME}"})}>{$FAS3220.FS.PUSED.MAX.CRIT:"{#FSNAME}"} and {$FAS3220.FS.USE.PCT:"{#FSNAME}"}=1' + expression: 'max(/NetApp FAS3220 SNMP/fas3220.fs[dfPerCentKBytesCapacity, "{#VSERVER}{#FSNAME}"],{$FAS3220.FS.TIME:"{#FSNAME}"})>{$FAS3220.FS.PUSED.MAX.CRIT:"{#FSNAME}"} and {$FAS3220.FS.USE.PCT:"{#FSNAME}"}=1' name: '{#VSERVER}{#FSNAME}: Disk space is too low (used over {$FAS3220.FS.PUSED.MAX.CRIT:"{#FSNAME}"}% for {$FAS3220.FS.TIME:"{#FSNAME}"})' priority: HIGH graph_prototypes: @@ -594,7 +594,7 @@ zabbix_export: value: 'Node {#NODE.NAME} HA' trigger_prototypes: - - expression: '{last()}<>1' + expression: 'last(/NetApp FAS3220 SNMP/fas3220.ha[haCannotTakeoverCause, "{#NODE.NAME}"])<>1' name: 'Node {#NODE.NAME}: Node cannot takeover it''s HA partner {#PARTNER.NAME}. Reason: {ITEM.VALUE}' priority: HIGH description: | @@ -637,12 +637,12 @@ zabbix_export: value: 'Node {#NODE.NAME} HA' trigger_prototypes: - - expression: '{last()}=1' + expression: 'last(/NetApp FAS3220 SNMP/fas3220.ha[haSettings, "{#NODE.NAME}"])=1' name: 'Node {#NODE.NAME}: HA is not licensed' priority: AVERAGE description: 'The value notConfigured(1) indicates that the HA is not licensed.' - - expression: '{last()}=5' + expression: 'last(/NetApp FAS3220 SNMP/fas3220.ha[haSettings, "{#NODE.NAME}"])=5' name: 'Node {#NODE.NAME}: Node has been taken over' priority: HIGH description: 'The thisNodeDead(5) setting indicates that this node has been takenover.' @@ -906,25 +906,25 @@ zabbix_export: trigger_prototypes: - expression: | - {NetApp FAS3220 SNMP:fas3220.net.if[if64InErrors, "{#NODE}", "{#IFNAME}"].min(5m)}>{$IF.ERRORS.WARN:"{#IFNAME}"} - or {NetApp FAS3220 SNMP:fas3220.net.if[if64OutErrors, "{#NODE}", "{#IFNAME}"].min(5m)}>{$IF.ERRORS.WARN:"{#IFNAME}"} + min(/NetApp FAS3220 SNMP/fas3220.net.if[if64InErrors, "{#NODE}", "{#IFNAME}"],5m)>{$IF.ERRORS.WARN:"{#IFNAME}"} + or min(/NetApp FAS3220 SNMP/fas3220.net.if[if64OutErrors, "{#NODE}", "{#IFNAME}"],5m)>{$IF.ERRORS.WARN:"{#IFNAME}"} recovery_mode: RECOVERY_EXPRESSION recovery_expression: | - {NetApp FAS3220 SNMP:fas3220.net.if[if64InErrors, "{#NODE}", "{#IFNAME}"].max(5m)}<{$IF.ERRORS.WARN:"{#IFNAME}"}*0.8 - and {NetApp FAS3220 SNMP:fas3220.net.if[if64OutErrors, "{#NODE}", "{#IFNAME}"].max(5m)}<{$IF.ERRORS.WARN:"{#IFNAME}"}*0.8 + max(/NetApp FAS3220 SNMP/fas3220.net.if[if64InErrors, "{#NODE}", "{#IFNAME}"],5m)<{$IF.ERRORS.WARN:"{#IFNAME}"}*0.8 + and max(/NetApp FAS3220 SNMP/fas3220.net.if[if64OutErrors, "{#NODE}", "{#IFNAME}"],5m)<{$IF.ERRORS.WARN:"{#IFNAME}"}*0.8 name: 'Node {#NODE}: port {#IFNAME} ({#TYPE}): High error rate (> {$IF.ERRORS.WARN:"{#IFNAME}"} for 5m)' opdata: 'errors in: {ITEM.LASTVALUE1}, errors out: {ITEM.LASTVALUE2}' priority: WARNING description: 'Recovers when below 80% of {$IF.ERRORS.WARN:"{#IFNAME}"} threshold' manual_close: 'YES' - - expression: '{NetApp FAS3220 SNMP:fas3220.net.port[netportLinkState, "{#NODE}", "{#IFNAME}"].last()}<>2 and {NetApp FAS3220 SNMP:fas3220.net.port[netportUpAdmin, "{#NODE}", "{#IFNAME}"].last()}=1' + expression: 'last(/NetApp FAS3220 SNMP/fas3220.net.port[netportLinkState, "{#NODE}", "{#IFNAME}"])<>2 and last(/NetApp FAS3220 SNMP/fas3220.net.port[netportUpAdmin, "{#NODE}", "{#IFNAME}"])=1' name: 'Node {#NODE}: port {#IFNAME} ({#TYPE}): Link down' priority: AVERAGE description: 'Link state is not UP and the port status is set ''UP'' by an administrator.' manual_close: 'YES' - - expression: '{NetApp FAS3220 SNMP:fas3220.net.port[netportHealthStatus, "{#NODE}", "{#IFNAME}"].last()}<>0 and {NetApp FAS3220 SNMP:fas3220.net.port[netportDegradedReason, "{#NODE}", "{#IFNAME}"].strlen()}>0' + expression: 'last(/NetApp FAS3220 SNMP/fas3220.net.port[netportHealthStatus, "{#NODE}", "{#IFNAME}"])<>0 and length(last(/NetApp FAS3220 SNMP/fas3220.net.port[netportDegradedReason, "{#NODE}", "{#IFNAME}"]))>0' name: 'Node {#NODE}: port {#IFNAME} ({#TYPE}): Port is not healthy' priority: INFO description: '{{ITEM.LASTVALUE2}.regsub("(.*)", \1)}' @@ -1318,9 +1318,9 @@ zabbix_export: newvalue: Up triggers: - - expression: '{NetApp FAS3220 SNMP:fas3220.disk[diskFailedCount].last()}>0 and {NetApp FAS3220 SNMP:fas3220.disk[diskFailedMessage].diff()}=1' + expression: 'last(/NetApp FAS3220 SNMP/fas3220.disk[diskFailedCount])>0 and (last(/NetApp FAS3220 SNMP/fas3220.disk[diskFailedMessage],#1)<>last(/NetApp FAS3220 SNMP/fas3220.disk[diskFailedMessage],#2))=1' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{NetApp FAS3220 SNMP:fas3220.disk[diskFailedCount].last()}=0' + recovery_expression: 'last(/NetApp FAS3220 SNMP/fas3220.disk[diskFailedCount])=0' name: 'NetApp FAS3220: Number of failed disks has changed' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING diff --git a/templates/server/chassis_ipmi/template_server_chassis_ipmi.yaml b/templates/server/chassis_ipmi/template_server_chassis_ipmi.yaml index 3c5abe47a48..80d6d2bf68d 100644 --- a/templates/server/chassis_ipmi/template_server_chassis_ipmi.yaml +++ b/templates/server/chassis_ipmi/template_server_chassis_ipmi.yaml @@ -1,6 +1,6 @@ zabbix_export: version: '5.4' - date: '2021-02-23T11:04:52Z' + date: '2021-05-09T00:00:00Z' groups: - name: 'Templates/Server hardware' @@ -88,7 +88,7 @@ zabbix_export: value: 'IPMI {#SENSOR_TYPE}' trigger_prototypes: - - expression: '{diff()}=1' + expression: '(last(/Chassis by IPMI/ipmi.state_text[{#SENSOR_ID}],#1)<>last(/Chassis by IPMI/ipmi.state_text[{#SENSOR_ID}],#2))=1' name: 'IPMI: {#SENSOR_ID} value has changed' priority: INFO description: 'The trigger is informing about changes in a state of the discrete IPMI sensor. A problem generated by this trigger can be manually closed.' @@ -156,54 +156,54 @@ zabbix_export: value: 'IPMI {#SENSOR_TYPE}' trigger_prototypes: - - expression: '{min(5m)}>{#SENSOR_HI_CRIT}' + expression: 'min(/Chassis by IPMI/ipmi.value[{#SENSOR_ID}],5m)>{#SENSOR_HI_CRIT}' name: 'IPMI: {#SENSOR_ID} value is above critical high (greater than {#SENSOR_HI_CRIT} for 5m)' priority: HIGH description: 'The trigger is informing that a value higher than the upper critical threshold has been reached.' dependencies: - name: 'IPMI: {#SENSOR_ID} value is above non-recoverable high (greater than {#SENSOR_HI_DISAST} for 5m)' - expression: '{Chassis by IPMI:ipmi.value[{#SENSOR_ID}].min(5m)}>{#SENSOR_HI_DISAST}' + expression: 'min(/Chassis by IPMI/ipmi.value[{#SENSOR_ID}],5m)>{#SENSOR_HI_DISAST}' - - expression: '{min(5m)}>{#SENSOR_HI_WARN}' + expression: 'min(/Chassis by IPMI/ipmi.value[{#SENSOR_ID}],5m)>{#SENSOR_HI_WARN}' name: 'IPMI: {#SENSOR_ID} value is above non-critical high (greater than {#SENSOR_HI_WARN} for 5m)' priority: WARNING description: 'The trigger is informing that a value higher than the upper non-critical threshold has been reached.' dependencies: - name: 'IPMI: {#SENSOR_ID} value is above critical high (greater than {#SENSOR_HI_CRIT} for 5m)' - expression: '{Chassis by IPMI:ipmi.value[{#SENSOR_ID}].min(5m)}>{#SENSOR_HI_CRIT}' + expression: 'min(/Chassis by IPMI/ipmi.value[{#SENSOR_ID}],5m)>{#SENSOR_HI_CRIT}' - name: 'IPMI: {#SENSOR_ID} value is above non-recoverable high (greater than {#SENSOR_HI_DISAST} for 5m)' - expression: '{Chassis by IPMI:ipmi.value[{#SENSOR_ID}].min(5m)}>{#SENSOR_HI_DISAST}' + expression: 'min(/Chassis by IPMI/ipmi.value[{#SENSOR_ID}],5m)>{#SENSOR_HI_DISAST}' - - expression: '{min(5m)}>{#SENSOR_HI_DISAST}' + expression: 'min(/Chassis by IPMI/ipmi.value[{#SENSOR_ID}],5m)>{#SENSOR_HI_DISAST}' name: 'IPMI: {#SENSOR_ID} value is above non-recoverable high (greater than {#SENSOR_HI_DISAST} for 5m)' priority: DISASTER description: 'The trigger is informing that a value higher than the upper non-recoverable threshold has been reached.' - - expression: '{min(5m)}<{#SENSOR_LO_CRIT}' + expression: 'min(/Chassis by IPMI/ipmi.value[{#SENSOR_ID}],5m)<{#SENSOR_LO_CRIT}' name: 'IPMI: {#SENSOR_ID} value is below critical low (less than {#SENSOR_LO_CRIT} for 5m)' priority: HIGH description: 'The trigger is informing that a value less than the lower critical threshold has been reached.' dependencies: - name: 'IPMI: {#SENSOR_ID} value is below non-recoverable low (less than {#SENSOR_LO_DISAST} for 5m)' - expression: '{Chassis by IPMI:ipmi.value[{#SENSOR_ID}].min(5m)}<{#SENSOR_LO_DISAST}' + expression: 'min(/Chassis by IPMI/ipmi.value[{#SENSOR_ID}],5m)<{#SENSOR_LO_DISAST}' - - expression: '{min(5m)}<{#SENSOR_LO_WARN}' + expression: 'min(/Chassis by IPMI/ipmi.value[{#SENSOR_ID}],5m)<{#SENSOR_LO_WARN}' name: 'IPMI: {#SENSOR_ID} value is below non-critical low (less than {#SENSOR_LO_WARN} for 5m)' priority: WARNING description: 'The trigger is informing that a value less than the lower non-critical threshold has been reached.' dependencies: - name: 'IPMI: {#SENSOR_ID} value is below critical low (less than {#SENSOR_LO_CRIT} for 5m)' - expression: '{Chassis by IPMI:ipmi.value[{#SENSOR_ID}].min(5m)}<{#SENSOR_LO_CRIT}' + expression: 'min(/Chassis by IPMI/ipmi.value[{#SENSOR_ID}],5m)<{#SENSOR_LO_CRIT}' - name: 'IPMI: {#SENSOR_ID} value is below non-recoverable low (less than {#SENSOR_LO_DISAST} for 5m)' - expression: '{Chassis by IPMI:ipmi.value[{#SENSOR_ID}].min(5m)}<{#SENSOR_LO_DISAST}' + expression: 'min(/Chassis by IPMI/ipmi.value[{#SENSOR_ID}],5m)<{#SENSOR_LO_DISAST}' - - expression: '{min(5m)}<{#SENSOR_LO_DISAST}' + expression: 'min(/Chassis by IPMI/ipmi.value[{#SENSOR_ID}],5m)<{#SENSOR_LO_DISAST}' name: 'IPMI: {#SENSOR_ID} value is below non-recoverable low (less than {#SENSOR_LO_DISAST} for 5m)' priority: DISASTER description: 'The trigger is informing that a value less than the lower non-recoverable threshold has been reached.' diff --git a/templates/server/cisco_ucs_snmp/template_server_cisco_ucs_snmp.yaml b/templates/server/cisco_ucs_snmp/template_server_cisco_ucs_snmp.yaml index d13cf857beb..213fa75236a 100644 --- a/templates/server/cisco_ucs_snmp/template_server_cisco_ucs_snmp.yaml +++ b/templates/server/cisco_ucs_snmp/template_server_cisco_ucs_snmp.yaml @@ -1,6 +1,6 @@ zabbix_export: version: '5.4' - date: '2021-02-23T11:04:53Z' + date: '2021-05-09T00:00:00Z' groups: - name: 'Templates/Server hardware' @@ -49,13 +49,13 @@ zabbix_export: value: 'Disk arrays' trigger_prototypes: - - expression: '{count(#1,{$DISK_ARRAY_CACHE_BATTERY_CRIT_STATUS},eq)}=1' + expression: 'count(/Cisco UCS SNMP/system.hw.diskarray.cache.battery.status[cucsStorageRaidBatteryOperability.{#SNMPINDEX}],#1,"eq","{$DISK_ARRAY_CACHE_BATTERY_CRIT_STATUS}")=1' name: '{#DISKARRAY_CACHE_LOCATION}: Disk array cache controller battery is in critical state!' opdata: 'Current state: {ITEM.LASTVALUE1}' priority: AVERAGE description: 'Please check the device for faults' - - expression: '{count(#1,{$DISK_ARRAY_CACHE_BATTERY_OK_STATUS},ne)}=1' + expression: 'count(/Cisco UCS SNMP/system.hw.diskarray.cache.battery.status[cucsStorageRaidBatteryOperability.{#SNMPINDEX}],#1,"ne","{$DISK_ARRAY_CACHE_BATTERY_OK_STATUS}")=1' name: '{#DISKARRAY_CACHE_LOCATION}: Disk array cache controller battery is not in optimal state' opdata: 'Current state: {ITEM.LASTVALUE1}' priority: WARNING @@ -63,7 +63,7 @@ zabbix_export: dependencies: - name: '{#DISKARRAY_CACHE_LOCATION}: Disk array cache controller battery is in critical state!' - expression: '{Cisco UCS SNMP:system.hw.diskarray.cache.battery.status[cucsStorageRaidBatteryOperability.{#SNMPINDEX}].count(#1,{$DISK_ARRAY_CACHE_BATTERY_CRIT_STATUS},eq)}=1' + expression: 'count(/Cisco UCS SNMP/system.hw.diskarray.cache.battery.status[cucsStorageRaidBatteryOperability.{#SNMPINDEX}],#1,"eq","{$DISK_ARRAY_CACHE_BATTERY_CRIT_STATUS}")=1' - name: 'Array Controller Discovery' type: SNMP_AGENT @@ -101,13 +101,13 @@ zabbix_export: value: 'Disk arrays' trigger_prototypes: - - expression: '{count(#1,{$DISK_ARRAY_CRIT_STATUS:"inoperable"},eq)}=1' + expression: 'count(/Cisco UCS SNMP/system.hw.diskarray.status[cucsStorageControllerOperState.{#SNMPINDEX}],#1,"eq","{$DISK_ARRAY_CRIT_STATUS:\"inoperable\"}")=1' name: '{#DISKARRAY_LOCATION}: Disk array controller is in critical state' opdata: 'Current state: {ITEM.LASTVALUE1}' priority: HIGH description: 'Please check the device for faults' - - expression: '{count(#1,{$DISK_ARRAY_WARN_STATUS:"degraded"},eq)}=1' + expression: 'count(/Cisco UCS SNMP/system.hw.diskarray.status[cucsStorageControllerOperState.{#SNMPINDEX}],#1,"eq","{$DISK_ARRAY_WARN_STATUS:\"degraded\"}")=1' name: '{#DISKARRAY_LOCATION}: Disk array controller is in warning state' opdata: 'Current state: {ITEM.LASTVALUE1}' priority: AVERAGE @@ -115,9 +115,9 @@ zabbix_export: dependencies: - name: '{#DISKARRAY_LOCATION}: Disk array controller is in critical state' - expression: '{Cisco UCS SNMP:system.hw.diskarray.status[cucsStorageControllerOperState.{#SNMPINDEX}].count(#1,{$DISK_ARRAY_CRIT_STATUS:"inoperable"},eq)}=1' + expression: 'count(/Cisco UCS SNMP/system.hw.diskarray.status[cucsStorageControllerOperState.{#SNMPINDEX}],#1,"eq","{$DISK_ARRAY_CRIT_STATUS:\"inoperable\"}")=1' - - expression: '{count(#1,{$DISK_ARRAY_OK_STATUS:"operable"},ne)}=1' + expression: 'count(/Cisco UCS SNMP/system.hw.diskarray.status[cucsStorageControllerOperState.{#SNMPINDEX}],#1,"ne","{$DISK_ARRAY_OK_STATUS:\"operable\"}")=1' name: '{#DISKARRAY_LOCATION}: Disk array controller is not in optimal state' opdata: 'Current state: {ITEM.LASTVALUE1}' priority: WARNING @@ -125,10 +125,10 @@ zabbix_export: dependencies: - name: '{#DISKARRAY_LOCATION}: Disk array controller is in critical state' - expression: '{Cisco UCS SNMP:system.hw.diskarray.status[cucsStorageControllerOperState.{#SNMPINDEX}].count(#1,{$DISK_ARRAY_CRIT_STATUS:"inoperable"},eq)}=1' + expression: 'count(/Cisco UCS SNMP/system.hw.diskarray.status[cucsStorageControllerOperState.{#SNMPINDEX}],#1,"eq","{$DISK_ARRAY_CRIT_STATUS:\"inoperable\"}")=1' - name: '{#DISKARRAY_LOCATION}: Disk array controller is in warning state' - expression: '{Cisco UCS SNMP:system.hw.diskarray.status[cucsStorageControllerOperState.{#SNMPINDEX}].count(#1,{$DISK_ARRAY_WARN_STATUS:"degraded"},eq)}=1' + expression: 'count(/Cisco UCS SNMP/system.hw.diskarray.status[cucsStorageControllerOperState.{#SNMPINDEX}],#1,"eq","{$DISK_ARRAY_WARN_STATUS:\"degraded\"}")=1' - name: 'FAN Discovery' type: SNMP_AGENT @@ -155,13 +155,13 @@ zabbix_export: value: Fans trigger_prototypes: - - expression: '{count(#1,{$FAN_CRIT_STATUS:"inoperable"},eq)}=1' + expression: 'count(/Cisco UCS SNMP/sensor.fan.status[cucsEquipmentFanOperState.{#SNMPINDEX}],#1,"eq","{$FAN_CRIT_STATUS:\"inoperable\"}")=1' name: '{#FAN_LOCATION}: Fan is in critical state' opdata: 'Current state: {ITEM.LASTVALUE1}' priority: AVERAGE description: 'Please check the fan unit' - - expression: '{count(#1,{$FAN_WARN_STATUS:"degraded"},eq)}=1' + expression: 'count(/Cisco UCS SNMP/sensor.fan.status[cucsEquipmentFanOperState.{#SNMPINDEX}],#1,"eq","{$FAN_WARN_STATUS:\"degraded\"}")=1' name: '{#FAN_LOCATION}: Fan is in warning state' opdata: 'Current state: {ITEM.LASTVALUE1}' priority: WARNING @@ -169,7 +169,7 @@ zabbix_export: dependencies: - name: '{#FAN_LOCATION}: Fan is in critical state' - expression: '{Cisco UCS SNMP:sensor.fan.status[cucsEquipmentFanOperState.{#SNMPINDEX}].count(#1,{$FAN_CRIT_STATUS:"inoperable"},eq)}=1' + expression: 'count(/Cisco UCS SNMP/sensor.fan.status[cucsEquipmentFanOperState.{#SNMPINDEX}],#1,"eq","{$FAN_CRIT_STATUS:\"inoperable\"}")=1' - name: 'Physical Disk Discovery' type: SNMP_AGENT @@ -249,7 +249,7 @@ zabbix_export: value: 'Physical disks' trigger_prototypes: - - expression: '{count(#1,{$DISK_CRIT_STATUS:"bad"},eq)}=1 or {count(#1,{$DISK_CRIT_STATUS:"predictiveFailure"},eq)}=1' + expression: 'count(/Cisco UCS SNMP/system.hw.physicaldisk.status[cucsStorageLocalDiskDiskState.{#SNMPINDEX}],#1,"eq","{$DISK_CRIT_STATUS:\"bad\"}")=1 or count(/Cisco UCS SNMP/system.hw.physicaldisk.status[cucsStorageLocalDiskDiskState.{#SNMPINDEX}],#1,"eq","{$DISK_CRIT_STATUS:\"predictiveFailure\"}")=1' name: '{#DISK_LOCATION}: Physical disk error' opdata: 'Current status: {ITEM.LASTVALUE1}' priority: AVERAGE @@ -257,9 +257,9 @@ zabbix_export: dependencies: - name: '{#DISK_LOCATION}: Physical disk failed' - expression: '{Cisco UCS SNMP:system.hw.physicaldisk.status[cucsStorageLocalDiskDiskState.{#SNMPINDEX}].count(#1,{$DISK_FAIL_STATUS:"failed"},eq)}=1' + expression: 'count(/Cisco UCS SNMP/system.hw.physicaldisk.status[cucsStorageLocalDiskDiskState.{#SNMPINDEX}],#1,"eq","{$DISK_FAIL_STATUS:\"failed\"}")=1' - - expression: '{count(#1,{$DISK_FAIL_STATUS:"failed"},eq)}=1' + expression: 'count(/Cisco UCS SNMP/system.hw.physicaldisk.status[cucsStorageLocalDiskDiskState.{#SNMPINDEX}],#1,"eq","{$DISK_FAIL_STATUS:\"failed\"}")=1' name: '{#DISK_LOCATION}: Physical disk failed' opdata: 'Current status: {ITEM.LASTVALUE1}' priority: HIGH @@ -290,13 +290,13 @@ zabbix_export: value: 'Power supply' trigger_prototypes: - - expression: '{count(#1,{$PSU_CRIT_STATUS:"inoperable"},eq)}=1' + expression: 'count(/Cisco UCS SNMP/sensor.psu.status[cucsEquipmentPsuOperState.{#SNMPINDEX}],#1,"eq","{$PSU_CRIT_STATUS:\"inoperable\"}")=1' name: '{#PSU_LOCATION}: Power supply is in critical state' opdata: 'Current state: {ITEM.LASTVALUE1}' priority: AVERAGE description: 'Please check the power supply unit for errors' - - expression: '{count(#1,{$PSU_WARN_STATUS:"degraded"},eq)}=1' + expression: 'count(/Cisco UCS SNMP/sensor.psu.status[cucsEquipmentPsuOperState.{#SNMPINDEX}],#1,"eq","{$PSU_WARN_STATUS:\"degraded\"}")=1' name: '{#PSU_LOCATION}: Power supply is in warning state' opdata: 'Current state: {ITEM.LASTVALUE1}' priority: WARNING @@ -304,7 +304,7 @@ zabbix_export: dependencies: - name: '{#PSU_LOCATION}: Power supply is in critical state' - expression: '{Cisco UCS SNMP:sensor.psu.status[cucsEquipmentPsuOperState.{#SNMPINDEX}].count(#1,{$PSU_CRIT_STATUS:"inoperable"},eq)}=1' + expression: 'count(/Cisco UCS SNMP/sensor.psu.status[cucsEquipmentPsuOperState.{#SNMPINDEX}],#1,"eq","{$PSU_CRIT_STATUS:\"inoperable\"}")=1' - name: 'Temperature CPU Discovery' type: SNMP_AGENT @@ -329,17 +329,17 @@ zabbix_export: value: Temperature trigger_prototypes: - - expression: '{avg(5m)}>{$TEMP_CRIT:"CPU"}' + expression: 'avg(/Cisco UCS SNMP/sensor.temp.value[cucsProcessorEnvStatsTemperature.{#SNMPINDEX}],5m)>{$TEMP_CRIT:"CPU"}' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{max(5m)}<{$TEMP_CRIT:"CPU"}-3' + recovery_expression: 'max(/Cisco UCS SNMP/sensor.temp.value[cucsProcessorEnvStatsTemperature.{#SNMPINDEX}],5m)<{$TEMP_CRIT:"CPU"}-3' name: '{#SENSOR_LOCATION}: Temperature is above critical threshold: >{$TEMP_CRIT:"CPU"}' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: HIGH description: 'This trigger uses temperature sensor values as well as temperature sensor status if available' - - expression: '{avg(5m)}>{$TEMP_WARN:"CPU"}' + expression: 'avg(/Cisco UCS SNMP/sensor.temp.value[cucsProcessorEnvStatsTemperature.{#SNMPINDEX}],5m)>{$TEMP_WARN:"CPU"}' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{max(5m)}<{$TEMP_WARN:"CPU"}-3' + recovery_expression: 'max(/Cisco UCS SNMP/sensor.temp.value[cucsProcessorEnvStatsTemperature.{#SNMPINDEX}],5m)<{$TEMP_WARN:"CPU"}-3' name: '{#SENSOR_LOCATION}: Temperature is above warning threshold: >{$TEMP_WARN:"CPU"}' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING @@ -347,12 +347,12 @@ zabbix_export: dependencies: - name: '{#SENSOR_LOCATION}: Temperature is above critical threshold: >{$TEMP_CRIT:"CPU"}' - expression: '{Cisco UCS SNMP:sensor.temp.value[cucsProcessorEnvStatsTemperature.{#SNMPINDEX}].avg(5m)}>{$TEMP_CRIT:"CPU"}' - recovery_expression: '{Cisco UCS SNMP:sensor.temp.value[cucsProcessorEnvStatsTemperature.{#SNMPINDEX}].max(5m)}<{$TEMP_CRIT:"CPU"}-3' + expression: 'avg(/Cisco UCS SNMP/sensor.temp.value[cucsProcessorEnvStatsTemperature.{#SNMPINDEX}],5m)>{$TEMP_CRIT:"CPU"}' + recovery_expression: 'max(/Cisco UCS SNMP/sensor.temp.value[cucsProcessorEnvStatsTemperature.{#SNMPINDEX}],5m)<{$TEMP_CRIT:"CPU"}-3' - - expression: '{avg(5m)}<{$TEMP_CRIT_LOW:"CPU"}' + expression: 'avg(/Cisco UCS SNMP/sensor.temp.value[cucsProcessorEnvStatsTemperature.{#SNMPINDEX}],5m)<{$TEMP_CRIT_LOW:"CPU"}' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{min(5m)}>{$TEMP_CRIT_LOW:"CPU"}+3' + recovery_expression: 'min(/Cisco UCS SNMP/sensor.temp.value[cucsProcessorEnvStatsTemperature.{#SNMPINDEX}],5m)>{$TEMP_CRIT_LOW:"CPU"}+3' name: '{#SENSOR_LOCATION}: Temperature is too low: <{$TEMP_CRIT_LOW:"CPU"}' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: AVERAGE @@ -380,17 +380,17 @@ zabbix_export: value: Temperature trigger_prototypes: - - expression: '{avg(5m)}>{$TEMP_CRIT:"Ambient"}' + expression: 'avg(/Cisco UCS SNMP/sensor.temp.value[cucsComputeRackUnitMbTempSltatsIoh1Temp.{#SNMPINDEX}],5m)>{$TEMP_CRIT:"Ambient"}' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{max(5m)}<{$TEMP_CRIT:"Ambient"}-3' + recovery_expression: 'max(/Cisco UCS SNMP/sensor.temp.value[cucsComputeRackUnitMbTempSltatsIoh1Temp.{#SNMPINDEX}],5m)<{$TEMP_CRIT:"Ambient"}-3' name: '{#SENSOR_LOCATION}.IOH: Temperature is above critical threshold: >{$TEMP_CRIT:"Ambient"}' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: HIGH description: 'This trigger uses temperature sensor values as well as temperature sensor status if available' - - expression: '{avg(5m)}>{$TEMP_WARN:"Ambient"}' + expression: 'avg(/Cisco UCS SNMP/sensor.temp.value[cucsComputeRackUnitMbTempSltatsIoh1Temp.{#SNMPINDEX}],5m)>{$TEMP_WARN:"Ambient"}' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{max(5m)}<{$TEMP_WARN:"Ambient"}-3' + recovery_expression: 'max(/Cisco UCS SNMP/sensor.temp.value[cucsComputeRackUnitMbTempSltatsIoh1Temp.{#SNMPINDEX}],5m)<{$TEMP_WARN:"Ambient"}-3' name: '{#SENSOR_LOCATION}.IOH: Temperature is above warning threshold: >{$TEMP_WARN:"Ambient"}' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING @@ -398,12 +398,12 @@ zabbix_export: dependencies: - name: '{#SENSOR_LOCATION}.IOH: Temperature is above critical threshold: >{$TEMP_CRIT:"Ambient"}' - expression: '{Cisco UCS SNMP:sensor.temp.value[cucsComputeRackUnitMbTempSltatsIoh1Temp.{#SNMPINDEX}].avg(5m)}>{$TEMP_CRIT:"Ambient"}' - recovery_expression: '{Cisco UCS SNMP:sensor.temp.value[cucsComputeRackUnitMbTempSltatsIoh1Temp.{#SNMPINDEX}].max(5m)}<{$TEMP_CRIT:"Ambient"}-3' + expression: 'avg(/Cisco UCS SNMP/sensor.temp.value[cucsComputeRackUnitMbTempSltatsIoh1Temp.{#SNMPINDEX}],5m)>{$TEMP_CRIT:"Ambient"}' + recovery_expression: 'max(/Cisco UCS SNMP/sensor.temp.value[cucsComputeRackUnitMbTempSltatsIoh1Temp.{#SNMPINDEX}],5m)<{$TEMP_CRIT:"Ambient"}-3' - - expression: '{avg(5m)}<{$TEMP_CRIT_LOW:"Ambient"}' + expression: 'avg(/Cisco UCS SNMP/sensor.temp.value[cucsComputeRackUnitMbTempSltatsIoh1Temp.{#SNMPINDEX}],5m)<{$TEMP_CRIT_LOW:"Ambient"}' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{min(5m)}>{$TEMP_CRIT_LOW:"Ambient"}+3' + recovery_expression: 'min(/Cisco UCS SNMP/sensor.temp.value[cucsComputeRackUnitMbTempSltatsIoh1Temp.{#SNMPINDEX}],5m)>{$TEMP_CRIT_LOW:"Ambient"}+3' name: '{#SENSOR_LOCATION}.IOH: Temperature is too low: <{$TEMP_CRIT_LOW:"Ambient"}' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: AVERAGE @@ -424,17 +424,17 @@ zabbix_export: value: Temperature trigger_prototypes: - - expression: '{avg(5m)}>{$TEMP_CRIT:"Ambient"}' + expression: 'avg(/Cisco UCS SNMP/sensor.temp.value[cucsComputeRackUnitMbTempStatsAmbientTemp.{#SNMPINDEX}],5m)>{$TEMP_CRIT:"Ambient"}' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{max(5m)}<{$TEMP_CRIT:"Ambient"}-3' + recovery_expression: 'max(/Cisco UCS SNMP/sensor.temp.value[cucsComputeRackUnitMbTempStatsAmbientTemp.{#SNMPINDEX}],5m)<{$TEMP_CRIT:"Ambient"}-3' name: '{#SENSOR_LOCATION}.Ambient: Temperature is above critical threshold: >{$TEMP_CRIT:"Ambient"}' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: HIGH description: 'This trigger uses temperature sensor values as well as temperature sensor status if available' - - expression: '{avg(5m)}>{$TEMP_WARN:"Ambient"}' + expression: 'avg(/Cisco UCS SNMP/sensor.temp.value[cucsComputeRackUnitMbTempStatsAmbientTemp.{#SNMPINDEX}],5m)>{$TEMP_WARN:"Ambient"}' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{max(5m)}<{$TEMP_WARN:"Ambient"}-3' + recovery_expression: 'max(/Cisco UCS SNMP/sensor.temp.value[cucsComputeRackUnitMbTempStatsAmbientTemp.{#SNMPINDEX}],5m)<{$TEMP_WARN:"Ambient"}-3' name: '{#SENSOR_LOCATION}.Ambient: Temperature is above warning threshold: >{$TEMP_WARN:"Ambient"}' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING @@ -442,12 +442,12 @@ zabbix_export: dependencies: - name: '{#SENSOR_LOCATION}.Ambient: Temperature is above critical threshold: >{$TEMP_CRIT:"Ambient"}' - expression: '{Cisco UCS SNMP:sensor.temp.value[cucsComputeRackUnitMbTempStatsAmbientTemp.{#SNMPINDEX}].avg(5m)}>{$TEMP_CRIT:"Ambient"}' - recovery_expression: '{Cisco UCS SNMP:sensor.temp.value[cucsComputeRackUnitMbTempStatsAmbientTemp.{#SNMPINDEX}].max(5m)}<{$TEMP_CRIT:"Ambient"}-3' + expression: 'avg(/Cisco UCS SNMP/sensor.temp.value[cucsComputeRackUnitMbTempStatsAmbientTemp.{#SNMPINDEX}],5m)>{$TEMP_CRIT:"Ambient"}' + recovery_expression: 'max(/Cisco UCS SNMP/sensor.temp.value[cucsComputeRackUnitMbTempStatsAmbientTemp.{#SNMPINDEX}],5m)<{$TEMP_CRIT:"Ambient"}-3' - - expression: '{avg(5m)}<{$TEMP_CRIT_LOW:"Ambient"}' + expression: 'avg(/Cisco UCS SNMP/sensor.temp.value[cucsComputeRackUnitMbTempStatsAmbientTemp.{#SNMPINDEX}],5m)<{$TEMP_CRIT_LOW:"Ambient"}' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{min(5m)}>{$TEMP_CRIT_LOW:"Ambient"}+3' + recovery_expression: 'min(/Cisco UCS SNMP/sensor.temp.value[cucsComputeRackUnitMbTempStatsAmbientTemp.{#SNMPINDEX}],5m)>{$TEMP_CRIT_LOW:"Ambient"}+3' name: '{#SENSOR_LOCATION}.Ambient: Temperature is too low: <{$TEMP_CRIT_LOW:"Ambient"}' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: AVERAGE @@ -468,17 +468,17 @@ zabbix_export: value: Temperature trigger_prototypes: - - expression: '{avg(5m)}>{$TEMP_CRIT:"Ambient"}' + expression: 'avg(/Cisco UCS SNMP/sensor.temp.value[cucsComputeRackUnitMbTempStatsFrontTemp.{#SNMPINDEX}],5m)>{$TEMP_CRIT:"Ambient"}' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{max(5m)}<{$TEMP_CRIT:"Ambient"}-3' + recovery_expression: 'max(/Cisco UCS SNMP/sensor.temp.value[cucsComputeRackUnitMbTempStatsFrontTemp.{#SNMPINDEX}],5m)<{$TEMP_CRIT:"Ambient"}-3' name: '{#SENSOR_LOCATION}.Front: Temperature is above critical threshold: >{$TEMP_CRIT:"Ambient"}' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: HIGH description: 'This trigger uses temperature sensor values as well as temperature sensor status if available' - - expression: '{avg(5m)}>{$TEMP_WARN:"Ambient"}' + expression: 'avg(/Cisco UCS SNMP/sensor.temp.value[cucsComputeRackUnitMbTempStatsFrontTemp.{#SNMPINDEX}],5m)>{$TEMP_WARN:"Ambient"}' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{max(5m)}<{$TEMP_WARN:"Ambient"}-3' + recovery_expression: 'max(/Cisco UCS SNMP/sensor.temp.value[cucsComputeRackUnitMbTempStatsFrontTemp.{#SNMPINDEX}],5m)<{$TEMP_WARN:"Ambient"}-3' name: '{#SENSOR_LOCATION}.Front: Temperature is above warning threshold: >{$TEMP_WARN:"Ambient"}' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING @@ -486,12 +486,12 @@ zabbix_export: dependencies: - name: '{#SENSOR_LOCATION}.Front: Temperature is above critical threshold: >{$TEMP_CRIT:"Ambient"}' - expression: '{Cisco UCS SNMP:sensor.temp.value[cucsComputeRackUnitMbTempStatsFrontTemp.{#SNMPINDEX}].avg(5m)}>{$TEMP_CRIT:"Ambient"}' - recovery_expression: '{Cisco UCS SNMP:sensor.temp.value[cucsComputeRackUnitMbTempStatsFrontTemp.{#SNMPINDEX}].max(5m)}<{$TEMP_CRIT:"Ambient"}-3' + expression: 'avg(/Cisco UCS SNMP/sensor.temp.value[cucsComputeRackUnitMbTempStatsFrontTemp.{#SNMPINDEX}],5m)>{$TEMP_CRIT:"Ambient"}' + recovery_expression: 'max(/Cisco UCS SNMP/sensor.temp.value[cucsComputeRackUnitMbTempStatsFrontTemp.{#SNMPINDEX}],5m)<{$TEMP_CRIT:"Ambient"}-3' - - expression: '{avg(5m)}<{$TEMP_CRIT_LOW:"Ambient"}' + expression: 'avg(/Cisco UCS SNMP/sensor.temp.value[cucsComputeRackUnitMbTempStatsFrontTemp.{#SNMPINDEX}],5m)<{$TEMP_CRIT_LOW:"Ambient"}' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{min(5m)}>{$TEMP_CRIT_LOW:"Ambient"}+3' + recovery_expression: 'min(/Cisco UCS SNMP/sensor.temp.value[cucsComputeRackUnitMbTempStatsFrontTemp.{#SNMPINDEX}],5m)>{$TEMP_CRIT_LOW:"Ambient"}+3' name: '{#SENSOR_LOCATION}.Front: Temperature is too low: <{$TEMP_CRIT_LOW:"Ambient"}' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: AVERAGE @@ -512,17 +512,17 @@ zabbix_export: value: Temperature trigger_prototypes: - - expression: '{avg(5m)}>{$TEMP_CRIT:"Ambient"}' + expression: 'avg(/Cisco UCS SNMP/sensor.temp.value[cucsComputeRackUnitMbTempStatsRearTemp.{#SNMPINDEX}],5m)>{$TEMP_CRIT:"Ambient"}' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{max(5m)}<{$TEMP_CRIT:"Ambient"}-3' + recovery_expression: 'max(/Cisco UCS SNMP/sensor.temp.value[cucsComputeRackUnitMbTempStatsRearTemp.{#SNMPINDEX}],5m)<{$TEMP_CRIT:"Ambient"}-3' name: '{#SENSOR_LOCATION}.Rear: Temperature is above critical threshold: >{$TEMP_CRIT:"Ambient"}' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: HIGH description: 'This trigger uses temperature sensor values as well as temperature sensor status if available' - - expression: '{avg(5m)}>{$TEMP_WARN:"Ambient"}' + expression: 'avg(/Cisco UCS SNMP/sensor.temp.value[cucsComputeRackUnitMbTempStatsRearTemp.{#SNMPINDEX}],5m)>{$TEMP_WARN:"Ambient"}' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{max(5m)}<{$TEMP_WARN:"Ambient"}-3' + recovery_expression: 'max(/Cisco UCS SNMP/sensor.temp.value[cucsComputeRackUnitMbTempStatsRearTemp.{#SNMPINDEX}],5m)<{$TEMP_WARN:"Ambient"}-3' name: '{#SENSOR_LOCATION}.Rear: Temperature is above warning threshold: >{$TEMP_WARN:"Ambient"}' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING @@ -530,12 +530,12 @@ zabbix_export: dependencies: - name: '{#SENSOR_LOCATION}.Rear: Temperature is above critical threshold: >{$TEMP_CRIT:"Ambient"}' - expression: '{Cisco UCS SNMP:sensor.temp.value[cucsComputeRackUnitMbTempStatsRearTemp.{#SNMPINDEX}].avg(5m)}>{$TEMP_CRIT:"Ambient"}' - recovery_expression: '{Cisco UCS SNMP:sensor.temp.value[cucsComputeRackUnitMbTempStatsRearTemp.{#SNMPINDEX}].max(5m)}<{$TEMP_CRIT:"Ambient"}-3' + expression: 'avg(/Cisco UCS SNMP/sensor.temp.value[cucsComputeRackUnitMbTempStatsRearTemp.{#SNMPINDEX}],5m)>{$TEMP_CRIT:"Ambient"}' + recovery_expression: 'max(/Cisco UCS SNMP/sensor.temp.value[cucsComputeRackUnitMbTempStatsRearTemp.{#SNMPINDEX}],5m)<{$TEMP_CRIT:"Ambient"}-3' - - expression: '{avg(5m)}<{$TEMP_CRIT_LOW:"Ambient"}' + expression: 'avg(/Cisco UCS SNMP/sensor.temp.value[cucsComputeRackUnitMbTempStatsRearTemp.{#SNMPINDEX}],5m)<{$TEMP_CRIT_LOW:"Ambient"}' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{min(5m)}>{$TEMP_CRIT_LOW:"Ambient"}+3' + recovery_expression: 'min(/Cisco UCS SNMP/sensor.temp.value[cucsComputeRackUnitMbTempStatsRearTemp.{#SNMPINDEX}],5m)>{$TEMP_CRIT_LOW:"Ambient"}+3' name: '{#SENSOR_LOCATION}.Rear: Temperature is too low: <{$TEMP_CRIT_LOW:"Ambient"}' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: AVERAGE @@ -590,7 +590,7 @@ zabbix_export: value: Inventory trigger_prototypes: - - expression: '{diff()}=1 and {strlen()}>0' + expression: '(last(/Cisco UCS SNMP/system.hw.serialnumber[cucsComputeRackUnitSerial.{#SNMPINDEX}],#1)<>last(/Cisco UCS SNMP/system.hw.serialnumber[cucsComputeRackUnitSerial.{#SNMPINDEX}],#2))=1 and length(last(/Cisco UCS SNMP/system.hw.serialnumber[cucsComputeRackUnitSerial.{#SNMPINDEX}]))>0' name: '{#UNIT_LOCATION}: Device has been replaced (new serial number received)' priority: INFO description: 'Device serial number has changed. Ack to close' @@ -614,13 +614,13 @@ zabbix_export: value: Status trigger_prototypes: - - expression: '{count(#1,{$HEALTH_CRIT_STATUS:"computeFailed"},eq)}=1 or {count(#1,{$HEALTH_CRIT_STATUS:"configFailure"},eq)}=1 or {count(#1,{$HEALTH_CRIT_STATUS:"unconfigFailure"},eq)}=1 or {count(#1,{$HEALTH_CRIT_STATUS:"inoperable"},eq)}=1' + expression: 'count(/Cisco UCS SNMP/system.status[cucsComputeRackUnitOperState.{#SNMPINDEX}],#1,"eq","{$HEALTH_CRIT_STATUS:\"computeFailed\"}")=1 or count(/Cisco UCS SNMP/system.status[cucsComputeRackUnitOperState.{#SNMPINDEX}],#1,"eq","{$HEALTH_CRIT_STATUS:\"configFailure\"}")=1 or count(/Cisco UCS SNMP/system.status[cucsComputeRackUnitOperState.{#SNMPINDEX}],#1,"eq","{$HEALTH_CRIT_STATUS:\"unconfigFailure\"}")=1 or count(/Cisco UCS SNMP/system.status[cucsComputeRackUnitOperState.{#SNMPINDEX}],#1,"eq","{$HEALTH_CRIT_STATUS:\"inoperable\"}")=1' name: '{#UNIT_LOCATION}: System status is in critical state' opdata: 'Current state: {ITEM.LASTVALUE1}' priority: HIGH description: 'Please check the device for errors' - - expression: '{count(#1,{$HEALTH_WARN_STATUS:"testFailed"},eq)}=1 or {count(#1,{$HEALTH_WARN_STATUS:"thermalProblem"},eq)}=1 or {count(#1,{$HEALTH_WARN_STATUS:"powerProblem"},eq)}=1 or {count(#1,{$HEALTH_WARN_STATUS:"voltageProblem"},eq)}=1 or {count(#1,{$HEALTH_WARN_STATUS:"diagnosticsFailed"},eq)}=1' + expression: 'count(/Cisco UCS SNMP/system.status[cucsComputeRackUnitOperState.{#SNMPINDEX}],#1,"eq","{$HEALTH_WARN_STATUS:\"testFailed\"}")=1 or count(/Cisco UCS SNMP/system.status[cucsComputeRackUnitOperState.{#SNMPINDEX}],#1,"eq","{$HEALTH_WARN_STATUS:\"thermalProblem\"}")=1 or count(/Cisco UCS SNMP/system.status[cucsComputeRackUnitOperState.{#SNMPINDEX}],#1,"eq","{$HEALTH_WARN_STATUS:\"powerProblem\"}")=1 or count(/Cisco UCS SNMP/system.status[cucsComputeRackUnitOperState.{#SNMPINDEX}],#1,"eq","{$HEALTH_WARN_STATUS:\"voltageProblem\"}")=1 or count(/Cisco UCS SNMP/system.status[cucsComputeRackUnitOperState.{#SNMPINDEX}],#1,"eq","{$HEALTH_WARN_STATUS:\"diagnosticsFailed\"}")=1' name: '{#UNIT_LOCATION}: System status is in warning state' opdata: 'Current state: {ITEM.LASTVALUE1}' priority: WARNING @@ -628,7 +628,7 @@ zabbix_export: dependencies: - name: '{#UNIT_LOCATION}: System status is in critical state' - expression: '{Cisco UCS SNMP:system.status[cucsComputeRackUnitOperState.{#SNMPINDEX}].count(#1,{$HEALTH_CRIT_STATUS:"computeFailed"},eq)}=1 or {Cisco UCS SNMP:system.status[cucsComputeRackUnitOperState.{#SNMPINDEX}].count(#1,{$HEALTH_CRIT_STATUS:"configFailure"},eq)}=1 or {Cisco UCS SNMP:system.status[cucsComputeRackUnitOperState.{#SNMPINDEX}].count(#1,{$HEALTH_CRIT_STATUS:"unconfigFailure"},eq)}=1 or {Cisco UCS SNMP:system.status[cucsComputeRackUnitOperState.{#SNMPINDEX}].count(#1,{$HEALTH_CRIT_STATUS:"inoperable"},eq)}=1' + expression: 'count(/Cisco UCS SNMP/system.status[cucsComputeRackUnitOperState.{#SNMPINDEX}],#1,"eq","{$HEALTH_CRIT_STATUS:\"computeFailed\"}")=1 or count(/Cisco UCS SNMP/system.status[cucsComputeRackUnitOperState.{#SNMPINDEX}],#1,"eq","{$HEALTH_CRIT_STATUS:\"configFailure\"}")=1 or count(/Cisco UCS SNMP/system.status[cucsComputeRackUnitOperState.{#SNMPINDEX}],#1,"eq","{$HEALTH_CRIT_STATUS:\"unconfigFailure\"}")=1 or count(/Cisco UCS SNMP/system.status[cucsComputeRackUnitOperState.{#SNMPINDEX}],#1,"eq","{$HEALTH_CRIT_STATUS:\"inoperable\"}")=1' - name: 'Virtual Disk Discovery' type: SNMP_AGENT @@ -694,7 +694,7 @@ zabbix_export: value: 'Virtual disks' trigger_prototypes: - - expression: '{count(#1,{$VDISK_OK_STATUS:"equipped"},ne)}=1' + expression: 'count(/Cisco UCS SNMP/system.hw.virtualdisk.status[cucsStorageLocalLunPresence.{#SNMPINDEX}],#1,"ne","{$VDISK_OK_STATUS:\"equipped\"}")=1' name: '{#VDISK_LOCATION}: Virtual disk is not in OK state' opdata: 'Current state: {ITEM.LASTVALUE1}' priority: WARNING diff --git a/templates/server/dell_idrac_snmp/template_server_dell_idrac_snmp.yaml b/templates/server/dell_idrac_snmp/template_server_dell_idrac_snmp.yaml index c4a0c845380..ada2a9f2f3c 100644 --- a/templates/server/dell_idrac_snmp/template_server_dell_idrac_snmp.yaml +++ b/templates/server/dell_idrac_snmp/template_server_dell_idrac_snmp.yaml @@ -1,6 +1,6 @@ zabbix_export: version: '5.4' - date: '2021-02-23T11:04:53Z' + date: '2021-05-09T00:00:00Z' groups: - name: 'Templates/Server hardware' @@ -45,7 +45,7 @@ zabbix_export: value: Inventory triggers: - - expression: '{diff()}=1 and {strlen()}>0' + expression: '(last(/Dell iDRAC SNMP/system.hw.firmware,#1)<>last(/Dell iDRAC SNMP/system.hw.firmware,#2))=1 and length(last(/Dell iDRAC SNMP/system.hw.firmware))>0' name: 'Firmware has changed' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: INFO @@ -97,7 +97,7 @@ zabbix_export: value: Inventory triggers: - - expression: '{diff()}=1 and {strlen()}>0' + expression: '(last(/Dell iDRAC SNMP/system.hw.serialnumber,#1)<>last(/Dell iDRAC SNMP/system.hw.serialnumber,#2))=1 and length(last(/Dell iDRAC SNMP/system.hw.serialnumber))>0' name: 'Device has been replaced (new serial number received)' priority: INFO description: 'Device serial number has changed. Ack to close' @@ -121,13 +121,13 @@ zabbix_export: value: Status triggers: - - expression: '{count(#1,{$HEALTH_DISASTER_STATUS},eq)}=1' + expression: 'count(/Dell iDRAC SNMP/system.status[globalSystemStatus.0],#1,"eq","{$HEALTH_DISASTER_STATUS}")=1' name: 'System is in unrecoverable state!' opdata: 'Current state: {ITEM.LASTVALUE1}' priority: HIGH description: 'Please check the device for faults' - - expression: '{count(#1,{$HEALTH_CRIT_STATUS},eq)}=1' + expression: 'count(/Dell iDRAC SNMP/system.status[globalSystemStatus.0],#1,"eq","{$HEALTH_CRIT_STATUS}")=1' name: 'System status is in critical state' opdata: 'Current state: {ITEM.LASTVALUE1}' priority: HIGH @@ -135,9 +135,9 @@ zabbix_export: dependencies: - name: 'System is in unrecoverable state!' - expression: '{Dell iDRAC SNMP:system.status[globalSystemStatus.0].count(#1,{$HEALTH_DISASTER_STATUS},eq)}=1' + expression: 'count(/Dell iDRAC SNMP/system.status[globalSystemStatus.0],#1,"eq","{$HEALTH_DISASTER_STATUS}")=1' - - expression: '{count(#1,{$HEALTH_WARN_STATUS},eq)}=1' + expression: 'count(/Dell iDRAC SNMP/system.status[globalSystemStatus.0],#1,"eq","{$HEALTH_WARN_STATUS}")=1' name: 'System status is in warning state' opdata: 'Current state: {ITEM.LASTVALUE1}' priority: WARNING @@ -145,10 +145,10 @@ zabbix_export: dependencies: - name: 'System is in unrecoverable state!' - expression: '{Dell iDRAC SNMP:system.status[globalSystemStatus.0].count(#1,{$HEALTH_DISASTER_STATUS},eq)}=1' + expression: 'count(/Dell iDRAC SNMP/system.status[globalSystemStatus.0],#1,"eq","{$HEALTH_DISASTER_STATUS}")=1' - name: 'System status is in critical state' - expression: '{Dell iDRAC SNMP:system.status[globalSystemStatus.0].count(#1,{$HEALTH_CRIT_STATUS},eq)}=1' + expression: 'count(/Dell iDRAC SNMP/system.status[globalSystemStatus.0],#1,"eq","{$HEALTH_CRIT_STATUS}")=1' - name: 'Operating system' type: SNMP_AGENT @@ -173,7 +173,7 @@ zabbix_export: value: Inventory triggers: - - expression: '{diff()}=1 and {strlen()}>0' + expression: '(last(/Dell iDRAC SNMP/system.sw.os[systemOSName],#1)<>last(/Dell iDRAC SNMP/system.sw.os[systemOSName],#2))=1 and length(last(/Dell iDRAC SNMP/system.sw.os[systemOSName]))>0' name: 'Operating system description has changed' priority: INFO description: 'Operating system description has changed. Possible reasons that system has been updated or replaced. Ack to close.' @@ -213,13 +213,13 @@ zabbix_export: value: 'Disk arrays' trigger_prototypes: - - expression: '{count(#1,{$DISK_ARRAY_CACHE_BATTERY_CRIT_STATUS},eq)}=1' + expression: 'count(/Dell iDRAC SNMP/system.hw.diskarray.cache.battery.status[batteryState.{#SNMPINDEX}],#1,"eq","{$DISK_ARRAY_CACHE_BATTERY_CRIT_STATUS}")=1' name: 'Battery {#BATTERY_NUM}: Disk array cache controller battery is in critical state!' opdata: 'Current state: {ITEM.LASTVALUE1}' priority: AVERAGE description: 'Please check the device for faults' - - expression: '{count(#1,{$DISK_ARRAY_CACHE_BATTERY_WARN_STATUS},eq)}=1' + expression: 'count(/Dell iDRAC SNMP/system.hw.diskarray.cache.battery.status[batteryState.{#SNMPINDEX}],#1,"eq","{$DISK_ARRAY_CACHE_BATTERY_WARN_STATUS}")=1' name: 'Battery {#BATTERY_NUM}: Disk array cache controller battery is in warning state' opdata: 'Current state: {ITEM.LASTVALUE1}' priority: WARNING @@ -227,9 +227,9 @@ zabbix_export: dependencies: - name: 'Battery {#BATTERY_NUM}: Disk array cache controller battery is in critical state!' - expression: '{Dell iDRAC SNMP:system.hw.diskarray.cache.battery.status[batteryState.{#SNMPINDEX}].count(#1,{$DISK_ARRAY_CACHE_BATTERY_CRIT_STATUS},eq)}=1' + expression: 'count(/Dell iDRAC SNMP/system.hw.diskarray.cache.battery.status[batteryState.{#SNMPINDEX}],#1,"eq","{$DISK_ARRAY_CACHE_BATTERY_CRIT_STATUS}")=1' - - expression: '{count(#1,{$DISK_ARRAY_CACHE_BATTERY_OK_STATUS},ne)}=1' + expression: 'count(/Dell iDRAC SNMP/system.hw.diskarray.cache.battery.status[batteryState.{#SNMPINDEX}],#1,"ne","{$DISK_ARRAY_CACHE_BATTERY_OK_STATUS}")=1' name: 'Battery {#BATTERY_NUM}: Disk array cache controller battery is not in optimal state' opdata: 'Current state: {ITEM.LASTVALUE1}' priority: WARNING @@ -237,10 +237,10 @@ zabbix_export: dependencies: - name: 'Battery {#BATTERY_NUM}: Disk array cache controller battery is in critical state!' - expression: '{Dell iDRAC SNMP:system.hw.diskarray.cache.battery.status[batteryState.{#SNMPINDEX}].count(#1,{$DISK_ARRAY_CACHE_BATTERY_CRIT_STATUS},eq)}=1' + expression: 'count(/Dell iDRAC SNMP/system.hw.diskarray.cache.battery.status[batteryState.{#SNMPINDEX}],#1,"eq","{$DISK_ARRAY_CACHE_BATTERY_CRIT_STATUS}")=1' - name: 'Battery {#BATTERY_NUM}: Disk array cache controller battery is in warning state' - expression: '{Dell iDRAC SNMP:system.hw.diskarray.cache.battery.status[batteryState.{#SNMPINDEX}].count(#1,{$DISK_ARRAY_CACHE_BATTERY_WARN_STATUS},eq)}=1' + expression: 'count(/Dell iDRAC SNMP/system.hw.diskarray.cache.battery.status[batteryState.{#SNMPINDEX}],#1,"eq","{$DISK_ARRAY_CACHE_BATTERY_WARN_STATUS}")=1' - name: 'FAN Discovery' type: SNMP_AGENT @@ -292,13 +292,13 @@ zabbix_export: value: Fans trigger_prototypes: - - expression: '{count(#1,{$FAN_CRIT_STATUS:"criticalUpper"},eq)}=1 or {count(#1,{$FAN_CRIT_STATUS:"nonRecoverableUpper"},eq)}=1 or {count(#1,{$FAN_CRIT_STATUS:"criticalLower"},eq)}=1 or {count(#1,{$FAN_CRIT_STATUS:"nonRecoverableLower"},eq)}=1 or {count(#1,{$FAN_CRIT_STATUS:"failed"},eq)}=1' + expression: 'count(/Dell iDRAC SNMP/sensor.fan.status[coolingDeviceStatus.{#SNMPINDEX}],#1,"eq","{$FAN_CRIT_STATUS:\"criticalUpper\"}")=1 or count(/Dell iDRAC SNMP/sensor.fan.status[coolingDeviceStatus.{#SNMPINDEX}],#1,"eq","{$FAN_CRIT_STATUS:\"nonRecoverableUpper\"}")=1 or count(/Dell iDRAC SNMP/sensor.fan.status[coolingDeviceStatus.{#SNMPINDEX}],#1,"eq","{$FAN_CRIT_STATUS:\"criticalLower\"}")=1 or count(/Dell iDRAC SNMP/sensor.fan.status[coolingDeviceStatus.{#SNMPINDEX}],#1,"eq","{$FAN_CRIT_STATUS:\"nonRecoverableLower\"}")=1 or count(/Dell iDRAC SNMP/sensor.fan.status[coolingDeviceStatus.{#SNMPINDEX}],#1,"eq","{$FAN_CRIT_STATUS:\"failed\"}")=1' name: '{#FAN_DESCR}: Fan is in critical state' opdata: 'Current state: {ITEM.LASTVALUE1}' priority: AVERAGE description: 'Please check the fan unit' - - expression: '{count(#1,{$FAN_WARN_STATUS:"nonCriticalUpper"},eq)}=1 or {count(#1,{$FAN_WARN_STATUS:"nonCriticalLower"},eq)}=1' + expression: 'count(/Dell iDRAC SNMP/sensor.fan.status[coolingDeviceStatus.{#SNMPINDEX}],#1,"eq","{$FAN_WARN_STATUS:\"nonCriticalUpper\"}")=1 or count(/Dell iDRAC SNMP/sensor.fan.status[coolingDeviceStatus.{#SNMPINDEX}],#1,"eq","{$FAN_WARN_STATUS:\"nonCriticalLower\"}")=1' name: '{#FAN_DESCR}: Fan is in warning state' opdata: 'Current state: {ITEM.LASTVALUE1}' priority: WARNING @@ -306,7 +306,7 @@ zabbix_export: dependencies: - name: '{#FAN_DESCR}: Fan is in critical state' - expression: '{Dell iDRAC SNMP:sensor.fan.status[coolingDeviceStatus.{#SNMPINDEX}].count(#1,{$FAN_CRIT_STATUS:"criticalUpper"},eq)}=1 or {Dell iDRAC SNMP:sensor.fan.status[coolingDeviceStatus.{#SNMPINDEX}].count(#1,{$FAN_CRIT_STATUS:"nonRecoverableUpper"},eq)}=1 or {Dell iDRAC SNMP:sensor.fan.status[coolingDeviceStatus.{#SNMPINDEX}].count(#1,{$FAN_CRIT_STATUS:"criticalLower"},eq)}=1 or {Dell iDRAC SNMP:sensor.fan.status[coolingDeviceStatus.{#SNMPINDEX}].count(#1,{$FAN_CRIT_STATUS:"nonRecoverableLower"},eq)}=1 or {Dell iDRAC SNMP:sensor.fan.status[coolingDeviceStatus.{#SNMPINDEX}].count(#1,{$FAN_CRIT_STATUS:"failed"},eq)}=1' + expression: 'count(/Dell iDRAC SNMP/sensor.fan.status[coolingDeviceStatus.{#SNMPINDEX}],#1,"eq","{$FAN_CRIT_STATUS:\"criticalUpper\"}")=1 or count(/Dell iDRAC SNMP/sensor.fan.status[coolingDeviceStatus.{#SNMPINDEX}],#1,"eq","{$FAN_CRIT_STATUS:\"nonRecoverableUpper\"}")=1 or count(/Dell iDRAC SNMP/sensor.fan.status[coolingDeviceStatus.{#SNMPINDEX}],#1,"eq","{$FAN_CRIT_STATUS:\"criticalLower\"}")=1 or count(/Dell iDRAC SNMP/sensor.fan.status[coolingDeviceStatus.{#SNMPINDEX}],#1,"eq","{$FAN_CRIT_STATUS:\"nonRecoverableLower\"}")=1 or count(/Dell iDRAC SNMP/sensor.fan.status[coolingDeviceStatus.{#SNMPINDEX}],#1,"eq","{$FAN_CRIT_STATUS:\"failed\"}")=1' - name: 'Array Controller Discovery' type: SNMP_AGENT @@ -355,7 +355,7 @@ zabbix_export: value: 'Disk arrays' trigger_prototypes: - - expression: '{count(#1,{$DISK_ARRAY_CRIT_STATUS:"critical"},eq)}=1' + expression: 'count(/Dell iDRAC SNMP/system.hw.diskarray.status[controllerComponentStatus.{#SNMPINDEX}],#1,"eq","{$DISK_ARRAY_CRIT_STATUS:\"critical\"}")=1' name: '{#CNTLR_NAME}: Disk array controller is in critical state' opdata: 'Current state: {ITEM.LASTVALUE1}' priority: HIGH @@ -363,15 +363,15 @@ zabbix_export: dependencies: - name: '{#CNTLR_NAME}: Disk array controller is in unrecoverable state!' - expression: '{Dell iDRAC SNMP:system.hw.diskarray.status[controllerComponentStatus.{#SNMPINDEX}].count(#1,{$DISK_ARRAY_FAIL_STATUS:"nonRecoverable"},eq)}=1' + expression: 'count(/Dell iDRAC SNMP/system.hw.diskarray.status[controllerComponentStatus.{#SNMPINDEX}],#1,"eq","{$DISK_ARRAY_FAIL_STATUS:\"nonRecoverable\"}")=1' - - expression: '{count(#1,{$DISK_ARRAY_FAIL_STATUS:"nonRecoverable"},eq)}=1' + expression: 'count(/Dell iDRAC SNMP/system.hw.diskarray.status[controllerComponentStatus.{#SNMPINDEX}],#1,"eq","{$DISK_ARRAY_FAIL_STATUS:\"nonRecoverable\"}")=1' name: '{#CNTLR_NAME}: Disk array controller is in unrecoverable state!' opdata: 'Current state: {ITEM.LASTVALUE1}' priority: DISASTER description: 'Please check the device for faults' - - expression: '{count(#1,{$DISK_ARRAY_WARN_STATUS:"nonCritical"},eq)}=1' + expression: 'count(/Dell iDRAC SNMP/system.hw.diskarray.status[controllerComponentStatus.{#SNMPINDEX}],#1,"eq","{$DISK_ARRAY_WARN_STATUS:\"nonCritical\"}")=1' name: '{#CNTLR_NAME}: Disk array controller is in warning state' opdata: 'Current state: {ITEM.LASTVALUE1}' priority: AVERAGE @@ -379,10 +379,10 @@ zabbix_export: dependencies: - name: '{#CNTLR_NAME}: Disk array controller is in critical state' - expression: '{Dell iDRAC SNMP:system.hw.diskarray.status[controllerComponentStatus.{#SNMPINDEX}].count(#1,{$DISK_ARRAY_CRIT_STATUS:"critical"},eq)}=1' + expression: 'count(/Dell iDRAC SNMP/system.hw.diskarray.status[controllerComponentStatus.{#SNMPINDEX}],#1,"eq","{$DISK_ARRAY_CRIT_STATUS:\"critical\"}")=1' - name: '{#CNTLR_NAME}: Disk array controller is in unrecoverable state!' - expression: '{Dell iDRAC SNMP:system.hw.diskarray.status[controllerComponentStatus.{#SNMPINDEX}].count(#1,{$DISK_ARRAY_FAIL_STATUS:"nonRecoverable"},eq)}=1' + expression: 'count(/Dell iDRAC SNMP/system.hw.diskarray.status[controllerComponentStatus.{#SNMPINDEX}],#1,"eq","{$DISK_ARRAY_FAIL_STATUS:\"nonRecoverable\"}")=1' - name: 'Physical Disk Discovery' type: SNMP_AGENT @@ -460,7 +460,7 @@ zabbix_export: value: 'Physical disks' trigger_prototypes: - - expression: '{diff()}=1 and {strlen()}>0' + expression: '(last(/Dell iDRAC SNMP/system.hw.physicaldisk.serialnumber[physicalDiskSerialNo.{#SNMPINDEX}],#1)<>last(/Dell iDRAC SNMP/system.hw.physicaldisk.serialnumber[physicalDiskSerialNo.{#SNMPINDEX}],#2))=1 and length(last(/Dell iDRAC SNMP/system.hw.physicaldisk.serialnumber[physicalDiskSerialNo.{#SNMPINDEX}]))>0' name: '{#DISK_NAME}: Disk has been replaced (new serial number received)' priority: INFO description: 'Disk serial number has changed. Ack to close' @@ -504,7 +504,7 @@ zabbix_export: value: 'Physical disks' trigger_prototypes: - - expression: '{count(#1,{$DISK_SMART_FAIL_STATUS},eq)}=1' + expression: 'count(/Dell iDRAC SNMP/system.hw.physicaldisk.smart_status[physicalDiskSmartAlertIndication.{#SNMPINDEX}],#1,"eq","{$DISK_SMART_FAIL_STATUS}")=1' name: '{#DISK_NAME}: Physical disk S.M.A.R.T. failed' opdata: 'Current state: {ITEM.LASTVALUE1}' priority: HIGH @@ -512,7 +512,7 @@ zabbix_export: dependencies: - name: '{#DISK_NAME}: Physical disk failed' - expression: '{Dell iDRAC SNMP:system.hw.physicaldisk.status[physicalDiskComponentStatus.{#SNMPINDEX}].count(#1,{$DISK_FAIL_STATUS:"critical"},eq)}=1 or {Dell iDRAC SNMP:system.hw.physicaldisk.status[physicalDiskComponentStatus.{#SNMPINDEX}].count(#1,{$DISK_FAIL_STATUS:"nonRecoverable"},eq)}=1' + expression: 'count(/Dell iDRAC SNMP/system.hw.physicaldisk.status[physicalDiskComponentStatus.{#SNMPINDEX}],#1,"eq","{$DISK_FAIL_STATUS:\"critical\"}")=1 or count(/Dell iDRAC SNMP/system.hw.physicaldisk.status[physicalDiskComponentStatus.{#SNMPINDEX}],#1,"eq","{$DISK_FAIL_STATUS:\"nonRecoverable\"}")=1' - name: '{#DISK_NAME}: Physical disk status' type: SNMP_AGENT @@ -538,13 +538,13 @@ zabbix_export: value: 'Physical disks' trigger_prototypes: - - expression: '{count(#1,{$DISK_FAIL_STATUS:"critical"},eq)}=1 or {count(#1,{$DISK_FAIL_STATUS:"nonRecoverable"},eq)}=1' + expression: 'count(/Dell iDRAC SNMP/system.hw.physicaldisk.status[physicalDiskComponentStatus.{#SNMPINDEX}],#1,"eq","{$DISK_FAIL_STATUS:\"critical\"}")=1 or count(/Dell iDRAC SNMP/system.hw.physicaldisk.status[physicalDiskComponentStatus.{#SNMPINDEX}],#1,"eq","{$DISK_FAIL_STATUS:\"nonRecoverable\"}")=1' name: '{#DISK_NAME}: Physical disk failed' opdata: 'Current status: {ITEM.LASTVALUE1}' priority: HIGH description: 'Please check physical disk for warnings or errors' - - expression: '{count(#1,{$DISK_WARN_STATUS:"nonCritical"},eq)}=1' + expression: 'count(/Dell iDRAC SNMP/system.hw.physicaldisk.status[physicalDiskComponentStatus.{#SNMPINDEX}],#1,"eq","{$DISK_WARN_STATUS:\"nonCritical\"}")=1' name: '{#DISK_NAME}: Physical disk is in warning state' opdata: 'Current state: {ITEM.LASTVALUE1}' priority: WARNING @@ -552,7 +552,7 @@ zabbix_export: dependencies: - name: '{#DISK_NAME}: Physical disk failed' - expression: '{Dell iDRAC SNMP:system.hw.physicaldisk.status[physicalDiskComponentStatus.{#SNMPINDEX}].count(#1,{$DISK_FAIL_STATUS:"critical"},eq)}=1 or {Dell iDRAC SNMP:system.hw.physicaldisk.status[physicalDiskComponentStatus.{#SNMPINDEX}].count(#1,{$DISK_FAIL_STATUS:"nonRecoverable"},eq)}=1' + expression: 'count(/Dell iDRAC SNMP/system.hw.physicaldisk.status[physicalDiskComponentStatus.{#SNMPINDEX}],#1,"eq","{$DISK_FAIL_STATUS:\"critical\"}")=1 or count(/Dell iDRAC SNMP/system.hw.physicaldisk.status[physicalDiskComponentStatus.{#SNMPINDEX}],#1,"eq","{$DISK_FAIL_STATUS:\"nonRecoverable\"}")=1' - name: 'PSU Discovery' type: SNMP_AGENT @@ -580,13 +580,13 @@ zabbix_export: value: 'Power supply' trigger_prototypes: - - expression: '{count(#1,{$PSU_CRIT_STATUS:"critical"},eq)}=1 or {count(#1,{$PSU_CRIT_STATUS:"nonRecoverable"},eq)}=1' + expression: 'count(/Dell iDRAC SNMP/sensor.psu.status[powerSupplyStatus.{#SNMPINDEX}],#1,"eq","{$PSU_CRIT_STATUS:\"critical\"}")=1 or count(/Dell iDRAC SNMP/sensor.psu.status[powerSupplyStatus.{#SNMPINDEX}],#1,"eq","{$PSU_CRIT_STATUS:\"nonRecoverable\"}")=1' name: '{#PSU_DESCR}: Power supply is in critical state' opdata: 'Current state: {ITEM.LASTVALUE1}' priority: AVERAGE description: 'Please check the power supply unit for errors' - - expression: '{count(#1,{$PSU_WARN_STATUS:"nonCritical"},eq)}=1' + expression: 'count(/Dell iDRAC SNMP/sensor.psu.status[powerSupplyStatus.{#SNMPINDEX}],#1,"eq","{$PSU_WARN_STATUS:\"nonCritical\"}")=1' name: '{#PSU_DESCR}: Power supply is in warning state' opdata: 'Current state: {ITEM.LASTVALUE1}' priority: WARNING @@ -594,7 +594,7 @@ zabbix_export: dependencies: - name: '{#PSU_DESCR}: Power supply is in critical state' - expression: '{Dell iDRAC SNMP:sensor.psu.status[powerSupplyStatus.{#SNMPINDEX}].count(#1,{$PSU_CRIT_STATUS:"critical"},eq)}=1 or {Dell iDRAC SNMP:sensor.psu.status[powerSupplyStatus.{#SNMPINDEX}].count(#1,{$PSU_CRIT_STATUS:"nonRecoverable"},eq)}=1' + expression: 'count(/Dell iDRAC SNMP/sensor.psu.status[powerSupplyStatus.{#SNMPINDEX}],#1,"eq","{$PSU_CRIT_STATUS:\"critical\"}")=1 or count(/Dell iDRAC SNMP/sensor.psu.status[powerSupplyStatus.{#SNMPINDEX}],#1,"eq","{$PSU_CRIT_STATUS:\"nonRecoverable\"}")=1' - name: 'Temperature Ambient Discovery' type: SNMP_AGENT @@ -650,33 +650,33 @@ zabbix_export: value: Temperature trigger_prototypes: - - expression: '{avg(5m)}<{$TEMP_CRIT_LOW:"Ambient"}' + expression: 'avg(/Dell iDRAC SNMP/sensor.temp.value[temperatureProbeReading.Ambient.{#SNMPINDEX}],5m)<{$TEMP_CRIT_LOW:"Ambient"}' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{min(5m)}>{$TEMP_CRIT_LOW:"Ambient"}+3' + recovery_expression: 'min(/Dell iDRAC SNMP/sensor.temp.value[temperatureProbeReading.Ambient.{#SNMPINDEX}],5m)>{$TEMP_CRIT_LOW:"Ambient"}+3' name: '{#SENSOR_LOCALE}: Temperature is too low: <{$TEMP_CRIT_LOW:"Ambient"}' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: AVERAGE trigger_prototypes: - expression: | - {Dell iDRAC SNMP:sensor.temp.value[temperatureProbeReading.Ambient.{#SNMPINDEX}].avg(5m)}>{$TEMP_CRIT:"Ambient"} + avg(/Dell iDRAC SNMP/sensor.temp.value[temperatureProbeReading.Ambient.{#SNMPINDEX}],5m)>{$TEMP_CRIT:"Ambient"} or - {Dell iDRAC SNMP:sensor.temp.status[temperatureProbeStatus.Ambient.{#SNMPINDEX}].last()}={$TEMP_CRIT_STATUS} + last(/Dell iDRAC SNMP/sensor.temp.status[temperatureProbeStatus.Ambient.{#SNMPINDEX}])={$TEMP_CRIT_STATUS} or - {Dell iDRAC SNMP:sensor.temp.status[temperatureProbeStatus.Ambient.{#SNMPINDEX}].last()}={$TEMP_DISASTER_STATUS} + last(/Dell iDRAC SNMP/sensor.temp.status[temperatureProbeStatus.Ambient.{#SNMPINDEX}])={$TEMP_DISASTER_STATUS} recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{Dell iDRAC SNMP:sensor.temp.value[temperatureProbeReading.Ambient.{#SNMPINDEX}].max(5m)}<{$TEMP_CRIT:"Ambient"}-3' + recovery_expression: 'max(/Dell iDRAC SNMP/sensor.temp.value[temperatureProbeReading.Ambient.{#SNMPINDEX}],5m)<{$TEMP_CRIT:"Ambient"}-3' name: '{#SENSOR_LOCALE}: Temperature is above critical threshold: >{$TEMP_CRIT:"Ambient"}' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: HIGH description: 'This trigger uses temperature sensor values as well as temperature sensor status if available' - expression: | - {Dell iDRAC SNMP:sensor.temp.value[temperatureProbeReading.Ambient.{#SNMPINDEX}].avg(5m)}>{$TEMP_WARN:"Ambient"} + avg(/Dell iDRAC SNMP/sensor.temp.value[temperatureProbeReading.Ambient.{#SNMPINDEX}],5m)>{$TEMP_WARN:"Ambient"} or - {Dell iDRAC SNMP:sensor.temp.status[temperatureProbeStatus.Ambient.{#SNMPINDEX}].last()}={$TEMP_WARN_STATUS} + last(/Dell iDRAC SNMP/sensor.temp.status[temperatureProbeStatus.Ambient.{#SNMPINDEX}])={$TEMP_WARN_STATUS} recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{Dell iDRAC SNMP:sensor.temp.value[temperatureProbeReading.Ambient.{#SNMPINDEX}].max(5m)}<{$TEMP_WARN:"Ambient"}-3' + recovery_expression: 'max(/Dell iDRAC SNMP/sensor.temp.value[temperatureProbeReading.Ambient.{#SNMPINDEX}],5m)<{$TEMP_WARN:"Ambient"}-3' name: '{#SENSOR_LOCALE}: Temperature is above warning threshold: >{$TEMP_WARN:"Ambient"}' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING @@ -685,12 +685,12 @@ zabbix_export: - name: '{#SENSOR_LOCALE}: Temperature is above critical threshold: >{$TEMP_CRIT:"Ambient"}' expression: | - {Dell iDRAC SNMP:sensor.temp.value[temperatureProbeReading.Ambient.{#SNMPINDEX}].avg(5m)}>{$TEMP_CRIT:"Ambient"} + avg(/Dell iDRAC SNMP/sensor.temp.value[temperatureProbeReading.Ambient.{#SNMPINDEX}],5m)>{$TEMP_CRIT:"Ambient"} or - {Dell iDRAC SNMP:sensor.temp.status[temperatureProbeStatus.Ambient.{#SNMPINDEX}].last()}={$TEMP_CRIT_STATUS} + last(/Dell iDRAC SNMP/sensor.temp.status[temperatureProbeStatus.Ambient.{#SNMPINDEX}])={$TEMP_CRIT_STATUS} or - {Dell iDRAC SNMP:sensor.temp.status[temperatureProbeStatus.Ambient.{#SNMPINDEX}].last()}={$TEMP_DISASTER_STATUS} - recovery_expression: '{Dell iDRAC SNMP:sensor.temp.value[temperatureProbeReading.Ambient.{#SNMPINDEX}].max(5m)}<{$TEMP_CRIT:"Ambient"}-3' + last(/Dell iDRAC SNMP/sensor.temp.status[temperatureProbeStatus.Ambient.{#SNMPINDEX}])={$TEMP_DISASTER_STATUS} + recovery_expression: 'max(/Dell iDRAC SNMP/sensor.temp.value[temperatureProbeReading.Ambient.{#SNMPINDEX}],5m)<{$TEMP_CRIT:"Ambient"}-3' - name: 'Temperature CPU Discovery' type: SNMP_AGENT @@ -746,33 +746,33 @@ zabbix_export: value: Temperature trigger_prototypes: - - expression: '{avg(5m)}<{$TEMP_CRIT_LOW:"CPU"}' + expression: 'avg(/Dell iDRAC SNMP/sensor.temp.value[temperatureProbeReading.CPU.{#SNMPINDEX}],5m)<{$TEMP_CRIT_LOW:"CPU"}' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{min(5m)}>{$TEMP_CRIT_LOW:"CPU"}+3' + recovery_expression: 'min(/Dell iDRAC SNMP/sensor.temp.value[temperatureProbeReading.CPU.{#SNMPINDEX}],5m)>{$TEMP_CRIT_LOW:"CPU"}+3' name: '{#SENSOR_LOCALE}: Temperature is too low: <{$TEMP_CRIT_LOW:"CPU"}' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: AVERAGE trigger_prototypes: - expression: | - {Dell iDRAC SNMP:sensor.temp.value[temperatureProbeReading.CPU.{#SNMPINDEX}].avg(5m)}>{$TEMP_CRIT:"CPU"} + avg(/Dell iDRAC SNMP/sensor.temp.value[temperatureProbeReading.CPU.{#SNMPINDEX}],5m)>{$TEMP_CRIT:"CPU"} or - {Dell iDRAC SNMP:sensor.temp.status[temperatureProbeStatus.CPU.{#SNMPINDEX}].last()}={$TEMP_CRIT_STATUS} + last(/Dell iDRAC SNMP/sensor.temp.status[temperatureProbeStatus.CPU.{#SNMPINDEX}])={$TEMP_CRIT_STATUS} or - {Dell iDRAC SNMP:sensor.temp.status[temperatureProbeStatus.CPU.{#SNMPINDEX}].last()}={$TEMP_DISASTER_STATUS} + last(/Dell iDRAC SNMP/sensor.temp.status[temperatureProbeStatus.CPU.{#SNMPINDEX}])={$TEMP_DISASTER_STATUS} recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{Dell iDRAC SNMP:sensor.temp.value[temperatureProbeReading.CPU.{#SNMPINDEX}].max(5m)}<{$TEMP_CRIT:"CPU"}-3' + recovery_expression: 'max(/Dell iDRAC SNMP/sensor.temp.value[temperatureProbeReading.CPU.{#SNMPINDEX}],5m)<{$TEMP_CRIT:"CPU"}-3' name: '{#SENSOR_LOCALE}: Temperature is above critical threshold: >{$TEMP_CRIT:"CPU"}' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: HIGH description: 'This trigger uses temperature sensor values as well as temperature sensor status if available' - expression: | - {Dell iDRAC SNMP:sensor.temp.value[temperatureProbeReading.CPU.{#SNMPINDEX}].avg(5m)}>{$TEMP_WARN:"CPU"} + avg(/Dell iDRAC SNMP/sensor.temp.value[temperatureProbeReading.CPU.{#SNMPINDEX}],5m)>{$TEMP_WARN:"CPU"} or - {Dell iDRAC SNMP:sensor.temp.status[temperatureProbeStatus.CPU.{#SNMPINDEX}].last()}={$TEMP_WARN_STATUS} + last(/Dell iDRAC SNMP/sensor.temp.status[temperatureProbeStatus.CPU.{#SNMPINDEX}])={$TEMP_WARN_STATUS} recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{Dell iDRAC SNMP:sensor.temp.value[temperatureProbeReading.CPU.{#SNMPINDEX}].max(5m)}<{$TEMP_WARN:"CPU"}-3' + recovery_expression: 'max(/Dell iDRAC SNMP/sensor.temp.value[temperatureProbeReading.CPU.{#SNMPINDEX}],5m)<{$TEMP_WARN:"CPU"}-3' name: '{#SENSOR_LOCALE}: Temperature is above warning threshold: >{$TEMP_WARN:"CPU"}' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING @@ -781,12 +781,12 @@ zabbix_export: - name: '{#SENSOR_LOCALE}: Temperature is above critical threshold: >{$TEMP_CRIT:"CPU"}' expression: | - {Dell iDRAC SNMP:sensor.temp.value[temperatureProbeReading.CPU.{#SNMPINDEX}].avg(5m)}>{$TEMP_CRIT:"CPU"} + avg(/Dell iDRAC SNMP/sensor.temp.value[temperatureProbeReading.CPU.{#SNMPINDEX}],5m)>{$TEMP_CRIT:"CPU"} or - {Dell iDRAC SNMP:sensor.temp.status[temperatureProbeStatus.CPU.{#SNMPINDEX}].last()}={$TEMP_CRIT_STATUS} + last(/Dell iDRAC SNMP/sensor.temp.status[temperatureProbeStatus.CPU.{#SNMPINDEX}])={$TEMP_CRIT_STATUS} or - {Dell iDRAC SNMP:sensor.temp.status[temperatureProbeStatus.CPU.{#SNMPINDEX}].last()}={$TEMP_DISASTER_STATUS} - recovery_expression: '{Dell iDRAC SNMP:sensor.temp.value[temperatureProbeReading.CPU.{#SNMPINDEX}].max(5m)}<{$TEMP_CRIT:"CPU"}-3' + last(/Dell iDRAC SNMP/sensor.temp.status[temperatureProbeStatus.CPU.{#SNMPINDEX}])={$TEMP_DISASTER_STATUS} + recovery_expression: 'max(/Dell iDRAC SNMP/sensor.temp.value[temperatureProbeReading.CPU.{#SNMPINDEX}],5m)<{$TEMP_CRIT:"CPU"}-3' - name: 'Virtual Disk Discovery' type: SNMP_AGENT @@ -907,13 +907,13 @@ zabbix_export: value: 'Virtual disks' trigger_prototypes: - - expression: '{count(#1,{$VDISK_CRIT_STATUS:"failed"},eq)}=1' + expression: 'count(/Dell iDRAC SNMP/system.hw.virtualdisk.status[virtualDiskState.{#SNMPINDEX}],#1,"eq","{$VDISK_CRIT_STATUS:\"failed\"}")=1' name: 'Disk {#SNMPVALUE}({#DISK_NAME}): Virtual disk failed' opdata: 'Current state: {ITEM.LASTVALUE1}' priority: HIGH description: 'Please check virtual disk for warnings or errors' - - expression: '{count(#1,{$VDISK_WARN_STATUS:"degraded"},eq)}=1' + expression: 'count(/Dell iDRAC SNMP/system.hw.virtualdisk.status[virtualDiskState.{#SNMPINDEX}],#1,"eq","{$VDISK_WARN_STATUS:\"degraded\"}")=1' name: 'Disk {#SNMPVALUE}({#DISK_NAME}): Virtual disk is in warning state' opdata: 'Current state: {ITEM.LASTVALUE1}' priority: AVERAGE @@ -921,7 +921,7 @@ zabbix_export: dependencies: - name: 'Disk {#SNMPVALUE}({#DISK_NAME}): Virtual disk failed' - expression: '{Dell iDRAC SNMP:system.hw.virtualdisk.status[virtualDiskState.{#SNMPINDEX}].count(#1,{$VDISK_CRIT_STATUS:"failed"},eq)}=1' + expression: 'count(/Dell iDRAC SNMP/system.hw.virtualdisk.status[virtualDiskState.{#SNMPINDEX}],#1,"eq","{$VDISK_CRIT_STATUS:\"failed\"}")=1' - name: 'Disk {#SNMPVALUE}({#DISK_NAME}): Write policy' type: SNMP_AGENT diff --git a/templates/server/hp_ilo_snmp/template_server_hp_ilo_snmp.yaml b/templates/server/hp_ilo_snmp/template_server_hp_ilo_snmp.yaml index 44a208875c5..bc3fa65ea4c 100644 --- a/templates/server/hp_ilo_snmp/template_server_hp_ilo_snmp.yaml +++ b/templates/server/hp_ilo_snmp/template_server_hp_ilo_snmp.yaml @@ -1,6 +1,6 @@ zabbix_export: version: '5.4' - date: '2021-02-23T11:04:54Z' + date: '2021-05-09T00:00:00Z' groups: - name: 'Templates/Server hardware' @@ -94,7 +94,7 @@ zabbix_export: value: Inventory triggers: - - expression: '{diff()}=1 and {strlen()}>0' + expression: '(last(/HP iLO SNMP/system.hw.serialnumber,#1)<>last(/HP iLO SNMP/system.hw.serialnumber,#2))=1 and length(last(/HP iLO SNMP/system.hw.serialnumber))>0' name: 'Device has been replaced (new serial number received)' priority: INFO description: 'Device serial number has changed. Ack to close' @@ -122,13 +122,13 @@ zabbix_export: value: Status triggers: - - expression: '{count(#1,{$HEALTH_CRIT_STATUS},eq)}=1' + expression: 'count(/HP iLO SNMP/system.status[cpqHeMibCondition.0],#1,"eq","{$HEALTH_CRIT_STATUS}")=1' name: 'System status is in critical state' opdata: 'Current state: {ITEM.LASTVALUE1}' priority: HIGH description: 'Please check the device for errors' - - expression: '{count(#1,{$HEALTH_WARN_STATUS},eq)}=1' + expression: 'count(/HP iLO SNMP/system.status[cpqHeMibCondition.0],#1,"eq","{$HEALTH_WARN_STATUS}")=1' name: 'System status is in warning state' opdata: 'Current state: {ITEM.LASTVALUE1}' priority: WARNING @@ -136,7 +136,7 @@ zabbix_export: dependencies: - name: 'System status is in critical state' - expression: '{HP iLO SNMP:system.status[cpqHeMibCondition.0].count(#1,{$HEALTH_CRIT_STATUS},eq)}=1' + expression: 'count(/HP iLO SNMP/system.status[cpqHeMibCondition.0],#1,"eq","{$HEALTH_CRIT_STATUS}")=1' discovery_rules: - name: 'Array Controller Cache Discovery' @@ -188,13 +188,13 @@ zabbix_export: value: 'Disk arrays' trigger_prototypes: - - expression: '{count(#1,{$DISK_ARRAY_CACHE_BATTERY_CRIT_STATUS:"failed"},eq)}=1 or {count(#1,{$DISK_ARRAY_CACHE_BATTERY_CRIT_STATUS:"capacitorFailed"},eq)}=1' + expression: 'count(/HP iLO SNMP/system.hw.diskarray.cache.battery.status[cpqDaAccelBattery.{#SNMPINDEX}],#1,"eq","{$DISK_ARRAY_CACHE_BATTERY_CRIT_STATUS:\"failed\"}")=1 or count(/HP iLO SNMP/system.hw.diskarray.cache.battery.status[cpqDaAccelBattery.{#SNMPINDEX}],#1,"eq","{$DISK_ARRAY_CACHE_BATTERY_CRIT_STATUS:\"capacitorFailed\"}")=1' name: '#{#CACHE_CNTRL_INDEX}: Disk array cache controller battery is in critical state!' opdata: 'Current state: {ITEM.LASTVALUE1}' priority: AVERAGE description: 'Please check the device for faults' - - expression: '{count(#1,{$DISK_ARRAY_CACHE_BATTERY_WARN_STATUS:"degraded"},eq)}=1' + expression: 'count(/HP iLO SNMP/system.hw.diskarray.cache.battery.status[cpqDaAccelBattery.{#SNMPINDEX}],#1,"eq","{$DISK_ARRAY_CACHE_BATTERY_WARN_STATUS:\"degraded\"}")=1' name: '#{#CACHE_CNTRL_INDEX}: Disk array cache controller battery is in warning state' opdata: 'Current state: {ITEM.LASTVALUE1}' priority: WARNING @@ -202,7 +202,7 @@ zabbix_export: dependencies: - name: '#{#CACHE_CNTRL_INDEX}: Disk array cache controller battery is in critical state!' - expression: '{HP iLO SNMP:system.hw.diskarray.cache.battery.status[cpqDaAccelBattery.{#SNMPINDEX}].count(#1,{$DISK_ARRAY_CACHE_BATTERY_CRIT_STATUS:"failed"},eq)}=1 or {HP iLO SNMP:system.hw.diskarray.cache.battery.status[cpqDaAccelBattery.{#SNMPINDEX}].count(#1,{$DISK_ARRAY_CACHE_BATTERY_CRIT_STATUS:"capacitorFailed"},eq)}=1' + expression: 'count(/HP iLO SNMP/system.hw.diskarray.cache.battery.status[cpqDaAccelBattery.{#SNMPINDEX}],#1,"eq","{$DISK_ARRAY_CACHE_BATTERY_CRIT_STATUS:\"failed\"}")=1 or count(/HP iLO SNMP/system.hw.diskarray.cache.battery.status[cpqDaAccelBattery.{#SNMPINDEX}],#1,"eq","{$DISK_ARRAY_CACHE_BATTERY_CRIT_STATUS:\"capacitorFailed\"}")=1' - name: '#{#CACHE_CNTRL_INDEX}: Disk array cache controller status' type: SNMP_AGENT @@ -255,13 +255,13 @@ zabbix_export: value: 'Disk arrays' trigger_prototypes: - - expression: '{count(#1,{$DISK_ARRAY_CACHE_CRIT_STATUS:"cacheModCriticalFailure"},eq)}=1' + expression: 'count(/HP iLO SNMP/system.hw.diskarray.cache.status[cpqDaAccelStatus.{#SNMPINDEX}],#1,"eq","{$DISK_ARRAY_CACHE_CRIT_STATUS:\"cacheModCriticalFailure\"}")=1' name: '#{#CACHE_CNTRL_INDEX}: Disk array cache controller is in critical state!' opdata: 'Current state: {ITEM.LASTVALUE1}' priority: AVERAGE description: 'Please check the device for faults' - - expression: '{count(#1,{$DISK_ARRAY_CACHE_WARN_STATUS:"cacheModDegradedFailsafeSpeed"},eq)}=1 or {count(#1,{$DISK_ARRAY_CACHE_WARN_STATUS:"cacheReadCacheNotMapped"},eq)}=1 or {count(#1,{$DISK_ARRAY_CACHE_WARN_STATUS:"cacheModFlashMemNotAttached"},eq)}=1' + expression: 'count(/HP iLO SNMP/system.hw.diskarray.cache.status[cpqDaAccelStatus.{#SNMPINDEX}],#1,"eq","{$DISK_ARRAY_CACHE_WARN_STATUS:\"cacheModDegradedFailsafeSpeed\"}")=1 or count(/HP iLO SNMP/system.hw.diskarray.cache.status[cpqDaAccelStatus.{#SNMPINDEX}],#1,"eq","{$DISK_ARRAY_CACHE_WARN_STATUS:\"cacheReadCacheNotMapped\"}")=1 or count(/HP iLO SNMP/system.hw.diskarray.cache.status[cpqDaAccelStatus.{#SNMPINDEX}],#1,"eq","{$DISK_ARRAY_CACHE_WARN_STATUS:\"cacheModFlashMemNotAttached\"}")=1' name: '#{#CACHE_CNTRL_INDEX}: Disk array cache controller is in warning state' opdata: 'Current state: {ITEM.LASTVALUE1}' priority: WARNING @@ -269,9 +269,9 @@ zabbix_export: dependencies: - name: '#{#CACHE_CNTRL_INDEX}: Disk array cache controller is in critical state!' - expression: '{HP iLO SNMP:system.hw.diskarray.cache.status[cpqDaAccelStatus.{#SNMPINDEX}].count(#1,{$DISK_ARRAY_CACHE_CRIT_STATUS:"cacheModCriticalFailure"},eq)}=1' + expression: 'count(/HP iLO SNMP/system.hw.diskarray.cache.status[cpqDaAccelStatus.{#SNMPINDEX}],#1,"eq","{$DISK_ARRAY_CACHE_CRIT_STATUS:\"cacheModCriticalFailure\"}")=1' - - expression: '{count(#1,{$DISK_ARRAY_CACHE_OK_STATUS:"enabled"},ne)}=1 and {last()}<>{$DISK_ARRAY_CACHE_WARN_STATUS:"invalid"}' + expression: 'count(/HP iLO SNMP/system.hw.diskarray.cache.status[cpqDaAccelStatus.{#SNMPINDEX}],#1,"ne","{$DISK_ARRAY_CACHE_OK_STATUS:\"enabled\"}")=1 and last(/HP iLO SNMP/system.hw.diskarray.cache.status[cpqDaAccelStatus.{#SNMPINDEX}])<>{$DISK_ARRAY_CACHE_WARN_STATUS:"invalid"}' name: '#{#CACHE_CNTRL_INDEX}: Disk array cache controller is not in optimal state' opdata: 'Current state: {ITEM.LASTVALUE1}' priority: WARNING @@ -279,10 +279,10 @@ zabbix_export: dependencies: - name: '#{#CACHE_CNTRL_INDEX}: Disk array cache controller is in critical state!' - expression: '{HP iLO SNMP:system.hw.diskarray.cache.status[cpqDaAccelStatus.{#SNMPINDEX}].count(#1,{$DISK_ARRAY_CACHE_CRIT_STATUS:"cacheModCriticalFailure"},eq)}=1' + expression: 'count(/HP iLO SNMP/system.hw.diskarray.cache.status[cpqDaAccelStatus.{#SNMPINDEX}],#1,"eq","{$DISK_ARRAY_CACHE_CRIT_STATUS:\"cacheModCriticalFailure\"}")=1' - name: '#{#CACHE_CNTRL_INDEX}: Disk array cache controller is in warning state' - expression: '{HP iLO SNMP:system.hw.diskarray.cache.status[cpqDaAccelStatus.{#SNMPINDEX}].count(#1,{$DISK_ARRAY_CACHE_WARN_STATUS:"cacheModDegradedFailsafeSpeed"},eq)}=1 or {HP iLO SNMP:system.hw.diskarray.cache.status[cpqDaAccelStatus.{#SNMPINDEX}].count(#1,{$DISK_ARRAY_CACHE_WARN_STATUS:"cacheReadCacheNotMapped"},eq)}=1 or {HP iLO SNMP:system.hw.diskarray.cache.status[cpqDaAccelStatus.{#SNMPINDEX}].count(#1,{$DISK_ARRAY_CACHE_WARN_STATUS:"cacheModFlashMemNotAttached"},eq)}=1' + expression: 'count(/HP iLO SNMP/system.hw.diskarray.cache.status[cpqDaAccelStatus.{#SNMPINDEX}],#1,"eq","{$DISK_ARRAY_CACHE_WARN_STATUS:\"cacheModDegradedFailsafeSpeed\"}")=1 or count(/HP iLO SNMP/system.hw.diskarray.cache.status[cpqDaAccelStatus.{#SNMPINDEX}],#1,"eq","{$DISK_ARRAY_CACHE_WARN_STATUS:\"cacheReadCacheNotMapped\"}")=1 or count(/HP iLO SNMP/system.hw.diskarray.cache.status[cpqDaAccelStatus.{#SNMPINDEX}],#1,"eq","{$DISK_ARRAY_CACHE_WARN_STATUS:\"cacheModFlashMemNotAttached\"}")=1' preprocessing: - type: DISCARD_UNCHANGED_HEARTBEAT @@ -341,13 +341,13 @@ zabbix_export: value: 'Disk arrays' trigger_prototypes: - - expression: '{count(#1,{$DISK_ARRAY_CRIT_STATUS},eq)}=1' + expression: 'count(/HP iLO SNMP/system.hw.diskarray.status[cpqDaCntlrCondition.{#SNMPINDEX}],#1,"eq","{$DISK_ARRAY_CRIT_STATUS}")=1' name: '{#CNTLR_LOCATION}: Disk array controller is in critical state' opdata: 'Current state: {ITEM.LASTVALUE1}' priority: HIGH description: 'Please check the device for faults' - - expression: '{count(#1,{$DISK_ARRAY_WARN_STATUS},eq)}=1' + expression: 'count(/HP iLO SNMP/system.hw.diskarray.status[cpqDaCntlrCondition.{#SNMPINDEX}],#1,"eq","{$DISK_ARRAY_WARN_STATUS}")=1' name: '{#CNTLR_LOCATION}: Disk array controller is in warning state' opdata: 'Current state: {ITEM.LASTVALUE1}' priority: AVERAGE @@ -355,7 +355,7 @@ zabbix_export: dependencies: - name: '{#CNTLR_LOCATION}: Disk array controller is in critical state' - expression: '{HP iLO SNMP:system.hw.diskarray.status[cpqDaCntlrCondition.{#SNMPINDEX}].count(#1,{$DISK_ARRAY_CRIT_STATUS},eq)}=1' + expression: 'count(/HP iLO SNMP/system.hw.diskarray.status[cpqDaCntlrCondition.{#SNMPINDEX}],#1,"eq","{$DISK_ARRAY_CRIT_STATUS}")=1' preprocessing: - type: DISCARD_UNCHANGED_HEARTBEAT @@ -397,13 +397,13 @@ zabbix_export: value: Fans trigger_prototypes: - - expression: '{count(#1,{$FAN_CRIT_STATUS},eq)}=1' + expression: 'count(/HP iLO SNMP/sensor.fan.status[cpqHeFltTolFanCondition.{#SNMPINDEX}],#1,"eq","{$FAN_CRIT_STATUS}")=1' name: 'Fan {#SNMPINDEX}: Fan is in critical state' opdata: 'Current state: {ITEM.LASTVALUE1}' priority: AVERAGE description: 'Please check the fan unit' - - expression: '{count(#1,{$FAN_WARN_STATUS},eq)}=1' + expression: 'count(/HP iLO SNMP/sensor.fan.status[cpqHeFltTolFanCondition.{#SNMPINDEX}],#1,"eq","{$FAN_WARN_STATUS}")=1' name: 'Fan {#SNMPINDEX}: Fan is in warning state' opdata: 'Current state: {ITEM.LASTVALUE1}' priority: WARNING @@ -411,7 +411,7 @@ zabbix_export: dependencies: - name: 'Fan {#SNMPINDEX}: Fan is in critical state' - expression: '{HP iLO SNMP:sensor.fan.status[cpqHeFltTolFanCondition.{#SNMPINDEX}].count(#1,{$FAN_CRIT_STATUS},eq)}=1' + expression: 'count(/HP iLO SNMP/sensor.fan.status[cpqHeFltTolFanCondition.{#SNMPINDEX}],#1,"eq","{$FAN_CRIT_STATUS}")=1' preprocessing: - type: DISCARD_UNCHANGED_HEARTBEAT @@ -497,7 +497,7 @@ zabbix_export: value: 'Physical disks' trigger_prototypes: - - expression: '{diff()}=1 and {strlen()}>0' + expression: '(last(/HP iLO SNMP/system.hw.physicaldisk.serialnumber[cpqDaPhyDrvSerialNum.{#SNMPINDEX}],#1)<>last(/HP iLO SNMP/system.hw.physicaldisk.serialnumber[cpqDaPhyDrvSerialNum.{#SNMPINDEX}],#2))=1 and length(last(/HP iLO SNMP/system.hw.physicaldisk.serialnumber[cpqDaPhyDrvSerialNum.{#SNMPINDEX}]))>0' name: '{#DISK_LOCATION}: Disk has been replaced (new serial number received)' priority: INFO description: 'Disk serial number has changed. Ack to close' @@ -558,7 +558,7 @@ zabbix_export: value: 'Physical disks' trigger_prototypes: - - expression: '{count(#1,{$DISK_SMART_FAIL_STATUS:"replaceDrive"},eq)}=1 or {count(#1,{$DISK_SMART_FAIL_STATUS:"replaceDriveSSDWearOut"},eq)}=1' + expression: 'count(/HP iLO SNMP/system.hw.physicaldisk.smart_status[cpqDaPhyDrvSmartStatus.{#SNMPINDEX}],#1,"eq","{$DISK_SMART_FAIL_STATUS:\"replaceDrive\"}")=1 or count(/HP iLO SNMP/system.hw.physicaldisk.smart_status[cpqDaPhyDrvSmartStatus.{#SNMPINDEX}],#1,"eq","{$DISK_SMART_FAIL_STATUS:\"replaceDriveSSDWearOut\"}")=1' name: '{#DISK_LOCATION}: Physical disk S.M.A.R.T. failed' opdata: 'Current state: {ITEM.LASTVALUE1}' priority: HIGH @@ -566,7 +566,7 @@ zabbix_export: dependencies: - name: '{#DISK_LOCATION}: Physical disk failed' - expression: '{HP iLO SNMP:system.hw.physicaldisk.status[cpqDaPhyDrvStatus.{#SNMPINDEX}].count(#1,{$DISK_FAIL_STATUS},eq)}=1' + expression: 'count(/HP iLO SNMP/system.hw.physicaldisk.status[cpqDaPhyDrvStatus.{#SNMPINDEX}],#1,"eq","{$DISK_FAIL_STATUS}")=1' - name: '{#DISK_LOCATION}: Physical disk status' type: SNMP_AGENT @@ -595,13 +595,13 @@ zabbix_export: value: 'Physical disks' trigger_prototypes: - - expression: '{count(#1,{$DISK_FAIL_STATUS},eq)}=1' + expression: 'count(/HP iLO SNMP/system.hw.physicaldisk.status[cpqDaPhyDrvStatus.{#SNMPINDEX}],#1,"eq","{$DISK_FAIL_STATUS}")=1' name: '{#DISK_LOCATION}: Physical disk failed' opdata: 'Current status: {ITEM.LASTVALUE1}' priority: HIGH description: 'Please check physical disk for warnings or errors' - - expression: '{count(#1,{$DISK_WARN_STATUS},eq)}=1' + expression: 'count(/HP iLO SNMP/system.hw.physicaldisk.status[cpqDaPhyDrvStatus.{#SNMPINDEX}],#1,"eq","{$DISK_WARN_STATUS}")=1' name: '{#DISK_LOCATION}: Physical disk is in warning state' opdata: 'Current state: {ITEM.LASTVALUE1}' priority: WARNING @@ -609,7 +609,7 @@ zabbix_export: dependencies: - name: '{#DISK_LOCATION}: Physical disk failed' - expression: '{HP iLO SNMP:system.hw.physicaldisk.status[cpqDaPhyDrvStatus.{#SNMPINDEX}].count(#1,{$DISK_FAIL_STATUS},eq)}=1' + expression: 'count(/HP iLO SNMP/system.hw.physicaldisk.status[cpqDaPhyDrvStatus.{#SNMPINDEX}],#1,"eq","{$DISK_FAIL_STATUS}")=1' preprocessing: - type: DISCARD_UNCHANGED_HEARTBEAT @@ -650,13 +650,13 @@ zabbix_export: value: 'Power supply' trigger_prototypes: - - expression: '{count(#1,{$PSU_CRIT_STATUS},eq)}=1' + expression: 'count(/HP iLO SNMP/sensor.psu.status[cpqHeFltTolPowerSupplyCondition.{#SNMPINDEX}],#1,"eq","{$PSU_CRIT_STATUS}")=1' name: 'Chassis {#CHASSIS_NUM}, bay {#BAY_NUM}: Power supply is in critical state' opdata: 'Current state: {ITEM.LASTVALUE1}' priority: AVERAGE description: 'Please check the power supply unit for errors' - - expression: '{count(#1,{$PSU_WARN_STATUS},eq)}=1' + expression: 'count(/HP iLO SNMP/sensor.psu.status[cpqHeFltTolPowerSupplyCondition.{#SNMPINDEX}],#1,"eq","{$PSU_WARN_STATUS}")=1' name: 'Chassis {#CHASSIS_NUM}, bay {#BAY_NUM}: Power supply is in warning state' opdata: 'Current state: {ITEM.LASTVALUE1}' priority: WARNING @@ -664,7 +664,7 @@ zabbix_export: dependencies: - name: 'Chassis {#CHASSIS_NUM}, bay {#BAY_NUM}: Power supply is in critical state' - expression: '{HP iLO SNMP:sensor.psu.status[cpqHeFltTolPowerSupplyCondition.{#SNMPINDEX}].count(#1,{$PSU_CRIT_STATUS},eq)}=1' + expression: 'count(/HP iLO SNMP/sensor.psu.status[cpqHeFltTolPowerSupplyCondition.{#SNMPINDEX}],#1,"eq","{$PSU_CRIT_STATUS}")=1' preprocessing: - type: DISCARD_UNCHANGED_HEARTBEAT @@ -717,18 +717,18 @@ zabbix_export: value: Temperature trigger_prototypes: - - expression: '{last()} = 1' + expression: 'last(/HP iLO SNMP/sensor.temp.condition[cpqHeTemperatureCondition.{#SNMPINDEX}]) = 1' name: '{#SNMPINDEX}: Temperature could not be determined' priority: INFO description: 'Temperature could not be determined.' manual_close: 'YES' - - expression: '{last()} = 4' + expression: 'last(/HP iLO SNMP/sensor.temp.condition[cpqHeTemperatureCondition.{#SNMPINDEX}]) = 4' name: '{#SNMPINDEX}: The temperature sensor detects a condition that could permanently damage the system.' priority: HIGH description: 'The system will automatically shutdown if the failed(4) condition results, so it is unlikely that this value will ever be returned by the agent.' - - expression: '{last()} = 3' + expression: 'last(/HP iLO SNMP/sensor.temp.condition[cpqHeTemperatureCondition.{#SNMPINDEX}]) = 3' name: '{#SNMPINDEX}: The temperature sensor is outside of normal operating range' priority: WARNING description: 'If the cpqHeThermalDegradedAction is set to shutdown(3) the system will be shutdown if the degraded(3) condition occurs.' @@ -829,18 +829,18 @@ zabbix_export: value: Temperature trigger_prototypes: - - expression: '{last()} = 1' + expression: 'last(/HP iLO SNMP/sensor.temp.condition[cpqHeTemperatureCondition.Ambient.{#SNMPINDEX}]) = 1' name: 'Ambient: Temperature could not be determined' priority: INFO description: 'Temperature could not be determined.' manual_close: 'YES' - - expression: '{last()} = 4' + expression: 'last(/HP iLO SNMP/sensor.temp.condition[cpqHeTemperatureCondition.Ambient.{#SNMPINDEX}]) = 4' name: 'Ambient: The temperature sensor detects a condition that could permanently damage the system.' priority: HIGH description: 'The system will automatically shutdown if the failed(4) condition results, so it is unlikely that this value will ever be returned by the agent.' - - expression: '{last()} = 3' + expression: 'last(/HP iLO SNMP/sensor.temp.condition[cpqHeTemperatureCondition.Ambient.{#SNMPINDEX}]) = 3' name: 'Ambient: The temperature sensor is outside of normal operating range' priority: WARNING description: 'If the cpqHeThermalDegradedAction is set to shutdown(3) the system will be shutdown if the degraded(3) condition occurs.' @@ -916,18 +916,18 @@ zabbix_export: value: Temperature trigger_prototypes: - - expression: '{last()} = 1' + expression: 'last(/HP iLO SNMP/sensor.temp.condition[cpqHeTemperatureCondition.CPU.{#SNMPINDEX}]) = 1' name: 'CPU-{#SNMPINDEX}: Temperature could not be determined' priority: INFO description: 'Temperature could not be determined.' manual_close: 'YES' - - expression: '{last()} = 4' + expression: 'last(/HP iLO SNMP/sensor.temp.condition[cpqHeTemperatureCondition.CPU.{#SNMPINDEX}]) = 4' name: 'CPU-{#SNMPINDEX}: The temperature sensor detects a condition that could permanently damage the system.' priority: HIGH description: 'The system will automatically shutdown if the failed(4) condition results, so it is unlikely that this value will ever be returned by the agent.' - - expression: '{last()} = 3' + expression: 'last(/HP iLO SNMP/sensor.temp.condition[cpqHeTemperatureCondition.CPU.{#SNMPINDEX}]) = 3' name: 'CPU-{#SNMPINDEX}: The temperature sensor is outside of normal operating range' priority: WARNING description: 'If the cpqHeThermalDegradedAction is set to shutdown(3) the system will be shutdown if the degraded(3) condition occurs.' @@ -1003,18 +1003,18 @@ zabbix_export: value: Temperature trigger_prototypes: - - expression: '{last()} = 1' + expression: 'last(/HP iLO SNMP/sensor.temp.condition[cpqHeTemperatureCondition."I/O.{#SNMPINDEX}"]) = 1' name: 'I/O-{#SNMPINDEX}: Temperature could not be determined' priority: INFO description: 'Temperature could not be determined.' manual_close: 'YES' - - expression: '{last()} = 4' + expression: 'last(/HP iLO SNMP/sensor.temp.condition[cpqHeTemperatureCondition."I/O.{#SNMPINDEX}"]) = 4' name: 'I/O-{#SNMPINDEX}: The temperature sensor detects a condition that could permanently damage the system.' priority: HIGH description: 'The system will automatically shutdown if the failed(4) condition results, so it is unlikely that this value will ever be returned by the agent.' - - expression: '{last()} = 3' + expression: 'last(/HP iLO SNMP/sensor.temp.condition[cpqHeTemperatureCondition."I/O.{#SNMPINDEX}"]) = 3' name: 'I/O-{#SNMPINDEX}: The temperature sensor is outside of normal operating range' priority: WARNING description: 'If the cpqHeThermalDegradedAction is set to shutdown(3) the system will be shutdown if the degraded(3) condition occurs.' @@ -1090,18 +1090,18 @@ zabbix_export: value: Temperature trigger_prototypes: - - expression: '{last()} = 1' + expression: 'last(/HP iLO SNMP/sensor.temp.condition[cpqHeTemperatureCondition.Memory.{#SNMPINDEX}]) = 1' name: 'Memory-{#SNMPINDEX}: Temperature could not be determined' priority: INFO description: 'Temperature could not be determined.' manual_close: 'YES' - - expression: '{last()} = 4' + expression: 'last(/HP iLO SNMP/sensor.temp.condition[cpqHeTemperatureCondition.Memory.{#SNMPINDEX}]) = 4' name: 'Memory-{#SNMPINDEX}: The temperature sensor detects a condition that could permanently damage the system.' priority: HIGH description: 'The system will automatically shutdown if the failed(4) condition results, so it is unlikely that this value will ever be returned by the agent.' - - expression: '{last()} = 3' + expression: 'last(/HP iLO SNMP/sensor.temp.condition[cpqHeTemperatureCondition.Memory.{#SNMPINDEX}]) = 3' name: 'Memory-{#SNMPINDEX}: The temperature sensor is outside of normal operating range' priority: WARNING description: 'If the cpqHeThermalDegradedAction is set to shutdown(3) the system will be shutdown if the degraded(3) condition occurs.' @@ -1177,18 +1177,18 @@ zabbix_export: value: Temperature trigger_prototypes: - - expression: '{last()} = 1' + expression: 'last(/HP iLO SNMP/sensor.temp.condition[cpqHeTemperatureCondition.PSU.{#SNMPINDEX}]) = 1' name: 'PSU-{#SNMPINDEX}: Temperature could not be determined' priority: INFO description: 'Temperature could not be determined.' manual_close: 'YES' - - expression: '{last()} = 4' + expression: 'last(/HP iLO SNMP/sensor.temp.condition[cpqHeTemperatureCondition.PSU.{#SNMPINDEX}]) = 4' name: 'PSU-{#SNMPINDEX}: The temperature sensor detects a condition that could permanently damage the system.' priority: HIGH description: 'The system will automatically shutdown if the failed(4) condition results, so it is unlikely that this value will ever be returned by the agent.' - - expression: '{last()} = 3' + expression: 'last(/HP iLO SNMP/sensor.temp.condition[cpqHeTemperatureCondition.PSU.{#SNMPINDEX}]) = 3' name: 'PSU-{#SNMPINDEX}: The temperature sensor is outside of normal operating range' priority: WARNING description: 'If the cpqHeThermalDegradedAction is set to shutdown(3) the system will be shutdown if the degraded(3) condition occurs.' @@ -1264,18 +1264,18 @@ zabbix_export: value: Temperature trigger_prototypes: - - expression: '{last()} = 1' + expression: 'last(/HP iLO SNMP/sensor.temp.condition[cpqHeTemperatureCondition.System.{#SNMPINDEX}]) = 1' name: 'System-{#SNMPINDEX}: Temperature could not be determined' priority: INFO description: 'Temperature could not be determined.' manual_close: 'YES' - - expression: '{last()} = 4' + expression: 'last(/HP iLO SNMP/sensor.temp.condition[cpqHeTemperatureCondition.System.{#SNMPINDEX}]) = 4' name: 'System-{#SNMPINDEX}: The temperature sensor detects a condition that could permanently damage the system.' priority: HIGH description: 'The system will automatically shutdown if the failed(4) condition results, so it is unlikely that this value will ever be returned by the agent.' - - expression: '{last()} = 3' + expression: 'last(/HP iLO SNMP/sensor.temp.condition[cpqHeTemperatureCondition.System.{#SNMPINDEX}]) = 3' name: 'System-{#SNMPINDEX}: The temperature sensor is outside of normal operating range' priority: WARNING description: 'If the cpqHeThermalDegradedAction is set to shutdown(3) the system will be shutdown if the degraded(3) condition occurs.' @@ -1380,13 +1380,13 @@ zabbix_export: value: 'Virtual disks' trigger_prototypes: - - expression: '{count(#1,{$VDISK_CRIT_STATUS},eq)}=1' + expression: 'count(/HP iLO SNMP/system.hw.virtualdisk.status[cpqDaLogDrvStatus.{#SNMPINDEX}],#1,"eq","{$VDISK_CRIT_STATUS}")=1' name: 'Disk {#SNMPINDEX}({#DISK_NAME}): Virtual disk failed' opdata: 'Current state: {ITEM.LASTVALUE1}' priority: HIGH description: 'Please check virtual disk for warnings or errors' - - expression: '{count(#1,{$VDISK_OK_STATUS},ne)}=1' + expression: 'count(/HP iLO SNMP/system.hw.virtualdisk.status[cpqDaLogDrvStatus.{#SNMPINDEX}],#1,"ne","{$VDISK_OK_STATUS}")=1' name: 'Disk {#SNMPINDEX}({#DISK_NAME}): Virtual disk is not in OK state' opdata: 'Current state: {ITEM.LASTVALUE1}' priority: WARNING @@ -1394,7 +1394,7 @@ zabbix_export: dependencies: - name: 'Disk {#SNMPINDEX}({#DISK_NAME}): Virtual disk failed' - expression: '{HP iLO SNMP:system.hw.virtualdisk.status[cpqDaLogDrvStatus.{#SNMPINDEX}].count(#1,{$VDISK_CRIT_STATUS},eq)}=1' + expression: 'count(/HP iLO SNMP/system.hw.virtualdisk.status[cpqDaLogDrvStatus.{#SNMPINDEX}],#1,"eq","{$VDISK_CRIT_STATUS}")=1' preprocessing: - type: DISCARD_UNCHANGED_HEARTBEAT diff --git a/templates/server/ibm_imm_snmp/template_server_ibm_imm_snmp.yaml b/templates/server/ibm_imm_snmp/template_server_ibm_imm_snmp.yaml index f26c04e7ee3..03d09ed9783 100644 --- a/templates/server/ibm_imm_snmp/template_server_ibm_imm_snmp.yaml +++ b/templates/server/ibm_imm_snmp/template_server_ibm_imm_snmp.yaml @@ -1,6 +1,6 @@ zabbix_export: version: '5.4' - date: '2021-02-23T11:04:53Z' + date: '2021-05-09T00:00:00Z' groups: - name: 'Templates/Server hardware' @@ -84,7 +84,7 @@ zabbix_export: value: Inventory triggers: - - expression: '{diff()}=1 and {strlen()}>0' + expression: '(last(/IBM IMM SNMP/system.hw.serialnumber,#1)<>last(/IBM IMM SNMP/system.hw.serialnumber,#2))=1 and length(last(/IBM IMM SNMP/system.hw.serialnumber))>0' name: 'Device has been replaced (new serial number received)' priority: INFO description: 'Device serial number has changed. Ack to close' @@ -108,13 +108,13 @@ zabbix_export: value: Status triggers: - - expression: '{count(#1,{$HEALTH_DISASTER_STATUS},eq)}=1' + expression: 'count(/IBM IMM SNMP/system.status[systemHealthStat.0],#1,"eq","{$HEALTH_DISASTER_STATUS}")=1' name: 'System is in unrecoverable state!' opdata: 'Current state: {ITEM.LASTVALUE1}' priority: HIGH description: 'Please check the device for faults' - - expression: '{count(#1,{$HEALTH_CRIT_STATUS},eq)}=1' + expression: 'count(/IBM IMM SNMP/system.status[systemHealthStat.0],#1,"eq","{$HEALTH_CRIT_STATUS}")=1' name: 'System status is in critical state' opdata: 'Current state: {ITEM.LASTVALUE1}' priority: HIGH @@ -122,9 +122,9 @@ zabbix_export: dependencies: - name: 'System is in unrecoverable state!' - expression: '{IBM IMM SNMP:system.status[systemHealthStat.0].count(#1,{$HEALTH_DISASTER_STATUS},eq)}=1' + expression: 'count(/IBM IMM SNMP/system.status[systemHealthStat.0],#1,"eq","{$HEALTH_DISASTER_STATUS}")=1' - - expression: '{count(#1,{$HEALTH_WARN_STATUS},eq)}=1' + expression: 'count(/IBM IMM SNMP/system.status[systemHealthStat.0],#1,"eq","{$HEALTH_WARN_STATUS}")=1' name: 'System status is in warning state' opdata: 'Current state: {ITEM.LASTVALUE1}' priority: WARNING @@ -132,10 +132,10 @@ zabbix_export: dependencies: - name: 'System is in unrecoverable state!' - expression: '{IBM IMM SNMP:system.status[systemHealthStat.0].count(#1,{$HEALTH_DISASTER_STATUS},eq)}=1' + expression: 'count(/IBM IMM SNMP/system.status[systemHealthStat.0],#1,"eq","{$HEALTH_DISASTER_STATUS}")=1' - name: 'System status is in critical state' - expression: '{IBM IMM SNMP:system.status[systemHealthStat.0].count(#1,{$HEALTH_CRIT_STATUS},eq)}=1' + expression: 'count(/IBM IMM SNMP/system.status[systemHealthStat.0],#1,"eq","{$HEALTH_CRIT_STATUS}")=1' discovery_rules: - name: 'FAN Discovery' @@ -184,7 +184,7 @@ zabbix_export: value: Fans trigger_prototypes: - - expression: '{count(#1,{$FAN_OK_STATUS},ne)}=1' + expression: 'count(/IBM IMM SNMP/sensor.fan.status[fanHealthStatus.{#SNMPINDEX}],#1,"ne","{$FAN_OK_STATUS}")=1' name: '{#FAN_DESCR}: Fan is not in normal state' opdata: 'Current state: {ITEM.LASTVALUE1}' priority: INFO @@ -227,7 +227,7 @@ zabbix_export: value: 'Physical disks' trigger_prototypes: - - expression: '{count(#1,{$DISK_OK_STATUS},ne)}=1' + expression: 'count(/IBM IMM SNMP/system.hw.physicaldisk.status[diskHealthStatus.{#SNMPINDEX}],#1,"ne","{$DISK_OK_STATUS}")=1' name: '{#SNMPINDEX}: Physical disk is not in OK state' opdata: 'Current state: {ITEM.LASTVALUE1}' priority: WARNING @@ -258,7 +258,7 @@ zabbix_export: value: 'Power supply' trigger_prototypes: - - expression: '{count(#1,{$PSU_OK_STATUS},ne)}=1' + expression: 'count(/IBM IMM SNMP/sensor.psu.status[powerHealthStatus.{#SNMPINDEX}],#1,"ne","{$PSU_OK_STATUS}")=1' name: '{#PSU_DESCR}: Power supply is not in normal state' opdata: 'Current state: {ITEM.LASTVALUE1}' priority: INFO @@ -294,17 +294,17 @@ zabbix_export: value: Temperature trigger_prototypes: - - expression: '{avg(5m)}>{$TEMP_CRIT:""}' + expression: 'avg(/IBM IMM SNMP/sensor.temp.value[tempReading.{#SNMPINDEX}],5m)>{$TEMP_CRIT:""}' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{max(5m)}<{$TEMP_CRIT:""}-3' + recovery_expression: 'max(/IBM IMM SNMP/sensor.temp.value[tempReading.{#SNMPINDEX}],5m)<{$TEMP_CRIT:""}-3' name: '{#SNMPVALUE}: Temperature is above critical threshold: >{$TEMP_CRIT:""}' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: HIGH description: 'This trigger uses temperature sensor values as well as temperature sensor status if available' - - expression: '{avg(5m)}>{$TEMP_WARN:""}' + expression: 'avg(/IBM IMM SNMP/sensor.temp.value[tempReading.{#SNMPINDEX}],5m)>{$TEMP_WARN:""}' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{max(5m)}<{$TEMP_WARN:""}-3' + recovery_expression: 'max(/IBM IMM SNMP/sensor.temp.value[tempReading.{#SNMPINDEX}],5m)<{$TEMP_WARN:""}-3' name: '{#SNMPVALUE}: Temperature is above warning threshold: >{$TEMP_WARN:""}' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING @@ -312,12 +312,12 @@ zabbix_export: dependencies: - name: '{#SNMPVALUE}: Temperature is above critical threshold: >{$TEMP_CRIT:""}' - expression: '{IBM IMM SNMP:sensor.temp.value[tempReading.{#SNMPINDEX}].avg(5m)}>{$TEMP_CRIT:""}' - recovery_expression: '{IBM IMM SNMP:sensor.temp.value[tempReading.{#SNMPINDEX}].max(5m)}<{$TEMP_CRIT:""}-3' + expression: 'avg(/IBM IMM SNMP/sensor.temp.value[tempReading.{#SNMPINDEX}],5m)>{$TEMP_CRIT:""}' + recovery_expression: 'max(/IBM IMM SNMP/sensor.temp.value[tempReading.{#SNMPINDEX}],5m)<{$TEMP_CRIT:""}-3' - - expression: '{avg(5m)}<{$TEMP_CRIT_LOW:""}' + expression: 'avg(/IBM IMM SNMP/sensor.temp.value[tempReading.{#SNMPINDEX}],5m)<{$TEMP_CRIT_LOW:""}' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{min(5m)}>{$TEMP_CRIT_LOW:""}+3' + recovery_expression: 'min(/IBM IMM SNMP/sensor.temp.value[tempReading.{#SNMPINDEX}],5m)>{$TEMP_CRIT_LOW:""}+3' name: '{#SNMPVALUE}: Temperature is too low: <{$TEMP_CRIT_LOW:""}' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: AVERAGE @@ -352,17 +352,17 @@ zabbix_export: value: Temperature trigger_prototypes: - - expression: '{avg(5m)}>{$TEMP_CRIT:"Ambient"}' + expression: 'avg(/IBM IMM SNMP/sensor.temp.value[tempReading.Ambient.{#SNMPINDEX}],5m)>{$TEMP_CRIT:"Ambient"}' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{max(5m)}<{$TEMP_CRIT:"Ambient"}-3' + recovery_expression: 'max(/IBM IMM SNMP/sensor.temp.value[tempReading.Ambient.{#SNMPINDEX}],5m)<{$TEMP_CRIT:"Ambient"}-3' name: 'Ambient: Temperature is above critical threshold: >{$TEMP_CRIT:"Ambient"}' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: HIGH description: 'This trigger uses temperature sensor values as well as temperature sensor status if available' - - expression: '{avg(5m)}>{$TEMP_WARN:"Ambient"}' + expression: 'avg(/IBM IMM SNMP/sensor.temp.value[tempReading.Ambient.{#SNMPINDEX}],5m)>{$TEMP_WARN:"Ambient"}' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{max(5m)}<{$TEMP_WARN:"Ambient"}-3' + recovery_expression: 'max(/IBM IMM SNMP/sensor.temp.value[tempReading.Ambient.{#SNMPINDEX}],5m)<{$TEMP_WARN:"Ambient"}-3' name: 'Ambient: Temperature is above warning threshold: >{$TEMP_WARN:"Ambient"}' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING @@ -370,12 +370,12 @@ zabbix_export: dependencies: - name: 'Ambient: Temperature is above critical threshold: >{$TEMP_CRIT:"Ambient"}' - expression: '{IBM IMM SNMP:sensor.temp.value[tempReading.Ambient.{#SNMPINDEX}].avg(5m)}>{$TEMP_CRIT:"Ambient"}' - recovery_expression: '{IBM IMM SNMP:sensor.temp.value[tempReading.Ambient.{#SNMPINDEX}].max(5m)}<{$TEMP_CRIT:"Ambient"}-3' + expression: 'avg(/IBM IMM SNMP/sensor.temp.value[tempReading.Ambient.{#SNMPINDEX}],5m)>{$TEMP_CRIT:"Ambient"}' + recovery_expression: 'max(/IBM IMM SNMP/sensor.temp.value[tempReading.Ambient.{#SNMPINDEX}],5m)<{$TEMP_CRIT:"Ambient"}-3' - - expression: '{avg(5m)}<{$TEMP_CRIT_LOW:"Ambient"}' + expression: 'avg(/IBM IMM SNMP/sensor.temp.value[tempReading.Ambient.{#SNMPINDEX}],5m)<{$TEMP_CRIT_LOW:"Ambient"}' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{min(5m)}>{$TEMP_CRIT_LOW:"Ambient"}+3' + recovery_expression: 'min(/IBM IMM SNMP/sensor.temp.value[tempReading.Ambient.{#SNMPINDEX}],5m)>{$TEMP_CRIT_LOW:"Ambient"}+3' name: 'Ambient: Temperature is too low: <{$TEMP_CRIT_LOW:"Ambient"}' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: AVERAGE @@ -410,17 +410,17 @@ zabbix_export: value: Temperature trigger_prototypes: - - expression: '{avg(5m)}>{$TEMP_CRIT:"CPU"}' + expression: 'avg(/IBM IMM SNMP/sensor.temp.value[tempReading.CPU.{#SNMPINDEX}],5m)>{$TEMP_CRIT:"CPU"}' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{max(5m)}<{$TEMP_CRIT:"CPU"}-3' + recovery_expression: 'max(/IBM IMM SNMP/sensor.temp.value[tempReading.CPU.{#SNMPINDEX}],5m)<{$TEMP_CRIT:"CPU"}-3' name: 'CPU: Temperature is above critical threshold: >{$TEMP_CRIT:"CPU"}' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: HIGH description: 'This trigger uses temperature sensor values as well as temperature sensor status if available' - - expression: '{avg(5m)}>{$TEMP_WARN:"CPU"}' + expression: 'avg(/IBM IMM SNMP/sensor.temp.value[tempReading.CPU.{#SNMPINDEX}],5m)>{$TEMP_WARN:"CPU"}' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{max(5m)}<{$TEMP_WARN:"CPU"}-3' + recovery_expression: 'max(/IBM IMM SNMP/sensor.temp.value[tempReading.CPU.{#SNMPINDEX}],5m)<{$TEMP_WARN:"CPU"}-3' name: 'CPU: Temperature is above warning threshold: >{$TEMP_WARN:"CPU"}' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING @@ -428,12 +428,12 @@ zabbix_export: dependencies: - name: 'CPU: Temperature is above critical threshold: >{$TEMP_CRIT:"CPU"}' - expression: '{IBM IMM SNMP:sensor.temp.value[tempReading.CPU.{#SNMPINDEX}].avg(5m)}>{$TEMP_CRIT:"CPU"}' - recovery_expression: '{IBM IMM SNMP:sensor.temp.value[tempReading.CPU.{#SNMPINDEX}].max(5m)}<{$TEMP_CRIT:"CPU"}-3' + expression: 'avg(/IBM IMM SNMP/sensor.temp.value[tempReading.CPU.{#SNMPINDEX}],5m)>{$TEMP_CRIT:"CPU"}' + recovery_expression: 'max(/IBM IMM SNMP/sensor.temp.value[tempReading.CPU.{#SNMPINDEX}],5m)<{$TEMP_CRIT:"CPU"}-3' - - expression: '{avg(5m)}<{$TEMP_CRIT_LOW:"CPU"}' + expression: 'avg(/IBM IMM SNMP/sensor.temp.value[tempReading.CPU.{#SNMPINDEX}],5m)<{$TEMP_CRIT_LOW:"CPU"}' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{min(5m)}>{$TEMP_CRIT_LOW:"CPU"}+3' + recovery_expression: 'min(/IBM IMM SNMP/sensor.temp.value[tempReading.CPU.{#SNMPINDEX}],5m)>{$TEMP_CRIT_LOW:"CPU"}+3' name: 'CPU: Temperature is too low: <{$TEMP_CRIT_LOW:"CPU"}' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: AVERAGE diff --git a/templates/server/supermicro_aten_snmp/template_server_supermicro_aten_snmp.yaml b/templates/server/supermicro_aten_snmp/template_server_supermicro_aten_snmp.yaml index 4d39a04902a..8e5e4b640a4 100644 --- a/templates/server/supermicro_aten_snmp/template_server_supermicro_aten_snmp.yaml +++ b/templates/server/supermicro_aten_snmp/template_server_supermicro_aten_snmp.yaml @@ -1,6 +1,6 @@ zabbix_export: version: '5.4' - date: '2021-02-23T11:04:52Z' + date: '2021-05-09T00:00:00Z' groups: - name: 'Templates/Server hardware' @@ -92,17 +92,17 @@ zabbix_export: value: Temperature trigger_prototypes: - - expression: '{avg(5m)}>{$TEMP_CRIT:""}' + expression: 'avg(/Supermicro Aten SNMP/sensor.temp.value[sensorReading.{#SNMPINDEX}],5m)>{$TEMP_CRIT:""}' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{max(5m)}<{$TEMP_CRIT:""}-3' + recovery_expression: 'max(/Supermicro Aten SNMP/sensor.temp.value[sensorReading.{#SNMPINDEX}],5m)<{$TEMP_CRIT:""}-3' name: '{#SENSOR_DESCR}: Temperature is above critical threshold: >{$TEMP_CRIT:""}' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: HIGH description: 'This trigger uses temperature sensor values as well as temperature sensor status if available' - - expression: '{avg(5m)}>{$TEMP_WARN:""}' + expression: 'avg(/Supermicro Aten SNMP/sensor.temp.value[sensorReading.{#SNMPINDEX}],5m)>{$TEMP_WARN:""}' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{max(5m)}<{$TEMP_WARN:""}-3' + recovery_expression: 'max(/Supermicro Aten SNMP/sensor.temp.value[sensorReading.{#SNMPINDEX}],5m)<{$TEMP_WARN:""}-3' name: '{#SENSOR_DESCR}: Temperature is above warning threshold: >{$TEMP_WARN:""}' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: WARNING @@ -110,12 +110,12 @@ zabbix_export: dependencies: - name: '{#SENSOR_DESCR}: Temperature is above critical threshold: >{$TEMP_CRIT:""}' - expression: '{Supermicro Aten SNMP:sensor.temp.value[sensorReading.{#SNMPINDEX}].avg(5m)}>{$TEMP_CRIT:""}' - recovery_expression: '{Supermicro Aten SNMP:sensor.temp.value[sensorReading.{#SNMPINDEX}].max(5m)}<{$TEMP_CRIT:""}-3' + expression: 'avg(/Supermicro Aten SNMP/sensor.temp.value[sensorReading.{#SNMPINDEX}],5m)>{$TEMP_CRIT:""}' + recovery_expression: 'max(/Supermicro Aten SNMP/sensor.temp.value[sensorReading.{#SNMPINDEX}],5m)<{$TEMP_CRIT:""}-3' - - expression: '{avg(5m)}<{$TEMP_CRIT_LOW:""}' + expression: 'avg(/Supermicro Aten SNMP/sensor.temp.value[sensorReading.{#SNMPINDEX}],5m)<{$TEMP_CRIT_LOW:""}' recovery_mode: RECOVERY_EXPRESSION - recovery_expression: '{min(5m)}>{$TEMP_CRIT_LOW:""}+3' + recovery_expression: 'min(/Supermicro Aten SNMP/sensor.temp.value[sensorReading.{#SNMPINDEX}],5m)>{$TEMP_CRIT_LOW:""}+3' name: '{#SENSOR_DESCR}: Temperature is too low: <{$TEMP_CRIT_LOW:""}' opdata: 'Current value: {ITEM.LASTVALUE1}' priority: AVERAGE diff --git a/templates/tel/asterisk_http/template_tel_asterisk_http.yaml b/templates/tel/asterisk_http/template_tel_asterisk_http.yaml index f8f9b14edeb..6b56d6134ec 100644 --- a/templates/tel/asterisk_http/template_tel_asterisk_http.yaml +++ b/templates/tel/asterisk_http/template_tel_asterisk_http.yaml @@ -1,6 +1,6 @@ zabbix_export: version: '5.4' - date: '2021-02-23T11:04:25Z' + date: '2021-05-09T00:00:00Z' groups: - name: Templates/Telephony @@ -640,7 +640,7 @@ zabbix_export: value: Asterisk triggers: - - expression: '{nodata(30m)}=1' + expression: 'nodata(/Asterisk by HTTP/asterisk.uptime,30m)=1' name: 'Asterisk: Failed to fetch AMI page (or no data for 30m)' priority: WARNING description: 'Zabbix has not received data for items for the last 30 minutes.' @@ -648,9 +648,9 @@ zabbix_export: dependencies: - name: 'Asterisk: Service is down' - expression: '{Asterisk by HTTP:net.tcp.service["tcp","{HOST.CONN}","{$AMI.PORT}"].last()}=0' + expression: 'last(/Asterisk by HTTP/net.tcp.service["tcp","{HOST.CONN}","{$AMI.PORT}"])=0' - - expression: '{last()}<10m' + expression: 'last(/Asterisk by HTTP/asterisk.uptime)<10m' name: 'Asterisk: has been restarted (uptime < 10m)' priority: INFO description: 'Uptime is less than 10 minutes' @@ -677,7 +677,7 @@ zabbix_export: value: Asterisk triggers: - - expression: '{last()}<10m' + expression: 'last(/Asterisk by HTTP/asterisk.uptime_reload)<10m' name: 'Asterisk: has been reloaded (uptime < 10m)' priority: INFO description: 'Uptime is less than 10 minutes' @@ -704,7 +704,7 @@ zabbix_export: value: Asterisk triggers: - - expression: '{diff()}=1 and {strlen()}>0' + expression: '(last(/Asterisk by HTTP/asterisk.version,#1)<>last(/Asterisk by HTTP/asterisk.version,#2))=1 and length(last(/Asterisk by HTTP/asterisk.version))>0' name: 'Asterisk: Version has changed (new version: {ITEM.VALUE})' priority: INFO description: 'Asterisk version has changed. Ack to close.' @@ -723,14 +723,14 @@ zabbix_export: value: Asterisk triggers: - - expression: '{min(5m)}>{$AMI.RESPONSE_TIME.MAX.WARN}' + expression: 'min(/Asterisk by HTTP/net.tcp.service.perf["tcp","{HOST.CONN}","{$AMI.PORT}"],5m)>{$AMI.RESPONSE_TIME.MAX.WARN}' name: 'Asterisk: Service response time is too high (over {$AMI.RESPONSE_TIME.MAX.WARN} for 5m)' priority: WARNING manual_close: 'YES' dependencies: - name: 'Asterisk: Service is down' - expression: '{Asterisk by HTTP:net.tcp.service["tcp","{HOST.CONN}","{$AMI.PORT}"].last()}=0' + expression: 'last(/Asterisk by HTTP/net.tcp.service["tcp","{HOST.CONN}","{$AMI.PORT}"])=0' - name: 'Asterisk: Service status' type: SIMPLE @@ -750,7 +750,7 @@ zabbix_export: value: Asterisk triggers: - - expression: '{last()}=0' + expression: 'last(/Asterisk by HTTP/net.tcp.service["tcp","{HOST.CONN}","{$AMI.PORT}"])=0' name: 'Asterisk: Service is down' priority: AVERAGE manual_close: 'YES' @@ -781,7 +781,7 @@ zabbix_export: value: 'Asterisk IAX trunks' trigger_prototypes: - - expression: '{min(10m)}>={$AMI.TRUNK_ACTIVE_CHANNELS.MAX.WARN:"{#OBJECTNAME}"}' + expression: 'min(/Asterisk by HTTP/asterisk.iax.trunk.active_channels[{#OBJECTNAME}],10m)>={$AMI.TRUNK_ACTIVE_CHANNELS.MAX.WARN:"{#OBJECTNAME}"}' name: 'IAX trunk "{#OBJECTNAME}": Number of the IAX trunk "{#OBJECTNAME}" active channels is too high (over {$AMI.TRUNK_ACTIVE_CHANNELS.MAX.WARN:"{#OBJECTNAME}"} for 10m)' priority: WARNING description: 'The IAX trunk may not be able to process new calls.' @@ -816,7 +816,7 @@ zabbix_export: value: 'Asterisk IAX trunks' trigger_prototypes: - - expression: '{last()}="UNKNOWN" or {last()}="UNREACHABLE"' + expression: 'last(/Asterisk by HTTP/asterisk.iax.trunk.status[{#OBJECTNAME}])="UNKNOWN" or last(/Asterisk by HTTP/asterisk.iax.trunk.status[{#OBJECTNAME}])="UNREACHABLE"' name: 'IAX trunk "{#OBJECTNAME}": IAX trunk {#OBJECTNAME} has a state {ITEM.VALUE}' priority: AVERAGE description: 'The IAX trunk is unable to establish a connection with a neighbor due to network issues or incorrect configuration.' @@ -861,7 +861,7 @@ zabbix_export: value: 'Asterisk PJSIP trunks' trigger_prototypes: - - expression: '{min(10m)}>={$AMI.TRUNK_ACTIVE_CHANNELS.MAX.WARN:"{#OBJECTNAME}"}' + expression: 'min(/Asterisk by HTTP/asterisk.pjsip.trunk.active_channels[{#OBJECTNAME}],10m)>={$AMI.TRUNK_ACTIVE_CHANNELS.MAX.WARN:"{#OBJECTNAME}"}' name: 'PJSIP trunk "{#OBJECTNAME}": Number of the PJSIP trunk "{#OBJECTNAME}" active channels is too high (over {$AMI.TRUNK_ACTIVE_CHANNELS.MAX.WARN:"{#OBJECTNAME}"} for 10m)' priority: WARNING description: 'The PJSIP trunk may not be able to process new calls.' @@ -895,7 +895,7 @@ zabbix_export: value: 'Asterisk PJSIP trunks' trigger_prototypes: - - expression: '{last()}="Unavailable"' + expression: 'last(/Asterisk by HTTP/asterisk.pjsip.trunk.devicestate[{#OBJECTNAME}])="Unavailable"' name: 'PJSIP trunk "{#OBJECTNAME}": PJSIP trunk {#OBJECTNAME} has a state Unavailable' priority: AVERAGE description: 'The PJSIP trunk is unable to establish a connection with a neighbor due to network issues or incorrect configuration.' @@ -958,7 +958,7 @@ zabbix_export: value: 'Asterisk queue "{#QUEUE}"' trigger_prototypes: - - expression: '{min(10m)}>{$AMI.QUEUE_CALLERS.MAX.WARN:"{#QUEUE}"}' + expression: 'min(/Asterisk by HTTP/asterisk.queue.callers[{#QUEUE}],10m)>{$AMI.QUEUE_CALLERS.MAX.WARN:"{#QUEUE}"}' name: '"{#QUEUE}": Number of callers in the queue "{#QUEUE}" is too high (over {$AMI.QUEUE_CALLERS.MAX.WARN:"{#QUEUE}"} for 10m)' priority: WARNING description: 'There is a large number of calls in the queue.' @@ -1021,7 +1021,7 @@ zabbix_export: value: 'Asterisk SIP trunks' trigger_prototypes: - - expression: '{min(10m)}>={$AMI.TRUNK_ACTIVE_CHANNELS.MAX.WARN:"{#OBJECTNAME}"}' + expression: 'min(/Asterisk by HTTP/asterisk.sip.trunk.active_channels[{#OBJECTNAME}],10m)>={$AMI.TRUNK_ACTIVE_CHANNELS.MAX.WARN:"{#OBJECTNAME}"}' name: 'SIP trunk "{#OBJECTNAME}": Number of the SIP trunk "{#OBJECTNAME}" active channels is too high (over {$AMI.TRUNK_ACTIVE_CHANNELS.MAX.WARN:"{#OBJECTNAME}"} for 10m)' priority: WARNING description: 'The SIP trunk may not be able to process new calls.' @@ -1056,7 +1056,7 @@ zabbix_export: value: 'Asterisk SIP trunks' trigger_prototypes: - - expression: '{last()}="UNKNOWN" or {last()}="UNREACHABLE"' + expression: 'last(/Asterisk by HTTP/asterisk.sip.trunk.status[{#OBJECTNAME}])="UNKNOWN" or last(/Asterisk by HTTP/asterisk.sip.trunk.status[{#OBJECTNAME}])="UNREACHABLE"' name: 'SIP trunk "{#OBJECTNAME}": SIP trunk {#OBJECTNAME} has a state {ITEM.VALUE}' priority: AVERAGE description: 'The SIP trunk is unable to establish a connection with a neighbor due to network issues or incorrect configuration.' |