Как стать автором
Обновить

Комментарии 16

может, конечно, придираюсь, но разрисовали бы что-ли архетектуру кластера, логику работы.
красота!
То что нужно?
на мой субъективный взгляд — да. просто помню когда только начинал разбираться с темой, не всегда легко было представить по конфигам систему и движение трафика, особенно в случае отказа нодов или когда ноды начинают «дёргаться». всега пригодится иметь схему перед глазами.
Обращайтесь если будет дополнительные вопросы
Так у вас что же, репликация master-master на mysql нодах?

Но тогда же данные которые пишутся на один сервер — будут размножаться в четыре раза.
И, если я правильно понимаю про синхронную репликацию — пока на все ноды транзакция не накатилась, она не считается записанной в базу данных.

С-нно по этой схеме плюс один сервер = дополнительный прогон данных по сети.
Т.о. у вас получилась то же вертикальное расширение, но в другом масштабе.
Это multi-master
Сеть не является узким местом в таких системах, зато чтение происходит с разных нод перконы и чем их больше тем быстрее чтение, запись медленнее чем в одиночном варианте mysql но есть failover
по сути, это raid1 мира баз данных
>> zabbix ALL=(ALL) NOPASSWD: ALL
это еще что за жесть?
Поверьте, это так надо))
Для мониторинга базы — не надо
Не самое безопасное решение, но работает
поторопился с первым каментом, напишу более развернуто. я протестую против ALL в конце,
я бы сделал так «zabbix ALL=(root) NOPASSWD: /usr/bin/socat»
а то ваш вариант приравнивает аккаунт zabbix'а почти к руту.

вот тоже неплохой пример если уже есть определенная политика в отношении sudo для других пользователей

Cmnd_Alias ZABBIX = /bin/cmd1, /sbin/cmd2, /usr/sbin/cmd3
zabbix ALL=(root) NOPASSWD: ZABBIX
в принципе можно просто chmod-ом настроить права для необходимого софта (в данном случае socat)
Все так, но у нас забиск использует не только этот скрипт и много специфичного софта в системе, можно конечно перечислить в sudoer все, но в данном контексте это не нужно
Не указан код clustercheck github.com/olafz/percona-clustercheck (желательно указать явно exit 0 в конце скрипта)
Устаревший xinetd можно заменить systemd сокетом

/etc/systemd/system/mysqlchk.socket
[Unit]
Description=Galera cluster monitoring for HAProxy

[Socket]
ListenStream=50005
TimeoutSec=30s
Accept=yes

[Install]
WantedBy=sockets.target

/etc/systemd/system/mysqlchk@.service
[Unit]
Description=Galera cluster monitoring for HAProxy
Requires=mysqlchk.socket
After=network.target

[Service]
Type=simple
User=zabbix
Group=zabbix
ExecStart=/usr/bin/clustercheck
StandardInput=socket
StandardOutput=socket
StandardError=journal
TimeoutStopSec=5

[Install]
WantedBy=multi-user.target
Зарегистрируйтесь на Хабре , чтобы оставить комментарий