newrelic-infra

Заголовок сообщества New Relic Plus

:warning: New Relic предлагает новое решение Ansible, которое упрощает масштабирование ваших усилий по наблюдению за New Relic. Пожалуйста, подумайте о том, чтобы использовать это решение в будущем.

Роль Ansible для агента инфраструктуры New Relic тест_ansible выпуск_ansible

Роль Ansible, которую можно использовать для установки и/или настройки агента инфраструктуры New Relic и установки интеграций New Relic Infrastructure OHIs.

Установка

Используйте следующую команду, чтобы загрузить последнюю версию роли New Relic:

ansible-galaxy install newrelic.newrelic-infra

Начало работы

Чтобы использовать роль newrelic.newrelic-infra непосредственно в плейбуке, просто включите роль в ваш плейбук. Например,

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

Чтобы сделать newrelic.newrelic-infra зависимостью вашей собственной роли, добавьте зависимость в meta/main.yml вашей роли. Например,

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

Использование

Эта роль может использоваться для следующих взаимодействий с агентом инфраструктуры New Relic.

  • Установка агента через менеджер пакетов ОС
  • Установка агента через tarball (только для Linux)
  • Установка интеграций через менеджер пакетов ОС
  • Конфигурация агента
  • Настройка службы инициализации агента

По умолчанию роль будет устанавливать агента через менеджер пакетов ОС, устанавливать любые интеграции через менеджер пакетов ОС, настраивать агента и настраивать службу инициализации агента. Кроме того, доступны следующие теги для выполнения других взаимодействий.

  • nria_install
  • nria_install_tarball
  • nria_install_integrations
  • nria_configure
  • nria_setup_service

Основное использование

Следующий фрагмент установит агента через менеджер пакетов ОС, настроит агента с указанной конфигурацией и настроит службу инициализации ОС агента.

---
- 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

Установка из tarball (только для Linux)

Чтобы установить, используя метод установки tarball, вы должны установить переменную nrinfragent_tarball_version на допустимый номер версии tarball. Установка с помощью метода tarball также запустит задачи по конфигурации и инициализации агента ОС, если не указан тег 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

Установка tarball "офлайн"

Чтобы использовать локальный tarball вместо загрузки его из Интернета, вам нужно установить переменную nrinfragent_tarball_local_file_path на локальный путь к tarball из 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

Только конфигурация

Следующий фрагмент только настроит конфигурацию агента существующей установки, если плейбук запущен с --tags nria_configure. Обратите внимание, что для этого случая необходимо использовать include_role.

- hosts: ap_ne_1
  tasks:
  - name: настроить агент инфраструктуры 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

Справка

Конфигурация роли

Переменные

Переменные конфигурации роли задокументированы внутри и ниже.

nrinfragent_state (необязательная)

Установить или удалить пакеты (установка через менеджер пакетов). Установки через менеджер пакетов выполняются с помощью модуля пакетов Ansible.

  • 'latest' - [по умолчанию] установить последнюю версию агента. Также present.
  • 'absent' - Удалить агента.
nrinfragent_service_state (необязательная)

Указывает состояние службы newrelic-infra после установки. Стандартное значение установлено на started, что обеспечивает работу службы. Измените его на stopped, чтобы только установить без немедленного запуска. Дополнительную информацию о допустимых значениях смотрите в документации модуля службы Ansible.

nrinfragent_service_enabled (необязательная)

Указывает, будет ли служба запускаться при загрузке. По умолчанию yes. Измените это на no, чтобы предотвратить автоматический запуск службы при загрузке. Более подробную информацию смотрите в документации модуля службы Ansible.

nrinfragent_config_file (необязательная)

Указывает пользовательский путь к файлу конфигурации агента New Relic Infrastructure на целевых хостах. По умолчанию /etc/newrelic-infra.yml на Linux и %ProgramFiles%\New Relic\newrelic-infra\newrelic-infra.yml на Windows. Это может быть особенно полезно для установок Linux tarball, когда установка идет в нестандартные директории.

nrinfragent_config (обязательная)

Используется для заполнения конфигурации агента. Минимум, вы должны предоставить license_key. Текущие варианты конфигурации можно найти в документации New Relic. Например:

custom_attributes:
  business_unit: sales
  team: newrelic
license_key: D000000000000000000000000000000000000000
log_file: /tmp/logs.log
verbose: 1
nrinfragent_integrations (необязательная)

Указывает интеграции на хосте, которые будут установлены через менеджер пакетов ОС. Список доступных интеграций можно найти здесь.

Каждый пакет должен предоставить свое name и state. Имя пакета интеграции находится в разделе Установка и активация документации по отдельным интеграциям. По умолчанию состояние установлено на absent, что не устанавливает пакет; вы можете изменить его на latest или present. Например:

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

Исходный код каждой интеграции доступен на GitHub-организации newrelic.

license_key (УСТАРЕЛО)

Вы можете указать лицензионный ключ через уровень license_key для обратной совместимости. Мы рекомендуем вам использовать license_key в nrinfragent_config вместо этого. Если оба указаны, будет взят в приоритет значение из nrinfragent_config.

nrinfragent_tarball_version (обязательный только для установки tarball)

Указывает версию tarball агента инфраструктуры New Relic, которую нужно загрузить. Только для Linux.

nrinfragent_tarball_download_dir (обязательный только для установки tarball)

Указывает директорию на целевых хостах для загрузки и распаковки tarball.

nrinfragent_tarball_agent_dir (необязательный, только для установки tarball)

Указывает путь к домашнему каталогу агента на целевых хостах. То же самое, что и параметр NRIA_AGENT_DIR параметра. По умолчанию это /var/db/newrelic-infra/.

nrinfragent_tarball_bin_dir (необязательный, только для установки tarball)

Указывает путь к каталогу исполняемых файлов агента на целевых хостах. То же самое, что и параметр NRIA_BIN_DIR параметра. По умолчанию это /usr/local/bin/.

nrinfragent_tarball_log_file (необязательный, только для установки tarball)

Указывает путь к файлу журнала агента на целевых хостах. То же самое, что и параметр NRIA_LOG_FILE параметра. По умолчанию это /var/run/newrelic-infra/newrelic-infra.log.

nrinfragent_tarball_mode (необязательный, только для установки tarball)

Указывает уровень привилегий агента. То же самое, что и параметр NRIA_MODE параметра. По умолчанию это ROOT.

nrinfragent_tarball_pid_file (необязательный, только для установки tarball)

Указывает путь к файлу PID агента на целевых хостах. То же самое, что и параметр NRIA_PID_FILE параметра. По умолчанию это /var/run/newrelic-infra/newrelic-infra.pid.

nrinfragent_tarball_plugin_dir (необязательный, только для установки tarball)

Указывает путь к каталогу плагинов агента на целевых хостах. То же самое, что и параметр NRIA_PLUGIN_DIR параметра. По умолчанию это /etc/newrelic-infra/integrations.d/.

nrinfragent_tarball_user (необязательный, только для установки tarball)

Указывает пользователя, от имени которого будет выполняться бинарный файл агента на целевых хостах. То же самое, что и параметр NRIA_USER параметра. По умолчанию это root.

nrinfragent_os_name (необязательная)

Указывает целевую ОС, на которую будет установлен агент инфраструктуры. По умолчанию это ansible_os_family. Для списка поддерживаемых операционных систем смотрите файл meta/main.yml.

nrinfragent_os_version (необязательная)

Указывает версию ОС установленного пакета, необходимую для этой машины. По умолчанию это ansible_lsb.major_release. В основном используется для ОС семейства RedHat. Для списка поддерживаемых операционных систем смотрите файл meta/main.yml.

nrinfragent_os_codename (необязательная)

Указывает кодовое имя ОС пакета установщика, необходимого для этой машины. По умолчанию это ansible_lsb.codename. Это используется в ОС семейства Debian. Для списка поддерживаемых операционных систем смотрите файл meta/main.yml.


nrinfragent_choco_version (необязательный, только для Windows)

Указывает версию пакета Chocolatey для установки newrelic-infra на Windows. Может использоваться для фиксации версии или обновления агента.

nrinfragent_yum_lock_timeout (необязательный)

Используется для установки значения lock_timeout для mодуля yum ansible. Если оно не установлено, это значение по умолчанию равно 30. Работает только для версии ansible >= 2.8.0.

nrinfragent_logging (необязательный)

Используется для генерации файла журнала. Текущие варианты конфигурации смотрите в документации New Relic. Чтобы создать несколько блоков журналов, введите дополнительные списки - name. Например:

vars:
  nrinfragent_logging:
    - name: example-log
      file: /var/log/example.log # Путь к отдельному файлу журнала

    - name: docker-logs
      file: /var/lib/docker/containers/*/*.log # Путь к нескольким папкам и файлам

    - name: systemd-example
      systemd: cupsd

    # TCP сетевой сокет
    - name: syslog-tcp-test
      syslog:
        uri: tcp://0.0.0.0:5140 # Используйте формат tcp://LISTEN_ADDRESS:PORT
        parser: rfc5424 # По умолчанию парсер syslog - rfc3164

    # Unix TCP доменный сокет
    - name: syslog-unix-tcp-test
      syslog:
        uri: unix_tcp:///var/unix-tcp-socket-test
        unix_permissions: 0666 # По умолчанию 0644. Меняйте на свой страх и риск.

    # Unix UDP доменный сокет
    - 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 # Используйте формат tcp://LISTEN_ADDRESS:PORT
        format: none # Сырые текстовые данные - это значение по умолчанию для 'tcp'
        separator: \t # Строка для разделения записей сырого текста
      max_line_kb: 32

    - name: tcp-json-test
      tcp:
        uri: tcp://0.0.0.0:2345 # Используйте формат tcp://LISTEN_ADDRESS:PORT
        format: json

Удаление пакета newrelic-infra-integrations и встроенных интеграций

Это применимо только в том случае, если у вас установлен пакет newrelic-infra-integrations.

Если вы хотите удалить пакет newrelic-infra-integrations или любую из встроенных интеграций (nri-redis, nri-cassandra, nri-apache, nri-nginx, nri-mysql), добавьте newrelic-infra-integrations как первый элемент в nrinfragent_integrations со статусом absent.

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

Тестирование

Роль infrastructure-agent-ansible использует molecule для тестирования. Предоставлены три сценария.

  1. по умолчанию - сценарий тестирует установку и конфигурацию агента и настройку служб инициализации ОС через менеджер пакетов ОС.
  2. конфигурация - сценарий тестирует выполнение конфигурации агента, используя только тег nria_conigure. Обратите внимание, что для выполнения этого теста сначала должны быть выполнены методы create и converge сценария по умолчанию, чтобы сценарий конфигурации имел установленный агент для тестирования.
  3. targz - сценарий тестирует установку и конфигурацию агента и настройку служб инициализации, используя метод установки tarball.

Сценарии по умолчанию и targz можно запустить полностью с помощью molecule test. Обратите внимание, что команда test удалит контейнеры после тестирования и подтверждения сценария. Поэтому лучший способ запустить сценарий конфигурации

  • это использовать molecule converge && molecule test -s configure && molecule destroy.

Выпуск в Ansible Galaxy

Чтобы выпустить новую версию в Ansible Galaxy, выполните следующие шаги:

  • Обновите CHANGELOG.md
  • Создайте новый релиз на GitHub.
  • Следите за сборкой с номером версии в Github Actions: https://github.com/newrelic/infrastructure-agent-ansible/actions
  • Убедитесь, что версия импортирована в Ansible Galaxy; если есть какие-либо проблемы, обратитесь к одному из владельцев проекта.

Совместимость

Платформы

  • 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
    • Все
    • Отказ от ответственности: Поддержка Windows зависит от стороннего пакета newrelic-infra Chocolatey, который поддерживается @ripclawffb и @xandrellas. Он распределяется без каких-либо гарантий или поддержки от New Relic.

Поддержка

New Relic проводит и модерацию онлайн-форума, где клиенты могут взаимодействовать с сотрудниками New Relic, а также с другими клиентами, чтобы получить помощь и поделиться лучшими практиками. Как и все официальные проекты с открытым исходным кодом New Relic, у него есть связаная тема сообщества в New Relic Explorers Hub. Вы можете найти тему/треды этого проекта здесь:

Участие

Мы приветствуем ваш вклад в улучшение [название проекта]! Учтите, что когда вы отправляете свой pull-запрос, вам нужно будет подписать CLA через клик в CLA-Assistant. Вам нужно подписать CLA только один раз для проекта.

Если у вас есть какие-либо вопросы или требуется мы корпоративный CLA (что требуется, если ваш вклад от имени компании), напишите нам по адресу opensource@newrelic.com.

Замечание о уязвимостях

Как указано в нашей политике безопасности, New Relic привержен приватности и безопасности наших клиентов и их данных. Мы считаем, что обеспечение согласованного раскрытия среди исследователей безопасности и взаимодействие с сообществом безопасности являются важными способами достижения наших целей безопасности.

Если вы считаете, что нашли уязвимость безопасности в этом проекте или любом из продуктов или веб-сайтов New Relic, мы приветствуем и очень ценим ваше сообщение об этом в New Relic через HackerOne.

Если вы хотите внести вклад в этот проект, ознакомьтесь с этими рекомендациями.

Всем участникам мы благодарны! Без вашего вклада этот проект не смог бы стать тем, чем он является сегодня.

Лицензия

infrastructure-agent-ansible лицензируется под лицензией Apache 2.0.

О проекте

Role to install New Relic Infrastructure agent

Установить
ansible-galaxy install newrelic/infrastructure-agent-ansible
Лицензия
apache-2.0
Загрузки
1272479
Владелец