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