+7 495 230 03 03 8 800 222 50 03
DevOps

Установка Graylog Fluentbit

Рассмотрим развертывание Graylog приемника Fluentbit. На старте имеем:

  1. ВМ c установленным и настроенным GrayLog.
  2. ВМ с Docker для тестирования передачи логов. CPU 2, Ram 2 GB, Disk 20GB.

После того, как получен доступ к GreyLog, необходимо настроить приемник, их у GrayLog большое множество, для данного проекта будем использовать GELF, это адаптированный json формат. Для того, чтобы создать входящий поток, переходим во вкладку System — > Inputs.

Добавляем новыйдополнительный приемник тип выбираем GELF UDP и нажимаем запустить. В новом окне заполняем настройки. Сохраняем изменения после редактирования параметров.

Теперь GrayLog готов к приему сообщений. Далее выполним настройку отправки логов. Пример сбора логов с Docker контейнера. У docker есть встроенный драйвер fluentd, который преобразовывает и передает логи в GrayLog. Ниже пример docker-compose.yaml с подключенным драйвером и настройками для передачи логов:

version: '3.8'
services:
 
nginx:
    image: nginx
    container_name: nginx
    hostname: nginx
    ulimits:
      memlock:
        soft: -1
        hard: -1
    ports:
      - 80:80
    depends_on:
      - fluent-bit
    logging:
      driver: "fluentd"
      options:
        fluentd-address: 10.0.0.11:24224
        tag: nginx.logs
    networks:
      - app
 
networks:
    app:
      driver: bridge
  1. Контейнеру nginx добавили драйвер вывода логов в fluentd
  2. Добавили тег nginx.logs , который он будет подписывать в начало. Это удобно когда много сервисов.

Далее запускаем сам fluent bit, который будет принимать логи от nginx обрабатывать их и отдавать в GrayLog. Далее представлены его конфигурационные файлы.

[SERVICE]
    flush            1
    log_Level        info
    daemon           off
    http_server      on
    http_listen      127.0.0.1
    http_port        2020
    storage.metrics  on
    parsers_File     parsers.conf
 
[INPUT]
    Name              forward
    Listen            0.0.0.0
    Port              24224
    Buffer_Chunk_Size 1M
    Buffer_Max_Size   6M
 
[OUTPUT]
    Name                    gelf
    Match                   nginx.logs
    Host                    graylog
    Port                    12200
    Mode                    udp
    Gelf_Short_Message_Key  log
 
[OUTPUT]
    Name stdout
    Match *
 
[FILTER]
    Name record_modifier
    Match nginx.logs
    Allowlist_key log
 
[FILTER]
    Name parser
    Match nginx.logs
    Key_Name log
    Parser nginx_parser
    Reserve_Data On
    Preserve_Key On
 
[FILTER]
    Name modify
    Match nginx.logs
    Add hostname srv.efsol.dev
    Add log_type nginx_logs

Расшифровка конфигурационного файла

Есть входящий поток, который вызывается по средствам forward, что подразумевает пересылку логов от контейнера к точке назначения. Далее мы указываем, что мы хотим использовать в качестве точки назначения GrayLog, в формате gelf и обрабатывать все что приходит к нам с тегом nginx.logs. Далее пропускаем данные через фильтры, первый убирает все поля кроме поля log, это удобно чтобы не забивать elasticsearch лишней информацией, далее второй фильтр парсит лог-файл, разбивая его на необходимые блоки. И последний добавляет 2 поля, с какого хоста мы отправляем наши логи и что это за логи. Все готово, можно запускать контейнер и переходить в интерфейс GrayLog.

Переходим в интерфейс, Search и в странице поиска выбираем временной промежуток, далее на изображение линзы, и видим наш запрос.

ошибка http 1С

Рисунок 1 — GrayLog

Данные отображаются, для более дательного просмотра можно нажать на интересующее событие и оно откроется с дополнительными полями.

Мы можем помочь в настройке GrayLog, а также его поддержке в рамках DevOps-аутсорсинга!

Дата публикации: 30 сентября 2023
Не нашли ответа на свой вопрос?

Смотрите также

Обсуждение материала

Содержание

Заказать звонок

Оставьте свои данные для того, чтобы специалист с вами связался.

*нажимая на кнопку, Вы даете согласие на обработку персональных данных
Быстрое внедрение включает:
На сервере установлено следующее ПО (доступно при подключении по протоколу RDP):
Также настроено:
Перед внедрением клиент предоставляет информацию о пользователях (логины и пароли). После завершения работ, клиенту высылается инструкция и ярлык для подключения.
Индивидуальное внедрение по ТЗ клиента обсуждается отдельно.