Maj section « Rotation et compression des logs » avec désactivation des logs du GC

This commit is contained in:
whirigoyen 2023-03-10 10:35:01 +01:00
parent 36f6d10867
commit 6007516e64

View file

@ -186,31 +186,25 @@ En l'indiquant dans une crontab elle sera exécutée quand vous le souhaitez, ex
10 1 * * * /path/to/rotate_elasticsearch_logs.sh
~~~
Le ramasse-miettes de la JVM produit aussi des logs, mais la JVM ne permet pas de faire leur rotation avec le jour dans le nom du fichier. A cause de cela, on ne peut pas juste mettre en place un simple cron de compression (car cela perturbe complètement la numérotation). A la place, on désactive la rotation par la JVM et on met en place un `logrotate` à la place :
Créer un fichier `/etc/elasticsearch/jvm.options.d/<MY_CUSTOM_OPTS>.options` et y ajouter :
On désactive aussi les logs du ramasse-miettes de la JVM, qui peut être très verbeux :
~~~
-Xlog:gc*,gc+age=trace,safepoint:file=/var/log/elasticsearch/gc.log:utctime,pid,tags:filecount=0
/etc/elasticsearch/jvm.options
### JDK 8 GC logging
#8:-XX:+PrintGCDetails
#8:-XX:+PrintGCDateStamps
#8:-XX:+PrintTenuringDistribution
#8:-XX:+PrintGCApplicationStoppedTime
#8:-Xloggc:/var/log/elasticsearch/gc.log
#8:-XX:+UseGCLogFileRotation
#8:-XX:NumberOfGCLogFiles=32
#8:-XX:GCLogFileSize=64m
## JDK 9+ GC logging
#9-:-Xlog:gc*,gc+age=trace,safepoint:file=/var/log/elasticsearch/gc.log:utctime,pid,tags:filecount=32,filesize=64m
~~~
Puis redémarrer le service `elasticsearch`.
Et créer `/etc/logrotate.d/elasticsearch` :
~~~
/var/log/elasticsearch/gc.log {
su elasticsearch elasticsearch
daily
rotate 365
compress
nodelaycompress
missingok
copytruncate
dateext
dateformat .%Y-%m-%d
}
~~~
Puis redémarrer ElasticSearch (lunité systemd ne propose pas de reload) : `systemctl restart elasticsearch`.
On peut ensuite faire le ménage et compresser les anciens `/var/log/elasticsearch/gc.log.??`, par exemple avec :