Projet

Général

Profil

Actions

Evolution #968

ouvert

procédure #946: installation ITOP

documentation cron_itop

Ajouté par Patrick ENGWANG NGUEMA il y a environ un mois.

Statut:
Nouveau
Priorité:
Normal
Début:
31 décembre 2025
Echéance:
% réalisé:

100%

Temps estimé:
1:00 h

Description


📘 Mise en place du cron iTop (mode production)

🎯 Objectif

Mettre en place le cron de maintenance iTop afin d’assurer :

  • le nettoyage automatique (cache, sessions, pièces jointes)
  • l’exécution des tâches asynchrones
  • la stabilité, les performances et la cohérence fonctionnelle d’iTop le tout en arrière-plan, sans bloquer le CLI.

🧠 Contexte

  • Application : iTop (ITSM / CMDB)
  • Exécution : CLI PHP
  • Mode : production
  • Utilisateur système : www-data
  • Authentification : utilisateur iTop dédié

🛠️ Actions réalisées

1️⃣ Identification du script cron iTop

Le script officiel à utiliser est :

/var/www/html/itop/webservices/cron.php

⚠️ Les fichiers suivants sont des templates ou exemples, non exécutables :

  • cron.cmd
  • cron.distrib
  • cron.tpl

2️⃣ Création d’un utilisateur iTop dédié au cron

Dans l’interface web iTop :

  • Administration → Utilisateurs
  • Création d’un utilisateur iTop :

    • Login : cron_itop
    • Mot de passe : fort
    • Profil : Administrator (pour garantir toutes les opérations cron)

📌 L’authentification du cron iTop repose exclusivement sur les utilisateurs iTop (pas Linux, pas MySQL).


3️⃣ Création du répertoire de configuration système

sudo mkdir -p /etc/itop
sudo chown root:www-data /etc/itop
sudo chmod 750 /etc/itop

4️⃣ Création du fichier de paramètres du cron

sudo nano /etc/itop/cron.params

Contenu :

auth_user=cron_itop
auth_pwd=<mot_de_passe_itop>
exec_mode=cli

Sécurisation :

sudo chown root:www-data /etc/itop/cron.params
sudo chmod 640 /etc/itop/cron.params

📌 Le fichier cron.params n’existe pas par défaut dans iTop, il est créé volontairement pour :

  • éviter l’exposition du mot de passe en ligne de commande
  • faciliter l’automatisation
  • renforcer la sécurité

5️⃣ Création du fichier de logs

sudo touch /var/log/itop-cron.log
sudo chown www-data:www-data /var/log/itop-cron.log
sudo chmod 640 /var/log/itop-cron.log

6️⃣ Mise en place du cron système (méthode recommandée)

Édition du crontab de l’utilisateur web :

sudo crontab -u www-data -e

Ajout de la ligne suivante :

*/5 * * * * /usr/bin/php /var/www/html/itop/webservices/cron.php --param_file=/etc/itop/cron.params >> /var/log/itop-cron.log 2>&1

🔎 Détails :

  • Exécution toutes les 5 minutes (recommandation iTop)
  • Chemin PHP absolu (/usr/bin/php)
  • Exécution en arrière-plan
  • Logs centralisés
  • Protection intégrée contre les doubles exécutions

7️⃣ Mise en place de la rotation des logs

Création du fichier logrotate :

sudo nano /etc/logrotate.d/itop

Contenu :

/var/log/itop-cron.log {
    daily
    rotate 14
    compress
    missingok
    notifempty
    copytruncate
}

🧪 Vérifications effectuées

Vérification du cron actif

sudo crontab -u www-data -l

Vérification de l’exécution

sudo tail -f /var/log/itop-cron.log

Messages observés :

  • Starting
  • ExecAsyncTask
  • InlineImageGC
  • Sleeping...
  • Already running... (comportement normal si une exécution précédente est encore active)

Vérification des processus

ps aux | grep cron.php | grep -v grep

➡️ Présence temporaire du process uniquement lors de l’exécution.


🧠 Comportement attendu (normal)

  • iTop empêche automatiquement les exécutions concurrentes
  • Le message “Already running” est une protection interne
  • Aucun impact sur les performances
  • Aucun blocage du CLI

✅ Résultat final

  • Cron iTop opérationnel
  • Exécution en arrière-plan
  • Maintenance automatique active
  • Logs maîtrisés
  • Environnement production-ready

Aucune donnée à afficher

Actions

Formats disponibles : Atom PDF