Guía rápida para almacenar eventos de syslog en MongoDB usando el módulo ommongodb de rsyslog.
ommongodb para rsyslog.Instalación en Debian/Ubuntu:
sudo apt-get update
sudo apt-get install rsyslog-mongodb
Instalación en RHEL/CentOS/Fedora:
sudo yum install rsyslog-mongodb
ommongodbEdita /etc/rsyslog.d/mongodb.conf (o /etc/rsyslog.conf) y añade:
# Cargar el módulo de salida a MongoDB
module(load="ommongodb")
# Enviar todos los eventos a MongoDB
action(type="ommongodb"
server="127.0.0.1" # IP/host de MongoDB
serverport="27017" # Puerto de MongoDB
db="rsyslog" # Base de datos destino
collection="syslog" # Colección destino
)
Por defecto, ommongodb inserta documentos similares a:
{
"timestamp": "2025-08-20T10:45:30Z",
"host": "mi-servidor",
"sys": "authpriv",
"severity": "notice",
"msg": "Usuario root ha iniciado sesión"
}
sudo systemctl restart rsyslog
logger "Prueba de envío a MongoDB desde rsyslog"
mongosh
use rsyslog
db.syslog.find().pretty()
Puedes definir una plantilla para controlar los campos enviados:
template(name="MongoTemplate" type="list") {
property(name="timereported" dateFormat="rfc3339")
constant(value=" ")
property(name="hostname")
constant(value=" ")
property(name="syslogtag")
constant(value=" ")
property(name="msg")
}
action(type="ommongodb"
server="127.0.0.1"
db="rsyslog"
collection="syslog"
template="MongoTemplate")
timestamp mejora las consultas:db.syslog.createIndex({ "timestamp": 1 })
© 2025 — Guía breve ommongodb.