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:18]
dani [Droits sudoers]
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 102: Ligne 95:
  
 ===== 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 285: 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 325: 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 344: 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