Перейти к содержанию

Рисуем график онлайна (munin)


poiuty

Рекомендуемые сообщения

e6b4817d475bd7e66d4c0ac7303e.png

mysql online - показывает онлайн "из базы", живые + мерчи

SELECT COUNT(*) as total FROM `char` WHERE online = 1;

netstat online (map server) - это количество активных соединений (мап сервер), показывает реальный онлайн, без мерчей и т.д.

netstat -n | grep "ESTABLISHED" | grep ":5121" | awk '{print ($1);}' | uniq -c | awk '{print ($1);}'

Аналогично с netstat char & login


#!/bin/sh
# Athena online, munin plugin by poiuty

EA_SERV='/server/conf'

if [ "$1" = "config" ]; then
echo 'graph_title Athena Online Users'
echo 'graph_args --base 1000'
echo 'graph_category Athena'
echo 'graph_info This graph shows the *Athena server online users.'

echo 'graph_vlabel online'
echo 'athena_mysql.label mysql online'
echo 'athena_mysql.info MySQL online stats'

echo 'athena_netstat_map.label netstat online (map server)'
echo 'athena_netstat_map.info NETSTAT online stats'

echo 'athena_netstat_char.label netstat char server'
echo 'athena_netstat_char.info NETSTAT char server'

echo 'athena_netstat_login.label netstat login server'
echo 'athena_netstat_login.info NETSTAT login server'

exit 0
fi


LOGIN=$(cat $EA_SERV/inter_athena.conf | grep 'char_server_id:' | sed 's/char_server_id: //g')
PASSWD=$(cat $EA_SERV/inter_athena.conf | grep 'char_server_pw:' | sed 's/char_server_pw: //g')
DB=$(cat $EA_SERV/inter_athena.conf | grep 'char_server_db:' | sed 's/char_server_db: //g')


echo 'SELECT COUNT(*) as total FROM `char` WHERE online = 1;' | mysql $DB -u$LOGIN -p$PASSWD | sed ':a;N;$!ba;s/\n/ /g' | sed s/[^0-9]//g | xargs -r printf "athena_mysql.value %s\n"
netstat -n | grep "ESTABLISHED" | grep ":5121" | awk '{print ($1);}' | uniq -c | awk '{print ($1);}' | xargs -r printf "athena_netstat_map.value %s\n"
netstat -n | grep "ESTABLISHED" | grep ":6121" | awk '{print ($1);}' | uniq -c | awk '{print ($1);}' | xargs -r printf "athena_netstat_char.value %s\n"
netstat -n | grep "ESTABLISHED" | grep ":6900" | awk '{print ($1);}' | uniq -c | awk '{print ($1);}' | xargs -r printf "athena_netstat_login.value %s\n"

Изменено пользователем poiuty
  • Upvote 4
Ссылка на комментарий
Поделиться на другие сайты

×
×
  • Создать...
Яндекс.Метрика