tuto:monitoring:installer_le_serveur_zabbix_sur_centos

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
Dernière révision Les deux révisions suivantes
tuto:monitoring:installer_le_serveur_zabbix_sur_centos [04/07/2012 15:07]
dani [Configuration my.cnf]
tuto:monitoring:installer_le_serveur_zabbix_sur_centos [04/12/2013 14:39]
dani [SELinux]
Ligne 1: Ligne 1:
-====== Installation d'un serveur CentOS ======+====== Installation d'un serveur Zabbix sur CentOS ======
  
-Cette page est une prise de notes pour l'installation d'un serveur Zabbix (avec base MySQL) sur une CentOS 6 x6_64. Avant d'attaquer cette partie, il faut préparer le système de base en suivant [[base_install_cos6|ces instructions]].+Cette page est une prise de notes pour l'installation d'un serveur Zabbix (avec base MySQL) sur une CentOS 6 x6_64. Avant d'attaquer cette partie, il faut préparer le système de base en suivant [[tuto:linux_divers:base_install_cos6|ces instructions]].
  
 ====== Installation de Zabbix ====== ====== Installation de Zabbix ======
Ligne 10: Ligne 10:
 </code> </code>
  
-<note tip>le --exclude=*i386 est seulement valable si le serveur est en 64bits</note> 
-<note tip>Zabbix 2.0 est disponible sur notre dépôt de test, i faut dans ce cas utiliser la commande 
- 
-<code bash> 
-yum --enablerepo=fws-testing install zabbix-server-mysql zabbix-agent \ 
-    zabbix-web-mysql mysql-server httpd php-gd php-mysql php-bcmath mod_ssl  
-</code></note> 
 ====== Configuration mysql ====== ====== Configuration mysql ======
  
Ligne 41: Ligne 34:
 innodb_data_file_path = ibdata1:10M:autoextend innodb_data_file_path = ibdata1:10M:autoextend
 innodb_log_group_home_dir = /var/lib/mysql/ innodb_log_group_home_dir = /var/lib/mysql/
-innodb_log_arch_dir = /var/lib/mysql/ 
 innodb_buffer_pool_size = 1G innodb_buffer_pool_size = 1G
 innodb_additional_mem_pool_size = 128M innodb_additional_mem_pool_size = 128M
Ligne 91: Ligne 83:
  
 ===== Définition d'un mot de passe root ===== ===== Définition d'un mot de passe root =====
 +
  
 <code> <code>
-/usr/bin/openssl rand -base64 60 | tr -c -d '[:alnum:]' > ~/.my.pw+/etc/init.d/mysqld start 
 +/usr/bin/openssl rand -base64 60 | tr -c -d '[:alnum:]'> ~/.my.pw
 chmod 600 ~/.my.pw chmod 600 ~/.my.pw
 /usr/bin/mysqladmin -u root password $(cat ~/.my.pw) /usr/bin/mysqladmin -u root password $(cat ~/.my.pw)
-echo '[client]' > ~/.my.cnf +echo '[client]'> ~/.my.cnf 
-echo "password="$(cat ~/.my.pw) >> ~/.my.cnf+echo "password="$(cat ~/.my.pw)>> ~/.my.cnf
 </code> </code>
  
 ===== Création d'une base de donnée ===== ===== Création d'une base de donnée =====
 +
  
 <code> <code>
-/usr/bin/openssl rand -base64 40 | tr -c -d '[:alnum:]' > /etc/zabbix/db.pw+/usr/bin/openssl rand -base64 40 | tr -c -d '[:alnum:]'> /etc/zabbix/db.pw
 chmod 600 /etc/zabbix/db.pw chmod 600 /etc/zabbix/db.pw
 mysql -e 'create database zabbixdb' mysql -e 'create database zabbixdb'
 mysql -e "grant all privileges on zabbixdb.* to 'zabbixuser'@'localhost' identified by '$(cat /etc/zabbix/db.pw)'" mysql -e "grant all privileges on zabbixdb.* to 'zabbixuser'@'localhost' identified by '$(cat /etc/zabbix/db.pw)'"
 mysql -e 'flush privileges' mysql -e 'flush privileges'
 +mysql zabbixdb </usr/share/doc/zabbix-server-*/database/mysql/schema.sql
 +mysql zabbixdb </usr/share/doc/zabbix-server-*/database/mysql/images.sql
 +mysql zabbixdb </usr/share/doc/zabbix-server-*/database/mysql/data.sql
 </code> </code>
  
Ligne 186: Ligne 184:
  
 ==== Droits sudoers ==== ==== Droits sudoers ====
 +
 +
 <code> <code>
 visudo visudo
 </code> </code>
 +
 +
 Puis ajouter les lignes suivantes: Puis ajouter les lignes suivantes:
 +
 +
 <code> <code>
 Cmnd_Alias  ZABBIX_SERVER = /usr/sbin/fping, /usr/sbin/fping6 Cmnd_Alias  ZABBIX_SERVER = /usr/sbin/fping, /usr/sbin/fping6
 +Defaults:zabbix !requiretty
 +Defaults:zabbix secure_path = /var/lib/zabbix/bin:/sbin:/bin:/usr/sbin:/usr/bin
 zabbix   ALL=(root) NOPASSWD: ZABBIX_SERVER zabbix   ALL=(root) NOPASSWD: ZABBIX_SERVER
-</code> 
-Et commentez la ligne suivante: 
-<code> 
-Defaults requiretty 
 </code> </code>
  
Ligne 280: Ligne 282:
  
 ==== SELinux ==== ==== SELinux ====
-Sous CentOS 6, la politique SELinux par défaut va empêcher Zabbix d'utiliser la commande fping. Pour régler ce problème, on va créer une plitique de sécurité personnalisée (au lieu de désactiver entièrement SELinux): 
  
-<code bash+ 
-cat <<'EOF'zabbix.te +Sous CentOS 6, la politique SELinux par défaut va empêcher Zabbix d'utiliser la commande fping. Pour régler ce problème, on va créer une politique de sécurité personnalisée (au lieu de désactiver entièrement SELinux): 
-module zabbix 1.0;+ 
 + 
 +<code> 
 +cat <<'EOF'> zabbix_server.te 
 +module zabbix_server 1.0;
  
 require { require {
         type var_lib_t;         type var_lib_t;
         type ping_t;         type ping_t;
 +        type initrc_t;
 +        type unlabeled_t;
         class file { read getattr };         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 };
 } }
  
 #============= ping_t ============== #============= ping_t ==============
 allow ping_t var_lib_t:file { read getattr }; allow ping_t var_lib_t:file { read getattr };
 +allow initrc_t unlabeled_t:sem { unix_read unix_write associate destroy };
 +allow initrc_t unlabeled_t:shm { unix_read unix_write associate destroy };
 +allow unlabeled_t self:tcp_socket { create getattr accept shutdown read };
 +allow unlabeled_t self:netlink_route_socket { create bind };
 EOF EOF
-checkmodule -M -m -o zabbix.mod zabbix.te +checkmodule -M -m -o zabbix_server.mod zabbix_server.te 
-semodule_package -o zabbix.pp -m zabbix.mod +semodule_package -o zabbix_server.pp -m zabbix_server.mod 
-semodule -i zabbix.pp+cp zabbix_server.pp /usr/share/selinux/packages 
 +semodule -i zabbix_server.pp
 </code> </code>
  
 +<code bash>
 +cat <<'EOF' > zabbix_agent.te
 +module zabbix_agent 1.0;
 +
 +require {
 +        type unlabeled_t;
 +        type root_t;
 +        type proc_t;
 +        type var_t;
 +        type var_log_t;
 +        type device_t;
 +        type fs_t;
 +        type sysctl_t;
 +        class process { fork sigchld setpgid };
 +        class netlink_route_socket { getattr write nlmsg_read read };
 +        class dir { read search getattr append };
 +        class tcp_socket write;
 +        class fifo_file read;
 +        class filesystem getattr;
 +}
 +
 +#============= unlabeled_t ==============
 +allow unlabeled_t root_t:dir search;
 +allow unlabeled_t proc_t:dir search;
 +allow unlabeled_t self:netlink_route_socket { getattr write nlmsg_read read };
 +allow unlabeled_t self:tcp_socket write;
 +allow unlabeled_t self:process { fork sigchld setpgid };
 +allow unlabeled_t var_t:dir search;
 +allow unlabeled_t var_log_t:dir search;
 +allow unlabeled_t self:fifo_file read;
 +allow unlabeled_t device_t:dir search;
 +allow unlabeled_t fs_t:filesystem getattr;
 +allow unlabeled_t sysctl_t:dir { read getattr search append };
 +EOF
 +checkmodule -M -m -o zabbix_agent.mod zabbix_agent.te
 +semodule_package -o zabbix_agent.pp -m zabbix_agent.mod
 +cp zabbix_agent.pp /usr/share/selinux/packages
 +semodule -i zabbix_agent.pp
 +</code>
 +
 +
 +Il faut aussi activer un booléen SELinux:
 +
 +
 +<code>
 +setsebool -P domain_kernel_load_modules=on
 +</code>
 ==== Agent ==== ==== Agent ====
 Sauvegarde de la config par défaut: Sauvegarde de la config par défaut:
Ligne 320: Ligne 383:
 LogFileSize=0 LogFileSize=0
 Timeout=6 Timeout=6
-UserParameter=cpu.number,cat /proc/cpuinfo | grep processor | wc -l 
-UserParameter=vm.memory.size.used,free -b | grep 'buffers/cache' | awk '{print $3}' 
-UserParameter=vm.memory.size.pused,echo $(($(free -b | grep 'buffers/cache' | awk '{print $3}')*100/$(free -b | grep 'Mem' | awk '{print $2}'))) 
-UserParameter=system.swap.size.used,free -b | grep Swap | awk '{print $3}' 
 </code> </code>
  
Ligne 339: Ligne 398:
   * On commente les lignes ''<VirtualHost _default_:443>'' et ''</VirtualHost>''   * On commente les lignes ''<VirtualHost _default_:443>'' et ''</VirtualHost>''
   * On rajoute ''</IfModule>'' tout à la fin   * On rajoute ''</IfModule>'' tout à la fin
 +  * On rajoute la directive "NameVirtualHost 0.0.0.0:443"
 +
 +Il faut aussi éditer le fichier **/etc/httpd/conf/httpd.conf** pour y ajouter: "NameVirtualHost 0.0.0.0:80"
 +
  
 Il faut maintenant mettre en place la configuration pour Zabbix: Il faut maintenant mettre en place la configuration pour Zabbix:
  • tuto/monitoring/installer_le_serveur_zabbix_sur_centos.txt
  • Dernière modification: 14/04/2014 18:18
  • de dani