Гид по технологиям

Как установить, защитить и автоматизировать AWStats (CentOS/RHEL)

• 5 min read • Серверы • Обновлено 16 Nov 2025
Установить и защитить AWStats на CentOS/RHEL
Установить и защитить AWStats на CentOS/RHEL

Краткое описание и цель

AWStats — это бесплатный инструмент для генерации детальной графической статистики веб‑, streaming, FTP и почтовых серверов на основе логов. Он читает логи основных серверных утилит и преобразует их в визуальные отчёты. В этом руководстве используется более простой метод установки через YUM/репозиторий RPMForge. Подразумевается, что у вас есть root/sudo‑доступ.

Важно: руководство рассчитано на системы с SELinux в режиме permissive или отключённым и с настроенными IPTables (или отключёнными). Если это не так — см. раздел «SELinux и брандмауэр» ниже.

Быстрый план действий

  1. Добавить репозиторий RPMForge.
  2. Установить Apache и разрешить HTTP‑трафик.
  3. Установить AWStats через yum.
  4. Настроить конфигурацию Apache и AWStats.
  5. Защитить файлы и включить Basic‑авторизацию.
  6. Автоматизировать обновление статистики через 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/awstats.pl?config=.

Если видите страницу с отчётом — базовая установка прошла успешно.

Безопасность AWStats

Настройка прав файловой системы

Веб‑серверу обычно достаточно только прав на чтение. Ограничьте права, чтобы минимизировать риски:

$ find ./awstats -type d -exec chmod 701 '{}' \;  
$ find ./awstats -not -type d -exec chmod 404 '{}' \;

Защитите конфигурационные файлы AWStats от чтения веб‑сервером:

chmod 400 /etc/awstats/*.conf

Защита каталога AWStats и добавление .htaccess

  1. Убедитесь, что владельцем каталога AWStats является пользователь, который должен иметь к нему доступ.
  2. Создайте файл htpasswd с учётной записью доступа:
htpasswd -c /etc/awstats/htpasswd.users user
  1. В каталоге /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
  1. Ограничьте доступ к самому файлу .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 шагов)

  1. Подготовка окружения: резервное копирование, проверка SELinux/iptables.
  2. Установка зависимостей и репозитория.
  3. Установка AWStats и базовая конфигурация.
  4. Тестирование и автоматизация обновлений.
  5. Жёсткая настройка прав и аутентификации, включение 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).

Ключевые файлы и команды, упомянутые в статье, сохранены в исходном виде для копирования и вставки.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро