- Установите Python версии 3.6 или выше.
- Включите опцию install pip.
- Запустите следующую команду для установки пакетов на обеих сторонах кластера:
pip install flake8 psycopg2 urllib3 coloredlogs pywin32 servicemanager
- config.ini, расположенный в каталоге
<путь КАСКАД>/data/NGA/PostgreSQL/sql/Cluster Monitor Tool
, предназначен для настройки инструмента мониторинга кластера в смысле использования инструмента main.py . - Замените содержимое файла config.ini соответствующим содержимым шаблона для вашей системы:
- путем копирования содержимого соответствующего шаблона и замены содержимого файла config.ini.или
- переименовав соответствующий файл для Windows:
"config.windows.template.ini"
или для Linux:"config.linux.template.ini"
в config.ini.
- Отредактируйте следующие параметры файла template.ini: p1 и p2 (host, port и dbname).
ПРИМЕЧАНИЕ
Используйте IP-адреса вместо имен хостов в файле config.ini. Измените порт на установленный номер порта. Порт PostgreSQL по умолчанию – 5432.
[cluster] p1 = host=localhost port=5432 dbname=kaskad user=postgres password=postgres sslmode=prefer sslcompression=1 krbsrvname=postgres target_session_attrs=any p2 = host=hostName port=5432 dbname=kaskad user=postgres password=postgres sslmode=prefer sslcompression=1 krbsrvname=postgres target_session_attrs=any
[main] local_node_host_name = p1.
ПРИМЕЧАНИЕ<
Данный параметр отличается в зависимости от стороны кластера: p1 на одной и p2 на другой!
pg_data_path = C:/Program Files/PostgreSQL/13/data.
ПРИМЕЧАНИЕ
Если вы проводили установку по умолчанию, вам не нужно изменять путь. В противном случае, укажите корректный путь.
cmd_create_db_directories= <Используйте директорию, созданную при создании схемы: "db", "ebvents", "alerts", "backup"> Замените корневым каталогом вашей схемы: "C:\\postgresql_backend"
cmd_create_db_directories = (if not exist "C:\\Share\\postgresql_backend" mkdir "C:\\postgresql_backend") && (if not exist "C:\\postgresql_backend\\db" mkdir "C:\\postgresql_backend\\db") && (if not exist "C:\\postgresql_backend\\alerts" mkdir "C:\\postgresql_backend\\alerts") && (if not exist "C:\\postgresql_backend\\events" mkdir "C:\\postgresql_backend\\events") && (if not exist "C:\\postgresql_backend\\backups" mkdir "C:\\postgresql_backend\\backups")
cmd_remove_db_directories = (del /q "C:\Program Files\PostgreSQL\13\data\*") && (for /d %%x in ("C:\\Program Files\\PostgreSQL\\13\\data\\*") do @rd /s /q "%%x") && (if exist "C:\\Share\\postgresql_backend" rmdir /s /q "C:\\Share\\postgresql_backend")
- Установите настоящее имя вашего сетевого интерфейса «Ethernet». Для отображения интерфейсов запустите:netsh interface ipv4 show interfaces cmd_get_network_status_string = netsh interface ipv4 show interfaces «Ethernet» | findstr /e /c:»: connected»cmd_success_network_status_string = connected -> При необходимости (в соответствии с установленным языком PostgreSQL)cmd_get_db_status_string = pg_ctl status -D «C:/Program Files/PostgreSQL/13/data»cmd_promote_standby_to_master = pg_ctl promote -D «C:/Program Files/PostgreSQL/13/data»
ПРИМЕЧАНИЕ
Если вы проводили установку по умолчанию, вам не нужно изменять путь. В противном случае соответствующим образом измените пути следующих параметров.
- path_to_backup: Отредактируйте путь, чтобы он указывал на каталог резервной копии схемы.
- Запустите сценарий
main.py
ПРИМЕЧАНИЕ
Запустите его от имени администратора, если это необходимо. В качестве альтернативы вы также можете запустить сценарий Python в качестве службы.
- Для этого перейдите в каталог kaskad_path/data/NGA/PostgreSQL/sql/Cluster Monitor Tool и выполните
py windows_service.py --startup=auto install
от имени администратора.
ВНИМАНИЕ
Если команда не выполняется, убедитесь, что каталог \win32 в директории установки Python содержит файлы ‘pythoncom<3x>.dll’ и ‘pywintypes<3x>.dll’. В зависимости от установки Python расположение файлов может отличаться.
Найдите файлы в директории установки Python и скопируйте их в каталог \win32.
- Приведенная выше команда создала службу «PgClusterMonitor». Проверьте статус службы «PgClusterMonitor» в диспетчере задач Windows/Службы и при необходимости запустите службу.
ВНИМАНИЕ
Если у вас возникли проблемы с запуском службы, убедитесь, что вы вошли в службу как правильный пользователь: откройте меню «Пуск» Windows и введите «Службы».
- Вы также можете установить и запустить службу как службу Linux. Выполните следующие шаги:
- Создайте файл для службы:
sudo touch /lib/systemd/system/pg-cluster-monitor.service
- Отредактируйте службу pg-cluster-monitor.service следующим образом:[Unit Description=PostgreSQL Cluster Monitor Service After=multi-user.target][Service] WorkingDirectory=/pg_cluster_monitor User=root Type=idle ExecStart=/usr/bin/python3 /pg_cluster_monitor/main.py Restart=always [Install] WantedBy=multi-user.target где /pg_cluster_monitor — это директория с исходным кодом.
- Затем выполните следующие команды:sudo systemctl daemon-reload sudo systemctl enable pg-cluster-monitor.service sudo systemctl start pg-cluster-monitor.service
- Проверьте статус службы с помощью команды: systemctl status pg-cluster-monitor.service