Сценарии администрирования EDMN#
Предусловия#
Предусловия для выполнения сценария представлены индивидуально для каждого сценария администрирования при необходимости.
Правила эксплуатации#
Не применимо.
Описание механизмов безопасности#
Не применимо.
Последовательность выполнения#
Сценарий 1. Создание архивных копий компонентов EDMN#
Предусловия: Необходимо заполнить параметры в конфигурационном файле vars.yml. Пример заполненного файла приведен в документе «Руководство по установке» в разделе «Подготовка окружения EDMN» (подраздел Пример заполненного файла vars.yml).
Администратору должна быть назначена роль по принципу минимальных полномочий.
Раздел etcd:
backup_installdir_to:— директория создания архивных копий для директории установки etcd;backup_datadir_to:— директория создания архивных копий для данных etcd.
Раздел db:
backup_installdir_to:— директория создания архивных копий для директории установки db;backup_datadir_to:— директория создания архивных копий для данных db.
Раздел collector:
backup_installdir_to:— директория создания архивных копий для директории установки коллекторов.
Раздел InfluxDB:
backup_installdir_to:— директория создания архивных копий для директории установки InfluxDB;backup_datadir_to:— директория создания архивных копий для данных InfluxDB.
Раздел monitoring:
backup_installdir_to:— директория создания архивных копий для директории установки monitoring;backup_datadir_to:— директория создания архивных копий для данных monitoring.
Раздел Prometheus:
backup_installdir_to:— директория создания архивных копий для директории установки Prometheus;backup_datadir_to:— директория создания архивных копий для данных Prometheus.
Архивная копия UI EDMN#
Необходимо запустить Jenkins Job monitoring_custom (поставляется в дистрибутиве).
Выбрать playbook
monitoring.ymlc тегом backup_create.Запустить Jenkins Job и дождаться окончания выполнения работы. Результатом выполнения Jenkins Job является архив с названием monitoring_backup.tar.gz, расположенный в директории, указанной в параметрах конфигурационного файла vars.yml.
Архивная копия БД#
Необходимо запустить Jenkins Job monitoring_custom (поставляется в дистрибутиве).
Выбрать playbook
db.ymlc тегом backup_create.Запустить Jenkins Job и дождаться окончания выполнения работы. Результатом выполнения Jenkins Job является создание архивов db_backup.tar.gz и db_data_backup.tar.gz, расположенных в директориях, указанных в параметрах конфигурационного файла vars.yml.
Архивная копия etcd#
Необходимо запустить Jenkins Job monitoring_custom (поставляется в дистрибутиве).
Выбрать playbook
etcd.ymlc тегом backup_create.Запустить Jenkins Job и дождаться окончания выполнения работы. Результатом выполнения Jenkins Job является создание архивов etcd_backup.tar.gz и etcd_data_backup.tar.gz, расположенных в директориях, указанных в параметрах конфигурационного файла vars.yml.
Архивная копия коллекторов#
Необходимо запустить Jenkins Job monitoring_custom (поставляется в дистрибутиве).
Выбрать playbook
collector.ymlc тегом backup_create.Запустить Jenkins Job и дождаться окончания выполнения работы. Результатом выполнения Jenkins Job является архив с названием collector_backup.tar.gz, расположенный в директории, указанной в параметрах конфигурационного файла vars.yml.
Архивная копия InfluxDB#
Необходимо запустить Jenkins Job monitoring_custom (поставляется в дистрибутиве).
Выбрать playbook
influxdb.ymlc тегом backup_create.Запустить Jenkins Job и дождаться окончания выполнения работы. Результатом выполнения Jenkins Job является создание архивов influxdb_backup.tar.gz и influxdb_data_backup.tar.gz, расположенных в директориях, указанных в параметрах конфигурационного файла vars.yml.
Архивная копия Prometheus#
Необходимо запустить Jenkins Job monitoring_custom (поставляется в дистрибутиве).
Выбрать playbook
prometheus.ymlc тегом backup_create.Запустить Jenkins Job и дождаться окончания выполнения работы. Результатом выполнения Jenkins Job является создание архивов prometheus_backup.tar.gz и prometheus_data_backup.tar.gz, расположенных в директориях, указанных в параметрах конфигурационного файла vars.yml.
Архивная копия всех компонентов EDMN#
Необходимо запустить Jenkins Job monitoring_custom (поставляется в дистрибутиве).
Выбрать playbook
synapse_monitoring.ymlc тегом backup_create.Запустить Jenkins Job и дождаться окончания выполнения работы. Результатом выполнения Jenkins Job является создание архивов:
monitoring_backup.tar.gz;
etcd_backup.tar.gz;
etcd_data_backup.tar.gz;
db_backup.tar.gz;
db_data_backup.tar.gz;
collector_backup.tar.gz;
influxdb_backup.tar.gz;
influxdb_data_backup.tar.gz;
prometheus_backup.tar.gz;
prometheus_data_backup.tar.gz.
Все архивы расположены в директориях, указанных в параметрах конфигурационного файла vars.yml. Созданные архивные копии хранятся в директориях в единичном экземпляре, чтобы предотвратить переполнение директории хранения архивов.
Если в указанной директории ранее уже был создан архив, то при попытке повторного создания архивных копий компонентов выполнение Jenkins Job будет прерываться. Поэтому перед созданием нового архива следует предварительно удалить существующие архивные копии из данных директорий. Для этого необходимо запустить Jenkins Job monitoring_custom с выбором соответствующего playbook с тегом backup_remove.
Сценарий 2. Восстановление из архивных копий компонентов EDMN#
Предусловия: Необходимо заполнить параметры в конфигурационном файле vars.yml. Пример заполненного файла приведен в документе «Руководство по установке» в разделе «Подготовка окружения EDMN» (подраздел Пример заполненного файла vars.yml).
Администратору должна быть назначена роль по принципу минимальных полномочий.
Раздел etcd:
backup_installdir_to:— директория хранения архивных копий для директории установки etcd;backup_datadir_to:— директория хранения архивных копий для данных etcd.
Раздел db:
backup_installdir_to:— директория хранения архивных копий для директории установки db;backup_datadir_to:— директория хранения архивных копий для данных db.
Разделе collector:
backup_installdir_to:— директория хранения архивных копий для директории установки коллекторов.
Раздел InfluxDB:
backup_installdir_to:— директория хранения архивных копий для директории установки InfluxDB;backup_datadir_to:— директория хранения архивных копий для данных InfluxDB.
Раздел monitoring:
backup_installdir_to:— директория хранения архивных копий для директории установки monitoring.
Раздел Prometheus:
backup_installdir_to:— директория хранения архивных копий для директории установки Prometheus;backup_datadir_to:— директория хранения архивных копий для данных Prometheus.
Восстановление UI EDMN из архивной копии#
Необходимо запустить Jenkins Job monitoring_custom (поставляется в дистрибутиве).
Выбрать playbook
monitoring.ymlc тегом backup_restore.Запустить Jenkins Job и дождаться окончания выполнения работы. Результатом будет являться восстановление директории установки EDMN из архива, помещенного в указанную в файле vars.yml директорию.
Восстановление БД из архивной копии#
Необходимо запустить Jenkins Job monitoring_custom (поставляется в дистрибутиве).
Выбрать playbook
db.ymlc тегом backup_restore.Запустить Jenkins Job и дождаться окончания выполнения работы. Результатом будет являться восстановление директории установки db из архива, помещенного в указанную в файле vars.yml директорию.
Восстановление etcd из архивной копии#
Необходимо запустить Jenkins Job monitoring_custom (поставляется в дистрибутиве).
Выбрать playbook
etcd.ymlc тегом backup_restore.Запустить Jenkins Job и дождаться окончания выполнения работы. Результатом будет являться восстановление директории установки etcd из архива, помещенного в указанную в файле vars.yml директорию.
Восстановление collector из архивной копии#
Необходимо запустить Jenkins Job monitoring_custom (поставляется в дистрибутиве).
Выбрать playbook
collector.ymlc тегом backup_restore.Запустить Jenkins Job и дождаться окончания выполнения работы. Результатом будет являться восстановление директории установки collector из архива, помещенного в указанную в файле vars.yml директорию.
Восстановление InfluxDB из архивной копии#
Необходимо запустить Jenkins Job monitoring_custom (поставляется в дистрибутиве).
Выбрать playbook
influxdb.ymlc тегом backup_restore.Запустить Jenkins Job и дождаться окончания выполнения работы. Результатом будет являться восстановление директории установки InfluxDB из архива, помещенного в указанную в файле vars.yml директорию.
Восстановление Prometheus из архивной копии#
Необходимо запустить Jenkins Job monitoring_custom (поставляется в дистрибутиве).
Выбрать playbook
prometheus.ymlc тегом backup_restore.Запустить Jenkins Job и дождаться окончания выполнения работы. Результатом будет являться восстановление директории установки Prometheus из архива, помещенного в указанную в файле vars.yml директорию.
Восстановление из архивной копии всех компонентов EDMN#
Необходимо запустить Jenkins Job monitoring_custom (поставляется в дистрибутиве).
Выбрать playbook
synapse_monitoring.ymlc тегом backup_restore.Запустить Jenkins Job и дождаться окончания выполнения работы. Результатом будет являться восстановление директорий установки EDMN, db, etcd, InfluxDB, collector, Prometheus из архивов, помещенных в указанную в файле vars.yml директорию.
Сценарий 3. Запуск компонентов EDMN#
Администратору должна быть назначена роль по принципу минимальных полномочий.
С помощью системного сервиса#
Запуск UI EDMN
В командной строке перейти в директорию установки EDMN (параметр ansible monitoring.installdir, настраиваемый в файле vars.yml, например, */opt/monitoring*) и выполнить команду перезапуска:
для запуска сервиса:
sudo systemctl start monitoring.service
для запуска процесса из директории установки:
./bin/edmn restart
Запуск etcd
В командной строке перейти в директорию установки etcd и выполнить команду перезапуска:
для запуска сервиса выполнить команду:
sudo systemctl start etcd.service
для запуска процесса выполнить команду из директории установки:
./etcd-run-nohup.sh
Запуск InfluxDB
В командной строке перейти в директорию установки InfluxDB и выполнить команду перезапуска:
для запуска сервиса выполнить команду:
sudo systemctl start influxdb.service
для запуска процесса выполнить команду из директории установки:
./usr/bin/influxd -config etc/influxdb/influxdb.conf
Запуск коллекторов
В командной строке перейти в директорию установки коллекторов и выполнить команду перезапуска:
для запуска сервиса выполнить команду:
sudo systemctl start <Название коллектора>.service
для запуска процесса выполнить команду из директории установки:
nohup ./bin/collector run -c ./config/<Название коллектора>.application }} -m ./config/<Название коллектора>.config }} -d config/<Название коллектора>.properties -l config/logback-<Название коллектора>.xml &>/dev/null &
Запуск Prometheus
В командной строке перейти в директорию установки Prometheus и выполнить команду перезапуска:
для запуска сервиса выполнить команду:
sudo systemctl start prometheus.service
для запуска процесса выполнить команду из директории установки:
./prometheus-run.sh
С помощью Jenkins#
Запуск etcd
Запустить Jenkins Job monitoring_custom.
Выбрать playbook
etcd.ymlс тегомstart.
Запуск UI EDMN
Запустить Jenkins Job monitoring_custom.
Выбрать playbook
monitoring.ymlс тегомstart.
Запуск InfluxDB
Запустить Jenkins Job monitoring_custom.
Выбрать playbook
influxdb.ymlс тегомstart.
Запуск коллекторов
Запустить Jenkins Job monitoring_custom.
Выбрать playbook
collector.ymlс тегомstart.
Запуск Prometheus
Запустить Jenkins Job monitoring_custom.
Выбрать playbook
prometheus.ymlс тегомstart.
Запуск всех компонентов EDMN
Запустить Jenkins Job monitoring_custom.
Выбрать playbook
synapse_monitoring.ymlс тегомstart.
С помощью Ansible#
Предварительно необходимо скачать дистрибутив EDMN-scripts-{version}-distrib.zip
Запуск etcd
Перейти в директорию ansible
Выполнить команду
ansible-playbook -i <Путь до вашего инвентори> etcd.yml -t start
Запуск UI EDMN
Перейти в директорию ansible
Выполнить команду
ansible-playbook -i <Путь до вашего инвентори> monitoring.yml -t start
Запуск InfluxDB
Перейти в директорию ansible
Выполнить команду
ansible-playbook -i <Путь до вашего инвентори> influxdb.yml -t start
Запуск коллекторов
Перейти в директорию ansible
Выполнить команду
ansible-playbook -i <Путь до вашего инвентори> collector.yml -t start
Запуск Prometheus
Перейти в директорию ansible
Выполнить команду
ansible-playbook -i <Путь до вашего инвентори> prometheus.yml -t start
Запуск всех компонентов EDMN
Перейти в директорию ansible
Выполнить команду
ansible-playbook -i <Путь до вашего инвентори> synapse_monitoring.yml -t start
Предварительно необходимо скачать дистрибутив EDMN-scripts-{version}-distrib.zip
Сценарий 4. Остановка компонентов EDMN#
Администратору должна быть назначена роль по принципу минимальных полномочий.
С помощью системного сервиса#
Остановка UI EDMN
Необходимо зайти на узел, на котором будет производиться остановка, под пользователем monitoring:
Определить, запущен сервис или процесс, командой:
systemctl list-units --state=active,activating | grep "^[ ]*monitoring.service"
Если данная команда не вывела результата, то запущен процесс, иначе — сервис.
При запущенном сервисе — остановить сервис командой:
sudo systemctl stop monitoring.service
При запущенном процессе — остановить процесс из директории установки командой:
./bin/edmn stop
Остановка etcd
Необходимо зайти на узел, на котором будет производиться остановка, под пользователем etcd.
Определить, запущен сервис или процесс, командой:
systemctl list-units --state=active,activating | grep "^[ ]*etcd.service"Если данная команда не вывела результата, то запущен процесс, иначе — сервис.
При запущенном сервисе — остановить сервис командой:
sudo systemctl stop etcd.serviceПри запущенном процессе — остановить процесс командой:
pkill etcd
Остановка InfluxDB
Необходимо зайти на узел, на котором будет производиться остановка, под пользователем influxdb.
Определить, запущен сервис или процесс, командой:
systemctl list-units --state=active,activating | grep "^[ ]*influxdb.service"Если данная команда не вывела результата, то запущен процесс, иначе — сервис.
При запущенном сервисе — остановить сервис командой:
sudo systemctl stop influxdb.serviceПри запущенном процессе — остановить процесс командой:
pkill influxd
Остановка коллекторов
Необходимо зайти на узел, на котором будет производиться остановка, под пользователем collectors.
Определить, запущен сервис или процесс, командой:
systemctl list-units --state=active,activating | grep "^[ ]*collectors.service"Если данная команда не вывела результата, то запущен процесс, иначе — сервис.
При запущенном сервисе — остановить сервис командой:
sudo systemctl stop collectors.serviceПри запущенном процессе — остановить процесс командой:
pkill -f <название коллектора>
Остановка Prometheus
Необходимо зайти на узел, на котором будет производиться остановка, под пользователем prometheus.
Определить, запущен сервис или процесс, командой:
systemctl list-units --state=active,activating | grep "^[ ]*prometheus.service"Если данная команда не вывела результата, то запущен процесс, иначе — сервис.
При запущенном сервисе — остановить сервис командой:
sudo systemctl stop prometheus.serviceПри запущенном процессе — остановить процесс командой:
pkill prometheus
С помощью Jenkins#
Остановка etcd
Запустить Jenkins Job
monitoring_custom.Выбрать playbook
etcd.ymlс тегомstop.
Остановка UI EDMN
Запустить Jenkins Job
monitoring_custom.Выбрать playbook
monitoring.ymlс тегомstop.
Остановка InfluxDB
Запустить Jenkins Job
monitoring_custom.Выбрать playbook
influxdb.ymlс тегомstop.
Остановка коллекторов
Запустить Jenkins Job
monitoring_custom.Выбрать playbook
collector.ymlс тегомstop.
Остановка Prometheus
Запустить Jenkins Job
monitoring_custom.Выбрать playbook
prometheus.ymlс тегомstop.
Остановка всех компонентов EDMN
Запустить Jenkins Job
monitoring_custom.Выбрать playbook
synapse_monitoring.ymlс тегомstop.
С помощью Ansible#
Предварительно необходимо скачать дистрибутив EDMN-scripts-{version}-distrib.zip
Запуск etcd
Перейти в директорию ansible
Выполнить команду
ansible-playbook -i <Путь до вашего инвентори> etcd.yml -t stop
Запуск UI EDMN
Перейти в директорию ansible
Выполнить команду
ansible-playbook -i <Путь до вашего инвентори> monitoring.yml -t stop
Запуск InfluxDB
Перейти в директорию ansible
Выполнить команду
ansible-playbook -i <Путь до вашего инвентори> influxdb.yml -t stop
Запуск коллекторов
Перейти в директорию ansible
Выполнить команду
ansible-playbook -i <Путь до вашего инвентори> collector.yml -t stop
Запуск Prometheus
Перейти в директорию ansible
Выполнить команду
ansible-playbook -i <Путь до вашего инвентори> prometheus.yml -t stop
Запуск всех компонентов EDMN
Перейти в директорию ansible
Выполнить команду
ansible-playbook -i <Путь до вашего инвентори> synapse_monitoring.yml -t stop
Предварительно необходимо скачать дистрибутив EDMN-scripts-{version}-distrib.zip.
Сценарий 5. Загрузка конфигурационного файла коллектора на сервер#
Для загрузки конфигурационного файла коллектора на сервер необходимо:
Указать в vars в блоке collector следующие параметры(custom_config, config), согласно примеру:
Пример:
artemis-metrics:
type: artemis
custom_config: true # Включение/выключение добавления конфигурационного файла коллектора на сервер
config: artemis-metrics.conf # имя конфигурационного файла коллектора который будет загружен на сервер
application: artemis-application.conf
serverSslPort:
serverPort:
jmxUser:
jmxPassword:
В вашей директории inventory создать директорию config (если она не была создана), пример расположения папки ниже:
├── ...
├── files
├── inventories
│ ├── EXAMPLE
| | ├── config
│ │ │ └── artemis-metrics.conf (Название конфигурационного файла, указанное в параметре config)
│ │ ├── group_vars
│ │ │ └── all
│ │ │ ├── vars.yml
│ │ │ └── vault.yml
│ │ ├──ssl
│ │ │ ├── influx.jks
│ │ │ ├── kafka-dev-cluster-1.jks
│ │ │ ├── mon.jks
│ │ │ ├── prometheus.jks
│ │ │ ├── prometheus.keystore.jks
│ │ │ ├── prometheus.truststore.jks
│ │ │ ├── server.keystore.jks
│ │ │ ├── server.truststore.jks
│ │ │ ├── vault.jks
│ │ │ └── vault.truststore.pem
│ │ │
│ │ └── inventory
│ │
│ ├── [новая директория]
│ │ ├── group_vars
│ │ │ └── all
│ │ │ ├── vars.yml
│ │ │ └── vault.yml
│ │ ├──ssl
│ │ │ ├── influx.jks
│ │ │ ├── kafka-dev-cluster-1.jks
│ │ │ ├── mon.jks
│ │ │ ├── prometheus.jks
│ │ │ ├── prometheus.keystore.jks
│ │ │ ├── prometheus.truststore.jks
│ │ │ ├── server.keystore.jks
│ │ │ ├── server.truststore.jks
│ │ │ ├── vault.jks
│ │ │ └── vault.truststore.pem
│ │ │
│ │ └── inventory
│ │
├── roles
│ │ ...
├── ansible.cfg
├── collector.yml
├── ***.yml
├──...
Перейти в Jenkins Job, и запустить job со следующими тегами и playbook:
playbook — collector.yml/synapse_monitoring.yml
Примечание: В первом случае, мы сгенерим новый конфигурационный файл и перезапустим только коллекторы, во втором же случае мы также перезапустим мониторинг.
`tags: Custom_config, restart`
Примечание: Тег Custom_config перенесет на сервер в установочную директорию ваш конфигурационный файл, restart перезапустит коллектор/мониторинг.
Проверить, что Jenkins Job завершилась со статусом SUCCESS, перейти в мониторинг и проверить, что появились новые метрики.
Сценарий 6. Добавление нового коллектора при наличии установленных через тег collector_already_installed#
Сценарий добавления нового коллектора, при уже установленных выполняется при использовании тега collector_already_installed, выполняется при уже выполненной первичной установки с дистрибутивом. Добавление с тегом collector_already_installed выполняется уже без дистрибутива.
С использованием Jenkins Job monitoring_custom#
Убедиться, что был добавлен новый коллектор в vars.
Убедиться, что была произведена первичная установка с дистрибутивом.
В jenkins запустить job с параметрами:
job_config_renew: true (Выбрать чекбокс)
inventory: <Выбрать ваш инветори из списка>
В jenkins запустить job с параметрами:
inventory: <Выбрать ваш инветори из списка>
playbook: collector.yml
tags: run_only, collector_already_installed, install, restart
usedCollectors: <Выбрать новый коллектор>
Дождаться окончания работы jenkins job.
После выполнения jenkins job, на сервере появится новый коллектор.
Сценарий 7. Удаление system/user сервиса коллектора#
Сценарий удаления system/user сервиса коллектора, выполняется с использованием тега: run_only и использовании playbook:
collector_system_service_delete.yml - для удаления system сервиса;
collector_user_service_delete.yml - для удаления пользовательского сервиса.
С использованием Jenkins Job monitoring_custom#
Убедиться, что systemd сервис коллектор установлен.
Убедиться, что systemd сервис указан в vars.
В jenkins запустить job с параметрами:
inventory: <Выбрать ваш инветори из списка>
playbook:
collector_system_service_delete.yml - для удаления system сервиса
collector_user_service_delete.yml - для удаления пользовательского сервиса
tags: run_only
usedCollectors: <Выбрать коллектор для которого надо произвести удаления>
Подтвердить удаление сервиса коллектора.
Дождаться окончания работы jenkins job.
После выполнения jenkins job, выбранный коллектор будет удален.
Сценарий 8. Удаление конкретного коллектора#
Сценарий удаления коллектора, выполняется при использовании тегов: run_only, uninstall.
С использованием Jenkins Job monitoring_custom#
Убедиться, что коллектор установлен.
В jenkins запустить job с параметрами:
inventory: <Выбрать ваш инветори из списка>
playbook: collector.yml
tags: run_only, uninstall
usedCollectors: <Выбрать новый коллектор>
Подтвердить удаление.
Дождаться окончания работы jenkins job.
После выполнения jenkins job, выбранный коллектор будет удален.
Результат#
Сценарии администрирования выполнены.