Современные системы генерируют гигабайты логов, и поиск в них иголки — задача, отнимающая часы. Что, если нейросеть сможет читать ваши логи и сразу говорить, в чём проблема и как её исправить?
В этой статье я покажу, как за 15 минут настроить локального AI-агента на базе
Ollama и связки PHP + Zabbix.
Система не отправляет данные в облако, работает полностью офлайн и использует мощную модель qwen3-30b-a3b-instruct.
Всё строится на двух компонентах:
10.10.33.170 — здесь крутится Ollama и запущена модель qwen3-30b-a3b-instruct (MoE, 30B параметров, ~8 токенов/сек).10.10.33.122 — на нём работает PHP-скрипт, который собирает ошибки из логов и отправляет их в нейросеть.qwen3-30b-a3b-instruct на API /v1/chat/completions (OpenAI-совместимый).
Это мощная MoE-модель, которая даёт высокое качество анализа при хорошей скорости (~8.7 токенов/сек) на CPU.
Весь код — один PHP-файл. В нём две кнопки:
1️⃣ «Забрать ошибки из логов» — парсит системные логи и ищет критические события.
2️⃣ «Отправить на анализ» — передаёт найденные ошибки в нейросеть и получает рекомендации.
Ниже — финальная версия скрипта с адаптацией под OpenAI API и моделью qwen3-30b-a3b-instruct.
<?php
// ========== КОНФИГУРАЦИЯ ==========
define('OLLAMA_HOST', 'http://10.10.33.170:8081'); // AI-бекенд
define('MODEL_NAME', 'qwen3-30b-a3b-instruct'); // Мощная MoE-модель
define('MAX_TOKENS', 300);
define('TIMEOUT', 300); // 5 минут
// Файлы логов для анализа
define('LOG_FILES', [
'/var/log/syslog',
'/var/log/auth.log',
'/var/log/nginx/error.log',
'/var/log/zabbix/zabbix_server.log',
]);
// Ключевые слова для поиска ошибок
define('ERROR_KEYWORDS', ['error', 'fatal', 'panic', 'critical', 'failed', 'exception', 'timeout']);
Используется стандарт OpenAI Chat Completions (/v1/chat/completions).
function analyzeWithAI($text) {
if (empty($text)) return "⚠️ Нет ошибок для анализа.";
$url = OLLAMA_HOST . '/v1/chat/completions';
$prompt = "Проанализируй ошибки из логов. Дай краткий ответ (3-4 предложения):
• Что сломалось?
• Где?
• Что делать?
Ошибки:
" . $text;
$data = [
'model' => MODEL_NAME,
'messages' => [
['role' => 'user', 'content' => $prompt]
],
'temperature' => 0.1,
'max_tokens' => MAX_TOKENS,
'stream' => false
];
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
curl_setopt($ch, CURLOPT_HTTPHEADER, ['Content-Type: application/json']);
curl_setopt($ch, CURLOPT_TIMEOUT, TIMEOUT);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30);
$response = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
$error = curl_error($ch);
curl_close($ch);
if ($error) return "⚠️ Ошибка соединения: " . $error;
if ($httpCode !== 200) return "⚠️ Ошибка API (HTTP $httpCode)";
$decoded = json_decode($response, true);
return $decoded['choices'][0]['message']['content'] ?? "⚠️ Пустой ответ";
}
Мы провели замеры на сервере с 60 ГБ RAM и CPU без GPU.
Модель держится в памяти благодаря OLLAMA_KEEP_ALIVE=86400.
qwen3:8b (в 2–3 раза быстрее).
Но мы выбрали qwen3-30b-a3b-instruct ради качества — она лучше понимает сложные сценарии и даёт более точные рекомендации.
ollama pull qwen3-30b-a3b-instruct
OLLAMA_HOST=0.0.0.0 OLLAMA_KEEP_ALIVE=86400 ollama serve
/usr/share/zabbix/ai_log_analyzer.php
http://ваш-zabbix/ai_log_analyzer.phpВы открываете страницу, видите две кнопки. Жмёте «Забрать ошибки» — скрипт читает последние 100 строк из логов и показывает ошибки. Затем «Отправить на анализ» — через 10–20 секунд нейросеть выдаёт структурированный ответ:
• ГЛАВНАЯ ПРОБЛЕМА: Nginx не может подключиться к бэкенду (connection refused)
• ГДЕ: /var/log/nginx/error.log
• ЧТО ДЕЛАТЬ:
1. Проверить, запущен ли бэкенд-сервис (systemctl status app)
2. Проверить порт в конфиге nginx (proxy_pass)
3. Посмотреть файрвол (ufw allow 8080)
Мы построили полностью локального AI-агента для мониторинга, который работает без интернета, не передаёт данные вовне и даёт реально полезные рекомендации. Это не игрушка — это готовый инструмент, который уже помогает анализировать логи в инфраструктуре.
Используйте его как основу для своих AI-решений в мониторинге. Вы можете легко заменить модель, добавить новые источники логов или интегрировать с другими системами.
Комментарии
Пока нет комментариев. Будьте первым!