1.Установка скрипта
1 |
# mkdir /etc/zabbix/scripts/ |
1 |
# chown root:zabbix -R /etc/zabbix/scripts/ |
1 |
# chmod 750 /etc/zabbix/scripts/ |
1 |
# nano /etc/zabbix/scripts/memcache-stats.sh |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
#!/bin/bash ##### OPTIONS VERIFICATION ##### if [[ -z "$1" || -z "$2" ]]; then exit 1 fi ##### PARAMETERS ##### RESERVED="$1" METRIC="$2" NC=$(which nc) CACHE_TTL="55" CACHE_FILE="/tmp/zabbix.memcache.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}" # !!! ###Ubuntu DATACACHE=`echo -e "stats\nquit" | ${NC} -q2 127.0.0.1 11211` ###Centos # DATACACHE=`echo -e "stats\nquit" | ${NC} 127.0.0.1 11211` echo "${DATACACHE}" > "${CACHE_FILE}" # !!! chmod 640 "${CACHE_FILE}" fi # cat "${CACHE_FILE}" | grep -i "STAT ${METRIC} " | awk '{print $3}' | head -n1 # exit 0 |
Необходимо установить пакет nc
В зависимости от дистрибутива
1 |
# yum install nc |
1 |
# apt-get install netcat-openbsd |
В скрипте нужно использовать запуск команды nc (переменная DATACACHE) в зависимости от дистрибутива (в Centos nc не использует опцию -q2)
Установка прав
1 |
# chown root:zabbix /etc/zabbix/scripts/memcache-stats.sh |
1 |
# chmod 550 /etc/zabbix/scripts/memcache-stats.sh |
Скрипт предусматривает кеш, что позволяет сократить количество реальных обращений к серверу.
Время действия кеша в секундах должно устанавливается чуть меньше чем интервал обновления элементов(по умолчанию в скрипте используется кеширование на 55 секунд, а интервал обновления элементов в шаблоне настроен на 60 секунд)
Проверяем работу скрипта
1 |
# sudo -u zabbix /etc/zabbix/scripts/memcache-stats.sh "none" uptime |
1 |
6120 |
Если для проверки скрипт запускался с правами root, то он будет владельцем кэш файла — удалите кеш файл после проверок.
2.Настройка Zabbix-агента
1 |
# nano /etc/zabbix/zabbix_agentd.conf |
1 2 |
###Memcache Monitoring UserParameter=memcache[*],/etc/zabbix/scripts/memcache-stats.sh "none" "$1" |
Перезапуск агента
1 |
# service zabbix-agent restart |
Проверяем локально на агенте
1 |
# zabbix_get -s 127.0.0.1 -k "memcache[uptime]" |
1 |
6214 |
3.Настройка Zabbix-сервера
Скачиваем, распаковываем и импортируем шаблон zabbix2-mytemplate-memcache-agent.xml
zabbix2-mytemplate-memcache-agent.zip
Применяем шаблон к хосту
Проверяем,что через 1-2 минуты на хосте появились Item с именем Memcache
1 |
Monitoring->Latest Data->фильтруем по требуемому хосту в поле Hosts->Memcache |
Примеры графиков
Источник:
http://wiki.enchtex.info/howto/zabbix/zabbix_memcache_monitoring