elastic.beats

ARCHIWUM

Ten projekt nie jest już rozwijany. Aby uzyskać alternatywne doświadczenia w uruchamianiu, możesz wypróbować jedną z tych opcji:

ansible-beats

Status budowy Ansible Galaxy

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 niestandardowe custom_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.

Zainstaluj
ansible-galaxy install elastic.beats
Licencja
other
Pobrania
782.4k
Właściciel