Автоматическая установка newrelic-sysmond
May 26, 2016 12:41 · 384 words · 2 minute read
Ранее мы рассматривали процесс настройки базового мониторинга серверов с помощью New Relic, давайте разберемся как можно автоматизировать этот процесс с помощью системы управления конфигурациями Ansible
!
Считаем, что Ansible
установлен и настроен. Будем использовать роль для установки необходимых пакетов и настройки базового мониторинга New Relic (подробнее о ролях можно почитать здесь).
В нашем случае файловая структура выглядит следующим образом:
roles/
newrelic-sysmond/
tasks/
main.yml
templates/
nrsysmond.cfg.j2
vars/
main.yml
Содержимое файла tasks/main.yml
следующее:
---
- name: Add New Relic Repository
apt_repository:
repo: deb http://apt.newrelic.com/debian/ newrelic non-free
state: present
- name: Add New Relic Signing Key
apt_key:
url: https://download.newrelic.com/548C16BF.gpg
state: present
- name: Update Repositories
apt:
name: newrelic-sysmond
update_cache: yes
state: present
- name: Add New Relic Config
template:
src: nrsysmond.cfg.j2
dest: /etc/newrelic/nrsysmond.cfg
owner: newrelic
group: newrelic
- name: Restart New Relic
service:
name: newrelic-sysmond
state: restarted
Содержимое шаблона templates/nrsysmond.cfg.j2
выглядит так:
#
# Option : license_key
# Value : 40-character hexadecimal string provided by New Relic. This is
# required in order for the server monitor to start.
# Default: none
#
license_key={{ new_relic_key }}
# ...
#
# Setting: hostname
# Type : string
# Purpose: Sets the name of the host (max 64 characters) that you wish to use
# for reporting. This is usually determined automatically on startup
# but you may want to change it if, for example, you have machine
# generated hostnames that are not visually useful (for example, the
# names generated by Docker containers).
# Default: The system configured host name
#
hostname={{ domain }}
# ...
Значения переменных задаются в конфигурационном файле vars/main.yml и должны выглядеть примерно так:
new_relic_key: 1234567890abcdefghijklmnopqrstuvwxyz
domain: example.com
Примечание. В вашем случае значения переменных будут другие — используйте их.
Тестовый набор инструкций (playbook) для установки роли на сервер в моем случае выглядит так:
---
- hosts: test1
sudo: true
roles:
- newrelic-sysmond
Результат выполнения:
ansible-playbook playbooks/test.yml
PLAY [test1] ******************************************************************
GATHERING FACTS ***************************************************************
ok: [test1]
TASK: [newrelic-sysmond | Add New Relic Repository] ***************************
changed: [test1]
TASK: [newrelic-sysmond | Add New Relic Signing Key] **************************
changed: [test1]
TASK: [newrelic-sysmond | Update Repositories] ********************************
changed: [test1]
TASK: [newrelic-sysmond | Add New Relic Config] *******************************
changed: [test1]
TASK: [newrelic-sysmond | Restart New Relic] **********************************
changed: [test1]
PLAY RECAP ********************************************************************
test1 : ok=6 changed=5 unreachable=0 failed=0
Спустя несколько мгновений данные мониторинга уже будут доступны в вашем аккаунте New Relic.