Это зеркальный репозиторий, синхронизируется ежедневно с исходного репозитория.
Внести вклад в разработку кода
Синхронизировать код
README.md
logserver
项目简介
Использование logback и light-4j для создания простого сервиса логирования. Проект основан на logbackserver и light4j.
Основная цель logserver — агрегировать логи, решая проблему поиска логов на множестве Linux-хостов. При большом объёме логов использование grep может привести к снижению производительности, поэтому рекомендуется использовать light-search для создания индексов и поиска.
Рекомендуется использовать полные значения атрибутов (например, id) для поиска, а не часто встречающиеся подстроки (например, поиск INFO может вызвать зависание при наличии больших объёмов логов). В этом случае более подходящим будет прямой вход в Linux и использование less для поиска (логи уже агрегированы, что не вызывает особых проблем).
Локальное тестирование
-
Сборка проекта: mvn package dependency:copy-dependencies -DoutputDirectory=target.
-
Запуск сервиса: start.bat, чтобы открыть главную страницу index и отслеживать логи.
-
Тестирование клиента: client.bat для ввода тестового содержимого и просмотра последних логов в браузере; sh client.sh 1.5 для проверки поддержки logback более поздних версий.
-
Индексный сервис light-search: -Dlight-search=http://localhost:9200 -DuseIndexer=true -DuseSearch=true.
-
Страница logger: позволяет динамически изменять уровень логирования приложения, -Dlogger=name@url для статической настройки других приложений, logserver-spring-boot-starter поддерживает автоматическую регистрацию, изменение требует пароля.
-
Отслеживание логов с помощью trace: предоставляет заголовок запроса X-Traceability-Id, бэкенд записывает MDC через MyCorrelationHandler и передаёт этот заголовок при запросах между приложениями.
-
Раздельное хранение логов с использованием sift: -Dsift, позволяет хранить логи отдельно в зависимости от контекста, не участвуя в поиске и индексировании, поэтому -Dlogfile всё ещё требуется. Если в root удалить ASYNC_FILE, необходимо изменить notify=true в sift, чтобы отправлять логи в браузер.
-
Файл my.pwd для хранения конфиденциальной информации: -Dlogback.configurationFile=/home/logback.xml позволяет указать внешний файл конфигурации логирования, редактируя который можно изменять уровни логирования.
-
Разделение logjannino.xml на logfile.xml и logserver.xml: позволяет совместно использовать filebeat для сбора или пересылки логов в фоновом режиме, комментирование filebeat отключает прослушивание порта 9880.
Развёртывание в рабочей среде
-
Упаковка проекта: sh start.sh deploy для упаковки в отдельный fat-jar; sh start.sh package для упаковки и копирования зависимостей; запуск start, статус status, перестройка rebuild и остановка stop.
-
-Dfiletailers=app1.log;app2.log для объединения логов других проектов; ln -s /path/app1.log logs/app1.log для поддержки постраничного просмотра других логов.
-
Конфигурация других проектов: клиентские логи настраиваются с помощью client.xml или light4j, logserver указывается через /etc/hosts.
-
-Dlogfile=logs/all.logs определяет путь к логам, логи logserver выводятся в консоль, а логи других клиентов — в logfile.
-
-Djava.compiler=none отключает JIT для экономии памяти, по умолчанию JIT включён для повышения производительности.
-
Периодическое сжатие логов: 56 23 * * * sh /soft/shells/tgz_logs.sh >> /var/log/mycron_clears.log.
-
Режим filebeat: откройте filebeat в vi start.sh для отслеживания множества файлов логов и отправки их в logserver, также поддерживается redis как посредник.
-
Использование redis в качестве посредника: откройте -Dredis для поддержки pubsub для публикации и подписки, а также pushpop для очередей сообщений, подробности см. в wiki.
-
-Dfiles=false отключает файлы страницы, -Dlogger=logserver@log настраивает страницу logger, -Dmask=password(3,8) настраивает маскирование логов (заменяет следующие 3–8 символов после password на *).
[logserver-spring-boot-starter]: более простой способ настройки с использованием конфигурации:
<dependency>
<groupId>com.xlongwei.logserver</groupId>
<artifactId>logserver-spring-boot-starter</artifactId>
<version>0.0.3</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
-Dlogserver.token=xlongwei
-Dlogserver.remoteHost=192.168.1.99
-Dmanagement.endpoints.web.exposure.include=logserver
logserver:
remoteHost: 192.168.1.99 #указать logserver
token: xlongwei #безопасность, должна совпадать с lajax.token на logserver
management: #требуется spring-boot-starter-actuator
endpoints:
web:
exposure:
include: logserver #включить LogserverEndpoint, позволить logserver изменять уровень логирования
Фронтенд логирование
-
lajax: var logger = new Lajax(url); logger.info(arg1,...args).
-
logserver.js: Lajax.logLevel='info'; Lajax.logServer=false; Lajax.logConsole=true; Lajax.token='xlongwei'.
-
uni-app: var logger = require('../../common/logserver.js').logger; logger.info('onReady index.vue').
var logger = new Lajax({
url:'/lajax',//URL сервера логирования
autoLogError:false,//автоматически записывать необработанные ошибки true
autoLogRejection:false,//автоматически регистрировать ошибки Promise true
autoLogAjax:false,//автоматически регистрировать запросы ajax true
//logAjaxFilter:function(ajaxUrl, ajaxMethod) {
// return false;//ajax автоматически регистрирует условия фильтрации функций true регистрируется false не регистрируется
//},
stylize:true,//нужно ли форматировать вывод console true
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )