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»