VMware vSwitch VLAN management : VST, EST, VGT

Plutôt que de recopier, je voulais juste partager avec vous ce super post de Mohammed Raffic sur son blog:

http://www.vmwarearena.com/vlan-tagging-vst-est-vgt-on-vmware/

Par contre je reprendrais bien son tableau récap super pratique :

SummaryVLANModeConfigurationinVmware

Leave the first comment

Purger les jobs systems d’UVB bloqués (Unitrends Virtual Backup)

Bon à savoir, voici la procédure pour purger des jobs systems restés actif alors qu’ils ont été terminés. C’est un bug qui peut arrivé, je n’en connais pas la raison mais j’ai constaté par exemple que des jobs de suppression de backups obsolètes ne se terminaient jamais et que visiblement la politique de rétention avait été respectée donc pour purger les jobs restant le support indique la procédure suivante (procédure donnée avec les logins/password par défaut évidemment) :

1. Login SSH sur l’instance UVB :
username = admin
password = password
2. sudo -s
3. bash (pas indispensable mais vous serez beaucoup plus à l’aise ainsi car sinon les fonctionnalités shell telles que l’historique ou même simplement vouloir utilisé le backspace ne sera pas possible…)
4. psql service=client
5. update client_job set job_status = 3, job_state = 7, timestamp = extract(epoch from now()) where job_state < 6; 6. update client_jobinventory set job_status = 3, job_state = 7, timestamp = extract(epoch from now()) where job_state < 6; Cette procédure sera notamment utile si vous voulez étendre un espace de stockage de l'instance, ce qui demande de ne plus avoir de jobs actifs par sécurité.

Leave the first comment

Création d’un utilisateur chrooté avec accès à une DB Oracle

Pour commencer, j’ai tout simplement suivi de la note KB Red Hat : https://access.redhat.com/solutions/116773. Voilà les étapes décrites pour créer le chroot simple :

Ajout utilisateur “testuser”

# useradd testuser
# passwd testuser

Le home sera la base du chroot :

# mkdir /home/jails
# cd /home/jails
# mkdir -p bin dev lib64 etc proc usr/lib64 tmp sys home/testuser
# ln -s lib64 lib
# cd usr
# ln -s lib64 lib
# cd ..

Montages des pseudo fs :

# mount -o rbind /dev dev
# mount -o rbind /sys sys
# mkdir -p dev/pts
# mknod dev/ptmx c 5 2
# mkdir proc

Modification de /etc/fstab pour le montage permanent des pseudo fs:

# cat /etc/fstab
proc            /home/testuser/proc        proc    defaults    0 0
devpts          /home/testuser/dev/pts     devpts  gid=5,mode=620  0 0
# mount -a

Import des binaires nécessaires :
cp /bin/bash /bin/cat /bin/ /bin/echo /bin/env /bin/grep /bin/hostname /bin/ls /bin/mkdir /bin/sh /bin/whoami bin

Et import de librairies liées associées :

for bin in bash  cat  clear  echo  env  grep  hostname  ls  mkdir  sh  whoami
do
	for file in $(${bin} | awk '{print $3}')
	do 
		cp -f $file lib64/
	done
done

Copie des fichiers de configurations systèmes indispensable :

# cp /etc/localtime etc/
# cp /etc/nsswitch.conf etc/
# cp /etc/resolv.conf etc/
# cat /etc/passwd | grep ^root >> etc/passwd
# cat /etc/passwd | grep ^testuser>> etc/passwd
# cat /etc/group | grep ^root >> etc/group
# cat /etc/group | grep ^testuser>> etc/group 
# cp -p /etc/DIR_COLORS etc/ 
# chmod a=x   bin/ 
# chmod a=x bin/* 
# chmod a=rx   etc/ 
# chmod -R u+rw etc/ 
# chmod -R go+r etc/
# chown -R testuser:testuser home/testuser

Configuration des users chrootés :

# cat /etc/security/chroot.conf 
testuser        /home/jails

Configuration de PAM pour l’auth system classique et ssh en ajoutant la ligne suivante aux fichiers /etc/pam.d/system-auth et /etc/pam.d/sshd :

session     required      pam_chroot.so onerr=fail debug

Ici nous avons un chroot classique, maintenant import du nécessaire pour se connecter à la base Oracle Ransup :

# mkdir /oraker01/app/oracle/product/10.2.0
# rsync --progress -avzp /oraker01/app/oracle/product/10.2.0/ oraker01/app/oracle/product/10.2.0/
# cp -r /oraker01/app/oracle/admin/ oraker01/app/oracle/

Copie de librairies manquante pour Oracle :

#  cp /lib64/libnss_dns.so.2 lib64
#  cp /lib64/libnss_files.so.2 lib64

Création d’un .bash_profile dans home de testuser avec les variables d’environnement nécessaires, à adapter selon votre installation évidemment :

# .bashrc

# User specific aliases and functions

alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'

# Source global definitions
if [ -f /etc/bashrc ]; then
        . /etc/bashrc
fi

export ORACLE_HOME=/oraker01/app/oracle/product/10.2.0
export PATH=$PATH:${ORACLE_HOME}/bin:.
export LD_LIBRARY_PATH=${ORACLE_HOME}/lib:${ORACLE_HOME}/network/lib:${ORACLE_HOME}/forms45/lib:/usr/lib/X11:/usr/dt/lib:/opt/freeware/lib
export LIBPATH=${ORACLE_HOME}/lib:
export TNS_ADMIN=${ORACLE_HOME}/network/admin
export ORACLE_SID=ORADB
export PS1="`hostname`{`whoami`}@${ORACLE_SID}$ "

Ensuite l’on peut se connecter en utilisant une connexion TCP :

$ sqlplus system/manager@ORADB_service_name
Leave the first comment

VMware ESXi/vCenter : No data available from performance overview

Une erreur aussi estrange que chiante et qui empêche le check des VMs ainsi que de l’ESXi par des scripts distants style check_esx3.pl ou check_vmware_api.pl, l’impossibilité de récupérer les valeurs de performances d’un hôte et de ses VMs.

Symptômes :
– Impossibilité de visualiser les données de performances depuis l’onglet performances dans le client vSphere. Chaque vignette affiche “No data available”, même en sélectionnent Real Time.
– Idem pour les VMs
– Impossibilité de récupérer les valeurs de performances et de statuts de l’ESXi et de ses VMs depuis une API (ie : Vmware Perl SDK)
– Les autres ESXi du cluster peuvent très bien fonctionner

No data available from performance view

No data available from performance view

Après maintes essais et recherches, il faut tout simplement redémarrer les agents de l’ESXi en question en suivant cette KB VMware. Me concernant, cela s’est mis à fonctionner lorsque j’ai redémarrer le service LACP (Link Aggregation Control Protocol) bien que je pense que c’est le redémarrage de VPXA qui aurait permis de débloquer la situation et que LACP a été redémarrer juste après et s’agit juste d’une coïncidence.

Un autre problème étant l’état du matériel inaccessible depuis le client sur un ESXi. Résolu par le redémarrage de l’agent sfcdb-watchdog ou sfcdb selon la version:

# /etc/init.d/sfcdb-watchdog restart
Leave the first comment

RHEL7 : Résumé des changements apportés par Systemd

1. Présentation Systemd

Nouvelles gestions des services. Systemd remplace l’ancien SysV Init, il permet de paralléliser les démarrages de services et gère nativement les dépendances entre eux.
Les scripts dans /etc/init.d ne sont plus à l’ordre du jour. Ils ont été remplacés par des « unit file » de service (il existe des unit file pour les montages de fs, timer, socket, etc). La doc est disponible dans les pages de man avec la commande : man systemd.service, pour les services ou systemd.* pour tous les autres (ie : systemd.unit). Pour résumé, ces units file sont des fichiers de configuration avec des directives décrivant le comportement du système pour la gestion de l’unit.

Pour un service, cela se composera d’une description, d’éventuelles dépendances, le type de lancement, la commande a lancé pour le démarrage, l’arrêt etc.

Exemple rsyslog.service :

# cat /usr/lib/systemd/system/rsyslog.service
[Unit]
Description=System Logging Service
;Requires=syslog.socket

[Service]
Type=notify
EnvironmentFile=-/etc/sysconfig/rsyslog
ExecStart=/usr/sbin/rsyslogd -n $SYSLOGD_OPTIONS
StandardOutput=null

[Install]
WantedBy=multi-user.target
;Alias=syslog.service

Les fichiers de configuration sont dans le répertoire /etc/systemd.

Les units files du système sont stockés dans /usr/lib/systemd/system, il ne faut pas modifier ces fichiers. S’il doit y avoir des modifications, elles doivent être faites dans /etc/systemd/system

2. Runlevel et Target

Les runlevel ont laissé la place au target. Le fichier inittab n’existe plus et la gestion des différents runlevel est assurée par les targets : runlevel0.target,runlevel1.target,runlevel2.target,runlevel3.target,runlevel4.target,runlevel5.target,runlevel6.target. Ceux-ci ne sont que des liens symboliques vers d’autres targets :

lrwxrwxrwx. 1 root root  15 Jul 29 13:35 /usr/lib/systemd/system/runlevel0.target -> poweroff.target
lrwxrwxrwx. 1 root root  13 Jul 29 13:35 /usr/lib/systemd/system/runlevel1.target -> rescue.target
lrwxrwxrwx. 1 root root  17 Jul 29 13:35 /usr/lib/systemd/system/runlevel2.target -> multi-user.target
lrwxrwxrwx. 1 root root  17 Jul 29 13:35 /usr/lib/systemd/system/runlevel3.target -> multi-user.target
lrwxrwxrwx. 1 root root  17 Jul 29 13:35 /usr/lib/systemd/system/runlevel4.target -> multi-user.target
lrwxrwxrwx. 1 root root  16 Jul 29 13:35 /usr/lib/systemd/system/runlevel5.target -> graphical.target
lrwxrwxrwx. 1 root root  13 Jul 29 13:35 /usr/lib/systemd/system/runlevel6.target -> reboot.target

Les targets sont des étapes dans le démarrage de linux. Ainsi, les services font référence à une target dans leur section [Install]. L’étape (la cible peu importe) est atteinte lorsque tous les services activés pour cette target sont démarrés.

Pour atteindre une target :

# systemctl isolate runlevel3.target

Connaitre et configurer la target par défaut :

# systemctl get-default
# systemctl set-default multi-user.target

Pour éteindre et redémarrer le système préférer la commande systemctl à shutdown:

# systemctl poweroff
# systemctl reboot

3. Gestion des services

La gestion des services se fait par la commande systemctl :

Démarrage, arrêt, redémarrage, rechargement :

# systemctl start chronyd
# systemctl stop chronyd
# systemctl restart chronyd
# systemctl reload chronyd

Note : Normalement le démarrage et l’arrêt d’unit se fait en spécifiant le nom entier, default.target par exemple. Sauf pour les services où cela est implicite.

Obtenir l’état d’un service :

# systemctl status chronyd
chronyd.service - NTP client/server
   Loaded: loaded (/usr/lib/systemd/system/chronyd.service; enabled)
   Active: active (running) since Thu 2015-09-17 09:36:24 CEST; 49min ago
  Process: 690 ExecStartPost=/usr/libexec/chrony-helper add-dhclient-servers (code=exited, status=0/SUCCESS)
  Process: 654 ExecStart=/usr/sbin/chronyd -u chrony $OPTIONS (code=exited, status=0/SUCCESS)
 Main PID: 668 (chronyd)
   CGroup: /system.slice/chronyd.service
           `-668 /usr/sbin/chronyd -u chrony

Sep 17 09:36:24 devdbsud chronyd[668]: chronyd version 1.29.1 starting
Sep 17 09:36:24 devdbsud chronyd[668]: Linux kernel major=3 minor=10 patch=0
Sep 17 09:36:24 devdbsud chronyd[668]: hz=100 shift_hz=7 freq_scale=1.00000000 nominal_tick=10000 slew_delta_tick=833 max_tick_bias=1000 shift_pll=2
Sep 17 09:36:24 devdbsud systemd[1]: Started NTP client/server.
Sep 17 10:07:43 devdbsud chronyd[668]: NTP packet received from unauthorised host 10.145.13.15 port 1230
Sep 17 10:21:41 devdbsud chronyd[668]: Source 37.187.103.150 online
Sep 17 10:21:41 devdbsud chronyd[668]: Source 195.154.216.44 online
Sep 17 10:21:41 devdbsud chronyd[668]: Source 37.187.2.84 online
Sep 17 10:21:41 devdbsud chronyd[668]: Source 176.31.109.39 online

Infos importantes à retenir dans les premières lignes.
Sur la ligne Loaded, on retrouve le chemin vers l’unit file qui se charge ce service, s’il est activé ou non pour la target.
La ligne Active parle d’elle même
Les lignes Process décrivent les commandes utilisées pour démarrer le service et leur retour.
Les 10 dernières lignes sont les dernières lignes de log de ce service.

Savoir si un service est activé ou non :

# systemctl is-enabled chronyd

Activer/Désactiver un service :

# systemctl enable chronyd
# systemctl disable chronyd

Obtenir la liste des units :

# systemctl

La même chose en résumé :

# systemctl list-unit-files

4. Linux environnement

4.1. Hostnamectl

Il existe 3 types d’hostname désormais : static, transient et pretty. Static est l’hostname classique choisi par l’utilisateur et stocké dans /etc/hostname. Transient est l’hostname dynamique qui est enregistré par le kernel, par défaut cette valeur est initialisé sur celle de static. Et pretty est l’hostname sans contrainte de caractère présenté à l’utilisateur par l’interface.

On peut configurer les hostnames avec la commande suivante :

# hostnamectl set-hostname

Ajouter une option -pretty,-transient,-static si vous voulez configurer séparément l’un des trois hostname.

4.2. Localectl

Localectl permet de configurer simplement les locales de la machine.

# localectl
System Locale: LANG=en_US.UTF-8
VC Keymap: en_US
X11 Layout: en_US

Configurer la valeur fr_FR.ISO8859-15 pour la locale système :

# localectl set-locale LANG=fr_FR.ISO8859-15

Configurer la valeur fr_FR pour la virtual console keymap:

# localectl set-keymap fr_FR

Configurer la valeur fr_FR value pour le X11 layout:

# localectl set-x11-keymap fr_FR

4.3. Timedatectl

Le contrôle de la date, heure et format d’affichage se feront avec la commande timedatectl

Connaitre la configuration actuelle :

# timedatectl

Configurer la date:

# timedatectl set-time YYYY-MM-DD

Configurer l’heure:

# timedatectl set-time HH:MM:SS

Obtenir la liste des timezones:

# timedatectl list-timezones

Changer la timezone :

# timedatectl set-timezone Europe/Paris

5. Journaux

Les journaux sont désormais enregistrés par systemd-journald, en plus de syslog pour faire la transition. On peut y accéder avec la commander avec la commande journalctl. Voici quelques commandes permettant de consulter les journaux de manière efficace :

Consulter le journal entier :

# journalctl

Obtenir tout les enregistrements relatifs au process crond :

# journalctl /sbin/crond

Note: Peut être remplacé par `which crond`.

Connaitre les enregistrements depuis le dernier boot:

# journalctl -b

Tout les évènements du jour :

# journalctl --since=today

Connaitre toutes les erreurs:

# journalctl -p err

Lire les 10 derniers enregistrements et attendre les nouveaux (l’équivalent de “tail -f /var/log/messages“) :

# journalctl -f

6. Autres changements indépendants de Systemd

6.1. Norme de nommage des interfaces réseaux

Red Hat applique le “Consistent Network Device Naming”. Les interfaces précédemment nommées ‘ethX’ seront nommées ‘eno1’ r ‘ens192’ (Dell and VMware, respectivement).

Les règles sont (d’après la documentation Red Hat) :

  • Scheme 1: Names incorporating Firmware or BIOS provided index numbers for on-board devices (example: eno1), are applied if that information from the firmware or BIOS is applicable and available, else falling back to scheme 2.
  • Scheme 2: Names incorporating Firmware or BIOS provided PCI Express hotplug slot index numbers (example: ens1) are applied if that information from the firmware or BIOS is applicable and available, else falling back to scheme 3.
  • Scheme 3: Names incorporating physical location of the connector of the hardware (example: enp2s0), are applied if applicable, else falling directly back to scheme 5 in all other cases.
  • Scheme 4: Names incorporating interface’s MAC address (example: enx78e7d1ea46da), is not used by default, but is available if the user chooses.
  • Scheme 5: The traditional unpredictable kernel naming scheme, is used if all other methods fail (example: eth0).

6.2. Configuration réseau

La commande ifconfig est devenue obsolète et est toujours disponible pour des soucis de compatibilités avec les VMWare Tools. Pour configurer le réseau, il faut passer de préférence par les commandes ip et nmcli ou nmtui pour avoir une interface ncurse plus user friendly.

6.3. Remplacement de NTPD

NTPD a été remplacé par chronyd qui est adapté pour les systèmes qui redémarre ou déconnecté fréquemment. Ainsi, une source de temps accessible seulement par intermittence est possible. Il se synchronise plus vite et par défaut ne fait pas de saut brusque dans le temps. Je vous laisse lire cet intéressant article qui l’explique très bien.

6.4. Pare-feu : firewalld

L’interface pour le pare-feu est passé d’iptables à firewalld.

6.5. FS par défaut XFS

Le filesystem par défaut est désormais XFS qui apporte les fonctionnalités suivantes :

    • Complétement journalisé
    • Support pour les filesystems de 500TB
    • Pas de fsck effectué au démarrage
        Un substitue qui ne fait rien est exécuté à la place
    • Si une error est détectée dans les metadata du FS:
        Le fs est démonté et retourne EFSCORRUPTED
        La commande

xfs_repair

        peut réparer ces erreurs
        Le journal/log doit être propre pour que

xfs_repair

        puisse être exécuté
        Les commandes

mount

        et

unmount

      doivent d’abord être utilisés pour rejouer le log
  • Le numbre d’inode peut dépasser 2^32
      Ce ne devrait pas être un problème, sauf pour les appels 32-bit stat
      Un paramètre au montage existe, “-o inode32”, pour la compatibilité
  • Speculative-Preallocation est utilisé et permet de réduire la fragmentation
      Si une pré-allocation n’est pas utilisée, elle est recyclée après 5min
      Cependant, cela peut aussi augmenter temporairement l’occupation disque et causer des erreurs “ENOSPC” (No-Space-Remaining)
      Une option au montage existe, “-o allocsize=amount”, qui peut contourner ce problème en limitant des pré-allocation excessives.
Leave the first comment

Activation Windows Server 2012r2 par téléphone

Si comme moi vous vous demandez par où on accède à l’interface d’activation par téléphone de Windows Server 2012R2, utilisez simplement la commande suivante avec une invite de commande avec les droits administrateur :

slui 4

Après quoi, laissez vous guidez par l’assistant. Simple.

 

Sinon méthode plus sioux, notez l’ID d’installation avec la commande (je conseil de faire des groupes de 7 chiffres):

slmgr.vbs /dli

Ensuite appeler le numéro adéquat pioché ici et suivre les instructions pour noter le numéro d’activation à utiliser avec la commande suivante :

slmgr.vbs /ato [ID d'activation]

Hop C’est fini !

Leave the first comment

Oracle RMAN : connected to target database (not started) ORA-03113

Il peut arriver que bien votre instance Oracle soit démarrée, à priori, mais que vous ne puissiez pas vous connecter avec RMAN. Celui-ci vous retourne :

$ rman target /

Recovery Manager: Release 11.2.0.3.0 - Production on Mon Jul 6 14:18:16 2015

Copyright (c) 1982, 2011, Oracle and/or its affiliates.  All rights reserved.

connected to target database (not started)

Dans ce cas. Il peut s’agir de plusieurs choses. Si vos outils accédant à Oracle n’observent pas de soucis et que par contre sqlplus et rman oui, il s’agit d’un problème de déclaration de path. En effet, avec un ‘/’ en fin de path ces deux outils ne fonctionneront pas. Plus d’infos ici.

Sinon, vérifier comme d’habitude le fichier alert.log de l’instance. Par exemple, l’instance peut très bien être démarrée mais inopérante à cause d’un espace de stockage des fichiers de log saturé. Ce qui gèle l’instance et empêchera RMAN de correctement s’y connecter.

Faite de la place sur ces filesystems et le problème sera résolu.

Leave the first comment

VMware : LUN détectées en tant que snapshot par erreur.

Je me suis retrouvé bloqué dans une situation où je ne pouvais pas agrandir une de mes LUN iSCSI. Alors que pas de soucis pour les autres qui étaient sur le même NAS. Je ne comprenais pas pourquoi le bouton Augmenter était grisé dans la fenêtre des propriétés de la LUN.

Cette situation arrive lorsque votre LUN est détectée en tant que snapshot ou réplique de LUN. Cela arrive quand deux LUN présentent le même UUID. Plus d’informations ici :

VMFS Volume Can Be Erroneously Recognized as a Snapshot (6482648)
Snapshot LUN detection in ESX and ESXi (1011385)

Et cette KB VMware aussi qui vous montre comment monter une LUN détectée en tant que snapshot. Cela dit, cela ne résolvera pas votre soucis si vous compter agrandir celle-ci.

Pour se débarrasser de cette situation alors que votre LUN n’est absolument pas un snapshot, démonter celle-ci de vos stockage et ré-ajouter la en resignant le VMFS.

Depuis le client vSphere, choisir un des ESX puis dans l’onglet Configuration aller dans le menu de stockage. Clic droit sur votre LUN puis démonter. Assurez vous de n’avoir aucune VMs s’exécutant depuis cette LUN sinon déplacez-les avec un Storage vMotion à froid ou chaud. Depuis le contrôleur iSCSI dans Adaptateurs de stockage, choisissez votre adaptateur iSCSI et supprimer les targets (cibles) statiques. Elles seront détectées à nouveau ensuite, ceci afin de supprimer la LUN de la vue du stockage et pouvoir l’ajouter à nouveau.

Revenir donc dans la vue du stockage et cliquer sur Ajouter stockage. Cliquer sur Disk/LUN, sélectionner votre LUN précédemment retirée. L’assistant devrait à ce moment vous proposer de garder la signature existante, resigner le VMFS ou carrément le formater.

Garder la signature existante : gardera l’UUID du disque mais celui-ci ne pourra pas être monté si un disque déjà monté possède le même UUID.

Assign a new signature : changera l’UUID du disque et celui-ci sera à nouveau montable si jamais il avait le même UUID qu’un autre disque. Cependant toutes les VM l’utilisant verront leurs disques détaché, il faudra supprimer les disques de ces VMs (juste de la configuration) et les ré-ajouter à nouveau. De même, si des VMs était inventoriées depuis ce datastore il faudrait les retirer puis les ajouter à nouveau.

Une fois resignée, vous pourrez à nouveau utiliser et agrandir cette LUN sans soucis.

Leave the first comment

Powershell : Utiliser foreach

Le passage shell unixien à powershell ne se fait pas sans mal… Le tout objet de MS a du bon, encore faut-il s’y faire.

Voici comment récupérer la liste de services d’un ordinateur et créer un fichier batch.

foreach ($svc in Get-Service) { "sc sdset "+ svc.Name + " D:(A;;CCLCRPRC;;;< --SID_USER-- >)D:(A;;CC;;;AU)(A;;CCLCRPRC;;;IU)(A;;CCLCRPRC;;;SU)(A;;CCLCRPWPRC;;;SY)(A;;KA;;;BA)S:(AU;FA;KA;;;WD)(AU;OIIOFA;GA;;;WD)" | Out-File -Encoding ascii -Append C:\sc.bat }

Analysons cela de plus près.

La condition du foreach, plutôt simple, on apprécie ici ne pas devoir encadré la commande Get-Service entre backquote ou $() pour faire comprendre au shell que c’est une commande. Ici Chaque objet retourné par Get-Service sera stocké dans la variable $svc.
Ensuite viens le traitement, entre accolades, ici je voulais créer un script batch. On écrit donc tout simplement la ligne en veillant à sortir $svc.Name d’entre accolade sans quoi cela sera la clé et non la valeur qui sera affichée. Puis petite subtilité, ne pas utilisé la redirection >> ou > pour mettre le contenu dans un fichier directement. En effet,cela aura pour effet de stocker ce contenu en utf16… Préférez plutôt piper la ligne vers la commande Out-File (c’est en faite elle qui est appelée avec les > et >> mais sans l’option d’encodage) à qui on spécifiera l’encodage de sortie, en n’oubliant pas l’option Append pour un équivalent des >>.

Il ne vous reste plus qu’à exécuter votre batch :)

NE PAS CHANGER EN MASSE AVEC LA COMMANDE F0URNIE LES DROITS SUR LES SERVICES !!!! CELA EMPECHERA LE SYSTEME DE CORRECTEMENT FONCTIONNER.

Leave the first comment

Graphite : Prendre en compte un changement dans la politique de rétention

La politique de rétention avec graphite est configurée dans le fichier storage-schemas.conf, que vous trouverez soit dans /opt/graphite/conf lorsqu’installé à partir des sources ou /etc/carbon lorsqu’installé par paquet RPM (et sûrement debian aussi). Je vous invite à lire la docs associée pour plus de détails sur comment ce fichier est construit.

L’édition de ce fichier ne suffit pas. L’espace pour stocker les métriques est pré-alloué et le fichier prévu pour acceuillir les nouvelles données. Il faut passer par une étape intermédiaire si vous voulez appliquer une nouvelle politique de rétention aux métriques déjà enregistrées qui redimensionnera le fichier. Ou bien il est possible aussi de supprimer les métriques à modifier qui seront recréer au redémarrage de carbon avec la bonne dimension.

Pour redimensionner une métrique existante, il faut utiliser la commande whisper-resize ainsi :

whisper-resize  timePerPoint:timeToStore

Par défaut la rétention est de 1 point par minute pendant 1 journée, soit 60:1d. Si par exemple, vous voulez passer à 1 point toutes les 5minutes pendant 1an, soit 5m:395d pour la métrique Cpu de votre serveur, la commande sera :

whisper-resize /var/lib/carbon/whisper/serveur/cpu/cpu_usage.wsp 5m:395d
Leave the first comment