fix(v1.1.13): socket ownership, correlation bugs, keepalive_seq
Socket Unix / systemd: - RuntimeDirectory=logcorrelator dans logcorrelator.service : systemd recrée /run/logcorrelator avec logcorrelator:logcorrelator à chaque démarrage/restart, éliminant le problème de droits root:root - Ajout de packaging/rpm/logcorrelator-tmpfiles.conf pour recréer le répertoire au boot via systemd-tmpfiles (couche de protection boot) - Retrait de /var/run/logcorrelator du RPM %files et du %post - Dockerfile.package : copie de logcorrelator-tmpfiles.conf dans SOURCES/ Corrélation — bugs: - Fix CRITIQUE emitPendingOrphans : corruption de slice lors de l'expiration simultanée de plusieurs orphelins pour la même clé (aliasing du tableau sous-jacent, orphelins émis en double et fantômes persistants) - Fix HAUT rotateOldestA : événement silencieusement perdu même avec ApacheAlwaysEmit=true ; retourne désormais *CorrelatedLog propagé dans ProcessEvent - Fix MOYEN processSourceB (pending orphan path) : en mode one_to_many, le B event n'était pas bufferisé après corrélation avec un pending orphan A, cassant le Keep-Alive pour les requêtes A2+ sur la même connexion - Fix BAS : suppression du champ mort timer *time.Timer dans pendingOrphan Corrélation — observabilité: - Ajout keepalive_seq (1-based) dans NormalizedEvent : numéro de requête dans la connexion Keep-Alive, incrémenté par processSourceA - Tous les logs orphelins incluent désormais keepalive_seq=N - keepAliveSeqA nettoyé automatiquement à l'expiration du TTL B Tests: 4 nouveaux tests de non-régression (32 tests au total) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This commit is contained in:
5
packaging/rpm/logcorrelator-tmpfiles.conf
Normal file
5
packaging/rpm/logcorrelator-tmpfiles.conf
Normal file
@ -0,0 +1,5 @@
|
||||
# systemd-tmpfiles config for logcorrelator
|
||||
# Recrée /run/logcorrelator avec le bon propriétaire à chaque démarrage,
|
||||
# même si /var/run est un tmpfs vidé au reboot.
|
||||
# Format: type path mode user group age
|
||||
d /run/logcorrelator 0755 logcorrelator logcorrelator -
|
||||
@ -46,6 +46,7 @@ mkdir -p %{buildroot}/var/run/logcorrelator
|
||||
mkdir -p %{buildroot}/var/lib/logcorrelator
|
||||
mkdir -p %{buildroot}/etc/systemd/system
|
||||
mkdir -p %{buildroot}/etc/logrotate.d
|
||||
mkdir -p %{buildroot}/usr/lib/tmpfiles.d
|
||||
|
||||
# Install binary (from BUILD directory)
|
||||
install -m 0755 %{_builddir}/usr/bin/logcorrelator %{buildroot}/usr/bin/logcorrelator
|
||||
@ -60,6 +61,9 @@ install -m 0644 %{_builddir}/etc/systemd/system/logcorrelator.service %{buildroo
|
||||
# Install logrotate config
|
||||
install -m 0644 %{_builddir}/etc/logrotate.d/logcorrelator %{buildroot}/etc/logrotate.d/logcorrelator
|
||||
|
||||
# Install tmpfiles.d config (recrée /run/logcorrelator au boot avec le bon propriétaire)
|
||||
install -m 0644 %{_sourcedir}/logcorrelator-tmpfiles.conf %{buildroot}/usr/lib/tmpfiles.d/logcorrelator.conf
|
||||
|
||||
%post
|
||||
# Create logcorrelator user and group
|
||||
if ! getent group logcorrelator >/dev/null 2>&1; then
|
||||
@ -78,18 +82,16 @@ fi
|
||||
# Create directories
|
||||
mkdir -p /var/lib/logcorrelator
|
||||
mkdir -p /var/log/logcorrelator
|
||||
mkdir -p /var/run/logcorrelator
|
||||
# Note: /var/run/logcorrelator est géré par RuntimeDirectory= (systemd) et tmpfiles.d
|
||||
|
||||
# Set ownership
|
||||
chown -R logcorrelator:logcorrelator /var/lib/logcorrelator
|
||||
chown -R logcorrelator:logcorrelator /var/log/logcorrelator
|
||||
chown -R logcorrelator:logcorrelator /var/run/logcorrelator
|
||||
chown -R logcorrelator:logcorrelator /etc/logcorrelator
|
||||
|
||||
# Set permissions
|
||||
chmod 750 /var/lib/logcorrelator
|
||||
chmod 750 /var/log/logcorrelator
|
||||
chmod 755 /var/run/logcorrelator
|
||||
chmod 750 /etc/logcorrelator
|
||||
|
||||
# Copy default config if not exists
|
||||
@ -99,9 +101,11 @@ if [ ! -f /etc/logcorrelator/logcorrelator.yml ]; then
|
||||
chmod 640 /etc/logcorrelator/logcorrelator.yml
|
||||
fi
|
||||
|
||||
# Reload systemd
|
||||
# Reload systemd and apply tmpfiles
|
||||
if [ -x /bin/systemctl ]; then
|
||||
systemctl daemon-reload
|
||||
# Crée /run/logcorrelator immédiatement avec le bon propriétaire
|
||||
systemd-tmpfiles --create /usr/lib/tmpfiles.d/logcorrelator.conf 2>/dev/null || true
|
||||
systemctl enable logcorrelator.service
|
||||
systemctl start logcorrelator.service
|
||||
fi
|
||||
@ -135,12 +139,24 @@ exit 0
|
||||
%config(noreplace) /etc/logcorrelator/logcorrelator.yml
|
||||
/etc/logcorrelator/logcorrelator.yml.example
|
||||
/var/log/logcorrelator
|
||||
/var/run/logcorrelator
|
||||
/var/lib/logcorrelator
|
||||
/etc/systemd/system/logcorrelator.service
|
||||
/usr/lib/tmpfiles.d/logcorrelator.conf
|
||||
%config(noreplace) /etc/logrotate.d/logcorrelator
|
||||
|
||||
%changelog
|
||||
* Thu Mar 05 2026 logcorrelator <dev@example.com> - 1.1.13-1
|
||||
- Fix: Unix sockets ne passent plus en root:root lors des restarts du service
|
||||
- Fix: Ajout de RuntimeDirectory=logcorrelator dans le service systemd (systemd gère /run/logcorrelator avec le bon propriétaire à chaque démarrage/restart)
|
||||
- Fix: Ajout de /usr/lib/tmpfiles.d/logcorrelator.conf pour recréer /run/logcorrelator au boot
|
||||
- Chore: Retrait de /var/run/logcorrelator du RPM %files (géré par tmpfiles.d)
|
||||
- Fix(correlation): emitPendingOrphans - corruption de slice lors de l expiration simultanée de plusieurs orphelins pour la même clé (slice aliasing bug, émissions en double)
|
||||
- Fix(correlation): rotateOldestA - l événement rotaté était perdu silencieusement même avec ApacheAlwaysEmit=true (retourne désormais le CorrelatedLog)
|
||||
- Fix(correlation): Keep-Alive cassé dans le chemin pending-orphan-then-B - le B event n était pas bufferisé en mode one_to_many, bloquant la corrélation des requêtes A2+ du même Keep-Alive
|
||||
- Chore(correlation): suppression du champ mort timer *time.Timer dans pendingOrphan
|
||||
- Feat(correlation): ajout de keepalive_seq dans les logs orphelins pour faciliter le debug (numéro de requête dans la connexion Keep-Alive, 1-based)
|
||||
- Test: 4 nouveaux tests de non-régression pour les bugs de corrélation
|
||||
|
||||
* Thu Mar 05 2026 logcorrelator <dev@example.com> - 1.1.12-1
|
||||
- Feat: New config directive include_dest_ports - restrict correlation to specific destination ports
|
||||
- Feat: If include_dest_ports is non-empty, events on unlisted ports are silently ignored (not correlated, not emitted as orphan)
|
||||
|
||||
Reference in New Issue
Block a user