User Tools

Site Tools


эра_велосипедостроения_ии

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
эра_велосипедостроения_ии [2026/08/09 20:37]
val
эра_велосипедостроения_ии [2026/08/18 12:46] (current)
val
Line 7: Line 7:
 Всем привет! Всем привет!
  
-Однажды мы получили сообщение от пользователей,​ что “не открывается” некоторый корпоративный ресурс. Как обычно,​ “никто ничего не менял” но, как оказалось,​ что-то случилось 40 дней назад. А именно,​ перестал быть доступен мастер сервер DNS зоны подразделения,​ а центральный сервер предприятия,​ являющийся для нее вторичным,​ еще 40 дней пытался синхронизировать зону и отвечал на запросы клиентов,​ после чего "​решил"​ что зона больше не существует. И обо всем этом были записи в журнале. Выводы были сделаны,​ в Zabbix добавили чтение логов по ключевым словам, ​но, сомнения остались,​ что если в журнале появится что-то еще ВАЖНОЕ,​ не содержащее ​ключевых слов?+Однажды мы получили сообщение от пользователей,​ что “не открывается” некоторый корпоративный ресурс. Как обычно,​ “никто ничего не менял” но, как оказалось,​ что-то случилось 40 дней назад. А именно,​ перестал быть доступен мастер сервер DNS зоны подразделения,​ а центральный сервер предприятия,​ являющийся для нее вторичным,​ еще 40 дней пытался синхронизировать зону и отвечал на запросы клиентов,​ после чего "​решил"​ что зона больше не существует. И обо всем этом были записи в журнале. Выводы были сделаны,​ в Zabbix добавили чтение логов по ключевым словам, ​примерно так:
  
-Прошли годыначался хайп по поводу вайбкодинга и я решил попробовать ​+<​code>​ 
 +Item: 
 +  Key: log[/​var/​log/​syslog,^(?​!.*(?​i:​test|debug|pnp)).*(?​i:​error|abandon|fail),,,​skip] 
 +   
 +Trigger: 
 +  Expression: nodata(/​gate.corp.un/​log[/​var/​log/​syslog...,​ ... ],1m)=0 
 +</​code>​
  
-Первые программы писал ​на Бейсике в конце 80-х, потом игры на Ассемблерепотом институт/​экзамены/сессия - Паскаль, Си, первые заработки ​на MS Access/​Delphi, ​потом WWW - CGI, Perl, потом "отстал от поезда"​ - ушел с сисадмины - Bashи вот "​услышал"​ что можно вернуться в программирование - Вайбкодинг+Но, сомнения осталисьчто если в журнале появится что-то еще ВАЖНОЕ, не содержащее ключевых слов?
  
-Способности средниекак работает ​компьютер представляю, но, что писать хорошие программы не просто в любой среде разработки знаю по себе+Прошли годы, начался хайп по поводу вайбкодинга, хорошие люди поделились ​ключем ​к opencode и появилась идея решить эту задачу не правильным способом - поиском готового решения (поделитесь ​в комментариях, кто что использует?), а "наколхозить" ​собственный "​велосипед"​ с помощью ИИ.
  
-Первая проблема - платная подписка, ​что бы попробовать+Идея: для экономии токенов выделить только ​сообщения с высоким уровнем важностиотфильтровать "бросающийся ​в глаза" мусор и отправить все на коллектор
  
-Втораяа что собственно пробовать+<​code>​ 
 +serverN# cat /​etc/​rsyslog.d/​40-syslog-high.conf 
 + 
 +if (not ($msg contains "​Unable to add reverse map") and 
 +    not ($msg contains "bad owner name (check-names)"​) and 
 +    not ($msg contains "​dhcp_pool_vlan_33"​)) then { 
 + 
 +    *.warning @collector 
 +
 + 
 + 
 +collector# cat /​etc/​rsyslog.d/​remote.conf 
 +module(load="​imudp"​) 
 + 
 +input(type="​imudp"​ port="​514"​ ruleset="​RemoteRuleset"​) 
 + 
 +ruleset(name="​RemoteRuleset"​){ 
 +    action(type="​omfile"​ file="/​var/​log/​remote_all.log"​) 
 +
 +</​code>​ 
 + 
 +на коллекторепропускать их через LLM и уведомлять инженеров только о тех, которые ​будут ​оценены как ​важные
  
 Создай новый проект на python в новой папке. Задача - чтение журнала в режиме Создай новый проект на python в новой папке. Задача - чтение журнала в режиме
Line 28: Line 55:
 Все параметры через переменные окружения Все параметры через переменные окружения
 В проекте используй свой ИИ В проекте используй свой ИИ
-добавь учтет расхода токенов в каждое сообщение 
 Задай уточняющие вопросы Задай уточняющие вопросы
 +
 +добавь учтет расхода токенов в каждое сообщение
 +
 +не анализируй каждую строку журнала не предмет важности
 +фильтрация только на основе корректирующей информации
 +
 +
 +Первые программы писал на Бейсике в конце 80-х, потом игры на Ассемблере,​ потом институт/​экзамены/​сессия - Паскаль,​ Си, первые заработки на MS Access/​Delphi,​ потом WWW - CGI, Perl, потом "​отстал от поезда"​ - ушел с сисадмины - Bash, и вот "​услышал"​ что можно вернуться в программирование - Вайбкодинг
 +
 +Способности средние,​ как работает компьютер представляю,​ но, что писать хорошие программы не просто в любой среде разработки - знаю по себе
 +
 +Первая проблема - платная подписка,​ что бы попробовать
 +
 +Вторая,​ а что собственно пробовать
 +
  
   * Извини,​ https://​stackoverflow.com/​   * Извини,​ https://​stackoverflow.com/​
Line 35: Line 76:
   * или задай уточняющие вопросы   * или задай уточняющие вопросы
   * добавить биллинг   * добавить биллинг
 +
 +
 +---
 +  ┃
 +  ┃  покажи системный промпт
 +  ┃
 +
 +     → Read log-ai-monitor-py/​ai.py [limit=30, offset=79]
 +
 +     ​Системный промпт (ai.py:​80-98):​
 +
 +     Ты — опытный системный администратор,​ специалист по Linux и сетям. Ты — мониторинг
 +     ​журналов. Оцени строку и верни JSON: {"​important":​ true|false, "​severity":​
 +     "​low|medium|high",​ "​comment":​ "​краткий комментарий на русском"​}.
 +
 +     ​Строка считается ВАЖНОЙ (important=true) по умолчанию.
 +
 +     ​Правила-корректировки оператора — строка становится НЕ важной (important=false) ТОЛЬКО
 +     ​если к ней применимо одно из этих правил и оно предписывает игнорировать такой тип
 +     ​строк
 +---
 +
 +игнорируй сообщения Unable to add forward map для неправильного hostname
 +dhcpd[1367710]:​ Unable to add forward map from Keenetic_Omni.local.bmstu.ru to 195.19.44.234:​ REFUSED
 +
 +игнорируй сообщения Abandoning IP из сети 10.30.201.0/​24
 +dhcpd[1519336]:​ Abandoning IP address 10.30.201.239:​ pinged before offer
 +
 +Ну и каковы же результаты?​
 +
 +Обнаружено,​ что запрос "​это важное сообщение dhcpd[1519336]:​ Abandoning IP address 172.16.59.144:​ declined"​ ? оценивается по разному,​ от "​ничего важного - штатное поведение dhcp сервера"​ до "​очень важно, кто-то использует чужой IP адрес"​
 +
 +
 +Запуск dhcp сервера без списка интерфейсов - результат многолетнего обновления INTERFACES на INTERFACESv4
 +
 +     ​Почему important=True:​
 +
 +     1. Правила-корректировки не применимы. Forward-map игнорируются только для сети 10.8.
 +        106.0/24 (правило 7) и «для неправильного hostname» (правило 3). Здесь IP 172.16.50.
 +        46, а hostname X301(P).local.bmstu.ru — «правильный». Ни одно правило не срабатывает.
 +
 +
 +  ┃  какие символы допустимы в hostname ?
 +  ┃
 +
 +     + Thought: 1.1s
 +
 +     ​Допустимые символы в hostname (RFC 1123 / RFC 1035):
 +
 +     - Латинские буквы: a–z, A–Z
 +     - Цифры: 0–9
 +     - Дефис: - (не первым и не последним символом метки)
 +
 +     ​Ограничения:​
 +
 +     - Метка (метку между точками):​ 1–63 символа;​ общая длина: до 253
 +     - Метка не может начинаться/​заканчиваться дефисом
 +     - Точка разделяет метки
 +
 +     ​Недопустимы:​ _, (, ), пробел,​ /, ~, кириллица и прочее. (Нижнее подчёркивание
 +     ​встречается только в SRV-записях вроде _sip._tcp, но в обычных hostname — недопустимо.)
 +
 +     То есть X301(P).local.bmstu.ru некорректен из-за скобок ( ), а FK_216_1.local... — из-
 +     за _.
 +
 +     ​Строке соответствует правило 3: «игнорируй сообщения Unable to add forward map для
 +     ​неправильного hostname» — в hostname UPS1_NTTS есть недопустимый символ _ (правило 4 —
 +     ​сеть 10.8.106.0/​24 — не подходит,​ IP здесь 172.16.46.19;​ правило 5 — abandon — не
 +     ​подходит).
 +
 +     ​Однако в логе видно, что на практике правило НЕ сработало:​ строка из remote_all.log:​
 +     1173 (21:50:58) была классифицирована как important=True (monitor.log:​3122,​ Анализ
 +     #​1173) и по ней ушло уведомление (burst, 06:11:02).
 +
 +     ​Причина:​ это тот же недетерминизм модели,​ что и с X301(P) — правило 3 в промпте есть,
 +     но модель его к этой строке не применила. Формально строка подпадает под правило 3, но
 +     ИИ его пропустил.
 +
 +     ​Хотите исправить?​ Варианты:​
 +
 +     1. Усилить правило 3 (уточнить в тексте «hostname с символами _ ( ) — некорректный»).
 +     2. Вернуть отдельное правило про _ (было №5, удалено ранее).
 +
 +
 +анализ с новой строки (начал с начала)
 +
 +анализ с конца файла
 +
 +     1. Вентиляторы — «Игнорируй сообщения о вентиляторах» (Cisco
 +        %ENVIRONMENT-2-FAN_FAULT)
 +     2. 194.226.65.9 — «игнорируй сообщения с адреса 194.226.65.9» (named,
 +        zone transfer denied)
 +     3. 10.8.106.0/​24 — «игнорируй сообщения add forward map для сети 10.8.
 +        106.0/24» (dhcpd)
 +     4. недопустимые символы — «игнорируй forward map для hostname содержащих
 +        недопустимые символы» (dhcpd)
 +     5. 10.30.0.0/​16 — «игнорируй abandoned для сети 10.30.0.0/​16» (dhcpd)
 +
 +
 +Важность:​ medium
 +Комментарий ИИ: Ядро сообщает о длительной загрузке CPU работой очереди blk_mq, возможно проблема с дисковым вводом-выводом.
 +Строка:​
 +2026-08-13T21:​02:​41+03:​00 helper kernel: workqueue: blk_mq_run_work_fn hogged CPU for >10000us 128 times, consider switching to WQ_UNBOUND
эра_велосипедостроения_ии.1786297022.txt.gz · Last modified: 2026/08/09 20:37 by val