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/infrastructure-agent-ansible