Étiquette : centos

12 avril 2018 /

L’outil yum permet d’installer des packages. Par defaut, yum est configuré pour aller chercher les packages sur Internet grâce au fichier de configuration rhel-source.repo situé dans le dossier /etc/yum.repos.d, or les serveurs, notamment en entreprise, n’ont pas forcement d’accès à Internet.

Pour cela, il peut être utile de créer un dépôt local ces serveurs.
Pour se faire, il est nécessaire de monter l’ISO de RHEL 7 sur le lecteur de CD-ROM du serveur.

Monter l’image de Red Hat Enterprise Linux dans un dossier rhel_repo
mkdir /mnt/rhel
mount /dev/cdrom /mnt/rhel
Créer un dossier /depot/rhel_repo afin de copier la totalité du CD-ROM
mkdir -p /depot/rhel_repo
cp -Rp /mnt/rhel/* /depot/rhel_repo
Editer le fichier rhel7.repo situé dans /etc/yum.repos.d
vi /etc/yum.repos.d/redhat.repo

On y ajoute les lignes suivantes :

[InstallMedia]
name=Red Hat Enterprise Linux 7
metadata_expire=-1
gpgcheck=0
cost=500
baseurl=file:///depot/rhel_repo

Editer le fichier subscription-manager.conf situé dans /etc/yum/pluginconf.d
vi /etc/yum/pluginconf.d/subscription-manager.conf

On désactive « Subscription manager » en remplaçant la valeur du paramètre « enabled » :

enabled=1

Par :

enabled=0

Faire de même avec le fichier product-id.conf situé dans le même dossier
vi /etc/yum/pluginconf.d/produc-id.conf

On le désactive également en remplaçant la valeur du paramètre « enabled » :

enabled=1

Par :

enabled=0

Nettoyer le cache grâce aux commandes suivantes
rm -rfv /var/cache/yum/*
yum clean all
Mettre à jour l’ensemble des dépôts
yum update
Démonter le CD-ROM et supprimer le répertoire de montage
umount /mnt/rhel
rm -rf /mnt/rhel

 

31 mai 2017 /

Coté serveur Centreon CES 3.3 (192.168.122.58)

On commence par installer le script check_nrpe:

yum install -y nrpe-plugin

 

Par défaut, la variable $USER1$ qui correspond au répertoire où sont stockés les scripts Centreon, pointe sur /usr/lib/nagios/plugins/, alors que check_nrpe a été installé dans /usr/lib64/nagios/plugins/ . Nous devons donc créer un lien symbolique pour que check_nrpe y soit présent.

ln -s /usr/lib64/nagios/plugins/check_nrpe /usr/lib/nagios/plugins/check_nrpe

 

Sur l’interface web de Centreon, nous allons maintenant configurer la commande check_nrpe.
Pour cela nous allons dans Configuration / Commandes puis on clique sur ajouter:

Dans ligne de commande on met ceci:

$USER1$/check_nrpe -H $HOSTADDRESS$ -p $_SERVICEPORT$ $_SERVICECOMMAND$

Puis on clique sur « Décrire les macro » puis sauvegarder sur le pop-up qui apparaît, pour générer le texte suivant:

MACRO (SERVICE) PORT :
MACRO (SERVICE) COMMAND :

Nous pouvons maintenant créer des services NRPE. Pour cela nous allons dans Configuration / Services / Modèles puis on clique sur Ajouter:

On rempli le formulaire comme ci dessus pour la création d’un service surveillance de la charge système d’un hôte.

On met la « Commande de vérification » sur la commande « check_nrpe« .

La variable PORT contient le port de service de NRPE, 5666.
La variable COMMAND contient la valeur « check_load« .
Cela correspond au nom de la commande sur le serveur cible (dans nrpe.cfg).

L’hôte que l’on souhaite monitorer doit donc avoir cette commande déclarer dans son fichier nrpe.cfg, comme on peut le voir ici:

vi /etc/nagios/nrpe.cfg

.....
command[check_load]=/usr/lib/nagios/plugins/check_load -w 15,10,5 -c 30,25,20
......

 

Puis on va dans l’onglet « Relations » pour lié le modèle à des modèles d’hôtes:

On associe le modèle de service au modèle d’hôte qui fonctionneront avec NRPE comme ci-dessus. Il faudra reproduire la même chose pour chaque service NRPE que l’on désire configurer.

On peut maintenant créer dans Centreon notre première machine à monitorer avec notre service NRPE, « check_load« .

 

Coté client Ubuntu (192.168.0.20)

On installe sur le client Ubuntu le deamon NRPE ainsi que des scipts pour le monitorer:

apt-get install nagios-nrpe-server nagios-plugins

On va autoriser le serveur Centreon dans le fichier de configuration NRPE:

vi /etc/nagios/nrpe.cfg

allowed_hosts=127.0.0.1,192.168.122.58

Puis on démarre le service:

/etc/init.d/nagios-nrpe-server start

ou

systemctl start nagios-nrpe-server

On peut vérifier que le client Ubuntu répond au serveur Centreon avec cette commande (à faire depuis Centreon):

/usr/lib/nagios/plugins/check_nrpe -H 192.168.0.20 -c check_load

OK - load average: 0.06, 0.06, 0.01|load1=0.060;15.000;30.000;0; load5=0.060;10.000;25.000;0; load15=0.010;5.000;20.000;0;

On va maintenant déclarer la machine dans Centreon.
Pour cela on va dans Configuration / Hôtes et on clique sur le bouton ajouter

On rempli le formulaire en ayant spécifié le modèle d’hôte « Serveurs-Ubuntu« .
L’hôte va ainsi hérité du service NRPE que nous avons créer tout à l’heure.

On peut vérifié que le service pour la charge système est bien présent pour notre hôte Ubuntu à monitorer.

Pour cela on va dans Configuration / Services et on clique sur le service de notre hôte:

On vérifie que le « Modèle de service » que l’on souhaite, ici « NRPE_Charge_Système » que l’on a configurer précédemment est bien sélectionné.
On met la « Commande de vérification » sur « check_nrpe« .

On peut vérifier que cela fonctionne depuis le serveur Centreon avec cette commande:

/usr/lib/nagios/plugins/check_nrpe -H 192.168.0.20 -c check_load

Si tous est bon, il ne reste plus qu’a recharger la configuration du Collecteur:

 

Si il n’y à pas d’erreur, on coche également « Déplacer les fichier« , et « Redémarrer l’ordonnanceur »

Puis on clic sur exporter.

 

Coté Client CentOS (192.168.122.172)

Pour installer le deamon NRPE, nous devons passer par les dépôts EPEL:

yum install epel-release -y

Puis

yum -y install nrpe nagios-plugin*

On va autoriser le serveur Centreon dans le fichier de configuration NRPE:

vi /etc/nagios/nrpe.cfg

allowed_hosts=127.0.0.1,192.168.122.58

Puis on démarre le service:

service nrpe start
chkconfig nrpe on

Particularité CentOS 7

systemctl restart nrpe
systemctl enable nrpe
firewall-cmd --permanent --add-port=5666/tcp

 

On va maintenant déclarer la machine CentOS dans Centreon.

En ayant spécifié le modèle d’hôte « Serveurs-CentOS« , l’hôte va ainsi hérité du service NRPE que nous avons créer tout à l’heure.

On peut vérifié que le service pour la charge système est bien présent pour notre hôte CentOS à monitorer.

Pour cela on va dans Configuration / Services et on clique sur le service de notre hôte:

On vérifie que le « Modèle de service » que l’on souhaite, ici « NRPE_Charge_Système » que l’on a configurer précédemment est bien sélectionné.
On vérifie que la « Commande de vérification » est bien « check_nrpe« .

On peut vérifier que cela fonctionne depuis le serveur Centreon avec cette commande:

/usr/lib/nagios/plugins/check_nrpe -H 192.168.122.172 -c check_load

Si tous est bon, il ne reste plus qu’a recharger la configuration du Collecteur:

Si il n’y à pas d’erreur, on coche également « Déplacer les fichier », et « Redémarrer l’ordonnanceur »

Puis on clic sur exporter.

 

10 février 2017 /

Voici comment configurer une agrégation de liens sur les ports Ethernet dans CentOS7 et RH7.
Dans mon cas, j’ai deux cartes (ens192 & ens224) qui formeront une interface d’agrégat (bond0).

L’agrégation peut fonctionner suivant plusieurs modes qui détermineront son fonctionnement:

Mode 0 : Round Robin , équilibrage de charge

La transmission des paquets se fait de façon séquentielle sur chacune des cartes actives dans l’agrégat. Ce mode augmente la bande passante et gère la tolérance de panne.

Mode 1 : Active – passive

Ce mode ne gère que la tolérance de panne. Si une des interfaces est désactivée, une autre du bond prend le relais.

Mode 2 : Balance xor

Une interface est affectée à l’envoi vers une même adresse MAC. Ainsi les transferts sont parallélisés et le choix de l’interface suit la règle : (Adresse MAC de la source XOR Adresse MAC de la destination) modulo nombre d’interfaces.

Mode 3 : Broadcast

Tout le trafic est envoyé par toutes les interfaces

mode 4 : 802.3ad ou LCAP

Ce mode s’appuie sur la norme IEEE 802.3ad Dynamic link aggregation. Toutes les interfaces du groupe sont agrégées de façon dynamique, ce qui augmente la bande passante et gère la tolérance de panne. Cela implique que le switch gère le 802.ad et les interfaces soient compatibles mii-tool et/ou ethtool.

mode 5 : balance-tlb

Adaptive transmit load balancing : seule la bande passante en sortie est load balancée selon la charge calculée en fonction de la vitesse, ceci pour chaque interface. Le flux entrant est affecté à l’interface courante. Si celle-ci devient inactive, une autre prend alors l’adresse MAC et devient l’interface courante.

mode 6 : balance-alb

Adaptive load balancing : ce mode inclut en plus du tlb un load balancing sur le flux entrant et seulement pour un trafic IPV4. L’équilibrage est réalisé au niveau ARP. Le module intercepte les réponses pour y réécrire l’adresse MAC de l’une des interfaces du bond tout en tenant compte des spécificités du protocole ARP. La répartition entre les différentes interfaces, se fait de façon séquentielle ( round robin ).

 

Si le module d’agrégation n’est pas chargé, utilisez la commande ci-dessous pour le charger:

 

modprobe --first-time bonding

 

Pour afficher les informations du module d’agrégation:

 

modinfo bonding

 

Création de l’interface bond0 :

 

vi /etc/sysconfig/network-scripts/ifcfg-bond0

DEVICE=bond0
TYPE=Bond
NAME=bond0
BONDING_MASTER=yes
BOOTPROTO=none
ONBOOT=yes
IPADDR=10.148.14.244
NETMASK=255.255.255.0
GATEWAY=10.148.14.1
BONDING_OPTS="mode=0 miimon=100"

Le paramètre « BONDING_OPTS » décrit le mode qui sera utilisé.
Dans notre cas, nous avons configuré l’interface pour fonctionner en mode 0 (Round Robin) et nous avons défini la fréquence des MII link monitoring à 100 (en millisecondes).

 

Modification des deux interfaces qui vont être agrégées:

 

vi /etc/sysconfig/network-scripts/ifcfg-ens192

TYPE=Ethernet
BOOTPROTO=dhcp
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens192
UUID=ae1b730e-2c44-4662-83d8-815ae54bb7ed
DEVICE=ens192
ONBOOT=no

devient :

TYPE=Ethernet
BOOTPROTO=none
NAME=ens192
UUID=ae1b730e-2c44-4662-83d8-815ae54bb7ed
DEVICE=ens192
ONBOOT=yes
MASTER=bond0
SLAVE=yes

vi /etc/sysconfig/network-scripts/ifcfg-ens224

TYPE=Ethernet
BOOTPROTO=dhcp
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens224
UUID=796aeb4a-97d4-4763-a350-4f09cb77dbb9
DEVICE=ens224
ONBOOT=no

devient

TYPE=Ethernet
BOOTPROTO=none
NAME=ens224
UUID=796aeb4a-97d4-4763-a350-4f09cb77dbb9
DEVICE=ens224
ONBOOT=yes
MASTER=bond0
SLAVE=yes

Redémarrage du service réseau:

systemctl restart network.service

 

Vérification de l’agrégation:

 

ifconfig

bond0: flags=5187<UP,BROADCAST,RUNNING,MASTER,MULTICAST> mtu 1500
inet 10.148.14.244 netmask 255.255.255.0 broadcast 10.148.14.255
inet6 fe80::20c:29ff:feae:79ef prefixlen 64 scopeid 0x20 ether 00:0c:29:ae:79:ef txqueuelen 1000 (Ethernet)
RX packets 17755 bytes 1701509 (1.6 MiB)
RX errors 0 dropped 36 overruns 0 frame 0
TX packets 1555 bytes 138441 (135.1 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

ens192: flags=6211<UP,BROADCAST,RUNNING,SLAVE,MULTICAST> mtu 1500
ether 00:0c:29:ae:79:ef txqueuelen 1000 (Ethernet)
RX packets 7901 bytes 757796 (740.0 KiB)
RX errors 0 dropped 2 overruns 0 frame 0
TX packets 588 bytes 46424 (45.3 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

ens224: flags=6211<UP,BROADCAST,RUNNING,SLAVE,MULTICAST> mtu 1500
ether 00:0c:29:ae:79:ef txqueuelen 1000 (Ethernet)
RX packets 8927 bytes 855269 (835.2 KiB)
RX errors 0 dropped 1 overruns 0 frame 0
TX packets 795 bytes 73253 (71.5 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10
loop txqueuelen 1 (Boucle locale)
RX packets 610 bytes 55904 (54.5 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 610 bytes 55904 (54.5 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

On peut également voir son bon fonctionnement avec la commande ip:

ip addr

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: ens192: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master bond0 state UP qlen 1000
link/ether 00:0c:29:ae:79:ef brd ff:ff:ff:ff:ff:ff
3: ens224: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master bond0 state UP qlen 1000
link/ether 00:0c:29:ae:79:ef brd ff:ff:ff:ff:ff:ff
4: bond0: <BROADCAST,MULTICAST,MASTER,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP qlen 1000
link/ether 00:0c:29:ae:79:ef brd ff:ff:ff:ff:ff:ff
inet 10.148.14.244/24 brd 10.148.14.255 scope global bond0
valid_lft forever preferred_lft forever
inet6 fe80::20c:29ff:feae:79ef/64 scope link tentative dadfailed
valid_lft forever preferred_lft forever

On peut également afficher les paramètres de l’agrégation, comme le mode utilisé et l’interface esclave:

cat /proc/net/bonding/bond0

Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011)

Bonding Mode: load balancing (round-robin)
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 0
Down Delay (ms): 0

Slave Interface: ens224
MII Status: up
Speed: 10000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 00:0c:29:ae:79:f9
Slave queue ID: 0

Slave Interface: ens192
MII Status: up
Speed: 10000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 00:0c:29:ae:79:ef
Slave queue ID: 0

 

Configuration d’un alias ip sur l’agrégation:

 

cp -p /etc/sysconfig/network-scripts/ifcfg-bond0 /etc/sysconfig/network-scripts/ifcfg-bond0:1

vi /etc/sysconfig/network-scripts/ifcfg-bond0:1

Et nous allons adapter les parametres « DEVICE » et « IPADDR » comme ci dessous:

DEVICE=bond0:1
TYPE=Bond
NAME=bond0:1
BONDING_MASTER=yes
BOOTPROTO=none
ONBOOT=yes
IPADDR=10.148.14.216
NETMASK=255.255.255.0
GATEWAY=10.148.14.1
BONDING_OPTS="mode=0 miimon=100"

Redémarrez le service réseau:

systemctl restart network.service

Vérification:

ifconfig

bond0: flags=5187<UP,BROADCAST,RUNNING,MASTER,MULTICAST> mtu 1500
inet 10.148.14.244 netmask 255.255.255.0 broadcast 10.148.14.255
inet6 fe80::20c:29ff:feae:79ef prefixlen 64 scopeid 0x20 ether 00:0c:29:ae:79:ef txqueuelen 1000 (Ethernet)
RX packets 23580 bytes 2260763 (2.1 MiB)
RX errors 0 dropped 50 overruns 0 frame 0
TX packets 1828 bytes 182463 (178.1 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

bond0:1: flags=5187<UP,BROADCAST,RUNNING,MASTER,MULTICAST> mtu 1500
inet 10.148.14.216 netmask 255.255.255.0 broadcast 10.148.14.255
ether 00:0c:29:ae:79:ef txqueuelen 1000 (Ethernet)

ens192: flags=6211<UP,BROADCAST,RUNNING,SLAVE,MULTICAST> mtu 1500
ether 00:0c:29:ae:79:ef txqueuelen 1000 (Ethernet)
RX packets 67 bytes 5428 (5.3 KiB)
RX errors 0 dropped 3 overruns 0 frame 0
TX packets 20 bytes 1544 (1.5 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

ens224: flags=6211<UP,BROADCAST,RUNNING,SLAVE,MULTICAST> mtu 1500
ether 00:0c:29:ae:79:ef txqueuelen 1000 (Ethernet)
RX packets 62 bytes 5128 (5.0 KiB)
RX errors 0 dropped 3 overruns 0 frame 0
TX packets 13 bytes 1354 (1.3 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10
loop txqueuelen 1 (Boucle locale)
RX packets 661 bytes 60416 (59.0 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 661 bytes 60416 (59.0 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

On peut également voir son bon fonctionnement avec la commande ip:

ip addr

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: ens192: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master bond0 state UP qlen 1000
link/ether 00:0c:29:ae:79:ef brd ff:ff:ff:ff:ff:ff
3: ens224: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master bond0 state UP qlen 1000
link/ether 00:0c:29:ae:79:ef brd ff:ff:ff:ff:ff:ff
4: bond0: <BROADCAST,MULTICAST,MASTER,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP qlen 1000
link/ether 00:0c:29:ae:79:ef brd ff:ff:ff:ff:ff:ff
inet 10.148.14.244/24 brd 10.148.14.255 scope global bond0
valid_lft forever preferred_lft forever
inet 10.148.14.216/24 brd 10.148.14.255 scope global secondary bond0:1
valid_lft forever preferred_lft forever
inet6 fe80::20c:29ff:feae:79ef/64 scope link
valid_lft forever preferred_lft forever

22 décembre 2015 /

FirewallD est un service qui permet de mettre en place une gestion dynamique du pare-feu sous RedHat, CentOS et Fedora.
Il s’appuie sur l’infrastructure Netfilter.

Les règles gérées par le service FireWallD sont appliquées san savoir besoin de redémarrer le parefeu.
Les règles existantes, toujours utiles, restent donc en place. Et les modules noyaux complémentaires utilisés ne sont pas déchargés.

La seule contraintes concernant FirewallD est qu’il nécessite que l’ensemble des règles de filtrage soient appliquées par lui même de façon à ce que son état (règles en cours) reste synchronisé avec celui du noyau.

Installation:

yum -y install firewalld

Démarrage:

systemctl start firewall

Voici quelques notes pour pouvoir se servir de l’interface du pare-feu sur votre CentOS, Fedora ou RHEL. Les règles ne sont pas prises en tant réel, mais lors du rechargement des règles.

Pour connaître l’activation du pare-feu:

firewall-cmd --state

 

Pour connaître la « zone » par défaut:

firewall-cmd --get-active-zones

 

Regarder les règles existantes sur la zone par defaut :

firewall-cmd –get-default-zone

 

Pour lister les règles de la zone « public »:

firewall-cmd --zone=public --list-all

 

Ajouter http (TCP/80) dynamiquement:

firewall-cmd –add-service http

ou

firewall-cmd --zone=public --add-service=http

 

Ajouter http (TCP/80) pour une prise en compte au redémarrage:

firewall-cmd –permanent –add-service http

ou

firewall-cmd --permanent --zone=public --add-service=http

 

Pour ajouter un port de manière permanente (ici 80 sur tcp):

firewall-cmd --permanent --zone=public --add-port=80/tcp

 

Pour supprimer un port de manière permanente (ici 80 sur tcp):

firewall-cmd --permanent --zone=public --remove-port=80/tcp

 

Pour recharger les règles du pare-feu:

firewall-cmd --reload

ou

systemctl restart firewalld.service

 

Plus d’info ici.

25 octobre 2015 /

Si les bases de données rmp sont corrompues, vous pouvez rencontrer ce genre d’erreur :

rpmdb: Lock table is out of available locker entries rpmdb: Unknown locker ID: 2106 error: db4 error(22) from dbenv->close: Invalid argument error: cannot open Packages index using db3 – Cannot allocate memory (12) error: cannot open Packages database in /var/lib/rpm

Et ça fait peur…

Pour réparer cela, on commence par supprimer les bases corrompues:

rm /var/lib/rpm/__db.00*

Il ne nous reste plus qu’à reconstruire les bases:

rpm --rebuilddb -vv