Агент уведомлений "Спектра"
Перед установкой Агента уведомлений "Спектра" кластеры должны быть видны в графическом интерфейсе и иметь статус ДОСТУПЕН, например:
Для установки Агента уведомлений "Спектра" потребуются IP-адрес хоста "Спектра" и ID импортированного кластера.
IP-адрес отображается в адресной строке браузера, в котором открыт веб-интерфейс "Спектра". ID кластера также отображаются в веб-интерфейсе в адресной строке браузера при переходе на страницу информации о кластере:
В приведенном примере IP-адрес "Спектра" — 192.168.190.138, ID кластера — это значение 24ed3935-e6ce-4e72-8163-d2078f40d70c.
Полученные ID кластера и IP-адрес необходимо вписать в соответствующие строки секции recipients того же файла cluster.yml, который использовался для установки Агента "Спектра":
---
all:
vars:
ansible_user: root
ansible_ssh_extra_args: "-o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null"
rpm_mode: true
recipients:
- name: spectrum
cluster_id: 24ed3935-e6ce-4e72-8163-d2078f40d70c
spectrum_host: 192.168.190.138
# ...
Для кластера, приведенного в примере выше, итоговое содержимое файла inventory_samples/cluster.yml будет иметь вид:
all:
vars:
ansible_user: root
ansible_ssh_extra_args: "-o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null"
rpm_mode: true
# Список переменных, используемых для настройки алерт-агента recipients:
# Название конфигурации уведомлений и JSON файла, который его описывает
- name: spectrum
# UUID кластера, для которого настраиваются уведомления. Можно найти в адресной строке, перейдя на страницу обзора кластер
cluster_id: 24ed3935-e6ce-4e72-8163-d2078f40d70c
# Хост Спектра, для которого настраиваются уведомления. Указать реальный IP адрес Спектра, доступ к котором есть с узла кластера
spectrum_host: 192.168.190.138
# Хосты узлов, на которых будет настроен алерт-агент
hosts:
node01:
# указать реальные IP адреса узлов кластера, к которым есть доступ с узла Спектра
ansible_host: 192.168.190.61
# Раскомментировать, если на хосте Спектра настроена аутентификация и указать реальный путь до ключа и сертификата на хосте Спектра
host_ca_cert: "/opt/skala-r/spectrum/certs/ca.crt" # Путь к корневому сертификату на хосте Спектра, откуда тот будет скопирован на узлы
# Раскомментировать, если на хосте Спектра настроена аутентификация и указать реальный путь до ключа и сертификата на хосте Спектра
host_cert: "/home/root/node01_server.crt" # Путь к клиентскому сертификату на хосте Спектра, откуда тот будет скопирован на узлы
host_key: "/home/root/node01_server.key" # Путь к ключу для клиентского сертификата на хосте Спектра, откуда тот будет скопирован на узлы
node02:
ansible_host: 192.168.190.62
host_ca_cert: "/opt/skala-r/spectrum/certs/ca.crt"
host_cert: "/home/root/node02_server.crt"
host_key: "/home/root/node02_server.key"
node03:
ansible_host: 192.168.190.63
host_ca_cert: "/opt/skala-r/spectrum/certs/ca.crt"
host_cert: "/home/root/node03_server.crt"
host_key: "/home/root/node03_server.key"
Далее для установки Агента уведомлений перейти в каталог, в который распакован архив с дистрибутивом "Спектра". Например, если архив распакован в /root/spectrum-dist, то выполнить команду
cd /root/spectrum-dist/spectrum-rpm-dist-v1.6.0-274
и далее следующие команды:
source /opt/skala-r/spectrum/python-modules/bin/activate
ansible-playbook -i inventory_samples/cluster.yml deploy_spectrum_alert_agent.yml -k
Если для установки Агента "Спектра" использовалась копия файла cluster.yml в домашнем каталоге пользователя, под которым выполняется установка "Спектра", то последняя команда будет иметь вид:
ansible-playbook -i ~/cluster.yml deploy_spectrum_alert_agent.yml -k
После запуска требуется ввести пароль пользователя root для доступа к узлам кластера.
При успешном выполнении команды в отчете о запуске плейбука должны отсутствовать шаги со статусом failed, при первой установке агента уведомлений будут присутствовать шаги со статусом ignored и сообщение об ошибке с пометкой …ignoring:
TASK [remove existing alerts for spectrum]*************
fatal: [node01]: FAILED! => {"changed": true, "cmd": "pcs alert delete spectrum alert", "delta": "0:00:00.452687", "end": "2023-06-01 16:12:14.057743",
": "Error: alert 'spectrum alert' does not exist\nError: Errors have occured, therefore pcs is unable to continue", "stderr_lines": ["Error alert "sp
continue"], "stdout": "", "stdout_lines": []}
...ignoring
TASK [debug] ****************************************************************************************************************************************
ok: [node01] => {
"msg": ""
}
TASK [create spectrum alerts] ***********************************************************************************************************************
changed: [node01]
TASK [add recipients to spectrum alert] *************************************************************************************************************
changed: [node01] => (item={'name': 'spectrum', 'cluster_id': '24ed3935-e6ce-4e72-8163-d2078f40d70c', 'spectrum_host': '192.168.190.138'})
PLAY RECAP ******************************************************************************************************************************************
node01 : ok=30 changed=11 unreachable=0 failed=0 skipped=0 rescued=0 ignored=1
node02 : ok=30 changed=11 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
node03 : ok=30 changed=11 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0