Ad Widget

Collapse

Monitoring of multiple domain expiration

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • photographer
    Junior Member
    • Nov 2018
    • 1

    #1

    Monitoring of multiple domain expiration

    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

    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
    This script domain_discovery.sh prepare JSON from domain_list.txt - works OK

    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 "]}"
    .../zabbix_agentd.d/domain.conf
    Code:
      
     UserParameter=domain.discovery[*], /.../domain_discovery.sh UserParameter=domain.expire[*], /.../domain_left.sh $1
    Template. Perhaps an error is somewhere.

    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()}&lt;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>
  • Ernane87
    Junior Member
    • Jul 2019
    • 9

    #2
    Boa tarde.
    Conseguiu alguma solução?
    Estou precisando da mesma informação. Atualmente preciso checar mais de 30 dominios. No Nagios eu conseguia utilizando plugin mas no Zabbix ainda nao tive sucesso.

    Obrigado.

    Comment

    Working...