Docker AWSTATS

Средний рейтинг
Еще нет оценок
Мой рейтинг:

Всем привет.

Потребовалось Заказчику собирать статистику посещаемости и красиво рисовать.

Хотел сделать через Grafana + Prometheus (в Grafana есть шаблон под это дело), но у меня не получилось. Это сейчас в процессе исследования. Хотелось бы, конечно, победить.

В данный момент Заказчик использует AWSTATS и согласен на него. Т.к. у нас везде Docker, то написал docker-compose для развертывания контейнеров (их будет два, но об этом дальше..

И так…

Т.к. Россия теперь в немилости, то доступ к некоторым образам невозможен; ссылка на сам образ, в виде Tar-контейнера, будет ниже.

Мой docker-compose.yml вот такой:

Как видно, в конфиге присутствуют 2 секции: «awstats» и «aws_web».

«Awstats» настраивается именно для обработки лог-файлов от web-сервера.

«Aws-web» запускает свой web-сервера (httpd) и показывает графическое представление Awstats.

Подробнее об общих параметрах:

  • image: Тут используется один и тот же образ. У меня он берется из локального Nexus’а, поэтому в .env указана соответствующая переменная. Если локально используете, то заменить на такое — image: openmicroscopy/awstats:latest и сохранить изменения;
  • container_name: любое название, которое будет вам понятно;
  • restart: в каком случае перезапускать контейнер. У меня указано всегда;
  • volumes: то, какие каталоги на хостовой машине (где работает Docker)  будут прокидываться внутрь контейнера. ro — Read Only, только для чтения;
  • networks: название вашей сети. Не забудьте в конце конфига сделать описание сети (тут указано для примера).

Для «web_aws» будут отличия:

  • command: httpd — запустить web-сервер (Apache);
  • hostname: имя для web-сервера, т.к. иначе будет в логе писать, что у него ошибка:

  • ports: пробрасываем внешний порт (у меня 8081) на внутренний порт контейнера (8080), что бы был доступ из браузера;
  • volumes: пробросить каталог с файлами, которые сгенерировал awstats.

Предварительно загрузить образ docker’ ом:

В процессе увидим такое:

docker load

а потом можно проверить, что образ добавился:

docker images

Теперь выполнить команды:

запустим awstats

запусти web к нему

-d — отправляет выполняться контейнер в фон, если вам нужно.

К сожалению, скринов не приложу, т.к. у меня через ansible публикуется всё это дело.

Подразумевается, что у вас web-сервер уже настроен и вы понимаете какие параметры надо указать в volumes, что бы awstats’у были доступны логи для последующей обработки.

Так же создан awstats.mysite.111.ru.conf где указаны все необходимые параметры.

P.S.

Поступила задача что бы всё отображалось на русском языке (awstats это умеет). В конфиге (у меня такой: awstats.mysite.111.ru.conf) так же указать Lang=»ru». Но это не помогло.

Пришлось делать в ручном режиме (подразумевается, что контейнер тот же, что по ссылке внизу). Делаем внутри web:

1. зайти в контейнер root’вым пользователем:

где:

  • -u 0 —  как раз пользователем с id 0
  • mon-awstats — название контейнера

2. там выполнить эти команды:

где:

  • ru_RU — русская локаль. Надо указать необходимую.

3. в файлах поменять «Lang=auto» на «Lang=ru»

4. Перезапустить контейнер:

После чего почистить в браузере кеш и проверить наличие языка.

 

Ссылки:

Оригинал статьи | Сохраненная копия

Docker image (tar)

 

 

If you found an error, highlight it and press Shift + Enter or to inform us.

Фото аватара

Дмитрий

родился, учился, работаю-учусь

0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest
0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии