Syslog → Status200
Обзор
Ingest принимает нативный Syslog (RFC3164 / RFC5424) по HTTPS. Парсятся priority, facility, severity, structured data и тело сообщения; всё сохраняется как поисковые логи.
Требования
- Telemetry Ingestion Token — Project Settings → Telemetry Ingestion Keys, заголовок
x-status200-token. - Форвардер — любой клиент с HTTP POST (
curl, rsyslogomhttp, syslog-ng HTTP и т.д.). - Имя сервиса (опционально) — заголовок
x-status200-service-name; иначе используются APP-NAME, hostname илиSyslog.
Endpoint
POST https://status200.ru/syslog/v1/logsSelf-hosted: свой хост. Всегда передавайте x-status200-token.
Тело запроса
Строки syslog через перевод строки или JSON с массивом messages. Поддерживаются BSD и RFC5424.
{
"messages": [
"<34>1 2025-03-02T14:48:05.003Z web-01 nginx 7421 ID47 [env@32473 host=\"web-01\"] 502 on /api/login",
"<13>Feb 5 17:32:18 db-01 postgres[2419]: connection received from 10.0.0.12"
]
}Content-Type
application/json— предпочтительноtext/plain— сообщения по строкамapplication/octet-stream— сырой payload; допускаетсяContent-Encoding: gzip
Быстрый тест (curl)
curl \
-X POST https://status200.ru/syslog/v1/logs \
-H "Content-Type: application/json" \
-H "x-status200-token: YOUR_TELEMETRY_KEY" \
-H "x-status200-service-name: production-web" \
-d '{
"messages": [
"<34>1 2025-03-02T14:48:05.003Z web-01 nginx 7421 ID47 [env@32473 host=\"web-01\"] 502 on /api/login"
]
}'rsyslog
sudo apt-get install rsyslog-omhttp/etc/rsyslog.d/status200.conf:module(load="omhttp") template(name="Status200Json" type="list") { constant(value="{\"messages\":[\"") property(name="rawmsg") constant(value="\"]}") } action( type="omhttp" server="status200.ru" serverport="443" usehttps="on" endpoint="/syslog/v1/logs" header="Content-Type: application/json" header="x-status200-token: YOUR_TELEMETRY_KEY" header="x-status200-service-name: rsyslog-demo" template="Status200Json" )sudo systemctl restart rsyslog
Типовые сценарии
Сетевое и security-оборудование
Syslog с Palo Alto, Fortinet, Cisco ASA, Juniper, pfSense и т.д. — напрямую в Status200 или через внутренний relay и HTTPS.
Linux и cron
Пересылка /var/log/syslog или journald; пример с imjournal + omhttp — см. оригинальную конфигурацию в англ. версии (шаблон Status200JSON).
Kubernetes edge
Fluent Bit: input syslog + output http на /syslog/v1/logs с TLS и заголовками token / service name.
Архивы для compliance
Долгое хранение firewall-логов: поток в Status200, политика retention, единая точка экспорта.
Распарсенные поля
syslog.priority,syslog.facility.code,syslog.facility.namesyslog.severity.code,syslog.severity.namesyslog.hostname,syslog.appName,syslog.processId,syslog.messageIdsyslog.structured.*syslog.raw
Доступны в Telemetry → Logs.
Устранение неполадок
- 401 / пусто — проверьте
x-status200-tokenи проект. - Нет логов — тело должно содержать строки syslog; пустое тело → 400.
- Имя сервиса — задайте
x-status200-service-name. - Большие пачки — до ~1000 строк на запрос; больше — асинхронная обработка.