Home / ALL / Centreon : Migration de votre base MySQL

Centreon : Migration de votre base MySQL

Logo CentreonSi comme moi vous avez installé sur votre machine votre Centreon ainsi que vos bases MySQL et qu’aujourd’hui vous voulez séparer les deux pour un gain de performance ou tout simplement pour cloisonner votre système, je vais vous montrer la marche à suivre. La migration d’une base MySQL est plutôt simple mais peut prendre du temps en fonction de la taille de vos bases.

Pour ma part, j’ai un serveur où tourne Centreon (qui s’appelle monitoring.alexnogard.com)  disposant de 4CPU et 4GO de ram. J’ai un serveur dédié à MySQL (qui s’appelle bdd.alexnogard.com) disposant de 2CPU 8GO de ram qui sont suffisant pour charger mes tables InnoDB (6GO) en RAM.

Voici ci-dessous comment faire :

Configuration du nouveau serveur

Premièrement, nous préparons notre nouveau serveur qui accueillera nos bases :
Installation de MySQL :

# yum -y install mysql-server mysql-devel

On configure notre mysql pour qu’il se lance au démarrage & on le démarre:

# chkconfig mysqld on
# service mysqld start

On sécurise notre MySQL :

# mysql_secure_installation

secure mysql
secure mysql
secure mysql
secure mysql

Notre MySQL est maintenant sécurisé. Nous passons maintenant à la configuration. Pour optimiser au mieux notre MySQL nous effectuons un mysqltuner sur notre serveur monitoring.alexnogard.com, ou la base est pour le moment installée puis analysons le résultat :

mysqltuner
mysqltuner

On voit clairement ce qui ne va pas dans les recommandations :
– DB fragmentée
– le buffer innodb est trop peu dimentionné
– quelques autres paramêtres doivent être modifiés.

D’autres problèmes apparaissent. Je vous conseil d’aller lire Optimisation et tuning de Centreon.

Nous créons donc un fichier my.conf en relation avec les recommandations :

[mysqld] max_connections=20
low_priority_updates=1
myisam-recover=backup,force
thread_concurrency=1
concurrent_insert=2
thread_cache_size=32
max_allowed_packet=8M
key_buffer_size=128M
innodb_buffer_pool_size=6500M
innodb_additional_mem_pool_size=10M
innodb_flush_method=O_DIRECT
innodb_file_per_table = 1
interactive_timeout = 100
connect_timeout = 60
wait_timeout = 120

tmp_table_size = 300M
max_heap_table_size = 200M
join_buffer_size=32M
read_buffer_size=16M
sort_buffer_size=8M
read_rnd_buffer_size=2M
#key_buffer_size=96M
max_allowed_packet=8M
max_connect_errors=10
myisam_sort_buffer_size=64M
query_cache_limit=16M
query_cache_size=64M
query_cache_type=1
table_cache=400
table_definition_cache=450
#table_cache 100

[isamchk] key_buffer=128M
#sort_buffer=128M
#read_buffer=4M
#write_buffer=2M [myisamchk] key_buffer_size = 128M
#sort_buffer_size = 128M
#read_buffer = 4M
#write_buffer = 2M

Exportation & importation de la base

Loading...

Pour exporter la base Centreon, nous allons tout d abord stopper le service nagios ainsi que le service mysql pour être sur qu’aucune nouvelles données ne soient écrite.Puis, nous lançons la commande suivante :

# mysqldump -uroot -pPASSWORD –all-databases > alldb.sql

Puis envoyons notre dump à notre nouveau serveur SQL :

#  scp /root/alldb.sql root@bdd.alexnogard.com:/root/alldb.sql

Et pour finir, nous importons cette base sur notre nouveau serveur :

# mysql -u root -p < alldb.sql

Pour finir, pour que nous puissions attaquer notre serveur MySQL depuis notre serveur Centreon, il faut recréer l’utilisateur Centreon dans notre nouvelle DB :

# mysql -u root -pPASSWORD

> CREATE USER ‘centreon’@’monitoring.alexnogard.com’ IDENTIFIED BY PASSWORD  ‘***************’;
> GRANT USAGE ON * . * TO  ‘centreon’@’monitoring.alexnogard.com’ IDENTIFIED BY PASSWORD  ‘*****************’ WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ;
> GRANT ALL PRIVILEGES ON  centstorage . * TO  ‘centreon’@’monitoring.alexnogard.com’ WITH GRANT OPTION ;
> GRANT ALL PRIVILEGES ON  centreon . * TO  ‘centreon’@’monitoring.alexnogard.com’ WITH GRANT OPTION ;
> GRANT ALL PRIVILEGES ON  centstatus . * TO  ‘centreon’@’monitoring.alexnogard.com’ WITH GRANT OPTION ;

Modifications de Centreon

Nous modifions maintenant Centreon pour que notre ndo2db puisse envoyer les données à notre nouvelle base.

Pour se faire, aller dans “Configuration”, “Centreon”, “ndo2db.cfg”, selectionnez votre fichier de configuration puis aller dans l’onglet “Database” & modifiez simplement le “Database hoster” :

Centreon Mysql
Centreon ndo2db configuration

On redémarre notre poller, Notre monitoring utilise maintenant notre nouvelle Database.

Si vous avez des soucis à utiliser cette nouvelle base, jetez un oeil ci-dessous.

Troubleshooting

Si centreon affiche un problème de connexion SQL (icone rouge dans la toolbar en haut à droite), il faut truncate les tables de la base centstatus, attention, vous perdrez vos données historisées :

TRUNCATE nagios_comments;
TRUNCATE nagios_configfiles;
TRUNCATE nagios_configfilevariables;
TRUNCATE nagios_conninfo;
TRUNCATE nagios_contactgroups;
TRUNCATE nagios_contactgroup_members;
TRUNCATE nagios_contactnotificationmethods;
TRUNCATE nagios_contactnotifications;
TRUNCATE nagios_contacts;
TRUNCATE nagios_contactstatus;
TRUNCATE nagios_contact_addresses;
TRUNCATE nagios_contact_notificationcommands;
TRUNCATE nagios_customvariables;
TRUNCATE nagios_customvariablestatus;
TRUNCATE nagios_dbversion;
TRUNCATE nagios_downtimehistory;
TRUNCATE nagios_eventhandlers;
TRUNCATE nagios_externalcommands;
TRUNCATE nagios_flappinghistory;
TRUNCATE nagios_hostchecks;
TRUNCATE nagios_hostdependencies;
TRUNCATE nagios_hostescalations;
TRUNCATE nagios_hostescalation_contactgroups;
TRUNCATE nagios_hostescalation_contacts;
TRUNCATE nagios_hostgroups;
TRUNCATE nagios_hostgroup_members;
TRUNCATE nagios_hosts;
TRUNCATE nagios_hoststatus;
TRUNCATE nagios_host_contactgroups;
TRUNCATE nagios_host_contacts;
TRUNCATE nagios_host_parenthosts;
TRUNCATE nagios_instances;
TRUNCATE nagios_logentries;
TRUNCATE nagios_notifications;
TRUNCATE nagios_objects;
TRUNCATE nagios_processevents;
TRUNCATE nagios_programstatus;
TRUNCATE nagios_runtimevariables;
TRUNCATE nagios_scheduleddowntime;
TRUNCATE nagios_servicechecks;
TRUNCATE nagios_servicedependencies;
TRUNCATE nagios_serviceescalations;
TRUNCATE nagios_serviceescalation_contactgroups;
TRUNCATE nagios_serviceescalation_contacts;
TRUNCATE nagios_servicegroups;
TRUNCATE nagios_servicegroup_members;
TRUNCATE nagios_services;
TRUNCATE nagios_servicestatus;
TRUNCATE nagios_service_contactgroups;
TRUNCATE nagios_service_contacts;
TRUNCATE nagios_statehistory;
TRUNCATE nagios_systemcommands;
TRUNCATE nagios_timedeventqueue;
TRUNCATE nagios_timedevents;
TRUNCATE nagios_timeperiods;
TRUNCATE nagios_timeperiod_timeranges;

Pour toutes questions & ou remarques, n’hésitez pas à commenter ;)

Et si cette article vous a plu, n’hésitez pas à partager :).

Loading...

About Alexandre Nogard

Check Also

Centreon : Supervision de leases DHCP avec Infoblox

Utilisant la solution de DHCP infoblox depuis maintenant 2 ans. J’ai “développé” un petit script …

ISPConfig 3 : Virtualisation & Management avec OpenVZ

Après les deux précédents articles sur ISPConfig 3 : Installation d’ISPconfig 3 sur CentOs 6.4 …

ISPConfig 3 : Installation de packages supplémentaires

Dans l’article de la semaine dernière : Installation d’ISPconfig 3 sur CentOs 6.4 (Apache & …

Leave a Reply

Your email address will not be published. Required fields are marked *