Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente Prochaine révision Les deux révisions suivantes | ||
tuto:monitoring:installer_le_serveur_zabbix_sur_centos [24/05/2012 14:25] dani [Création d'une base de donnée] |
tuto:monitoring:installer_le_serveur_zabbix_sur_centos [04/12/2013 13:10] dani [SELinux] |
||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
- | ====== Installation d'un serveur CentOS ====== | + | ====== Installation d'un serveur |
- | Suivre | + | |
+ | Cette page est une prise de notes pour l' | ||
====== Installation de Zabbix ====== | ====== Installation de Zabbix ====== | ||
< | < | ||
- | yum --enablerepo=rpmforge | + | yum --enablerepo=fws install zabbix-server-mysql zabbix-agent |
+ | | ||
+ | | ||
</ | </ | ||
- | NOTE: le --exclude=*i386 est seulement valable si le serveur est en 64bits | ||
- | |||
- | Pour CentOS 6 et Zabbix 2: | ||
- | |||
- | <code bash> | ||
- | yum --enablerepo=fws-testing install zabbix-server-mysql zabbix-web-mysql php-mysql mod_ssl mysql-server | ||
- | </ | ||
====== Configuration mysql ====== | ====== Configuration mysql ====== | ||
Ligne 25: | Ligne 21: | ||
===== Configuration my.cnf ===== | ===== Configuration my.cnf ===== | ||
+ | |||
Et y placer les lignes suivantes (à ajuster en fonction des performances du serveur) | Et y placer les lignes suivantes (à ajuster en fonction des performances du serveur) | ||
+ | |||
+ | |||
< | < | ||
[mysqld] | [mysqld] | ||
Ligne 35: | Ligne 34: | ||
innodb_data_file_path = ibdata1: | innodb_data_file_path = ibdata1: | ||
innodb_log_group_home_dir = / | innodb_log_group_home_dir = / | ||
- | innodb_log_arch_dir = / | + | innodb_buffer_pool_size = 1G |
- | innodb_buffer_pool_size = 256M | + | |
innodb_additional_mem_pool_size = 128M | innodb_additional_mem_pool_size = 128M | ||
- | innodb_log_file_size = 64M | + | innodb_log_file_size = 300M |
innodb_log_buffer_size = 8M | innodb_log_buffer_size = 8M | ||
innodb_flush_log_at_trx_commit = 2 | innodb_flush_log_at_trx_commit = 2 | ||
Ligne 64: | Ligne 62: | ||
skip-external-locking | skip-external-locking | ||
key_buffer_size = 128M | key_buffer_size = 128M | ||
- | thread_stack = 128K | + | thread_stack = 256K |
thread_cache_size = 4 | thread_cache_size = 4 | ||
tmp_table_size=256M | tmp_table_size=256M | ||
Ligne 72: | Ligne 70: | ||
query_cache_type = 1 | query_cache_type = 1 | ||
#skip-bdb | #skip-bdb | ||
- | |||
[mysqldump] | [mysqldump] | ||
Ligne 86: | Ligne 83: | ||
===== Définition d'un mot de passe root ===== | ===== Définition d'un mot de passe root ===== | ||
+ | |||
< | < | ||
- | / | + | / |
+ | / | ||
chmod 600 ~/.my.pw | chmod 600 ~/.my.pw | ||
/ | / | ||
- | echo ' | + | echo ' |
- | echo " | + | echo " |
</ | </ | ||
===== Création d'une base de donnée ===== | ===== Création d'une base de donnée ===== | ||
+ | |||
< | < | ||
- | / | + | / |
chmod 600 / | chmod 600 / | ||
mysql -e ' | mysql -e ' | ||
mysql -e "grant all privileges on zabbixdb.* to ' | mysql -e "grant all privileges on zabbixdb.* to ' | ||
mysql -e 'flush privileges' | mysql -e 'flush privileges' | ||
+ | mysql zabbixdb </ | ||
+ | mysql zabbixdb </ | ||
+ | mysql zabbixdb </ | ||
</ | </ | ||
Ligne 156: | Ligne 159: | ||
==== Mise en place des scripts ==== | ==== Mise en place des scripts ==== | ||
+ | |||
+ | fping (utilisé par zabbix pour les vérifications ICMP) nécessite des droit élevés. Plutôt que de mettre les binaires fping en SUID, on crée des " | ||
+ | |||
< | < | ||
mkdir -p / | mkdir -p / | ||
Ligne 178: | Ligne 184: | ||
==== Droits sudoers ==== | ==== Droits sudoers ==== | ||
+ | |||
+ | |||
< | < | ||
visudo | visudo | ||
</ | </ | ||
+ | |||
+ | |||
Puis ajouter les lignes suivantes: | Puis ajouter les lignes suivantes: | ||
+ | |||
+ | |||
< | < | ||
Cmnd_Alias | Cmnd_Alias | ||
+ | Defaults: | ||
+ | Defaults: | ||
zabbix | zabbix | ||
- | </ | ||
- | Et commentez la ligne suivante: | ||
- | < | ||
- | Defaults requiretty | ||
</ | </ | ||
Ligne 195: | Ligne 205: | ||
Zabbix intègre une fonction de notification via XMPP, mais cette fonction ne supporte pas d'auth sécurisée TLS. Nous alons donc créer un nouveau media: | Zabbix intègre une fonction de notification via XMPP, mais cette fonction ne supporte pas d'auth sécurisée TLS. Nous alons donc créer un nouveau media: | ||
- | |||
< | < | ||
yum --enablerepo=fws install sendxmpp perl-IO-Socket-SSL | yum --enablerepo=fws install sendxmpp perl-IO-Socket-SSL | ||
</ | </ | ||
- | |||
< | < | ||
Ligne 227: | Ligne 235: | ||
</ | </ | ||
- | + | Maintenant il ne reste plus qu'à créer le fichier / | |
- | Maintenant il ne reste plus qu'à créer le fichier / | + | |
< | < | ||
vim / | vim / | ||
</ | </ | ||
- | |||
La syntaxe est la suivante: | La syntaxe est la suivante: | ||
- | |||
< | < | ||
zabbix@domain.tld password | zabbix@domain.tld password | ||
</ | </ | ||
- | |||
Il faut maintenant réduire les permissions sur ce fichier qui ne doit être accessible que pour l' | Il faut maintenant réduire les permissions sur ce fichier qui ne doit être accessible que pour l' | ||
- | |||
< | < | ||
Ligne 254: | Ligne 256: | ||
On peut maintenant rajouter le nouveau media, soit via l' | On peut maintenant rajouter le nouveau media, soit via l' | ||
- | |||
< | < | ||
Ligne 280: | Ligne 281: | ||
</ | </ | ||
+ | ==== SELinux ==== | ||
+ | |||
+ | |||
+ | Sous CentOS 6, la politique SELinux par défaut va empêcher Zabbix d' | ||
+ | |||
+ | |||
+ | < | ||
+ | cat <<' | ||
+ | module zabbix 1.0; | ||
+ | |||
+ | require { | ||
+ | type var_lib_t; | ||
+ | type ping_t; | ||
+ | type initrc_t; | ||
+ | type unlabeled_t; | ||
+ | class file { read getattr }; | ||
+ | class sem { unix_read unix_write associate destroy }; | ||
+ | class shm { unix_read unix_write associate destroy }; | ||
+ | class tcp_socket { create getattr accept shutdown read }; | ||
+ | class netlink_route_socket { create bind }; | ||
+ | } | ||
+ | |||
+ | # | ||
+ | allow ping_t var_lib_t: | ||
+ | allow initrc_t unlabeled_t: | ||
+ | allow initrc_t unlabeled_t: | ||
+ | allow unlabeled_t self: | ||
+ | allow unlabeled_t self: | ||
+ | EOF | ||
+ | checkmodule -M -m -o zabbix.mod zabbix.te | ||
+ | semodule_package -o zabbix.pp -m zabbix.mod | ||
+ | semodule -i zabbix.pp | ||
+ | </ | ||
+ | |||
+ | |||
+ | Il faut aussi activer un booléen SELinux: | ||
+ | |||
+ | |||
+ | < | ||
+ | setsebool -P domain_kernel_load_modules=on | ||
+ | </ | ||
==== Agent ==== | ==== Agent ==== | ||
Sauvegarde de la config par défaut: | Sauvegarde de la config par défaut: | ||
Ligne 300: | Ligne 342: | ||
LogFileSize=0 | LogFileSize=0 | ||
Timeout=6 | Timeout=6 | ||
- | UserParameter=cpu.number, | ||
- | UserParameter=vm.memory.size.used, | ||
- | UserParameter=vm.memory.size.pused, | ||
- | UserParameter=system.swap.size.used, | ||
</ | </ | ||
Ligne 319: | Ligne 357: | ||
* On commente les lignes ''< | * On commente les lignes ''< | ||
* On rajoute ''</ | * On rajoute ''</ | ||
+ | * On rajoute la directive " | ||
+ | |||
+ | Il faut aussi éditer le fichier **/ | ||
+ | |||
Il faut maintenant mettre en place la configuration pour Zabbix: | Il faut maintenant mettre en place la configuration pour Zabbix: | ||
Ligne 432: | Ligne 474: | ||
- | **__Attention__**: | + | <note important> |
Et mettre le mot de passe mysql à jour: | Et mettre le mot de passe mysql à jour: |