Логирование в standalone режиме#
Внесение изменений в конфигурацию#
Каталог конфигурации:
{{workspace}}/application/config/
Правило внесения изменений:
не изменять основные файлы:
logback-LoggerContext.xmllogback-LoggerContext-session.xml
изменять только расширения:
logback-LoggerContext-ext.xmllogback-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/