Мониторим Memcached в Zabbix

Мониторим Memcached в Zabbix

Недавно я рассказывал как мониторить Nginx в Zabbix. Сегодня я остановлюсь на мониторинге системы кэширования Memcached.

Memcached без проблем умеет показывать свою статистику. Для этого нужно подключиться с помощью telnet к системе кэширования и ввести команду stat. Также можно использовать вот такую команду в консоли:

echo -e "stats\nquit" | nc 127.0.0.1 11211

Данная команда выведет статиситку работы (это конечно при условии, что memcached запущен на том же сервере, где вы запускаете команду и он использует стандартный порт 11211, в другом случае вместо 127.0.0.1 нужно указать свой сервер с memcached и вместо 11211 порт который определен в вашей конфигурации<):

# echo -e «stats\nquit» | nc 127.0.0.1 11211 
STAT pid 855
STAT uptime 76968
STAT time 1441850908
STAT version 1.4.14 (Ubuntu)
STAT libevent 2.0.21-stable
STAT pointer_size 64
STAT rusage_user 8.090747
STAT rusage_system 7.953593
STAT curr_connections 11
STAT total_connections 59299
STAT connection_structures 20
STAT reserved_fds 20
STAT cmd_get 154202
STAT cmd_set 49752
STAT cmd_flush 0
STAT cmd_touch 0
STAT get_hits 96349
STAT get_misses 57853
STAT delete_misses 7742
STAT delete_hits 1972
STAT incr_misses 0
STAT incr_hits 0
STAT decr_misses 0
STAT decr_hits 0
STAT cas_misses 0
STAT cas_hits 0
STAT cas_badval 0
STAT touch_hits 0
STAT touch_misses 0
STAT auth_cmds 0
STAT auth_errors 0
STAT bytes_read 110468850
STAT bytes_written 694180746
STAT limit_maxbytes 67108864
STAT accepting_conns 1
STAT listen_disabled_num 0
STAT threads 4
STAT conn_yields 0
STAT hash_power_level 16
STAT hash_bytes 524288
STAT hash_is_expanding 0
STAT expired_unfetched 7902
STAT evicted_unfetched 0
STAT bytes 11489176
STAT curr_items 9694
STAT total_items 46048
STAT evictions 0
STAT reclaimed 8478
END

Статистика достаточно полная, поэтому будем ее использовать для работы с Zabbix.

Действовать будем по аналогии, как мы делали с Nginx.

Сначала мы создадим скрипт в паке пользовательских скриптов системы мониторинга:

touch /usr/share/zabbix-agent/scripts/memcached.sh

Откроем файл memcached.sh любым удобным нам редактором, н.р. emacs и введем следующий код:

#!/bin/bash
#Хост
HOST='127.0.0.1'
#Порт
PORT='11211'
echo -e "stats\nquit" | nc $HOST $PORT | grep "STAT $1 " | awk '{print $3}'

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

chmod +x /usr/share/zabbix-agent/scripts/memcached.sh

Следующий шаг — научить Zabbix-Agent пользоваться нашим скриптом для получения данных. Для этого создадим файл конфигурации с именем memcached.conf в папке /etc/zabbix/zabbix_agentd.d/

UserParameter=memcache[*],/usr/share/zabbix-agent/scripts/memcached.sh $1

Перезапускаем Zabbix Agent и идем в фронтенд Zabbixa. Добавляем шаблон для Memcached, подключаем к нужному хосту и собственно все.

В результате будем получать вот такие графики:

Memcached Zabbix hit and miss Memcached Zabbix Resource usage Memcached Zabbix Requests per second Memcached Zabbix Network traffic Memcached Zabbix Items per second Memcached Zabbix Curent open connections Memcached Zabbix Curent Items Memcached Zabbix Connections per second

Получить все скрипты/файлы конфигураций можно в моем GIT-репозитории

comments powered by HyperComments