elastic.beats
ARCHIWUM
Ten projekt nie jest już rozwijany. Aby uzyskać alternatywne doświadczenia w uruchamianiu, możesz wypróbować jedną z tych opcji:
- Rozpocznij bezpłatny okres próbny na Elastic Cloud, naszej usłudze hostowanej.
- Zapoznaj się z Elastic Cloud na Kubernetes (ECK) do uruchamiania staku za pośrednictwem Kubernetes.
- Przeczytaj nasz przewodnik Uruchamianie Elastic Stack na Dockerze.
- Zobacz Elastic Stack Terraform provider.
ansible-beats
Ta rola zapewnia ogólny sposób instalacji wspieranych przez Elastic Beats.
Testowane Beats
- Filebeat
- MetricBeat (TopBeat w wersji 1.x)
- Packetbeat
Testowane Wersje
- 7.x
- 6.x
Testowane Platformy
- Ubuntu 16.04
- Ubuntu 18.04
- Ubuntu 20.04
- Debian 8
- Debian 9
- Debian 10
- CentOS 7
- Amazon Linux 2
Użycie
Utwórz swój playbook Ansible z własnymi zadaniami i dołącz rolę beats. Musisz mieć dostęp do tego repozytorium w kontekście playbooka.
ansible-galaxy install elastic.beats,v7.17.0
Następnie stwórz plik YAML swojego playbooka, dodając rolę beats. Aplikacja roli beats skutkuje instalacją węzła na hoście.
Najprostsza konfiguracja składa się z:
hosts: localhost
roles:
- role: elastic.beats
vars:
beats_version: 7.17.0
beat: filebeat
beat_conf:
filebeat:
inputs:
- type: log
enabled: true
paths:
- /var/log/*.log
Powyższe instaluje Filebeat 7.17.0 na hoście 'localhost'.
Uwagi:
- Domyślna wersja Beats opisana jest w
beats_version
. Możesz nadpisać tę zmienną w swoim playbooku, aby zainstalować inną wersję. Chociaż testujemy tę rolę tylko z jedną wersją 7.x i jedną 6.x (odpowiednio 7.17.0 i 6.8.23 w momencie pisania), ta rola powinna działać również z innymi wersjami w większości przypadków. - Produkt Beat opisany jest w zmiennej
beat
. Chociaż aktualnie testowane Beats to Filebeat, Metricbeat i Packetbeat, ta rola powinna działać także z innymi członkami Rodziny Beats w większości przypadków.
Testowanie
Ten playbook używa Kitchen do CI i lokalnego testowania.
Wymagania
- Ruby
- Bundler
- Docker
- Make
Uruchamianie testów
Aby skonwergować hosta Ubuntu 18.04
$ make converge
Aby uruchomić testy
$ make verify
Aby wylistować wszystkie różne zestawy testowe
$ make list
Domyślny zestaw testowy to Ubuntu 18.04. Jeśli chcesz przetestować inny zestaw, możesz to nadpisać zmienną PATTERN
$ make converge PATTERN=standard-centos-7
PATTERN
to wzór kitchen, który może pasować do wielu zestawów. Aby uruchomić wszystkie testy dla CentOS
$ make converge PATTERN=centos-7
Kiedy skończysz testować, możesz usunąć wszystko za pomocą
$ make destroy-all
Podstawowa konfiguracja Beats
Wszystkie parametry konfiguracyjne Beats są wspierane. Osiąga się to za pomocą mapy konfiguracyjnej beat_conf
, która jest serializowana do pliku ${beat}.yml
.
Użycie mapy zapewnia, że playbook Ansible nie musi być aktualizowany, aby odzwierciedlić nowe/zdeprecjonowane/parametry konfiguracji pluginów.
Oprócz mapy beat_conf
, wspierane są także kilka innych parametrów w celu umożliwienia dodatkowych funkcji, np. instalacja skryptów. Mogą być one znalezione w pliku defaults/main.yml
roli.
Poniżej przedstawiono przykład zastosowania parametrów konfiguracyjnych dla instancji Packetbeat.
- name: Przykładowy playbook do instalacji packetbeat
hosts: localhost
roles:
- { role: beats, beat: "packetbeat",
beat_conf: {
"interfaces": {"device":"any"},
"protocols": {
"dns": {
"ports": [53],
"include_authorities":true
},
"http": {
"ports": [80, 8080, 8000, 5000, 8002]
},
"memcache": {
"ports": [11211]
},
"mysql": {
"ports": [3306]
},
"pgsql": {
"ports": [5432]
},
"redis": {
"ports": [6379]
},
"thrift": {
"ports": [9090]
},
"mongodb": {
"ports": [27017]
}
}
},
output_conf : {
"elasticsearch": {
"hosts": ["localhost:9200"]
}
}
}
vars:
use_repository: "true"
Dodatkowa konfiguracja
Obsługiwane zmienne są następujące:
- beat (WYMAGANE): Produkt Beat. Wspierane wartości to: "filebeat", "metricbeat" i "packetbeat" (inne beats z Rodziny Beats powinny działać w większości przypadków, ale nie są aktualnie testowane).
- beat_conf (WYMAGANE): Konfiguracja Beat. Powinna być zdefiniowana jako mapa.
- beats_version (Domyślnie
7.17.0
): Wersja Beats. - version_lock (Domyślnie
false
): Blokuje zainstalowaną wersję, jeśli ustawione na true, co zapobiega jej aktualizacji przez inne procesy. To nie wpłynie na możliwość aktualizacji Beata w kolejnych uruchomieniach (odblokowuje się i ponownie blokuje w razie potrzeby). - use_repository (Domyślnie
true
): Użyj repozytorium Elastic dla yum lub apt, jeśli to prawda. Jeśli fałsz, musi być podane niestandardowecustom_package_url
. - beats_add_repository (Domyślnie
{use_repository}
): Zainstaluj repozytorium Elastic dla yum lub apt, jeśli to prawda. Jeśli fałsz, zostaną użyte obecne repozytoria. Przydatne, jeśli już masz pakiety beats w repozytorium. - start_service (Domyślnie
true
): Usługa zostanie uruchomiona, jeśli to prawda, fałsz w przeciwnym razie. - restart_on_change (Domyślnie
true
): Zmiany w konfiguracji lub zainstalowanych wersjach spowodują restart, jeśli to prawda. - daemon_args (Dotyczy wersji 1.x beats): Pozwala na przekazywanie parametrów uruchomieniowych do beats.
- logging_conf (Domyślnie
{"files":{"rotateeverybytes":10485760}}
): Konfiguracja logowania. Powinna być zdefiniowana jako mapa. Mapa jest serializowana do sekcji logowania konfiguracji beat. - shipper_conf (Dotyczy wersji 1.x beats): Konfiguracja shippera. Powinna być zdefiniowana jako mapa. Mapa jest serializowana do sekcji shippera konfiguracji beat.
- output_conf (Domyślnie
{"elasticsearch":{"hosts":["localhost:9200"]}}
): Konfiguracja wyjścia. Mapa jest serializowana do sekcji wyjścia konfiguracji beat. - beats_pid_dir (Domyślnie
/var/run
): Lokalizacja pliku pid beats. - beats_conf_dir (Domyślnie
/etc/{beat}
): Lokalizacja katalogu konfiguracyjnego dla pliku konfiguracyjnego beats. - default_ilm_policy (Domyślnie niezdefiniowane): lokalna ścieżka do domyślnej polityki, jeśli zdefiniowana jest jakakolwiek niestandardowa.
Skupienie na ILM
Domyślnie beat utworzy domyślną politykę zdefiniowaną jako część wdrażanego beata. Możesz nadpisać domyślne ustawienie ILM, definiując konfigurację ILM jako część beat_conf. Na przykład:
- role: ansible-beats
beat: metricbeat
beat_conf:
setup:
ilm:
policy_file: /etc/filebeat/policies/my-default-metricbeat.json
overwrite: true
metricbeat.modules:
...
default_ilm_policy: conf/my-default-metricbeat.json
become: yes
To skopiuje conf/my-default-filebeat.json do /etc/filebeat/policies/my-default-filebeat.json. Ta polityka zostanie użyta jako domyślna dla tego beata.
Licencja
Apache 2.0
Ograniczenia
Nie można zainstalować wielu instancji tego samego beata na tym samym serwerze docelowym.
Pytania dotyczące użytkowania
Chętnie odpowiemy na pytania dotyczące użycia tej roli. Jednak, aby utrzymać listę problemów w GitHubie skoncentrowaną na "problemach", prosimy społeczność o zadawanie pytania na https://discuss.elastic.co/c/beats. Jest to monitorowane przez opiekunów.
Wspólne wkłady są zawsze doceniane i mile widziane! Prosimy zapewnić, aby wszystkie wkłady zawierały testy, jeśli to stosowne.
ansible-galaxy install elastic.beats