I found the solution to discovery domains and get expiration date. Zabbix gets information about domain except for days of expiring.
What does it need to change to get expiration data in Zabbix 4?
The script domain_left.sh gets and calculates days. Works - OK
This script domain_discovery.sh prepare JSON from domain_list.txt - works OK
.../zabbix_agentd.d/domain.conf
Template. Perhaps an error is somewhere.
What does it need to change to get expiration data in Zabbix 4?
The script domain_left.sh gets and calculates days. Works - OK
Code:
/bin/bash DOMAIN="$1" data=$(/etc/zabbix/scripts/domain-simple.rb $1 | grep -E 'paid|Expir' | grep -o -E '[0-9]{4}.[0-9]{2}.[0-9]{2}|[0-9]{2}/[0-9]{2}/[0-9]{4}' | tr . / | awk 'NR == 1') expire=$((`date -d "$data" '+%s'`)) today=$((`date '+%s'`)) lefts=$(($expire - $today)) leftd=$(($lefts/86400)) echo $leftd
Code:
#!/bin/bash JSON=$(for i in `cat /etc/zabbix/scripts/domain_list.txt`; do printf "{\"{#DOMAIN}\":\"$i\"},"; done | sed 's/^\(.*\).$/\1/') printf "{\"data\":[" printf "$JSON" printf "]}"
Code:
UserParameter=domain.discovery[*], /.../domain_discovery.sh UserParameter=domain.expire[*], /.../domain_left.sh $1
HTML Code:
<?xml version="1.0" encoding="UTF-8"?> <zabbix_export> <version>3.0</version> <date>2016-07-11T19:00:02Z</date> <groups> <group> <name>Templates</name> </group> </groups> <templates> <template> <template>Domain Expiration</template> <name>Domain Expiration</name> <description/> <groups> <group> <name>Templates</name> </group> </groups> <applications> <application> <name>Domain</name> </application> </applications> <items/> <discovery_rules> <discovery_rule> <name>Domain discovery</name> <type>7</type> <snmp_community/> <snmp_oid/> <key>domain.discovery</key> <delay>300</delay> <status>0</status> <allowed_hosts/> <snmpv3_contextname/> <snmpv3_securityname/> <snmpv3_securitylevel>0</snmpv3_securitylevel> <snmpv3_authprotocol>0</snmpv3_authprotocol> <snmpv3_authpassphrase/> <snmpv3_privprotocol>0</snmpv3_privprotocol> <snmpv3_privpassphrase/> <delay_flex/> <params/> <ipmi_sensor/> <authtype>0</authtype> <username/> <password/> <publickey/> <privatekey/> <port/> <filter> <evaltype>0</evaltype> <formula/> <conditions> <condition> <macro>{#DOMAIN}</macro> <value>.*</value> <operator>8</operator> <formulaid>A</formulaid> </condition> </conditions> </filter> <lifetime>1</lifetime> <description/> <item_prototypes> <item_prototype> <name>Domain $1 expire after</name> <type>7</type> <snmp_community/> <multiplier>0</multiplier> <snmp_oid/> <key>domain.expire[{#DOMAIN}]</key> <delay>3600</delay> <history>2</history> <trends>2</trends> <status>0</status> <value_type>3</value_type> <allowed_hosts/> <units/> <delta>0</delta> <snmpv3_contextname/> <snmpv3_securityname/> <snmpv3_securitylevel>0</snmpv3_securitylevel> <snmpv3_authprotocol>0</snmpv3_authprotocol> <snmpv3_authpassphrase/> <snmpv3_privprotocol>0</snmpv3_privprotocol> <snmpv3_privpassphrase/> <formula>1</formula> <delay_flex/> <params/> <ipmi_sensor/> <data_type>0</data_type> <authtype>0</authtype> <username/> <password/> <publickey/> <privatekey/> <port/> <description/> <inventory_link>0</inventory_link> <applications> <application> <name>Domain</name> </application> </applications> <valuemap/> <logtimefmt/> <application_prototypes/> </item_prototype> </item_prototypes> <trigger_prototypes> <trigger_prototype> <expression>{Domain Expiration:domain.expire[{#DOMAIN}].last()}<30</expression> <name>Domain {#DOMAIN} expires soon</name> <url/> <status>0</status> <priority>2</priority> <description/> <type>0</type> <dependencies/> </trigger_prototype> </trigger_prototypes> <graph_prototypes/> <host_prototypes/> </discovery_rule> </discovery_rules> <macros/> <templates/> <screens/> </template> </templates> </zabbix_export>
Comment