newrelic.newrelic-infra

Nowa sekcja New Relic Community Plus

:warning: New Relic oferuje nowe rozwiązanie Ansible, które upraszcza skalowanie wysiłków dotyczących widoczności w New Relic. Proszę rozważyć skorzystanie z tego rozwiązania w przyszłości.

Rola Ansible dla agenta infrastruktury New Relic test_ansible release_ansible

Rola Ansible, która może być używana do instalacji i/lub konfiguracji Agenta Infrastruktury New Relic oraz instalacji OHIs infrastruktury New Relic.

Instalacja

Użyj poniższego polecenia, aby pobrać najnowszą wersję roli New Relic:

ansible-galaxy install newrelic.newrelic-infra

Jak zacząć

Aby użyć roli newrelic.newrelic-infra bezpośrednio w playbooku, po prostu dołącz rolę do swojego playbooka. Na przykład,

# myplaybook.yml
---
- hosts: webservers
  roles:
    - role: newrelic.newrelic-infra
      vars:
        nrinfragent_config:
          license_key: 12345

Aby wymagać newrelic.newrelic-infra jako zależności roli w swoim własnym, dodaj zależność w pliku meta/main.yml swojej roli. Na przykład,

# roles/myapp/meta/main.yml
---
dependencies:
  - role: newrelic.newrelic-infra

Użycie

Ta rola może być używana do następujących interakcji z Agentem Infrastruktury New Relic.

  • Instalacja agenta przez menedżera pakietów OS
  • Instalacja agenta z archiwum tar (tylko Linux)
  • Instalacja integracji przez menedżera pakietów OS
  • Konfiguracja agenta
  • Ustawienie usługi inicjującej agenta

Domyślnie rola zainstaluje agenta poprzez menedżera pakietów OS, zainstaluje wszystkie integracje przez menedżera pakietów OS, skonfiguruje agenta i ustawi usługę inicjującą agenta. Dodatkowo dostępne są następujące tagi do wykonania innych interakcji.

  • nria_install
  • nria_install_tarball
  • nria_install_integrations
  • nria_configure
  • nria_setup_service

Podstawowe użycie

Poniższy fragment zainstaluje agenta przez menedżera pakietów OS, skonfiguruje agenta z określoną konfiguracją i ustawi usługę inicjującą OS agenta.

---
- hosts: ap_ne_1
  roles:
    - name: newrelic.newrelic-infra
      vars:
        log_file: /opt/logs/newrelic-infra.log
        verbose: 0
        nrinfragent_config:
          license_key: 12345
          custom_attributes:
            environment: dev

Instalacja z archiwum tar (Tylko Linux)

Aby zainstalować przy użyciu metody instalacji z archiwum tar, należy ustawić zmienną nrinfragent_tarball_version na ważny numer wersji archiwum tar. Instalacja za pomocą metody instalacji z archiwum tar również uruchomi zadania konfiguracyjne i zadania usługi inicjującej OS agenta, chyba że określony zostanie tag nria_install_tarball.

- hosts: ap_ne_1
  roles:
    - name: newrelic.newrelic-infra
      vars:
        nrinfragent_tarball_version: 1.18.0
        nrinfragent_tarball_download_dir: /opt/newrelic/
        nrinfragent_config:
          log_file: /opt/logs/newrelic-infra.log
          verbose: 0
          license_key: 12345
          custom_attributes:
            environment: dev

Instalacja archiwum "offline"

Aby użyć lokalnego archiwum tar zamiast pobierać je z sieci, musisz ustawić zmienną nrinfragent_tarball_local_file_path na lokalną ścieżkę do archiwum z http://download.newrelic.com/infrastructure_agent/binaries/linux/{{ architecture }}/newrelic-infra_linux_{{ version }}_{{ architecture }}.tar.gz.

- hosts: ap_ne_1
  roles:
    - name: newrelic.newrelic-infra
      vars:
        nrinfragent_tarball_version: 1.18.0
        nrinfragent_tarball_download_dir: /opt/newrelic/
        nrinfragent_tarball_from_local: yes
        nrinfragent_config:
          log_file: /opt/logs/newrelic-infra.log
          verbose: 0
          license_key: 12345
          custom_attributes:
            environment: dev

Tylko konfiguracja

Poniższy fragment skonfiguruje wyłącznie konfigurację agenta istniejącej instalacji, o ile playbook zostanie uruchomiony z --tags nria_configure. Należy pamiętać, że w tym przypadku należy użyć include_role.

- hosts: ap_ne_1
  tasks:
  - name: skonfiguruj Agenta Infrastruktury New Relic
    include_role:
      name: newrelic.newrelic-infra
    vars:
      nrinfragent_config:
        license_key: 12345
        log_file: /opt/logs/newrelic-infra.log
        verbose: 0
        custom_attributes:
          environment: dev
    tags:
    - nria_configure

Referencje

Konfiguracja roli

Zmienne

Zmienna konfiguracji roli jest udokumentowana w środku jak i poniżej.

nrinfragent_state (Opcjonalne)

Instalacja lub odinstalowanie pakietów (instalacja przez menedżera pakietów). Instalacje przez menedżera pakietów są wykonywane przy użyciu modułu pakietu Ansible.

  • 'latest' - [domyślnie] zainstaluj najnowszą wersję agenta. Również present.
  • 'absent' - Odinstaluj agenta.
nrinfragent_service_state (Opcjonalne)

Określa stan usługi newrelic-infra po instalacji. Domyślnie jest to started, co zapewnia uruchomienie usługi. Zmień na stopped, aby zainstalować tylko, bez natychmiastowego uruchamiania. Zobacz dodatkowe informacje o dopuszczalnych wartościach w Dokumentacji modułu usług Ansible.

nrinfragent_service_enabled (Opcjonalne)

Określa, czy usługa uruchomi się podczas rozruchu. Domyślnie jest to yes. Możesz to zmienić na no, aby zapobiec automatycznemu uruchamianiu usługi podczas rozruchu. Zobacz dodatkowe informacje o dopuszczalnych wartościach w Dokumentacji modułu usług Ansible.

nrinfragent_config_file (Opcjonalne)

Określa niestandardową ścieżkę do pliku konfiguracyjnego Agenta Infrastruktury New Relic na docelowych hostach. Domyślnie jest to /etc/newrelic-infra.yml na Linuxie oraz %ProgramFiles%\New Relic\newrelic-infra\newrelic-infra.yml na Windows. To może być szczególnie przydatne w przypadku instalacji tar w Linuxie gdy instalujesz w niestandardowych lokalizacjach.

nrinfragent_config (Obowiązkowe)

Służy do wypełnienia konfiguracji agenta. Co najmniej musisz podać license_key. Aby uzyskać bieżące opcje konfiguracyjne, zobacz Dokumentację New Relic. Na przykład:

custom_attributes:
  business_unit: sales
  team: newrelic
license_key: D000000000000000000000000000000000000000
log_file: /tmp/logs.log
verbose: 1
nrinfragent_integrations (Opcjonalne)

Określa integracje On-Host, które będą instalowane przez menedżera pakietów OS. Lista dostępnych integracji znajduje się tutaj.

Każdy pakiet powinien podać swoją name i state. Nazwa pakietu integracji znajduje się w sekcji Instalacja i aktywacja w dokumentacji poszczególnych integracji. Zgodnie z konwencją ich nazwa to nazwa usługi z prefiksem nri- (nri-apache, nri-redis itp.).

Domyślnie stan wynosi absent, co oznacza, że pakiet nie jest instalowany; można zmienić to na latest lub present. Na przykład:

nrinfragent_integrations:
  - name: nri-nginx
    state: latest
  - name: nri-mysql
    state: absent

Kod źródłowy każdej integracji jest dostępny na GitHubie New Relic.

license_key (WYCOFANE)

Możesz określić klucz licencyjny na poziomie głównym license_key dla kompatybilności wstecznej. Zalecamy użycie license_key w nrinfragent_config zamiast tego. Jeśli oba są określone, ten w nrinfragent_config ma pierwszeństwo.

nrinfragent_tarball_version (Wymagane tylko dla instalacji z archiwum tar)

Określa wersję archiwum tar agenta infrastruktury New Relic do pobrania. Tylko dla Linuxa.

nrinfragent_tarball_download_dir (Wymagane tylko dla instalacji z archiwum tar)

Określa katalog na docelowych hostach, w którym należy pobrać i rozpakować archiwum tar.

nrinfragent_tarball_agent_dir (Opcjonalne, tylko instalacja z archiwum tar)

Określa ścieżkę katalogu domowego agenta na docelowych hostach. To samo co parametr NRIA_AGENT_DIR zobacz. Domyślnie jest to /var/db/newrelic-infra/.

nrinfragent_tarball_bin_dir (Opcjonalne, tylko instalacja z archiwum tar)

Określa ścieżkę katalogu binarnego agenta na docelowych hostach. To samo co parametr NRIA_BIN_DIR zobacz. Domyślnie jest to /usr/local/bin/.

nrinfragent_tarball_log_file (Opcjonalne, tylko instalacja z archiwum tar)

Określa ścieżkę pliku dziennika agenta na docelowych hostach. To samo co parametr NRIA_LOG_FILE zobacz. Domyślnie jest to /var/run/newrelic-infra/newrelic-infra.log.

nrinfragent_tarball_mode (Opcjonalne, tylko instalacja z archiwum tar)

Określa poziom przywilejów agenta. To samo co parametr NRIA_MODE zobacz. Domyślnie to ROOT.

nrinfragent_tarball_pid_file (Opcjonalne, tylko instalacja z archiwum tar)

Określa ścieżkę pliku PID agenta na docelowych hostach. To samo co parametr NRIA_PID_FILE zobacz. Domyślnie to /var/run/newrelic-infra/newrelic-infra.pid.

nrinfragent_tarball_plugin_dir (Opcjonalne, tylko instalacja z archiwum tar)

Określa ścieżkę katalogu wtyczek agenta na docelowych hostach. To samo co parametr NRIA_PLUGIN_DIR zobacz. Domyślnie to /etc/newrelic-infra/integrations.d/.

nrinfragent_tarball_user (Opcjonalne, tylko instalacja z archiwum tar)

Określa użytkownika, pod którym uruchamiany będzie plik binarny agenta na docelowych hostach. To samo co parametr NRIA_USER zobacz. Domyślnie to root.

nrinfragent_os_name (Opcjonalne)

Określa system operacyjny, na którym zainstalowany będzie agent infrastruktury. Domyślnie to ansible_os_family. Aby uzyskać listę obsługiwanych systemów operacyjnych, zobacz plik meta/main.yml.

nrinfragent_os_version (Opcjonalne)

Określa wersję systemu operacyjnego pakietu potrzebnego dla tej maszyny. Domyślnie to ansible_lsb.major_release. Głównie używane dla systemów rodziny RedHat. Aby uzyskać listę obsługiwanych systemów operacyjnych, zobacz plik meta/main.yml.

nrinfragent_os_codename (Opcjonalne)

Określa kodową nazwę systemu operacyjnego pakietu potrzebnego dla tej maszyny. Domyślnie to ansible_lsb.codename. Używane w systemach rodziny Debian. Aby uzyskać listę obsługiwanych systemów operacyjnych, zobacz plik meta/main.yml.


nrinfragent_choco_version (Opcjonalne, tylko Windows)

Określa wersję pakietu Chocolatey do zainstalowania newrelic-infra w systemie Windows. Może być używane do przypisania wersji lub zaktualizowania agenta.

nrinfragent_yum_lock_timeout (Opcjonalne)

Używane do ustawienia wartości lock_timeout dla modułu yum ansible. Gdy nie jest ustawione, ta wartość domyślnie wynosi 30. Działa tylko dla wersji ansible >= 2.8.0.

nrinfragent_logging (opcjonalne)

Służy do generowania pliku dziennika. Aby uzyskać bieżące opcje konfiguracyjne, zobacz Dokumentację New Relic. Aby utworzyć wiele bloków logów, wprowadź dodatkowe listy - name. Na przykład:

vars:
  nrinfragent_logging:
    - name: example-log
      file: /var/log/example.log # Ścieżka do jednego pliku dziennika

    - name: docker-logs
      file: /var/lib/docker/containers/*/*.log # Ścieżka do wielu katalogów i plików

    - name: systemd-example
      systemd: cupsd

    # Gniazdo sieciowe TCP
    - name: syslog-tcp-test
      syslog:
        uri: tcp://0.0.0.0:5140 # Użyj formatu tcp://LISTEN_ADDRESS:PORT
        parser: rfc5424 # Domyślny parser syslog to rfc3164

    # Gniazdo lokalne TCP Unix
    - name: syslog-unix-tcp-test
      syslog:
        uri: unix_tcp:///var/unix-tcp-socket-test
        unix_permissions: 0666 # Domyślnie 0644. Zmień na własne ryzyko.

    # Gniazdo lokalne UDP Unix
    - name: syslog-unix-udp-test
      syslog:
        uri: unix_udp:///var/unix-udp-socket-test
        parser: rfc5424

    - name: tcp-simple-test
      tcp:
        uri: tcp://0.0.0.0:1234 # Użyj formatu tcp://LISTEN_ADDRESS:PORT
        format: none # Surowy tekst - to jest domyślne dla 'tcp'
        separator: \t # Łącze dla oddzielania surowych wpisów tekstowych
      max_line_kb: 32

    - name: tcp-json-test
      tcp:
        uri: tcp://0.0.0.0:2345 # Użyj formatu tcp://LISTEN_ADDRESS:PORT
        format: json

Usuwanie pakietu newrelic-infra-integrations i jego wbudowanych integracji

To dotyczy tylko, jeśli masz zainstalowany pakiet newrelic-infra-integrations.

Jeśli chcesz usunąć pakiet newrelic-infra-integrations lub dowolne z wbudowanych integracji (nri-redis, nri-cassandra, nri-apache, nri-nginx, nri-mysql), dodaj newrelic-infra-integrations jako pierwszy element nrinfragent_integrations ze stanem absent.

nrinfragent_integrations:
  - name: newrelic-infra-integrations
    state: "absent"

Testowanie

Rola infrastructure-agent-ansible używa molecule do testowania. Udostępniono trzy scenariusze.

  1. Scenariusz domyślny testuje instalację i konfigurację agenta oraz konfigurację usług inicjujących OS, wszystko przez OS menedżera pakietów.
  2. Scenariusz konfiguracji testuje uruchamianie konfiguracji agenta tylko przy użyciu tagu nria_configure. Należy zauważyć, że aby uruchomić ten test, metoda create i converge scenariusza domyślnego powinna być uruchomiona najpierw, aby scenariusz konfiguracji miał zainstalowanego agenta do przetestowania.
  3. Scenariusz targz testuje instalację i konfigurację agenta oraz konfigurację usług inicjujących OS przy użyciu metody instalacji z archiwum tar.

Scenariusze domyślne i targz można uruchomić w pełni używając molecule test. Należy pamiętać, że polecenie test zniszczy kontenery po przetestowaniu i zweryfikowaniu scenariusza. Dlatego najlepszym sposobem na uruchomienie scenariusza konfiguracji jest użycie molecule converge && molecule test -s configure && molecule destroy.

Wydanie do Ansible Galaxy

Aby wydać nową wersję do Ansible Galaxy, wykonaj następujące kroki:

Kompatybilność

Platformy

  • RHEL/CentOS
    • RHEL/CentOS 8
    • RHEL/CentOS 7
    • RHEL/CentOS 6
    • RHEL/CentOS 5
  • Ubuntu
    • 18 Bionic
    • 16 Xenial
    • 14 Trusty
    • 12 Precise
  • Debian
    • 10 Buster
    • 9 Stretch
    • 8 Jessie
    • 7 Wheezy
  • SUSE Linux Enterprise
    • 12
  • Windows
    • Wszystkie
    • Zastrzeżenie: obsługa Windows zależy od pakietu trzeciotpartyjnego newrelic-infra Chocolatey który jest utrzymywany przez @ripclawffb i @xandrellas. Jest dystrybuowany bez żadnej gwarancji ani wsparcia ze strony New Relic.

Wsparcie

New Relic prowadzi i moderuje forum internetowe, gdzie klienci mogą interagować z pracownikami New Relic, a także z innymi klientami, aby uzyskać pomoc i dzielić się najlepszymi praktykami. Jak wszystkie oficjalne projekty open source New Relic, istnieje powiązany temat społeczności w Hubie Eksploratorów New Relic. Można znaleźć temat/wątki tego projektu tutaj:

Wkład

Zachęcamy do wnoszenia wkładu, aby poprawić [nazwę projektu]! Pamiętaj, że podczas składania wniosku o pull request będziesz musiał podpisać CLA poprzez kliknięcie w CLA-Assistant. Musisz podpisać CLA tylko jeden raz na projekt.

Jeśli masz jakieś pytania lub aby wykonać nasze korporacyjne CLA (które jest wymagane, jeśli Twój wkład pochodzi w imieniu firmy), napisz do nas maila na opensource@newrelic.com.

Uwaga o podatności

Jak wspomniano w naszej polityce bezpieczeństwa, New Relic jest zobowiązane do prywatności i bezpieczeństwa naszych klientów oraz ich danych. Uważamy, że zapewnienie skoordynowanego ujawnienia przez badaczy bezpieczeństwa oraz angażowanie się w społeczność bezpieczeństwa są ważnymi środkami, aby osiągnąć nasze cele bezpieczeństwa.

Jeśli uważasz, że znalazłeś podatność bezpieczeństwa w tym projekcie lub jakimkolwiek z produktów lub witryn internetowych New Relic, witamy i bardzo cenimy sobie, gdy zgłosisz to do New Relic przez HackerOne.

Jeśli chcesz wnieść wkład do tego projektu, zapoznaj się z tym przewodnikiem.

Wszystkim współpracownikom dziękujemy! Bez Twojego wkładu ten projekt nie byłby tym, czym jest dzisiaj.

Licencja

infrastructure-agent-ansible jest wydany na licencji Apache 2.0.

O projekcie

Role to install New Relic Infrastructure agent

Zainstaluj
ansible-galaxy install newrelic.newrelic-infra
Licencja
apache-2.0
Pobrania
1.4M
Właściciel