Содержание
Elasticsearch
Getting started with the Elastic Stack and Docker Compose: part 1 (git), part 2 (git).
🎞️ Install Elasticsearch + Kibana 8.x with TLS/SSL
Fluentd
Kibana
Install Kibana with Docker
Кибана настраивается через переменные окружения соответственно параметрам в kibana.yml, с капитализацией и заменой точек на подчёркивания в параметрах:
Environment Variable | Kibana Setting |
---|---|
SERVER_NAME | server.name |
SERVER_BASEPATH | server.basePath |
ELASTICSEARCH_HOSTS | elasticsearch.hosts |
и т. д.
HTTPS
# Сконвертировать исходный сторонний .pfx в .crt/.key openssl pkcs12 -in /tmp/source.pfx -clcerts -nokeys -out /efk/certs/kibana.crt openssl pkcs12 -in /tmp/source.pfx -nocerts -nodes -out /efk/certs/kibana.key
https://tipoit.kz/elk-install-kibana
kibana: depends_on: es01: condition: service_healthy image: kibana:${STACK_VERSION} labels: co.elastic.logs/module: kibana volumes: - ./certs:/usr/share/kibana/config/certs - ./kibanadata:/usr/share/kibana/data - ./kibana.yml:/usr/share/kibana/config/kibana.yml:ro ports: - ${KIBANA_PORT}:5601 environment: - SERVERNAME=kibana - ELASTICSEARCH_HOSTS=https://es01:9200 - ELASTICSEARCH_USERNAME=kibana_system - ELASTICSEARCH_PASSWORD=${KIBANA_PASSWORD} - ELASTICSEARCH_SSL_CERTIFICATEAUTHORITIES=config/certs/ca/ca.crt - XPACK_SECURITY_ENCRYPTIONKEY=${ENCRYPTION_KEY} - XPACK_ENCRYPTEDSAVEDOBJECTS_ENCRYPTIONKEY=${ENCRYPTION_KEY} - XPACK_REPORTING_ENCRYPTIONKEY=${ENCRYPTION_KEY} - XPACK_REPORTING_KIBANASERVER_HOSTNAME=localhost - SERVER_SSL_ENABLED=true - SERVER_SSL_CERTIFICATE=config/certs/kibana/kibana.crt - SERVER_SSL_KEY=config/certs/kibana/kibana.key - SERVER_SSL_CERTIFICATEAUTHORITIES=config/certs/ca/ca.crt mem_limit: ${KB_MEM_LIMIT} healthcheck: test: [ "CMD-SHELL", "curl -I -s --cacert config/certs/ca/ca.crt https://localhost:5601 | grep -q 'HTTP/1.1 302 Found'", ] interval: 10s timeout: 10s retries: 120
https://github.com/elkninja/elastic-stack-docker-part-two/blob/main/docker-compose.yml
Конфигурация
Этапы прохождения логов во Флюенте:
Source → Format → Output
Для каждого этапа есть свои плагины, т. е., для сбора из разных источников (файлы, systemd и т .п.), форматирования/дополнения/тэгирования и отправки в разные системы (например, Elasticsearch).
Литература
Docker logging: https://www.fluentd.org/guides/recipes/docker-logging
Как настроить централизованное логирование для Docker Swarm с помощью Fluentd: https://cloud.vk.com/docs/cases/cases-logs/case-swarm
Better Log Parsing with Fluentd: https://work.haufegroup.io/fluentd-log-parsing/
Docker Setup Monitoring: https://www.frederikbanke.com/docker-setup-monitoring/
Настройка централизованного логирования в Docker с применением EFK Stack: https://daffin.ru/devops/docker/efk/
Elasticsearch + Docker-compose, также см. весь канал