1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/xlongwei-logserver

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Это зеркальный репозиторий, синхронизируется ежедневно с исходного репозитория.
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

logserver

项目简介

Использование logback и light-4j для создания простого сервиса логирования. Проект основан на logbackserver и light4j.

Основная цель logserver — агрегировать логи, решая проблему поиска логов на множестве Linux-хостов. При большом объёме логов использование grep может привести к снижению производительности, поэтому рекомендуется использовать light-search для создания индексов и поиска.

Рекомендуется использовать полные значения атрибутов (например, id) для поиска, а не часто встречающиеся подстроки (например, поиск INFO может вызвать зависание при наличии больших объёмов логов). В этом случае более подходящим будет прямой вход в Linux и использование less для поиска (логи уже агрегированы, что не вызывает особых проблем).

Локальное тестирование
  1. Сборка проекта: mvn package dependency:copy-dependencies -DoutputDirectory=target.
  2. Запуск сервиса: start.bat, чтобы открыть главную страницу index и отслеживать логи.
  3. Тестирование клиента: client.bat для ввода тестового содержимого и просмотра последних логов в браузере; sh client.sh 1.5 для проверки поддержки logback более поздних версий.
  4. Индексный сервис light-search: -Dlight-search=http://localhost:9200 -DuseIndexer=true -DuseSearch=true.
  5. Страница logger: позволяет динамически изменять уровень логирования приложения, -Dlogger=name@url для статической настройки других приложений, logserver-spring-boot-starter поддерживает автоматическую регистрацию, изменение требует пароля.
  6. Отслеживание логов с помощью trace: предоставляет заголовок запроса X-Traceability-Id, бэкенд записывает MDC через MyCorrelationHandler и передаёт этот заголовок при запросах между приложениями.
  7. Раздельное хранение логов с использованием sift: -Dsift, позволяет хранить логи отдельно в зависимости от контекста, не участвуя в поиске и индексировании, поэтому -Dlogfile всё ещё требуется. Если в root удалить ASYNC_FILE, необходимо изменить notify=true в sift, чтобы отправлять логи в браузер.
  8. Файл my.pwd для хранения конфиденциальной информации: -Dlogback.configurationFile=/home/logback.xml позволяет указать внешний файл конфигурации логирования, редактируя который можно изменять уровни логирования.
  9. Разделение logjannino.xml на logfile.xml и logserver.xml: позволяет совместно использовать filebeat для сбора или пересылки логов в фоновом режиме, комментирование filebeat отключает прослушивание порта 9880.
Развёртывание в рабочей среде
  1. Упаковка проекта: sh start.sh deploy для упаковки в отдельный fat-jar; sh start.sh package для упаковки и копирования зависимостей; запуск start, статус status, перестройка rebuild и остановка stop.
  2. -Dfiletailers=app1.log;app2.log для объединения логов других проектов; ln -s /path/app1.log logs/app1.log для поддержки постраничного просмотра других логов.
  3. Конфигурация других проектов: клиентские логи настраиваются с помощью client.xml или light4j, logserver указывается через /etc/hosts.
  4. -Dlogfile=logs/all.logs определяет путь к логам, логи logserver выводятся в консоль, а логи других клиентов — в logfile.
  5. -Djava.compiler=none отключает JIT для экономии памяти, по умолчанию JIT включён для повышения производительности.
  6. Периодическое сжатие логов: 56 23 * * * sh /soft/shells/tgz_logs.sh >> /var/log/mycron_clears.log.
  7. Режим filebeat: откройте filebeat в vi start.sh для отслеживания множества файлов логов и отправки их в logserver, также поддерживается redis как посредник.
  8. Использование redis в качестве посредника: откройте -Dredis для поддержки pubsub для публикации и подписки, а также pushpop для очередей сообщений, подробности см. в wiki.
  9. -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 изменять уровень логирования

Фронтенд логирование

  1. lajax: var logger = new Lajax(url); logger.info(arg1,...args).
  2. logserver.js: Lajax.logLevel='info'; Lajax.logServer=false; Lajax.logConsole=true; Lajax.token='xlongwei'.
  3. 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 )

Вы можете оставить комментарий после Вход в систему

Введение

Используется простой сервис логирования, построенный с использованием logback и light-4j. Расширить Свернуть
Apache-2.0
Отмена

Обновления (9)

все

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://gitlife.ru/oschina-mirror/xlongwei-logserver.git
git@gitlife.ru:oschina-mirror/xlongwei-logserver.git
oschina-mirror
xlongwei-logserver
xlongwei-logserver
master