В целом, большая часть уже работает. Остались проблемы: автоматически не определяется исходный хост записи лога. Все записи, похоже, приходят от шлюза. Мне все еще нужна функция извлечения полей, которая работала бы со всеми типами записей логов. Splunk не использует дату/время из записи лога, а использует дату/время получения. В принципе, это не критично, но часовой пояс установлен неправильно.
Эти проблемы, возможно, возникают из-за того, что, согласно описанию, syslog-источник Splunk ожидает формат IETF, а Unifi отправляет в формате BSD. Я точно не знаю, в чем разница между этими форматами, и пока не стал разбираться.
Мой docker-compose файл выглядит так:
```yaml
services:
splunk:
container_name: splunk
image: splunk/splunk:9.4.0
environment:
- SPLUNK_START_ARGS=--accept-license
- SPLUNK_LICENSE_URI=Free
- SPLUNK_PASSWORD=Test.123
ports:
- 1514:1514/udp
- 8050:8000
volumes:
- ./log:/opt/splunk/var/log
- splunk-var:/opt/splunk/var
- splunk-etc:/opt/splunk/etc
volumes:
splunk-var:
splunk-etc:
```
В Unifi Network Application я использую IP-адрес Splunk-хоста с портом 1514. В Splunk я зашел в Settings -> Data inputs -> UDP и добавил слушатель типа syslog на порту 1514. Многие поля извлекаются автоматически. Уже можно анализировать заблокированные пакеты. Было бы здорово найти решения для оставшихся проблем.