Skip to content

Instantly share code, notes, and snippets.

@alice-xu
alice-xu / zbx_functions
Last active August 29, 2015 14:01
zbx_functions: Bash functions for Zabbix monitoring
export PATH='/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin'
# Read Zabbix agent config.
ZABBIX_AGENTD_CONF='/etc/zabbix/zabbix_agentd.conf'
ZABBIX_SERVERS=$( grep -v '^#' "${ZABBIX_AGENTD_CONF}" \
| grep ServerActive \
| sed -e 's/\s//g' -e 's/ServerActive=//g' -e 's/,/ /g' )
ZABBIX_SERVER_DEFAULTPORT=10051
MY_HOSTNAME=$( zabbix_agentd -t agent.hostname|cut -d'|' -f2-|sed -e 's/]$//' )
@alice-xu
alice-xu / virsh_vm_discovery.sh
Last active August 29, 2015 14:02
virsh VM discovery script for Zabbix Low Level Discovery
#!/usr/bin/env bash
#
# virsh_vm_discovery.sh:
# Virtual Machine discovery script for Zabbix
#
export LANG=en_US.UTF-8
HV_NAME=$( hostname --fqdn )
VMLIST=$( virsh list --all|tail -n +3|awk '{ print $2 }' )
@alice-xu
alice-xu / openvpn_client_stats.sh
Created June 16, 2014 01:25
OpenVPN client stats monitoring script for Zabbix
#!/usr/bin/env bash
#
# openvpn_client_stats.sh:
# OpenVPN client stats monitoring script for Zabbix
#
# $1: OpenVPN server host IP/hostname. (default: 127.0.0.1)
# $2: OpenVPN management CLI port. (default: 7505)
# $3: Password file for OpenVPN management CLI. (default: <none>)
# $4: Timeout(sec) (default: 3)
# $5: OpenVPN client host parameter(<SERVER>_<IP>_<CN>)
@alice-xu
alice-xu / virsh_vm_stats.sh
Created June 30, 2014 01:38
Virtual Machine monitoring script for Zabbix
#!/usr/bin/env bash
#
# virsh_vm_stats.sh:
# Virtual Machine monitoring script for Zabbix
#
# $1: Virtual Machine dom-uuid
#
# script settings.
export LANG='en_US.UTF-8'
@alice-xu
alice-xu / proc_mem.sh
Created July 1, 2014 01:57
Process memory monitoring script for Zabbix
#!/usr/bin/env bash
#
# proc_mem.sh:
# Process memory monitoring script for Zabbix
#
# $1: process name
# $2: effective user name
# $3: mode(sum/max/min/avg)
# $4: args pattern
#
@alice-xu
alice-xu / memcached_stats.sh
Created July 1, 2014 02:46
Memcached monitoring script for Zabbix
#!/usr/bin/env bash
#
# memcached_stats.sh:
# Memcached monitoring script for Zabbix
#
# $1: Memcached host(default: 127.0.0.1)
# $2: Memcached port(default: 11211)
# $3: Timeout(default: 3[sec])
#
@alice-xu
alice-xu / get_system_uuid.sh
Created July 1, 2014 04:01
Get system uuid on Virtual Machine
#!/usr/bin/env bash
SYSTEM_UUID=$( cat /sys/devices/virtual/dmi/id/product_uuid 2> /dev/null | tr 'A-Z' 'a-z' \
|| cat /sys/hypervisor/uuid 2> /dev/null | tr 'A-Z' 'a-z' )
[ -z "${SYSTEM_UUID}" ] && SYSTEM_UUID='00000000-0000-0000-0000-000000000000'
echo ${SYSTEM_UUID}
@alice-xu
alice-xu / tcp_listen_port_discovery.sh
Created July 30, 2014 06:43
TCP listen port discovery for Zabbix LLD
#!/usr/bin/env bash
PROCNAME="$1"
PORT_LIST=$(ss -nap|grep LISTEN|grep \"${PROCNAME}\" \
|awk '{ print $4 }'|sed -e 's/.*://g'|sort|uniq)
[ -z "${PORT_LIST}" ] && echo ZBX_NOTSUPPORTED && exit 1
{
echo "{"
echo " \"data\":["
for PORT in ${PORT_LIST}; do
@alice-xu
alice-xu / tcp_stats.sh
Created February 25, 2015 03:47
TCP state monitoring script for Zabbix
#!/usr/bin/env bash
#
# tcp_stats.sh:
# TCP state monitoring script for Zabbix
#
POLLING_TIME=$( date '+%s' )
NETSTAT_TCP_RESULT=$( netstat -na|grep '^tcp' )
if [ $? -ne 0 ]; then
@alice-xu
alice-xu / zabbix_custom_template_for_OpenVPN.xml
Last active February 24, 2016 20:29
Custom Template - OpenVPN for Zabbix
<?xml version="1.0" encoding="UTF-8"?>
<zabbix_export>
<version>2.0</version>
<date>2014-06-29T06:40:14Z</date>
<groups>
<group>
<name>Custom Templates</name>
</group>
<group>
<name>OpenVPN clients</name>