memcached_stats_rrd.py — это скрипт для мониторинга и отображения статистики из Memcached или Membase.
Memcached — это высокопроизводительная система кеширования объектов с распределенной памятью, а Membase — это связанная система управления базами данных по ключам. Оба с открытым исходным кодом, с упакованными / коммерческими версиями, распространяемыми NorthScale . Они оба используют протокол memcached для связи, поэтому этот сценарий будет работать против ванильной установки memcached или против мембранного сервера / кластера.
Для получения дополнительной информации:
- Memcached: http://memcached.org
- Membase: http://membase.org
исходный код скрипта: memcached_stats_rrd.py
Этот скрипт полезен для специального мониторинга или долгосрочного анализа тренда / емкости. Он собирает данные, сохраняет их в базах данных RRD и выводит графики и статистику в виде изображений PNG. Вы можете отслеживать любую статистику, которую публикует memcached / membase, и отображать ее на графике за указанный промежуток времени. Он будет генерировать файл изображения для каждой статистики, для каждого выбранного промежутка времени.
Эта мини-система мониторинга построена с:
- питон-Memcached
- RRDTool
- cron (или другой планировщик заданий / заданий)
Пример графика / вывода изображения:
(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 работает кроссплатформенно.]