sadsfae.ansible_elk
ansible-elk
Ansible Playbook pour configurer la pile ELK/EFK et le client Filebeat sur des hôtes distants.

Que fait-il ?
- Déploiement automatisé d'une pile ELK ou EFK complète de la série 6.x (Elasticsearch, Logstash/Fluentd, Kibana)- Les versions 5.6et2.4d'ELK sont maintenues sous forme de branches et la branchemastersera actuellement la 6.x.
- Utilise Nginx comme proxy inverse pour Kibana, ou Apache en option avec apache_reverse_proxy: true.
- Génère des certificats SSL pour Filebeat ou Logstash-forwarder.
- Ajoute des règles iptables ou firewalld si le pare-feu est actif.
- Ajuste la taille du tas d'Elasticsearch à la moitié de votre mémoire, avec un maximum de 32 Go.
- Déploie les clients ELK en utilisant SSL et Filebeat pour Logstash (par défaut).
- Déploie rsyslog si Fluentd est choisi au lieu de Logstash, récupérant le même ensemble de journaux liés à OpenStack dans /var/log/*.
- Tous les ports de service peuvent être modifiés dans install/group_vars/all.yml.
- Installe optionnellement curator.
- Installe optionnellement Elastic X-Pack Suite.
- Ceci est également disponible sur Ansible Galaxy.
 
- Les versions 
Exigences
- Serveur/client RHEL7 ou CentOS7 sans modifications.
- RHEL7/CentOS7, Rocky ou Fedora pour les clients ELK utilisant Filebeat.
- Serveur ELK/EFK avec au moins 8 Go de mémoire (vous pouvez essayer avec moins, mais la série 5.x est assez exigeante - essayez la série 2.4 si vous avez des ressources limitées).
- Vous voudrez peut-être modifier vm.swappinesscar ELK/EFK est exigeant et la mémoire swap affecte la réactivité.- Je vous laisse juger à ce sujet.
 
echo "vm.swappiness=10" >> /etc/sysctl.conf
sysctl -p
Remarques
- La version actuelle d'ELK est la 6.x mais vous pouvez consulter la branche 5.6 ou 2.4 si vous souhaitez cette série.
- Je mettrai à jour ce playbook pour les principales versions d'ELK à l'avenir, le temps le permettant.
- Définit par défaut le htpasswd de nginx à admin/admin.
- Les ports nginx par défaut sont 80/8080 pour Kibana et la récupération du certificat SSL (configurable).
- Utilise OpenJDK pour Java.
- C'est assez rapide, cela prend environ 3 minutes sur une VM de test.
- Fluentd peut être substitué à Logstash par défaut.- Définissez logging_backend: fluentddansgroup_vars/all.yml.
 
- Définissez 
- Installez curator en définissant install_curator_tool: truedansinstall/group_vars/all.yml.
- Installez Elastic X-Pack Suite pour Elasticsearch, LogStash ou Kibana via :- install_elasticsearch_xpack: true
- install_kibana_xpack: true
- install_logstash_xpack: true
- Remarque : Le déploiement de X-Pack ajoutera une authentification et une sécurité supplémentaires à votre ES, par exemple, Kibana aura maintenant ses propres identifiants - le par défaut est le nom d'utilisateur : elasticet le mot de passe :changeme.
 
Instructions pour le serveur ELK/EFK
- Clonez le dépôt et configurez votre fichier hosts.
git clone https://github.com/sadsfae/ansible-elk
cd ansible-elk
sed -i 's/host-01/elkserver/' hosts
sed -i 's/host-02/elkclient/' hosts
- Si vous utilisez un utilisateur non-root pour Ansible, par exemple, AWS EC2 utilise souvent ec2-user, définissez ce qui suit, le défaut est root.
ansible_system_user: ec2-user
- Exécutez le playbook.
ansible-playbook -i hosts install/elk.yml
- (voir les messages du playbook).
- Accédez à ELK à http://host-01:80 (par défaut, nginx) ou http://host-01/kibana (apache).
- La connexion par défaut est :- nom d'utilisateur : admin
- mot de passe : admin
 
- nom d'utilisateur : 
Créez votre modèle d'index Kibana
- Ensuite, connectez-vous à votre instance Kibana et créez un modèle d'index Kibana.

- Remarque : Les données d'exemple peuvent être utiles, vous pouvez essayer plus tard.




- À ce stade, vous pouvez configurer vos clients pour commencer à envoyer des données via Filebeat/SSL.
Instructions pour le client ELK
- Exécutez le playbook client contre la variable elk_servergénérée.
ansible-playbook -i hosts install/elk-client.yml --extra-vars 'elk_server=X.X.X.X'
- Une fois cela terminé, revenez à votre ELK et vous verrez les résultats de journalisation arrivés de clients ELK/EFK via Filebeat.

5.6 ELK/EFK (Obsolète)
- La série 5.6 d'ELK/EFK est également disponible, pour l'utiliser, il suffit d'utiliser la branche 5.6.
git clone https://github.com/sadsfae/ansible-elk
cd ansible-elk
git checkout 5.6
2.4 ELK/EFK (Obsolète)
- La série 2.4 d'ELK/EFK est également disponible, pour l'utiliser, il suffit d'utiliser la branche 2.4.
git clone https://github.com/sadsfae/ansible-elk
cd ansible-elk
git checkout 2.4
- Vous pouvez voir une vidéo de déploiement ici :
Hiérarchie des fichiers
.
├── hosts
├── install
│   ├── elk_client.yml
│   ├── elk.yml
│   ├── group_vars
│   │   └── all.yml
│   └── roles
│       ├── apache
│       │   ├── tasks
│       │   │   └── main.yml
│       │   └── templates
│       │       ├── 8080vhost.conf.j2
│       │       └── kibana.conf.j2
│       ├── curator
│       │   ├── files
│       │   │   └── curator.repo
│       │   ├── tasks
│       │   │   └── main.yml
│       │   └── templates
│       │       ├── curator-action.yml.j2
│       │       └── curator-config.yml.j2
│       ├── elasticsearch
│       │   ├── files
│       │   │   ├── elasticsearch.in.sh
│       │   │   └── elasticsearch.repo
│       │   ├── tasks
│       │   │   └── main.yml
│       │   └── templates
│       │       └── elasticsearch.yml.j2
│       ├── elk_client
│       │   ├── files
│       │   │   └── elk.repo
│       │   └── tasks
│       │       └── main.yml
│       ├── filebeat
│       │   ├── meta
│       │   │   └── main.yml
│       │   ├── tasks
│       │   │   └── main.yml
│       │   └── templates
│       │       ├── filebeat.yml.j2
│       │       └── rsyslog-openstack.conf.j2
│       ├── firewall
│       │   ├── handlers
│       │   │   └── main.yml
│       │   └── tasks
│       │       └── main.yml
│       ├── fluentd
│       │   ├── files
│       │   │   ├── filebeat-index-template.json
│       │   │   └── fluentd.repo
│       │   ├── tasks
│       │   │   └── main.yml
│       │   └── templates
│       │       ├── openssl_extras.cnf.j2
│       │       └── td-agent.conf.j2
│       ├── heartbeat
│       │   ├── meta
│       │   │   └── main.yml
│       │   ├── tasks
│       │   │   └── main.yml
│       │   └── templates
│       │       └── heartbeat.yml.j2
│       ├── instructions
│       │   └── tasks
│       │       └── main.yml
│       ├── kibana
│       │   ├── files
│       │   │   └── kibana.repo
│       │   ├── tasks
│       │   │   └── main.yml
│       │   └── templates
│       │       └── kibana.yml.j2
│       ├── logstash
│       │   ├── files
│       │   │   ├── filebeat-index-template.json
│       │   │   └── logstash.repo
│       │   ├── tasks
│       │   │   └── main.yml
│       │   └── templates
│       │       ├── 02-beats-input.conf.j2
│       │       ├── logstash.conf.j2
│       │       └── openssl_extras.cnf.j2
│       ├── metricbeat
│       │   ├── meta
│       │   │   └── main.yml
│       │   ├── tasks
│       │   │   └── main.yml
│       │   └── templates
│       │       └── metricbeat.yml.j2
│       ├── nginx
│       │   ├── tasks
│       │   │   └── main.yml
│       │   └── templates
│       │       ├── kibana.conf.j2
│       │       └── nginx.conf.j2
│       ├── packetbeat
│       │   ├── meta
│       │   │   └── main.yml
│       │   ├── tasks
│       │   │   └── main.yml
│       │   └── templates
│       │       └── packetbeat.yml.j2
│       └── xpack
│           └── tasks
│               └── main.yml
└── meta
    └── main.yml
56 répertoires, 52 fichiers
À propos du projet
 Playbook for setting up an ELK/EFK stack and clients.
Installer
 ansible-galaxy install sadsfae.ansible_elkLicence
 
            apache-2.0
          
Téléchargements
 
            1.3k
          
Propriétaire
 hobo devop/sysadmin/SRE

