Рубрики
cluster

zabbix HA / ubuntu 20.04 / ha / cluster / pacemaker / mysql / ovs / galera / arbitr

Ссылки:

zabbix:
Конспект: zabbix
https://www.zabbix.com/ru/download?zabbix=5.4&os_distribution=ubuntu&os_version=20.04_focal&db=mysql&ws=apache https://www.zabbix.com/ru/download?zabbix=5.4&os_distribution=debian&os_version=11_bullseye&db=mysql&ws=apache https://habr.com/ru/post/485538/ https://medium.com/@r.szulist/zabbix-6-0-native-high-availability-c3d98e2d3d92 https://blog.zabbix.com/zabbix-ha-cluster-setups/8264/ https://medium.com/@daian.m/multi-site-high-availability-with-automatic-failover-for-zabbix-server-and-proxy-f65f4179a9d2 https://habr.com/ru/post/536194/ pacemaker: https://clusterlabs.org https://xakep.ru/2019/01/24/corosync-pacemaker/ https://docs.microsoft.com/ru-ru/sql/linux/sql-server-linux-availability-group-cluster-ubuntu?view=sql-server-ver15 https://clusterlabs.org/pacemaker/doc/deprecated/en-US/Pacemaker/1.1/html/Clusters_from_Scratch/ https://clusterlabs.org/pacemaker/doc/crm_fencing.html https://fibex.su/corosync-pacemaker https://habr.com/ru/post/319550/ https://habr.com/ru/company/postgrespro/blog/359230/ https://xakep.ru/2019/01/24/corosync-pacemaker/ https://server-fault.ru/questions/222987/pacemaker-resurs-peremeschenija-ogranichenija-razmeschenija https://www.b-blog.info/ru/ustanavlivaem-klaster-zabbix-v-azure-na-centos.html https://clusterlabs.org/pacemaker/doc/deprecated/en-US/Pacemaker/1.1/html/Clusters_from_Scratch/_move_resources_manually.html https://habr.com/ru/post/200348/ https://server-fault.ru/questions/187581/oshibka-sostojanija-pk-httpd_monitor_5000-na-servere-ne-vypolnenie-7 mysql/galera: https://system-admins.ru/ustanovka-mariadb-galera-dlya-upravleniya-klasterom-replikacii/ https://www.digitalocean.com/community/tutorials/how-to-configure-a-galera-cluster-with-mysql-on-ubuntu-18-04-servers-ru https://tokmakov.msk.ru/blog/item/600
Настройка отказоустойчивого кластера MySQL с синхронной мульти-master репликацией с помощью Galera в Ubuntu, Debian и CentOS Linux
zabbix.MIBS
Установка MIB в Ubuntu и решение ошибки «SNMP Cannot Find Module …»

Задачи:

0. Определить количество нод в кластере.
Минимальное количество нод в кластере три.
Возможен вариант две полноценные ноды и один арбитр.
Для правильной работы кворума необходимо не четное количество нод.

1. Настроить pacemaker.
Собрать кластер.
Настроить IP для кластера.
Настроить STONITH / ip должен приезжать туда где у нас работает clusterip/apache/mariadb/zabbix

2. Настроить mariadb galera

3. Если у нас всего две ноды,  настроить арбитр для pacemaker и galera.  

Собираем кластер

0. Ставим пакеты для управления кластером:
apt-get install pacemaker pcs fence-agents resource-agents

1. Нужно задать пароль для Pacemaker и Corosync. 
!!!Используйте на всех узлах один и тот же пароль.
passwd hacluster

2. Включение и запуск службы pcsd и Pacemaker
systemctl enable pcsd
systemctl start pcsd
systemctl enable pacemaker

3. Очищаем конфигурацию по умолчанию 
pcs cluster destroy 
systemctl enable pacemaker


4. создаем кластер 
sudo pcs host auth    -u hacluster -p 
sudo pcs cluster setup    
sudo pcs cluster start --all
sudo pcs cluster enable --all

STONITH

Временно отключен STONITH
Ограждение на уровне ресурсов гарантирует отсутствие повреждений данных в случае сбоя за счет настройки ресурса.
pcs property set stonith-enabled=false

Задание свойства кластера cluster-recheck-interval

cluster-recheck-interval указывает интервал опроса, с которым кластер проверяет наличие изменений в параметрах ресурсов, ограничениях или других параметрах кластера. 
Если реплика выходит из строя, кластер пытается перезапустить ее с интервалом, который связан со значениями failure-timeout и cluster-recheck-interval. 
Например, если для failure-timeout установлено значение 60 с, а для cluster-recheck-interval — 120 с, то повторная попытка перезапуска предпринимается с интервалом, который больше 60 с, но меньше 120 с. 
Рекомендуем установить для failure-timeout значение, равное 60 с, а для cluster-recheck-interval значение больше 60 с. 
Задавать для cluster-recheck-interval небольшое значение не рекомендуется.


pcs property set cluster-recheck-interval=2min

pcs property set start-failure-is-fatal=true

pcs resource update ag1 meta failure-timeout=60s

CLUSTER_IP на виртуальной сетевушке:

0. На нодах установлен и живет openswitch
ovs-vsctl add-br ovsbr0
####ovs-vsctl add-bond ovsbr0 bond0 eth1 eth2 lacp=active  - добавляем в свитч с именем ovsbr0 интерфейс bond0 
####ovs-vsctl add-port ovsbr0 eno1 - добавляем в свитч с именем ovsbr0 интерфейс eno0

1. Создаем виртуальную сетевушку:
ovs-vsctl add-port ovsbr0 clusterip
ovs-vsctl set interface clusterip type=internal
ovs-vsctl set port clusterip tag=4081

2. Редактируем настройки сети на всех нодах в кластере:
/etc/network/interfaces
auto clusterip
iface clusterip inet manual


3. Добавим ресурс "ocf:heartbeat:IPaddr2" с именем  "CLUSTER_IP"   привяжем к сетевушке "clusterip"
Печально но нада отключить стонис
pcs property set stonith-enabled=false

Добавил ресурс ip
pcs resource create cluster_vip ocf:heartbeat:IPaddr2 ip="4.1.7.2" cidr_netmask="25" nic="clusterip" op monitor interval=5s

Запретили ресурс cluster_vip запускать на zbxhaa.comfortel.pro
pcs constraint location cluster_vip avoids zbxhaa.comfortel.pro=INFINITY

Добавил ресурс zabbix
pcs resource create zabbix_server systemd:zabbix-server op monitor interval=10s

Разрешил загружать ресурс ip вместе zabbix_server
pcs constraint colocation add zabbix_server with cluster_vip INFINITY

Запускать ip потом zabbix
pcs constraint order cluster_vip then zabbix_server

Запрещаем также на арбитре zbxhaa.comfortel.pro запуск ресурса zabbix_server
pcs constraint location zabbix_server avoids zbxhaa.comfortel.pro=INFINITY

Смотрим состояние кластера:
pcs status

Смотрим полный конфиг  увидем запреты
pcs config show


На нодах отключили автозагрузку, теперь загрузкой zabbix занимается pacemaker
systemctl disable zabbix-server.service
systemctl status zabbix-server.service

Если требуется переместить ресурсы на ноду zbxha1.comfortel.pro
pcs resource move cluster_vip zbxha1.comfortel.pro






# Говорим, что предпочитаемый сервер - "zabbixserver1"
pcs constraint location cluster_vip prefers zabbixserver1
pcs constraint location zabbix_server prefers zabbixserver1

Установка MariaDB Galera

Преимущества кластера Galera
True Multi-master. 
Чтение и запись на любой узел в любое время.
Синхронная репликация. 
Отсутствует ведомое устройство, данные не теряются при сбое узла.
Tightly Coupled. 
Все узлы имеют одинаковое состояние.
Нет разнесенных данных между разрешенными узлами.
Многопоточный Slave. 
Для лучшей производительности. 
Для любой рабочей нагрузки.
Нет операций переключения мастер-слэйва или использования VIP.
Горячий режим ожидания. 
Отсутствие простоев при переходе на другой ресурс (так как нет перехода на другой ресурс).
Автоматическое создание узлов. 
Не нужно вручную создавать резервную копию базы данных и копировать ее на новый узел.
Поддерживает InnoDB.
Прозрачный для приложений. 
Требуется минимальные изменения в приложении или вообще не трубует изменений.
Нет необходимости разделения чтения и записи.
Результатом этого является решение высокой доступности, которое является одновременно надежным с точки зрения целостности данных и высокой производительности с отказоустойчивостью.