In dit artikel geven wij je enkele algemene tips mee voor het beheer van MySQL-clusters, met name gericht op veiligheid, maar ook om complexe problemen (e.g. split-brain) zo veel mogelijk te voorkomen. De focus in dit artikel ligt op wat de maatregelen zijn. In de toekomst zullen wij ook documentatie opnemen hoe je de tips toepast.
Algemene tips
- Wordt een VPS in je MySQL-cluster onbereikbaar, maak dan geen aanpassingen op andere VPS'en in het cluster. Zorg altijd eerst dat de onbereikbare VPS weer bereikbaar is en onderdeel is van je MySQL-cluster. Zo voorkom je dat door een menselijke fout meerdere MySQL-servers onbereikbaar worden en het herstellen van je MySQL-cluster een complexe uitdaging wordt.
- Maak regelmatig een back-up van je MySQL-databases.
- Zorg dat je MySQL-servers niet toegankelijk zijn via de publieke WAN, maar enkel over een private network. Stel dat je privacy-gevoelige data opslaat, dan voorkom je op deze manier dat de MySQL-servers zelf een direct punt vormen dat aangevallen kan worden door hackers.
- Vergeet bij de installatie van een nieuwe MySQL-server die niet te beveiligen vanuit command-line:
mysql_secure_installation
- Overweeg in de configuratie-file van je MySQL-server voor extra veiligheid de default poort 3306 te veranderen. In Linux doe je dit in je MySQL-configuratiebestand onder het kopje mysqld:
[mysqld] Port=4444
- Wijzig met regelmaat je wachtwoorden.
- Update met regelmaat je servers.
- Wees specifiek in SQL-queries: probeer * zo veel mogelijk te voorkomen in je queries en te vervangen door specifieke queries.
- Versleutel gevoelige data.
MaxScale
Hieronder volgen nog enkele specifieke tips voor het gebruik van MariaDB MaxScale. Dit is niet van toepassing op andere SQL-oplossingen.
-
Failover: MaxScale bied je de optie om wel of geen automatische failover te gebruiken bij een master-slave setup (i.e. dit is niet van toepassing bij een Galera-cluster). Zorg dat je op de hoogte bent van de gevolgen van een split-brain-situatie en kies of 100% zekere database-integriteit, óf de bereikbaarheid van je diensten belangrijker voor je is. Werk je met gevoelige data, kies dan altijd voor database-integriteit over bereikbaarheid.
-
Integriteit: Kies je voor integriteit, gebruik dan geen automatische failover, maar voer enkel handmatige failover uit. Kies je voor deze aanpak, maak dan de volgende aanpassingen in /etc/maxscale.cnf:
auto_failover=false
Voor meer informatie over MaxScale en handmatige failover, zie dit artikel. Bereikbaarheid: Kies je voor bereikbaarheid, gebruik de automatische failover mogelijkheid voor MaxScale master-slave-setups, zoals in onze tutorials beschreven wordt.
-
Integriteit: Kies je voor integriteit, gebruik dan geen automatische failover, maar voer enkel handmatige failover uit. Kies je voor deze aanpak, maak dan de volgende aanpassingen in /etc/maxscale.cnf:
Overweeg een database firewall filter te gebruiken, zie de documentatie van MariaDB.
Gebruik logging en audits, zie dit artikel. Zo heb je duidelijke inzage in queries voor bijvoorbeeld troubleshoot doeleinden.
Heb je zelf nog aanvullende tips of zoek je nog best practise tips voor specifieke aspecten van je database-cluster (e.g. voor MsSQL)? Laat het ons dan vooral weten in een reactie op dit artikel onder 'Reacties'.
Mocht je aan de hand van dit artikel nog vragen hebben, aarzel ook niet om onze supportafdeling te benaderen. Je kunt hen bereiken via de knop 'Neem contact op' onderaan deze pagina.