Агент уведомлений "Спектра"

Перед обновлением Агента уведомлений "Спектра" кластеры должны быть видны в графическом интерфейсе и иметь статус Доступен.

Для обновления Агента уведомлений "Спектра" потребуются IP-адрес хоста "Спектра" и ID импортированного кластера.

IP-адрес отображается в адресной строке браузера, в котором открыт веб-интерфейс "Спектра". ID кластера также отображаются в веб-интерфейсе в адресной строке браузера при переходе на страницу информации о кластере.

image$ip address id cluster

В приведенном примере 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:
        # Название конфигурации уведомлений и JSON файла, который его описывает
      - name: spectrum
        # UUID кластера, для которого настраиваются уведомления. Можно найти в адресной строке, перейдя на страницу обзора кластера
        cluster_id: 24ed3935-e6ce-4e72-8163-d2078f40d70c
         # Хост Спектра, для которого настраиваются алерты. Указать реальный IP адрес Спектра, доступ к котором есть с узла кластера
        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:

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