#victoria-logs #packetbeat
Когда решалка устаёт, я погружаюсь в Икигай, приятную ненапряжную деятельность. В моем случае - это задростство с метриками, данными и прочей аналитикой.
Давно мечтал логировать трафик, но так, чтобы не пакеты, а потоки, и чтобы видно было что за софт это делает. В инфосеке - это краеугольный камень безопасности. Так как зловредам нужно связываться либо с командным центром (СС) ну или пиздить вашу информацию. В любом случае открытый сокет незнакомым ПО - это инцидент.
Раньше почти никакой софт не мог логировать трафик вместе с инфой о приложениях. Да, можно было настроить falco (от sysdig) логировать открытые сокеты, потом коррелировать с netflow, но геморно. Но у packetbeat теперь это работает из коробки, хотя раньше было заявлено, но не работало (packetbeat.procs.enabled: true)
Другая проблема, которую удалось решить в этом сэтапе - это компактное хранение с быстрой полнотекстовой выборкой, и еще более быстрой выборкой по фасетам. Кто знаком с elastic - знают, какая она жручая до памяти и диска мразь. Правильным выходом было бы поднять clickhouse, проработать структуру, тогда получится быстро, компактно, но очень геморно.
И вот ребята, разработчики VictoriaMetrics, прозрачной замены хранилки метрик прометеуса, выкатили простую но адски быструю и плотную хранилку логов. Скорость спопоставима с правильно настроенным clickhouse, но сильно проще в ментейненсе.
Конфижим коллектор /etc/systemd/system/victoria-logs-prod.service:
[Unit]
Description=Victoria Logs Production Service
After=network.target
[Service]
ExecStart=/usr/local/bin/victoria-logs-prod -httpListenAddr 192.168.0.127:9428 -syslog.listenAddr.tcp=:29514 -syslog.listenAddr.udp=:29514 -storageDataPath=/var/lib/victoria-logs
Restart=always
User=victoria-logs
Group=victoria-logs
Environment=PATH=/usr/local/bin:/usr/bin:/bin
Environment=LOG_LEVEL=info
WorkingDirectory=/usr/local/bin
[Install]
WantedBy=multi-user.target
Конфижим источник /etc/packetbeat/packetbeat.yml. Да, victoria logs может прикидываться эластиком как принимающая сторона:
...
output.elasticsearch:
hosts: ["http://YOURHOST:9428/insert/elasticsearch/"]
parameters:
_msg_field: "message"
_time_field: "@timestamp"
_stream_fields: "host.hostname,agent.type,type,process.executable"
allow_older_versions: true
packetbeat.procs.enabled: true
Получаем систему контроля трафика, в которую влезит миллиард записей на дерьмовом железе и миллисекундной выборкой с удобным языком запросов https://docs.victoriametrics.com/victorialogs/logsql/ с полнотекстовым поиском.
Рекомендую! Таким же методом можно настроить остальные beats от эластика: Filebeat, Auditbeat и т.п.