sadsfae.ansible_elk

ansible-elk

=========== Ansible Playbook do konfiguracji stosu ELK/EFK oraz klienta Filebeat na zdalnych hostach

ELK

GA

Co to robi?

  • Automatyczna instalacja pełnego stosu ELK lub EFK w wersji 6.x (Elasticsearch, Logstash/Fluentd, Kibana)
    • Wersje ELK 5.6 i 2.4 są utrzymywane jako gałęzie, a gałąź master będzie obecnie w wersji 6.x.
    • Używa Nginx jako odwróconego proxy dla Kibany, albo opcjonalnie Apache poprzez apache_reverse_proxy: true
    • Generuje certyfikaty SSL dla Filebeat lub Logstash-forwardera
    • Dodaje reguły iptables lub firewalld, jeśli zapora jest aktywna
    • Dostosowuje rozmiar sterty Elasticsearch do połowy twojej pamięci, maksymalnie do 32G
    • Wdraża klientów ELK z użyciem SSL i Filebeat dla Logstash (domyślnie)
    • Wdraża rsyslog, jeśli wybrano Fluentd zamiast Logstash, zbiera ten sam zestaw logów związanych z OpenStack w /var/log/*
    • Wszystkie porty usług można zmienić w install/group_vars/all.yml
    • Opcjonalnie można zainstalować curator
    • Opcjonalnie można zainstalować Elastic X-Pack Suite
    • To jest również dostępne na Ansible Galaxy

Wymagania

  • Serwer/klient RHEL7 lub CentOS7 bez modyfikacji
  • RHEL7/CentOS7, Rocky lub Fedora dla klientów ELK używających Filebeat
  • Serwer ELK/EFK z co najmniej 8G pamięci (możesz spróbować z mniejszą, ale seria 5.x jest dość wymagająca - spróbuj serii 2.4, jeśli masz ograniczone zasoby).
  • Możesz chcieć zmodyfikować vm.swappiness, ponieważ ELK/EFK jest wymagający, a swapping zabija responsywność.
    • Pozostawiam to do Twojej oceny.
echo "vm.swappiness=10" >> /etc/sysctl.conf
sysctl -p

Uwagi

  • Aktualna wersja ELK to 6.x, ale możesz przejść do gałęzi 5.6 lub 2.4, jeśli chcesz tej serii
  • Zaktualizuję ten playbook dla głównych wersji ELK w przyszłości, gdy czas pozwoli.
  • Ustawienia htpasswd nginx początkowo na admin/admin
  • Domyślne porty nginx to 80/8080 dla Kibany i pobierania certyfikatów SSL (można konfigurować)
  • Używa OpenJDK do Javy
  • Jest dość szybki, zajmuje około 3 minut na testowej maszynie wirtualnej
  • Fluentd można zastąpić domyślnym Logstash
    • Ustaw logging_backend: fluentd w group_vars/all.yml
  • Zainstaluj curator, ustawiając install_curator_tool: true w install/group_vars/all.yml
  • Zainstaluj Elastic X-Pack Suite dla Elasticsearch, LogStash lub Kibany za pomocą:
    • install_elasticsearch_xpack: true
    • install_kibana_xpack: true
    • install_logstash_xpack: true
    • Uwaga: Wdrażanie X-Pack owinie Twój ES dodatkowymi uwierzytelnieniami i bezpieczeństwem, Kibana będzie miała teraz własne dane logowania - domyślnie użytkownik: elastic i hasło: changeme

Instrukcje dla serwera ELK/EFK

  • Skopiuj repozytorium i skonfiguruj swój plik 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
  • Jeśli używasz użytkownika nie-root do Ansible, np. AWS EC2 lubi używać ec2-user, ustaw poniżej, domyślnie jest root.
ansible_system_user: ec2-user
  • Uruchom playbook
ansible-playbook -i hosts install/elk.yml
  • (zobacz komunikaty z playbooka)
  • Przejdź do ELK pod adresem http://host-01:80 (domyślnie, nginx) lub http://host-01/kibana (apache)
  • Domyślne dane logowania to:
    • użytkownik: admin
    • hasło: admin

Utwórz wzór indeksu Kibana

  • Następnie zalogujesz się do swojej instancji Kibana i utworzysz wzór indeksu Kibana.

ELK

  • Uwaga: Przykładowe dane mogą być przydatne, możesz spróbować później.

ELK

ELK

ELK

ELK

  • W tym momencie możesz skonfigurować swoich klientów do wysyłania danych za pomocą Filebeat/SSL

Instrukcje dla klientów ELK

  • Uruchom playbook klienta przeciwko wygenerowanej zmiennej elk_server
ansible-playbook -i hosts install/elk-client.yml --extra-vars 'elk_server=X.X.X.X'
  • Po zakończeniu wróć do swojego ELK, a zobaczysz wyniki logów przychodzące z klientów ELK/EFK przez filebeat

ELK

ELK/EFK 5.6 (Nieaktualne)

  • Seria 5.6 ELK/EFK jest również dostępna, aby z niej skorzystać, użyj gałęzi 5.6
git clone https://github.com/sadsfae/ansible-elk
cd ansible-elk
git checkout 5.6

ELK/EFK 2.4 (Nieaktualne)

  • Seria 2.4 ELK/EFK jest również dostępna, aby z niej skorzystać, użyj gałęzi 2.4
git clone https://github.com/sadsfae/ansible-elk
cd ansible-elk
git checkout 2.4
  • Możesz obejrzeć film dotyczący wdrażania tutaj:

Ansible Elk

Hierarchia plików

.
├── 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 katalogów, 52 pliki
O projekcie

Playbook for setting up an ELK/EFK stack and clients.

Zainstaluj
ansible-galaxy install sadsfae.ansible_elk
Licencja
apache-2.0
Pobrania
1.2k
Właściciel
hobo devop/sysadmin/SRE