Мониторинг параметров MySQL в Zabbix

Создадим директорию для скриптов:
sudo mkdir /etc/zabbix/scripts/
sudo chown root:zabbix -R /etc/zabbix/scripts/
sudo chmod 750 /etc/zabbix/scripts/

Сам скрипт для мониторинга параметров MySQL:

#!/bin/bash
##### OPTIONS VERIFICATION #####
if [[ -z "$1" || -z "$2" ]]; then
  exit 1
fi
##### PARAMETERS #####
RESERVED="$1"
METRIC="$2"
USER="${3:-user}"
PASS="${4:-pass}"
#
MYSQLADMIN="/usr/bin/mysqladmin"
MYSQL="/usr/bin/mysql"
CACHE_TTL="55"
CACHE_FILE="/tmp/zabbix.mysql-stats.cache"
EXEC_TIMEOUT="1"
NOW_TIME=`date '+%s'`
##### RUN #####
if [ "${METRIC}" = "alive" ]; then
  ${MYSQLADMIN} -u${USER} -p${PASS} ping | grep alive | wc -l | head -n1
  exit 0
fi
if [ "${METRIC}" = "version" ]; then
  ${MYSQL} -V | sed -e 's/^.*\(ver.*\)$/\1/gI' | head -n1
  exit 0
fi
#
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=`${MYSQLADMIN} -u${USER} -p${PASS} extended-status 2>&1`
  echo "${DATACACHE}" > "${CACHE_FILE}" # !!!
  chmod 640 "${CACHE_FILE}"
fi
#
cat "${CACHE_FILE}" | grep -iw "$METRIC" | cut -d'|' -f3 | head -n1
#
exit 0

Установим скрипту владельца и права:
sudo chown root:zabbix /etc/zabbix/scripts/mysql-stats.sh
sudo chmod 550 /etc/zabbix/scripts/mysql-stats.sh

Проверка работы скрипта:
sudo -u zabbix /etc/zabbix/scripts/mysql-stats.sh none questions ИМЯ ПАРОЛЬ

Просмотр списка возможных параметров по которым можно просматривать статистику:
mysqladmin -uroot -p extended-status

Добавляем указанную ниже строку в конфигурационный файл zabbix-агента /etc/zabbix/zabbix_agentd.conf:

UserParameter=mysql-stats[*],/etc/zabbix/scripts/mysql-stats.sh "none" "$1" [USER] [PASSWORD]

Перезапуск zabbix агента чтобы изменения вступили в силу:

/etc/init.d/zabbix-agent restart

Проверка:

sudo zabbix_get -k 'mysql-stats[questions]' -s 127.0.0.1

Добавить комментарий