sadsfae.ansible_elk
ansible-elk
=========== Ansible-Playbook zum Einrichten des ELK/EFK-Stacks und des Filebeat-Clients auf entfernten Hosts
Was macht es?
- Automatisierte Bereitstellung eines vollständigen ELK- oder EFK-Stacks der Version 6.x (Elasticsearch, Logstash/Fluentd, Kibana)
- Die Versionen
5.6
und2.4
werden als Zweige gepflegt, und dermaster
-Zweig ist derzeit 6.x. - Verwendet Nginx als Reverse-Proxy für Kibana oder optional Apache über
apache_reverse_proxy: true
- Erstellt SSL-Zertifikate für Filebeat oder Logstash-Weiterleiter
- Fügt iptables- oder firewalld-Regeln hinzu, wenn eine Firewall aktiv ist
- Passt die Heap-Größe von Elasticsearch auf die Hälfte des verfügbaren Speichers an, maximal jedoch 32G
- Installiert ELK-Clients unter Verwendung von SSL und Filebeat für Logstash (Standard)
- Installiert rsyslog, wenn Fluentd anstelle von Logstash gewählt wurde und erfasst die gleichen OpenStack-bezogenen Protokolle in /var/log/*
- Alle Dienstportnummern können in
install/group_vars/all.yml
geändert werden - Optional Installation von curator
- Optional Installation von Elastic X-Pack Suite
- Dies ist auch auf Ansible Galaxy verfügbar.
- Die Versionen
Anforderungen
- RHEL7- oder CentOS7-Server/Client ohne Änderungen
- RHEL7/CentOS7, Rocky oder Fedora für ELK-Clients mit Filebeat
- ELK/EFK-Server mit mindestens 8G RAM (Sie können es mit weniger versuchen, aber die 5.x-Serie ist sehr anspruchsvoll - versuchen Sie die 2.4-Serie, wenn Sie begrenzte Ressourcen haben).
- Möglicherweise möchten Sie
vm.swappiness
anpassen, da ELK/EFK anspruchsvoll ist und Swapping die Reaktionsfähigkeit beeinträchtigt.- Ich lasse dies Ihrem Ermessen über.
echo "vm.swappiness=10" >> /etc/sysctl.conf
sysctl -p
Hinweise
- Die aktuelle ELK-Version ist 6.x, aber Sie können den Zweig 5.6 oder 2.4 überprüfen, wenn Sie diese Serien verwenden möchten.
- Ich werde dieses Playbook in Zukunft bei größeren ELK-Versionen aktualisieren, wenn die Zeit es erlaubt.
- Setzt das nginx htpasswd anfänglich auf admin/admin
- Die Standardports von nginx sind 80/8080 für Kibana und SSL-Zertifikatabruf (konfigurierbar)
- Verwendet OpenJDK für Java
- Es ist ziemlich schnell, dauert etwa 3 Minuten auf einer Test-VM
- Fluentd kann als Standard-Logstash ersetzt werden
- Setzen Sie
logging_backend: fluentd
ingroup_vars/all.yml
- Setzen Sie
- Installieren Sie curator, indem Sie
install_curator_tool: true
ininstall/group_vars/all.yml
setzen. - Installieren Sie Elastic X-Pack Suite für Elasticsearch, LogStash oder Kibana über:
install_elasticsearch_xpack: true
install_kibana_xpack: true
install_logstash_xpack: true
- Hinweis: Die Bereitstellung von X-Pack wird Ihre ES mit zusätzlicher Authentifizierung und Sicherheit versehen; Kibana hat jetzt beispielsweise eigene Anmeldeinformationen - der Standard ist Benutzername:
elastic
und Passwort:changeme
Anweisungen für den ELK/EFK-Server
- Klonen Sie das Repository und richten Sie Ihre Hosts-Datei ein
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
- Wenn Sie einen Nicht-Root-Benutzer für Ansible verwenden, z.B. AWS EC2 verwendet oft ec2-user, dann setzen Sie Folgendes, Standard ist root.
ansible_system_user: ec2-user
- Führen Sie das Playbook aus
ansible-playbook -i hosts install/elk.yml
- (siehe Playbook-Nachrichten)
- Navigieren Sie zu ELK unter http://host-01:80 (Standard, nginx) oder http://host-01/kibana (apache)
- Der Standard-Login ist:
- Benutzername:
admin
- Passwort:
admin
- Benutzername:
Erstellen Sie Ihr Kibana-Indexmuster
- Als nächstes melden Sie sich bei Ihrer Kibana-Instanz an und erstellen ein Kibana-Indexmuster.
- Hinweis: Beispieldaten können nützlich sein; Sie können es später versuchen.
- An diesem Punkt können Sie Ihre Client(s) einrichten, um Daten über Filebeat/SSL zu senden.
Anweisungen für ELK-Clients
- Führen Sie das Client-Playbook gegen die generierte
elk_server
-Variable aus
ansible-playbook -i hosts install/elk-client.yml --extra-vars 'elk_server=X.X.X.X'
- Sobald dies abgeschlossen ist, kehren Sie zu Ihrem ELK zurück und Sie sehen, wie Protokollergebnisse von ELK/EFK-Clients über Filebeat eingehen.
5.6 ELK/EFK (Abgelaufen)
- Die Version 5.6 von ELK/EFK ist ebenfalls verfügbar. Verwenden Sie einfach den 5.6-Zweig.
git clone https://github.com/sadsfae/ansible-elk
cd ansible-elk
git checkout 5.6
2.4 ELK/EFK (Abgelaufen)
- Die Version 2.4 von ELK/EFK ist ebenfalls verfügbar. Verwenden Sie einfach den 2.4-Zweig.
git clone https://github.com/sadsfae/ansible-elk
cd ansible-elk
git checkout 2.4
- Sie können hier ein Bereitstellungsvideo ansehen:
Dateihierarchie
.
├── 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 Verzeichnisse, 52 Dateien
Über das Projekt
Playbook for setting up an ELK/EFK stack and clients.
Installieren
ansible-galaxy install sadsfae.ansible_elk
Lizenz
apache-2.0
Downloads
1.2k
Besitzer
hobo devop/sysadmin/SRE