Серия эластичных стеков (серия 2 частей)
Введение
Привет, меня зовут Кия Абдулахи И я новичок в сообществе разработчиков! Я не взволнован, чтобы учиться у всех вас и внести свой вклад в Dev!
Фон
Я из технологических операций. Я работал менеджером по реагированию на инцидент в Target чуть более двух лет. В этой роли мониторинг здоровья приложений/инфраструктуры и возможность реагировать на внезапные деградации или сбои были чрезвычайно важны. Правильно, что у меня есть сильные чувства по поводу того, насколько наблюдаемые приложения.
Чтобы создать наблюдаемые приложения, мы можем использовать технологии, такие как эластичный стек, чтобы помочь нам наблюдать за нашими приложениями. Давайте посмотрим, как мы можем настроить эластичный стек.
Наблюдаемость
Хотя наблюдение звучит очень похоже на новое техническое модное слово, оно существует с начала 1930 -х годов.
В теории контроля наблюдаемость является мерой того, насколько хорошо внутренние состояния системы могут быть выведены из знания ее внешних результатов. — Википедия
Если наши приложения не наблюдаются, никакого количества Глаза на стекло Мониторинг будет достаточно. Слишком часто мы совершаем ошибку, строив панель мониторинга и предупреждая после крупный отключение. Поскольку архитектура наших приложений становится более сложной, этот подход больше не масштабируется. Мы должны создать наблюдаемые приложения из прыжка!
Хорошо, я сейчас сойду с мыльной коробки и доберусь до хороших вещей!
Предварительные условия
- Некоторые знания о Docker
- Узнайте больше здесь
- Docker установлен
- 4,0 ГБ памяти, выделенная на Docker
- Предпочтения Docker> Ресурсы> продвинутые
Эластичный стек
Эластичный стек был разработан Эластичный и, возможно, самая популярная платформа управления журналами с открытым исходным кодом. Он состоит из Elasticsearch, Logstash и Kibana.
Elasticsearch — это метод поиска и аналитики, который центрально хранит ваши данные
Kibana позволяет вам визуализировать ваши данные Elasticsearch
Logstash позволяет нам потреблять данные из нескольких источников, преобразовать эти данные, а затем отправить их в наш любимый «тайник». Мы пока не будем покрывать logstash Но это будет частью серии!
Запуск эластичного стека Локально
Давайте начнем с открытия нашего любимого терминала (мой iterm2 с Ohmyzsh настроен) и создать несколько каталогов и файлов, работая:
mkdir elastic-stack && cd elastic-stack && touch docker-compose.yml && mkdir elasticsearch kibana && cd elasticsearch && touch elasticsearch.yml && cd ../kibana && touch kibana.yml && cd ..
Мы только:
- Сделал наш корневой каталог под названием
эластичный стек
- Создал
Docker-compose.yml
Файл внутриэластичный стек
- Создал еще два каталога внутри
Эластичный стек
называетсяElasticsearch
иКибана
- Добавил
YML
Файл вElasticsearch
а такжеКибана
каталоги
Теперь давайте откроем наш Эластичный стек
Папка с нашим любимым редактором кода или IDE (я использую код Visual Studio для этого примера) и начните настраивать наш эластичный стек.
Внутри нашего Elasticsearch.yml
Файл, вставьте в следующее:
cluster.name: es-docker-cluster # setting the name of our docker cluster network.host: 0.0.0.0 # making elasticsearch accessible to all IPs on the host machine
Внутри нашего kibana.yml
Файл, вставьте в следующее:
server.name: kibana # setting the name of our Kibana server server.host: 0.0.0.0 # making kibana accessible to all IPs on the host machine elasticsearch.hosts: [ "http://elasticsearch:9200" ] # allows communication from Kibana to Elasticsearch.
Внутри нашего Docker-compose.yml
Файл, вставьте в следующее:
version: '3.7' # file version is specific to Docker Engine release versions. learn more here: https://docs.docker.com/compose/compose-file/compose-versioning/ services: elasticsearch: image: docker.elastic.co/elasticsearch/elasticsearch:7.6.0 # latest elasticsearch docker image from elastic container_name: elasticsearch # setting our elasticsearch container name environment: node.name: es01 # setting our node name inside the cluster.initial_master_nodes: es01 # declaring our es01 node as master ES_JAVA_OPTS: "-Xms512m -Xmx512m" # setting our JVM heap size. learn more here: https://www.elastic.co/guide/en/elasticsearch/reference/current/heap-size.html volumes: - ./elasticsearch/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml # volumes allow us to map our elasticsearch.yml file from the host machine to our docker container. learn more about volumes here: https://docs.docker.com/storage/volumes/ ports: - 9200:9200 # setting elasticsearch accessibility on port 9200 on our host machine and docker container. these are the default ports for elasticsearch networks: - elastic # referencing a docker network. more details below under networks kibana: image: docker.elastic.co/kibana/kibana:7.6.0 # latest elasticsearch docker image from elastic container_name: kibana # setting our kibana container name volumes: - ./kibana/kibana.yml:/usr/share/kibana/config/kibana.yml # volumes allow us to map our kibana.yml file from the host machine to our docker container. learn more about volumes here: https://docs.docker.com/storage/volumes/ ports: - 5601:5601 # setting kibana accessibility on port 5601 on our host machine and docker container. these are the default ports for kibana networks: - elastic # referencing a docker network. more details below under networks networks: elastic: driver: bridge # default network driver. learn more here: https://docs.docker.com/network/bridge/
Теперь давайте запустим следующую команду, чтобы построить и запустить наши контейнеры Docker!
docker-compose up
Тест Если Elasticsearch и Kibana работают
Вы можете сделать это через свой любимый браузер.
- Перейти к
Localhost: 9200
И вы должны увидеть:
{ "name" : "es01", "cluster_name" : "es-docker-cluster", "cluster_uuid" : "Ce7adjQNQ-qz2eIRKHIL9Q", "version" : { "number" : "7.6.0", "build_flavor" : "default", "build_type" : "docker", "build_hash" : "7f634e9f44834fbc12724506cc1da681b0c3b1e3", "build_date" : "2020-02-06T00:09:00.449973Z", "build_snapshot" : false, "lucene_version" : "8.4.0", "minimum_wire_compatibility_version" : "6.8.0", "minimum_index_compatibility_version" : "6.0.0-beta1" }, "tagline" : "You Know, for Search" }
- Перейти к
Localhost: 5601
И вы должны увидеть:
Хорошая работа
Ты сделал это! Теперь у вас есть пример упругого стека, работающего локально на вашей машине!
Вы можете найти копию конфигурации Dockerized Elastic Stack, которую вы только что собрали Здесь Анкет
Следующий
Это первая часть серии Elastic Stack, которую я пишу. Обязательно следите за обновлениями на следующее:
- Обеспечение нашего упругого стека Dockerized
- Журналы доставки в нашу Dockerized Elastic Stack с Logstash
- Запрос и визуализация наших журналов
- Предупреждение на основе наших журналов
- Развертывание нашего упругого стека в производство
Серия эластичных стеков (серия 2 частей)
Оригинал: «https://dev.to/thehoodsdev/dockerized-elastic-stack-3cfn»