This is an old revision of the document!
Не можешь победить - возглавь
Ну, или, хотя бы попробуй
Всем привет!
Однажды мы получили сообщение от пользователей, что “не открывается” некоторый корпоративный ресурс. Как обычно, “никто ничего не менял” но, как оказалось, что-то случилось 40 дней назад. А именно, перестал быть доступен мастер сервер DNS зоны подразделения, а центральный сервер предприятия, являющийся для нее вторичным, еще 40 дней пытался синхронизировать зону и отвечал на запросы клиентов, после чего “решил” что зона больше не существует. И обо всем этом были записи в журнале. Выводы были сделаны, в Zabbix добавили чтение логов по ключевым словам, примерно так:
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
Но, сомнения остались, что если в журнале появится что-то еще ВАЖНОЕ, не содержащее ключевых слов?
Прошли годы, начался хайп по поводу вайбкодинга, хорошие люди поделились ключем к opencode и появилась идея решить эту задачу не правильным способом - поиском готового решения (поделитесь в комментариях, кто что использует?), а “наколхозить” собственный “велосипед” с помощью ИИ.
Идея: для экономии токенов выделить только сообщения с высоким уровнем важности
# cat /etc/rsyslog.d/40-syslog-high.conf template(name="WithSeverityFacility" type="string" string="%TIMESTAMP% %HOSTNAME% [%syslogfacility-text%.%syslogseverity-text%] %syslogtag%%msg%\n") *.warning -/var/log/syslog.high;WithSeverityFacility
пропускать их через LLM и уведомлять инженеров только о тех, которые будут уже ей будут оценены как важные
Так же, добавить возможность легко корректировать
Первые программы писал на Бейсике в конце 80-х, потом игры на Ассемблере, потом институт/экзамены/сессия - Паскаль, Си, первые заработки на MS Access/Delphi, потом WWW - CGI, Perl, потом “отстал от поезда” - ушел с сисадмины - Bash, и вот “услышал” что можно вернуться в программирование - Вайбкодинг
Способности средние, как работает компьютер представляю, но, что писать хорошие программы не просто в любой среде разработки - знаю по себе
Первая проблема - платная подписка, что бы попробовать
Вторая, а что собственно пробовать
Создай новый проект на python в новой папке. Задача - чтение журнала в режиме tail и анализ каждой строки через ИИ на предмет важности. Если строка важная, информация отправляется по электронной почте вместе с комментарием ИИ с использованием почтового сервера mail.bmstu.ru и учетной записи noc-ai с паролем Необходима возможность ответа на письмо с корректирующей информацией, которая должна использоваться в дальнейшем для оценки важности сообщений Анализировать только письма с ответами, остальные игноруй Все параметры через переменные окружения В проекте используй свой ИИ Задай уточняющие вопросы
добавь учтет расхода токенов в каждое сообщение
не анализируй каждую строку журнала не предмет важности фильтрация только на основе корректирующей информации
игнорируй сообщения 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