ONYX - 9.0 - Exploitation - Guide d'exploitation ONYX Server sur Linux

Différence entre versions

De MappingDoc
(Cette version a été marquée pour être traduite)
Ligne 1 : Ligne 1 :
 
<languages/>
 
<languages/>
 
<translate>
 
<translate>
=== Introduction ===
+
=== Introduction === <!--T:1-->
  
 +
<!--T:2-->
 
Cet article est un exemple type de dossier d’exploitation ONYX Server sur Linux. Il est à adapter en fonction de votre fonctionnement interne.  
 
Cet article est un exemple type de dossier d’exploitation ONYX Server sur Linux. Il est à adapter en fonction de votre fonctionnement interne.  
  
 +
<!--T:3-->
 
Il concerne exclusivement ONYX Server. L’administration d’Apache web server (arrêt / redémarrage) n’est pas  décrite dans cet article.
 
Il concerne exclusivement ONYX Server. L’administration d’Apache web server (arrêt / redémarrage) n’est pas  décrite dans cet article.
  
=== Généralités ===
+
=== Généralités === <!--T:4-->
 
==== Sélection de l’instance Mapping ====
 
==== Sélection de l’instance Mapping ====
 
Il est possible d’installer plusieurs instances différentes de ONYX Server sur le même serveur Unix/Linux. De ce fait, avant toute action en ligne de commande, il est impératif de spécifier l’environnement Mapping désiré. Cela se fait en modifiant la variable d’environnement MAPPING_PATH.
 
Il est possible d’installer plusieurs instances différentes de ONYX Server sur le même serveur Unix/Linux. De ce fait, avant toute action en ligne de commande, il est impératif de spécifier l’environnement Mapping désiré. Cela se fait en modifiant la variable d’environnement MAPPING_PATH.
  
 +
<!--T:5-->
 
En interactif : avec la commande "mappingenv"
 
En interactif : avec la commande "mappingenv"
 
  -bash-4.2$ mappingenv
 
  -bash-4.2$ mappingenv
Ligne 18 : Ligne 21 :
 
  bash-4.2$
 
  bash-4.2$
  
 +
<!--T:6-->
 
La liste des environnements proposés est basée sur le fichier /etc/mappingtab
 
La liste des environnements proposés est basée sur le fichier /etc/mappingtab
  
 +
<!--T:7-->
 
Par défaut, la commande mappingenv se trouve dans « /bin »
 
Par défaut, la commande mappingenv se trouve dans « /bin »
 
                  
 
                  
 
Dans un script : Il faut exporter la variable d’environnement MAPPING_PATH avec le chemin complet du fichier mapping.conf correspondant à l’environnement Mapping désiré.
 
Dans un script : Il faut exporter la variable d’environnement MAPPING_PATH avec le chemin complet du fichier mapping.conf correspondant à l’environnement Mapping désiré.
  
  export MAPPING_PATH=/apps/mapping/conf/mapping.conf
+
  <!--T:8-->
 +
export MAPPING_PATH=/apps/mapping/conf/mapping.conf
  
=== Les fichiers log ===
+
=== Les fichiers log === <!--T:9-->
 
==== Généralités sur les fichiers log ====
 
==== Généralités sur les fichiers log ====
 
La plupart des fichiers de log Mapping ne sont pas au format texte, et donc non éditables en l’état.
 
La plupart des fichiers de log Mapping ne sont pas au format texte, et donc non éditables en l’état.
Ligne 34 : Ligne 40 :
  
  
 +
<!--T:10-->
 
Pour plus d’information sur cette commande :  
 
Pour plus d’information sur cette commande :  
 
  /apps/mapping/bin/map_log_txt --help
 
  /apps/mapping/bin/map_log_txt --help
  
 +
<!--T:11-->
 
Exemple d’affichage du contenu du fichier log du map_lpd :
 
Exemple d’affichage du contenu du fichier log du map_lpd :
 
  /apps/mapping/bin/map_log_txt -log_file:/apps/mapping/spool/logs/map_lpd.log
 
  /apps/mapping/bin/map_log_txt -log_file:/apps/mapping/spool/logs/map_lpd.log
  
==== Fichiers log courants ====
+
==== Fichiers log courants ==== <!--T:12-->
 
La plupart des fichiers log se trouvent dans le répertoire /apps/mapping/spool/logs.
 
La plupart des fichiers log se trouvent dans le répertoire /apps/mapping/spool/logs.
  
 +
<!--T:13-->
 
Exemples de fichiers log :
 
Exemples de fichiers log :
  
 +
<!--T:14-->
 
{| class="wikitable"
 
{| class="wikitable"
 
|-
 
|-
Ligne 56 : Ligne 66 :
 
|}
 
|}
  
 +
<!--T:15-->
 
Pour y accéder via l’interface : « Menu principal » / « Consulter la log »
 
Pour y accéder via l’interface : « Menu principal » / « Consulter la log »
  
==== Fichiers log liés aux sorties standards et erreur ====
+
==== Fichiers log liés aux sorties standards et erreur ==== <!--T:16-->
 
  /apps/mapping/temp/stdout.txt
 
  /apps/mapping/temp/stdout.txt
 
  /apps/mapping/temp/stderr.txt
 
  /apps/mapping/temp/stderr.txt
  
 +
<!--T:17-->
 
Ce sont des fichiers textes éditables tels quels sans conversion.
 
Ce sont des fichiers textes éditables tels quels sans conversion.
  
==== Fichiers log des travaux présents dans le spooler ====
+
==== Fichiers log des travaux présents dans le spooler ==== <!--T:18-->
 
Chaque travail possède son propre fichier log. Ces fichiers se trouvent dans le répertoire /apps/mapping/spool/global. Ce sont les fichiers commençant par la lettre L suivie du numéro de travail (MAP_JOBNUM).
 
Chaque travail possède son propre fichier log. Ces fichiers se trouvent dans le répertoire /apps/mapping/spool/global. Ce sont les fichiers commençant par la lettre L suivie du numéro de travail (MAP_JOBNUM).
 
 
Ligne 72 : Ligne 84 :
 
  ps -eaf | grep map
 
  ps -eaf | grep map
  
 +
<!--T:19-->
 
{| class="wikitable"
 
{| class="wikitable"
 
|-
 
|-
Ligne 95 : Ligne 108 :
 
|}
 
|}
  
 +
<!--T:20-->
 
D’autres processus préfixés par « map_ » peuvent également apparaitre s’ils sont invoqués notamment via des scripts ou dans le workflow.
 
D’autres processus préfixés par « map_ » peuvent également apparaitre s’ils sont invoqués notamment via des scripts ou dans le workflow.
  
 +
<!--T:21-->
 
 
  
==== Démarrage et arrêt des processus Mapping ====
+
==== Démarrage et arrêt des processus Mapping ==== <!--T:22-->
 
=====<u> Démarrage du spooler</u> =====
 
=====<u> Démarrage du spooler</u> =====
  
 +
<!--T:23-->
 
La commande suivante lance le processus map_daemon ainsi que son fils map_lpd
 
La commande suivante lance le processus map_daemon ainsi que son fils map_lpd
 
  export MAPPING_PATH=/apps/mapping/conf/mapping.conf  
 
  export MAPPING_PATH=/apps/mapping/conf/mapping.conf  
 
  /apps/mapping/bin/map_daemon start
 
  /apps/mapping/bin/map_daemon start
  
 +
<!--T:24-->
 
Lors du démarrage du processus map_daemon, un fichier flag contenant le pid du processus map_daemon est créé dans le répertoire spool. Sa présence bloque le démarrage du processus.
 
Lors du démarrage du processus map_daemon, un fichier flag contenant le pid du processus map_daemon est créé dans le répertoire spool. Sa présence bloque le démarrage du processus.
 
  /apps/mapping/spool/map_daemon.ID
 
  /apps/mapping/spool/map_daemon.ID
  
=====<u> Arrêt du spooler</u> =====
+
=====<u> Arrêt du spooler</u> ===== <!--T:25-->
  
 +
<!--T:26-->
 
La commande suivante arrête proprement le processus map_daemon ainsi que son fils map_lpd
 
La commande suivante arrête proprement le processus map_daemon ainsi que son fils map_lpd
 
  export MAPPING_PATH=/apps/mapping/conf/mapping.conf
 
  export MAPPING_PATH=/apps/mapping/conf/mapping.conf
 
  /apps/mapping/bin/map_daemon stop
 
  /apps/mapping/bin/map_daemon stop
  
 +
<!--T:27-->
 
Attention : si le traitement des robots « scanfolder » consiste à envoyer un fichier dans une file d’attente du spooler, l’arrêt du map_daemon provoquera une erreur à chaque traitement de fichier. Il est donc impératif d’arrêter les robots « scanfolder » avant d’arrêter le map_daemon.
 
Attention : si le traitement des robots « scanfolder » consiste à envoyer un fichier dans une file d’attente du spooler, l’arrêt du map_daemon provoquera une erreur à chaque traitement de fichier. Il est donc impératif d’arrêter les robots « scanfolder » avant d’arrêter le map_daemon.
  
=====<u> Démarrage des robots « scanfolder »</u> =====
+
=====<u> Démarrage des robots « scanfolder »</u> ===== <!--T:28-->
  
 +
<!--T:29-->
 
La commande suivante permet de démarrer un robot « scanfolder »
 
La commande suivante permet de démarrer un robot « scanfolder »
 
  export MAPPING_PATH=/apps/mapping/conf/mapping.conf
 
  export MAPPING_PATH=/apps/mapping/conf/mapping.conf
 
  /apps/mapping/bin/map_scanfolder -name:nom_du_robot
 
  /apps/mapping/bin/map_scanfolder -name:nom_du_robot
  
 +
<!--T:30-->
 
Exemple de script pour démarrer tous les robots :
 
Exemple de script pour démarrer tous les robots :
 
  export MAPPING_PATH=/apps/mapping/conf/mapping.conf
 
  export MAPPING_PATH=/apps/mapping/conf/mapping.conf
Ligne 131 : Ligne 152 :
 
  done
 
  done
  
 +
<!--T:31-->
 
Lors du démarrage du processus map_scanfolder, un fichier flag contenant le pid du processus map_scanfolder est créé dans le répertoire temp. Sa présence bloque le démarrage du processus. Il faut donc le supprimer.
 
Lors du démarrage du processus map_scanfolder, un fichier flag contenant le pid du processus map_scanfolder est créé dans le répertoire temp. Sa présence bloque le démarrage du processus. Il faut donc le supprimer.
 
  /apps/mapping/temp/_apps_mapping_temp_nom_du_robot_map_scanfolder.ID
 
  /apps/mapping/temp/_apps_mapping_temp_nom_du_robot_map_scanfolder.ID
  
 +
<!--T:32-->
 
Attention : la suppression de ce fichier .ID doit être effectuée en connaissance de cause, c’est à dire uniquement si le robot n’est pas en cours d’exécution. En effet, en cas de suppression de ce fichier, il est alors possible de lancer une autre instance du même robot, ce qui provoque des conflits d’accès simultanés aux mêmes fichiers.
 
Attention : la suppression de ce fichier .ID doit être effectuée en connaissance de cause, c’est à dire uniquement si le robot n’est pas en cours d’exécution. En effet, en cas de suppression de ce fichier, il est alors possible de lancer une autre instance du même robot, ce qui provoque des conflits d’accès simultanés aux mêmes fichiers.
  
=====<u> Arrêt des robots « scanfolder »</u> =====
+
=====<u> Arrêt des robots « scanfolder »</u> ===== <!--T:33-->
  
 +
<!--T:34-->
 
La commande suivante arrête un robot « scanfolder »
 
La commande suivante arrête un robot « scanfolder »
 
  export MAPPING_PATH=/apps/mapping/conf/mapping.conf
 
  export MAPPING_PATH=/apps/mapping/conf/mapping.conf
 
  /apps/mapping/bin/map_scanfolder -stop -name:nom_du_robot
 
  /apps/mapping/bin/map_scanfolder -stop -name:nom_du_robot
  
 +
<!--T:35-->
 
Exemple de script pour arrêter tous les robots :
 
Exemple de script pour arrêter tous les robots :
 
  export MAPPING_PATH=/apps/mapping/conf/mapping.conf
 
  export MAPPING_PATH=/apps/mapping/conf/mapping.conf
Ligne 150 : Ligne 175 :
 
  done
 
  done
  
==== Les processus à monitorer ====
+
==== Les processus à monitorer ==== <!--T:36-->
 
=====<u> map_daemon et map_lpd</u> =====
 
=====<u> map_daemon et map_lpd</u> =====
 
Ces 2 processus sont des services et doivent être constamment en cours d’exécution. Comme ils sont forkés régulièrement, il peut éventuellement y en avoir plusieurs à instant donné.
 
Ces 2 processus sont des services et doivent être constamment en cours d’exécution. Comme ils sont forkés régulièrement, il peut éventuellement y en avoir plusieurs à instant donné.
Ligne 157 : Ligne 182 :
 
  mapadmin 27424 29551  0 Oct30 ?  00:00:00 /apps/mapping/bin/map_lpd -port:515 -nbfork:100
 
  mapadmin 27424 29551  0 Oct30 ?  00:00:00 /apps/mapping/bin/map_lpd -port:515 -nbfork:100
  
=====<u> map_scanfolder</u> =====
+
=====<u> map_scanfolder</u> ===== <!--T:37-->
 
Il y a autant de processus map_scanfolder que de robot en cours d’exécution. Ils sont identifiés grâce à leur option « -name ». Ils sont indépendants les uns des autres, mais également indépendants du map_daemon.  
 
Il y a autant de processus map_scanfolder que de robot en cours d’exécution. Ils sont identifiés grâce à leur option « -name ». Ils sont indépendants les uns des autres, mais également indépendants du map_daemon.  
 
  mapadmin  8271  1  0 17:02 ? 00:00:00 /apps/mapping/bin/map_scanfolder -name:test
 
  mapadmin  8271  1  0 17:02 ? 00:00:00 /apps/mapping/bin/map_scanfolder -name:test
  
=====<u> httpd </u> =====
+
=====<u> httpd </u> ===== <!--T:38-->
 
Le bon fonctionnement d’Apache peut être contrôlé par la présence du processus httpd. Ce processus est souvent forké, d’où la présence de plusieurs lignes dans la liste des processus.
 
Le bon fonctionnement d’Apache peut être contrôlé par la présence du processus httpd. Ce processus est souvent forké, d’où la présence de plusieurs lignes dans la liste des processus.
 
  -bash-4.2$ ps -eaf | grep httpd
 
  -bash-4.2$ ps -eaf | grep httpd
Ligne 172 : Ligne 197 :
 
  apache  16301 11849  0 08:56 ?        00:00:00 /usr/sbin/httpd -DFOREGROUND
 
  apache  16301 11849  0 08:56 ?        00:00:00 /usr/sbin/httpd -DFOREGROUND
  
==== Actions en cas de crash d’un processus Mapping ====
+
==== Actions en cas de crash d’un processus Mapping ==== <!--T:39-->
 
=====<u> Crash du map_daemon</u> =====  
 
=====<u> Crash du map_daemon</u> =====  
 
1- Tenter un arrêt propre du spooler Mapping :
 
1- Tenter un arrêt propre du spooler Mapping :
Ligne 178 : Ligne 203 :
 
  /apps/mapping/bin/map_daemon stop
 
  /apps/mapping/bin/map_daemon stop
  
 +
<!--T:40-->
 
2- Arrêter proprement les processus scanfolder actifs (cf. démarrage et arrêt des processus Mapping)
 
2- Arrêter proprement les processus scanfolder actifs (cf. démarrage et arrêt des processus Mapping)
  
 +
<!--T:41-->
 
3- Killer (kill -9) les autres processus mapping encore actifs :
 
3- Killer (kill -9) les autres processus mapping encore actifs :
 
* map_daemon
 
* map_daemon
Ligne 187 : Ligne 214 :
 
* map_809
 
* map_809
  
 +
<!--T:42-->
 
A noter que tous ces processus peuvent devenir fils du processus système (PID=1) en cas de crash de leur processus « père », point commun : leur propriétaire est "mapadmin".
 
A noter que tous ces processus peuvent devenir fils du processus système (PID=1) en cas de crash de leur processus « père », point commun : leur propriétaire est "mapadmin".
  
 +
<!--T:43-->
 
Exemple (à adapter selon le système et la configuration) :
 
Exemple (à adapter selon le système et la configuration) :
 
  ps -f -U mapadmin | grep -v bash | grep -v "ps \-f" | grep -v "UID" | while read LINE
 
  ps -f -U mapadmin | grep -v bash | grep -v "ps \-f" | grep -v "UID" | while read LINE
Ligne 196 : Ligne 225 :
 
  done
 
  done
  
 +
<!--T:44-->
 
4- Supprimer le fichier flag /apps/mapping/spool/map_daemon.ID
 
4- Supprimer le fichier flag /apps/mapping/spool/map_daemon.ID
  
 +
<!--T:45-->
 
5- Démarrer le spooler Mapping
 
5- Démarrer le spooler Mapping
 
  /apps/mapping/bin/map_daemon start
 
  /apps/mapping/bin/map_daemon start
  
=====<u> Crash du map_lpd</u> =====
+
=====<u> Crash du map_lpd</u> ===== <!--T:46-->
 
Si le processus map_daemon est toujours actif, il est possible de redémarrer le map_lpd à l’aide de la commande suivante :
 
Si le processus map_daemon est toujours actif, il est possible de redémarrer le map_lpd à l’aide de la commande suivante :
 
  export MAPPING_PATH=/apps/mapping/conf/mapping.conf
 
  export MAPPING_PATH=/apps/mapping/conf/mapping.conf
 
  /apps/mapping/bin/map_control -start_lpd
 
  /apps/mapping/bin/map_control -start_lpd
  
=====<u> Crash d’un robot « scanfolder »</u>=====
+
=====<u> Crash d’un robot « scanfolder »</u>===== <!--T:47-->
 
Lors du démarrage d'un robot, un fichier avec le nom du robot et l'extension ".ID" est créé, ainsi qu'un fichier avec le numéro de process et l'extension .pid
 
Lors du démarrage d'un robot, un fichier avec le nom du robot et l'extension ".ID" est créé, ainsi qu'un fichier avec le numéro de process et l'extension .pid
 
Exemple :  
 
Exemple :  
Ligne 212 : Ligne 243 :
 
  4656.pid
 
  4656.pid
  
 +
<!--T:48-->
 
En cas de crash du robot, ces fichiers ne sont pas supprimés et empêche le redémarrage du robot.
 
En cas de crash du robot, ces fichiers ne sont pas supprimés et empêche le redémarrage du robot.
 
Par conséquent, pour permettre le redémarrage du robot, le fichier « .ID » correspondant au robot arrêté doit être supprimé du répertoire « /apps/mapping/temp »
 
Par conséquent, pour permettre le redémarrage du robot, le fichier « .ID » correspondant au robot arrêté doit être supprimé du répertoire « /apps/mapping/temp »
  
=== Opérations de maintenance ===
+
=== Opérations de maintenance === <!--T:49-->
 
==== Nettoyage courant ====
 
==== Nettoyage courant ====
 
Les commandes suivantes peuvent être planifiées très régulièrement. Dans l’idéal, au moins une fois par jour.
 
Les commandes suivantes peuvent être planifiées très régulièrement. Dans l’idéal, au moins une fois par jour.
Ligne 222 : Ligne 254 :
 
  /apps/mapping/bin/map_cron -date
 
  /apps/mapping/bin/map_cron -date
  
=====<u> Suppression des travaux non effectués (quel que soit leur statut), après 30 jours</u> =====
+
=====<u> Suppression des travaux non effectués (quel que soit leur statut), après 30 jours</u> ===== <!--T:50-->
 
  export MAPPING_PATH=/apps/mapping/conf/mapping.conf  
 
  export MAPPING_PATH=/apps/mapping/conf/mapping.conf  
 
  /apps/mapping/bin/map_cron -cleanspool -relative_date:30/0/0.  # jour/mois/années
 
  /apps/mapping/bin/map_cron -cleanspool -relative_date:30/0/0.  # jour/mois/années
  
=====<u> Suppression des fichiers de session web obsolètes</u> =====
+
=====<u> Suppression des fichiers de session web obsolètes</u> ===== <!--T:51-->
 
Fichiers context_menu.*, historique.*, et *.id du dossier /apps/mapping/temp
 
Fichiers context_menu.*, historique.*, et *.id du dossier /apps/mapping/temp
 
  export MAPPING_PATH=/apps/mapping/conf/mapping.conf  
 
  export MAPPING_PATH=/apps/mapping/conf/mapping.conf  
 
  /apps/mapping/bin/map_cron -cleanid
 
  /apps/mapping/bin/map_cron -cleanid
  
=====<u> Suppression des fichiers temporaires de conversion XPS et de Workflow</u> =====
+
=====<u> Suppression des fichiers temporaires de conversion XPS et de Workflow</u> ===== <!--T:52-->
 
Ces fichiers se trouvent dans le dossier temporaire /apps/mapping/temp.
 
Ces fichiers se trouvent dans le dossier temporaire /apps/mapping/temp.
 
Normalement, ils sont supprimés automatiquement. Mais en cas de problème (crash, interruption forcée…), ils peuvent subsister dans le dossier temp.
 
Normalement, ils sont supprimés automatiquement. Mais en cas de problème (crash, interruption forcée…), ils peuvent subsister dans le dossier temp.
Ligne 241 : Ligne 273 :
 
  find /apps/mapping/temp -name "*.[0-9][0-9]" -mtime +2 -exec rm -f {} \;
 
  find /apps/mapping/temp -name "*.[0-9][0-9]" -mtime +2 -exec rm -f {} \;
  
==== Opérations de nettoyage et de rotations des logs ====
+
==== Opérations de nettoyage et de rotations des logs ==== <!--T:53-->
 
Pour des raisons pratiques, les commandes suivantes ne doivent pas être planifiées plus d’une fois par jour. Cela afin de ne pas multiplier les archives créées, et éviter de perdre des derniers jours de logs. La fréquence idéale est de 2 fois par semaine, par exemple le lundi soir et le jeudi soir, avant le déclenchement des batchs de nuit.
 
Pour des raisons pratiques, les commandes suivantes ne doivent pas être planifiées plus d’une fois par jour. Cela afin de ne pas multiplier les archives créées, et éviter de perdre des derniers jours de logs. La fréquence idéale est de 2 fois par semaine, par exemple le lundi soir et le jeudi soir, avant le déclenchement des batchs de nuit.
 
=====<u> Archivage des logs</u> =====
 
=====<u> Archivage des logs</u> =====
Ligne 248 : Ligne 280 :
 
  /apps/mapping/bin/map_cron -cleanlog -folder:/apps/mapping/spool/logs -format:TXT
 
  /apps/mapping/bin/map_cron -cleanlog -folder:/apps/mapping/spool/logs -format:TXT
  
 +
<!--T:54-->
 
Résultat :
 
Résultat :
 
  bash-4.2$ ls -lrt /apps/mapping/spool/logs/*.zip
 
  bash-4.2$ ls -lrt /apps/mapping/spool/logs/*.zip
Ligne 253 : Ligne 286 :
 
  -rw-r--r-- 1 mapadmin staff  58479965  7 nov.  /apps/mapping/spool/logs/2018_11_07_12_32.zip
 
  -rw-r--r-- 1 mapadmin staff  58479965  7 nov.  /apps/mapping/spool/logs/2018_11_07_12_32.zip
  
=====<u> Rotation des logs des sorties standard et erreur</u> =====
+
=====<u> Rotation des logs des sorties standard et erreur</u> ===== <!--T:55-->
 
  mv  /apps/mapping/temp/stderr.txt  /apps/mapping/temp/stderr.txt.bak  
 
  mv  /apps/mapping/temp/stderr.txt  /apps/mapping/temp/stderr.txt.bak  
 
  mv  /apps/mapping/temp/stdout.txt  /apps/mapping/temp/stdout.txt.bak
 
  mv  /apps/mapping/temp/stdout.txt  /apps/mapping/temp/stdout.txt.bak
  
=====<u> Suppression des archives de logs de plus de 30 jours</u> =====
+
=====<u> Suppression des archives de logs de plus de 30 jours</u> ===== <!--T:56-->
 
  find /apps/mapping/spool/logs -name "*.zip" -mtime +30 -exec rm -f {} \;
 
  find /apps/mapping/spool/logs -name "*.zip" -mtime +30 -exec rm -f {} \;
  
=====<u>Archivage des logs</u>=====
+
=====<u>Archivage des logs</u>===== <!--T:57-->
 
Cette commande permet de faire une conversion texte de tous les fichiers de logs, puis de les archiver dans un fichier zip horodaté.
 
Cette commande permet de faire une conversion texte de tous les fichiers de logs, puis de les archiver dans un fichier zip horodaté.
 
export MAPPING_PATH=/apps/mapping/conf/mapping.conf  
 
export MAPPING_PATH=/apps/mapping/conf/mapping.conf  
 
  /apps/mapping/bin/map_cron -cleanlog -folder:/apps/mapping/spool/logs -format:TXT
 
  /apps/mapping/bin/map_cron -cleanlog -folder:/apps/mapping/spool/logs -format:TXT
  
 +
<!--T:58-->
 
Résultat :
 
Résultat :
 
  bash-4.2$ ls -lrt /apps/mapping/spool/logs/*.zip
 
  bash-4.2$ ls -lrt /apps/mapping/spool/logs/*.zip
Ligne 270 : Ligne 304 :
 
  -rw-r--r-- 1 mapadmin staff  58479965  7 nov.  /apps/mapping/spool/logs/2018_11_07_12_32.zip
 
  -rw-r--r-- 1 mapadmin staff  58479965  7 nov.  /apps/mapping/spool/logs/2018_11_07_12_32.zip
  
=====<u> Rotation des logs des sorties standard et erreur</u> =====
+
=====<u> Rotation des logs des sorties standard et erreur</u> ===== <!--T:59-->
 
  mv  /apps/mapping/temp/stderr.txt  /apps/mapping/temp/stderr.txt.bak  
 
  mv  /apps/mapping/temp/stderr.txt  /apps/mapping/temp/stderr.txt.bak  
 
  mv  /apps/mapping/temp/stdout.txt  /apps/mapping/temp/stdout.txt.bak
 
  mv  /apps/mapping/temp/stdout.txt  /apps/mapping/temp/stdout.txt.bak
  
=====<u> Suppression des archives de logs de plus de 30 jours</u>=====
+
=====<u> Suppression des archives de logs de plus de 30 jours</u>===== <!--T:60-->
 
  find /apps/mapping/spool/logs -name "*.zip" -mtime +30 -exec rm -f {} \;
 
  find /apps/mapping/spool/logs -name "*.zip" -mtime +30 -exec rm -f {} \;
 
</translate>
 
</translate>

Version du 8 août 2019 à 09:58

Autres langues :
English • ‎français

Introduction

Cet article est un exemple type de dossier d’exploitation ONYX Server sur Linux. Il est à adapter en fonction de votre fonctionnement interne.

Il concerne exclusivement ONYX Server. L’administration d’Apache web server (arrêt / redémarrage) n’est pas décrite dans cet article.

Généralités

Sélection de l’instance Mapping

Il est possible d’installer plusieurs instances différentes de ONYX Server sur le même serveur Unix/Linux. De ce fait, avant toute action en ligne de commande, il est impératif de spécifier l’environnement Mapping désiré. Cela se fait en modifiant la variable d’environnement MAPPING_PATH.

En interactif : avec la commande "mappingenv"

-bash-4.2$ mappingenv
Quel environnement voulez-vous charger :
1 : Mapping_PROD   /apps/mapping/conf/mapping.conf 8002
Entrez le nom ou le numéro de l'environnement :1
bash-4.2$

La liste des environnements proposés est basée sur le fichier /etc/mappingtab

Par défaut, la commande mappingenv se trouve dans « /bin »

Dans un script : Il faut exporter la variable d’environnement MAPPING_PATH avec le chemin complet du fichier mapping.conf correspondant à l’environnement Mapping désiré.

export MAPPING_PATH=/apps/mapping/conf/mapping.conf

Les fichiers log

Généralités sur les fichiers log

La plupart des fichiers de log Mapping ne sont pas au format texte, et donc non éditables en l’état. Pour les visualiser, il existe 2 méthodes :

  • Via l’interface web de Mapping
  • En utilisant la commande /apps/mapping/bin/map_log_txt


Pour plus d’information sur cette commande :

/apps/mapping/bin/map_log_txt --help

Exemple d’affichage du contenu du fichier log du map_lpd :

/apps/mapping/bin/map_log_txt -log_file:/apps/mapping/spool/logs/map_lpd.log

Fichiers log courants

La plupart des fichiers log se trouvent dans le répertoire /apps/mapping/spool/logs.

Exemples de fichiers log :

<nom queue>.log Logs liées aux files d’attente (imprimantes ou points d’entrée)
map_daemon.log Log générale du spooler
map_lpd.log Log du serveur LPD
map_lpr.log Log du client LPR de Mapping s’il est invoqué en ligne de commande

Pour y accéder via l’interface : « Menu principal » / « Consulter la log »

Fichiers log liés aux sorties standards et erreur

/apps/mapping/temp/stdout.txt
/apps/mapping/temp/stderr.txt

Ce sont des fichiers textes éditables tels quels sans conversion.

Fichiers log des travaux présents dans le spooler

Chaque travail possède son propre fichier log. Ces fichiers se trouvent dans le répertoire /apps/mapping/spool/global. Ce sont les fichiers commençant par la lettre L suivie du numéro de travail (MAP_JOBNUM).  

Les processus

Description des principaux processus Mapping

Les processus suivants sont fréquemment rencontrés lors de l’affichage de la liste des processus en cours d’exécution. Notamment avec la commande suivante :

ps -eaf | grep map
map_daemon Processus du spooler, permettant l’orchestration des travaux dans les files d’attente.
map_lpd Processus de réception des travaux envoyés en LPR. C’est un enfant du processus map_daemon.
map_splf Processus permettant notamment d’ajouter un travail dans une file d’attente. C’est un enfant du processus map_lpd, et communique avec le processus map_daemon via le port défini par le paramètre PORT_SOCKET_DAEMON du fichier mapping.conf. Il peut également être déclenché directement en ligne de commande pour agir sur les files d’attentes ou sur les travaux.
map_exec Processus prenant en charge un travail présent dans une file d’attente afin de lui appliquer un traitement (workflow, exécution d’un script, envoi vers une imprimante…). C’est un enfant du processus map_daemon. Il y en a un par file d’attente en cours de traitement.
map_lpr Processus permettant d’envoyer un flux d’impression vers une imprimante avec le protocole LPR. C’est un enfant du processus map_exec. Mais il peut également être invoqué directement dans une commande.
map_809 Processus d’exécution d’un Workflow. C’est un enfant du processus map_exec.
mapcpysplf Processus permettant d’invoquer la composition d’un document. Il peut être déclenché en ligne de commande, dans un script, dans le workflow (map_809)…
map_815UCS Processus de composition d’un document (invoqué par le mapcpysplf).
map_mail Processus permettant d’envoyer un email avec une pièce jointe.
map_scanfolder Processus lié à un robot, permettant de scruter les fichiers dans un dossier afin de lancer un traitement de workflow sur chacun d’entre eux.

D’autres processus préfixés par « map_ » peuvent également apparaitre s’ils sont invoqués notamment via des scripts ou dans le workflow.

Démarrage et arrêt des processus Mapping

Démarrage du spooler

La commande suivante lance le processus map_daemon ainsi que son fils map_lpd

export MAPPING_PATH=/apps/mapping/conf/mapping.conf 
/apps/mapping/bin/map_daemon start

Lors du démarrage du processus map_daemon, un fichier flag contenant le pid du processus map_daemon est créé dans le répertoire spool. Sa présence bloque le démarrage du processus.

/apps/mapping/spool/map_daemon.ID
Arrêt du spooler

La commande suivante arrête proprement le processus map_daemon ainsi que son fils map_lpd

export MAPPING_PATH=/apps/mapping/conf/mapping.conf
/apps/mapping/bin/map_daemon stop

Attention : si le traitement des robots « scanfolder » consiste à envoyer un fichier dans une file d’attente du spooler, l’arrêt du map_daemon provoquera une erreur à chaque traitement de fichier. Il est donc impératif d’arrêter les robots « scanfolder » avant d’arrêter le map_daemon.

Démarrage des robots « scanfolder »

La commande suivante permet de démarrer un robot « scanfolder »

export MAPPING_PATH=/apps/mapping/conf/mapping.conf
/apps/mapping/bin/map_scanfolder -name:nom_du_robot

Exemple de script pour démarrer tous les robots :

export MAPPING_PATH=/apps/mapping/conf/mapping.conf
LISTROBOT=`/apps/mapping/bin/map_scanfolder -listRobot | awk ' { print $2 } '`
for ROBOT in $LISTROBOT
do
/apps/mapping/bin/map_scanfolder -name:${ROBOT}
done

Lors du démarrage du processus map_scanfolder, un fichier flag contenant le pid du processus map_scanfolder est créé dans le répertoire temp. Sa présence bloque le démarrage du processus. Il faut donc le supprimer.

/apps/mapping/temp/_apps_mapping_temp_nom_du_robot_map_scanfolder.ID

Attention : la suppression de ce fichier .ID doit être effectuée en connaissance de cause, c’est à dire uniquement si le robot n’est pas en cours d’exécution. En effet, en cas de suppression de ce fichier, il est alors possible de lancer une autre instance du même robot, ce qui provoque des conflits d’accès simultanés aux mêmes fichiers.

Arrêt des robots « scanfolder »

La commande suivante arrête un robot « scanfolder »

export MAPPING_PATH=/apps/mapping/conf/mapping.conf
/apps/mapping/bin/map_scanfolder -stop -name:nom_du_robot

Exemple de script pour arrêter tous les robots :

export MAPPING_PATH=/apps/mapping/conf/mapping.conf
LISTROBOT=`/apps/mapping/bin/map_scanfolder -listRobot | awk ' { print $2 } '`
for ROBOT in $LISTROBOT
do
/apps/mapping/bin/map_scanfolder -stop -name:${ROBOT}
done

Les processus à monitorer

map_daemon et map_lpd

Ces 2 processus sont des services et doivent être constamment en cours d’exécution. Comme ils sont forkés régulièrement, il peut éventuellement y en avoir plusieurs à instant donné.

-bash-4.1$ ps -eaf | grep map_
mapadmin 29551     1  1 Oct25 ?   04:00:29 /apps/mapping/bin/map_daemon start
mapadmin 27424 29551  0 Oct30 ?   00:00:00 /apps/mapping/bin/map_lpd -port:515 -nbfork:100
map_scanfolder

Il y a autant de processus map_scanfolder que de robot en cours d’exécution. Ils sont identifiés grâce à leur option « -name ». Ils sont indépendants les uns des autres, mais également indépendants du map_daemon.

mapadmin   8271  1  0 17:02 ? 00:00:00 /apps/mapping/bin/map_scanfolder -name:test
httpd

Le bon fonctionnement d’Apache peut être contrôlé par la présence du processus httpd. Ce processus est souvent forké, d’où la présence de plusieurs lignes dans la liste des processus.

-bash-4.2$ ps -eaf | grep httpd
apache    4590 11849  0 10:56 ?        00:00:00 /usr/sbin/httpd -DFOREGROUND
apache    4874 11849  0 08:23 ?        00:00:00 /usr/sbin/httpd -DFOREGROUND
apache    4876 11849  0 08:23 ?        00:00:00 /usr/sbin/httpd -DFOREGROUND
apache    4890 11849  0 08:23 ?        00:00:00 /usr/sbin/httpd -DFOREGROUND
root     11849     1  0 oct.15 ?       00:01:42 /usr/sbin/httpd -DFOREGROUND
apache   15641 11849  0 08:54 ?        00:00:00 /usr/sbin/httpd -DFOREGROUND
apache   16301 11849  0 08:56 ?        00:00:00 /usr/sbin/httpd -DFOREGROUND

Actions en cas de crash d’un processus Mapping

Crash du map_daemon

1- Tenter un arrêt propre du spooler Mapping :

export MAPPING_PATH=/apps/mapping/conf/mapping.conf
/apps/mapping/bin/map_daemon stop

2- Arrêter proprement les processus scanfolder actifs (cf. démarrage et arrêt des processus Mapping)

3- Killer (kill -9) les autres processus mapping encore actifs :

  • map_daemon
  • map_lpd
  • map_exec
  • map_lpr
  • map_809

A noter que tous ces processus peuvent devenir fils du processus système (PID=1) en cas de crash de leur processus « père », point commun : leur propriétaire est "mapadmin".

Exemple (à adapter selon le système et la configuration) :

ps -f -U mapadmin | grep -v bash | grep -v "ps \-f" | grep -v "UID" | while read LINE
do
 PID=`echo $LINE | awk ' { print $2 } '`
 kill -9 $PID
done

4- Supprimer le fichier flag /apps/mapping/spool/map_daemon.ID

5- Démarrer le spooler Mapping

/apps/mapping/bin/map_daemon start
Crash du map_lpd

Si le processus map_daemon est toujours actif, il est possible de redémarrer le map_lpd à l’aide de la commande suivante :

export MAPPING_PATH=/apps/mapping/conf/mapping.conf
/apps/mapping/bin/map_control -start_lpd
Crash d’un robot « scanfolder »

Lors du démarrage d'un robot, un fichier avec le nom du robot et l'extension ".ID" est créé, ainsi qu'un fichier avec le numéro de process et l'extension .pid Exemple :

_apps_mapping_temp_nom_du_robot_map_scanfolder.ID
4656.pid

En cas de crash du robot, ces fichiers ne sont pas supprimés et empêche le redémarrage du robot. Par conséquent, pour permettre le redémarrage du robot, le fichier « .ID » correspondant au robot arrêté doit être supprimé du répertoire « /apps/mapping/temp »

Opérations de maintenance

Nettoyage courant

Les commandes suivantes peuvent être planifiées très régulièrement. Dans l’idéal, au moins une fois par jour.

Suppression des travaux terminés et arrivé à échéance
export MAPPING_PATH=/apps/mapping/conf/mapping.conf 
/apps/mapping/bin/map_cron -date
Suppression des travaux non effectués (quel que soit leur statut), après 30 jours
export MAPPING_PATH=/apps/mapping/conf/mapping.conf 
/apps/mapping/bin/map_cron -cleanspool -relative_date:30/0/0.  # jour/mois/années
Suppression des fichiers de session web obsolètes

Fichiers context_menu.*, historique.*, et *.id du dossier /apps/mapping/temp

export MAPPING_PATH=/apps/mapping/conf/mapping.conf 
/apps/mapping/bin/map_cron -cleanid
Suppression des fichiers temporaires de conversion XPS et de Workflow

Ces fichiers se trouvent dans le dossier temporaire /apps/mapping/temp. Normalement, ils sont supprimés automatiquement. Mais en cas de problème (crash, interruption forcée…), ils peuvent subsister dans le dossier temp. Ce n’est donc pas une situation normale.

find /apps/mapping/temp -name "*cri.tmp"     -mtime +2 -exec rm -f {} \;
find /apps/mapping/temp -name "*ttf.tmp"     -mtime +2 -exec rm -f {} \;
find /apps/mapping/temp -name "compress_*"   -mtime +2 -exec rm -f {} \;
find /apps/mapping/temp -name "*.[0-9]"      -mtime +2 -exec rm -f {} \;
find /apps/mapping/temp -name "*.[0-9][0-9]" -mtime +2 -exec rm -f {} \;

Opérations de nettoyage et de rotations des logs

Pour des raisons pratiques, les commandes suivantes ne doivent pas être planifiées plus d’une fois par jour. Cela afin de ne pas multiplier les archives créées, et éviter de perdre des derniers jours de logs. La fréquence idéale est de 2 fois par semaine, par exemple le lundi soir et le jeudi soir, avant le déclenchement des batchs de nuit.

Archivage des logs

Cette commande permet de faire une conversion texte de tous les fichiers de logs, puis de les archiver dans un fichier zip horodaté.

export MAPPING_PATH=/apps/mapping/conf/mapping.conf 
/apps/mapping/bin/map_cron -cleanlog -folder:/apps/mapping/spool/logs -format:TXT

Résultat :

bash-4.2$ ls -lrt /apps/mapping/spool/logs/*.zip
-rw-r--r-- 1 mapadmin staff 254186924 30 oct.  /apps/mapping/spool/logs/2018_10_30_19_51.zip
-rw-r--r-- 1 mapadmin staff  58479965  7 nov.  /apps/mapping/spool/logs/2018_11_07_12_32.zip
Rotation des logs des sorties standard et erreur
mv  /apps/mapping/temp/stderr.txt  /apps/mapping/temp/stderr.txt.bak 
mv  /apps/mapping/temp/stdout.txt  /apps/mapping/temp/stdout.txt.bak
Suppression des archives de logs de plus de 30 jours
find /apps/mapping/spool/logs -name "*.zip" -mtime +30 -exec rm -f {} \;
Archivage des logs

Cette commande permet de faire une conversion texte de tous les fichiers de logs, puis de les archiver dans un fichier zip horodaté. export MAPPING_PATH=/apps/mapping/conf/mapping.conf

/apps/mapping/bin/map_cron -cleanlog -folder:/apps/mapping/spool/logs -format:TXT

Résultat :

bash-4.2$ ls -lrt /apps/mapping/spool/logs/*.zip
-rw-r--r-- 1 mapadmin staff 254186924 30 oct.  /apps/mapping/spool/logs/2018_10_30_19_51.zip
-rw-r--r-- 1 mapadmin staff  58479965  7 nov.  /apps/mapping/spool/logs/2018_11_07_12_32.zip
Rotation des logs des sorties standard et erreur
mv  /apps/mapping/temp/stderr.txt  /apps/mapping/temp/stderr.txt.bak 
mv  /apps/mapping/temp/stdout.txt  /apps/mapping/temp/stdout.txt.bak
Suppression des archives de logs de plus de 30 jours
find /apps/mapping/spool/logs -name "*.zip" -mtime +30 -exec rm -f {} \;