Munin plugin, пример.
Так получилось, что однажды, в целях ознакомления, поставленная система мониторинга Munin покорила меня своей простотой. С тех пор я нею и пользуюсь.
После недавних работ с геймсервером (была снесена FreeBSD, установлен CentOS), мунин законно встал и тут.
Захотелось анализировать загруженность игровых серверов. Полез делать плагин для Munin.
Что имеется:
- 3 игровых сервера
- Мониторинг серверов: lgsl
- Munin
Пишем плагин.
Для упрощения, я разбил систему информирования на составляющие. Т.е. для каждого сервера выдачу количества игроков на сервере ведет свой скрипт.
Код одного из таких скриптов, назовем его server1.sh:
#!/usr/bin/php <?php error_reporting(0); require "/www/lgsl2/lgsl_files/lgsl_class.php"; $server_list = lgsl_query_cached_zone($lgsl_config['players'][0] ? "sp" : "s", 0); $server_list = lgsl_sort_servers($server_list); // print_r($server_list); $results=$server_list[1]['s']; //номер сервера узнаем из таблицы мониторинга lgsl echo $results['players']; //выводит количество игроков на этом сервере ?>
Делаем скрипт исполняемым:
chmod +x server1.sh
Проверяем выдачу результатов работы скрипта.
Делаем скрипты server2.sh и server3.sh и идем писать плагин.
В директории /usr/share/munin/plugins я взял первый плагин, который не использовал и заменил (а также переименовал) его содержимое на:
#!/bin/bash if [ "$1" = "config" ]; then echo 'graph_title MegaStyle game servers players' echo 'graph_args --base 1000 -r --lower-limit 0 --upper-limit 50' echo 'graph_vlabel players' echo 'player.label Red Orchestra players' echo 'tfplayer.label Team Fortress2 players' echo 'q3player.label Quake3 players' echo 'graph_category games' exit 0 fi echo "player.value" $(/www/lgsl2/server1.sh) echo "tfplayer.value" $(/www/lgsl2/server2.sh) echo "q3player.value" $(/www/lgsl2/server3.sh)
делаем плагин активным:
ln -s /usr/share/munin/plugins/нашплагин /etc/munin/plugins
рестартим ноду:
service munin-node restart
и идем глядеть результат на графике:
Полезное
Фейсбук для графиков
Для построения графиков можно поставить где-то на хостинге Munin И написать к нему плагинчик.
Или пойти более олдскульным путем и заюзать rrdtool напрямую. А можно не заморачиваться, и скормить свои данные полезному сервису, который нарисует и сохранит все Ваши графики.
Я, для примера, вывел данные о посещаемости RO-сервера: https://cosm.com/feeds/97476
Для начала хватит и этой доки: https://cosm.com/docs/v2/feed/update.html
PS: попутно нашел хороший сервис для проверки (GET, POST) запросов: http://www.hurl.it/
Проверить почту из bash
Скрипт, нарытый на просторах и немного доработанный. Возвращает количество непрочитанных сообщений.
atomlines=`wget -T 3 -t 1 -q --secure-protocol=TLSv1 --no-check-certificate --user=USERNAME@gmail.com --password=PASSWORD \ https://mail.google.com/mail/feed/atom/LABEL -O - | grep -Po '^.*?\K(?).*?(?= echo $atomlines
LABEL — это новые письма по метке, можно убрать, тогда будет просто инбокс
https://api.cosm.com/v2/feeds/97476/datastreams/players.png?width=730&height=250&colour=%23f15a24&duration=1day&show_axis_labels=true&detailed_grid=true&scale=auto&timezone=UTC
Для себя
Вот такое странное выражение я обнаружил у себя в черновиках:
??—›V
Навряд ли это что-то означает, но выглядит неплохо.
Подведу промежуточный итог выставления сервера на колокейшн:
- В работе 1 сайт: www.andboson.net
- Удобная статистика piwik.
- Мониторинг munin.
- Обкатан и работает nginx.
На этом пока активные работы с сервером закончены. Ищу вдохновения для проектов.