Рубрики
Uncategorized

Становил эластичный стек

Введение Привет, меня зовут Кия Абдулахи И я новичок в сообществе разработчиков! Я за пределами … Tagged with Elasticsearch, Kibana, Docker, DevOps.

Серия эластичных стеков (серия 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»