Статистика для сайта — AWStats

By Anton Vanyukov|15 Июн 2009|Categories: Информационные Технологии|Tags: IT, unix|0 Comments

Помимо возможности управления сервером через веб-интерфейс, хорошо бы иметь хорошую статистику по веб-сайтам. Мой выбор пал на AWStats. AWStats представляет из себя анализатор лог файлов, который генерирует отчеты в HTML с таблицами и графиками. Так же AWStats интегрируется с Webmin, о котором я рассказывал в предыдущей статье.

Установка

Ставить AWStats я решил из портов. Так проще отслеживать изменения в версиях. # cd /usr/ports/www/awstats/ # make install clean

 # cd /usr/ports/www/awstats/
# make install clean 

В опциях установки предлагается включить поддержку IPv6. Лично мне это не надо — отключил. Если интересно почитать документацию, то она устанавливается в /usr/local/share/doc/awstats.

Настройка

Есть два способа настройки — ручной и с помощью скрипта. Быстренько расскажу про оба способа. Внимание! Если выбирается второй способ, то учтите, что файл конфигурации Apache надо будет все равно править потом руками, т.к. скрипт установки допускает в нем ошибку!!!

1. Настраиваем все сами

После установки, надо переименовать файл /usr/local/www/awstats/cgi-bin/awstats.model.conf в awstats.site.conf для настройки AWStasts. Так же надо добавить следующие строчки в файл /usr/local/etc/apache22/httpd.conf:
Alias /awstatsclasses «/usr/local/www/awstats/classes/»
Alias /awstatscss «/usr/local/www/awstats/css/»
Alias /awstatsicons «/usr/local/www/awstats/icons/»
ScriptAlias /awstats/ «/usr/local/www/awstats/cgi-bin/»
<Directory «/usr/local/www/awstats/»>
<Files «awstats.pl»> AuthUserFile /usr/local/etc/apache22/passwd
AuthGroupFile /usr/local/etc/apache22/group
AuthName «Restricted Area For Customers»
AuthType Basic require valid-user
</Files>
Options None
AllowOverride All
Order allow,deny
Allow from all
</Directory>

Дальше надо перейти к следующему пункту, упустив всю установку скриптом.

2. Настраиваем с помощью скрипта

Так же есть более простой метод настройки — с помощью файла awstats_configure.pl. Но разработчики почему-то не учли, что данную программу люди будут ставить и на FreeBSD, где пути отличаются от дистрибутивов Linux. По этому, в скрипте есть недочеты, которые надо исправить. Данный файл находится в папке /usr/local/www/awstats/tools/. Прежде чем что-то запускать, надо отредактировать файл. Нужно удалить wwwroot в значениях переменных для всех директорий. Открываем awstats_configure.pl любым редактором и приводим следующие секции к такому виду:

# примерно строчки 327-330 $AWSTATS_ICON_PATH=»$AWSTATS_PATH/icon»; $AWSTATS_CSS_PATH=»$AWSTATS_PATH/css»; $AWSTATS_CLASSES_PATH=»$AWSTATS_PATH/classes»; $AWSTATS_CGI_PATH=»$AWSTATS_PATH/cgi-bin»;

# примерно строчка 486 if ($_ =~ /Directory «$awstats_path_quoted»/) { $awstatsdirectoryfound=1; }

# строчка 530 <Directory «$AWSTATS_PATH»>

# строчка 549 if (-f «$AWSTATS_PATH/cgi-bin/awstats.model.conf») { $modelfile=»$AWSTATS_PATH/cgi-bin/awstats.model.conf»;

# и парой строчек ниже if (! -s $modelfile || ! -w $modelfile) { $modelfile = «$AWSTATS_PATH/cgi-bin/awstats.model.conf»; }

Вот теперь мжоно запустить скрипт:

# cd /usr/local/www/awstats/tools/

# perl awstats_configure.pl

Сначала скрипт расскажет нам о преимуществах чтения документации, расскажет о том, что мы используем нестандартную папку (стандартная — /usr/local/awstast/) и спросит хотим ли мы продолжать. Соглашаемся. После этого надо будет ввести полный путь до конфигурационного файла Apache — /usr/local/etc/apache22/httpd.conf. Следующий вопрос — создавать ли новый конфиг для AWStats — да. Далее надо будет ввести ваш домен и путь, где будут храниться конфигурационные файлы AWStats (я указал /usr/local/etc/awstats/). Теперь скрипт скажет, что он еще не умеет добавлять задания в cron и предложит сделать нам это самим. Делается это вот так (первая команда — для одного конфига, вторая — для всех; выбрать надо одну):

 # /usr/local/www/astats/cgi-bin/awstats.pl -update -config=stats.vcore.ru
# /usr/local/www/awstats/cgi-bin/awstats_updateall.pl now 

Ну и последнее, что нам сообщит скрипт — это то, что конфигурационный файл был успешно создан, мы можем его сами редактировать. Так же, чтобы вручную обновить статистику для созданного сайта надо использовать команду:

 # perl awstats.pl -update -config=stats.vcore.ru 

Или же можно создать статические отчеты с помощью команды:

 # perl awstats.pl -output=pagetype -config=stats.vcore.ru 

 # указываем правильный лог файл
LogFile=»/var/log/httpd-access.log» 
# разрешаем использовать DNS для замены ip-адресов именами
DNSLookup=1 
# где хранится бд AWStatsDirData=»/var/db/awstats» 
# разные параметры для авторизации
AllowAccessFromWebToAuthenticatedUsersOnly=1
AllowAccessFromWebToFollowingAuthenticatedUsers=»user1 user2″
AllowAccessFromWebToFollowingIPAddresses=»192.168.0.3″ 
# плагин, отвечающий за подсказкиLoadPlugin=»tooltips»
# плагин, отвечающий за правильное отображение UTF-строк
LoadPlugin=»decodeutfkeys»
# инфо о хостахLoadPlugin=»hostinfo» 

Создаем директорию /var/db/awstats и устанавливаем на нее нужные нам права:

# mkdir /var/db/awstats
# chown www:www /var/db/awstats 

Редактируем файл /usr/local/etc/apache22/httpd.conf и приводим секцию Directory вот к такому виду (она в самом низу файла):

 <Directory «/usr/local/www/awstats/»>  
<Files «awstats.pl»>      
AuthUserFile /usr/local/etc/apache22/passwd     
AuthName «Restricted Area For Customers»     
AuthType Basic      require valid-user  
</Files>  
Options None
AllowOverride All
   Order allow,deny
   Allow from all
</Directory> 

Это нужно для того, чтобы использовать авторизацию для просмотра логов. Так же для удобства я создаю виртуальный хост stats.vcore.ru. Добавляем следующие строчки в файл /usr/local/etc/apache22/extra/httpd-vhosts.conf:

 <VirtualHost *:80>
ServerAdmin av3nger@list.ru
DocumentRoot «/usr/local/www/awstats»
ServerName stats.vcore.ru
ServerAlias www.stats.vcore.ru
</VirtualHost> 

Чтобы создать файл с паролями, который будет использоваться для авторизации пользователей, надо воспользоваться следующей командой:

 # htpasswd -c /usr/local/etc/apache22/passwd user 

где user — это имя создаваемого пользователя.

Использование

Ок. Пришло время для первого тестового запуска. Для начала, надо создать или обновить базу данных AWStats. Запускаем скрипт awstats.pl, который находится в папке /usr/local/www/awstats/cgi-bin/:

# perl awstats.pl -config=stats.vcore.ru -update

Будет следующий вывод на экран:
Create/Update database for config
«/usr/local/etc/awstats/awstats.stats.vcore.ru.conf»
From data in log file «/var/log/httpd-access.log»…
Phase 1 : First bypass old records, searching new record… Searching new records from beginning of log file…
Phase 2 : Now process new records (Flush history on disk after 20000 hosts)…
Jumped lines in file: 0
Parsed lines in file: 4909
Found 0 dropped records,
Found 2 corrupted records,
Found 0 old records,
Found 4907 new qualified records.

dropped records — отвечает за те записи, которые не соответствовал формату, указанному в конфиг файле, или не являлись валидными HTTP-запросами
corrupted records — это записи, которые не соответствую параметру «LogFormat» в конфиг файле AWStats; обычно таких записей не больше 5% даже на хорошо настроенных серверах
old records — записи, которые уже были просмотрены при прошлом запуске скрипта
new qualified records — записи, которые были использованы для наполнения базы данных AWStats

Теперь можно cоздать и просмотреть отчеты. Для этого важно, чтобы база уже была создана и наполнена, что мы только что сделали. Страницы создаются следующим образом:

# perl awstats.pl -config=stats.vcore.ru -output -staticlinks > awstats.stats.vcore.ru.html

Ну, можно зайти на и посмотреть отчеты:

http://stats.vcore.ru/awstats/awstats.pl

Если, вдруг, на странице будет какая-то ошибка, связанная с недостающим модулем Perl Escape, то поставить его можно вот так:

# perl -MCPAN -e shell # install URI::Escape

Интеграция с Webmin

1. Открываем Webmin, идем в раздел Webmin -> Webmin Configuration -> Webmin Modules
2. Открываем вкладку Install и указываем путь до файла awstats-x.x.wbm, который находится в папке /usr/local/www/awstats/tools/webmin/
3. Нажимаем кнопку Install Module
4. Открываем файл /usr/local/lib/webmin/awstats/defaultacl и редактируем там параметр dir: dir=/usr/local/etc/awstats ~/awstats

Добавить поддержку перла в апач:

# cd /usr/ports/www/mod_perl2/

# make install clean

Пример содержимого httpd.conf:

LoadModule perl_module libexec/apache2/mod_perl.so
...
<Directory /usr/local/www/awstats>
    Options +ExecCGI
    SetHandler perl-script
    PerlResponseHandler ModPerl::Registry
    PerlOptions +ParseHeaders

    AllowOverride None
    Order Allow,Deny
    Allow from all
</Directory>

Выставить владельцем папки с авастом www:www, положить сюда конфигурационный файл свой.

Установить Perl

cd /usr/ports/lang/perl5.28/

make inastall clean

Установить GeoIP модули, запустить скрипт обновления БД /usr/local/bin/geoip update

Прописать путь к БД(/usr/locale/share/geoip) в конфигуратор awstats

Добавить в /etc/crontab задачу на каждые 28минут:
*/28 * * * * root perl /usr/local/www/awstats/cgi-bin/awstats.pl -config=stats.elektronik.spb.ru -update

Готовый отчет можно наблюдать по адресу http://stat.elektronik.spb.ru/awstats/awstats.pl

Ссылки по теме

1. Официальный сайт AWStats
2. Страничка в Wikipedia (к сожалению, на английском)


Zabbix на FreeBSD11 и mariadb10.3 php73

Система мониторинга.

Добавить перед установкой в /etc/make.conf:

DEFAULT_VERSIONS+= ssl=openssl
DEFAULT_VERSIONS+= mysql=10.3
DEFAULT_VERSIONS+= php=7.3

этим сохраним mariadb, т.к. zabbix по-умолчанию ищет установленный в системе mysql (актуально на март 2019го)

Запись iso-образа на флешку

Etcher — это молодая кроссплатформенная (Windows, MacOS и Linux) программа для записи iso-образа с дистрибутивом на флешку или микро SD-карту.

Supported Operating Systems

  • Linux (most distros)
  • macOS 10.9 and later
  • Microsoft Windows 7 and later


Etcher в настоещее время находится в интенсивной разработке, но даже в бета-версии, программа исправно выполняет свою функцию «писателя» iso-образа. Я записал с его помощью iso-образ на флешку с дистрибутивом ChaletOS и затем установил на жёсткий диск.

Как установить и использовать Etcher в Linux?

 В настоящее время ещё не созданы .deb или .rpm установочные пакеты для Linux, но вы можете скачать файл .appimage для систем Linux 32 или 64-bit с сайта разработчика www.etcher.io.

Сохранить загружаемый файл:

Затем перейти в папку с файлом ( я сохранил в папку Загрузки) следующей командой в терминале:

cd ~/Загрузки/

Для систем 32-bit:

Сделать файл исполняемым:

chmod a+x Etcher-linux-x86.AppImage

И запустить программу следующей командой:

sudo ./Etcher-linux-x86.AppImage

Для систем 64-bit выполняем в той же последовательности:

chmod a+x Etcher-linux-x64.AppImage

sudo ./Etcher-linux-x64.AppImage

Когда программа запустится, найдите у себя загруженный iso-образ с дистрибутивом:

Вставьте флешку/SD-карту в порт компьютера:

Нажмите кнопку Flash для записи образа:

И дождитесь окончания записи:

Всё. Образ записан. Теперь вы можете использовать флешку/SD-карту с дистрибутивом, как установочные:

Источник: https://github.com/resin-io/etcher

Удачи. Автор: Владимир Долгирев на суббота, мая 21, 2016

Скачать:

Двухпанельный файловый менеджер для debian

Похожий на Total Commander  файловый менеджер для линукс называется doublecmd (присутсвует в оф.репозитории), и создан русским товарищем, мне кажется. Если ставить в FXCE из Synaptic’а, то этот менеджер по-умолчанию станет использоваться в качестве файлового менеджера(удобно).

Плагины для Double Commender:

7ziphttps://github.com/ikk00/p7z-usr

 

 

yandex disk .deb

Установка клиента

Чтобы установить клиент автоматически, воспользуйтесь командой быстрой установки пакета.
echo "deb http://repo.yandex.ru/yandex-disk/deb/ stable main" | sudo tee -a /etc/apt/sources.list.d/yandex.list > /dev/null && wget http://repo.yandex.ru/yandex-disk/YANDEX-DISK-KEY.GPG -O- | sudo apt-key add - && sudo apt-get update && sudo apt-get install -y yandex-disk Читать далее «yandex disk .deb»

Локальная инет радиостанция при помощи icecast +ices

Рылся в своих старых записях и решил поделится с Вами инструкцией как просто и быстро поднять нормальный сервер для он лайн транслирования своего радио (mp3 файлы) и для ретрансляции внешних радиостанций.
Кому интересно прошу под кат.

Я использовал сервер под управлением FreeBSD. Считаем, что у нас есть свежее дерево портов. Начнем установки icecast:

#cd /usr/ports/audio/icecast2
#make install clean

Далее создаем пользователя для инет радио radio и группу radio и создаем каталог где это все будет лежать.

#mkdir /var/icecast
#pw group add radio
# adduser
Username:radio
Full name: Radio user
Uid (Leave empty for default):
Login group [radio]:
Login group is radio. Invite jru into other groups? []:
Login class [default]:
Shell (sh csh tcsh zsh nologin) [sh]: nologin
Home directory [/home/radio]:
Home directory permissions (Leave empty for default):
Use password-based authentication? [yes]:
Use an empty password? (yes/no) [no]:
Use a random password? (yes/no) [no]:
Enter password:
Enter password again:
Lock out the account after creation? [no]:
Username : radio
Password : ****
Full Name : Radio user
Uid : 1001
Class :
Groups : radio
Home : /home/radio
Locked : no
OK? (yes/no): yes
adduser: INFO: Successfully added (radio) to the user database.
Add another user? (yes/no): no
Goodbye!

После копируем все файлы для веб интерфейса:

cp /usr/local/share/icecast /var/icecast

Cоздаем каталог для лога:

mkdir /var/icecast/log

Cоздаем файлы для логов:

cd /var/icecast/log
touch access.log
touch error.log

Меняем права:

chown -R radio:radio /var/icecast

Далее идем смотреть файл конфига:

cd /usr/local/etc
cp icecast.xml.sample icecast.xml

Конфигурим файл. Опишу только важные параметры
Аутентификация. Первое — это пароль на подключение для трансляции через ваш сервер icecast.Второе — это логин пароль на веб интерфейс по адресу icecast_ip:8000


123

123


admin
12345678

Далее выбираем IP сервера и порт так же точку монитрования потока с ices но это позже:

8000 192.168.1.7.
/ices.

Так же я собираюсь рестранслировать радиостанции украины Киссфм (+ Киссфм в АСС), наше радио, люкс фм, и хит фм:


91.201.37.42 8000 /kiss
/kiss
1
0


91.201.37.42 8000 /kissACC
/kissACC
1
0

….
……..
195.95.206.12 8000 /HitFM
/hitfm
1
0


77.120.104.251 8000 /
/luxfm
1
0


212.26.129.222 8001 /
/nashe
1
0

Далее меняем параметры нахождения каталогов в разделе

/var/icecast

/log
/web
/admin /var/run/icecast.pid

И последнее, но не последнее по значению. Icecast не работает от root вот и мы меняем разрешения на ранее созданого юзера и группу


1


radio
radio

Далее пробуем взлететь, смотрим что он ругается:

#/usr/local/bin/icecast -c /usr/local/etc/icecast.xml

Если все хорошо прерываем через Ctrl+c и идем дальше:

Я использовал iсes0 ибо мне нужно было воспроизводить mp3 а для ogg по идее нужно использовать ices2, вроде он тоже воспроизводить mp3, но я не проверял:

#cd /usr/ports/audio/ices
#make install clean

Тут что бы не мучатся с правами делаем проще (можете сами создавать каталог где хотите):

mkdir /tmp/radio

Складываем сюда файлы mp3 и создаем плейлист:

find /tmp/radio -name *.mp3 > /tmp/radio/playlist.txt

Должен получится файл playlist.txt с таким содержимым:

/tmp/radio/Far East Movement ft. The Cataracs & Dev — Like A G6.mp3
/tmp/radio/The_Prodigy_-_Voodoo_People_(Pendulum_Remix).mp3
/tmp/radio/1.mp3

Меняем права #chmod -R 777 /tmp/radio и идем ломать файл ices.conf

cd /usr/local/etc/
cp ices.conf.dist ices.conf

Редактируем. У меня вышел такой вид (коменты Афтора):





/tmp/radio/playlist.txt

0

builtin

ices0



1

1

/tmp




192.168.1.7

8000

123

http


/ices


mp3 stream

it

Local streaming

http://gate.mydomain.com/

0


128

0


2

Далее добавляем в /etc/rc.conf строки:

icecast_enable=»YES»
icecast_flags=»-c /usr/local/etc/icecast.xml»
ices0_enable=»YES»
ices0_flags=»/usr/local/etc/ices.conf»

И пробуем взлетать:

cd /usr/local/etc/rc.d
#./icecast2 start
#./ices0 start

Открываем в баузере ссылку:
192.168.1.7:8000/status.xsl

Скачиваем m3u нужного потока и вперед.
Интернет-радио поставлено «конект по требованию», так что первый конект медленный. Кому не жалко инет трафика — поменяйте значение
1 на 0.

Так же ices как проиграет весь плейлист выключается. Как сделать по кругу не нашел пока что. Но, если запустить ices через рандом то его игрища никогда не заканчиваются smile.
В файле ices.conf меняем параметр 0 на 1 и все.

Использованные материалы: https://habr.com/post/267351/