Рубрики
Uncategorized

Развернуть Kafka + FileBeat + Elk — Docker Edition — Часть 2

Введение Эта статья является последней частью серии двух частей, где мы будем развернуть лось … Tagged с Docker, Kafka, Elk, DevOps.

ELK1 (2 серии деталей)

Вступление

Эта статья является последней частью серии из двух частей, где мы будем развернуть стек ELK с помощью Docker/Docker-Compose. В этой статье мы будем настраивать Logstash, Elasticsearch и Kibana. Если вы не прошли через предыдущую статью, ознакомьтесь с этой ссылкой

Logstash

Logstash-это конвейер обработки данных на стороне сервера, который потребляет данные из разных источников и отправляет их в Elasticsearch. Мы затронули его важность при сравнении с FileBeat в предыдущей статье. Теперь, чтобы установить Logstash, мы будем добавлять три компонента

  • конфигурация трубопровода — logstash.conf
  • Настройка конфигурации — logstash.yml
  • Docker-Compose File

Конфигурация трубопровода будет включать информацию о вашем вводе (KAFKA в нашем случае), любую фильтрацию, которая необходимо выполнить, и вывод (AKA Elasticsearch). Создайте папку с именем Pipeline и добавьте в нее этот файл конфигурации.

Logstash Pipeline — logstash.conf

input {
    kafka{
        bootstrap_servers => "KAFKA_SERVERS_IP:KAFKA_SERVERS_PORT"
        topics => ["applogs"]
    }
}
filter {
    json {
        source => "message"
      }
}
## Add your filters / logstash plugins configuration here
output {
        elasticsearch {
    hosts => ["ELASTICSEARCH_IP:9200"]
    user => 'elastic'
    password => 'somesecretpassword'
    }

Как вы можете видеть, в разделе ввода мы слушаем Кафку по теме аппликации . В моем случае я добавил фильтр, который будет провести данные, которые попадают под ключ «Сообщение». Есть несколько плагина Фильтры выбирать из. Вывод перенаправляется на Elastic Search, а пароль пользователя настроен для аутентификации. Создайте папку с именем настройки и добавьте в нее этот файл конфигурации

Настройки logstash — logstash.yml

http.host: "0.0.0.0"
path.config: /usr/share/logstash/pipeline
path.logs: /var/log/logstash
config.reload.automatic: true
log.level: debug
xpack.monitoring.enabled: false

Файл с композитом Docker выглядит так:

Logstash Docker-Compose

version: '2'

services:
  logstash:
    image: docker.elastic.co/logstash/logstash:5.6.3
    ports:
      - "10000:10000"
    volumes:
      - ./settings/:/usr/share/logstash/config/
      - ./pipeline/:/usr/share/logstash/pipeline/
    container_name: logstash                          

Здесь установлены файлы конфигурации, упомянутые выше.

Чтобы запустить приведенный выше файл

docker-compose up -d

Теперь вы получите ошибку, так как мы еще не настроили эластичный поиск. Теперь давайте продолжим и установим Elasticsearch и Kibana

Elasticsearch и Kibana

Kibana — это пользовательский интерфейс с открытым исходным кодом, который помогает вам контролировать и визуализировать данные, которые в нашем случае предоставляются Elasticsearch. Elasticsearch, как следует из названия, представляет собой поисковый и аналитический двигатель для различных типов данных.

Elasticsearch и Kibana Docker-Compose

version: "2"
services:
 elasticsearch:
  image: "docker.elastic.co/elasticsearch/elasticsearch:7.13.2"
  container_name: elasticsearch
  environment:
   - discovery.type=single-node
   - cluster.routing.allocation.disk.threshold_enabled=true
   - cluster.routing.allocation.disk.watermark.low=65%
   - cluster.routing.allocation.disk.watermark.high=70%
   - xpack.security.enabled=true
   - xpack.security.audit.enabled=true
   - ELASTIC_PASSWORD=somethingsecret
   - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
   - bootstrap.memory_lock=true

  ulimits:
    memlock:
      soft: -1
      hard: -1
  volumes:
    - ./data:/usr/share/elasticsearch/data
  ports:
   - "9200:9200"
  networks:
   - eknetwork

 kibana:
  depends_on:
   - elasticsearch
  image: "docker.elastic.co/kibana/kibana:7.13.2"
  container_name: kibana
  ports:
   - "5601:5601"
  environment:
   - ELASTICSEARCH_URL=http://localhost:9200
   - ELASTICSEARCH_USERNAME=elastic
   - ELASTICSEARCH_PASSWORD=somethingsecretpassword
  networks:
   - eknetwork

networks:
 eknetwork:
  driver: bridge

Обязательно добавьте тот же пароль Elasticsearch, что и тот, который вы предоставили в файле конфигурации конвейера Logstash.

Чтобы запустить приведенный выше файл

docker-compose up -d

Теперь, когда все наши процессы работают, вам нужно будет настроить источник Кибаны из пользовательского интерфейса, чтобы вы могли видеть данные на пользовательском интерфейсе. Если вы сделали эту настройку на сервере и хотите немедленно настроить пользовательский интерфейс, я бы посоветовал вам создать правило брандмауэра для вашего публичного IP на порту 5601

ufw allow from YOUR_PUBLIC_IP to any port 5601

Теперь перейдите в свой любимый браузер, IP и порт сервера Type Server, и вы увидите что -то вроде этого:

Введите учетные данные, как указано в Docker-Compose выше, и вы сможете ввести приложение.

И вуаля! Ваша настройка завершена. Только не забудьте добавить логарифмическое обстрел в экземпляры Docker. Я добавил всю конфигурацию и файл Docker здесь

ELK1 (2 серии деталей)

Оригинал: «https://dev.to/dhingrachief/deploy-kafka-filebeat-elk-docker-edition-part-2-hpj»