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

Роль 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
для тестирования. Предоставлены три сценария.
- по умолчанию - сценарий тестирует установку и конфигурацию агента и настройку служб инициализации ОС через менеджер пакетов ОС.
- конфигурация - сценарий тестирует выполнение конфигурации
агента, используя только тег
nria_conigure. Обратите внимание, что для выполнения этого теста сначала должны быть выполнены методыcreateиconvergeсценария по умолчанию, чтобы сценарий конфигурации имел установленный агент для тестирования. - 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. Вы можете найти тему/треды этого проекта здесь:
- Документация New Relic: Полное руководство по использованию нашей платформы
- Сообщество New Relic: Лучшее место для обсуждения вопросов по устранению неполадок
- Разработчик New Relic: Ресурсы для создания пользовательских приложений наблюдаемости
- Университет New Relic: Ряд онлайн-обучений для пользователей New Relic на всех уровнях
- Техническая поддержка New Relic 24/7/365 поддержка по заявкам. Читайте подробнее о наших предложениях технической поддержки.
Участие
Мы приветствуем ваш вклад в улучшение [название проекта]! Учтите, что когда вы отправляете свой pull-запрос, вам нужно будет подписать CLA через клик в CLA-Assistant. Вам нужно подписать CLA только один раз для проекта.
Если у вас есть какие-либо вопросы или требуется мы корпоративный CLA (что требуется, если ваш вклад от имени компании), напишите нам по адресу opensource@newrelic.com.
Замечание о уязвимостях
Как указано в нашей политике безопасности, New Relic привержен приватности и безопасности наших клиентов и их данных. Мы считаем, что обеспечение согласованного раскрытия среди исследователей безопасности и взаимодействие с сообществом безопасности являются важными способами достижения наших целей безопасности.
Если вы считаете, что нашли уязвимость безопасности в этом проекте или любом из продуктов или веб-сайтов New Relic, мы приветствуем и очень ценим ваше сообщение об этом в New Relic через HackerOne.
Если вы хотите внести вклад в этот проект, ознакомьтесь с этими рекомендациями.
Всем участникам мы благодарны! Без вашего вклада этот проект не смог бы стать тем, чем он является сегодня.
Лицензия
infrastructure-agent-ansible лицензируется под лицензией Apache 2.0.
ansible-galaxy install newrelic.newrelic-infra
