From 04b8e941d1a8d1188d69b215dc1010c8d7e90c4f Mon Sep 17 00:00:00 2001 From: igor Date: Mon, 17 Mar 2025 07:48:47 +0500 Subject: [PATCH] + --- Dahy_install.md | 11 +- Jenkins_install.md | 40 ++- PostgreSQL_install.md | 299 ++++++++++++++++++ PowerDNS_doker_install.md | 285 +++++++++++++++++ PowerDNS_install.md | 649 ++++++++++++++++++++++++++++++++++++++ Ubuntu.md | 452 -------------------------- Zulip_install.md | 38 +++ 7 files changed, 1317 insertions(+), 457 deletions(-) create mode 100644 PostgreSQL_install.md create mode 100644 PowerDNS_doker_install.md create mode 100644 PowerDNS_install.md create mode 100644 Zulip_install.md diff --git a/Dahy_install.md b/Dahy_install.md index a54bc4c..feaafb3 100644 --- a/Dahy_install.md +++ b/Dahy_install.md @@ -16,7 +16,7 @@ ssh igor@192.168.200.84 -p 22 sudo mkdir -p /opt/dashy && sudo mkdir -p /opt/dashy/data && sudo chmod -R 777 /opt/dashy && - sudo chown -R $USER:$USER /opt/dashy && + sudo chown -R $USER:$USER /opt/dashy ``` Создаём файл конфигурации @@ -56,8 +56,13 @@ sections: # An array of sections url: https://192.168.200.84:9443 - title: Prometheus icon: https://static-00.iconduck.com/assets.00/prometheus-icon-511x512-1vmxbcxr.png - url: http://192.168.200.84:9090 - + url: http://192.168.200.84:9090 +- name: PowerDNS + items: + - title: PowerDNS-Admin + icon: https://avatars.githubusercontent.com/u/1282630?s=200&v=4 + url: http://192.168.200.85:9191 + EOF ``` diff --git a/Jenkins_install.md b/Jenkins_install.md index 27f7159..2b8db32 100644 --- a/Jenkins_install.md +++ b/Jenkins_install.md @@ -31,7 +31,24 @@ sudo apt update ``` ```sh -sudo apt install jenkins +sudo apt install jenkins -y +``` +If the software was installed incorrectly, you can reinstall it after uninstalling it first.: +```sh +sudo apt remove --purge jenkins +``` + +```sh +jenkins --version +``` + +Try run jenkins without service +```sh +sudo -u jenkins /usr/bin/jenkins --httpPort=8081 --httpListenAddress=0.0.0.0 +``` + +```sh +sudo mcedit /lib/systemd/system/jenkins.service ``` ```sh @@ -41,7 +58,26 @@ sudo systemctl status jenkins ``` ```sh -start http://127.0.0.1:8080 +sudo journalctl -xeu jenkins.service | tail -n 50 +``` +Если порт занят, проверяем кем: +```sh +sudo lsof -i :8081 +``` +Переопределяем порт: +```sh +sudo mcedit /etc/default/jenkins +``` +```conf +HTTP_PORT=8081 +``` + +```sh +sudo systemctl restart jenkins +``` + +```sh +start http://127.0.0.1:8081 ``` diff --git a/PostgreSQL_install.md b/PostgreSQL_install.md new file mode 100644 index 0000000..c74c779 --- /dev/null +++ b/PostgreSQL_install.md @@ -0,0 +1,299 @@ +# Install PostgreSQL database + +Coonect lto need server: +```sh +wsl +``` +Or coonect to need server: +```sh +ssh igor@ccalm.org -p 2200 +``` + +**************************************************************************************************** +Установка PostgreSQL 11.5 windows10 из https://www.enterprisedb.com/download-postgresql-binaries: +Скачал, создаю дирректорию хранения данных: +O:\MyDocuments\DataBases\postgresql-12.3-1-windows-x64-binaries\pgsql\bin\initdb.exe -D O:\MyDocuments\DataBases\Data_PostgreSQL_12.3 +O:\MyDocuments\DataBases\postgresql-10.13-1-windows-x64-binaries\pgsql\bin\initdb.exe -D O:\MyDocuments\DataBases\Data_PostgreSQL_10.13 +Потом создать BAT файл с тем текстом что отобразится при создании каталога базы +База данных создаётся не под пользователем postgres а под локальным пользователем igor +**************************************************************************************************** +Установка PostgreSQL 14 ubuntu 22.04 или 24.04 +```sh + sudo apt-get update + sudo apt-get install postgresql postgresql-contrib -y +``` +Или так если нужно установить PostGIS +```sh + sudo apt-get install postgis +``` +Для удаления PostGIS в месте с зависимыми пакетами: +```sh + sudo apt-get remove --auto-remove postgis && + sudo apt-get purge postgis +``` +Добавить русскую локаль если её нет: +```sh + sudo locale-gen ru_RU && + sudo locale-gen ru_RU.UTF-8 && + sudo locale-gen kk_KZ && + sudo locale-gen kk_KZ.UTF-8 +``` +Проверить какая локаль по умолчанию: +```sh + localectl status +``` +И переконфигурировать локаль по умолчанию в ru_RU.UTF-8 (а то в mc могут быть кракозябры): +```sh + sudo dpkg-reconfigure locales +``` +Для задания пароля в PostgreSQL выполнить: +```sh + sudo -u postgres psql && + \password postgres +``` +Чтобы выйти нужно выпольнить команду: \q + +Роль входа по умолчанию: postgres пароль можно поменять когда в pg_hba.conf установить trust +Задать пароль: + sudo -u postgres psql + postgres=> SELECT usename FROM pg_user; + postgres=> alter user postgres password 'PasSecrKey1'; + postgres=> \q + +Настройка postgresql.conf: http://www.lissyara.su/archive/1c_8.2+postgresql/ +Создаём базу данных выполнив функцию: +CREATE DATABASE CCALM + WITH OWNER = postgres + TEMPLATE = template0 + ENCODING = 'UTF8' + TABLESPACE = pg_default + LC_COLLATE = 'ru_RU.UTF-8' + LC_CTYPE = 'ru_RU.UTF-8' + CONNECTION LIMIT = -1; + +Файл настроек postgresql: sudo mcedit /etc/postgresql/16/main/postgresql.conf + listen_addresses='*' #Разрешить подключение с внешки + #Для 9й версии разрешаем экранирующие символы \' и другие без спец символа "E" перед строкой + backslash_quote = on + escape_string_warning = off + standard_conforming_strings = off +Чтобы воводил двоичные данные по старому изменить на: + bytea_output = 'escape' + +Настраиваю лимиты а то в саранче не выполняло большой запрос "Ошибка ввода/ввывода при отправке бэкенду" + +Для создания нового пользователя выполнить: + sudo -u postgres psql + CREATE ROLE zholak LOGIN ENCRYPTED PASSWORD 'md5c0029083b93a3b16207a83b45e8a324a' NOSUPERUSER INHERIT NOCREATEDB NOCREATEROLE REPLICATION; + +Для подключения к определённой базе данных выполнить команду: + sudo -u postgres psql + \list or \l: для отображения всех баз + \connect zholak zholak + \dt для отображения всех таблиц + +или написать со своим IP: host all all 2.133.238.240/24 trust +Для подключения с любых IP адресов в "sudo mcedit /etc/postgresql/16/main/pg_hba.conf" прописать: + host all all 0.0.0.0/0 md5 + Либо с одного конкретного то: host all all 92.46.48.37/24 md5 +А также поменять на listen_addresses = '*' в postgresql.conf +Потом перезагрузить postgres: + sudo service postgresql restart + sudo /etc/init.d/postgresql stop + sudo /etc/init.d/postgresql restart + sudo /etc/init.d/postgresql start +Проверить запущен или нет то: + sudo /etc/init.d/postgresql status +Посмотрель лог загрузки PostGreSQL: + dmesg |grep pg +Чтобы посмотреть чем занят порт выполнить команду: + sudo netstat -tap | grep 5432 + +Создать Backup (при переносе со старой на новую версию может быть не совместим для этого нужно делать бакам в текстовом формате: plain): + pg_dump bigfoott_shop>/home/igor/bigfoott_shop.sql --host=127.0.0.1 --username=bigfoott_root + pg_dump ASDC_Locust>/home/igor/ASDC_Locust.sql --host=127.0.0.1 --username=postgres + pg_dump zholak>/home/zholak/zholak.sql --host=127.0.0.1 --username=postgres + pg_dump stations>/home/administrator/pg_dump.sql --host=127.0.0.1 --username=postgres --format=custom + pg_dump transit>/home/administrator/transit.sql --host=127.0.0.1 --username=postgres + pg_dump weather>weather.backup --host=127.0.0.1 --username=postgres --format=custom + pg_dump transit>transit.backup --host=127.0.0.1 --username=postgres --format=custom + + pg_dump CCALM>CCALM.backup --host=127.0.0.1 --username=postgres --format=custom + + pg_dump weather_ru>weather_ru.backup --host=127.0.0.1 --username=postgres --format=custom + pg_dump -d CCALM -h 192.168.0.161 -U postgres -f O:\dumps\CCALM.sql + pg_dump --dbname=postgresql://postgres:PostPas1key@127.0.0.1:5432/ShopMaster | gzip > /mnt/disk1/backup/$(date +%Y-%m-%d).ShopMaster.gz + +Востановить Dump из текстового файла: + psql ASDC_Locust < /home/igor/ASDC_Locustfcron.backup + psql -h 127.0.0.1 -U bigfoott_root -d bigfoott_shop_old2 < E:\dumps\bigfoottrade\dump.sql + psql -h 127.0.0.1 -U postgres -d monitoring < /home/igor/pg_dump.sql + psql -h 127.0.0.1 -U postgres -d transit_2024 < /home/administrator/transit.sql + psql -h 127.0.0.1 -U postgres -d bigfoot_shop < /home/igor/goods.sql + +Создание SH скрипта для ежедневного бакапирования и архивации в ZIP файл: + /mnt/O_DRIVE/MyDocuments/DataBases/dumps/run.sh + #!/bin/sh + pg_dump --dbname=postgresql://postgres:A6dCgeDDWHbC@127.0.0.1:5432/Queue | gzip > /mnt/disk1/backup/$(date +%Y-%m-%d).Queue.gz + +Для востановления через pg_restore (версии баз должны совпадать а то может не восстановиться): + su - postgres + pg_restore -U -d -1 .dump + pg_restore -U postgres -d zholak -1 /home/zholak/zholak_16.01.2019.backup + pg_restore -U postgres -d monitoring -1 /home/igor/stations_20200626.backup + pg_restore -U postgres -d transit_new -1 /home/administrator/temp/transit.backup + pg_restore -U postgres -d transit -1 /home/administrator/transit.backup + pg_restore --host=127.0.0.1 --username=postgres --dbname=transit_2024 --verbose /home/administrator/transit.backup + + sudo -u postgres psql -d transit -f /tmp/transit.backup + +Или из архива (первоначально задать trust на 127.0.0.1) так: + gunzip -c /var/www/dump.sql.gz | psql -h 127.0.0.1 -U bigfoott_root -d bigfoott_shop + +**************************************************************************************************** +Настройка отображения статистики для PostgreSQL: + https://habr.com/ru/articles/488968/ + + SELECT * FROM pg_stat_statements ORDER BY total_exec_time DESC; + SELECT * FROM pg_stat_activity + SELECT * FROM pg_stat_replication + SELECT * FROM pg_stat_all_tables + +Полный список: https://postgrespro.ru/docs/postgrespro/9.5/monitoring-stats + +Установить Prometheus сграфаной Grafana для PostgreSQL там по умолчанию есть набор настроек для сбора статистики с PostgreSQL + По мотивам: https://grafana.com/oss/prometheus/exporters/postgres-exporter/ + По мотивам: https://www.youtube.com/watch?v=B_yz37CR1XU +**************************************************************************************************** +Установка pgagent + sudo apt-get update + sudo apt-get install pgagent +Выполнить в консоли запрос: + psql -h localhost -U postgres + create extension pgagent; + \q +Для разрешения подключения откройте файл pg_hba.conf и замените строку на: + host all all 127.0.0.1/32 md5 + +Можно для теста запустить pgagent с повышенным уровнем логирования: + /usr/bin/pgagent -f -l 2 hostaddr=127.0.0.1 dbname=postgres user=postgres password=lelPfAtgQWhHYfy1SsHk + +Если файла нет то пытаюсь его создать: + sudo mcedit /lib/systemd/system/pgagent.service + +[Unit] +Description=PostgreSQL PgAgent Service +After=network.target + +[Service] +Type=simple +User=postgres +ExecStart=/usr/bin/pgagent -f hostaddr=127.0.0.1 dbname=postgres user=postgres password=PasSecrKey1 + +[Install] +WantedBy=multi-user.target + +Проверяю что сервис был запущен: + sudo systemctl daemon-reload + sudo systemctl enable pgagent + sudo service pgagent start + sudo systemctl status pgagent + + +Для проверки пробуем подключиться к базе данных + sudo -u postgres psql -h 127.0.0.1 -U postgres -d postgres + \q + +Похоже что нужно ещё создать файл паролей так как агент не знает как подключаться: + sudo -u postgres touch /var/lib/postgresql/.pgpass + sudo -u postgres chmod 600 /var/lib/postgresql/.pgpass + sudo -u postgres mcedit /var/lib/postgresql/.pgpass +И прописать в него: + 127.0.0.1:5432:postgres:postgres:PasSecrKey1 +Где используется такой формат: hostname:port:database:username:password +Затем: + sudo systemctl enable pgagent + sudo service pgagent start + sudo service pgagent status +Посмотреть логи: + sudo journalctl -u pgagent + +**************************************************************************************************** +Для добавления автоматического бакапирования Postgresql базы *.backup создать скрипт: + + +**************************************************************************************************** +Перенос базы PostgreSQL на другой диск: https://internet-lab.ru/postgresql_ubuntu_move + +**************************************************************************************************** +Установка PostGIS на PostgreSQL выше 9.0 версии: + sudo apt-get install postgis postgresql-9.3-postgis-2.1 +Для 10й версии: + sudo apt install postgresql-10-postgis-2.4 + sudo apt install postgresql-10-postgis-scripts +Для 12й версии: + sudo apt install postgresql-12-postgis-2.4 + +Создать базу данных и выполнть на ней следующие команды: + -- Enable PostGIS (includes raster) + CREATE EXTENSION postgis; + -- Enable Topology + CREATE EXTENSION postgis_topology; + -- fuzzy matching needed for Tiger + CREATE EXTENSION fuzzystrmatch; + -- rule based standardizer + CREATE EXTENSION address_standardizer; + -- example rule data set + CREATE EXTENSION address_standardizer_data_us; + -- Enable US Tiger Geocoder + CREATE EXTENSION postgis_tiger_geocoder; + +У меня начало выдавать NOTICE: version "2.2.1" of extension "postgis_topology" is already installed и PostGIS перестал работать на моём PostgreSQL 9.5.17 +Аказывается расширение кудато делось установил: + sudo apt-get install postgresql-9.5-postgis-2.2 +**************************************************************************************************** +Для добавления TOTP авторизации в Postgresql выполнить: + CREATE EXTENSION otp; + + +**************************************************************************************************** + sudo apt-get install libpq-dev libpq-fe +Если есть несовместимость libpq-dev : Зависит: libpq5 (= 14.3-0ubuntu0.22.04.1) но 14.3-1.pgdg22.04+1 должен быть установлен + То удали ранее добавленный репозиторий: /etc/apt/sources.list.d/pgadmin4.list и обнови а потом попробуй установить заново libpq-dev + apt update +**************************************************************************************************** +Установка phpPgAdmin через репозиторий: +sudo apt-get install phppgadmin +Можно открыть так: http://localhost/phppgadmin +Для доступа с любых ip адресов в файле: /etc/phppgadmin/apache.conf изменить на allow from all +Чтоб можно было залогинется под пользователем postgres меняем в: +/etc/phppgadmin/config.inc.php extra_login_security в false +Если phpphadmin не дает залогиниться и пишет "Неверный логин", нужно в postgresql.conf прописать $conf['servers'][0]['host'] = 'localhost'; + +Другой вариант скачать с сайта последнюю версию с "http://phppgadmin.sourceforge.net/doku.php". +**************************************************************************************************** +Установка pgAdmin4 в Linux Mint 20.04 (inxi -S) Проверить версию линукса: cat /etc/os-release у меня выдало: NAME="Linux Mint" VERSION="20.3 (Una)" + +Проверить что не записан левый репозиторий для phppgadmin в /ect/opt/ + curl https://www.pgadmin.org/static/packages_pgadmin_org.pub | sudo apt-key add + sudo sh -c 'echo "deb https://ftp.postgresql.org/pub/pgadmin/pgadmin4/apt/bionic pgadmin4 main" > /etc/apt/sources.list.d/pgadmin4.list && apt update' + sudo apt install pgadmin4 + +И не запустился сервер оболочка пытается стартануть а сервер нет... + + sudo curl https://www.pgadmin.org/static/packages_pgadmin_org.pub | sudo apt-key add + sudo sh -c 'echo "deb https://ftp.postgresql.org/pub/pgadmin/pgadmin4/apt/focal pgadmin4 main" > /etc/apt/sources.list.d/pgadmin4.list && apt update' + sudo apt install pgadmin4 + +Тоже не заработал + +Попробовать так: https://www.tecmint.com/install-postgresql-with-pgadmin4-on-linux-mint/ + +**************************************************************************************************** +Балансировщик назрузки и потоковая репликация: +Pgpool-II https://www.youtube.com/watch?v=qpxKlH7DBjU сервер с высокой доступностью +https://ritorika.com.ua/dokument/6/pgpool-chto-jeto +**************************************************************************************************** +Мониторинг запросов postgresql + + diff --git a/PowerDNS_doker_install.md b/PowerDNS_doker_install.md new file mode 100644 index 0000000..75cd0b3 --- /dev/null +++ b/PowerDNS_doker_install.md @@ -0,0 +1,285 @@ +Устанавливаем PowerDNS через Docker Compose в директорию /opt/powerdnsa +Эту версию пробовал: https://hub.docker.com/r/powerdns/pdns-auth-48 +PowerDNS Authoritative + +```sh +ssh-keygen -R 192.168.200.85 +``` + +```sh +ssh igor@192.168.200.85 -p 22 +``` + +```sh + sudo apt update && + sudo apt install docker.io docker-compose -y +``` + +```sh + sudo mkdir -p /opt/powerdnsa && + cd /opt/powerdnsa && + sudo mkdir -p data && + cd /opt/powerdnsa/data +``` + +Инициализируем базу данных так как сам контейнер её не создаёт +```sh +sudo apt install sqlite3 -y +``` + +Create database: +```sh +sudo sqlite3 /opt/powerdnsa/data/pdns.sqlite3 ".databases" +``` + +Create database structure +```sql +sudo sqlite3 /opt/powerdnsa/data/pdns.sqlite3 < /dev/null < /dev/null < /dev/null < SELECT usename FROM pg_user; - postgres=> alter user postgres password 'PasSecrKey1'; - postgres=> \q - -Настройка postgresql.conf: http://www.lissyara.su/archive/1c_8.2+postgresql/ -Создаём базу данных выполнив функцию: -CREATE DATABASE CCALM - WITH OWNER = postgres - TEMPLATE = template0 - ENCODING = 'UTF8' - TABLESPACE = pg_default - LC_COLLATE = 'ru_RU.UTF-8' - LC_CTYPE = 'ru_RU.UTF-8' - CONNECTION LIMIT = -1; - -Файл настроек postgresql: sudo mcedit /etc/postgresql/16/main/postgresql.conf - listen_addresses='*' #Разрешить подключение с внешки - #Для 9й версии разрешаем экранирующие символы \' и другие без спец символа "E" перед строкой - backslash_quote = on - escape_string_warning = off - standard_conforming_strings = off -Чтобы воводил двоичные данные по старому изменить на: - bytea_output = 'escape' - -Настраиваю лимиты а то в саранче не выполняло большой запрос "Ошибка ввода/ввывода при отправке бэкенду" - -Для создания нового пользователя выполнить: - sudo -u postgres psql - CREATE ROLE zholak LOGIN ENCRYPTED PASSWORD 'md5c0029083b93a3b16207a83b45e8a324a' NOSUPERUSER INHERIT NOCREATEDB NOCREATEROLE REPLICATION; - -Для подключения к определённой базе данных выполнить команду: - sudo -u postgres psql - \list or \l: для отображения всех баз - \connect zholak zholak - \dt для отображения всех таблиц - -или написать со своим IP: host all all 2.133.238.240/24 trust -Для подключения с любых IP адресов в "sudo mcedit /etc/postgresql/16/main/pg_hba.conf" прописать: - host all all 0.0.0.0/0 md5 - Либо с одного конкретного то: host all all 92.46.48.37/24 md5 -А также поменять на listen_addresses = '*' в postgresql.conf -Потом перезагрузить postgres: - sudo service postgresql restart - sudo /etc/init.d/postgresql stop - sudo /etc/init.d/postgresql restart - sudo /etc/init.d/postgresql start -Проверить запущен или нет то: - sudo /etc/init.d/postgresql status -Посмотрель лог загрузки PostGreSQL: - dmesg |grep pg -Чтобы посмотреть чем занят порт выполнить команду: - sudo netstat -tap | grep 5432 - -Создать Backup (при переносе со старой на новую версию может быть не совместим для этого нужно делать бакам в текстовом формате: plain): - pg_dump bigfoott_shop>/home/igor/bigfoott_shop.sql --host=127.0.0.1 --username=bigfoott_root - pg_dump ASDC_Locust>/home/igor/ASDC_Locust.sql --host=127.0.0.1 --username=postgres - pg_dump zholak>/home/zholak/zholak.sql --host=127.0.0.1 --username=postgres - pg_dump stations>/home/administrator/pg_dump.sql --host=127.0.0.1 --username=postgres --format=custom - pg_dump transit>/home/administrator/transit.sql --host=127.0.0.1 --username=postgres - pg_dump weather>weather.backup --host=127.0.0.1 --username=postgres --format=custom - pg_dump transit>transit.backup --host=127.0.0.1 --username=postgres --format=custom - pg_dump weather_ru>weather_ru.backup --host=127.0.0.1 --username=postgres --format=custom - pg_dump -d CCALM -h 192.168.0.161 -U postgres -f O:\dumps\CCALM.sql - pg_dump --dbname=postgresql://postgres:PostPas1key@127.0.0.1:5432/ShopMaster | gzip > /mnt/disk1/backup/$(date +%Y-%m-%d).ShopMaster.gz - -Востановить Dump из текстового файла: - psql ASDC_Locust < /home/igor/ASDC_Locustfcron.backup - psql -h 127.0.0.1 -U bigfoott_root -d bigfoott_shop_old2 < E:\dumps\bigfoottrade\dump.sql - psql -h 127.0.0.1 -U postgres -d monitoring < /home/igor/pg_dump.sql - psql -h 127.0.0.1 -U postgres -d transit_2024 < /home/administrator/transit.sql - psql -h 127.0.0.1 -U postgres -d bigfoot_shop < /home/igor/goods.sql - -Создание SH скрипта для ежедневного бакапирования и архивации в ZIP файл: - /mnt/O_DRIVE/MyDocuments/DataBases/dumps/run.sh - #!/bin/sh - pg_dump --dbname=postgresql://postgres:A6dCgeDDWHbC@127.0.0.1:5432/Queue | gzip > /mnt/disk1/backup/$(date +%Y-%m-%d).Queue.gz - -Для востановления через pg_restore (версии баз должны совпадать а то может не восстановиться): - su - postgres - pg_restore -U -d -1 .dump - pg_restore -U postgres -d zholak -1 /home/zholak/zholak_16.01.2019.backup - pg_restore -U postgres -d monitoring -1 /home/igor/stations_20200626.backup - pg_restore -U postgres -d transit_new -1 /home/administrator/temp/transit.backup - pg_restore -U postgres -d transit -1 /home/administrator/transit.backup - pg_restore --host=127.0.0.1 --username=postgres --dbname=transit_2024 --verbose /home/administrator/transit.backup - - sudo -u postgres psql -d transit -f /tmp/transit.backup - -Или из архива (первоначально задать trust на 127.0.0.1) так: - gunzip -c /var/www/dump.sql.gz | psql -h 127.0.0.1 -U bigfoott_root -d bigfoott_shop - -**************************************************************************************************** -Настройка отображения статистики для PostgreSQL: - https://habr.com/ru/articles/488968/ - - SELECT * FROM pg_stat_statements ORDER BY total_exec_time DESC; - SELECT * FROM pg_stat_activity - SELECT * FROM pg_stat_replication - SELECT * FROM pg_stat_all_tables - -Полный список: https://postgrespro.ru/docs/postgrespro/9.5/monitoring-stats - -Установить Prometheus сграфаной Grafana для PostgreSQL там по умолчанию есть набор настроек для сбора статистики с PostgreSQL - По мотивам: https://grafana.com/oss/prometheus/exporters/postgres-exporter/ - По мотивам: https://www.youtube.com/watch?v=B_yz37CR1XU -**************************************************************************************************** -Установка pgagent - sudo apt-get update - sudo apt-get install pgagent -Выполнить в консоли запрос: - psql -h localhost -U postgres - create extension pgagent; - \q -Для разрешения подключения откройте файл pg_hba.conf и замените строку на: - host all all 127.0.0.1/32 md5 - -Можно для теста запустить pgagent с повышенным уровнем логирования: - /usr/bin/pgagent -f -l 2 hostaddr=127.0.0.1 dbname=postgres user=postgres password=lelPfAtgQWhHYfy1SsHk - -Если файла нет то пытаюсь его создать: - sudo mcedit /lib/systemd/system/pgagent.service - -[Unit] -Description=PostgreSQL PgAgent Service -After=network.target - -[Service] -Type=simple -User=postgres -ExecStart=/usr/bin/pgagent -f hostaddr=127.0.0.1 dbname=postgres user=postgres password=PasSecrKey1 - -[Install] -WantedBy=multi-user.target - -Проверяю что сервис был запущен: - sudo systemctl daemon-reload - sudo systemctl enable pgagent - sudo service pgagent start - sudo systemctl status pgagent - - -Для проверки пробуем подключиться к базе данных - sudo -u postgres psql -h 127.0.0.1 -U postgres -d postgres - \q - -Похоже что нужно ещё создать файл паролей так как агент не знает как подключаться: - sudo -u postgres touch /var/lib/postgresql/.pgpass - sudo -u postgres chmod 600 /var/lib/postgresql/.pgpass - sudo -u postgres mcedit /var/lib/postgresql/.pgpass -И прописать в него: - 127.0.0.1:5432:postgres:postgres:PasSecrKey1 -Где используется такой формат: hostname:port:database:username:password -Затем: - sudo systemctl enable pgagent - sudo service pgagent start - sudo service pgagent status -Посмотреть логи: - sudo journalctl -u pgagent - -**************************************************************************************************** -Для добавления автоматического бакапирования Postgresql базы *.backup создать скрипт: - - -**************************************************************************************************** -Перенос базы PostgreSQL на другой диск: https://internet-lab.ru/postgresql_ubuntu_move - -**************************************************************************************************** -Установка PostGIS на PostgreSQL выше 9.0 версии: - sudo apt-get install postgis postgresql-9.3-postgis-2.1 -Для 10й версии: - sudo apt install postgresql-10-postgis-2.4 - sudo apt install postgresql-10-postgis-scripts -Для 12й версии: - sudo apt install postgresql-12-postgis-2.4 - -Создать базу данных и выполнть на ней следующие команды: - -- Enable PostGIS (includes raster) - CREATE EXTENSION postgis; - -- Enable Topology - CREATE EXTENSION postgis_topology; - -- fuzzy matching needed for Tiger - CREATE EXTENSION fuzzystrmatch; - -- rule based standardizer - CREATE EXTENSION address_standardizer; - -- example rule data set - CREATE EXTENSION address_standardizer_data_us; - -- Enable US Tiger Geocoder - CREATE EXTENSION postgis_tiger_geocoder; - -У меня начало выдавать NOTICE: version "2.2.1" of extension "postgis_topology" is already installed и PostGIS перестал работать на моём PostgreSQL 9.5.17 -Аказывается расширение кудато делось установил: - sudo apt-get install postgresql-9.5-postgis-2.2 -**************************************************************************************************** -Для добавления TOTP авторизации в Postgresql выполнить: - CREATE EXTENSION otp; - - -**************************************************************************************************** - sudo apt-get install libpq-dev libpq-fe -Если есть несовместимость libpq-dev : Зависит: libpq5 (= 14.3-0ubuntu0.22.04.1) но 14.3-1.pgdg22.04+1 должен быть установлен - То удали ранее добавленный репозиторий: /etc/apt/sources.list.d/pgadmin4.list и обнови а потом попробуй установить заново libpq-dev - apt update -**************************************************************************************************** -Установка phpPgAdmin через репозиторий: -sudo apt-get install phppgadmin -Можно открыть так: http://localhost/phppgadmin -Для доступа с любых ip адресов в файле: /etc/phppgadmin/apache.conf изменить на allow from all -Чтоб можно было залогинется под пользователем postgres меняем в: -/etc/phppgadmin/config.inc.php extra_login_security в false -Если phpphadmin не дает залогиниться и пишет "Неверный логин", нужно в postgresql.conf прописать $conf['servers'][0]['host'] = 'localhost'; - -Другой вариант скачать с сайта последнюю версию с "http://phppgadmin.sourceforge.net/doku.php". -**************************************************************************************************** -Установка pgAdmin4 в Linux Mint 20.04 (inxi -S) Проверить версию линукса: cat /etc/os-release у меня выдало: NAME="Linux Mint" VERSION="20.3 (Una)" - -Проверить что не записан левый репозиторий для phppgadmin в /ect/opt/ - curl https://www.pgadmin.org/static/packages_pgadmin_org.pub | sudo apt-key add - sudo sh -c 'echo "deb https://ftp.postgresql.org/pub/pgadmin/pgadmin4/apt/bionic pgadmin4 main" > /etc/apt/sources.list.d/pgadmin4.list && apt update' - sudo apt install pgadmin4 - -И не запустился сервер оболочка пытается стартануть а сервер нет... - - sudo curl https://www.pgadmin.org/static/packages_pgadmin_org.pub | sudo apt-key add - sudo sh -c 'echo "deb https://ftp.postgresql.org/pub/pgadmin/pgadmin4/apt/focal pgadmin4 main" > /etc/apt/sources.list.d/pgadmin4.list && apt update' - sudo apt install pgadmin4 - -Тоже не заработал - -Попробовать так: https://www.tecmint.com/install-postgresql-with-pgadmin4-on-linux-mint/ - -**************************************************************************************************** -Балансировщик назрузки и потоковая репликация: -Pgpool-II https://www.youtube.com/watch?v=qpxKlH7DBjU сервер с высокой доступностью -https://ritorika.com.ua/dokument/6/pgpool-chto-jeto -**************************************************************************************************** -Мониторинг запросов postgresql - - **************************************************************************************************** Проверить версию OpenSSL: openssl version -v @@ -2837,186 +2565,6 @@ echo $_SERVER['REMOTE_ADDR']; Проверяем что находит IP по доменному имени nslookup dirt.kz 127.0.0.1 -**************************************************************************************************** -DynDNS на PowerDNS авторитативный сервер DNS на Ubuntu 22.04 согласно инстркции https://phoenixnap.com/kb/powerdns-ubuntu: -Можно было-бы использовать не 53 порт, но провайдер не даёт указывать порт при настройке DNS серверов (не знаю какие локальные проблемы могут возникнуть если задать не 53 порт) -Устанавливаем сам PowerDNS https://doc.powerdns.com/authoritative/installation.html - sudo apt-get install pdns-server - sudo apt-get install pdns-backend-pgsql -Подключаюсь к базе и создаю схему базу со схемой из: https://doc.powerdns.com/authoritative/backends/generic-postgresql.html -Настраиваю соединение с базой данных в: - sudo mcedit /etc/powerdns/pdns.d/pdns.local.gpgsql.conf -Со следующим содержимым: - launch+=gpgsql - # gmysql parameters - gpgsql-host=127.0.0.1 - gpgsql-port=5432 - gpgsql-dbname=powerdns - gpgsql-user=powerdns - gpgsql-password=y7HMHi0ATxx1VC3UU5WG - gpgsql-dnssec=no -Задаю права доступа к файлу: - sudo chown pdns: /etc/powerdns/pdns.d/pdns.local.gpgsql.conf - sudo chmod 640 /etc/powerdns/pdns.d/pdns.local.gpgsql.conf -На всякий случай делаю резервные копии исходных файлов настрое: - cd /etc/powerdns - sudo cp named.conf named.conf.bak - sudo cp pdns.conf pdns.conf.bak -Наспройку файла pdns.conf авторитетный сервер, есть такой пример который следует изучить: https://raw.githubusercontent.com/trinv/PowerDNS/a56b9122f4a2de9c1f789009f09b9831f74d8bf1/pdns.template.master.conf (естественно без 1й табуляции): - #allow-recursion=0.0.0.0/0 не включил так как не предполагаю использоват как рккурсивный DNS - webserver=yes - webserver-address=0.0.0.0 #Если 0.0.0.0 то слушаем все имеющиеся - webserver-allow-from=5.76.254.182 #если из любой сети то так: ::/0, 0.0.0.0/0 но я поставил только домашний - webserver-port=8090 - -Перезагружаем и пытаемся открыть - sudo systemctl stop pdns.service - http://77.240.38.137:8090 -Проверяю соединение к базе перезапустив PowerDNS: - sudo systemctl stop pdns.service - sudo pdns_server --daemon=no --guardian=no --loglevel=9 -Если всё норм выполняем: - sudo systemctl restart pdns - sudo systemctl enable pdns - sudo systemctl status pdns -Проверяем что порт 53 открыт для DNS: - sudo ss -alnp4 | grep pdns -Проверяем отправляя запрос к dns серверу - dig @127.0.0.1 google.com - ping google.com -проверяем кто слушает на порту 53 - sudo netstat -tulnp | grep :53 - -Для примера авторитетный для домена example.com то в базе данных должны быть такие настройки: - - - - -********** рекурсивный DNS от PowerDNS, тоже 53 порт и будет конфликт, поэтому на одном IP можно настроить PowerDNS чтобы он выполнял функцию рекурсивного резольвера ********** -Чтобы работал резольвер от PowerDNS а не тот который от ubuntu: - sudo apt-get install pdns-recursor -y - sudo mcedit /etc/powerdns/recursor.conf -И там прописать: - forward-zones=.=8.8.8.8;8.8.4.4 -Также нужно настроить sudo mcedit /etc/resolv.conf и прописать туда (так как файл символическая ссылка то сервис systemd-resolved нужно остановить иначе он его перезапишет) это чтобы программы перенаправляли запросы поднятому резольверу: - nameserver 127.0.0.1 -Чтобы запросы переходили на pdns-recursor -Затем перезагружаем: - sudo systemctl restart pdns-recursor -Проверяем что преобразование DNS нормально работает: - dig @127.0.0.1 google.com - -********** Отключаю systemd-resolved иначе он будет конфликтовать с PowerDNS ********** -Редактирую /etc/netplan/ для того чтобы прописать поднятый DNS сервер на 127.0.0.1 (не знаю сработает ли так как отключу systemd-resolved) - sudo netplan apply -Смотрим что сгенерировалось автоматически в resolv.conf после модификации файла - cat /etc/resolv.conf - -Проверяем что интернет не перестал работать: - ping changelogs.ubuntu.com -Может быть что команда выше пытается по IP6 работать тогда попробовать по - ping -4 changelogs.ubuntu.com -Либо так: - ping6 changelogs.ubuntu.com -Взглянем на текущие DNS сервера, у меня такое выдало: DNS Servers: 195.210.46.195 195.210.46.132 на команду ниже: - resolvectl status -Отредактировал файл /etc/systemd/resolved.conf заменив nameservers на 8.8.8.8 и 8.8.4.4 -Проверяем структуру файла командой: sudo yamllint /etc/netplan/50-cloud-init.yaml -Применяем настройки: - sudo netplan apply -Проверяем что настройки изменились: - resolvectl status -Изменил /etc/systemd/resolved.conf настроив так: - [Resolve] - DNS=8.8.8.8 8.8.4.4 - FallbackDNS=1.1.1.1 1.0.0.1 -Потом перезагрузил: - sudo systemctl restart systemd-resolved - -Проверяем что заняло порт 53 командой: - sudo lsof -i :53 -Выдало: - COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME - systemd-r 670 systemd-resolve 13u IPv4 20070 0t0 UDP localhost:domain - systemd-r 670 systemd-resolve 14u IPv4 20071 0t0 TCP localhost:domain (LISTEN) -Останавливаем systemd-resolved (поисковик IP по домену по умолчанию от Ubuntu) - sudo systemctl stop systemd-resolved - sudo systemctl disable systemd-resolved - - - -********** PowerAdmin ********** -Устанавливаю PowerAdmin согласно: https://phoenixnap.com/kb/powerdns-ubuntu#ftoc-heading-6 - sudo apt install libpq-dev - sudo apt install python3-dev - sudo apt install python3-flask - sudo apt install python3-pip - pip install flask-mail && pip install Flask-Migrate && pip install flask-session && pip install python-ldap && pip install flask-login && pip install qrcode[pil] && pip install pytimeparse && pip install dnspython && pip install flask-seasurf && pip install flask-session-captcha && pip install zxcvbn && pip install authlib && pip install pyotp && pip install flask-login && pip install lima && pip install flask-assets && pip install lima && pip install psycopg2 && pip install asyncpg - - sudo apt install -y git libmysqlclient-dev libsasl2-dev libldap2-dev libssl-dev libxml2-dev libxslt1-dev libxmlsec1-dev libffi-dev pkg-config apt-transport-https python3-venv build-essential curl - sudo apt install -y nodejs - sudo apt install -y yarn -Clone the PowerDNS Admin Git repository to /opt/web/powerdns-admin - git clone https://github.com/PowerDNS-Admin/PowerDNS-Admin.git /opt/web/powerdns-admin - cd /opt/web/powerdns-admin - python3 -mvenv ./venv - source ./venv/bin/activate - pip install --upgrade pip - pip install -r requirements.txt -Конфигугрируем PowerDNS Admin. -Для начала копирую пример конфигураци, потом открываю его в редакторе: - cp /opt/web/powerdns-admin/configs/development.py /opt/web/powerdns-admin/configs/production.py - mcedit /opt/web/powerdns-admin/configs/production.py -И редактируем следующие строки: - #import urllib.parse - SECRET_KEY = 'e951e5a1f4b94151b360f47edf596dd0' - SQLA_DB_PASSWORD = 'changeme' -Cекретный ключ можно сгенерировать при помощи такой команды: python3 -c "import os; print(os.urandom(16))" -Также настраиваю подключение к базе данных (сам строку составил): - SQLALCHEMY_DATABASE_URI = 'postgresql://powerdns:y7HMHi0ATxx1VC3UU5WG@127.0.0.1/powerdnsadmin' -Остальное коментирую: - #SQLA_DB_USER = 'powerdns' - #SQLA_DB_PASSWORD = 'y7HMHi0ATxx1VC3UU5WG' - #SQLA_DB_HOST = '127.0.0.1' - #SQLA_DB_NAME = 'powerdnsadmin' - #SQLALCHEMY_DATABASE_URI = 'postgres://{}:{}@{}/{}'.format( - # urllib.parse.quote_plus(SQLA_DB_USER), - # urllib.parse.quote_plus(SQLA_DB_PASSWORD), - # SQLA_DB_HOST, - # SQLA_DB_NAME - #) - #SQLALCHEMY_DATABASE_URI = 'sqlite:///' + os.path.join(basedir, 'pdns.db') - - - -Экспортируем переменную: - cd /opt/web/powerdns-admin - export FLASK_CONF=../configs/production.py - export FLASK_APP=powerdnsadmin/__init__.py -Upgrade the database schema: - flask db upgrade - -устанавливаем другие зависемости: - sudo apt install npm - sudo apt remove yarn - curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add - - echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list - sudo apt update - sudo apt install yarn - yarn --version - sudo yarn install --pure-lockfile - flask assets build - -Можно запускать: - ./run.py - - -Проже запустить с использованием SQLite по инструкции из: https://github.com/PowerDNS-Admin/PowerDNS-Admin/blob/master/docs/wiki/install/Running-PowerDNS-Admin-on-Ubuntu-or-Debian.md - -SALT = '$2b$12$yLUMTIfl21FKJQpTkRQXC0' -SECRET_KEY = 'e951e5a1f4b94151b360f47edf596dd0' - - **************************************************************************************************** Установка сервиса обмена сообщениями RabbitMQ – менеджер сообщений (message broker), написан на Erlang, ближайший аналог в AWS – SQS. По документации из: https://rtfm.co.ua/ru/rabbitmq-zapusk-opisanie-primery/ diff --git a/Zulip_install.md b/Zulip_install.md new file mode 100644 index 0000000..8b6c352 --- /dev/null +++ b/Zulip_install.md @@ -0,0 +1,38 @@ +Открываю нужный сервер +```sh +wsl +``` + +```sh +curl -sSX POST https://istt-kz.zulipchat.com/api/v1/fetch_api_key \ + --data-urlencode username=ivanov.i@istt.kz \ + --data-urlencode password=fsUHb3hf3QCdpBLsKyhL +``` +Выдало: +```json +{ + "result":"success", + "msg":"", + "api_key":"91kQqr13HCwFP2HeARWPHxrfksYPH82p", + "email":"ivanov.i@istt.kz", + "user_id":880555 +} +``` + +```sh +curl -X POST https://istt-kz.zulipchat.com/api/v1/messages \ + -u "ivanov.i@istt.kz:91kQqr13HCwFP2HeARWPHxrfksYPH82p" \ + -d "type=stream" \ + -d "to=general" \ + -d "topic=Тест5" \ + -d "content=Привет из консоли!" +``` + +```sh +curl -X POST https://istt-kz.zulipchat.com/api/v1/messages \ + -u "ivanov.i@istt.kz:91kQqr13HCwFP2HeARWPHxrfksYPH82p" \ + -d "type=private" \ + -d "to=ivanov.i@istt.kz" \ + -d "topic=Тест5" \ + -d "content=Привет из консоли!" +```