Как установить, защитить и автоматизировать AWStats (CentOS/RHEL)
Краткое описание и цель
AWStats — это бесплатный инструмент для генерации детальной графической статистики веб‑, streaming, FTP и почтовых серверов на основе логов. Он читает логи основных серверных утилит и преобразует их в визуальные отчёты. В этом руководстве используется более простой метод установки через YUM/репозиторий RPMForge. Подразумевается, что у вас есть root/sudo‑доступ.
Важно: руководство рассчитано на системы с SELinux в режиме permissive или отключённым и с настроенными IPTables (или отключёнными). Если это не так — см. раздел «SELinux и брандмауэр» ниже.
Быстрый план действий
- Добавить репозиторий RPMForge.
- Установить Apache и разрешить HTTP‑трафик.
- Установить AWStats через yum.
- Настроить конфигурацию Apache и AWStats.
- Защитить файлы и включить Basic‑авторизацию.
- Автоматизировать обновление статистики через cron.
Установка
Добавление RPMForge Yum репозитория
Для x86 (32‑бит):
rpm -Uhv http://apt.sw.be/redhat/el5/en/i386/rpmforge/RPMS/rpmforge-release-0.3.6-1.el5.rf.i386.rpmДля x64 (64‑бит):
rpm -Uhv http://apt.sw.be/redhat/el5/en/x86_64/rpmforge/RPMS//rpmforge-release-0.3.6-1.el5.rf.x86_64.rpm(источник пакетов — репозиторий от Dag Wieers)
Установка и настройка зависимостей
Установите Apache:
yum install httpdВключите автозапуск Apache при загрузке:
/sbin/chkconfig --levels 345 httpd onРазрешите HTTP‑трафик в iptables (при использовании iptables):
/sbin/iptables -I INPUT -p tcp --dport 80 -j ACCEPT
/etc/init.d/iptables save
/etc/init.d/iptables restartУстановка и первичная настройка AWStats
Установите пакет AWStats через yum:
yum install awstatsОтредактируйте конфигурацию Apache для AWStats — файл /etc/httpd/conf.d/awstats.conf. Пример содержимого:
Alias /awstats/icon/ /var/www/awstats/icon/
ScriptAlias /awstats/ /var/www/awstats/
DirectoryIndex awstats.pl
Options ExecCGI
order deny,allow
allow from all
Alias /awstatsclasses "/var/www/awstats/lib/"
Alias /awstats-icon/ "/var/www/awstats/icon/"
Alias /awstatscss "/var/www/awstats/examples/css"Важно: модуль mod_cgi должен быть загружен, иначе CGI‑скрипты не будут исполняться корректно. Включите его глобально или в рамках VirtualHost только для AWStats.
Отредактируйте шаблон конфигурации AWStats /etc/awstats/awstats.localhost.localdomain.conf, установив:
SiteDomain="."
HostAliases="" Переименуйте файл конфигурации в формат, соответствующий вашему серверу:
mv /etc/awstats/awstats.localhost.localdomain.conf /etc/awstats/awstats...conf Обновите статистику вручную (по умолчанию обновление происходит ежечасно):
/usr/bin/awstats_updateall.pl now -confdir="/etc" -awstatsprog="/var/www/awstats/awstats.pl"Запустите Apache:
/etc/init.d/httpd startДобавьте Apache в автозагрузку (если не сделали ранее):
chkconfig --add httpdПроверка установки
Откройте в браузере:
http://
Если видите страницу с отчётом — базовая установка прошла успешно.
Безопасность AWStats
Настройка прав файловой системы
Веб‑серверу обычно достаточно только прав на чтение. Ограничьте права, чтобы минимизировать риски:
$ find ./awstats -type d -exec chmod 701 '{}' \;
$ find ./awstats -not -type d -exec chmod 404 '{}' \;Защитите конфигурационные файлы AWStats от чтения веб‑сервером:
chmod 400 /etc/awstats/*.confЗащита каталога AWStats и добавление .htaccess
- Убедитесь, что владельцем каталога AWStats является пользователь, который должен иметь к нему доступ.
- Создайте файл htpasswd с учётной записью доступа:
htpasswd -c /etc/awstats/htpasswd.users user- В каталоге /var/www/awstats создайте файл .htaccess и добавьте содержимое:
AuthName "STOP - Do not continue unless you are authorized to view this site! - Server Access"
AuthType Basic
AuthUserFile /etc/awstats/htpasswd.users
Require valid-user
htpasswd -c /etc/awstat/htpasswd.users awstats_online- Ограничьте доступ к самому файлу .htaccess:
chmod 404 awstats/.htaccessВажно: при использовании Basic‑аутентификации используйте HTTPS, чтобы пароли не передавались в открытом виде.
SELinux и брандмауэр
Если SELinux включён (Enforcing), настройте контексты для CGI и каталогов AWStats или переведите SELinux в режим permissive для проверки:
setenforce 0
# или для постоянного отключения отредактируйте /etc/selinux/configДля безопасности предпочтительнее настроить корректные SELinux‑контексты вместо отключения.
Автоматизация обновления статистики
Простой cron для ежечасного обновления всех конфигураций:
# обновлять все конфиги AWStats каждый час
0 * * * * /usr/bin/awstats_updateall.pl now -confdir="/etc" -awstatsprog="/var/www/awstats/awstats.pl" >/dev/null 2>&1Если у вас много сайтов, рассмотрите раздельные задания cron для каждого конфига или использование systemd‑таймеров.
Роль‑ориентированные чеклисты
Администратор сервера:
- Убедиться в наличии root/sudo доступа.
- Добавить репозиторий и установить пакеты.
- Настроить автозапуск httpd и правила iptables.
Инженер безопасности:
- Ограничить права на файлы конфигурации /etc/awstats/*.conf.
- Настроить Basic‑авторизацию и включить HTTPS.
- Настроить SELinux контексты, если SELinux Enforcing.
DevOps/интегратор:
- Настроить cron/systemd‑таймеры для awstats_updateall.pl.
- Добавить мониторинг успешного запуска обновлений.
Критерии приёмки
- Страница AWStats доступна по URL и отображает отчёт.
- Конфигурационный файл /etc/awstats/awstats.
. .conf присутствует и защищён правами 400. - Cron‑задание выполняется ежечасно и не возвращает ошибок.
- Доступ к каталогу /var/www/awstats защищён авторизацией и передача идёт по HTTPS.
Когда этот подход не подходит
- Если вы не можете добавлять сторонние репозитории или устанавливать пакеты — используйте сборку из исходников или контейнеры (см. «Альтернативы»).
- Если нужен real‑time анализ логов с высокой нагрузкой — AWStats обновляет отчёты пакетно; рассмотрите GoAccess или аналитические системы на базе ELK/Fluentd.
Альтернативные подходы
- Ручная установка из исходников: полезно, если в вашей системе нет RPM‑репозитория.
- Контейнеризация: запуск AWStats в контейнере Docker для изоляции и упрощения развертывания.
- GoAccess: интерактивный просмотр логов в реальном времени и консольные дашборды.
- ELK‑стек или Prometheus + Grafana для централизованной агрегации логов и гибкой визуализации.
Устранение неполадок
Проблема: AWStats не отображает данные или пустой отчёт.
- Проверьте, что путь к логам в конфиге правильный.
- Запустите обновление вручную и посмотрите на ошибки:
/usr/bin/awstats_updateall.pl now -confdir="/etc" -awstatsprog="/var/www/awstats/awstats.pl"Проблема: 500 Internal Server Error при обращении к awstats.pl
- Проверьте права и владельца CGI‑файла.
- Убедитесь, что mod_cgi загружен.
- Посмотрите логи Apache: /var/log/httpd/error_log.
Проблема: запросы на /awstats/ возвращают содержимое .htaccess
- Убедитесь, что Apache читает .htaccess (AllowOverride настроен корректно) и что сам файл недоступен для чтения веб‑сервером.
Мини‑методология развёртывания (5 шагов)
- Подготовка окружения: резервное копирование, проверка SELinux/iptables.
- Установка зависимостей и репозитория.
- Установка AWStats и базовая конфигурация.
- Тестирование и автоматизация обновлений.
- Жёсткая настройка прав и аутентификации, включение HTTPS.
Пример файла cron для отдельных конфигов
# пример: обновлять конфиг example.com каждые 30 минут
*/30 * * * * /usr/bin/awstats.pl -config=example.com -update -awstatsprog="/var/www/awstats/awstats.pl" >/dev/null 2>&1Резюме
AWStats остаётся надёжным инструментом для пакетного анализа логов и визуализации метрик посещаемости. Для типичной установки на CentOS/RHEL достаточно добавить репозиторий RPMForge, установить пакеты через yum, настроить Apache и ограничения прав, а затем автоматизировать обновления через cron. Для защищённого развёртывания всегда используйте HTTPS, ограничьте права для конфигурации и применяйте SELinux‑контексты там, где это нужно.
Важно: если у вас высокая нагрузка или требуется потоковый анализ в реальном времени, рассмотрите альтернативы (GoAccess, ELK).
Ключевые файлы и команды, упомянутые в статье, сохранены в исходном виде для копирования и вставки.
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента