Compare commits
No commits in common. "master" and "docker-x1" have entirely different histories.
@ -1,3 +0,0 @@
|
|||||||
#docker zabbix
|
|
||||||
UserParameter=docker[*],sudo /etc/zabbix/scripts/docker.sh "$1" "$2" "$3"
|
|
||||||
|
|
||||||
@ -3,8 +3,7 @@
|
|||||||
# author mikedmorto 2021 year
|
# author mikedmorto 2021 year
|
||||||
export LC_ALL=""
|
export LC_ALL=""
|
||||||
export LANG="en_US.UTF-8"
|
export LANG="en_US.UTF-8"
|
||||||
version="0.1"
|
version="0.0"
|
||||||
DOCKER="/usr/bin/docker"
|
|
||||||
|
|
||||||
JSON=""
|
JSON=""
|
||||||
#### PARAMETRS ####
|
#### PARAMETRS ####
|
||||||
@ -15,17 +14,6 @@ case "$METRIC" in
|
|||||||
discovery)
|
discovery)
|
||||||
|
|
||||||
JSON="{ \"data\":["
|
JSON="{ \"data\":["
|
||||||
DCLIST=""
|
|
||||||
|
|
||||||
|
|
||||||
# get all docker containers list of id
|
|
||||||
DCLIST=`${DOCKER} ps -a | tail -n +2 | awk '{print $1}'`
|
|
||||||
|
|
||||||
|
|
||||||
# show all docker id
|
|
||||||
for DOCKERID in ${DCLIST}; do
|
|
||||||
JSON=${JSON}" {\"{#DOCKERID}\":\"${DOCKERID}\"},"
|
|
||||||
done
|
|
||||||
|
|
||||||
|
|
||||||
JSON=${JSON::-1}
|
JSON=${JSON::-1}
|
||||||
@ -34,29 +22,10 @@ echo ${JSON}
|
|||||||
exit 0
|
exit 0
|
||||||
;;
|
;;
|
||||||
|
|
||||||
# get container status
|
|
||||||
docker.container_running)
|
|
||||||
|
|
||||||
RET=`${DOCKER} stats --no-stream | tail -n +2 | awk -v IT="${ITEM}" ' BEGIN {$count=0;} { if ($1 == IT) count += 1 } END {if (count > 1) print ""; else if (count == 1) print 1; else if (count == 0) print 0} '`
|
|
||||||
echo ${RET}
|
|
||||||
|
|
||||||
|
|
||||||
exit 0
|
|
||||||
;;
|
|
||||||
|
|
||||||
script.version)
|
|
||||||
|
|
||||||
echo ${version}
|
|
||||||
|
|
||||||
exit 0
|
|
||||||
;;
|
|
||||||
|
|
||||||
help)
|
help)
|
||||||
echo "please use these parametrs
|
echo "please use these parametrs
|
||||||
{
|
{
|
||||||
discovery
|
discovery
|
||||||
docker.container_running
|
|
||||||
script.version
|
|
||||||
}"
|
}"
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
|
|||||||
@ -1,182 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<zabbix_export>
|
|
||||||
<version>3.4</version>
|
|
||||||
<date>2021-09-30T09:28:57Z</date>
|
|
||||||
<groups>
|
|
||||||
<group>
|
|
||||||
<name>MDM</name>
|
|
||||||
</group>
|
|
||||||
<group>
|
|
||||||
<name>Templates</name>
|
|
||||||
</group>
|
|
||||||
</groups>
|
|
||||||
<templates>
|
|
||||||
<template>
|
|
||||||
<template>mdm_docker_active</template>
|
|
||||||
<name>mdm_docker_active</name>
|
|
||||||
<description/>
|
|
||||||
<groups>
|
|
||||||
<group>
|
|
||||||
<name>MDM</name>
|
|
||||||
</group>
|
|
||||||
<group>
|
|
||||||
<name>Templates</name>
|
|
||||||
</group>
|
|
||||||
</groups>
|
|
||||||
<applications>
|
|
||||||
<application>
|
|
||||||
<name>Docker</name>
|
|
||||||
</application>
|
|
||||||
<application>
|
|
||||||
<name>Docker-Containers</name>
|
|
||||||
</application>
|
|
||||||
</applications>
|
|
||||||
<items>
|
|
||||||
<item>
|
|
||||||
<name>docker script version</name>
|
|
||||||
<type>7</type>
|
|
||||||
<snmp_community/>
|
|
||||||
<snmp_oid/>
|
|
||||||
<key>docker[script.version]</key>
|
|
||||||
<delay>1m</delay>
|
|
||||||
<history>90d</history>
|
|
||||||
<trends>0</trends>
|
|
||||||
<status>0</status>
|
|
||||||
<value_type>4</value_type>
|
|
||||||
<allowed_hosts/>
|
|
||||||
<units/>
|
|
||||||
<snmpv3_contextname/>
|
|
||||||
<snmpv3_securityname/>
|
|
||||||
<snmpv3_securitylevel>0</snmpv3_securitylevel>
|
|
||||||
<snmpv3_authprotocol>0</snmpv3_authprotocol>
|
|
||||||
<snmpv3_authpassphrase/>
|
|
||||||
<snmpv3_privprotocol>0</snmpv3_privprotocol>
|
|
||||||
<snmpv3_privpassphrase/>
|
|
||||||
<params/>
|
|
||||||
<ipmi_sensor/>
|
|
||||||
<authtype>0</authtype>
|
|
||||||
<username/>
|
|
||||||
<password/>
|
|
||||||
<publickey/>
|
|
||||||
<privatekey/>
|
|
||||||
<port/>
|
|
||||||
<description/>
|
|
||||||
<inventory_link>0</inventory_link>
|
|
||||||
<applications>
|
|
||||||
<application>
|
|
||||||
<name>Docker</name>
|
|
||||||
</application>
|
|
||||||
</applications>
|
|
||||||
<valuemap/>
|
|
||||||
<logtimefmt/>
|
|
||||||
<preprocessing/>
|
|
||||||
<jmx_endpoint/>
|
|
||||||
<master_item/>
|
|
||||||
</item>
|
|
||||||
</items>
|
|
||||||
<discovery_rules>
|
|
||||||
<discovery_rule>
|
|
||||||
<name>DockerDiscovery</name>
|
|
||||||
<type>7</type>
|
|
||||||
<snmp_community/>
|
|
||||||
<snmp_oid/>
|
|
||||||
<key>docker[discovery]</key>
|
|
||||||
<delay>1m</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/>
|
|
||||||
<params/>
|
|
||||||
<ipmi_sensor/>
|
|
||||||
<authtype>0</authtype>
|
|
||||||
<username/>
|
|
||||||
<password/>
|
|
||||||
<publickey/>
|
|
||||||
<privatekey/>
|
|
||||||
<port/>
|
|
||||||
<filter>
|
|
||||||
<evaltype>0</evaltype>
|
|
||||||
<formula/>
|
|
||||||
<conditions/>
|
|
||||||
</filter>
|
|
||||||
<lifetime>7d</lifetime>
|
|
||||||
<description/>
|
|
||||||
<item_prototypes>
|
|
||||||
<item_prototype>
|
|
||||||
<name>Container $2 running</name>
|
|
||||||
<type>7</type>
|
|
||||||
<snmp_community/>
|
|
||||||
<snmp_oid/>
|
|
||||||
<key>docker[docker.container_running,{#DOCKERID}]</key>
|
|
||||||
<delay>1m</delay>
|
|
||||||
<history>1w</history>
|
|
||||||
<trends>365d</trends>
|
|
||||||
<status>0</status>
|
|
||||||
<value_type>3</value_type>
|
|
||||||
<allowed_hosts/>
|
|
||||||
<units/>
|
|
||||||
<snmpv3_contextname/>
|
|
||||||
<snmpv3_securityname/>
|
|
||||||
<snmpv3_securitylevel>0</snmpv3_securitylevel>
|
|
||||||
<snmpv3_authprotocol>0</snmpv3_authprotocol>
|
|
||||||
<snmpv3_authpassphrase/>
|
|
||||||
<snmpv3_privprotocol>0</snmpv3_privprotocol>
|
|
||||||
<snmpv3_privpassphrase/>
|
|
||||||
<params/>
|
|
||||||
<ipmi_sensor/>
|
|
||||||
<authtype>0</authtype>
|
|
||||||
<username/>
|
|
||||||
<password/>
|
|
||||||
<publickey/>
|
|
||||||
<privatekey/>
|
|
||||||
<port/>
|
|
||||||
<description/>
|
|
||||||
<inventory_link>0</inventory_link>
|
|
||||||
<applications>
|
|
||||||
<application>
|
|
||||||
<name>Docker-Containers</name>
|
|
||||||
</application>
|
|
||||||
</applications>
|
|
||||||
<valuemap/>
|
|
||||||
<logtimefmt/>
|
|
||||||
<preprocessing/>
|
|
||||||
<jmx_endpoint/>
|
|
||||||
<application_prototypes/>
|
|
||||||
<master_item_prototype/>
|
|
||||||
</item_prototype>
|
|
||||||
</item_prototypes>
|
|
||||||
<trigger_prototypes>
|
|
||||||
<trigger_prototype>
|
|
||||||
<expression>{mdm_docker_active:docker[docker.container_running,{#DOCKERID}].last()}=0</expression>
|
|
||||||
<recovery_mode>0</recovery_mode>
|
|
||||||
<recovery_expression/>
|
|
||||||
<name>Docker cont {#DOCKERID} is not running</name>
|
|
||||||
<correlation_mode>0</correlation_mode>
|
|
||||||
<correlation_tag/>
|
|
||||||
<url/>
|
|
||||||
<status>0</status>
|
|
||||||
<priority>4</priority>
|
|
||||||
<description/>
|
|
||||||
<type>0</type>
|
|
||||||
<manual_close>0</manual_close>
|
|
||||||
<dependencies/>
|
|
||||||
<tags/>
|
|
||||||
</trigger_prototype>
|
|
||||||
</trigger_prototypes>
|
|
||||||
<graph_prototypes/>
|
|
||||||
<host_prototypes/>
|
|
||||||
<jmx_endpoint/>
|
|
||||||
</discovery_rule>
|
|
||||||
</discovery_rules>
|
|
||||||
<httptests/>
|
|
||||||
<macros/>
|
|
||||||
<templates/>
|
|
||||||
<screens/>
|
|
||||||
</template>
|
|
||||||
</templates>
|
|
||||||
</zabbix_export>
|
|
||||||
@ -1,533 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<zabbix_export>
|
|
||||||
<version>3.4</version>
|
|
||||||
<date>2021-06-13T08:07:09Z</date>
|
|
||||||
<groups>
|
|
||||||
<group>
|
|
||||||
<name>MDM</name>
|
|
||||||
</group>
|
|
||||||
<group>
|
|
||||||
<name>MyTemplates</name>
|
|
||||||
</group>
|
|
||||||
</groups>
|
|
||||||
<templates>
|
|
||||||
<template>
|
|
||||||
<template>mdm_iostat_agent active</template>
|
|
||||||
<name>mdm_iostat_agent active</name>
|
|
||||||
<description/>
|
|
||||||
<groups>
|
|
||||||
<group>
|
|
||||||
<name>MDM</name>
|
|
||||||
</group>
|
|
||||||
<group>
|
|
||||||
<name>MyTemplates</name>
|
|
||||||
</group>
|
|
||||||
</groups>
|
|
||||||
<applications>
|
|
||||||
<application>
|
|
||||||
<name>iostat</name>
|
|
||||||
</application>
|
|
||||||
</applications>
|
|
||||||
<items/>
|
|
||||||
<discovery_rules>
|
|
||||||
<discovery_rule>
|
|
||||||
<name>IOSTAT: Hard disk drive discovery</name>
|
|
||||||
<type>7</type>
|
|
||||||
<snmp_community/>
|
|
||||||
<snmp_oid/>
|
|
||||||
<key>iostat[]</key>
|
|
||||||
<delay>1h</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/>
|
|
||||||
<params/>
|
|
||||||
<ipmi_sensor/>
|
|
||||||
<authtype>0</authtype>
|
|
||||||
<username/>
|
|
||||||
<password/>
|
|
||||||
<publickey/>
|
|
||||||
<privatekey/>
|
|
||||||
<port/>
|
|
||||||
<filter>
|
|
||||||
<evaltype>0</evaltype>
|
|
||||||
<formula/>
|
|
||||||
<conditions/>
|
|
||||||
</filter>
|
|
||||||
<lifetime>1d</lifetime>
|
|
||||||
<description/>
|
|
||||||
<item_prototypes>
|
|
||||||
<item_prototype>
|
|
||||||
<name>iostat: $1 on $2</name>
|
|
||||||
<type>7</type>
|
|
||||||
<snmp_community/>
|
|
||||||
<snmp_oid/>
|
|
||||||
<key>iostat[avgqu,{#HDNAME}]</key>
|
|
||||||
<delay>30s</delay>
|
|
||||||
<history>1w</history>
|
|
||||||
<trends>365d</trends>
|
|
||||||
<status>0</status>
|
|
||||||
<value_type>0</value_type>
|
|
||||||
<allowed_hosts/>
|
|
||||||
<units>req</units>
|
|
||||||
<snmpv3_contextname/>
|
|
||||||
<snmpv3_securityname/>
|
|
||||||
<snmpv3_securitylevel>0</snmpv3_securitylevel>
|
|
||||||
<snmpv3_authprotocol>0</snmpv3_authprotocol>
|
|
||||||
<snmpv3_authpassphrase/>
|
|
||||||
<snmpv3_privprotocol>0</snmpv3_privprotocol>
|
|
||||||
<snmpv3_privpassphrase/>
|
|
||||||
<params/>
|
|
||||||
<ipmi_sensor/>
|
|
||||||
<authtype>0</authtype>
|
|
||||||
<username/>
|
|
||||||
<password/>
|
|
||||||
<publickey/>
|
|
||||||
<privatekey/>
|
|
||||||
<port/>
|
|
||||||
<description>Средний размер очереди.</description>
|
|
||||||
<inventory_link>0</inventory_link>
|
|
||||||
<applications>
|
|
||||||
<application>
|
|
||||||
<name>iostat</name>
|
|
||||||
</application>
|
|
||||||
</applications>
|
|
||||||
<valuemap/>
|
|
||||||
<logtimefmt/>
|
|
||||||
<preprocessing/>
|
|
||||||
<jmx_endpoint/>
|
|
||||||
<application_prototypes/>
|
|
||||||
<master_item_prototype/>
|
|
||||||
</item_prototype>
|
|
||||||
<item_prototype>
|
|
||||||
<name>iostat: $1 on $2</name>
|
|
||||||
<type>7</type>
|
|
||||||
<snmp_community/>
|
|
||||||
<snmp_oid/>
|
|
||||||
<key>iostat[await,{#HDNAME}]</key>
|
|
||||||
<delay>30s</delay>
|
|
||||||
<history>1w</history>
|
|
||||||
<trends>365d</trends>
|
|
||||||
<status>0</status>
|
|
||||||
<value_type>0</value_type>
|
|
||||||
<allowed_hosts/>
|
|
||||||
<units>ms</units>
|
|
||||||
<snmpv3_contextname/>
|
|
||||||
<snmpv3_securityname/>
|
|
||||||
<snmpv3_securitylevel>0</snmpv3_securitylevel>
|
|
||||||
<snmpv3_authprotocol>0</snmpv3_authprotocol>
|
|
||||||
<snmpv3_authpassphrase/>
|
|
||||||
<snmpv3_privprotocol>0</snmpv3_privprotocol>
|
|
||||||
<snmpv3_privpassphrase/>
|
|
||||||
<params/>
|
|
||||||
<ipmi_sensor/>
|
|
||||||
<authtype>0</authtype>
|
|
||||||
<username/>
|
|
||||||
<password/>
|
|
||||||
<publickey/>
|
|
||||||
<privatekey/>
|
|
||||||
<port/>
|
|
||||||
<description>Среднее время ожидания запроса в очереди</description>
|
|
||||||
<inventory_link>0</inventory_link>
|
|
||||||
<applications>
|
|
||||||
<application>
|
|
||||||
<name>iostat</name>
|
|
||||||
</application>
|
|
||||||
</applications>
|
|
||||||
<valuemap/>
|
|
||||||
<logtimefmt/>
|
|
||||||
<preprocessing/>
|
|
||||||
<jmx_endpoint/>
|
|
||||||
<application_prototypes/>
|
|
||||||
<master_item_prototype/>
|
|
||||||
</item_prototype>
|
|
||||||
<item_prototype>
|
|
||||||
<name>iostat: KBps $1 on $2</name>
|
|
||||||
<type>7</type>
|
|
||||||
<snmp_community/>
|
|
||||||
<snmp_oid/>
|
|
||||||
<key>iostat[read,{#HDNAME}]</key>
|
|
||||||
<delay>30s</delay>
|
|
||||||
<history>1w</history>
|
|
||||||
<trends>365d</trends>
|
|
||||||
<status>0</status>
|
|
||||||
<value_type>0</value_type>
|
|
||||||
<allowed_hosts/>
|
|
||||||
<units>Bps</units>
|
|
||||||
<snmpv3_contextname/>
|
|
||||||
<snmpv3_securityname/>
|
|
||||||
<snmpv3_securitylevel>0</snmpv3_securitylevel>
|
|
||||||
<snmpv3_authprotocol>0</snmpv3_authprotocol>
|
|
||||||
<snmpv3_authpassphrase/>
|
|
||||||
<snmpv3_privprotocol>0</snmpv3_privprotocol>
|
|
||||||
<snmpv3_privpassphrase/>
|
|
||||||
<params/>
|
|
||||||
<ipmi_sensor/>
|
|
||||||
<authtype>0</authtype>
|
|
||||||
<username/>
|
|
||||||
<password/>
|
|
||||||
<publickey/>
|
|
||||||
<privatekey/>
|
|
||||||
<port/>
|
|
||||||
<description/>
|
|
||||||
<inventory_link>0</inventory_link>
|
|
||||||
<applications>
|
|
||||||
<application>
|
|
||||||
<name>iostat</name>
|
|
||||||
</application>
|
|
||||||
</applications>
|
|
||||||
<valuemap/>
|
|
||||||
<logtimefmt/>
|
|
||||||
<preprocessing>
|
|
||||||
<step>
|
|
||||||
<type>10</type>
|
|
||||||
<params/>
|
|
||||||
</step>
|
|
||||||
<step>
|
|
||||||
<type>1</type>
|
|
||||||
<params>1024</params>
|
|
||||||
</step>
|
|
||||||
</preprocessing>
|
|
||||||
<jmx_endpoint/>
|
|
||||||
<application_prototypes/>
|
|
||||||
<master_item_prototype/>
|
|
||||||
</item_prototype>
|
|
||||||
<item_prototype>
|
|
||||||
<name>iostat: read req on $2</name>
|
|
||||||
<type>7</type>
|
|
||||||
<snmp_community/>
|
|
||||||
<snmp_oid/>
|
|
||||||
<key>iostat[rs,{#HDNAME}]</key>
|
|
||||||
<delay>30s</delay>
|
|
||||||
<history>1w</history>
|
|
||||||
<trends>365d</trends>
|
|
||||||
<status>0</status>
|
|
||||||
<value_type>0</value_type>
|
|
||||||
<allowed_hosts/>
|
|
||||||
<units>req</units>
|
|
||||||
<snmpv3_contextname/>
|
|
||||||
<snmpv3_securityname/>
|
|
||||||
<snmpv3_securitylevel>0</snmpv3_securitylevel>
|
|
||||||
<snmpv3_authprotocol>0</snmpv3_authprotocol>
|
|
||||||
<snmpv3_authpassphrase/>
|
|
||||||
<snmpv3_privprotocol>0</snmpv3_privprotocol>
|
|
||||||
<snmpv3_privpassphrase/>
|
|
||||||
<params/>
|
|
||||||
<ipmi_sensor/>
|
|
||||||
<authtype>0</authtype>
|
|
||||||
<username/>
|
|
||||||
<password/>
|
|
||||||
<publickey/>
|
|
||||||
<privatekey/>
|
|
||||||
<port/>
|
|
||||||
<description>Запросов на чтение</description>
|
|
||||||
<inventory_link>0</inventory_link>
|
|
||||||
<applications>
|
|
||||||
<application>
|
|
||||||
<name>iostat</name>
|
|
||||||
</application>
|
|
||||||
</applications>
|
|
||||||
<valuemap/>
|
|
||||||
<logtimefmt/>
|
|
||||||
<preprocessing/>
|
|
||||||
<jmx_endpoint/>
|
|
||||||
<application_prototypes/>
|
|
||||||
<master_item_prototype/>
|
|
||||||
</item_prototype>
|
|
||||||
<item_prototype>
|
|
||||||
<name>iostat: $1 on $2</name>
|
|
||||||
<type>7</type>
|
|
||||||
<snmp_community/>
|
|
||||||
<snmp_oid/>
|
|
||||||
<key>iostat[svctm,{#HDNAME}]</key>
|
|
||||||
<delay>30s</delay>
|
|
||||||
<history>1w</history>
|
|
||||||
<trends>365d</trends>
|
|
||||||
<status>0</status>
|
|
||||||
<value_type>0</value_type>
|
|
||||||
<allowed_hosts/>
|
|
||||||
<units>ms</units>
|
|
||||||
<snmpv3_contextname/>
|
|
||||||
<snmpv3_securityname/>
|
|
||||||
<snmpv3_securitylevel>0</snmpv3_securitylevel>
|
|
||||||
<snmpv3_authprotocol>0</snmpv3_authprotocol>
|
|
||||||
<snmpv3_authpassphrase/>
|
|
||||||
<snmpv3_privprotocol>0</snmpv3_privprotocol>
|
|
||||||
<snmpv3_privpassphrase/>
|
|
||||||
<params/>
|
|
||||||
<ipmi_sensor/>
|
|
||||||
<authtype>0</authtype>
|
|
||||||
<username/>
|
|
||||||
<password/>
|
|
||||||
<publickey/>
|
|
||||||
<privatekey/>
|
|
||||||
<port/>
|
|
||||||
<description>Среднее время выполнения операций на диске</description>
|
|
||||||
<inventory_link>0</inventory_link>
|
|
||||||
<applications>
|
|
||||||
<application>
|
|
||||||
<name>iostat</name>
|
|
||||||
</application>
|
|
||||||
</applications>
|
|
||||||
<valuemap/>
|
|
||||||
<logtimefmt/>
|
|
||||||
<preprocessing/>
|
|
||||||
<jmx_endpoint/>
|
|
||||||
<application_prototypes/>
|
|
||||||
<master_item_prototype/>
|
|
||||||
</item_prototype>
|
|
||||||
<item_prototype>
|
|
||||||
<name>iostat: $1 on $2</name>
|
|
||||||
<type>7</type>
|
|
||||||
<snmp_community/>
|
|
||||||
<snmp_oid/>
|
|
||||||
<key>iostat[util,{#HDNAME}]</key>
|
|
||||||
<delay>30s</delay>
|
|
||||||
<history>1w</history>
|
|
||||||
<trends>365d</trends>
|
|
||||||
<status>0</status>
|
|
||||||
<value_type>0</value_type>
|
|
||||||
<allowed_hosts/>
|
|
||||||
<units>%</units>
|
|
||||||
<snmpv3_contextname/>
|
|
||||||
<snmpv3_securityname/>
|
|
||||||
<snmpv3_securitylevel>0</snmpv3_securitylevel>
|
|
||||||
<snmpv3_authprotocol>0</snmpv3_authprotocol>
|
|
||||||
<snmpv3_authpassphrase/>
|
|
||||||
<snmpv3_privprotocol>0</snmpv3_privprotocol>
|
|
||||||
<snmpv3_privpassphrase/>
|
|
||||||
<params/>
|
|
||||||
<ipmi_sensor/>
|
|
||||||
<authtype>0</authtype>
|
|
||||||
<username/>
|
|
||||||
<password/>
|
|
||||||
<publickey/>
|
|
||||||
<privatekey/>
|
|
||||||
<port/>
|
|
||||||
<description/>
|
|
||||||
<inventory_link>0</inventory_link>
|
|
||||||
<applications>
|
|
||||||
<application>
|
|
||||||
<name>iostat</name>
|
|
||||||
</application>
|
|
||||||
</applications>
|
|
||||||
<valuemap/>
|
|
||||||
<logtimefmt/>
|
|
||||||
<preprocessing/>
|
|
||||||
<jmx_endpoint/>
|
|
||||||
<application_prototypes/>
|
|
||||||
<master_item_prototype/>
|
|
||||||
</item_prototype>
|
|
||||||
<item_prototype>
|
|
||||||
<name>iostat: KBps $1 on $2</name>
|
|
||||||
<type>7</type>
|
|
||||||
<snmp_community/>
|
|
||||||
<snmp_oid/>
|
|
||||||
<key>iostat[write,{#HDNAME}]</key>
|
|
||||||
<delay>30s</delay>
|
|
||||||
<history>1w</history>
|
|
||||||
<trends>365d</trends>
|
|
||||||
<status>0</status>
|
|
||||||
<value_type>0</value_type>
|
|
||||||
<allowed_hosts/>
|
|
||||||
<units>Bps</units>
|
|
||||||
<snmpv3_contextname/>
|
|
||||||
<snmpv3_securityname/>
|
|
||||||
<snmpv3_securitylevel>0</snmpv3_securitylevel>
|
|
||||||
<snmpv3_authprotocol>0</snmpv3_authprotocol>
|
|
||||||
<snmpv3_authpassphrase/>
|
|
||||||
<snmpv3_privprotocol>0</snmpv3_privprotocol>
|
|
||||||
<snmpv3_privpassphrase/>
|
|
||||||
<params/>
|
|
||||||
<ipmi_sensor/>
|
|
||||||
<authtype>0</authtype>
|
|
||||||
<username/>
|
|
||||||
<password/>
|
|
||||||
<publickey/>
|
|
||||||
<privatekey/>
|
|
||||||
<port/>
|
|
||||||
<description/>
|
|
||||||
<inventory_link>0</inventory_link>
|
|
||||||
<applications>
|
|
||||||
<application>
|
|
||||||
<name>iostat</name>
|
|
||||||
</application>
|
|
||||||
</applications>
|
|
||||||
<valuemap/>
|
|
||||||
<logtimefmt/>
|
|
||||||
<preprocessing>
|
|
||||||
<step>
|
|
||||||
<type>10</type>
|
|
||||||
<params/>
|
|
||||||
</step>
|
|
||||||
<step>
|
|
||||||
<type>1</type>
|
|
||||||
<params>1024</params>
|
|
||||||
</step>
|
|
||||||
</preprocessing>
|
|
||||||
<jmx_endpoint/>
|
|
||||||
<application_prototypes/>
|
|
||||||
<master_item_prototype/>
|
|
||||||
</item_prototype>
|
|
||||||
<item_prototype>
|
|
||||||
<name>iostat: write req on $2</name>
|
|
||||||
<type>7</type>
|
|
||||||
<snmp_community/>
|
|
||||||
<snmp_oid/>
|
|
||||||
<key>iostat[ws,{#HDNAME}]</key>
|
|
||||||
<delay>30s</delay>
|
|
||||||
<history>1w</history>
|
|
||||||
<trends>365d</trends>
|
|
||||||
<status>0</status>
|
|
||||||
<value_type>0</value_type>
|
|
||||||
<allowed_hosts/>
|
|
||||||
<units>req</units>
|
|
||||||
<snmpv3_contextname/>
|
|
||||||
<snmpv3_securityname/>
|
|
||||||
<snmpv3_securitylevel>0</snmpv3_securitylevel>
|
|
||||||
<snmpv3_authprotocol>0</snmpv3_authprotocol>
|
|
||||||
<snmpv3_authpassphrase/>
|
|
||||||
<snmpv3_privprotocol>0</snmpv3_privprotocol>
|
|
||||||
<snmpv3_privpassphrase/>
|
|
||||||
<params/>
|
|
||||||
<ipmi_sensor/>
|
|
||||||
<authtype>0</authtype>
|
|
||||||
<username/>
|
|
||||||
<password/>
|
|
||||||
<publickey/>
|
|
||||||
<privatekey/>
|
|
||||||
<port/>
|
|
||||||
<description>Запросов на запись</description>
|
|
||||||
<inventory_link>0</inventory_link>
|
|
||||||
<applications>
|
|
||||||
<application>
|
|
||||||
<name>iostat</name>
|
|
||||||
</application>
|
|
||||||
</applications>
|
|
||||||
<valuemap/>
|
|
||||||
<logtimefmt/>
|
|
||||||
<preprocessing/>
|
|
||||||
<jmx_endpoint/>
|
|
||||||
<application_prototypes/>
|
|
||||||
<master_item_prototype/>
|
|
||||||
</item_prototype>
|
|
||||||
</item_prototypes>
|
|
||||||
<trigger_prototypes/>
|
|
||||||
<graph_prototypes>
|
|
||||||
<graph_prototype>
|
|
||||||
<name>iostat: {#HDNAME} speed</name>
|
|
||||||
<width>900</width>
|
|
||||||
<height>200</height>
|
|
||||||
<yaxismin>0.0000</yaxismin>
|
|
||||||
<yaxismax>100.0000</yaxismax>
|
|
||||||
<show_work_period>1</show_work_period>
|
|
||||||
<show_triggers>1</show_triggers>
|
|
||||||
<type>0</type>
|
|
||||||
<show_legend>1</show_legend>
|
|
||||||
<show_3d>0</show_3d>
|
|
||||||
<percent_left>0.0000</percent_left>
|
|
||||||
<percent_right>0.0000</percent_right>
|
|
||||||
<ymin_type_1>1</ymin_type_1>
|
|
||||||
<ymax_type_1>0</ymax_type_1>
|
|
||||||
<ymin_item_1>0</ymin_item_1>
|
|
||||||
<ymax_item_1>0</ymax_item_1>
|
|
||||||
<graph_items>
|
|
||||||
<graph_item>
|
|
||||||
<sortorder>0</sortorder>
|
|
||||||
<drawtype>0</drawtype>
|
|
||||||
<color>009900</color>
|
|
||||||
<yaxisside>0</yaxisside>
|
|
||||||
<calc_fnc>2</calc_fnc>
|
|
||||||
<type>0</type>
|
|
||||||
<item>
|
|
||||||
<host>mdm_iostat_agent active</host>
|
|
||||||
<key>iostat[read,{#HDNAME}]</key>
|
|
||||||
</item>
|
|
||||||
</graph_item>
|
|
||||||
<graph_item>
|
|
||||||
<sortorder>1</sortorder>
|
|
||||||
<drawtype>0</drawtype>
|
|
||||||
<color>DD0000</color>
|
|
||||||
<yaxisside>0</yaxisside>
|
|
||||||
<calc_fnc>2</calc_fnc>
|
|
||||||
<type>0</type>
|
|
||||||
<item>
|
|
||||||
<host>mdm_iostat_agent active</host>
|
|
||||||
<key>iostat[write,{#HDNAME}]</key>
|
|
||||||
</item>
|
|
||||||
</graph_item>
|
|
||||||
</graph_items>
|
|
||||||
</graph_prototype>
|
|
||||||
<graph_prototype>
|
|
||||||
<name>iostat: {#HDNAME} util</name>
|
|
||||||
<width>900</width>
|
|
||||||
<height>200</height>
|
|
||||||
<yaxismin>0.0000</yaxismin>
|
|
||||||
<yaxismax>100.0000</yaxismax>
|
|
||||||
<show_work_period>1</show_work_period>
|
|
||||||
<show_triggers>1</show_triggers>
|
|
||||||
<type>0</type>
|
|
||||||
<show_legend>1</show_legend>
|
|
||||||
<show_3d>0</show_3d>
|
|
||||||
<percent_left>0.0000</percent_left>
|
|
||||||
<percent_right>0.0000</percent_right>
|
|
||||||
<ymin_type_1>1</ymin_type_1>
|
|
||||||
<ymax_type_1>0</ymax_type_1>
|
|
||||||
<ymin_item_1>0</ymin_item_1>
|
|
||||||
<ymax_item_1>0</ymax_item_1>
|
|
||||||
<graph_items>
|
|
||||||
<graph_item>
|
|
||||||
<sortorder>0</sortorder>
|
|
||||||
<drawtype>0</drawtype>
|
|
||||||
<color>00EEEE</color>
|
|
||||||
<yaxisside>0</yaxisside>
|
|
||||||
<calc_fnc>2</calc_fnc>
|
|
||||||
<type>0</type>
|
|
||||||
<item>
|
|
||||||
<host>mdm_iostat_agent active</host>
|
|
||||||
<key>iostat[util,{#HDNAME}]</key>
|
|
||||||
</item>
|
|
||||||
</graph_item>
|
|
||||||
<graph_item>
|
|
||||||
<sortorder>1</sortorder>
|
|
||||||
<drawtype>0</drawtype>
|
|
||||||
<color>00DD00</color>
|
|
||||||
<yaxisside>1</yaxisside>
|
|
||||||
<calc_fnc>2</calc_fnc>
|
|
||||||
<type>0</type>
|
|
||||||
<item>
|
|
||||||
<host>mdm_iostat_agent active</host>
|
|
||||||
<key>iostat[rs,{#HDNAME}]</key>
|
|
||||||
</item>
|
|
||||||
</graph_item>
|
|
||||||
<graph_item>
|
|
||||||
<sortorder>2</sortorder>
|
|
||||||
<drawtype>0</drawtype>
|
|
||||||
<color>FF6666</color>
|
|
||||||
<yaxisside>1</yaxisside>
|
|
||||||
<calc_fnc>2</calc_fnc>
|
|
||||||
<type>0</type>
|
|
||||||
<item>
|
|
||||||
<host>mdm_iostat_agent active</host>
|
|
||||||
<key>iostat[ws,{#HDNAME}]</key>
|
|
||||||
</item>
|
|
||||||
</graph_item>
|
|
||||||
</graph_items>
|
|
||||||
</graph_prototype>
|
|
||||||
</graph_prototypes>
|
|
||||||
<host_prototypes/>
|
|
||||||
<jmx_endpoint/>
|
|
||||||
</discovery_rule>
|
|
||||||
</discovery_rules>
|
|
||||||
<httptests/>
|
|
||||||
<macros/>
|
|
||||||
<templates/>
|
|
||||||
<screens/>
|
|
||||||
</template>
|
|
||||||
</templates>
|
|
||||||
</zabbix_export>
|
|
||||||
@ -1,168 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<zabbix_export>
|
|
||||||
<version>3.4</version>
|
|
||||||
<date>2021-06-14T12:23:50Z</date>
|
|
||||||
<groups>
|
|
||||||
<group>
|
|
||||||
<name>MDM</name>
|
|
||||||
</group>
|
|
||||||
<group>
|
|
||||||
<name>Templates</name>
|
|
||||||
</group>
|
|
||||||
</groups>
|
|
||||||
<templates>
|
|
||||||
<template>
|
|
||||||
<template>mdm netstat connections active</template>
|
|
||||||
<name>mdm netstat connections active</name>
|
|
||||||
<description/>
|
|
||||||
<groups>
|
|
||||||
<group>
|
|
||||||
<name>MDM</name>
|
|
||||||
</group>
|
|
||||||
<group>
|
|
||||||
<name>Templates</name>
|
|
||||||
</group>
|
|
||||||
</groups>
|
|
||||||
<applications>
|
|
||||||
<application>
|
|
||||||
<name>Netstat</name>
|
|
||||||
</application>
|
|
||||||
</applications>
|
|
||||||
<items>
|
|
||||||
<item>
|
|
||||||
<name>Http established cons on 80 and 443 ports</name>
|
|
||||||
<type>7</type>
|
|
||||||
<snmp_community/>
|
|
||||||
<snmp_oid/>
|
|
||||||
<key>netstat-conn[established]</key>
|
|
||||||
<delay>1m</delay>
|
|
||||||
<history>1w</history>
|
|
||||||
<trends>365d</trends>
|
|
||||||
<status>0</status>
|
|
||||||
<value_type>3</value_type>
|
|
||||||
<allowed_hosts/>
|
|
||||||
<units>conn</units>
|
|
||||||
<snmpv3_contextname/>
|
|
||||||
<snmpv3_securityname/>
|
|
||||||
<snmpv3_securitylevel>0</snmpv3_securitylevel>
|
|
||||||
<snmpv3_authprotocol>0</snmpv3_authprotocol>
|
|
||||||
<snmpv3_authpassphrase/>
|
|
||||||
<snmpv3_privprotocol>0</snmpv3_privprotocol>
|
|
||||||
<snmpv3_privpassphrase/>
|
|
||||||
<params/>
|
|
||||||
<ipmi_sensor/>
|
|
||||||
<authtype>0</authtype>
|
|
||||||
<username/>
|
|
||||||
<password/>
|
|
||||||
<publickey/>
|
|
||||||
<privatekey/>
|
|
||||||
<port/>
|
|
||||||
<description/>
|
|
||||||
<inventory_link>0</inventory_link>
|
|
||||||
<applications>
|
|
||||||
<application>
|
|
||||||
<name>Netstat</name>
|
|
||||||
</application>
|
|
||||||
</applications>
|
|
||||||
<valuemap/>
|
|
||||||
<logtimefmt/>
|
|
||||||
<preprocessing/>
|
|
||||||
<jmx_endpoint/>
|
|
||||||
<master_item/>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<name>Http time waiting conns on 80 and 443 ports</name>
|
|
||||||
<type>7</type>
|
|
||||||
<snmp_community/>
|
|
||||||
<snmp_oid/>
|
|
||||||
<key>netstat-conn[time_wait]</key>
|
|
||||||
<delay>1m</delay>
|
|
||||||
<history>1w</history>
|
|
||||||
<trends>365d</trends>
|
|
||||||
<status>0</status>
|
|
||||||
<value_type>3</value_type>
|
|
||||||
<allowed_hosts/>
|
|
||||||
<units>conn</units>
|
|
||||||
<snmpv3_contextname/>
|
|
||||||
<snmpv3_securityname/>
|
|
||||||
<snmpv3_securitylevel>0</snmpv3_securitylevel>
|
|
||||||
<snmpv3_authprotocol>0</snmpv3_authprotocol>
|
|
||||||
<snmpv3_authpassphrase/>
|
|
||||||
<snmpv3_privprotocol>0</snmpv3_privprotocol>
|
|
||||||
<snmpv3_privpassphrase/>
|
|
||||||
<params/>
|
|
||||||
<ipmi_sensor/>
|
|
||||||
<authtype>0</authtype>
|
|
||||||
<username/>
|
|
||||||
<password/>
|
|
||||||
<publickey/>
|
|
||||||
<privatekey/>
|
|
||||||
<port/>
|
|
||||||
<description/>
|
|
||||||
<inventory_link>0</inventory_link>
|
|
||||||
<applications>
|
|
||||||
<application>
|
|
||||||
<name>Netstat</name>
|
|
||||||
</application>
|
|
||||||
</applications>
|
|
||||||
<valuemap/>
|
|
||||||
<logtimefmt/>
|
|
||||||
<preprocessing/>
|
|
||||||
<jmx_endpoint/>
|
|
||||||
<master_item/>
|
|
||||||
</item>
|
|
||||||
</items>
|
|
||||||
<discovery_rules/>
|
|
||||||
<httptests/>
|
|
||||||
<macros/>
|
|
||||||
<templates/>
|
|
||||||
<screens/>
|
|
||||||
</template>
|
|
||||||
</templates>
|
|
||||||
<graphs>
|
|
||||||
<graph>
|
|
||||||
<name>Netstat: connections on 80 and 443 ports</name>
|
|
||||||
<width>600</width>
|
|
||||||
<height>200</height>
|
|
||||||
<yaxismin>0.0000</yaxismin>
|
|
||||||
<yaxismax>100.0000</yaxismax>
|
|
||||||
<show_work_period>0</show_work_period>
|
|
||||||
<show_triggers>0</show_triggers>
|
|
||||||
<type>0</type>
|
|
||||||
<show_legend>1</show_legend>
|
|
||||||
<show_3d>0</show_3d>
|
|
||||||
<percent_left>0.0000</percent_left>
|
|
||||||
<percent_right>0.0000</percent_right>
|
|
||||||
<ymin_type_1>0</ymin_type_1>
|
|
||||||
<ymax_type_1>0</ymax_type_1>
|
|
||||||
<ymin_item_1>0</ymin_item_1>
|
|
||||||
<ymax_item_1>0</ymax_item_1>
|
|
||||||
<graph_items>
|
|
||||||
<graph_item>
|
|
||||||
<sortorder>0</sortorder>
|
|
||||||
<drawtype>2</drawtype>
|
|
||||||
<color>AA00AA</color>
|
|
||||||
<yaxisside>1</yaxisside>
|
|
||||||
<calc_fnc>2</calc_fnc>
|
|
||||||
<type>0</type>
|
|
||||||
<item>
|
|
||||||
<host>mdm netstat connections active</host>
|
|
||||||
<key>netstat-conn[established]</key>
|
|
||||||
</item>
|
|
||||||
</graph_item>
|
|
||||||
<graph_item>
|
|
||||||
<sortorder>1</sortorder>
|
|
||||||
<drawtype>0</drawtype>
|
|
||||||
<color>00DD00</color>
|
|
||||||
<yaxisside>1</yaxisside>
|
|
||||||
<calc_fnc>2</calc_fnc>
|
|
||||||
<type>0</type>
|
|
||||||
<item>
|
|
||||||
<host>mdm netstat connections active</host>
|
|
||||||
<key>netstat-conn[time_wait]</key>
|
|
||||||
</item>
|
|
||||||
</graph_item>
|
|
||||||
</graph_items>
|
|
||||||
</graph>
|
|
||||||
</graphs>
|
|
||||||
</zabbix_export>
|
|
||||||
@ -1,3 +0,0 @@
|
|||||||
#netstat connections status
|
|
||||||
# $1 METRIC
|
|
||||||
UserParameter=netstat-conn[*],/etc/zabbix/scripts/netstat_conn.sh "$1"
|
|
||||||
@ -1,39 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
#Netstat connections monitoring
|
|
||||||
|
|
||||||
METRIC="$1"
|
|
||||||
|
|
||||||
if [[ -z "$1" ]]; then
|
|
||||||
echo "Please enter metric"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
CACHETTL="55" # Время действия кеша в секундах (чуть меньше чем период опроса элементов)
|
|
||||||
CACHE="/tmp/netstat-status-`echo netstat| md5sum | cut -d" " -f1`.cache"
|
|
||||||
|
|
||||||
if [ -s "$CACHE" ]; then
|
|
||||||
TIMECACHE=`stat -c"%Z" "$CACHE"`
|
|
||||||
else
|
|
||||||
TIMECACHE=0
|
|
||||||
fi
|
|
||||||
|
|
||||||
TIMENOW=`date '+%s'`
|
|
||||||
|
|
||||||
if [ "$(($TIMENOW - $TIMECACHE))" -gt "$CACHETTL" ]; then
|
|
||||||
netstat -tan|grep -e ':80\|:443' > $CACHE || exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
case $METRIC in
|
|
||||||
'established')
|
|
||||||
cat $CACHE | grep "ESTABLISHED" | wc -l
|
|
||||||
;;
|
|
||||||
'time_wait')
|
|
||||||
cat $CACHE | grep "TIME_WAIT" | wc -l
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
echo "Not selected metric"
|
|
||||||
exit 0
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
@ -1,607 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<zabbix_export>
|
|
||||||
<version>3.4</version>
|
|
||||||
<date>2021-06-14T11:47:45Z</date>
|
|
||||||
<groups>
|
|
||||||
<group>
|
|
||||||
<name>MDM</name>
|
|
||||||
</group>
|
|
||||||
<group>
|
|
||||||
<name>MyTemplates</name>
|
|
||||||
</group>
|
|
||||||
</groups>
|
|
||||||
<templates>
|
|
||||||
<template>
|
|
||||||
<template>mdm_nginx_agent active</template>
|
|
||||||
<name>mdm_nginx_agent active</name>
|
|
||||||
<description/>
|
|
||||||
<groups>
|
|
||||||
<group>
|
|
||||||
<name>MDM</name>
|
|
||||||
</group>
|
|
||||||
<group>
|
|
||||||
<name>MyTemplates</name>
|
|
||||||
</group>
|
|
||||||
</groups>
|
|
||||||
<applications>
|
|
||||||
<application>
|
|
||||||
<name>Nginx</name>
|
|
||||||
</application>
|
|
||||||
</applications>
|
|
||||||
<items>
|
|
||||||
<item>
|
|
||||||
<name>Nginx: connections accepted per sec</name>
|
|
||||||
<type>7</type>
|
|
||||||
<snmp_community/>
|
|
||||||
<snmp_oid/>
|
|
||||||
<key>nginx[accepts,{$NGINX_STATS_URL}]</key>
|
|
||||||
<delay>1m</delay>
|
|
||||||
<history>1w</history>
|
|
||||||
<trends>365d</trends>
|
|
||||||
<status>0</status>
|
|
||||||
<value_type>0</value_type>
|
|
||||||
<allowed_hosts/>
|
|
||||||
<units>c/sec</units>
|
|
||||||
<snmpv3_contextname/>
|
|
||||||
<snmpv3_securityname/>
|
|
||||||
<snmpv3_securitylevel>0</snmpv3_securitylevel>
|
|
||||||
<snmpv3_authprotocol>0</snmpv3_authprotocol>
|
|
||||||
<snmpv3_authpassphrase/>
|
|
||||||
<snmpv3_privprotocol>0</snmpv3_privprotocol>
|
|
||||||
<snmpv3_privpassphrase/>
|
|
||||||
<params/>
|
|
||||||
<ipmi_sensor/>
|
|
||||||
<authtype>0</authtype>
|
|
||||||
<username/>
|
|
||||||
<password/>
|
|
||||||
<publickey/>
|
|
||||||
<privatekey/>
|
|
||||||
<port/>
|
|
||||||
<description/>
|
|
||||||
<inventory_link>0</inventory_link>
|
|
||||||
<applications>
|
|
||||||
<application>
|
|
||||||
<name>Nginx</name>
|
|
||||||
</application>
|
|
||||||
</applications>
|
|
||||||
<valuemap/>
|
|
||||||
<logtimefmt/>
|
|
||||||
<preprocessing>
|
|
||||||
<step>
|
|
||||||
<type>10</type>
|
|
||||||
<params/>
|
|
||||||
</step>
|
|
||||||
</preprocessing>
|
|
||||||
<jmx_endpoint/>
|
|
||||||
<master_item/>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<name>Nginx: connects active</name>
|
|
||||||
<type>7</type>
|
|
||||||
<snmp_community>public</snmp_community>
|
|
||||||
<snmp_oid>interfaces.ifTable.ifEntry.ifInOctets.1</snmp_oid>
|
|
||||||
<key>nginx[active,{$NGINX_STATS_URL}]</key>
|
|
||||||
<delay>1m</delay>
|
|
||||||
<history>1w</history>
|
|
||||||
<trends>365d</trends>
|
|
||||||
<status>0</status>
|
|
||||||
<value_type>3</value_type>
|
|
||||||
<allowed_hosts/>
|
|
||||||
<units/>
|
|
||||||
<snmpv3_contextname/>
|
|
||||||
<snmpv3_securityname/>
|
|
||||||
<snmpv3_securitylevel>0</snmpv3_securitylevel>
|
|
||||||
<snmpv3_authprotocol>0</snmpv3_authprotocol>
|
|
||||||
<snmpv3_authpassphrase/>
|
|
||||||
<snmpv3_privprotocol>0</snmpv3_privprotocol>
|
|
||||||
<snmpv3_privpassphrase/>
|
|
||||||
<params/>
|
|
||||||
<ipmi_sensor/>
|
|
||||||
<authtype>0</authtype>
|
|
||||||
<username/>
|
|
||||||
<password/>
|
|
||||||
<publickey/>
|
|
||||||
<privatekey/>
|
|
||||||
<port/>
|
|
||||||
<description/>
|
|
||||||
<inventory_link>0</inventory_link>
|
|
||||||
<applications>
|
|
||||||
<application>
|
|
||||||
<name>Nginx</name>
|
|
||||||
</application>
|
|
||||||
</applications>
|
|
||||||
<valuemap/>
|
|
||||||
<logtimefmt/>
|
|
||||||
<preprocessing/>
|
|
||||||
<jmx_endpoint/>
|
|
||||||
<master_item/>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<name>Nginx: connections handled per sec</name>
|
|
||||||
<type>7</type>
|
|
||||||
<snmp_community/>
|
|
||||||
<snmp_oid/>
|
|
||||||
<key>nginx[handled,{$NGINX_STATS_URL}]</key>
|
|
||||||
<delay>1m</delay>
|
|
||||||
<history>1w</history>
|
|
||||||
<trends>365d</trends>
|
|
||||||
<status>0</status>
|
|
||||||
<value_type>0</value_type>
|
|
||||||
<allowed_hosts/>
|
|
||||||
<units>c/sec</units>
|
|
||||||
<snmpv3_contextname/>
|
|
||||||
<snmpv3_securityname/>
|
|
||||||
<snmpv3_securitylevel>0</snmpv3_securitylevel>
|
|
||||||
<snmpv3_authprotocol>0</snmpv3_authprotocol>
|
|
||||||
<snmpv3_authpassphrase/>
|
|
||||||
<snmpv3_privprotocol>0</snmpv3_privprotocol>
|
|
||||||
<snmpv3_privpassphrase/>
|
|
||||||
<params/>
|
|
||||||
<ipmi_sensor/>
|
|
||||||
<authtype>0</authtype>
|
|
||||||
<username/>
|
|
||||||
<password/>
|
|
||||||
<publickey/>
|
|
||||||
<privatekey/>
|
|
||||||
<port/>
|
|
||||||
<description/>
|
|
||||||
<inventory_link>0</inventory_link>
|
|
||||||
<applications>
|
|
||||||
<application>
|
|
||||||
<name>Nginx</name>
|
|
||||||
</application>
|
|
||||||
</applications>
|
|
||||||
<valuemap/>
|
|
||||||
<logtimefmt/>
|
|
||||||
<preprocessing>
|
|
||||||
<step>
|
|
||||||
<type>10</type>
|
|
||||||
<params/>
|
|
||||||
</step>
|
|
||||||
</preprocessing>
|
|
||||||
<jmx_endpoint/>
|
|
||||||
<master_item/>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<name>Nginx: connections reading</name>
|
|
||||||
<type>7</type>
|
|
||||||
<snmp_community>public</snmp_community>
|
|
||||||
<snmp_oid>interfaces.ifTable.ifEntry.ifInOctets.1</snmp_oid>
|
|
||||||
<key>nginx[reading,{$NGINX_STATS_URL}]</key>
|
|
||||||
<delay>1m</delay>
|
|
||||||
<history>1w</history>
|
|
||||||
<trends>365d</trends>
|
|
||||||
<status>0</status>
|
|
||||||
<value_type>3</value_type>
|
|
||||||
<allowed_hosts/>
|
|
||||||
<units/>
|
|
||||||
<snmpv3_contextname/>
|
|
||||||
<snmpv3_securityname/>
|
|
||||||
<snmpv3_securitylevel>0</snmpv3_securitylevel>
|
|
||||||
<snmpv3_authprotocol>0</snmpv3_authprotocol>
|
|
||||||
<snmpv3_authpassphrase/>
|
|
||||||
<snmpv3_privprotocol>0</snmpv3_privprotocol>
|
|
||||||
<snmpv3_privpassphrase/>
|
|
||||||
<params/>
|
|
||||||
<ipmi_sensor/>
|
|
||||||
<authtype>0</authtype>
|
|
||||||
<username/>
|
|
||||||
<password/>
|
|
||||||
<publickey/>
|
|
||||||
<privatekey/>
|
|
||||||
<port/>
|
|
||||||
<description/>
|
|
||||||
<inventory_link>0</inventory_link>
|
|
||||||
<applications>
|
|
||||||
<application>
|
|
||||||
<name>Nginx</name>
|
|
||||||
</application>
|
|
||||||
</applications>
|
|
||||||
<valuemap/>
|
|
||||||
<logtimefmt/>
|
|
||||||
<preprocessing/>
|
|
||||||
<jmx_endpoint/>
|
|
||||||
<master_item/>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<name>Nginx: requests per sec</name>
|
|
||||||
<type>7</type>
|
|
||||||
<snmp_community/>
|
|
||||||
<snmp_oid/>
|
|
||||||
<key>nginx[requests,{$NGINX_STATS_URL}]</key>
|
|
||||||
<delay>1m</delay>
|
|
||||||
<history>1w</history>
|
|
||||||
<trends>365d</trends>
|
|
||||||
<status>0</status>
|
|
||||||
<value_type>0</value_type>
|
|
||||||
<allowed_hosts/>
|
|
||||||
<units>r/sec</units>
|
|
||||||
<snmpv3_contextname/>
|
|
||||||
<snmpv3_securityname/>
|
|
||||||
<snmpv3_securitylevel>0</snmpv3_securitylevel>
|
|
||||||
<snmpv3_authprotocol>0</snmpv3_authprotocol>
|
|
||||||
<snmpv3_authpassphrase/>
|
|
||||||
<snmpv3_privprotocol>0</snmpv3_privprotocol>
|
|
||||||
<snmpv3_privpassphrase/>
|
|
||||||
<params/>
|
|
||||||
<ipmi_sensor/>
|
|
||||||
<authtype>0</authtype>
|
|
||||||
<username/>
|
|
||||||
<password/>
|
|
||||||
<publickey/>
|
|
||||||
<privatekey/>
|
|
||||||
<port/>
|
|
||||||
<description/>
|
|
||||||
<inventory_link>0</inventory_link>
|
|
||||||
<applications>
|
|
||||||
<application>
|
|
||||||
<name>Nginx</name>
|
|
||||||
</application>
|
|
||||||
</applications>
|
|
||||||
<valuemap/>
|
|
||||||
<logtimefmt/>
|
|
||||||
<preprocessing>
|
|
||||||
<step>
|
|
||||||
<type>10</type>
|
|
||||||
<params/>
|
|
||||||
</step>
|
|
||||||
</preprocessing>
|
|
||||||
<jmx_endpoint/>
|
|
||||||
<master_item/>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<name>Nginx: connections waiting</name>
|
|
||||||
<type>7</type>
|
|
||||||
<snmp_community>public</snmp_community>
|
|
||||||
<snmp_oid>interfaces.ifTable.ifEntry.ifInOctets.1</snmp_oid>
|
|
||||||
<key>nginx[waiting,{$NGINX_STATS_URL}]</key>
|
|
||||||
<delay>1m</delay>
|
|
||||||
<history>1w</history>
|
|
||||||
<trends>365d</trends>
|
|
||||||
<status>0</status>
|
|
||||||
<value_type>3</value_type>
|
|
||||||
<allowed_hosts/>
|
|
||||||
<units/>
|
|
||||||
<snmpv3_contextname/>
|
|
||||||
<snmpv3_securityname/>
|
|
||||||
<snmpv3_securitylevel>0</snmpv3_securitylevel>
|
|
||||||
<snmpv3_authprotocol>0</snmpv3_authprotocol>
|
|
||||||
<snmpv3_authpassphrase/>
|
|
||||||
<snmpv3_privprotocol>0</snmpv3_privprotocol>
|
|
||||||
<snmpv3_privpassphrase/>
|
|
||||||
<params/>
|
|
||||||
<ipmi_sensor/>
|
|
||||||
<authtype>0</authtype>
|
|
||||||
<username/>
|
|
||||||
<password/>
|
|
||||||
<publickey/>
|
|
||||||
<privatekey/>
|
|
||||||
<port/>
|
|
||||||
<description/>
|
|
||||||
<inventory_link>0</inventory_link>
|
|
||||||
<applications>
|
|
||||||
<application>
|
|
||||||
<name>Nginx</name>
|
|
||||||
</application>
|
|
||||||
</applications>
|
|
||||||
<valuemap/>
|
|
||||||
<logtimefmt/>
|
|
||||||
<preprocessing/>
|
|
||||||
<jmx_endpoint/>
|
|
||||||
<master_item/>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<name>Nginx: connections writing</name>
|
|
||||||
<type>7</type>
|
|
||||||
<snmp_community>public</snmp_community>
|
|
||||||
<snmp_oid>interfaces.ifTable.ifEntry.ifInOctets.1</snmp_oid>
|
|
||||||
<key>nginx[writing,{$NGINX_STATS_URL}]</key>
|
|
||||||
<delay>1m</delay>
|
|
||||||
<history>1w</history>
|
|
||||||
<trends>365d</trends>
|
|
||||||
<status>0</status>
|
|
||||||
<value_type>3</value_type>
|
|
||||||
<allowed_hosts/>
|
|
||||||
<units/>
|
|
||||||
<snmpv3_contextname/>
|
|
||||||
<snmpv3_securityname/>
|
|
||||||
<snmpv3_securitylevel>0</snmpv3_securitylevel>
|
|
||||||
<snmpv3_authprotocol>0</snmpv3_authprotocol>
|
|
||||||
<snmpv3_authpassphrase/>
|
|
||||||
<snmpv3_privprotocol>0</snmpv3_privprotocol>
|
|
||||||
<snmpv3_privpassphrase/>
|
|
||||||
<params/>
|
|
||||||
<ipmi_sensor/>
|
|
||||||
<authtype>0</authtype>
|
|
||||||
<username/>
|
|
||||||
<password/>
|
|
||||||
<publickey/>
|
|
||||||
<privatekey/>
|
|
||||||
<port/>
|
|
||||||
<description/>
|
|
||||||
<inventory_link>0</inventory_link>
|
|
||||||
<applications>
|
|
||||||
<application>
|
|
||||||
<name>Nginx</name>
|
|
||||||
</application>
|
|
||||||
</applications>
|
|
||||||
<valuemap/>
|
|
||||||
<logtimefmt/>
|
|
||||||
<preprocessing/>
|
|
||||||
<jmx_endpoint/>
|
|
||||||
<master_item/>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<name>Nginx: Number of processes $1</name>
|
|
||||||
<type>7</type>
|
|
||||||
<snmp_community/>
|
|
||||||
<snmp_oid/>
|
|
||||||
<key>proc.num[nginx]</key>
|
|
||||||
<delay>1m</delay>
|
|
||||||
<history>1w</history>
|
|
||||||
<trends>365d</trends>
|
|
||||||
<status>0</status>
|
|
||||||
<value_type>3</value_type>
|
|
||||||
<allowed_hosts/>
|
|
||||||
<units/>
|
|
||||||
<snmpv3_contextname/>
|
|
||||||
<snmpv3_securityname/>
|
|
||||||
<snmpv3_securitylevel>0</snmpv3_securitylevel>
|
|
||||||
<snmpv3_authprotocol>0</snmpv3_authprotocol>
|
|
||||||
<snmpv3_authpassphrase/>
|
|
||||||
<snmpv3_privprotocol>0</snmpv3_privprotocol>
|
|
||||||
<snmpv3_privpassphrase/>
|
|
||||||
<params/>
|
|
||||||
<ipmi_sensor/>
|
|
||||||
<authtype>0</authtype>
|
|
||||||
<username/>
|
|
||||||
<password/>
|
|
||||||
<publickey/>
|
|
||||||
<privatekey/>
|
|
||||||
<port/>
|
|
||||||
<description/>
|
|
||||||
<inventory_link>0</inventory_link>
|
|
||||||
<applications>
|
|
||||||
<application>
|
|
||||||
<name>Nginx</name>
|
|
||||||
</application>
|
|
||||||
</applications>
|
|
||||||
<valuemap/>
|
|
||||||
<logtimefmt/>
|
|
||||||
<preprocessing/>
|
|
||||||
<jmx_endpoint/>
|
|
||||||
<master_item/>
|
|
||||||
</item>
|
|
||||||
</items>
|
|
||||||
<discovery_rules/>
|
|
||||||
<httptests/>
|
|
||||||
<macros/>
|
|
||||||
<templates/>
|
|
||||||
<screens/>
|
|
||||||
</template>
|
|
||||||
</templates>
|
|
||||||
<triggers>
|
|
||||||
<trigger>
|
|
||||||
<expression>{mdm_nginx_agent active:nginx[active,{$NGINX_STATS_URL}].last(0)}>{$NGINX_CON_NUM}</expression>
|
|
||||||
<recovery_mode>0</recovery_mode>
|
|
||||||
<recovery_expression/>
|
|
||||||
<name>Nginx: many active connections on {HOST.NAME}</name>
|
|
||||||
<correlation_mode>0</correlation_mode>
|
|
||||||
<correlation_tag/>
|
|
||||||
<url/>
|
|
||||||
<status>0</status>
|
|
||||||
<priority>2</priority>
|
|
||||||
<description/>
|
|
||||||
<type>0</type>
|
|
||||||
<manual_close>0</manual_close>
|
|
||||||
<dependencies/>
|
|
||||||
<tags/>
|
|
||||||
</trigger>
|
|
||||||
<trigger>
|
|
||||||
<expression>{mdm_nginx_agent active:nginx[requests,{$NGINX_STATS_URL}].avg(240)}>{$NGINX_REQ_NUM}</expression>
|
|
||||||
<recovery_mode>0</recovery_mode>
|
|
||||||
<recovery_expression/>
|
|
||||||
<name>Nginx: many requests on {HOST.NAME}</name>
|
|
||||||
<correlation_mode>0</correlation_mode>
|
|
||||||
<correlation_tag/>
|
|
||||||
<url/>
|
|
||||||
<status>0</status>
|
|
||||||
<priority>2</priority>
|
|
||||||
<description/>
|
|
||||||
<type>0</type>
|
|
||||||
<manual_close>0</manual_close>
|
|
||||||
<dependencies>
|
|
||||||
<dependency>
|
|
||||||
<name>Nginx: too many requests on {HOST.NAME}</name>
|
|
||||||
<expression>{mdm_nginx_agent active:nginx[requests,{$NGINX_STATS_URL}].avg(240)}>{$NGINX_REQ_NUM}*1.5</expression>
|
|
||||||
<recovery_expression/>
|
|
||||||
</dependency>
|
|
||||||
</dependencies>
|
|
||||||
<tags/>
|
|
||||||
</trigger>
|
|
||||||
<trigger>
|
|
||||||
<expression>{mdm_nginx_agent active:nginx[requests,{$NGINX_STATS_URL}].last(0)}>{$NGINX_REQ_NUM}</expression>
|
|
||||||
<recovery_mode>0</recovery_mode>
|
|
||||||
<recovery_expression/>
|
|
||||||
<name>Nginx: many requests on {HOSTNAME}</name>
|
|
||||||
<correlation_mode>0</correlation_mode>
|
|
||||||
<correlation_tag/>
|
|
||||||
<url/>
|
|
||||||
<status>0</status>
|
|
||||||
<priority>2</priority>
|
|
||||||
<description/>
|
|
||||||
<type>0</type>
|
|
||||||
<manual_close>0</manual_close>
|
|
||||||
<dependencies>
|
|
||||||
<dependency>
|
|
||||||
<name>Nginx: too many requests on {HOSTNAME}</name>
|
|
||||||
<expression>{mdm_nginx_agent active:nginx[requests,{$NGINX_STATS_URL}].last(0)}>{$NGINX_REQ_NUM}*1.3</expression>
|
|
||||||
<recovery_expression/>
|
|
||||||
</dependency>
|
|
||||||
</dependencies>
|
|
||||||
<tags/>
|
|
||||||
</trigger>
|
|
||||||
<trigger>
|
|
||||||
<expression>{mdm_nginx_agent active:proc.num[nginx].last(0)}<1</expression>
|
|
||||||
<recovery_mode>0</recovery_mode>
|
|
||||||
<recovery_expression/>
|
|
||||||
<name>Nginx: nginx is not running on {HOST.NAME}</name>
|
|
||||||
<correlation_mode>0</correlation_mode>
|
|
||||||
<correlation_tag/>
|
|
||||||
<url/>
|
|
||||||
<status>0</status>
|
|
||||||
<priority>5</priority>
|
|
||||||
<description/>
|
|
||||||
<type>0</type>
|
|
||||||
<manual_close>0</manual_close>
|
|
||||||
<dependencies/>
|
|
||||||
<tags/>
|
|
||||||
</trigger>
|
|
||||||
<trigger>
|
|
||||||
<expression>{mdm_nginx_agent active:nginx[requests,{$NGINX_STATS_URL}].avg(240)}>{$NGINX_REQ_NUM}*1.5</expression>
|
|
||||||
<recovery_mode>0</recovery_mode>
|
|
||||||
<recovery_expression/>
|
|
||||||
<name>Nginx: too many requests on {HOST.NAME}</name>
|
|
||||||
<correlation_mode>0</correlation_mode>
|
|
||||||
<correlation_tag/>
|
|
||||||
<url/>
|
|
||||||
<status>0</status>
|
|
||||||
<priority>3</priority>
|
|
||||||
<description/>
|
|
||||||
<type>0</type>
|
|
||||||
<manual_close>0</manual_close>
|
|
||||||
<dependencies/>
|
|
||||||
<tags/>
|
|
||||||
</trigger>
|
|
||||||
<trigger>
|
|
||||||
<expression>{mdm_nginx_agent active:nginx[requests,{$NGINX_STATS_URL}].last(0)}>{$NGINX_REQ_NUM}*1.3</expression>
|
|
||||||
<recovery_mode>0</recovery_mode>
|
|
||||||
<recovery_expression/>
|
|
||||||
<name>Nginx: too many requests on {HOSTNAME}</name>
|
|
||||||
<correlation_mode>0</correlation_mode>
|
|
||||||
<correlation_tag/>
|
|
||||||
<url/>
|
|
||||||
<status>0</status>
|
|
||||||
<priority>3</priority>
|
|
||||||
<description/>
|
|
||||||
<type>0</type>
|
|
||||||
<manual_close>0</manual_close>
|
|
||||||
<dependencies/>
|
|
||||||
<tags/>
|
|
||||||
</trigger>
|
|
||||||
</triggers>
|
|
||||||
<graphs>
|
|
||||||
<graph>
|
|
||||||
<name>Nginx: Connections</name>
|
|
||||||
<width>600</width>
|
|
||||||
<height>200</height>
|
|
||||||
<yaxismin>0.0000</yaxismin>
|
|
||||||
<yaxismax>100.0000</yaxismax>
|
|
||||||
<show_work_period>0</show_work_period>
|
|
||||||
<show_triggers>1</show_triggers>
|
|
||||||
<type>0</type>
|
|
||||||
<show_legend>1</show_legend>
|
|
||||||
<show_3d>0</show_3d>
|
|
||||||
<percent_left>0.0000</percent_left>
|
|
||||||
<percent_right>0.0000</percent_right>
|
|
||||||
<ymin_type_1>0</ymin_type_1>
|
|
||||||
<ymax_type_1>0</ymax_type_1>
|
|
||||||
<ymin_item_1>0</ymin_item_1>
|
|
||||||
<ymax_item_1>0</ymax_item_1>
|
|
||||||
<graph_items>
|
|
||||||
<graph_item>
|
|
||||||
<sortorder>0</sortorder>
|
|
||||||
<drawtype>4</drawtype>
|
|
||||||
<color>3333FF</color>
|
|
||||||
<yaxisside>1</yaxisside>
|
|
||||||
<calc_fnc>2</calc_fnc>
|
|
||||||
<type>0</type>
|
|
||||||
<item>
|
|
||||||
<host>mdm_nginx_agent active</host>
|
|
||||||
<key>nginx[active,{$NGINX_STATS_URL}]</key>
|
|
||||||
</item>
|
|
||||||
</graph_item>
|
|
||||||
<graph_item>
|
|
||||||
<sortorder>1</sortorder>
|
|
||||||
<drawtype>0</drawtype>
|
|
||||||
<color>FF6666</color>
|
|
||||||
<yaxisside>1</yaxisside>
|
|
||||||
<calc_fnc>2</calc_fnc>
|
|
||||||
<type>0</type>
|
|
||||||
<item>
|
|
||||||
<host>mdm_nginx_agent active</host>
|
|
||||||
<key>nginx[writing,{$NGINX_STATS_URL}]</key>
|
|
||||||
</item>
|
|
||||||
</graph_item>
|
|
||||||
<graph_item>
|
|
||||||
<sortorder>2</sortorder>
|
|
||||||
<drawtype>0</drawtype>
|
|
||||||
<color>EEEE00</color>
|
|
||||||
<yaxisside>1</yaxisside>
|
|
||||||
<calc_fnc>2</calc_fnc>
|
|
||||||
<type>0</type>
|
|
||||||
<item>
|
|
||||||
<host>mdm_nginx_agent active</host>
|
|
||||||
<key>nginx[reading,{$NGINX_STATS_URL}]</key>
|
|
||||||
</item>
|
|
||||||
</graph_item>
|
|
||||||
<graph_item>
|
|
||||||
<sortorder>3</sortorder>
|
|
||||||
<drawtype>0</drawtype>
|
|
||||||
<color>00CC00</color>
|
|
||||||
<yaxisside>1</yaxisside>
|
|
||||||
<calc_fnc>2</calc_fnc>
|
|
||||||
<type>0</type>
|
|
||||||
<item>
|
|
||||||
<host>mdm_nginx_agent active</host>
|
|
||||||
<key>nginx[waiting,{$NGINX_STATS_URL}]</key>
|
|
||||||
</item>
|
|
||||||
</graph_item>
|
|
||||||
</graph_items>
|
|
||||||
</graph>
|
|
||||||
<graph>
|
|
||||||
<name>Nginx: Requests</name>
|
|
||||||
<width>600</width>
|
|
||||||
<height>200</height>
|
|
||||||
<yaxismin>0.0000</yaxismin>
|
|
||||||
<yaxismax>100.0000</yaxismax>
|
|
||||||
<show_work_period>0</show_work_period>
|
|
||||||
<show_triggers>1</show_triggers>
|
|
||||||
<type>0</type>
|
|
||||||
<show_legend>1</show_legend>
|
|
||||||
<show_3d>0</show_3d>
|
|
||||||
<percent_left>0.0000</percent_left>
|
|
||||||
<percent_right>0.0000</percent_right>
|
|
||||||
<ymin_type_1>0</ymin_type_1>
|
|
||||||
<ymax_type_1>0</ymax_type_1>
|
|
||||||
<ymin_item_1>0</ymin_item_1>
|
|
||||||
<ymax_item_1>0</ymax_item_1>
|
|
||||||
<graph_items>
|
|
||||||
<graph_item>
|
|
||||||
<sortorder>1</sortorder>
|
|
||||||
<drawtype>5</drawtype>
|
|
||||||
<color>FF3333</color>
|
|
||||||
<yaxisside>1</yaxisside>
|
|
||||||
<calc_fnc>2</calc_fnc>
|
|
||||||
<type>0</type>
|
|
||||||
<item>
|
|
||||||
<host>mdm_nginx_agent active</host>
|
|
||||||
<key>nginx[requests,{$NGINX_STATS_URL}]</key>
|
|
||||||
</item>
|
|
||||||
</graph_item>
|
|
||||||
<graph_item>
|
|
||||||
<sortorder>2</sortorder>
|
|
||||||
<drawtype>2</drawtype>
|
|
||||||
<color>00EE00</color>
|
|
||||||
<yaxisside>1</yaxisside>
|
|
||||||
<calc_fnc>2</calc_fnc>
|
|
||||||
<type>0</type>
|
|
||||||
<item>
|
|
||||||
<host>mdm_nginx_agent active</host>
|
|
||||||
<key>nginx[accepts,{$NGINX_STATS_URL}]</key>
|
|
||||||
</item>
|
|
||||||
</graph_item>
|
|
||||||
</graph_items>
|
|
||||||
</graph>
|
|
||||||
</graphs>
|
|
||||||
</zabbix_export>
|
|
||||||
@ -1,2 +0,0 @@
|
|||||||
UserParameter=nginx[*],/etc/zabbix/scripts/nginx-stats.sh "none" "$1" "$2"
|
|
||||||
|
|
||||||
@ -1,54 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
##### OPTIONS VERIFICATION #####
|
|
||||||
if [[ -z "$1" || -z "$2" || -z "$3" ]]; then
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
##### PARAMETERS #####
|
|
||||||
RESERVED="$1"
|
|
||||||
METRIC="$2"
|
|
||||||
STATSURL="$3"
|
|
||||||
CURL="/usr/bin/curl"
|
|
||||||
CACHE_TTL="55"
|
|
||||||
CACHE_FILE="/tmp/zabbix.nginx.`echo $STATSURL | md5sum | cut -d" " -f1`.cache"
|
|
||||||
EXEC_TIMEOUT="1"
|
|
||||||
NOW_TIME=`date '+%s'`
|
|
||||||
##### RUN #####
|
|
||||||
if [ -s "${CACHE_FILE}" ]; then
|
|
||||||
CACHE_TIME=`stat -c"%Y" "${CACHE_FILE}"`
|
|
||||||
else
|
|
||||||
CACHE_TIME=0
|
|
||||||
fi
|
|
||||||
DELTA_TIME=$((${NOW_TIME} - ${CACHE_TIME}))
|
|
||||||
#
|
|
||||||
if [ ${DELTA_TIME} -lt ${EXEC_TIMEOUT} ]; then
|
|
||||||
sleep $((${EXEC_TIMEOUT} - ${DELTA_TIME}))
|
|
||||||
elif [ ${DELTA_TIME} -gt ${CACHE_TTL} ]; then
|
|
||||||
echo "" >> "${CACHE_FILE}" # !!!
|
|
||||||
DATACACHE=`${CURL} --insecure -s "${STATSURL}" 2>&1`
|
|
||||||
echo "${DATACACHE}" > "${CACHE_FILE}" # !!!
|
|
||||||
chmod 640 "${CACHE_FILE}"
|
|
||||||
fi
|
|
||||||
#
|
|
||||||
if [ "${METRIC}" = "active" ]; then
|
|
||||||
cat "${CACHE_FILE}" | grep "Active connections" | cut -d':' -f2
|
|
||||||
fi
|
|
||||||
if [ "${METRIC}" = "accepts" ]; then
|
|
||||||
cat "${CACHE_FILE}" | sed -n '3p' | cut -d" " -f2
|
|
||||||
fi
|
|
||||||
if [ "${METRIC}" = "handled" ]; then
|
|
||||||
cat "${CACHE_FILE}" | sed -n '3p' | cut -d" " -f3
|
|
||||||
fi
|
|
||||||
if [ "${METRIC}" = "requests" ]; then
|
|
||||||
cat "${CACHE_FILE}" | sed -n '3p' | cut -d" " -f4
|
|
||||||
fi
|
|
||||||
if [ "${METRIC}" = "reading" ]; then
|
|
||||||
cat "${CACHE_FILE}" | grep "Reading" | cut -d':' -f2 | cut -d' ' -f2
|
|
||||||
fi
|
|
||||||
if [ "${METRIC}" = "writing" ]; then
|
|
||||||
cat "${CACHE_FILE}" | grep "Writing" | cut -d':' -f3 | cut -d' ' -f2
|
|
||||||
fi
|
|
||||||
if [ "${METRIC}" = "waiting" ]; then
|
|
||||||
cat "${CACHE_FILE}" | grep "Waiting" | cut -d':' -f4 | cut -d' ' -f2
|
|
||||||
fi
|
|
||||||
#
|
|
||||||
exit 0
|
|
||||||
@ -1,5 +0,0 @@
|
|||||||
#php-fpm status
|
|
||||||
# $1 METRIC
|
|
||||||
# $2 FPM URL
|
|
||||||
# $3 FPM PORT
|
|
||||||
UserParameter=php-fpm[*],/etc/zabbix/scripts/fpm-status.sh "$1" "$2" "$3"
|
|
||||||
@ -1,80 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
##### OPTIONS VERIFICATION #####
|
|
||||||
if [ -z "$1" ]; then
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
##### PARAMETERS #####
|
|
||||||
METRIC="$1"
|
|
||||||
POOL_PORT="${3:-9001}"
|
|
||||||
STATSURL="${2:-http://localhost/fpm-status?port=$POOL_PORT}"
|
|
||||||
CURL="/usr/bin/curl"
|
|
||||||
CACHE_TTL="55"
|
|
||||||
CACHE_FILE="/tmp/zabbix.fpm-status.`echo $STATSURL | md5sum | cut -d" " -f1`.cache"
|
|
||||||
EXEC_TIMEOUT="1"
|
|
||||||
NOW_TIME=`date '+%s'`
|
|
||||||
##### RUN #####
|
|
||||||
if [ -s "${CACHE_FILE}" ]; then
|
|
||||||
CACHE_TIME=`stat -c"%Y" "${CACHE_FILE}"`
|
|
||||||
else
|
|
||||||
CACHE_TIME=0
|
|
||||||
fi
|
|
||||||
DELTA_TIME=$((${NOW_TIME} - ${CACHE_TIME}))
|
|
||||||
#
|
|
||||||
if [ ${DELTA_TIME} -lt ${EXEC_TIMEOUT} ]; then
|
|
||||||
sleep $((${EXEC_TIMEOUT} - ${DELTA_TIME}))
|
|
||||||
elif [ ${DELTA_TIME} -gt ${CACHE_TTL} ]; then
|
|
||||||
echo "" >> "${CACHE_FILE}" # !!!
|
|
||||||
DATACACHE=`${CURL} --insecure -s "${STATSURL}" 2>&1`
|
|
||||||
echo "${DATACACHE}" > "${CACHE_FILE}" # !!!
|
|
||||||
chmod 640 "${CACHE_FILE}"
|
|
||||||
fi
|
|
||||||
|
|
||||||
#
|
|
||||||
case $METRIC in
|
|
||||||
pool)
|
|
||||||
grep "^pool:" $CACHE_FILE | cut -d ':' -f 2 | sed 's|^\s\+||'
|
|
||||||
;;
|
|
||||||
process_manager)
|
|
||||||
grep "^process manager:" $CACHE_FILE | cut -d ":" -f 2 | sed 's|^\s\+||'
|
|
||||||
;;
|
|
||||||
start_time)
|
|
||||||
grep "^start time:" $CACHE_FILE | sed 's|^start time:\s\+||'
|
|
||||||
;;
|
|
||||||
start_since)
|
|
||||||
grep "^start since:" $CACHE_FILE | cut -d ":" -f 2 | sed 's|^\s\+||'
|
|
||||||
;;
|
|
||||||
accepted_conn)
|
|
||||||
grep "^accepted conn:" $CACHE_FILE | cut -d ":" -f 2 | sed 's|^\s\+||'
|
|
||||||
;;
|
|
||||||
listen_queue)
|
|
||||||
grep "^listen queue:" $CACHE_FILE | cut -d ":" -f 2 | sed 's|^\s\+||'
|
|
||||||
;;
|
|
||||||
max_listen_queue)
|
|
||||||
grep "^max listen queue:" $CACHE_FILE | cut -d ":" -f 2 | sed 's|^\s\+||'
|
|
||||||
;;
|
|
||||||
listen_queue_len)
|
|
||||||
grep "^listen queue len:" $CACHE_FILE | cut -d ":" -f 2 | sed 's|^\s\+||'
|
|
||||||
;;
|
|
||||||
idle_processes)
|
|
||||||
grep "^idle processes:" $CACHE_FILE | cut -d ":" -f 2 | sed 's|^\s\+||'
|
|
||||||
;;
|
|
||||||
active_processes)
|
|
||||||
grep "^active processes:" $CACHE_FILE | cut -d ":" -f 2 | sed 's|^\s\+||'
|
|
||||||
;;
|
|
||||||
total_processes)
|
|
||||||
grep "^total processes:" $CACHE_FILE | cut -d ":" -f 2 | sed 's|^\s\+||'
|
|
||||||
;;
|
|
||||||
max_active_processes)
|
|
||||||
grep "^max active processes:" $CACHE_FILE | cut -d ":" -f 2 | sed 's|^\s\+||'
|
|
||||||
;;
|
|
||||||
max_children_reached)
|
|
||||||
grep "^max children reached:" $CACHE_FILE | cut -d ":" -f 2 | sed 's|^\s\+||'
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
echo "Unsupported metric $METRIC"
|
|
||||||
exit 1
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
#
|
|
||||||
|
|
||||||
exit 0
|
|
||||||
@ -1,418 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<zabbix_export>
|
|
||||||
<version>3.4</version>
|
|
||||||
<date>2021-06-14T12:27:54Z</date>
|
|
||||||
<groups>
|
|
||||||
<group>
|
|
||||||
<name>Templates</name>
|
|
||||||
</group>
|
|
||||||
</groups>
|
|
||||||
<templates>
|
|
||||||
<template>
|
|
||||||
<template>mdm php-fpm active</template>
|
|
||||||
<name>mdm php-fpm active</name>
|
|
||||||
<description/>
|
|
||||||
<groups>
|
|
||||||
<group>
|
|
||||||
<name>Templates</name>
|
|
||||||
</group>
|
|
||||||
</groups>
|
|
||||||
<applications>
|
|
||||||
<application>
|
|
||||||
<name>php-fpm</name>
|
|
||||||
</application>
|
|
||||||
</applications>
|
|
||||||
<items>
|
|
||||||
<item>
|
|
||||||
<name>php-fpm - ping check</name>
|
|
||||||
<type>7</type>
|
|
||||||
<snmp_community/>
|
|
||||||
<snmp_oid/>
|
|
||||||
<key>fpm[ping,{$POOL_PORT}]</key>
|
|
||||||
<delay>1m</delay>
|
|
||||||
<history>1w</history>
|
|
||||||
<trends>60d</trends>
|
|
||||||
<status>1</status>
|
|
||||||
<value_type>3</value_type>
|
|
||||||
<allowed_hosts/>
|
|
||||||
<units/>
|
|
||||||
<snmpv3_contextname/>
|
|
||||||
<snmpv3_securityname/>
|
|
||||||
<snmpv3_securitylevel>0</snmpv3_securitylevel>
|
|
||||||
<snmpv3_authprotocol>0</snmpv3_authprotocol>
|
|
||||||
<snmpv3_authpassphrase/>
|
|
||||||
<snmpv3_privprotocol>0</snmpv3_privprotocol>
|
|
||||||
<snmpv3_privpassphrase/>
|
|
||||||
<params/>
|
|
||||||
<ipmi_sensor/>
|
|
||||||
<authtype>0</authtype>
|
|
||||||
<username/>
|
|
||||||
<password/>
|
|
||||||
<publickey/>
|
|
||||||
<privatekey/>
|
|
||||||
<port/>
|
|
||||||
<description/>
|
|
||||||
<inventory_link>0</inventory_link>
|
|
||||||
<applications>
|
|
||||||
<application>
|
|
||||||
<name>php-fpm</name>
|
|
||||||
</application>
|
|
||||||
</applications>
|
|
||||||
<valuemap/>
|
|
||||||
<logtimefmt/>
|
|
||||||
<preprocessing/>
|
|
||||||
<jmx_endpoint/>
|
|
||||||
<master_item/>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<name>php-fpm - number of active processes</name>
|
|
||||||
<type>7</type>
|
|
||||||
<snmp_community/>
|
|
||||||
<snmp_oid/>
|
|
||||||
<key>php-fpm[active_processes,{$FPM_URL},{$FPM_PORT}]</key>
|
|
||||||
<delay>1m</delay>
|
|
||||||
<history>1w</history>
|
|
||||||
<trends>60d</trends>
|
|
||||||
<status>0</status>
|
|
||||||
<value_type>3</value_type>
|
|
||||||
<allowed_hosts/>
|
|
||||||
<units/>
|
|
||||||
<snmpv3_contextname/>
|
|
||||||
<snmpv3_securityname/>
|
|
||||||
<snmpv3_securitylevel>0</snmpv3_securitylevel>
|
|
||||||
<snmpv3_authprotocol>0</snmpv3_authprotocol>
|
|
||||||
<snmpv3_authpassphrase/>
|
|
||||||
<snmpv3_privprotocol>0</snmpv3_privprotocol>
|
|
||||||
<snmpv3_privpassphrase/>
|
|
||||||
<params/>
|
|
||||||
<ipmi_sensor/>
|
|
||||||
<authtype>0</authtype>
|
|
||||||
<username/>
|
|
||||||
<password/>
|
|
||||||
<publickey/>
|
|
||||||
<privatekey/>
|
|
||||||
<port/>
|
|
||||||
<description/>
|
|
||||||
<inventory_link>0</inventory_link>
|
|
||||||
<applications>
|
|
||||||
<application>
|
|
||||||
<name>php-fpm</name>
|
|
||||||
</application>
|
|
||||||
</applications>
|
|
||||||
<valuemap/>
|
|
||||||
<logtimefmt/>
|
|
||||||
<preprocessing/>
|
|
||||||
<jmx_endpoint/>
|
|
||||||
<master_item/>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<name>php-fpm - number of idle processes</name>
|
|
||||||
<type>7</type>
|
|
||||||
<snmp_community/>
|
|
||||||
<snmp_oid/>
|
|
||||||
<key>php-fpm[idle_processes,{$FPM_URL},{$FPM_PORT}]</key>
|
|
||||||
<delay>1m</delay>
|
|
||||||
<history>1w</history>
|
|
||||||
<trends>60d</trends>
|
|
||||||
<status>0</status>
|
|
||||||
<value_type>3</value_type>
|
|
||||||
<allowed_hosts/>
|
|
||||||
<units/>
|
|
||||||
<snmpv3_contextname/>
|
|
||||||
<snmpv3_securityname/>
|
|
||||||
<snmpv3_securitylevel>0</snmpv3_securitylevel>
|
|
||||||
<snmpv3_authprotocol>0</snmpv3_authprotocol>
|
|
||||||
<snmpv3_authpassphrase/>
|
|
||||||
<snmpv3_privprotocol>0</snmpv3_privprotocol>
|
|
||||||
<snmpv3_privpassphrase/>
|
|
||||||
<params/>
|
|
||||||
<ipmi_sensor/>
|
|
||||||
<authtype>0</authtype>
|
|
||||||
<username/>
|
|
||||||
<password/>
|
|
||||||
<publickey/>
|
|
||||||
<privatekey/>
|
|
||||||
<port/>
|
|
||||||
<description/>
|
|
||||||
<inventory_link>0</inventory_link>
|
|
||||||
<applications>
|
|
||||||
<application>
|
|
||||||
<name>php-fpm</name>
|
|
||||||
</application>
|
|
||||||
</applications>
|
|
||||||
<valuemap/>
|
|
||||||
<logtimefmt/>
|
|
||||||
<preprocessing/>
|
|
||||||
<jmx_endpoint/>
|
|
||||||
<master_item/>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<name>php-fpm - number of total processes</name>
|
|
||||||
<type>7</type>
|
|
||||||
<snmp_community/>
|
|
||||||
<snmp_oid/>
|
|
||||||
<key>php-fpm[total_processes,{$FPM_URL},{$FPM_PORT}]</key>
|
|
||||||
<delay>1m</delay>
|
|
||||||
<history>1w</history>
|
|
||||||
<trends>60d</trends>
|
|
||||||
<status>0</status>
|
|
||||||
<value_type>3</value_type>
|
|
||||||
<allowed_hosts/>
|
|
||||||
<units/>
|
|
||||||
<snmpv3_contextname/>
|
|
||||||
<snmpv3_securityname/>
|
|
||||||
<snmpv3_securitylevel>0</snmpv3_securitylevel>
|
|
||||||
<snmpv3_authprotocol>0</snmpv3_authprotocol>
|
|
||||||
<snmpv3_authpassphrase/>
|
|
||||||
<snmpv3_privprotocol>0</snmpv3_privprotocol>
|
|
||||||
<snmpv3_privpassphrase/>
|
|
||||||
<params/>
|
|
||||||
<ipmi_sensor/>
|
|
||||||
<authtype>0</authtype>
|
|
||||||
<username/>
|
|
||||||
<password/>
|
|
||||||
<publickey/>
|
|
||||||
<privatekey/>
|
|
||||||
<port/>
|
|
||||||
<description/>
|
|
||||||
<inventory_link>0</inventory_link>
|
|
||||||
<applications>
|
|
||||||
<application>
|
|
||||||
<name>php-fpm</name>
|
|
||||||
</application>
|
|
||||||
</applications>
|
|
||||||
<valuemap/>
|
|
||||||
<logtimefmt/>
|
|
||||||
<preprocessing/>
|
|
||||||
<jmx_endpoint/>
|
|
||||||
<master_item/>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<name>Number of running processes $1</name>
|
|
||||||
<type>7</type>
|
|
||||||
<snmp_community/>
|
|
||||||
<snmp_oid/>
|
|
||||||
<key>proc.num[{$FPM_PROCESS_NAME}]</key>
|
|
||||||
<delay>1m</delay>
|
|
||||||
<history>1w</history>
|
|
||||||
<trends>365d</trends>
|
|
||||||
<status>0</status>
|
|
||||||
<value_type>3</value_type>
|
|
||||||
<allowed_hosts/>
|
|
||||||
<units/>
|
|
||||||
<snmpv3_contextname/>
|
|
||||||
<snmpv3_securityname/>
|
|
||||||
<snmpv3_securitylevel>0</snmpv3_securitylevel>
|
|
||||||
<snmpv3_authprotocol>0</snmpv3_authprotocol>
|
|
||||||
<snmpv3_authpassphrase/>
|
|
||||||
<snmpv3_privprotocol>0</snmpv3_privprotocol>
|
|
||||||
<snmpv3_privpassphrase/>
|
|
||||||
<params/>
|
|
||||||
<ipmi_sensor/>
|
|
||||||
<authtype>0</authtype>
|
|
||||||
<username/>
|
|
||||||
<password/>
|
|
||||||
<publickey/>
|
|
||||||
<privatekey/>
|
|
||||||
<port/>
|
|
||||||
<description/>
|
|
||||||
<inventory_link>0</inventory_link>
|
|
||||||
<applications>
|
|
||||||
<application>
|
|
||||||
<name>php-fpm</name>
|
|
||||||
</application>
|
|
||||||
</applications>
|
|
||||||
<valuemap/>
|
|
||||||
<logtimefmt/>
|
|
||||||
<preprocessing/>
|
|
||||||
<jmx_endpoint/>
|
|
||||||
<master_item/>
|
|
||||||
</item>
|
|
||||||
</items>
|
|
||||||
<discovery_rules/>
|
|
||||||
<httptests/>
|
|
||||||
<macros>
|
|
||||||
<macro>
|
|
||||||
<macro>{$FPM_PROCESS_IDLE_CR}</macro>
|
|
||||||
<value>2</value>
|
|
||||||
</macro>
|
|
||||||
<macro>
|
|
||||||
<macro>{$FPM_PROCESS_IDLE_TR}</macro>
|
|
||||||
<value>10</value>
|
|
||||||
</macro>
|
|
||||||
<macro>
|
|
||||||
<macro>{$FPM_PROCESS_NAME}</macro>
|
|
||||||
<value>php-fpm</value>
|
|
||||||
</macro>
|
|
||||||
<macro>
|
|
||||||
<macro>{$POOL_PORT}</macro>
|
|
||||||
<value>9001</value>
|
|
||||||
</macro>
|
|
||||||
</macros>
|
|
||||||
<templates/>
|
|
||||||
<screens/>
|
|
||||||
</template>
|
|
||||||
</templates>
|
|
||||||
<triggers>
|
|
||||||
<trigger>
|
|
||||||
<expression>{mdm php-fpm active:fpm[ping,{$POOL_PORT}].last(0)}<>0</expression>
|
|
||||||
<recovery_mode>0</recovery_mode>
|
|
||||||
<recovery_expression/>
|
|
||||||
<name>php-fpm is not running on {HOSTNAME}</name>
|
|
||||||
<correlation_mode>0</correlation_mode>
|
|
||||||
<correlation_tag/>
|
|
||||||
<url/>
|
|
||||||
<status>1</status>
|
|
||||||
<priority>4</priority>
|
|
||||||
<description/>
|
|
||||||
<type>0</type>
|
|
||||||
<manual_close>0</manual_close>
|
|
||||||
<dependencies>
|
|
||||||
<dependency>
|
|
||||||
<name>php-fpm process is not running on {HOSTNAME}</name>
|
|
||||||
<expression>{mdm php-fpm active:proc.num[{$FPM_PROCESS_NAME}].last(0)}<1</expression>
|
|
||||||
<recovery_expression/>
|
|
||||||
</dependency>
|
|
||||||
</dependencies>
|
|
||||||
<tags/>
|
|
||||||
</trigger>
|
|
||||||
<trigger>
|
|
||||||
<expression>{mdm php-fpm active:php-fpm[idle_processes,{$FPM_URL},{$FPM_PORT}].last(0)}<{$FPM_PROCESS_IDLE_TR}</expression>
|
|
||||||
<recovery_mode>0</recovery_mode>
|
|
||||||
<recovery_expression/>
|
|
||||||
<name>php-fpm number of idle processes is too low on {HOSTNAME}</name>
|
|
||||||
<correlation_mode>0</correlation_mode>
|
|
||||||
<correlation_tag/>
|
|
||||||
<url/>
|
|
||||||
<status>0</status>
|
|
||||||
<priority>1</priority>
|
|
||||||
<description/>
|
|
||||||
<type>0</type>
|
|
||||||
<manual_close>0</manual_close>
|
|
||||||
<dependencies/>
|
|
||||||
<tags/>
|
|
||||||
</trigger>
|
|
||||||
<trigger>
|
|
||||||
<expression>{mdm php-fpm active:php-fpm[idle_processes,{$FPM_URL},{$FPM_PORT}].nodata(3m)}=1</expression>
|
|
||||||
<recovery_mode>0</recovery_mode>
|
|
||||||
<recovery_expression/>
|
|
||||||
<name>php-fpm number of idle processes nodata > 180s {HOSTNAME}</name>
|
|
||||||
<correlation_mode>0</correlation_mode>
|
|
||||||
<correlation_tag/>
|
|
||||||
<url/>
|
|
||||||
<status>0</status>
|
|
||||||
<priority>1</priority>
|
|
||||||
<description/>
|
|
||||||
<type>0</type>
|
|
||||||
<manual_close>0</manual_close>
|
|
||||||
<dependencies/>
|
|
||||||
<tags/>
|
|
||||||
</trigger>
|
|
||||||
<trigger>
|
|
||||||
<expression>{mdm php-fpm active:php-fpm[idle_processes,{$FPM_URL},{$FPM_PORT}].last(0)}<{$FPM_PROCESS_IDLE_CR}</expression>
|
|
||||||
<recovery_mode>0</recovery_mode>
|
|
||||||
<recovery_expression/>
|
|
||||||
<name>php-fpm number of idle process is critical on {HOSTNAME}</name>
|
|
||||||
<correlation_mode>0</correlation_mode>
|
|
||||||
<correlation_tag/>
|
|
||||||
<url/>
|
|
||||||
<status>0</status>
|
|
||||||
<priority>4</priority>
|
|
||||||
<description/>
|
|
||||||
<type>0</type>
|
|
||||||
<manual_close>0</manual_close>
|
|
||||||
<dependencies/>
|
|
||||||
<tags/>
|
|
||||||
</trigger>
|
|
||||||
<trigger>
|
|
||||||
<expression>{mdm php-fpm active:proc.num[{$FPM_PROCESS_NAME}].last(0)}<1</expression>
|
|
||||||
<recovery_mode>0</recovery_mode>
|
|
||||||
<recovery_expression/>
|
|
||||||
<name>php-fpm process is not running on {HOSTNAME}</name>
|
|
||||||
<correlation_mode>0</correlation_mode>
|
|
||||||
<correlation_tag/>
|
|
||||||
<url/>
|
|
||||||
<status>0</status>
|
|
||||||
<priority>4</priority>
|
|
||||||
<description/>
|
|
||||||
<type>0</type>
|
|
||||||
<manual_close>0</manual_close>
|
|
||||||
<dependencies/>
|
|
||||||
<tags/>
|
|
||||||
</trigger>
|
|
||||||
<trigger>
|
|
||||||
<expression>{mdm php-fpm active:php-fpm[total_processes,{$FPM_URL},{$FPM_PORT}].last()}>{$PHPFPM_MAXPROC}</expression>
|
|
||||||
<recovery_mode>0</recovery_mode>
|
|
||||||
<recovery_expression/>
|
|
||||||
<name>php-fpm total processes is too high on {HOSTNAME}</name>
|
|
||||||
<correlation_mode>0</correlation_mode>
|
|
||||||
<correlation_tag/>
|
|
||||||
<url/>
|
|
||||||
<status>0</status>
|
|
||||||
<priority>3</priority>
|
|
||||||
<description/>
|
|
||||||
<type>0</type>
|
|
||||||
<manual_close>0</manual_close>
|
|
||||||
<dependencies/>
|
|
||||||
<tags/>
|
|
||||||
</trigger>
|
|
||||||
</triggers>
|
|
||||||
<graphs>
|
|
||||||
<graph>
|
|
||||||
<name>php-fpm proccess</name>
|
|
||||||
<width>600</width>
|
|
||||||
<height>200</height>
|
|
||||||
<yaxismin>0.0000</yaxismin>
|
|
||||||
<yaxismax>100.0000</yaxismax>
|
|
||||||
<show_work_period>0</show_work_period>
|
|
||||||
<show_triggers>0</show_triggers>
|
|
||||||
<type>0</type>
|
|
||||||
<show_legend>1</show_legend>
|
|
||||||
<show_3d>0</show_3d>
|
|
||||||
<percent_left>0.0000</percent_left>
|
|
||||||
<percent_right>0.0000</percent_right>
|
|
||||||
<ymin_type_1>0</ymin_type_1>
|
|
||||||
<ymax_type_1>0</ymax_type_1>
|
|
||||||
<ymin_item_1>0</ymin_item_1>
|
|
||||||
<ymax_item_1>0</ymax_item_1>
|
|
||||||
<graph_items>
|
|
||||||
<graph_item>
|
|
||||||
<sortorder>0</sortorder>
|
|
||||||
<drawtype>2</drawtype>
|
|
||||||
<color>009900</color>
|
|
||||||
<yaxisside>0</yaxisside>
|
|
||||||
<calc_fnc>2</calc_fnc>
|
|
||||||
<type>0</type>
|
|
||||||
<item>
|
|
||||||
<host>mdm php-fpm active</host>
|
|
||||||
<key>php-fpm[total_processes,{$FPM_URL},{$FPM_PORT}]</key>
|
|
||||||
</item>
|
|
||||||
</graph_item>
|
|
||||||
<graph_item>
|
|
||||||
<sortorder>1</sortorder>
|
|
||||||
<drawtype>2</drawtype>
|
|
||||||
<color>CC0000</color>
|
|
||||||
<yaxisside>0</yaxisside>
|
|
||||||
<calc_fnc>2</calc_fnc>
|
|
||||||
<type>0</type>
|
|
||||||
<item>
|
|
||||||
<host>mdm php-fpm active</host>
|
|
||||||
<key>php-fpm[idle_processes,{$FPM_URL},{$FPM_PORT}]</key>
|
|
||||||
</item>
|
|
||||||
</graph_item>
|
|
||||||
<graph_item>
|
|
||||||
<sortorder>2</sortorder>
|
|
||||||
<drawtype>5</drawtype>
|
|
||||||
<color>0000BB</color>
|
|
||||||
<yaxisside>0</yaxisside>
|
|
||||||
<calc_fnc>2</calc_fnc>
|
|
||||||
<type>0</type>
|
|
||||||
<item>
|
|
||||||
<host>mdm php-fpm active</host>
|
|
||||||
<key>php-fpm[active_processes,{$FPM_URL},{$FPM_PORT}]</key>
|
|
||||||
</item>
|
|
||||||
</graph_item>
|
|
||||||
</graph_items>
|
|
||||||
</graph>
|
|
||||||
</graphs>
|
|
||||||
</zabbix_export>
|
|
||||||
527
sevpn/test.sh
527
sevpn/test.sh
@ -1,527 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
# ABOUT softether vpn for zabbix
|
|
||||||
# author mikedmorto 2026 year
|
|
||||||
export LC_ALL=""
|
|
||||||
export LANG="en_US.UTF-8"
|
|
||||||
version="3.3"
|
|
||||||
|
|
||||||
. /etc/zabbix/scripts/sevpn3.cfg
|
|
||||||
|
|
||||||
JSON=""
|
|
||||||
##### PARAMETERS#####
|
|
||||||
METRIC="$1"
|
|
||||||
ITEM="$2"
|
|
||||||
|
|
||||||
API_URL="https://${URL}/api/"
|
|
||||||
CURL_OPTS="-s -k"
|
|
||||||
[ "$API_INSECURE" = "1" ] && CURL_OPTS="$CURL_OPTS -k"
|
|
||||||
|
|
||||||
api_call() {
|
|
||||||
local method=$1
|
|
||||||
local params=$2
|
|
||||||
[ -z "$params" ] && params="{}"
|
|
||||||
local id="1"
|
|
||||||
local data=$(cat <<EOF
|
|
||||||
{
|
|
||||||
"jsonrpc": "2.0",
|
|
||||||
"id": "$id",
|
|
||||||
"method": "$method",
|
|
||||||
"params": $params
|
|
||||||
}
|
|
||||||
EOF
|
|
||||||
)
|
|
||||||
curl $CURL_OPTS -X POST "$API_URL" \
|
|
||||||
-H "X-VPNADMIN-HUBNAME: " \
|
|
||||||
-H "X-VPNADMIN-PASSWORD: $PWD" \
|
|
||||||
-H "Content-Type: application/json" \
|
|
||||||
-d "$data" 2>/dev/null
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
case "$METRIC" in
|
|
||||||
|
|
||||||
discovery)
|
|
||||||
hubs_json=$(api_call "EnumHub")
|
|
||||||
# ... проверка ошибок
|
|
||||||
hubs=$(echo "$hubs_json" | jq -r '.result.HubList[].HubName_str' 2>/dev/null)
|
|
||||||
|
|
||||||
JSON='{"data":['
|
|
||||||
|
|
||||||
first_hub=1
|
|
||||||
for hub in $hubs; do
|
|
||||||
# Добавляем сам хаб
|
|
||||||
if [ $first_hub -eq 1 ]; then first_hub=0; else JSON="${JSON},"; fi
|
|
||||||
JSON="${JSON}{\"{#HUB_NAME}\":\"$hub\"}"
|
|
||||||
|
|
||||||
# Пользователи хаба
|
|
||||||
users_json=$(api_call "EnumUser" "{\"HubName_str\":\"$hub\"}")
|
|
||||||
if ! echo "$users_json" | jq -e '.error' >/dev/null 2>&1; then
|
|
||||||
users=$(echo "$users_json" | jq -r '.result.UserList[].Name_str' 2>/dev/null)
|
|
||||||
for user in $users; do
|
|
||||||
JSON="${JSON},{\"{#HUB_USER_NAME}\":\"$hub,$user\"}"
|
|
||||||
done
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Каскады хаба
|
|
||||||
links_json=$(api_call "EnumLink" "{\"HubName_str\":\"$hub\"}")
|
|
||||||
if ! echo "$links_json" | jq -e '.error' >/dev/null 2>&1; then
|
|
||||||
links=$(echo "$links_json" | jq -r '.result.LinkList[].AccountName_utf' 2>/dev/null)
|
|
||||||
for link in $links; do
|
|
||||||
JSON="${JSON},{\"{#HUB_CASCADE_NAME}\":\"$hub,$link\"}"
|
|
||||||
done
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
||||||
# --- Локальные мосты (один раз после цикла по хабам) ---
|
|
||||||
bridges_json=$(api_call "EnumLocalBridge")
|
|
||||||
if ! echo "$bridges_json" | jq -e '.error' >/dev/null 2>&1; then
|
|
||||||
while IFS= read -r bridge_entry; do
|
|
||||||
# bridge_entry имеет формат "hub,device"
|
|
||||||
JSON="${JSON},{\"{#HUB_BRIDGE_NAME}\":\"$bridge_entry\"}"
|
|
||||||
done < <(echo "$bridges_json" | jq -r '.result.LocalBridgeList[] | "\(.HubNameLB_str),\(.DeviceName_str)"' 2>/dev/null)
|
|
||||||
fi
|
|
||||||
|
|
||||||
JSON="${JSON}]}"
|
|
||||||
echo "$JSON"
|
|
||||||
;;
|
|
||||||
|
|
||||||
|
|
||||||
script.version)
|
|
||||||
echo ${version}
|
|
||||||
;;
|
|
||||||
|
|
||||||
srv.uptime)
|
|
||||||
resp=$(api_call "GetServerStatus")
|
|
||||||
# Проверка на ошибку API
|
|
||||||
if echo "$resp" | jq -e '.error' >/dev/null 2>&1; then
|
|
||||||
echo 0
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
# Извлекаем дату запуска из поля StartTime_dt
|
|
||||||
start_date_iso=$(echo "$resp" | jq -r '.result.StartTime_dt' 2>/dev/null)
|
|
||||||
if [ -z "$start_date_iso" ] || [ "$start_date_iso" = "null" ]; then
|
|
||||||
echo 0
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
# Преобразуем ISO8601 в timestamp
|
|
||||||
start_ts=$(date -d "$start_date_iso" +%s 2>/dev/null)
|
|
||||||
if [ -z "$start_ts" ]; then
|
|
||||||
echo 0
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
now=$(date +%s)
|
|
||||||
uptime=$((now - start_ts))
|
|
||||||
echo "$uptime"
|
|
||||||
;;
|
|
||||||
|
|
||||||
srv.number_of_users)
|
|
||||||
resp=$(api_call "GetServerStatus")
|
|
||||||
if echo "$resp" | jq -e '.error' >/dev/null 2>&1; then
|
|
||||||
echo 0
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
# Извлекаем количество пользователей (поле Users)
|
|
||||||
users=$(echo "$resp" | jq -r '.result.NumUsers_u32' 2>/dev/null)
|
|
||||||
# Если поле отсутствует или null, выводим 0
|
|
||||||
if [ -z "$users" ] || [ "$users" = "null" ]; then
|
|
||||||
echo 0
|
|
||||||
else
|
|
||||||
echo "$users"
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
|
|
||||||
srv.number_of_ip_address_tables)
|
|
||||||
resp=$(api_call "GetServerStatus")
|
|
||||||
if echo "$resp" | jq -e '.error' >/dev/null 2>&1; then
|
|
||||||
echo 0
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
echo "$resp" | jq -r '.result.NumIpTables_u32' 2>/dev/null || echo 0
|
|
||||||
;;
|
|
||||||
|
|
||||||
srv.number_of_mac_address_tables)
|
|
||||||
resp=$(api_call "GetServerStatus")
|
|
||||||
if echo "$resp" | jq -e '.error' >/dev/null 2>&1; then
|
|
||||||
echo 0
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
echo "$resp" | jq -r '.result.NumMacTables_u32' 2>/dev/null || echo 0
|
|
||||||
;;
|
|
||||||
|
|
||||||
srv.number_of_sessions)
|
|
||||||
resp=$(api_call "GetServerStatus")
|
|
||||||
if echo "$resp" | jq -e '.error' >/dev/null 2>&1; then
|
|
||||||
echo 0
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
echo "$resp" | jq -r '.result.NumSessionsTotal_u32' 2>/dev/null || echo 0
|
|
||||||
;;
|
|
||||||
|
|
||||||
srv.number_of_virtual_hubs)
|
|
||||||
resp=$(api_call "GetServerStatus")
|
|
||||||
if echo "$resp" | jq -e '.error' >/dev/null 2>&1; then
|
|
||||||
echo 0
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
echo "$resp" | jq -r '.result.NumHubTotal_u32' 2>/dev/null || echo 0
|
|
||||||
;;
|
|
||||||
|
|
||||||
srv.number_of_active_sockets)
|
|
||||||
resp=$(api_call "GetServerStatus")
|
|
||||||
if echo "$resp" | jq -e '.error' >/dev/null 2>&1; then
|
|
||||||
echo 0
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
echo "$resp" | jq -r '.result.NumTcpConnections_u32' 2>/dev/null || echo 0
|
|
||||||
;;
|
|
||||||
|
|
||||||
srv.l2tp_status)
|
|
||||||
echo `$VCMD /SERVER ${URL} /PASSWORD:${PWD} /CMD IPsecGet | grep "L2TP over IPsec Server Function Enabled" | awk -F"|" '{print $2}'`
|
|
||||||
;;
|
|
||||||
|
|
||||||
srv.openvpn_status)
|
|
||||||
echo `$VCMD /SERVER ${URL} /PASSWORD:${PWD} /CMD openvpnget | grep "OpenVPN Clone Server Enabled" | awk -F"|" '{print $2}'`
|
|
||||||
;;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
srv.version)
|
|
||||||
resp=$(api_call "GetServerInfo")
|
|
||||||
if echo "$resp" | jq -e '.error' >/dev/null 2>&1; then
|
|
||||||
$VCMD /SERVER ${URL} /PASSWORD:${PWD} /CMD ServerStatusGet | awk 'FNR==3'
|
|
||||||
else
|
|
||||||
version=$(echo "$resp" | jq -r '.result.ServerVersionString_str' 2>/dev/null)
|
|
||||||
[ -n "$version" ] && [ "$version" != "null" ] && echo "$version" || $VCMD /SERVER ${URL} /PASSWORD:${PWD} /CMD ServerStatusGet | awk 'FNR==3'
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
|
|
||||||
# hub.if.out.broad
|
|
||||||
hub.if.out.broad)
|
|
||||||
resp=$(api_call "GetHubStatus" "{\"HubName_str\":\"$ITEM\"}")
|
|
||||||
if echo "$resp" | jq -e '.error' >/dev/null 2>&1; then
|
|
||||||
echo 0
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
val=$(echo "$resp" | jq -r '.result."Send.BroadcastBytes_u64"' 2>/dev/null)
|
|
||||||
if [ -z "$val" ] || [ "$val" = "null" ]; then
|
|
||||||
echo 0
|
|
||||||
else
|
|
||||||
echo "$val"
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
|
|
||||||
# hub.if.in.broad
|
|
||||||
hub.if.in.broad)
|
|
||||||
resp=$(api_call "GetHubStatus" "{\"HubName_str\":\"$ITEM\"}")
|
|
||||||
if echo "$resp" | jq -e '.error' >/dev/null 2>&1; then
|
|
||||||
echo 0
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
val=$(echo "$resp" | jq -r '.result."Recv.BroadcastBytes_u64"' 2>/dev/null)
|
|
||||||
if [ -z "$val" ] || [ "$val" = "null" ]; then
|
|
||||||
echo 0
|
|
||||||
else
|
|
||||||
echo "$val"
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
|
|
||||||
# hub.if.out.uni
|
|
||||||
hub.if.out.uni)
|
|
||||||
resp=$(api_call "GetHubStatus" "{\"HubName_str\":\"$ITEM\"}")
|
|
||||||
if echo "$resp" | jq -e '.error' >/dev/null 2>&1; then
|
|
||||||
echo 0
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
val=$(echo "$resp" | jq -r '.result."Send.UnicastBytes_u64"' 2>/dev/null)
|
|
||||||
if [ -z "$val" ] || [ "$val" = "null" ]; then
|
|
||||||
echo 0
|
|
||||||
else
|
|
||||||
echo "$val"
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
|
|
||||||
# hub.if.in.uni
|
|
||||||
hub.if.in.uni)
|
|
||||||
resp=$(api_call "GetHubStatus" "{\"HubName_str\":\"$ITEM\"}")
|
|
||||||
if echo "$resp" | jq -e '.error' >/dev/null 2>&1; then
|
|
||||||
echo 0
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
val=$(echo "$resp" | jq -r '.result."Recv.UnicastBytes_u64"' 2>/dev/null)
|
|
||||||
if [ -z "$val" ] || [ "$val" = "null" ]; then
|
|
||||||
echo 0
|
|
||||||
else
|
|
||||||
echo "$val"
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
|
|
||||||
# hub.sessions-bridge
|
|
||||||
hub.sessions-bridge)
|
|
||||||
resp=$(api_call "GetHubStatus" "{\"HubName_str\":\"$ITEM\"}")
|
|
||||||
if echo "$resp" | jq -e '.error' >/dev/null 2>&1; then
|
|
||||||
echo 0
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
val=$(echo "$resp" | jq -r '.result.NumSessionsBridge_u32' 2>/dev/null)
|
|
||||||
if [ -z "$val" ] || [ "$val" = "null" ]; then
|
|
||||||
echo 0
|
|
||||||
else
|
|
||||||
echo "$val"
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
|
|
||||||
# hub.sessions-client
|
|
||||||
hub.sessions-client)
|
|
||||||
resp=$(api_call "GetHubStatus" "{\"HubName_str\":\"$ITEM\"}")
|
|
||||||
if echo "$resp" | jq -e '.error' >/dev/null 2>&1; then
|
|
||||||
echo 0
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
val=$(echo "$resp" | jq -r '.result.NumSessionsClient_u32' 2>/dev/null)
|
|
||||||
if [ -z "$val" ] || [ "$val" = "null" ]; then
|
|
||||||
echo 0
|
|
||||||
else
|
|
||||||
echo "$val"
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
|
|
||||||
# hub.sessions-all
|
|
||||||
hub.sessions-all)
|
|
||||||
resp=$(api_call "GetHubStatus" "{\"HubName_str\":\"$ITEM\"}")
|
|
||||||
if echo "$resp" | jq -e '.error' >/dev/null 2>&1; then
|
|
||||||
echo 0
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
val=$(echo "$resp" | jq -r '.result.NumSessions_u32' 2>/dev/null)
|
|
||||||
if [ -z "$val" ] || [ "$val" = "null" ]; then
|
|
||||||
echo 0
|
|
||||||
else
|
|
||||||
echo "$val"
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
|
|
||||||
# hub.securenat
|
|
||||||
hub.securenat)
|
|
||||||
resp=$(api_call "GetHubStatus" "{\"HubName_str\":\"$ITEM\"}")
|
|
||||||
if echo "$resp" | jq -e '.error' >/dev/null 2>&1; then
|
|
||||||
echo "false"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
val=$(echo "$resp" | jq -r '.result.SecureNATEnabled_bool' 2>/dev/null)
|
|
||||||
if [ -z "$val" ] || [ "$val" = "null" ]; then
|
|
||||||
echo "false"
|
|
||||||
else
|
|
||||||
# Приводим к строке true/false (Zabbix ожидает строку)
|
|
||||||
echo "$val"
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
|
|
||||||
# hub.type
|
|
||||||
hub.type)
|
|
||||||
resp=$(api_call "GetHubStatus" "{\"HubName_str\":\"$ITEM\"}")
|
|
||||||
if echo "$resp" | jq -e '.error' >/dev/null 2>&1; then
|
|
||||||
echo 0
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
val=$(echo "$resp" | jq -r '.result.HubType_u32' 2>/dev/null)
|
|
||||||
if [ -z "$val" ] || [ "$val" = "null" ]; then
|
|
||||||
echo 0
|
|
||||||
else
|
|
||||||
echo "$val"
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
|
|
||||||
|
|
||||||
cas.status)
|
|
||||||
HUB=${ITEM%,*}
|
|
||||||
CAS=${ITEM##*,}
|
|
||||||
resp=$(api_call "GetLinkStatus" "{\"HubName_Ex_str\":\"$HUB\",\"AccountName_utf\":\"$CAS\"}")
|
|
||||||
status=$(echo "$resp" | jq -r '.result.Connected_bool' 2>/dev/null)
|
|
||||||
if [ "$status" = "true" ]; then
|
|
||||||
echo "Connection Completed (Session Established)"
|
|
||||||
else
|
|
||||||
echo "offline"
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
|
|
||||||
cas.if.out.broad)
|
|
||||||
HUB=${ITEM%,*}
|
|
||||||
CAS=${ITEM##*,}
|
|
||||||
resp=$(api_call "GetLinkStatus" "{\"HubName_Ex_str\":\"$HUB\",\"AccountName_utf\":\"$CAS\"}")
|
|
||||||
val=$(echo "$resp" | jq -r '.result."Send.BroadcastBytes_u64"' 2>/dev/null)
|
|
||||||
echo "${val:-0}"
|
|
||||||
;;
|
|
||||||
|
|
||||||
cas.if.in.broad)
|
|
||||||
HUB=${ITEM%,*}
|
|
||||||
CAS=${ITEM##*,}
|
|
||||||
resp=$(api_call "GetLinkStatus" "{\"HubName_Ex_str\":\"$HUB\",\"AccountName_utf\":\"$CAS\"}")
|
|
||||||
val=$(echo "$resp" | jq -r '.result."Recv.BroadcastBytes_u64"' 2>/dev/null)
|
|
||||||
echo "${val:-0}"
|
|
||||||
;;
|
|
||||||
|
|
||||||
cas.if.out)
|
|
||||||
HUB=${ITEM%,*}
|
|
||||||
CAS=${ITEM##*,}
|
|
||||||
resp=$(api_call "GetLinkStatus" "{\"HubName_Ex_str\":\"$HUB\",\"AccountName_utf\":\"$CAS\"}")
|
|
||||||
val=$(echo "$resp" | jq -r '.result.TotalSendSize_u64' 2>/dev/null)
|
|
||||||
echo "${val:-0}"
|
|
||||||
;;
|
|
||||||
|
|
||||||
cas.if.in)
|
|
||||||
HUB=${ITEM%,*}
|
|
||||||
CAS=${ITEM##*,}
|
|
||||||
resp=$(api_call "GetLinkStatus" "{\"HubName_Ex_str\":\"$HUB\",\"AccountName_utf\":\"$CAS\"}")
|
|
||||||
val=$(echo "$resp" | jq -r '.result.TotalRecvSize_u64' 2>/dev/null)
|
|
||||||
echo "${val:-0}"
|
|
||||||
;;
|
|
||||||
|
|
||||||
cas.if.out.uni)
|
|
||||||
HUB=${ITEM%,*}
|
|
||||||
CAS=${ITEM##*,}
|
|
||||||
resp=$(api_call "GetLinkStatus" "{\"HubName_Ex_str\":\"$HUB\",\"AccountName_utf\":\"$CAS\"}")
|
|
||||||
val=$(echo "$resp" | jq -r '.result."Send.UnicastBytes_u64"' 2>/dev/null)
|
|
||||||
echo "${val:-0}"
|
|
||||||
;;
|
|
||||||
|
|
||||||
cas.if.in.uni)
|
|
||||||
HUB=${ITEM%,*}
|
|
||||||
CAS=${ITEM##*,}
|
|
||||||
resp=$(api_call "GetLinkStatus" "{\"HubName_Ex_str\":\"$HUB\",\"AccountName_utf\":\"$CAS\"}")
|
|
||||||
val=$(echo "$resp" | jq -r '.result."Recv.UnicastBytes_u64"' 2>/dev/null)
|
|
||||||
echo "${val:-0}"
|
|
||||||
;;
|
|
||||||
|
|
||||||
br.status)
|
|
||||||
HUB=${ITEM%,*}
|
|
||||||
BR=${ITEM##*,}
|
|
||||||
resp=$(api_call "EnumLocalBridge")
|
|
||||||
online=$(echo "$resp" | jq -r --arg hub "$HUB" --arg br "$BR" '.result.LocalBridgeList[] | select(.HubNameLB_str == $hub and .DeviceName_str == $br) | .Online_bool' 2>/dev/null | head -1)
|
|
||||||
if [ "$online" = "true" ]; then
|
|
||||||
echo "Operating"
|
|
||||||
else
|
|
||||||
echo "false"
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
usr.if.out.broad)
|
|
||||||
HUB=${ITEM%,*}
|
|
||||||
USER=${ITEM##*,}
|
|
||||||
resp=$(api_call "GetUser" "{\"HubName_str\":\"$HUB\",\"Name_str\":\"$USER\"}")
|
|
||||||
if echo "$resp" | jq -e '.error' >/dev/null 2>&1; then
|
|
||||||
$VCMD /SERVER ${URL} /PASSWORD:${PWD} /adminhub:${HUB} /CMD UserGet ${USER} | grep "Outgoing Broadcast Total Size" | sed -e 's/[^0-9]//g'
|
|
||||||
else
|
|
||||||
val=$(echo "$resp" | jq -r '.result."Send.BroadcastBytes_u64"' 2>/dev/null)
|
|
||||||
echo "${val:-0}"
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
|
|
||||||
# usr.if.in.broad
|
|
||||||
usr.if.in.broad)
|
|
||||||
HUB=${ITEM%,*}
|
|
||||||
USER=${ITEM##*,}
|
|
||||||
resp=$(api_call "GetUser" "{\"HubName_str\":\"$HUB\",\"Name_str\":\"$USER\"}")
|
|
||||||
if echo "$resp" | jq -e '.error' >/dev/null 2>&1; then
|
|
||||||
$VCMD /SERVER ${URL} /PASSWORD:${PWD} /adminhub:${HUB} /CMD UserGet ${USER} | grep "Incoming Broadcast Total Size" | sed -e 's/[^0-9]//g'
|
|
||||||
else
|
|
||||||
val=$(echo "$resp" | jq -r '.result."Recv.BroadcastBytes_u64"' 2>/dev/null)
|
|
||||||
echo "${val:-0}"
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
|
|
||||||
# usr.if.out.uni
|
|
||||||
usr.if.out.uni)
|
|
||||||
HUB=${ITEM%,*}
|
|
||||||
USER=${ITEM##*,}
|
|
||||||
resp=$(api_call "GetUser" "{\"HubName_str\":\"$HUB\",\"Name_str\":\"$USER\"}")
|
|
||||||
if echo "$resp" | jq -e '.error' >/dev/null 2>&1; then
|
|
||||||
$VCMD /SERVER ${URL} /PASSWORD:${PWD} /adminhub:${HUB} /CMD UserGet ${USER} | grep "Outgoing Unicast Total Size" | sed -e 's/[^0-9]//g'
|
|
||||||
else
|
|
||||||
val=$(echo "$resp" | jq -r '.result."Send.UnicastBytes_u64"' 2>/dev/null)
|
|
||||||
echo "${val:-0}"
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
|
|
||||||
# usr.if.in.uni
|
|
||||||
usr.if.in.uni)
|
|
||||||
HUB=${ITEM%,*}
|
|
||||||
USER=${ITEM##*,}
|
|
||||||
resp=$(api_call "GetUser" "{\"HubName_str\":\"$HUB\",\"Name_str\":\"$USER\"}")
|
|
||||||
if echo "$resp" | jq -e '.error' >/dev/null 2>&1; then
|
|
||||||
$VCMD /SERVER ${URL} /PASSWORD:${PWD} /adminhub:${HUB} /CMD UserGet ${USER} | grep "Incoming Unicast Total Size" | sed -e 's/[^0-9]//g'
|
|
||||||
else
|
|
||||||
val=$(echo "$resp" | jq -r '.result."Recv.UnicastBytes_u64"' 2>/dev/null)
|
|
||||||
echo "${val:-0}"
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
|
|
||||||
# usr.lastlogin
|
|
||||||
usr.lastlogin)
|
|
||||||
HUB=${ITEM%,*}
|
|
||||||
USER=${ITEM##*,}
|
|
||||||
resp=$(api_call "GetUser" "{\"HubName_str\":\"$HUB\",\"Name_str\":\"$USER\"}")
|
|
||||||
if echo "$resp" | jq -e '.error' >/dev/null 2>&1; then
|
|
||||||
$VCMD /SERVER ${URL} /adminhub:"$HUB" /PASSWORD:"${PWD}" /CMD UserGet "${USER}" | grep "Updated on" | awk -F"|" '{print $2}'
|
|
||||||
else
|
|
||||||
updated=$(echo "$resp" | jq -r '.result.UpdatedTime_dt' 2>/dev/null)
|
|
||||||
if [ -n "$updated" ] && [ "$updated" != "null" ]; then
|
|
||||||
# Преобразуем ISO дату в timestamp
|
|
||||||
ts=$(date -d "$updated" +%s 2>/dev/null)
|
|
||||||
echo "${ts:-0}"
|
|
||||||
else
|
|
||||||
echo 0
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
help)
|
|
||||||
echo "please use these params
|
|
||||||
{
|
|
||||||
discovery
|
|
||||||
srv.uptime
|
|
||||||
srv.number_of_users
|
|
||||||
srv.number_of_ip_address_tables
|
|
||||||
srv.number_of_mac_address_tables
|
|
||||||
srv.number_of_sessions
|
|
||||||
srv.number_of_virtual_hubs
|
|
||||||
srv.number_of_active_sockets
|
|
||||||
srv.l2tp_status
|
|
||||||
srv.openvpn_status
|
|
||||||
srv.version
|
|
||||||
hub.if.out.broad
|
|
||||||
hub.if.in.broad
|
|
||||||
hub.if.out.uni
|
|
||||||
hub.if.in.uni
|
|
||||||
hub.sessions-bridge
|
|
||||||
hub.sessions-client
|
|
||||||
hub.sessions-all
|
|
||||||
hub.securenat
|
|
||||||
hub.type
|
|
||||||
cas.status
|
|
||||||
cas.if.in.broad
|
|
||||||
cas.if.out.broad
|
|
||||||
cas.if.out
|
|
||||||
cas.if.in
|
|
||||||
cas.if.in.uni
|
|
||||||
cas.if.out.uni
|
|
||||||
br.status
|
|
||||||
usr.lastlogin
|
|
||||||
usr.if.out.broad
|
|
||||||
usr.if.in.broad
|
|
||||||
usr.if.in.uni
|
|
||||||
usr.if.out.uni
|
|
||||||
script.version
|
|
||||||
}"
|
|
||||||
;;
|
|
||||||
|
|
||||||
|
|
||||||
*)
|
|
||||||
echo ""
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
|
|
||||||
@ -1,306 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<zabbix_export>
|
|
||||||
<version>3.4</version>
|
|
||||||
<date>2021-06-14T11:56:47Z</date>
|
|
||||||
<groups>
|
|
||||||
<group>
|
|
||||||
<name>MDM</name>
|
|
||||||
</group>
|
|
||||||
<group>
|
|
||||||
<name>Templates</name>
|
|
||||||
</group>
|
|
||||||
</groups>
|
|
||||||
<templates>
|
|
||||||
<template>
|
|
||||||
<template>mdm_test_backup_active</template>
|
|
||||||
<name>mdm_test_backup_active</name>
|
|
||||||
<description/>
|
|
||||||
<groups>
|
|
||||||
<group>
|
|
||||||
<name>MDM</name>
|
|
||||||
</group>
|
|
||||||
<group>
|
|
||||||
<name>Templates</name>
|
|
||||||
</group>
|
|
||||||
</groups>
|
|
||||||
<applications>
|
|
||||||
<application>
|
|
||||||
<name>backup</name>
|
|
||||||
</application>
|
|
||||||
</applications>
|
|
||||||
<items>
|
|
||||||
<item>
|
|
||||||
<name>test_logfile</name>
|
|
||||||
<type>7</type>
|
|
||||||
<snmp_community/>
|
|
||||||
<snmp_oid/>
|
|
||||||
<key>test_backup[log]</key>
|
|
||||||
<delay>30s</delay>
|
|
||||||
<history>90d</history>
|
|
||||||
<trends>365d</trends>
|
|
||||||
<status>0</status>
|
|
||||||
<value_type>3</value_type>
|
|
||||||
<allowed_hosts/>
|
|
||||||
<units/>
|
|
||||||
<snmpv3_contextname/>
|
|
||||||
<snmpv3_securityname/>
|
|
||||||
<snmpv3_securitylevel>0</snmpv3_securitylevel>
|
|
||||||
<snmpv3_authprotocol>0</snmpv3_authprotocol>
|
|
||||||
<snmpv3_authpassphrase/>
|
|
||||||
<snmpv3_privprotocol>0</snmpv3_privprotocol>
|
|
||||||
<snmpv3_privpassphrase/>
|
|
||||||
<params/>
|
|
||||||
<ipmi_sensor/>
|
|
||||||
<authtype>0</authtype>
|
|
||||||
<username/>
|
|
||||||
<password/>
|
|
||||||
<publickey/>
|
|
||||||
<privatekey/>
|
|
||||||
<port/>
|
|
||||||
<description/>
|
|
||||||
<inventory_link>0</inventory_link>
|
|
||||||
<applications>
|
|
||||||
<application>
|
|
||||||
<name>backup</name>
|
|
||||||
</application>
|
|
||||||
</applications>
|
|
||||||
<valuemap/>
|
|
||||||
<logtimefmt/>
|
|
||||||
<preprocessing/>
|
|
||||||
<jmx_endpoint/>
|
|
||||||
<master_item/>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<name>state</name>
|
|
||||||
<type>7</type>
|
|
||||||
<snmp_community/>
|
|
||||||
<snmp_oid/>
|
|
||||||
<key>test_backup[state]</key>
|
|
||||||
<delay>20s</delay>
|
|
||||||
<history>52w</history>
|
|
||||||
<trends>0</trends>
|
|
||||||
<status>0</status>
|
|
||||||
<value_type>4</value_type>
|
|
||||||
<allowed_hosts/>
|
|
||||||
<units/>
|
|
||||||
<snmpv3_contextname/>
|
|
||||||
<snmpv3_securityname/>
|
|
||||||
<snmpv3_securitylevel>0</snmpv3_securitylevel>
|
|
||||||
<snmpv3_authprotocol>0</snmpv3_authprotocol>
|
|
||||||
<snmpv3_authpassphrase/>
|
|
||||||
<snmpv3_privprotocol>0</snmpv3_privprotocol>
|
|
||||||
<snmpv3_privpassphrase/>
|
|
||||||
<params/>
|
|
||||||
<ipmi_sensor/>
|
|
||||||
<authtype>0</authtype>
|
|
||||||
<username/>
|
|
||||||
<password/>
|
|
||||||
<publickey/>
|
|
||||||
<privatekey/>
|
|
||||||
<port/>
|
|
||||||
<description/>
|
|
||||||
<inventory_link>0</inventory_link>
|
|
||||||
<applications>
|
|
||||||
<application>
|
|
||||||
<name>backup</name>
|
|
||||||
</application>
|
|
||||||
</applications>
|
|
||||||
<valuemap/>
|
|
||||||
<logtimefmt/>
|
|
||||||
<preprocessing/>
|
|
||||||
<jmx_endpoint/>
|
|
||||||
<master_item/>
|
|
||||||
</item>
|
|
||||||
</items>
|
|
||||||
<discovery_rules/>
|
|
||||||
<httptests/>
|
|
||||||
<macros/>
|
|
||||||
<templates/>
|
|
||||||
<screens/>
|
|
||||||
</template>
|
|
||||||
</templates>
|
|
||||||
<triggers>
|
|
||||||
<trigger>
|
|
||||||
<expression>{mdm_test_backup_active:test_backup[state].nodata(3m)}=1</expression>
|
|
||||||
<recovery_mode>0</recovery_mode>
|
|
||||||
<recovery_expression/>
|
|
||||||
<name>backup: no data</name>
|
|
||||||
<correlation_mode>0</correlation_mode>
|
|
||||||
<correlation_tag/>
|
|
||||||
<url/>
|
|
||||||
<status>0</status>
|
|
||||||
<priority>4</priority>
|
|
||||||
<description/>
|
|
||||||
<type>0</type>
|
|
||||||
<manual_close>0</manual_close>
|
|
||||||
<dependencies/>
|
|
||||||
<tags/>
|
|
||||||
</trigger>
|
|
||||||
<trigger>
|
|
||||||
<expression>{mdm_test_backup_active:test_backup[state].str(on backup,#1)}=1</expression>
|
|
||||||
<recovery_mode>0</recovery_mode>
|
|
||||||
<recovery_expression/>
|
|
||||||
<name>backup: on backup</name>
|
|
||||||
<correlation_mode>0</correlation_mode>
|
|
||||||
<correlation_tag/>
|
|
||||||
<url/>
|
|
||||||
<status>0</status>
|
|
||||||
<priority>1</priority>
|
|
||||||
<description/>
|
|
||||||
<type>0</type>
|
|
||||||
<manual_close>0</manual_close>
|
|
||||||
<dependencies/>
|
|
||||||
<tags/>
|
|
||||||
</trigger>
|
|
||||||
<trigger>
|
|
||||||
<expression>{mdm_test_backup_active:test_backup[state].str(on rotation,#1)}=1</expression>
|
|
||||||
<recovery_mode>0</recovery_mode>
|
|
||||||
<recovery_expression/>
|
|
||||||
<name>backup: on rotation</name>
|
|
||||||
<correlation_mode>0</correlation_mode>
|
|
||||||
<correlation_tag/>
|
|
||||||
<url/>
|
|
||||||
<status>0</status>
|
|
||||||
<priority>1</priority>
|
|
||||||
<description/>
|
|
||||||
<type>0</type>
|
|
||||||
<manual_close>0</manual_close>
|
|
||||||
<dependencies/>
|
|
||||||
<tags/>
|
|
||||||
</trigger>
|
|
||||||
<trigger>
|
|
||||||
<expression>{mdm_test_backup_active:test_backup[state].str(on sending,#1)}=1</expression>
|
|
||||||
<recovery_mode>0</recovery_mode>
|
|
||||||
<recovery_expression/>
|
|
||||||
<name>backup: on sending</name>
|
|
||||||
<correlation_mode>0</correlation_mode>
|
|
||||||
<correlation_tag/>
|
|
||||||
<url/>
|
|
||||||
<status>0</status>
|
|
||||||
<priority>1</priority>
|
|
||||||
<description/>
|
|
||||||
<type>0</type>
|
|
||||||
<manual_close>0</manual_close>
|
|
||||||
<dependencies/>
|
|
||||||
<tags/>
|
|
||||||
</trigger>
|
|
||||||
<trigger>
|
|
||||||
<expression>{mdm_test_backup_active:test_backup[state].str(starting script,#1)}=1</expression>
|
|
||||||
<recovery_mode>0</recovery_mode>
|
|
||||||
<recovery_expression/>
|
|
||||||
<name>backup: starting</name>
|
|
||||||
<correlation_mode>0</correlation_mode>
|
|
||||||
<correlation_tag/>
|
|
||||||
<url/>
|
|
||||||
<status>0</status>
|
|
||||||
<priority>1</priority>
|
|
||||||
<description/>
|
|
||||||
<type>0</type>
|
|
||||||
<manual_close>0</manual_close>
|
|
||||||
<dependencies/>
|
|
||||||
<tags/>
|
|
||||||
</trigger>
|
|
||||||
<trigger>
|
|
||||||
<expression>{mdm_test_backup_active:test_backup[state].str(fail,#1)}=1</expression>
|
|
||||||
<recovery_mode>0</recovery_mode>
|
|
||||||
<recovery_expression/>
|
|
||||||
<name>backup: {ITEM.LASTVALUE1}</name>
|
|
||||||
<correlation_mode>0</correlation_mode>
|
|
||||||
<correlation_tag/>
|
|
||||||
<url/>
|
|
||||||
<status>0</status>
|
|
||||||
<priority>4</priority>
|
|
||||||
<description/>
|
|
||||||
<type>0</type>
|
|
||||||
<manual_close>0</manual_close>
|
|
||||||
<dependencies/>
|
|
||||||
<tags/>
|
|
||||||
</trigger>
|
|
||||||
<trigger>
|
|
||||||
<expression>({mdm_test_backup_active:test_backup[log].last()}<>1 and {mdm_test_backup_active:test_backup[log].time()}>{$BACKUP_ROTATION_TIME})</expression>
|
|
||||||
<recovery_mode>0</recovery_mode>
|
|
||||||
<recovery_expression/>
|
|
||||||
<name>Today, after macro-time, script was not running</name>
|
|
||||||
<correlation_mode>0</correlation_mode>
|
|
||||||
<correlation_tag/>
|
|
||||||
<url/>
|
|
||||||
<status>0</status>
|
|
||||||
<priority>3</priority>
|
|
||||||
<description>отсутствует резервная копия после времени, которое заданно в макросе
|
|
||||||
Time format:170200 ( 17 - hours, 02 minutes, 00 seconds)
|
|
||||||
Macros name: {$BACKUP_ROTATION_TIME}</description>
|
|
||||||
<type>0</type>
|
|
||||||
<manual_close>0</manual_close>
|
|
||||||
<dependencies>
|
|
||||||
<dependency>
|
|
||||||
<name>backup: on backup</name>
|
|
||||||
<expression>{mdm_test_backup_active:test_backup[state].str(on backup,#1)}=1</expression>
|
|
||||||
<recovery_expression/>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
|
||||||
<name>backup: on rotation</name>
|
|
||||||
<expression>{mdm_test_backup_active:test_backup[state].str(on rotation,#1)}=1</expression>
|
|
||||||
<recovery_expression/>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
|
||||||
<name>backup: on sending</name>
|
|
||||||
<expression>{mdm_test_backup_active:test_backup[state].str(on sending,#1)}=1</expression>
|
|
||||||
<recovery_expression/>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
|
||||||
<name>backup: starting</name>
|
|
||||||
<expression>{mdm_test_backup_active:test_backup[state].str(starting script,#1)}=1</expression>
|
|
||||||
<recovery_expression/>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
|
||||||
<name>backup: {ITEM.LASTVALUE1}</name>
|
|
||||||
<expression>{mdm_test_backup_active:test_backup[state].str(fail,#1)}=1</expression>
|
|
||||||
<recovery_expression/>
|
|
||||||
</dependency>
|
|
||||||
</dependencies>
|
|
||||||
<tags/>
|
|
||||||
</trigger>
|
|
||||||
<trigger>
|
|
||||||
<expression>{mdm_test_backup_active:test_backup[log].last()}<>1</expression>
|
|
||||||
<recovery_mode>0</recovery_mode>
|
|
||||||
<recovery_expression/>
|
|
||||||
<name>Today script was not running</name>
|
|
||||||
<correlation_mode>0</correlation_mode>
|
|
||||||
<correlation_tag/>
|
|
||||||
<url/>
|
|
||||||
<status>1</status>
|
|
||||||
<priority>3</priority>
|
|
||||||
<description>отсутствует резервная копия</description>
|
|
||||||
<type>0</type>
|
|
||||||
<manual_close>0</manual_close>
|
|
||||||
<dependencies>
|
|
||||||
<dependency>
|
|
||||||
<name>backup: on backup</name>
|
|
||||||
<expression>{mdm_test_backup_active:test_backup[state].str(on backup,#1)}=1</expression>
|
|
||||||
<recovery_expression/>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
|
||||||
<name>backup: on rotation</name>
|
|
||||||
<expression>{mdm_test_backup_active:test_backup[state].str(on rotation,#1)}=1</expression>
|
|
||||||
<recovery_expression/>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
|
||||||
<name>backup: on sending</name>
|
|
||||||
<expression>{mdm_test_backup_active:test_backup[state].str(on sending,#1)}=1</expression>
|
|
||||||
<recovery_expression/>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
|
||||||
<name>backup: starting</name>
|
|
||||||
<expression>{mdm_test_backup_active:test_backup[state].str(starting script,#1)}=1</expression>
|
|
||||||
<recovery_expression/>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
|
||||||
<name>backup: {ITEM.LASTVALUE1}</name>
|
|
||||||
<expression>{mdm_test_backup_active:test_backup[state].str(fail,#1)}=1</expression>
|
|
||||||
<recovery_expression/>
|
|
||||||
</dependency>
|
|
||||||
</dependencies>
|
|
||||||
<tags/>
|
|
||||||
</trigger>
|
|
||||||
</triggers>
|
|
||||||
</zabbix_export>
|
|
||||||
Loading…
x
Reference in New Issue
Block a user