Статьи

Мониторинг статистики из Memcached или Membase (Python, RRDTool)

memcached_stats_rrd.py — это скрипт для мониторинга и отображения статистики из Memcached или Membase.

Memcached — это высокопроизводительная система кеширования объектов с распределенной памятью, а Membase — это связанная система управления базами данных по ключам. Оба с открытым исходным кодом, с упакованными / коммерческими версиями, распространяемыми NorthScale . Они оба используют протокол memcached для связи, поэтому этот сценарий будет работать против ванильной установки memcached или против мембранного сервера / кластера.

Для получения дополнительной информации:


исходный код скрипта: memcached_stats_rrd.py

Этот скрипт полезен для специального мониторинга или долгосрочного анализа тренда / емкости. Он собирает данные, сохраняет их в базах данных RRD и выводит графики и статистику в виде изображений PNG. Вы можете отслеживать любую статистику, которую публикует memcached / membase, и отображать ее на графике за указанный промежуток времени. Он будет генерировать файл изображения для каждой статистики, для каждого выбранного промежутка времени.

Эта мини-система мониторинга построена с:

Пример графика / вывода изображения:

(bytes_read, промежуток времени 3 часа, интервал сбора 60 секунд)

 

(mem_used, временной интервал 1 час, интервал сбора 60 секунд)

Он будет генерировать изображения в указанном вами каталоге. У меня установлен веб-сервер Apache, обслуживающий контент из выходного каталога для удобного просмотра в Интернете. Вы можете обернуть изображения в некоторый HTML-код и создать небольшую панель для просмотра всего кластера memcached / membase, например:

 

(Временной интервал 4 часа, интервал сбора 60 секунд, 2 узла, 3 статистики в каждом)


Инструкции…

1) Установить предпосылки

Вам понадобится следующее установленное программное обеспечение:

  • Python 2.x
  • python-memcached (memcached клиент для Python)
  • RRDTool (циклическая база данных, бэкэнд логирования / построения графиков)

в Debian / Ubuntu:

$ sudo apt-get install -y python-memcache
$ sudo apt-get install -y rrdtool

2) Настройте скрипт

В верхней части скрипта есть несколько параметров конфигурации:

# Config Settings
NODES = ('192.168.1.3:11211', '192.168.1.4:11211')
INTERVAL = 60
STATS = (('curr_items', 'GAUGE'), ('bytes_written', 'COUNTER'))
GRAPH_MINS = (60, 180)
GRAPH_DIR = '/var/www/'

Определения параметров конфигурации:

  • NODES: список узлов memcached / membase для мониторинга.
  • ИНТЕРВАЛ: интервал сбора в секундах. Это должно быть то же значение, которое вы запланировали для запуска скрипта.
  • STATS: список кортежей, содержащих (stat_name, datasource_type), где «stat_name» — это memcached / membase stat, а «datasource_type» — тип источника данных RRDTool (DST). Наиболее полезными типами источников данных являются GAUGE и COUNTER. Датчик используется для сообщения текущего значения, а счетчик — для счетчиков с непрерывным приращением. (см. http://oss.oetiker.ch/rrdtool/doc/rrdcreate.en.html для получения дополнительной информации об источниках данных RRD)
  • GRAPH_MINS: список минут, соответствующих промежуткам времени, отображаемым на выходных графиках. Изображение для каждой статистики генерируется для каждого значения здесь.
  • GRAPH_DIR: каталог для создания изображений в.

После того, как вы настроили скрипт, сделайте его исполняемым:

$ chmod +x memcached_stats_rrd.py

3) Расписание сценария

Вы можете добавить запись в ваш crontab (crontab -e), чтобы cron запускал ее регулярно. В данном примере используется интервал 60 секунд (1 минута):

*/1 * * * * /home/perfserver/memcached_stats_rrd.py

[Эти инструкции предназначены для Linux / Unix, но вы можете настроить аналогичную систему в Windows, используя Task Scheduler вместо cron. Код в memcached_stats_rrd.py работает кроссплатформенно.]