ServerAdmin.ru
32.2K subscribers
1.11K photos
63 videos
29 files
3.14K links
Авторская информация о системном администрировании.

Информация о рекламе: @srv_admin_reklama_bot
Автор: @zeroxzed

Второй канал: @srv_admin_live
Сайт: serveradmin.ru

Ресурс включён в перечень Роскомнадзора
Download Telegram
Telegram стал одним из основных каналов получения уведомлений от мониторинга. Я сам его использую в этом качестве, но только для самых критичных событий. Основной канал у меня - email. В рабочее время я регулярно проверяю почту.

Буквально в эту пятницу вечером у меня перестают отправляться уведомления в Telegram от Gatus и от Zabbix. При этом уведомления отправляются через разные VPS, расположенные у разных хостеров. Честно говоря, вообще нет желания со всем этим разбираться. Нормальной работы с Telegram в ближайшее время не предвидится, так что лично я считаю, что уведомления от мониторинга лучше перенести на другие каналы доставки.

У меня в последнее время часто спрашивали и тут в личке, и в комментариях на сайте, и в комментариях к заметкам, как починить доставку через Telegram, на что заменить, как настроить уведомления в MAX и т.д. Решил сделать небольшую подборку альтернатив. Сам пока ещё думаю, куда перевести критичные уведомления.

1️⃣ Самый простой вариант, которым я пользовался очень давно, когда Zabbix ещё толком не поддерживал без костылей отправку в Telegram. Существуют боты - imap клиенты. Они проверяют ящики и шлют уведомления в Telegram о новых письмах. Конкретно я использовал бота от Gmail (@gmailbot) и отдельный ящик, куда отправлялись только сообщения от мониторингов. Писал об этом заметку на сайте.

Таких ботов много, я не проверял, какие из них сейчас работают. Сразу предупрежу, что подобные боты получают полный доступ к ящику, так как вы им передаёте логин с паролем. Используйте отдельные ящики, пересылая туда нужные уведомления.

Это самый простой и быстрый способ настроить уведомления в Telegram, если вы решительно настроены использовать именно его.

2️⃣ Сервис ntfy.sh. Про него многие упоминали в последнее время. Я про него писал и тестировал. Настраивается он очень просто и быстро. В заметке есть примеры. Можно установить на смартфон родное приложение и получать туда пуши. Код серверной части открыт, можно развернуть у себя и заменить в скриптах отправку с telegram на ntfy. Там принцип отправки такой же - через curl.

3️⃣ Сервис Gotify. Это практически полный аналог предыдущего сервиса. Я тоже про него писал. Не знаю, кто из них лучше и популярнее. Например, Proxmox поддерживает gotify из коробки в своих настройках уведомлений. Я в равной степени в различных приложениях видел поддержку как ntfy, так и gotify.

4️⃣ Сервис Apprise. Он отличается от предыдущих двух, так как является сам по себе шлюзом для отправки в другие каналы доставки, в качестве которых могут выступать тот же ntfy, gotify, telegram, whatsapp, rocket.chat, irc и многие другие. О нём тоже писал заметку. Это тоже self-hosted сервис с открытым кодом.

Внедрив себе такой сервис, можно раз и навсегда решить вопрос с каналами доставки уведомлений. И если один из них будет недоступен, то можно быстро без перенастройки систем мониторинга, поменять его на другой.

Иронично, что в комментариях ко всем трём представленным сервисам люди писали, что они не нужны, потому что есть Telegram. И только изредка некоторые люди напоминали, что Telegram - внешний сервис, который может быть недоступен или заблокирован. Так в итоге и произошло.

5️⃣ Настроить уведомления в VK Workspace или MAX. Для обоих мессенджеров на прошлой неделе мне добрые люди предлагали готовое решение, так как они уже успели его реализовать. Мне лично без надобности пока, так что я не вникал, но задача не особо сложная и при желании решаемая.

Лично я пока склоняюсь к внедрению у себя ntfy или gotify. Мне видится это наиболее простым и удобным способом. Главное, чтобы пуши в смартфоне работали. Без них особого смысла во всём этом не вижу, так как традиционный email и так неплохо решает поставленную задачу. При желании, можно установить обычный клиент или Delta Chat и настроить уведомления в нём. Но на смартфоне не хочется постоянно держать в фоне запущенный клиент с регулярными проверками ящиков.

❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.

———
ServerAdmin: 📱 Telegram | 🌐 Сайт | 📲 MAX 😩

#мониторинг
Please open Telegram to view this post
VIEW IN TELEGRAM
👍111👎17
Я наконец-то дописал статью про сбор и хранение логов в Loki:

Настройка Grafana Loki для сбора логов

Написал в формате, как делал раньше - достаточно бездумного копипаста, чтобы всё получилось. То есть если вам не хочется вникать, то можно этого не делать. Просто копируете то, что я предлагаю, и всё получится. Я постарался зафиксировать все нюансы, ничего не пропуская.

В статье рассказано, как развернуть Loki и отправить туда:

◽️Системные логи Linux и Windows
◽️Логи Docker контейнеров
◽️Логи веб сервера Nginx или Angie
◽️Логи сетевых устройств

То есть дана база для внедрения системы в разнородной инфраструктуре, чтобы собрать вообще все логи в одном месте. База не в плане внедрения, а в плане обзора возможностей и технических нюансов работы непосредственно с Loki. Автоматизацию этого процесса нужно будет делать самостоятельно по месту.

Помимо сбора логов я показал на примере веб сервера, как делать свои дашборды, и как выборочно удалять данные из хранилища.

Весь текст написан и проверен полностью мной. ИИ привлекал только для изучения и подготовки своих конфигураций. Я сам изучал продукт с нуля, поэтому старался разобраться с основными моментами. Вообще все материалы, которые я пишу, я делаю сам от и до. После ИИ всё перепроверяю и дополняю.

В целом, система мне понравилась. Много лет я собираю логи в ELK Stack. Он более функциональный, порог входа у него выше, и потребление ресурсов тоже заметно выше, чем у Loki. У них разный формат хранения и обработки данных, из-за этого сильно отличаются возможности по визуализации. Некоторые вещи по выборке и подготовке данных, которые сразу работают в ELK, в Loki в лоб не работают.

Например, нельзя просто взять и сформировать топ 10 IP адресов клиентов сайта, которые сделали больше всего запросов за сутки или неделю. Если в ELK я просто брал и делал это на дашборде, то Loki выдаёт ошибки на слишком большой объём данных, который нужно обработать для выполнения запросов. Там нужно это реализовывать по другому. Ну и других различий много: аутентификация, очистка данных, отказоустойчивость и многое другое в ELK более развито.

Если нужно что-то проще и легковеснее, чем Loki, то можно взять VictoriaLogs. Там всё проще и быстрее, чем в Loki. По крайней мере год назад так было, когда я тестировал этот продукт. Он активно развивается, так что в планах ещё раз его попробовать в таком же формате, как Loki, собрав туда разнородные логи со всех систем. Это если время найду на это. Особой нужды лично у меня в этом нет.

❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.

———
ServerAdmin: 📱 Telegram | 🌐 Сайт | 📲 MAX 😩

#loki #logs #статья
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍154👎1
Сколько лет настраиваю веб сервера Nginx и только недавно случайно узнал, когда настраивал отправку логов в Loki, что веб сервер может одновременно писать логи в разных форматах. Просто в голову не приходило попробовать, что так можно.

Речь вот про что. Допустим, вы отправляете логи в какое-то хранилище. Туда удобнее отправлять формат json. Он удобен для машины, но не для восприятия человеком. Да, можно взять jq или что-то подобное для удобства, но это всё равно не то. Глазами удобнее всего смотреть на обычные текстовые логи.

Если хотите оставить себе возможность смотреть на логи глазами и грепать их, то можно сделать вот так. Показываю сразу пример конфигурации Angie/Nginx.

http {
    ...................
    log_format  main  
    '$remote_addr - $remote_user [$time_local] "$request" '
    '$status $body_bytes_sent "$http_referer" '
    '"$http_user_agent" "$http_x_forwarded_for"';

    log_format json escape=json
 '{'
  '"time_local":"$time_local",'
  '"remote_addr":"$remote_addr",'
  '"remote_user":"$remote_user",'
  '"request":"$request",'
  '"status": "$status",'
  '"body_bytes_sent":"$body_bytes_sent",'
  '"request_time":"$request_time",'
  '"http_referrer":"$http_referer",'
  '"http_user_agent":"$http_user_agent"'
 '}';

    ...................

    access_log  /var/log/angie/access.log main;
    access_log  /var/log/angie/access.json.log json;

    ...................
}


Разумеется, без особого основания так делать не надо, потому что нагрузка на запись от логирования возрастёт в 2 раза. Но если очень хочется, то можно. Будут писаться одновременно оба лога в разных форматах.

У меня, к примеру, куча башевских костылей написана под обычный формат логов. Иногда бывает нужно прямо на хосте что-то быстро сделать. Если нет обычных логов, мне неудобно. Конечно, тут можно возразить, что от этого надо избавляться и использовать другие подходы. Ну уж какие есть. Я не работаю с большими нагрузками. Для меня всё это некритично. Можно ручками сходить на сервер и что-то там проверить, сделать.

❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.

———
ServerAdmin: 📱 Telegram | 🌐 Сайт | 📲 MAX 😩

#logs #angie #nginx
Please open Telegram to view this post
VIEW IN TELEGRAM
👍112👎4
К одной из заметок про Loki в комментариях поделились ссылкой на любопытный проект - MKTXP-Stack. Это готовое решение для мониторинга и сбора логов с устройств Mikrotik. Состоит из:

◽️Prometheus для хранения метрик
◽️Grafana для визуализации
◽️MKTXP - exporter для сбора метрик с Микротиков по API
◽️Loki для хранения логов
◽️Promtail и Syslog-NG для сбора логов

Всё это упаковано в docker compose и запускается за 5 минут. Всё, что нужно - заполнить конфигурационный файл с доступом к микротикам. Весь стек полностью настроен. Я его запустил и попробовал. Экспортер и визуализация к нему очень понравились. Сбор логов не особо, потому что, во-первых, используется Promtail, а он не очень хорошо парсит syslog от микротов. Какие там есть проблемы, писал в отдельной заметке про Alloy. У него такие же проблемы, как у Promtail. Для этой задачи лучше подходит Vector. Во-вторых, у меня в контейнере с Promtail периодически вылезали ошибки, и он переставал собирать логи. Помогал перезапуск. С ошибками разбираться не стал, Promtail всё равно уже deprecated, его надо менять.

А вот сам экспортер и дашборд к нему очень хороши. Если у вас уже есть свой стэк Prometheus + Grafana, можете взять отдельно экспортер и дашборд. В репозитории есть инструкция, там всё просто для тех, кто работает с Prometheus и знает его. Для тех, кто не знает, покажу, как всё это дело запустить и наслаждаться мониторингом микротиков без погружения в тему prometheus и grafana.

Берём любую машину с установленным Docker. Клонируем себе репозиторий и переходим в него:

# git clone https://github.com/akpw/mktxp-stack.git
# cd mktxp-stack

Открываем файл конфигурации mktxp.conf в директории mktxp и добавляем свои устройства в файл:

[hAPax3-01]
  hostname = 192.168.137.1

[hAPax3-02]
  hostname = 192.168.137.2

[hAPax3-03]
  hostname = 192.168.137.3

И так далее. На всех устройствах добавляем отдельного пользователя для доступа mktxp. Ему достаточно прав read и api. Можете сделать через winbox или в консоли:

/user group add name=mktxp_group policy=api,read
/user add name=mktxp_user group=mktxp_group password=mktxp_user_password

Используем эту учётку в mktxp.conf

[default]
.................
  username = mktxp_user
  password = mktxp_user_password
...................

Остальные параметры включайте на своё усмотрение. Там по названию понятен смысл, плюс, есть комментарии. Если на устройствах будут разные учётки, то пропишите их в разделе с устройством.

Больше ничего делать не надо. Можно запускать весь стек. Для этого переходим в директорию mktxp-stack и запускаем:

# docker compose -f ./docker-compose-mktxp-stack.yml up -d

Переходим в веб интерфейс по IP адресу сервера на порт 3000, например http://192.168.137.29:3000. Попадёте сразу в веб интерфейс Grafana. Там уже всё настроено, аутентификация отключена. Вы сразу же увидите метрики со своих настроенных устройств. По крайней мере у меня сразу всё заработало. Ничего больше не делал.

Дашборд продуман и информативен. Я себе оставлю его. Не скажу, что сильно надо. Самому лень было настраивать. Но готовый можно взять. Там те же лизы от DHCP можно смотреть. Я иногда захожу через winbox поискать потерявшиеся хосты. Ну и просто статистику, загрузку интерфейсов, открытые соединения и топ хостов по ним посмотреть. На дашборде всё это нагляднее, чем в Winbox.

Как я уже сказал, аутентификация в Grafana отключена, по умолчанию почему-то установлена светлая тема. Мне привычнее тёмная. Поменять настройки grafana можно в основном compose файле - docker-compose-mktxp-stack.yml. Я вернул чёрный цвет:

GF_USERS_DEFAULT_THEME: "dark"

Хорошее, добротное решение. Мне понравилось. Ниже много интересных картинок.

❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.

———
ServerAdmin: 📱 Telegram | 🌐 Сайт | 📲 MAX 😩

#mikrotik #prometheus
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍101👎2
Я регулярно пользуюсь сервисом Virustotal. Все незнакомые файлы обязательно проверяю там. Обычно через веб интерфейс. Случайно узнал, что у этого сервиса есть бесплатный консольный клиент - VirusTotal CLI.

Для того, чтобы им пользоваться, нужно получить API ключ, а для этого пройти регистрацию. Особых проблем с этим нет, сервис поддерживает аутентификацию через тот же github. Зашёл через свою учётку там и сразу забрал API ключ из отдельного раздела API Key. Ограничение бесплатной версии - 500 проверок в день. Для единоличного использования хватит за глаза.

Дальше забираем бинарник под свою систему: Windows, Lunux, MacOS или FreeBSD. Я взял линуксовую версию, несмотря на то, что моя основная рабочая система - Windows. Использовать его буду в WSL. Разработчики советуют запускать vt-cli под виндой не в стандартном терминале, а хотя бы в cygwin из-за того, что в стандартном окружении Windows утилита будет подтупливать при выводе портянок текста. Если вам это некритично, то можно сразу в винду поставить:

# winget install VirusTotal.vt-cli

Я в итоге поставил так:

$ wget https://github.com/VirusTotal/vt-cli/releases/download/1.3.0/Linux64.zip
$ unzip Linux64.zip
$ sudo mv vt /usr/local/bin

Дальше хотел добавить встроенное автозаполнение для bash, но у меня ничего не получилось:

$ sudo vt completion bash > /etc/bash_completion.d/vt
bash: /etc/bash_completion.d/vt: Permission denied

Кто догадается, почему эта команда не сработала с sudo? Я когда набирал, не подумал об этом, но как получил ошибку, сразу понял в чём дело. Тут есть один важный нюанс, из-за которого такая конструкция не работает. Пришлось сделать, как обычно 😁:

$ sudo su
# vt completion bash > /etc/bash_completion.d/vt
# exit

После этого регистрируем свой API Key:

$ vt init

Теперь можно в консоли делать различные проверки:

$ vt scan file awscliv2.zip
awscliv2.zip M2UwMDJjNjU2MTZjRlZmY6MTc3NjM2NDgzNQ==

Файл загрузился и ему назначен ID. Нужно некоторое время, чтобы завершилась проверка. Обычно минута-две. Смотрим результат проверки по этому ID:

$ vt analysis M2UwMDJjNjU2MTZjRlZmY6MTc3NjM2NDgzNQ==

Вываливается портянка проверок. Большого смысла читать всё нет. Нас интересует только результат:

$ vt analysis -i=stats M2UwMDJjNjU2MTZjRlZmY6MTc3NjM2NDgzNQ==
- stats:
  confirmed-timeout: 0
  failure: 1
  harmless: 0
  malicious: 0
  suspicious: 0
  timeout: 11
  type-unsupported: 8
  undetected: 56

Таким же образом можно сайты и их IP адреса проверять:

$ vt url https://serveradmin.ru
$ vt url last_serving_ip_address https://serveradmin.ru

Можно ограничить вывод, чтобы не читать всё:

$ vt -i=**.result url https://serveradmin.ru
$ vt -i=**.result url last_serving_ip_address https://serveradmin.ru

Я погонял разные проверки. Сначала вроде воодушевился, что можно использовать CLI. Но на деле анализировать вывод глазами не очень удобно. В браузере привычнее. Возможно вам где-то это пригодится больше, чем мне. У кого какие привычки.

Это решение скорее для каких-то небольших своих проектов типа телеграм бота или скриптов автоматизации с проверками доменов или IP адресов, если их не очень много. Например, с помощью этой утилиты можно автоматически проверять свои IP адреса на предмет попадания в списки нежелательных адресов.

❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.

———
ServerAdmin: 📱 Telegram | 🌐 Сайт | 📲 MAX 😩

#security
Please open Telegram to view this post
VIEW IN TELEGRAM
👍111👎1
▶️ Очередная подборка авторских IT роликов, которые я лично посмотрел и посчитал интересными/полезными. Это видео из моих подписок за последнее время (обычно беру период в 2 недели), что мне понравились.

I Was Wrong About OpenClaw
Небольшое предостережение для тех, кто использует ИИ-агента OpenClaw. Компании Anthropic и Google начали банить тех, кто использует свои учётки с оплаченными месячными тарифами в OpenClaw. Подразумевается, что вы должны работать с ИИ через веб интерфейс в ручном режиме, а не круглосуточно через агентов.

OpenClaw | УСТАНОВКА и НАСТРОЙКА | ЛОКАЛЬНО НА НОУТБУКЕ | ШАГ за ШАГОМ
Установка и настройка ИИ OpenClaw на компьютер с Windows. Сам агент установлен в виртуалку с Ubuntu, но работа с ним ведётся на винде через Ollama и локальную модель. Автор показал пример с написанием простенькой игры через агента.

Как запустить Claude Code в России: GLM-5.1 без VPN и карты
Пошаговая инструкция настройки окружения для работы с Claude Code в России через посредника, который принимает оплату в рублях. Помимо подключения к ИИ, автор показывает поэтапно создание и работу с проектом на примере небольшой странички на python. Кстати, сам сервис из видео им же полностью написан с нуля клодом. Сразу поясню, кто не знает - работа по API с ИИ очень дорогая, тем более через посредника. Подходит только для тестов. Для постоянной работы нужен месячный тариф. Там токенов в разы больше за те же деньги, что съест API.

Учим OLLAM'у ВЕБ ПОИСКУ! Openwebui ollama web search
Интеграция веб поиска в олламу для работы локальных моделей. Это если у вас нет отдельного агента. Обычно поиск подключают к агентам.

SearXNG - Ваш Личный Анонимный Поисковик
Настройка своего локального поисковика на базе открытого SearXNG. Мне знаком этот движок. Я его в своё время тестировал и писал о нём. Его в то время банил Yandex, не было с ним интеграции, поэтому пользоваться им так и не стал. Сейчас автор показал, что Яндекс поддерживается.

Loki 3 + Vector + Grafana - тестовый стенд и рабочий helm-чарт
Настройка кластера Loki с хранением S3. Вариант для нагруженного продакшена.

Полезные советы по Zabbix: Запуск зависимостей
Наглядная демонстрация работы зависимостей триггеров в Zabbix. Это помогает избежать лишних уведомлений. Иногда это спасает от шквала сообщений, когда отвалится какой-то удалённый филиал. В идеале их надо бы всегда настраивать, но и я иногда ленюсь и получаю этот спам.

I Built a Real 3-2-1 Backup System
Автор рассказал, как он бэкапит свои 30TB данных: TrueNas, ZFS, б.у. диски и так далее. Его, кстати, тоже удивляют цены на диски. Так что это не только у нас они заоблачные. Год назад покупал себе диск на 3ТБ, сейчас он в 2 раза дороже.

Программное обеспечение с открытым исходным кодом, которое я буду использовать и в 2026 году — Часть 2
Первая часть была в прошлой подборке, в этой - вторая. Автор рассказывает про открытое ПО, которое использует: OpenWRT, Technitium, RustDesk и другие.

Виртуалки, Docker или LXC - что выбрать для твоей HOMELAB?
Автор подробно и наглядно разобрал тему с хорошей визуализацией. Интересно будет тем, кто до конца не понимает разницу.

#видео
Please open Telegram to view this post
VIEW IN TELEGRAM
👍58👎1
Решил понемногу погружаться в тему ИИ, чтобы изучить технологию работы с ними не на уровне вопросов в окно чата, а чуть поглубже. Начать решил с локальных моделей, так как они всегда под рукой, бесплатны, нет ограничений доступа, а технически взаимодействие с ними такое же, как и с большими платными моделями. Разница лишь в качестве ответов. Для обучения это некритично.

Весьма кстати недавняя покупка нового компьютера. Покупал его не для работы с ИИ, а просто как основной рабочий. Конечно, его видюхи маловато для локальных моделей, но с другой стороны, что-то мощнее и стоит дороже. Компьютер в целом сбалансированный получился и просто так его не усилить без добавления денег. Сразу показываю конфигурацию, чтобы далее было понятен контекст:

▪️AMD Ryzen 5 5600
▪️32 ГБ Памяти
▪️RTX 5060 8 ГБ

Все выходные игрался с моделями - устанавливал, запускал, тестировал. Увлекательное занятие, не оторваться. Очень понравилось. Смотрел видео, читал материалы, изучал.

Работал с Ollama и LM Studio. Первая проще по настройкам, их там почти нет. Устанавливаешь, качаешь модель, чатишься. Более тонкая работа с ним будет уже через API и агентов. LM Studio более продвинутая в плане настроек и встроенных возможностей. Можно прямо в интерфейсе подключать плагины, MCP сервера. Для первоначального знакомства с технологией лучше подходит. Плюс, OIllama почему-то меньше нагружает видеокарту, больше процессор, а LM Studio наоборот - на 100% видеокарту и потом процессор. В чём причина - не разбирался. Все настройки дефолтные.

У LM Studio удобный поиск по моделями. Она сразу показывает, какие модели у тебя нормальной пойдут, а какие пробовать не стоит. Для того, чтобы быстро сориентироваться в этой теме, можно воспользоваться сайтом - canirun.ai. Он автоматически видит твоё железо и показывает, какие модели как на нём заработают. LM Studio делает примерно то же самое у себя.

У меня шустро работают модели до 10B, а если больше, то только квантированные - Q4_K_M. Но некоторые очень медленно, надо оставлять запрос на выполнение и заниматься другими делами. Например:

- Qwen3.6-35B-A3B-Q4_K_M даёт 7 токенов в секунду;
- Qwen3-Coder-30B-A3B-Instruct-Q4_K_M - 15;
- Gemma-4-31B-it-Q4_K_M только 1.

Для первоначального знакомства ориентироваться стоит на популярные модели:

◽️Qwen
◽️Llama
◽️Gemma
◽️GigaChat
◽️Mistral

Я тестировал как общие, так и заточенные на программирование, те, что имеют приписку coder. Например, плейбуки ансибла или докер файлы Qwen3-Coder-30B пишет вполне сносно.

Я для себя наметил следующие задачи, которые попробую решить с помощью небольших локальных моделей:

🔹Интеграция с IDE при написании конфигураций и скриптов для решения текущих рабочих задач.
🔹Поиск и анализ информации в интернете, в частности выжимка из ежедневных новостей и видео, фокус на том, что мне интересно.
🔹Работа с моими текущими задачами, документами, календарём.
🔹Автоматизация некоторой рутины, связанной с отчётностью по рекламе, договорами, бухгалтерией, бюджетом и т.д.

Хочу научиться работать с RAG и MCP. Для того, чтобы хотя бы примерно понять, какие практические задачи можно решать с MCP, предлагаю посмотреть популярные порталы с ними:

- Google MCP Servers
- NeuralDeep MCP (много российских интеграций)
- Official MCP Registry
- MCPmarket

Например, к модели через MCP можно подключить Grafana или Zabbix и работать с их сущностями, чаты MAX для чтения и отправки сообщений, магазин Вкусвилл для набора корзины и т.д. Много интересных и необычных интеграций. Есть где развернуться. Причем для таких небольших прикладных задач локальной модели будет достаточно.

Буду рад любым практическим советам в этом деле. По мере появления свободного времени, буду потихоньку всё это изучать и чем-то делиться. Лучший способ что-то изучить - это хоть как-то начать взаимодействовать с технологией. Сначала ничего не понятно, но по мере погружения в контекст будет получаться всё больше и больше.

❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.

———
ServerAdmin: 📱 Telegram | 🌐 Сайт | 📲 MAX 😩

#ai
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
2👍205👎3
В продолжение утренней темы, так как по длине туда всё не влезло. Хочу кратенько ещё одну тему затронуть, которая сейчас только набирает популярность - безопасная работа с ИИ. Пока не погружаешься в эту тему, до конца не понимаешь, какие конкретно есть опасности.

Например, в LM Studio появились плагины. Я когда про них читал, погрузился в эту тему. Они пишутся на JavaScript, в перспективе будет Python, и закодить там можно всё, что угодно. Помимо того, что в коде самих плагинов может что-то быть, но это проверяется относительно просто, они могут ходить по сайтам и собирать информацию. В этих сайтах могут быть запрятаны инструкции что-то сделать, что вам не понравится. Например, проверить какие-то локальные файлы, к которым есть доступ, найти там какие-нибудь токены от платных сервисов и отправить их куда-то во вне веб запросом. Или что-то более простое - гонять модельку по редиректам, устраивая кому-то ддос, или просто отправить её сканировать localhost или твою локальную сеть.

Ещё один вполне реальный пример. Вам присылают документ, который вы автоматом отправляете в ИИ на анализ. В документе есть инструкция - добавить ссылку на вредоносный сайт или заменить существующую. Может быть и посложнее - проверить локальный RAG на предмет каких-то паролей, токенов или другой приватной информации, и перейти по адресу aiserver.com/?info=password. Обычным GET запросом агент выдаст найденный пароль. А серия таких запросов может вообще какую угодно текстовую информацию выдать.

Чем плотнее ИИ-агенты будут интегрироваться в наши процессы, а мне видится это неизбежным уже в самом ближайшем будущем, тем больше у них будет доступов и возможностей. И тут впору появиться какому-то специализированному ИИ-антивирусу, который будет защищать от таких проблем. А пока их нет, вся защита на пользователях.

Публичные сервисы от всего этого защищены, а вот локальная защита - ваша ответственность. Самое очевидно - использовать самодельные песочницы. В простом случае - отдельные виртуалки и гонять информацию между ними без участия ИИ-агентов. И уж точно не запускать агентов с доступом ко всей информации или всему компьютеру. Сколько уже историй видел в инете, когда агенты грохали пользовательские файлы или всю систему.

#ai #security
1👍77👎2
Покажу один из примеров, где локальные модели вполне могут справляться с поставленными задачами. Есть открытый проект Vane, в прошлом назывался Perplexica. Как можно понять из названия, это копия функциональности Perplexity. Автор переименовался, потому что хочет развивать продукт в другом ключе, а не делать клон популярного сервиса.

Vane работает на базе открытого поисковика SearxNG. Он собирает поисковую выдачу, передаёт результат в ИИ, который формирует ответ. Всё это работает локально и управляется вами. В чём преимущество и удобство Vane? Тут три основных момента.

1️⃣ Вы управляете через настройки SearxNG поисковой выдачей. Можете выбирать поисковую систему, или несколько систем, с которых будет браться выдача.

2️⃣ Вы сами выбираете модель, которая будет формировать выдачу. Это могут быть как платные внешние модели, типа OpenAI, Gemini, Groq, Anthropic, так и локальные, запущенные через Ollama или LM Studio.

3️⃣ Все результаты хранятся у вас локально. Нет риска быть забаненными и потерять все диалоги.

Я погонял этот движок на базе локальных моделей через LM Studio. Настройка очень простая. У меня всё сразу получилось. При использовании моделей Openai/gpt-oss-20B, Qwen3.6-35B-A3B, Qwen3-Coder-30B-A3B ответ готовится 1-3 минуты, что вполне терпимо. И при этом он нормального качества. Если брать модели попроще, то качество ответов мне не понравилось.

Рассказываю, как всё это настроить у себя. Запускаем Vane на любой виртуальной машине. Много ресурсов не надо, 4vCPU и 4GB памяти хватает за глаза. Может и меньше - это стандартный размер моей тестовой виртуалки.

# docker run -d -p 3000:3000 -v vane-data:/home/vane/data --name vane itzcrazykns1337/vane:latest

Vane запустится сразу с настроенным SearxNG, где по умолчанию настроен поисковик Google. Для постоянного использования SearxNG лучше установить и настроить отдельно, чтобы можно было управлять выдачей. Это нетрудно сделать. Для тестов хватит и гугла.

Качаем и устанавливаем LM Studio. Там простой установщик, сложностей никаких нет. Запускаем LM Studio, идём в раздел Model Search, там где робот с лупой нарисован. Ставим максимально возможную для вас модель. Проще всего начать с Qwen или GPT-OSS. Они для этих задач хорошо подходят.

Идём в раздел Local Server, загружаем скачанную модель. Контекст выставляем примерно 20 000. Мне его всегда хватало. Если меньше, то иногда поисковик ругался, что не хватает контекста. После загрузки модели включаем ползунок Status: Stopped, чтобы он стал Status: Running. В свойствах сервера активируйте параметр Serve on Local Network, чтобы он стал доступен по сети, а не только локально.

Открываем в браузере виртуалку с Vane на порту 3000. Он запущен без аутентификации, сразу можно работать. Идём в настройки, нажимаем Add Connection, выбираем Connection Type - LM Studio и указываем адрес машины с запущенной ИИ, порт по умолчанию 1234. У меня адрес LM Studio - http://192.168.137.200:1234/.

Заходим в добавленное подключение, выбираем Chat Model - openai/gpt-oss-20b, Embedding Model - all-MiniLM-L6-v2. Я не знаю, чем они принципиально отличаются. С этой мне больше всего понравилась скорость и результаты.

На этом всё. Открываем новый чат и вводим запрос. Работает примерно так же, как бесплатная Perplexity, только тут вы управляете и поисковиком, и моделью. Можете подключить нормальную коммерческую, результат будет отличный, и при этом всё хранится и управляется вами.

Понравилось, что он умеет ходить на заданные сайты и готовить выжимку из новостей, или конкретной статьи. Не пишет, как Qwen, что я не умею ходить по ссылкам. Важно, чтобы сайт его не распознал, как работа и не заблокировал парсинг. Какие-то блокируют, какие-то нет.

Из багов заметил, что иногда падал контейнер с Vane, когда использовал разные embedding модели, в том числе запущенные в LM Studio. Со стандартной all-MiniLM-L6-v2 проблем не было.

Получается вполне себе функциональное и прикладное решение.

❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.

———
ServerAdmin: 📱 Telegram | 🌐 Сайт | 📲 MAX 😩

#ai
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
2👍117👎1
В Proxmox уже больше года, начиная с версии 8.4, существует полезная функциональность в виде VirtioFS. Про эту платформу виртуализации последнее время много пишут и снимают роликов, но ни у кого не видел упоминания этой возможности. А она удобная и часто упрощает некоторые задачи.

С помощью VirtioFS можно в рамках одного гипервизора всем виртуальным машинам подключать общую папку для совместной работы, которая располагается на гипервизоре. Основное удобство тут в том, что всё это работает только локально в пределах гипервизора, вообще не использует сетевой стек, и не требует особой настройки. Просто добавляешь эту общую папку в виртуальные машины и там подключаешь. Не нужно следить за доступом по сети, за аутентификацией и т.д. Права доступа поддерживаются только линуксовые, в том числе расширенные атрибуты ACL.

VirtioFS поддерживается и в Linux, и в Windows. В линуксе есть поддержка на уровне ядра, так что вообще ничего дополнительно устанавливать и настраивать не надо. В винде драйвер входит в состав драйверов из набора virtio-win.iso, так что в любом случае будет установлен вместе с остальными. Дополнительно нужно будет установить небольшую службу winfsp, упакованную в .msi пакет. Настраивать её тоже не надо. Просто устанавливаешь, запускаешь и она автоматом монтирует диск, который подключен к VM как устройство virtiofs.

Покажу пару примеров, где это может быть полезно. Я не раз настраивал в рамках одного гипервизора сервер 1С на Linux и виндовый терминал, как для пользователей, так и служебные машины с виндой для администраторов 1С. Меня иногда просят сделать общую сетевую папку для винды и линукса, чтобы настраивать какие-то обмены. Не знаю, насколько это реально нужно именно в таком виде, но настраивал не раз, обычно на samba или ksmbd. Эту задачу проще всего решает как раз VirtioFS - одна общая папка для всех систем.

Общую папку можно монтировать всем виртуалкам для того, чтобы они туда складывали какие-то бэкапы или нужные общие данные (например, логи или санкционные пакеты). Они в итоге оказываются на гипервизоре, а уже оттуда их забирает какое-то внешнее хранилище. Удобно держать под рукой локальные бэкапы для быстрого восстановления в случае проблем. Общая директория упрощает настройку и управление. У всех вируталок она будет одинаково смонтирована с одинаковым же именем и путём. Опять же вообще не задействуется сетевой стек для перемещения данных внутри этого общего хранилища.

Настраивается всё это дело в разделе Datacenter ⇨ Directory Mappings. В качестве общей директории выбирается любая папка на гипервизоре. Можно отдельный диск под это выделить.

В Linux монтируеутся, как обычно:

# mount -t virtiofs VM_Share /mnt/VM_Share

В Windows, как я сказал, достаточно установить winfsp и запустить службу, которую она добавит. Служба автоматом создаст отдельный диск, подключенный как virtiofs, использовав его имя.

☝️ С подключенным устройством VirtioFS виртуальная машина не сможет автоматически мигрировать в кластере. Так что для кластеров с автобалансировкой это решение не подходит.

#proxmox
2👍181👎1