Логирование в standalone режиме#

Внесение изменений в конфигурацию#

Каталог конфигурации:

  • {{workspace}}/application/config/

Правило внесения изменений:

  • не изменять основные файлы:

    • logback-LoggerContext.xml

    • logback-LoggerContext-session.xml

  • изменять только расширения:

    • logback-LoggerContext-ext.xml

    • logback-LoggerContext-session-ext.xml

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

sudo systemctl restart global3
sudo systemctl restart globalscheduler

Просмотр логов#

1) systemd-journald#

Для просмотра рекомендуется использовать:

sudo journalctl -u global3 -n 200 -f
sudo journalctl -u globalscheduler -n 200 -f

Фильтрация по времени:

sudo journalctl -u global3 --since "1970-01-01 00:00:00"
sudo journalctl -u global3 --since "1 hour ago"

Поиск по строке (локальная фильтрация):

sudo journalctl -u global3 | grep -i "error"

2) Syslog (при наличии rsyslog)#

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

  • /var/log/syslog (Debian),

  • /var/log/messages (RHEL/CentOS).

Пример просмотра:

sudo tail -F /var/log/syslog
sudo grep -R "global3" /var/log/syslog

Примечание: syslog может содержать записи, полученные как напрямую из приложения (SyslogAppender), так и через экспорт journald в rsyslog.

3) Файлы логов приложения#

Файлы по умолчанию сохраняются в директории:

/opt/global/globalserver/logs

Базовые операции:

ls -lah /opt/global/globalserver/logs
tail -F /opt/global/globalserver/logs/*.log

Уровни логирования (рекомендации)#

  • Для постоянной эксплуатации рекомендуется уровень INFO.

  • Уровни DEBUG/TRACE предназначены для диагностики и должны включаться:

    • на ограниченное время,

    • точечно (по конкретным логгерам/пакетам),

    • с обязательным контролем объёма и последующей отменой изменений.

Ротация логов (примеры)#

Вариант A - ротация средствами Logback (если используются файловые аппендеры)#

Пример для системных логов (размещается в logback-LoggerContext-ext.xml):

<included>
    <appender name="FILEOUT_EXT" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>/opt/global/globalserver/logs/globalserver.log</file>

        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
            <fileNamePattern>/opt/global/globalserver/logs/globalserver.%d{yyyy-MM-dd}.%i.log.gz</fileNamePattern>
            <maxFileSize>100MB</maxFileSize>
            <maxHistory>14</maxHistory>
            <totalSizeCap>2GB</totalSizeCap>
        </rollingPolicy>

        <encoder>
            <pattern>[%-5level] %d{dd-MM-yyyy HH:mm:ss.SSS} [%thread] %logger - %msg%n</pattern>
        </encoder>
    </appender>

    <root level="INFO">
        <appender-ref ref="FILEOUT_EXT"/>
    </root>
</included>

Вариант B - logrotate#

Файл: /etc/logrotate.d/globalserver

/opt/global/globalserver/logs/*.log {
  daily
  rotate 14
  compress
  delaycompress
  missingok
  notifempty
  dateext
  maxsize 500M
  copytruncate
}

Проверка конфигурации:

sudo logrotate -d /etc/logrotate.d/globalserver
sudo logrotate -f /etc/logrotate.d/globalserver

Ограничение объёма journald#

Файл: /etc/systemd/journald.conf (пример):

SystemMaxUse=1G
SystemKeepFree=2G
MaxRetentionSec=14day

Применение:

sudo systemctl restart systemd-journald

Логи HAProxy (если используется в составе стенда)#

Просмотр логов HAProxy#

Конфигурация находится в /etc/haproxy/haproxy.cfg

global
log /dev/log  local0 debug   # debug — самый подробный уровень
log /dev/log  local1 notice
chroot /var/lib/haproxy
stats socket /run/haproxy/admin.sock mode 660 level admin
stats timeout 30s
user haproxy
group haproxy
daemon

  # Default SSL material locations
ca-base /etc/ssl/certs
crt-base /etc/ssl/private

  # See: https://ssl-config.mozilla.org/#server=haproxy&server-version=2.0.3&config=intermediate
ssl-default-bind-ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384
ssl-default-bind-ciphersuites TLS_AES_128_GCM_SHA256:TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256
ssl-default-bind-options ssl-min-ver TLSv1.2 no-tls-tickets

defaults
option tcplog
option  dontlognull
option  log-health-checks      # Логирует результат health checks
option  abortonclose           # Логирует обрыв соединений
option  dontlog-normal
option  log-separate-errors
log global
mode  http
  #option  httpchk
option  httplog
timeout connect 5000
timeout client  50000
timeout server  50000
errorfile 400 /etc/haproxy/errors/400.http
errorfile 403 /etc/haproxy/errors/403.http
errorfile 408 /etc/haproxy/errors/408.http
errorfile 500 /etc/haproxy/errors/500.http
errorfile 502 /etc/haproxy/errors/502.http
errorfile 503 /etc/haproxy/errors/503.http
errorfile 504 /etc/haproxy/errors/504.http



frontend http-frontend
bind *:8080
default_backend http-backend

backend http-backend
server s1 192.168.200.16:8080 check

Команда для просмотра логов:

journalctl -u haproxy -f

Пример логов

0/0 «GET /login/ing/glow.ong HTTP/1.1“ 09:32:53 hаproxy hаprоxy [44489]: 192.168.200.1:54520 [04/Aug/2025:09:32:38.821] http-frontend http-backend/s1 0/0/1212/834/14706 «GET /view/fonts/inter/inter-regular-variable.ttf HTTP/1.1» 200 121659 - - CD– 6/6/2 200 135559 - - CD– 6/6/