Телеметрия

Syslog → Status200

Обзор

Ingest принимает нативный Syslog (RFC3164 / RFC5424) по HTTPS. Парсятся priority, facility, severity, structured data и тело сообщения; всё сохраняется как поисковые логи.

Требования

  • Telemetry Ingestion TokenProject SettingsTelemetry Ingestion Keys, заголовок x-status200-token.
  • Форвардер — любой клиент с HTTP POST (curl, rsyslog omhttp, syslog-ng HTTP и т.д.).
  • Имя сервиса (опционально) — заголовок x-status200-service-name; иначе используются APP-NAME, hostname или Syslog.

Endpoint

POST https://status200.ru/syslog/v1/logs

Self-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

  1. sudo apt-get install rsyslog-omhttp
  2. /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"
    )
  3. 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.name
  • syslog.severity.code, syslog.severity.name
  • syslog.hostname, syslog.appName, syslog.processId, syslog.messageId
  • syslog.structured.*
  • syslog.raw

Доступны в Telemetry → Logs.

Устранение неполадок

  • 401 / пусто — проверьте x-status200-token и проект.
  • Нет логов — тело должно содержать строки syslog; пустое тело → 400.
  • Имя сервиса — задайте x-status200-service-name.
  • Большие пачки — до ~1000 строк на запрос; больше — асинхронная обработка.