Porque ELK?

"ELK" é o acrônimo para três projetos open source: Elasticsearch, Logstash e Kibana. O Elasticsearch é um mecanismo de busca e análise. O Logstash é um pipeline de processamento de dados do lado do servidor que faz a ingestão de dados a partir de inúmeras fontes simultaneamente, transforma-os e envia-os para um "esconderijo" como o Elasticsearch. O Kibana permite que os usuários visualizem dados com diagramas e gráficos no Elasticsearch.

"Um item tão importe em dias atuais é a observabilidade dos sistemas"

Observabilidade, na teoria de controle, é uma medida quão bem podem os estados de um sistema ser inferidos a partir do conhecimento de suas saídas externas. <Fonte>


Bora subir o ELK em Docker?

Diretório utilizado como base: /docker
Tag das imagens: 7.8.1 ( mais atual até 02/08/2020)

1) Crie o seguinte diretório e aplique as devidas permissões:

sudo mkdir -p /docker/elastic/data
sudo chmod -R g+rwx /docker/elastic
sudo chown -R 1000:1000 /docker/elastic

2) Crie o arquivo de docker-compose :

vim /docker/elastic/elk.yml

E insira o conteúdo abaixo:

version: '3.3'
services:
    elasticsearch:
        container_name: elasticsearch
        image: 'docker.elastic.co/elasticsearch/elasticsearch:7.8.1'
        ports:
            - '9200:9200'
            - '9300:9300'
        restart: always
        environment:
            - http.host=0.0.0.0
            - discovery.type=single-node
        volumes:
            - '/docker/elastic/data:/usr/share/elasticsearch/data'
        

    kibana:
        container_name: kibana
        image: 'docker.elastic.co/kibana/kibana:7.8.1'
        depends_on:
            - elasticsearch
        ports:
            - '5601:5601'
        restart: always
        environment:
            - 'ELASTICSEARCH_HOSTS=http://elasticsearch:9200'
            - XPACK_GRAPH_ENABLED=true
            - XPACK_WATCHER_ENABLED=true
            - XPACK_ML_ENABLED=true
            - XPACK_MONITORING_ENABLED=true
            - XPACK_MONITORING_UI_CONTAINER_ELASTICSEARCH_ENABLED
                

    logstash:
        container_name: logstash
        image: 'docker.elastic.co/logstash/logstash:7.8.1'
        depends_on:
            - kibana       
        restart: always
        environment:
            - 'XPACK.MONITORING.ELASTICSEARCH.HOSTS=http://elasticsearch:9200'

3) Para criar os containers e baixar as imagens, execute o comando abaixo:

docker-compose -f /docker/elastic/elk.yml up -d

4) Acesse pelo navegador http://IP-Servidor:5601