sadsfae.ansible_elk
ansible-elk
=========== Ansible Playbook do konfiguracji stosu ELK/EFK oraz klienta Filebeat na zdalnych hostach
Co to robi?
- Automatyczna instalacja pełnego stosu ELK lub EFK w wersji 6.x (Elasticsearch, Logstash/Fluentd, Kibana)
- Wersje ELK
5.6
i2.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
- Wersje ELK
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
wgroup_vars/all.yml
- Ustaw
- Zainstaluj curator, ustawiając
install_curator_tool: true
winstall/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
- użytkownik:
Utwórz wzór indeksu Kibana
- Następnie zalogujesz się do swojej instancji Kibana i utworzysz wzór indeksu Kibana.
- Uwaga: Przykładowe dane mogą być przydatne, możesz spróbować później.
- 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/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:
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