vagrant up
(il faut installer Vagrant et VirtualBox avant si ce n’est pas fait)ansible-playbook ping.yml
, il teste donc qu’Ansible est bien configuré.ansible-playbook setup_elastic.yml
. Les requirements
sont installés ! Voyez les ok et changed apparaissant lorsque vous
lancez le playbook : Ansible est verbeux, il informe de sa réussite.Observez le fichier templates/elasticsearch.yml.j2
: c’est modèle de
fichier de configuration. Il contient des trous {{ ma_variable }}
qui doivent être remplis par les variables du playbook
Jouer le playbook complet.
Lancez les commandes de diagnostic
curl http://192.168.2.2:9200/_cat/nodes?pretty
curl -XGET http://192.168.2.2:9200/_cluster/state?pretty
curl -XGET http://192.168.2.2:9200/_cluster/health?pretty
Si tout est bien configuré vous devriez voir une liste de deux nœuds signifiant que les deux elastic se « connaissent »
Pour ajouter un nouveau nœud !
hosts.cfg
dans le groupe elastic_nodes
elk_node_ips
relancer le playbook : #magic
Lancer : ansible-playbook setup_kibana.yml
Accéder à 192.168.2.4:5601
dans Firefox 😃
version: "3.8"
services:
es01:
image: docker.elastic.co/elasticsearch/elasticsearch:7.14.0
container_name: es01
environment:
- node.name=es01
- cluster.name=es-docker-cluster
- discovery.seed_hosts=es02,es03
- cluster.initial_master_nodes=es01,es02
- bootstrap.memory_lock=true
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
- xpack.security.enabled=false
ulimits:
memlock:
soft: -1
hard: -1
volumes:
- data01:/usr/share/elasticsearch/data
ports:
# - 9200:9200
- 9201:9200
networks:
- elastic
es02:
image: docker.elastic.co/elasticsearch/elasticsearch:7.14.0
container_name: es02
ports:
- 9202:9200
environment:
- node.name=es02
- cluster.name=es-docker-cluster
- discovery.seed_hosts=es01,es03
- cluster.initial_master_nodes=es01,es02
- bootstrap.memory_lock=true
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
- xpack.security.enabled=false
ulimits:
memlock:
soft: -1
hard: -1
volumes:
- data02:/usr/share/elasticsearch/data
networks:
- elastic
es03:
image: docker.elastic.co/elasticsearch/elasticsearch:7.14.0
container_name: es03
ports:
- 9203:9200
environment:
- node.name=es03
- cluster.name=es-docker-cluster
- discovery.seed_hosts=es01,es02
- cluster.initial_master_nodes=es01,es02
- bootstrap.memory_lock=true
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
- xpack.security.enabled=false
ulimits:
memlock:
soft: -1
hard: -1
volumes:
- data03:/usr/share/elasticsearch/data
networks:
- elastic
kibana:
image: docker.elastic.co/kibana/kibana:7.14.0
ports:
- 5601:5601
networks:
- elastic
environment:
ELASTICSEARCH_HOSTS: '["http://es01:9200","http://es02:9200","http://es03:9200"]'
volumes:
data01:
driver: local
data02:
driver: local
data03:
driver: local
networks:
elastic:
driver: bridge
Récupérer la config Filebeat :
curl -L -O https://raw.githubusercontent.com/elastic/beats/7.10/deploy/docker/filebeat.docker.yml
Renommons cette configuration et rectifions qui possède ce fichier pour satisfaire une contrainte de sécurité de Filebeat :
mv filebeat.docker.yml filebeat.yml
sudo chown root filebeat.yml
sudo chmod go-w filebeat.yml
version: "3"
services:
elasticsearch:
image: docker.elastic.co/elasticsearch/elasticsearch:7.5.0
environment:
- discovery.type=single-node
- xpack.security.enabled=false
networks:
- logging-network
filebeat:
image: docker.elastic.co/beats/filebeat:7.5.0
user: root
depends_on:
- elasticsearch
volumes:
- ./filebeat.yml:/usr/share/filebeat/filebeat.yml:ro
- /var/lib/docker/containers:/var/lib/docker/containers:ro
- /var/run/docker.sock:/var/run/docker.sock:ro
networks:
- logging-network
environment:
- -strict.perms=false
kibana:
image: docker.elastic.co/kibana/kibana:7.5.0
depends_on:
- elasticsearch
ports:
- 5601:5601
networks:
- logging-network
networks:
logging-network:
driver: bridge