Ще трохи фкусної статистики (icecast2 awstats freebsd) (Сторінка 1) - Мануали - SHOUTcast форум

Щоб надіслати відповідь, ви повинні увійти або зареєструватися

Повідомлень 6

1 Тема від Klef 08-01-2010 07:54:23

  • Klef
  • Тут мешкає
  • Неактивний
  • Звідки:127.0.0.1
  • Зареєстрований:28-01-2009
  • Повідомлень:468

Тема: Ще трохи фкусної статистики (icecast2 + awstats + freebsd)

Задався якось я метою більш красиво дивитися на статистику слухачів, звідки, скільки слухають і т.д.

з якого можна побачити час доступу, ip, плеєр, який потік слухає і скільки він таки слухав. Відразу зірвавшись у бурю коду, я почав писати аналізатор логів, але нарвавшись на такий окремий випадок, що деякі плеєри відображаються погано ("WinampMPEG /5.56, Ultravox/2.1") що для аналізу було не дуже добре. Пробившись кілька днів з цим завданням, я вирішив помучать гугл, на тему, а що це я такий розумний, ідея явно приходила комусь і раніше в голову , і явно була кимось реалізована. Після декількох годин пошуків, і відмітки у бік непотрібних варіантів (нам все ж таки потрібен аналіз існуючих логів) я знайшов, що чудовий модуль статистики awstats виявляється вміє працювати з icecast. Все виявилося просто і швидкоплинно, правкою всього кількох рядків конфіга(у мене просто стоїть вже давно awstats, для аналізу логів apache)

Якщо ви вдало пройшли етап установки awstats, дивіться здивованими очима на нову статистику вашого вебсервера, то можна приступати до годівлі логів icecast./etc/awstats ) знаходимо тамawstats.default.conf, копіюємо його

(так, я не можу користуватися vi)

знаходимоLogFile= шлях до лог файлу, правимо на потрібний:LogFile="/var/log/icecast/access.log" далі знаходимоLogType =, там має стоятиLogType=W, перетворюємо його наLogType=S шукаємоSiteDomain="default" і обзиваємо його як хочемо (це фактично просто назва) запускаємо апдейт статистики

чекаємо, і ліземо власне дивитись що вийшло http://localhost/cgi-bin/awstats.pl?config=radio

якщо ви не експериментували з шляхами з вищевказаного манула, то всі шляхи швидше за все так і зватись, як у мене ТАТАМ

Фактично все. Але в мене особисто вилізли наступні граблі: 1. т.к. у мене висять графіки на mrtg, то звернення від мого ip досить багато (псування статистики) 2. Крім access.log є access.log.old, у якому лежать дані за період, ніж у access.log 3. Крім звернення до потоків там також будуть дані про запити плейлиста (m3u), вебінтерфейс icecast та іншого.

З першим боремося обробкою лога shel скриптом. З другим, просто склеїти обидва лога, перед першим запуском. Третій теж йшов скрипт, який генерує вже лог з потрібними нам даними, і створення ще одного конфігу для awstats. Т.к. я створення лінива, то це все об'єднав все в один скрипт і закинув у крон.

Ініціалізація, видалення тимчасових файлів після минулого запуску, склеювання двох файлів

Чому я видаляю тимчасові файли до основної роботи, а не після це можна віднести на дитячу психологічну трамву, і бажання іноді залізти і подивитися а як воно відпрацювало.

Виміщення рядків з непотрібними ip

перший рядок це власне мійзовнішній ip на якому вся справа крутиться, друга локалхост, третя моя внутрішня локалка. Відповідно крім локалхосту, ваші ip можу відрізнятися, або, наприклад, немає локалки.

терь вирізаємо дані тільки по потоках.

/mount1 і /mount2 це імена потоків, у мене їх більше, але два для прикладу вистачить, додавання додаткових потоків до списку обробки шляхом копіювання другого рядка, з наступною правкою.Пробіл після імені потоку важливий!

тобто. в результаті у нас є два файлики з потрібними даними.

та й копіюємо отримані файли під осмисленими іменами в попередньо створену директорію. Їх можна зберігати і з оригінальними логами від icecast'а (тоді не забувайте поміняти access.log у щось інше, щоб не затерти існуючий) У результаті у нас є даний код:

який ми і зберігаємо в зручне місце, щоб не втратити, даємо йому права на виконання (chmod) і прописуємо в крон.

Далі керуємо файл awstats.radio.conf (не забувши потерти дані від цього конфіга, які лежать в окремій директорії (т.к. звана робоча директорія awstats) вказавши новий лог файл /var/log/icecast2/access.log і створюємо копію awstats.radio.conf, назвавши його awstats.mount.conf, де змінюємо шлях до логів /var/log/icecast2/mount.log та SiteDomain.

перезапуску awstats_updateall.pl now і дивимося на результат.

Лінки на те що вийшло у мене, не надам, бо там є ip слухачів, до того ж це перл

Майте на увазі, що це не покрокова інструкція, а інформація для роздумів, і черговий шлях до самовдосконалення. А деякі аспекти змінних, коду та іншого залежить від фази місяця, положення зірок, і у вас [s] має [/s] може відрізнятися від зазначеного вище.

Додано через 9 хвилин 29 секунд: ВЗагалом звичайно там є інформація, яка мені не потрібна, і нема чого потрібно, але все одно графіки симпатичні виходять :) та й за допомогою цього є багато фкусного.

Відредаговано Klef (10-01-2010 06:15:02)