Sign inSign up

segateekb/vector_eventlog

By segateekb

Updated over 2 years ago

Image
0

362

segateekb/vector_eventlog repository overview

Сбор журнала регистрации при помощи vector

Chat on Telegram DevOps_1c

Этот проект призван помочь упростить рутину по подключению новых баз к сбору ЖР.

Для сбора логов используется vector.dev

На данный момент реализован сбор в clickhouse

Возможности

  • Сбор журнала регистрации с одной БД.
  • Сбор журнала регистрации с произвольного количества баз 1с и серверов приложений.

Принципы использования

Сбор логов с одной базы 1с
  • Подготовьте docker-compose.yml
    • Укажите значения переменных для подключения к инстансу clickhouse. (CH_SERVER, CH_USER, CH_PASSWORD)
    • Укажите параметры используемой базы и таблиц(CH_BASE_NAME, LOG_TABLE, ERROR_TABLE)
  • docker-compose up -d Пример:
version: "3.8"
services:
  vector:
    image: segateekb/vector_eventlog:latest
    volumes:
      - ./config:/etc/vector
      - ./logs:/var/log/eventlog/ # Папка с логами.
    environment:
      CH_BASE_NAME: "samplebase"
      CH_USER: "default"
      CH_PASSWORD: ""
Сбор логов с нескольких баз одновременно

Данный проект предоставляет возможность собирать ЖР с нескольких баз. Для корректного маппинга, перед началом сбора анализируется файл настроек кластера сервера приложений.

Использование файла соответствия баз

Для корректной настройки используется файл baselist.yaml содержащий перечень имен баз 1с, и имя целевой базы в ClickHouse куда требуется положить результат парсинга. Пример файла baselist.yaml:

databases:
  - 1c_baseName: 1c_perko
    ch_baseName: 1c_perko_eventlog
  - 1c_baseName: zup3_regl
    ch_baseName: zup3_regl_eventlog
  - 1c_baseName: 1C_CRM
    ch_baseName: 1C_CRM_eventlog
  - 1c_baseName: Monitor
    ch_baseName: Monitor_eventlog
  • Реализована возможность получения списка всех баз доступных для сбора ЖР при помощи Vector.

    Для этого реализована команда list-bases

    Пример:

    docker run --rm -v vector_eventlog_exporter_vector_logs:/var/log/eventlog/ segateekb/vector_eventlog list-bases
    

Передать этот файл можно 2мя способами:

  1. Переменная окружения BASE_LIST

    Пример:

    version: "3.8"
    services:
      vector:
        image: segateekb/vector_eventlog:latest
        volumes:
          - ./config:/etc/vector
          - ./logs:/var/log/eventlog/
        environment:
          BASE_LIST: |
            databases:
              - 1c_baseName: "1C_CRM"
                ch_baseName: "1C_CRM_ch"
              - 1c_baseName: "erp26"
                ch_baseName: "erp26_ch"
          CH_USER: "default"
          CH_PASSWORD: ""
    
  2. Переменная окружения BASE_LIST__FILE

    В эту переменную необходимо передать путь к файлу baselist.yaml внутри контейнера.

    Пример:

    version: "3.8"
    services:
      vector:
        image: segateekb/vector_eventlog:latest
        configs:
          - source: baselist.yaml_config
            target: /tmp/baselist.yaml
        volumes:
          - ./config:/etc/vector
          - ./logs:/var/log/eventlog/
        environment:
          BASE_LIST__FILE: /tmp/baselist.yaml
          CH_USER: "default"
          CH_PASSWORD: ""
    configs:
      baselist.yaml_config:
        external: true
    

    Можно просто положить данный файл в /etc/vector/baseList.yaml тогда указание переменной окружения - можно опустить.

Автоматический контроль наличия баз clickhouse

При старте контейнера выполняется:

  • Контроль доступности сервера ClickHouse
  • Создание, в случае отсутствия, баз с настройками по умолчанию.

В случае необходимости автоматическое создание баз и таблиц контролируется переменной окружения CREATE_CLICKHOUSE_BASES_ALLOWED

Пример отключения автоматического создания баз:

version: "3.8"
services:
  vector:
    image: segateekb/vector_eventlog:latest
    volumes:
      - ./config:/etc/vector
      - ./logs:/var/log/eventlog/ # Папка с логами.
    environment:
      CH_BASE_NAME: "samplebase"
      CH_USER: "default"
      CH_PASSWORD: ""
      CREATE_CLICKHOUSE_BASES_ALLOWED=false

Обработанных файлов журнала регистрации

Предусмотрена возможность настройки удаления файлов журнала регистрации.

  • По умолчанию, файлы журнала не удаляются, но этим поведением можно управлять при помощи переменной окружения DELETE_OLD_FILES_AFTER.
  • По умолчанию время указывается в секундах, но доступны квантификаторы.
    • s - Секунды
    • m - Минуты
    • h - Часы
    • d - Дни

Пример:

version: "3.8"
services:
  vector:
    image: segateekb/vector_eventlog:latest
    volumes:
      - ./config:/etc/vector
      - ./logs:/var/log/eventlog/ # Папка с логами.
    environment:
      CH_BASE_NAME: "samplebase"
      CH_USER: "default"
      CH_PASSWORD: ""
      DELETE_OLD_FILES_AFTER: 4d

Использование Docker secrets для хранения чувствительных данных

Для хранения логина и пароля от вашего инстанса Clickhouse Реализована поддержка секретов.

Используйте переменные окружения CH_USER__FILE и CH_PASSWORD__FILE.

Пример:

version: "3.8"
services:
  vector:
    image: segateekb/vector_eventlog:latest
    volumes:
      - ./config:/etc/vector
      - ./logs:/var/log/eventlog/ # Папка с логами.
    environment:
      CH_BASE_NAME: "samplebase"
      CH_USER__FILE: "/run/secrets/ch_user"
      CH_PASSWORD__FILE: "/run/secrets/ch_password"
    secrets:
      - ch_user
      - ch_password

secrets:
  ch_user:
    external: true
  ch_password:
    external: true

Tag summary

Content type

Image

Digest

sha256:f48b7f813

Size

251.2 MB

Last updated

over 2 years ago

docker pull segateekb/vector_eventlog