Create: Update:
Вчера в подборке упомянул NetFlow collector GoFlow2, с которым я лично не работал никогда. Решил на него посмотреть. На первый взгляд кажется простым и удобным решением, которое состоит из одного исполняемого файла на Go с параметрами, передаваемыми через ключи запуска.
GoFlow2 может собирать данные из разных источников, объединять их и выгружать в json формате. А дальше данные можно забирать в любую систему обработки логов - Loki, Elasticsearch, Clicklhouse.
Достаточно скачать бинарник и запустить:
Goflow2 запустится и будет слушать следующие порты:
◽️6343 для приёма sFlow
◽️2055 для приёма NetFlow
◽️8080 для передачи метрик о своей работе в формате Prometheus (url - /metrics)
Я для теста взял Mikrotik и в разделе IP ⇨ Traffic Flow ⇨ Targets указал IP адрес машины, где запустил Goflow2. Данные о трафике сразу полились в неё. Поднял рядом Prometheus, добавил job для сбра метрик коллектора:
К сожалению, не нашёл готового дашборда для Grafana. Похоже, его вообще не существует. Из полезных метрик непосредственно Goflow2 - информация о пакетах (goflow2_flow_traffic_packets_total) и байтах (goflow2_flow_traffic_bytes_total) с каждого источника. Можно просто отслеживать всплески и аномалии без детальной разбивки по направлениям и типам соединений. ИИ не смог мне родить рабочий дашборд, сколько его не мучал, только время потерял. В итоге вручную посмотрел на метрики и прикинул, что там может быть полезным. Метрик много, детально во все не вникал.
Дальше можно детально распарсить трафик из файлов, которые формирует goflow2. В репозитории есть пример, как это сделать с помощью ELK Stack. Там поднимается стандартный стек с обработчиком логов в виде Logstash. В compose файле прописаны образы из репозитория docker.elastic.co, к которому доступ из РФ закрыт. Можно просто заменить их на docker hub, то есть вместо
Я запустил этот docker-compose.yml и без проблем стартовал весь стек именно на указанных старых версиях. Можно более свежие поставить, но там больше заморочек с безопасностью и аутентификацией. Придётся https настраивать, учётные записи. Для проверки работы коллектора всё это не нужно.
После запуска через:
Необходимо зайти в Kibana по IP адресу сервера и порт 5601 и добавить новый индекс в разделе Stack Management ⇨ Index Management. В качестве index pattern укажите logstash-*, а в качестве time filter - @timestamp из выпадающего списка.
Теперь можно идти в Discover, выбирать шаблон индекса logstash-* и смотреть информацию по трафику. Так как источник данных уже в виде json, все поля проиндексированы и вы можете строить выборки по src_addr, dst_addr, dst_port и т.д.
Готового шаблона для Kibana я, к сожалению, тоже не нашёл. Так что это решение только для тех, кто работает с ELK и умеет создавать дашборды. Там нет чего-то сильно сложного, но с полтычка тоже не осилить. Надо уметь с ним работать. Можно настроить geo карту, суммировать трафик по направлениям и выводить лидеров, объединять запросы по TCP или UDP портам и т.д.
Я показал пример с ELK, но ничто не мешает эти же логи отправить, например, в Loki и смотреть их там. Либо в любое другое хранилище. Так как они в формате json, отдельно парсить их не надо.
В целом, GoFlow2 мне понравился. Никаких особых заморочек. Просто запускаешь и всё работает. Другое дело, что это не готовая система для анализа трафика, а просто сборщик. Дальнейшую обработку и визуализацию полученных данных нужно выполнять самостоятельно. Зато можно сделать так, как вам нужно. И это будет полностью бесплатно.
❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.
#netflow #elk
GoFlow2 может собирать данные из разных источников, объединять их и выгружать в json формате. А дальше данные можно забирать в любую систему обработки логов - Loki, Elasticsearch, Clicklhouse.
Достаточно скачать бинарник и запустить:
# ./goflow2 -transport=file -transport.file=/var/log/goflow/goflow2.log -format=json
Goflow2 запустится и будет слушать следующие порты:
◽️6343 для приёма sFlow
◽️2055 для приёма NetFlow
◽️8080 для передачи метрик о своей работе в формате Prometheus (url - /metrics)
Я для теста взял Mikrotik и в разделе IP ⇨ Traffic Flow ⇨ Targets указал IP адрес машины, где запустил Goflow2. Данные о трафике сразу полились в неё. Поднял рядом Prometheus, добавил job для сбра метрик коллектора:
- job_name: 'goflow2'
metrics_path: '/metrics'
static_configs:
- targets: ['10.20.1.9:8080']
К сожалению, не нашёл готового дашборда для Grafana. Похоже, его вообще не существует. Из полезных метрик непосредственно Goflow2 - информация о пакетах (goflow2_flow_traffic_packets_total) и байтах (goflow2_flow_traffic_bytes_total) с каждого источника. Можно просто отслеживать всплески и аномалии без детальной разбивки по направлениям и типам соединений. ИИ не смог мне родить рабочий дашборд, сколько его не мучал, только время потерял. В итоге вручную посмотрел на метрики и прикинул, что там может быть полезным. Метрик много, детально во все не вникал.
Дальше можно детально распарсить трафик из файлов, которые формирует goflow2. В репозитории есть пример, как это сделать с помощью ELK Stack. Там поднимается стандартный стек с обработчиком логов в виде Logstash. В compose файле прописаны образы из репозитория docker.elastic.co, к которому доступ из РФ закрыт. Можно просто заменить их на docker hub, то есть вместо
docker.elastic.co/elasticsearch/elasticsearch:7.13.0
указать elasticsearch:7.13.0
. Я запустил этот docker-compose.yml и без проблем стартовал весь стек именно на указанных старых версиях. Можно более свежие поставить, но там больше заморочек с безопасностью и аутентификацией. Придётся https настраивать, учётные записи. Для проверки работы коллектора всё это не нужно.
После запуска через:
# docker-compose up
Необходимо зайти в Kibana по IP адресу сервера и порт 5601 и добавить новый индекс в разделе Stack Management ⇨ Index Management. В качестве index pattern укажите logstash-*, а в качестве time filter - @timestamp из выпадающего списка.
Теперь можно идти в Discover, выбирать шаблон индекса logstash-* и смотреть информацию по трафику. Так как источник данных уже в виде json, все поля проиндексированы и вы можете строить выборки по src_addr, dst_addr, dst_port и т.д.
Готового шаблона для Kibana я, к сожалению, тоже не нашёл. Так что это решение только для тех, кто работает с ELK и умеет создавать дашборды. Там нет чего-то сильно сложного, но с полтычка тоже не осилить. Надо уметь с ним работать. Можно настроить geo карту, суммировать трафик по направлениям и выводить лидеров, объединять запросы по TCP или UDP портам и т.д.
Я показал пример с ELK, но ничто не мешает эти же логи отправить, например, в Loki и смотреть их там. Либо в любое другое хранилище. Так как они в формате json, отдельно парсить их не надо.
В целом, GoFlow2 мне понравился. Никаких особых заморочек. Просто запускаешь и всё работает. Другое дело, что это не готовая система для анализа трафика, а просто сборщик. Дальнейшую обработку и визуализацию полученных данных нужно выполнять самостоятельно. Зато можно сделать так, как вам нужно. И это будет полностью бесплатно.
❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.
#netflow #elk
Вчера в подборке упомянул NetFlow collector GoFlow2, с которым я лично не работал никогда. Решил на него посмотреть. На первый взгляд кажется простым и удобным решением, которое состоит из одного исполняемого файла на Go с параметрами, передаваемыми через ключи запуска.
GoFlow2 может собирать данные из разных источников, объединять их и выгружать в json формате. А дальше данные можно забирать в любую систему обработки логов - Loki, Elasticsearch, Clicklhouse.
Достаточно скачать бинарник и запустить:
Goflow2 запустится и будет слушать следующие порты:
◽️6343 для приёма sFlow
◽️2055 для приёма NetFlow
◽️8080 для передачи метрик о своей работе в формате Prometheus (url - /metrics)
Я для теста взял Mikrotik и в разделе IP ⇨ Traffic Flow ⇨ Targets указал IP адрес машины, где запустил Goflow2. Данные о трафике сразу полились в неё. Поднял рядом Prometheus, добавил job для сбра метрик коллектора:
К сожалению, не нашёл готового дашборда для Grafana. Похоже, его вообще не существует. Из полезных метрик непосредственно Goflow2 - информация о пакетах (goflow2_flow_traffic_packets_total) и байтах (goflow2_flow_traffic_bytes_total) с каждого источника. Можно просто отслеживать всплески и аномалии без детальной разбивки по направлениям и типам соединений. ИИ не смог мне родить рабочий дашборд, сколько его не мучал, только время потерял. В итоге вручную посмотрел на метрики и прикинул, что там может быть полезным. Метрик много, детально во все не вникал.
Дальше можно детально распарсить трафик из файлов, которые формирует goflow2. В репозитории есть пример, как это сделать с помощью ELK Stack. Там поднимается стандартный стек с обработчиком логов в виде Logstash. В compose файле прописаны образы из репозитория docker.elastic.co, к которому доступ из РФ закрыт. Можно просто заменить их на docker hub, то есть вместо
Я запустил этот docker-compose.yml и без проблем стартовал весь стек именно на указанных старых версиях. Можно более свежие поставить, но там больше заморочек с безопасностью и аутентификацией. Придётся https настраивать, учётные записи. Для проверки работы коллектора всё это не нужно.
После запуска через:
Необходимо зайти в Kibana по IP адресу сервера и порт 5601 и добавить новый индекс в разделе Stack Management ⇨ Index Management. В качестве index pattern укажите logstash-*, а в качестве time filter - @timestamp из выпадающего списка.
Теперь можно идти в Discover, выбирать шаблон индекса logstash-* и смотреть информацию по трафику. Так как источник данных уже в виде json, все поля проиндексированы и вы можете строить выборки по src_addr, dst_addr, dst_port и т.д.
Готового шаблона для Kibana я, к сожалению, тоже не нашёл. Так что это решение только для тех, кто работает с ELK и умеет создавать дашборды. Там нет чего-то сильно сложного, но с полтычка тоже не осилить. Надо уметь с ним работать. Можно настроить geo карту, суммировать трафик по направлениям и выводить лидеров, объединять запросы по TCP или UDP портам и т.д.
Я показал пример с ELK, но ничто не мешает эти же логи отправить, например, в Loki и смотреть их там. Либо в любое другое хранилище. Так как они в формате json, отдельно парсить их не надо.
В целом, GoFlow2 мне понравился. Никаких особых заморочек. Просто запускаешь и всё работает. Другое дело, что это не готовая система для анализа трафика, а просто сборщик. Дальнейшую обработку и визуализацию полученных данных нужно выполнять самостоятельно. Зато можно сделать так, как вам нужно. И это будет полностью бесплатно.
❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.
#netflow #elk
GoFlow2 может собирать данные из разных источников, объединять их и выгружать в json формате. А дальше данные можно забирать в любую систему обработки логов - Loki, Elasticsearch, Clicklhouse.
Достаточно скачать бинарник и запустить:
# ./goflow2 -transport=file -transport.file=/var/log/goflow/goflow2.log -format=json
Goflow2 запустится и будет слушать следующие порты:
◽️6343 для приёма sFlow
◽️2055 для приёма NetFlow
◽️8080 для передачи метрик о своей работе в формате Prometheus (url - /metrics)
Я для теста взял Mikrotik и в разделе IP ⇨ Traffic Flow ⇨ Targets указал IP адрес машины, где запустил Goflow2. Данные о трафике сразу полились в неё. Поднял рядом Prometheus, добавил job для сбра метрик коллектора:
- job_name: 'goflow2'
metrics_path: '/metrics'
static_configs:
- targets: ['10.20.1.9:8080']
К сожалению, не нашёл готового дашборда для Grafana. Похоже, его вообще не существует. Из полезных метрик непосредственно Goflow2 - информация о пакетах (goflow2_flow_traffic_packets_total) и байтах (goflow2_flow_traffic_bytes_total) с каждого источника. Можно просто отслеживать всплески и аномалии без детальной разбивки по направлениям и типам соединений. ИИ не смог мне родить рабочий дашборд, сколько его не мучал, только время потерял. В итоге вручную посмотрел на метрики и прикинул, что там может быть полезным. Метрик много, детально во все не вникал.
Дальше можно детально распарсить трафик из файлов, которые формирует goflow2. В репозитории есть пример, как это сделать с помощью ELK Stack. Там поднимается стандартный стек с обработчиком логов в виде Logstash. В compose файле прописаны образы из репозитория docker.elastic.co, к которому доступ из РФ закрыт. Можно просто заменить их на docker hub, то есть вместо
docker.elastic.co/elasticsearch/elasticsearch:7.13.0
указать elasticsearch:7.13.0
. Я запустил этот docker-compose.yml и без проблем стартовал весь стек именно на указанных старых версиях. Можно более свежие поставить, но там больше заморочек с безопасностью и аутентификацией. Придётся https настраивать, учётные записи. Для проверки работы коллектора всё это не нужно.
После запуска через:
# docker-compose up
Необходимо зайти в Kibana по IP адресу сервера и порт 5601 и добавить новый индекс в разделе Stack Management ⇨ Index Management. В качестве index pattern укажите logstash-*, а в качестве time filter - @timestamp из выпадающего списка.
Теперь можно идти в Discover, выбирать шаблон индекса logstash-* и смотреть информацию по трафику. Так как источник данных уже в виде json, все поля проиндексированы и вы можете строить выборки по src_addr, dst_addr, dst_port и т.д.
Готового шаблона для Kibana я, к сожалению, тоже не нашёл. Так что это решение только для тех, кто работает с ELK и умеет создавать дашборды. Там нет чего-то сильно сложного, но с полтычка тоже не осилить. Надо уметь с ним работать. Можно настроить geo карту, суммировать трафик по направлениям и выводить лидеров, объединять запросы по TCP или UDP портам и т.д.
Я показал пример с ELK, но ничто не мешает эти же логи отправить, например, в Loki и смотреть их там. Либо в любое другое хранилище. Так как они в формате json, отдельно парсить их не надо.
В целом, GoFlow2 мне понравился. Никаких особых заморочек. Просто запускаешь и всё работает. Другое дело, что это не готовая система для анализа трафика, а просто сборщик. Дальнейшую обработку и визуализацию полученных данных нужно выполнять самостоятельно. Зато можно сделать так, как вам нужно. И это будет полностью бесплатно.
❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.
#netflow #elk
3👍57👎2
>>Click here to continue<<
ServerAdmin.ru


