Quand un FortiAnalyzer n’est pas joignable (reboot, upgrade, etc), un FortiGate, même sans disque, garde les logs en cache mais dans une certaine limite.
Il est possible de voir la quantité de logs en cache ainsi que la quantité de logs perdus dans le menu "Security Fabric > Settings" ou dans "Log & Report > Log Settings"
Mais quelle est donc cette limite me direz-vous ?
A. No Limit, le commercial nous a vendu 2 FAZ ;
B ? La réponse B
C. FortiGate is buffering logs when FAZ is unavailable
Le processus utilisé dans ce cas est miglogd, ce processus met en cache les logs lorsque le FortiAnalyzer n'est pas accessible.
Quand la valeur maximale du cache est atteinte, le process miglogd va supprimer les plus anciens et comptera les échecs.
Lorsque la connexion avec le FortiAnalyzer est rétablie, le process miglogd envoie automatiquement les logs mis en cache.
La commande suivante permet d'afficher les statistiques des logs envoyés au FortiAnalyzer mais surtout d'afficher l'occupation et la valeur maximum de la "Queue" :
# diagnose test application miglogd 6
mem=1210674, disk=0, alert=0, alarm=0, sys=0, faz=193766, webt=0, fds=0
interface-missed=68849
Queue: maximum=16069 current:1606
global log dev statistics:
faz 0: (logs) sent=197003, failed=3169196, cached=3229, relayed=0
faz 0: (packets) sent=74099, failed=1440465, cached=1606, relayed=0
La taille maximale de toutes les files d'attente est = total_system_memory/100/PacketSize
La taille maximale de la file d'attente est une limite de capacité partagée entre toutes les files d'attente, ce qui signifie que chaque file d'attente peut atteindre une taille maximale, mais doit être partagée avec les files d'attente des autres processus.
Par exemple pour un 60D :
diagnose hardware sysinfo memory donne : MemTotal : 1883176 kB
Donc ce sera (1883176*1024)/100/1200 =16069 (Ce résultat est aussi donné par la première commande miglogd)