Статистика для IceCast2
03.07.2011Сегодня я расскажу вам как сделать статистику icecast2 в виде графика, используя MRTG и скрипт на php.
Для этого нам понадобится:
- Сервер IceCast2
- MRTG(программа для построения графиков)
- Доступ к серверу по ssh
Установка MRTG.
Установить MRTG в debian и ubuntu можно командой :
apt-get install mrtg
На этом собственна и вся установка, так что переходим к настройке.
Настрока MRTG
После установки файл конфигурации MRTG должен находит в /etc/mrtg.cfg, отредактируем его:
nano /etc/mrtg.cfg
ВАЖНО!
Если собираетесь использовать MRTG только для снятия статистики IceCast2, то можете смело удалять все содиржимое конфига, и вставить следующие строки:
Interval: 5 RunAsDaemon: yes Refresh: 300 Language: russian WorkDir: /var/www/pipradio.net/web/statistica WriteExpires: Yes WithPeak[_]: dwmy XSize[_]: 600 YSize[_]: 200 Title[^]: Graphs:
Тут не много объясню, что к чему.
Interval: 5
Время обновления графиков в минутах.
RunAsDaemon: yes
Стартовать MRTG как демон.
WorkDir: /var/www/pipradio.net/web/statistica
Папка куда будут складываться файлы.(можно создать например поддомен ice.pipradio.com)
XSize[_]: 600 YSize[_]: 200
Размер графиков.
Теперь создаем скрипт, который будет собирать статистику радио со всех потоков:
nano /etc/allstat.php
И втсавляем следующие:
#!/usr/bin/php < ?php $file_name='http://pipradio.net:9500/status2.xsl'; $r=fopen($file_name,'r'); $text=fread($r,1000); fclose($r); $mass=explode(",", $text); $list=$mass [9]; $mas=explode (" ", $mass [7]); $ti=substr($mas [0],7); $day=floor($ti/86500); $he=floor(($ti-$day*86500)/3600); $mi=floor(($ti-$day*86500-$he*3600)/60); $upt="".$day." days, ".$he." hours, ".$mi." minutes."; $s=0; echo $list."n"; echo $s."n"; echo $upt."n"; echo "/all"; ?>
Если же вы хотите снимать статистику с какого-то одного потока, то скрипт будет выглядить так:
#!/usr/bin/php < ?php $file_name='http://pipradio.net:9500/status2.xsl?mount=/nonstop; $r=fopen($file_name,'r'); $text=fread($r,1000); fclose($r); $mass=explode(",", $text); $list=$mass [14]; $mas=explode (" ", $mass [7]); $ti=substr($mas [0],7); $day=floor($ti/86500); $he=floor(($ti-$day*86500)/3600); $mi=floor(($ti-$day*86500-$he*3600)/60); $upt="".$day." days, ".$he." hours, ".$mi." minutes."; $s=0; echo $list."n"; echo $s."n"; echo $upt."n"; echo "/all"; ?>
Где ?mount=/nonstop’; название потока(точки монтирования icecast)
Теперь даем права на выполнение скрипта:
chmod 755 /etc/allstat.php
И добавляем наш скрипт в конфиг MRTG:
nano /etc/mrtg.cfg
Вниз вставляем:
Target[all]: `/etc/allstat.php` Options[all]: nopercent, integer, gauge MaxBytes[all]: 1000 AbsMax[all]: 1000 Title[all]: Listens PageTop[all]:All Listens YLegend[all]: # of connections ShortLegend[all]: L/s Legend1[all]: # of listeners Legend2[all]: Legend3[all]: Maximal # of listeners Legend4[all]: LegendI[all]: # of listeners: LegendO[all]
ВАЖНО!
Если хотите видеть статистику по потокам, обратите внимание на [all] это индификатор графика, он должен быть разным для каждого потока
Попробуем запустить MRTG
env LANG=C /usr/bin/mrtg /etc/mrtg.cfg
Если ошибок вида Target[all][_IN_] ‘ $target->[1]{$mode}
нет ,значит все хорошо, если есть, проверьте ваш сервер, и в случаи снятия статистики с отдельного потока, проверьте есть ли он.
Теперь нам нужно создать файл index.html, для этого используем команду:
indexmaker mrtg.cfg > /var/www/pipradio.net/web/statistica
После чего заходим смотреть нашу статистику по адресу pipradio.net/statistica
На этом настройка завершена, графики должны заработать.
В примере указан сайт pipradio.net , у вас должен быть другой путь и другая рабочая папка.
Если возникли вопросы пишите в комментариях.
root@s:~# indexmaker mrtg.cfg > /var/www/html/stat
[1] 1233
-bash: gt: command not found
-bash: /var/www/html/stat: Is a directory
root@s:~# ERROR: unable to open config file: mrtg.cfg
у меня вот такая ошибка выходит. в чем может быть проблема? делал все как написано
Подный путь к конфигу mrtg пишите
C этим разобрался. проблема сейчас в другом. статистика не ведется http://s.gnabi.com/stat/all.html а последний час ничего не изменилось
в php ошибок нет случайно? почему то график пустой выходит
график пустой бывает если версия icecast 2.3.3-kh7 или просто еще крон не обновился
А как кррн настроить не подскажете?
да, у меня 2.3.3 версия
Попробуте для статистики использовать munin или monitorix
a mozeti podpravit pod novij icecast i icecast kh version?
используйте munin