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»