Настройка goaccess чтобы он работал в realtime и браузере
Добавлено: 16 июл 2026, 10:16
goaccess очень удобная штука чтобы проанализировать логи apache/nginx. Только вот в основном вся документация описывает как посмотреть статистику в консоли. На один раз это конечно удобно, но если хочется иметь доступ не открывая консоль и не сканируя лог каждый раз, хочется чтобы всё работало автоматически.
Документирую как это сделать.
Во-первых узнайте все ваш goaccess должен хранить global config:
Проверьте, быть может файл уже на месте. Если не так, найдите его в системе, возможно он лежит в /usr/share/goaccess или /usr/share/doc/goaccess. Скопируйте его туда где он должен быть.
После чего в этом файле нужно первично настроить конфигурацию, а именно обязательно нужно настроить эти опции:
Найдите их в конфигурационном файле и выставите в соответствие с вашим сервером.
После чего выполните запуск goaccess и проверьте что он выполняется без ошибок. Если это так, пора настраивать браузерную часть.
Goaccess
В самом Goaccess выставите эти опции:
addr, daemonize и real-time-html оставьте как есть.
output приведите в соответствие с вашими потребностями. Его необязательно размещать там где сделал это я.
А вот ws-url это очень важный параметр. Сразу же определитесь, вы будете открывать goaccess по http или https?
Если по http то протокол указывайте ws:// и порт 80. Если по https, то протокол указывайте wss:// и порт 443.
Например если будете открывать так:
http://site.home/goaccess
то указывайте ws-url так:
А если так:
https://site.home/goaccess
то ws-url будет такой:
Всё, этого достаточно.
Apache
Забавно что многие считают что апач сложнее чем нгикс из-за его "нечитаемого xml конфига". Я так не считаю. На самом деле надо просто научиться смотреть на этот конфиг широким взглядом а не кусочками. Тогда всё станет предельно просто.
У меня goaccess в апаче работает внутри виртуалхоста. Я не могу описать методологию конфигурирования апача на каждом тостере, приведу просто самое необходимое.
Для работы требуются модули proxy и wsproxy.
Сначала нужно убедится что они включены:
Для примера могу сказать что в centos все модули загружены по-умолчанию а в openbsd, например, их надо добавить в конфиг отдельно.
Это делается в глобальном конфиге, а не в virtualhost.
После чего можем уже добавить основную конфигурацию.
Давайте представим что у нас goaccess лежит тут: /var/www/goaccess/index.html
тогда конфигурация будет такая:
Обратите внимание на "http://127.0.0.1:7890" вне зависимости от того, через какой протокол (http или https) вы обращаетесь к своему серверу, к goacces вы будете обращаться по http. настройка ws-url влияет именно на ваш сервер а не на goaccess.
Nginx
Давайте представим что nginx будет искать goaccess там же где и апач его искал.
Конфигурация будет зависеть от --prefix с которым собран nginx. Prefix можно узнать так: nginx -V
Если prefix такой: --prefix=/var/www, то указывайте root /; а если префикс пустой то root /var/www;
Например:
Документирую как это сделать.
Во-первых узнайте все ваш goaccess должен хранить global config:
Код: Выделить всё
goaccess --dcf
/etc/goaccess/goaccess.conf
После чего в этом файле нужно первично настроить конфигурацию, а именно обязательно нужно настроить эти опции:
Код: Выделить всё
time-format
date-format
log-format
log-fileПосле чего выполните запуск goaccess и проверьте что он выполняется без ошибок. Если это так, пора настраивать браузерную часть.
Goaccess
В самом Goaccess выставите эти опции:
Код: Выделить всё
addr 127.0.0.1
daemonize true
real-time-html true
ws-url wss://localname.home:443/ws
output /var/www/html/goaccess/index.htmloutput приведите в соответствие с вашими потребностями. Его необязательно размещать там где сделал это я.
А вот ws-url это очень важный параметр. Сразу же определитесь, вы будете открывать goaccess по http или https?
Если по http то протокол указывайте ws:// и порт 80. Если по https, то протокол указывайте wss:// и порт 443.
Например если будете открывать так:
http://site.home/goaccess
то указывайте ws-url так:
Код: Выделить всё
ws-url ws://site.home:80/wshttps://site.home/goaccess
то ws-url будет такой:
Код: Выделить всё
ws-url wss://site.home:443/wsApache
Забавно что многие считают что апач сложнее чем нгикс из-за его "нечитаемого xml конфига". Я так не считаю. На самом деле надо просто научиться смотреть на этот конфиг широким взглядом а не кусочками. Тогда всё станет предельно просто.
У меня goaccess в апаче работает внутри виртуалхоста. Я не могу описать методологию конфигурирования апача на каждом тостере, приведу просто самое необходимое.
Для работы требуются модули proxy и wsproxy.
Сначала нужно убедится что они включены:
Код: Выделить всё
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_wstunnel_module modules/mod_proxy_wstunnel.soЭто делается в глобальном конфиге, а не в virtualhost.
После чего можем уже добавить основную конфигурацию.
Давайте представим что у нас goaccess лежит тут: /var/www/goaccess/index.html
тогда конфигурация будет такая:
Код: Выделить всё
Alias "/goaccess" "/var/www/goaccess"
<Directory /var/www/goaccess>
Require ip 192.168.0.
</Directory>
<Location /ws>
ProxyPass "http://127.0.0.1:7890"
</Location>Nginx
Давайте представим что nginx будет искать goaccess там же где и апач его искал.
Конфигурация будет зависеть от --prefix с которым собран nginx. Prefix можно узнать так: nginx -V
Если prefix такой: --prefix=/var/www, то указывайте root /; а если префикс пустой то root /var/www;
Например:
Код: Выделить всё
location /goaccess {
root /var/www;
try_files $uri $uri/ /index.html =404;;
allow 192.168.0.0/24;
deny all;
}
location /ws {
proxy_pass http://127.0.0.1:7890;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_read_timeout 10m;
proxy_send_timeout 10m;
}