sadsfae.ansible_elk

ansible-elk

=========== Ansible-Playbook zum Einrichten des ELK/EFK-Stacks und des Filebeat-Clients auf entfernten Hosts

ELK

GA

Was macht es?

  • Automatisierte Bereitstellung eines vollständigen ELK- oder EFK-Stacks der Version 6.x (Elasticsearch, Logstash/Fluentd, Kibana)
    • Die Versionen 5.6 und 2.4 werden als Zweige gepflegt, und der master-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.

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 in group_vars/all.yml
  • Installieren Sie curator, indem Sie install_curator_tool: true in install/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

Erstellen Sie Ihr Kibana-Indexmuster

  • Als nächstes melden Sie sich bei Ihrer Kibana-Instanz an und erstellen ein Kibana-Indexmuster.

ELK

  • Hinweis: Beispieldaten können nützlich sein; Sie können es später versuchen.

ELK

ELK

ELK

ELK

  • 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.

ELK

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:

Ansible Elk

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