Комментарии 19
Прелестно, просто прелестно! Не расскажите только как может тот же 8.8.8.8 находится в США если RTT из Москвы до него 5-10 мс - можете сами посчитать что оказывается США от Москвы находится в 1500 км теоретического предела - и это без учета не прямой прокладки линий, задержки на оборудовании и меньшей скорости света в волокне. Может не стоит уже использовать geoip в век CDN и bgp anycast?
мне кажется 8.8.8.8 не очень удачный пример, на запросы в него давно отвечают провайдеры, а не cам 8.8.8.8. Такие сервисы надо заворачивать куда нужно и тогда пинг становится ~80 ms. ну и в целом надо понимать что geoip да еще на статичной базе на диске далека от 100% точности
Если бы bgp не было такого быть не может так как каждая. Область имеет владельца и ели что через Россию очень много транзита идёт
Иза количества пирингов Гугла между провайдерами как и cloudflare так время задержки сокрящяетя так работает протокол bgp
del
Порядок запуска в WSL2: Сработает в Windows 11 version 22H2 и выше
1) в каталоге HOMEPATH (обычно это C:\Users\user_name\ )создаем или правим файл .wslconfig чтобы он содержал строку:
[wsl2]
networkingMode=mirrored
2) В Windows Firewall создаем два правила , одно для UDP 5514 , второе для TCP 3000 , 5555 , 9428
3) В запущенном WSL:
sudo passwd root
# вводим новый пароль для root
su -
ip a # - запоминаем IPv4 адрес для Mikrotik
apt install git docker docker-compose
git clone https://github.com/sergeygalkin/habr.git
cd habr/mikrotik-victorialogs-mapip
docker-compose up -d
Дальше по тексту.
PS Можно завернуть входящий трафик в WSL ещё несколькими способами, но этот самый простой, хотя и менее безопасный.
Можно ли микротик заменить на асус с мерлин фирмваре?
думаю что без проблем, алгоритм примерно такой
Настраивем на асусе отправку логов в victroia logs. Как это на той прошивке делать не знаю, в чистых линухах по идее будет как то так. Добавляем примерно такое правило логирования 'iptables -A FORWARD -m conntrack --ctstate NEW -j LOG --log-prefix "firewall-new: " --log-level 4', потом в rsyslog перенаправляем это в викторию. Я с прошивкой мерлина не сталкивался, поэтому точно не подскажу как аналогичное там натыкивать.
Потом нам надо переделать переменную API_QUERY_COMMON, даже не всю ее а вот эту часть `!NAT !ICMP | extract ', proto <proto>, <src_ip>:<src_port>-><dst_ip>:<dst_port>, len' from _msg `
Для этого идем в http://127.0.0.1:9428/select/vmui и начинаем строит запросы, добиваясь что бы src_ip и dst_ip прилетали в данных, кажется что для linux будет примерно так `extract ' SRC=<src_ip> DST=<dst_ip> ' from _msg` в результате запроса должно получиться как то так, при просмотре в json формате должны появится поля src-ip и dst-ip (порты могут и не появляться, они никак счас не используются)

если все ок, добавляем в конец запроса суммирование '| stats by (dst-ip) count() dst-ip-count | sort (dst-ip-count) desc limit 1000', проверяем что все выглядит примерно так

вставляем полученную строку в переменную API_QUERY_COMMON
перезапускаем все через `docker compose build && docker compose up -d`
Спасибо!
А зачем? Чтобы что? Потрачена куча времени. В том числе на чтение этого опуса. Ради чего?
Попытался поднять в Portainer, вроде все создалось - и 3 контейнера и 2 тома, но в Графане нет ни дашборда, ни источника данных. Подскажите, что проверить сначала?
по идее в логи графаны, видит ли она вообще провижининг файлы, вот тут есть подробнее https://grafana.com/tutorials/provision-dashboards-and-data-sources/
Она не их видит
logger=provisioning.dashboard t=2025-03-04T13:52:26.071489199Z level=error msg="can't read dashboard provisioning files from directory" path=/etc/grafana/provisioning/dashboards error="open /etc/grafana/provisioning/dashboards: no such file or directory"
так идешь на http://{{ сервер ip}}:9428/select/vmui и ищешь
Строим карту IP коннектов домашних девайсов, без регистрации и смс