本記事は TechHarmony Advent Calendar 2025 12/5付の記事です。 |
メリークリスマス、SCSK株式会社の小寺崇仁です。
(今回はAIを使ってブログ記事を作成しています)
近年、監視ツールの分野では「APM(Application Performance Monitoring)」と「オブザーバビリティ(Observability)」というキーワードが急速に注目されています。APMはアプリケーションの応答時間・エラー率・リソース使用率といった性能指標を監視して問題を発見します。一方オブザーバビリティは、複数のメトリックス、ログ、トレースを相関的に分析し、より深い原因究明を可能にする考え方です。
監視の世界は数値監視から文字列監視、そして今――画像を解析対象とする「画像監視」へと進化しつつあります。各製品がオブザーバビリティ機能を強化する中、ZabbixもVersion 8.0から本格的に対応を進めています。
以下では、「Zabbix × AI によるサンタクロース検知」を題材に、画像監視の新たな可能性を実験的に紹介します。
なぜ今「画像監視」なのか
従来の監視はCPU負荷やメモリ、サービス応答時間といった定量的なメトリックス中心でした。しかし、数値では表せない現場の状態――防犯カメラ、天候、道路状況、作業手順の逸脱など――にも重要な監視情報が存在します。
画像を監視対象とすることで、人間の「目」が担っていた判断を自動化し、監視の範囲を飛躍的に拡張できます。これが「オブザーバビリティの次の段階」と考えられます。
検証概要:Zabbix×AIによるサンタクロース検知
本実験の目的は、Zabbixを中心にAI画像解析を連携し、視覚的なイベントを監視対象にできるかを検証することです。
実際には作業PCのカメラが撮影した画像をZabbixに送信し、AIがその画像内に「サンタクロースらしいもの」が写っているか判定します。
今回はAI環境にローカルLLM(Large Language Model)を採用しました。クラウドAIを利用する場合、API利用料や画像送信の通信コストが発生しますが、ローカル運用であればコストを抑制し、内部データを安全に処理できます。GPUを搭載したPC上で動作することで、クラウドコストゼロ・低遅延・オフライン分析を同時に実現できました。
検証環境構成
作業PC環境
- 機種:弊社標準ノートPC(Let’sNote)
- カメラ操作:PowerShell+FFmpegをユーザーパラメータ経由で実行
- データ送信:撮影画像をBase64変換しZabbixへ送信
Zabbix環境
- 仮想アプライアンス:ZV-700
- 構成:CPU 2コア / メモリ 4GB
AI解析環境
- CPU:Ryzen 5 7600
- メモリ:32GB
- GPU:RTX 4060
- AI実行環境:WSL2+Docker+Ollama
- AIモデル:llama3.2-vision(ローカルLLM)
実装手順
1. カメラ撮影設定(作業PC側)
FFmpegのインストール
winget install ffmpeg
撮影スクリプト(photo.ps1)
$CamName="USB HD Webcam" $FfmpegPath="C:\Users\scsk-kodera\AppData\Local\Microsoft\WinGet\Packages\Gyan.FFmpeg_Microsoft.Winget.Source_8wekyb3d8bbwe\ffmpeg-8.0.1-full_build\bin\ffmpeg.exe" $FilePath="C:\zabbix\photo.jpg" & $FfmpegPath -y -f dshow -i "video=$CamName" -frames:v 1 $FilePath -loglevel quiet 2>&1 | Out-Null $Bytes = Get-Content -Path $FilePath -Encoding Byte -Raw $Base64String = [System.Convert]::ToBase64String($Bytes) Write-Output $Base64String
Zabbix Agent設定
UserParameter=get.file.photo[*],"C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe" -NoProfile -ExecutionPolicy Bypass -File "C:\zabbix\photo.ps1"
2. 画像監視設定(Zabbix側)
(1) 撮影アイテム
| 名前 | 撮影アイテム |
| アイテムキー | get.file.photo |
| 監視間隔 | 1m |
(2) 画像保存アイテム
| 名前 | 画像アイテム |
| タイプ | 依存アイテム |
| データ型 | バイナリ |
| マスターアイテム | 撮影アイテム |
(3) AI画像判定アイテム
| 名前 | サンタクロース判定アイテム |
| タイプ | 依存アイテム |
| データ型 | 文字列 |
| マスターアイテム | 撮影アイテム |
| 保存前処理(Javascript) |
AI_URL = 'http://192.168.0.244:11434/api/generate'
ai_req = new HttpRequest();
ai_data = {
"model": 'llama3.2-vision',
"prompt": 'Does the person in the image look like Santa Claus? Answer only with "yes" or "no".',
"images": [value],
"stream": false,
"options": { "num_predict": 5, "temperature": 0.0 }
};
ai_resp = ai_req.post(AI_URL, JSON.stringify(ai_data));
ai_resp = JSON.parse(ai_resp);
return ai_resp.response;
※ここでプロンプトを指定しています |
(4) トリガー設定
| 名前 | サンタクロース検知 |
| 条件式 | find(/pc/san,,,”Yes”)=1 |
3. AI環境構築
# Ubuntu導入 wsl --install -d Ubuntu-22.04 wsl -d Ubuntu-22.04 # Dockerセットアップ sudo mkdir -m 0755 -p /etc/apt/keyrings curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y # Nvidiaのドライバ設定 curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg distribution=$(. /etc/os-release;echo $ID$VERSION_ID) curl -s -L https://nvidia.github.io/libnvidia-container/$distribution/libnvidia-container.list | \ sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \ sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list apt install -y nvidia-container-toolkit # Ollama起動(ローカルLLM) docker run -d --gpus all -v ollama:/root/.ollama -p 11434:11434 --name ollama ollama/ollama docker exec -it ollama ollama pull llama3.2-vision # Windows側からアクセス設定 netsh interface portproxy add v4tov4 listenaddress=0.0.0.0 listenport=11434 connectaddress=172.23.36.218 connectport=11434
検証結果
定期監視で撮影された画像がZabbix上に表示され、AI判定結果(Yes/No)が確認できます。サンタの風船を写したタイミングではAIが「YES」と回答し、トリガーが検知しました
GPUリソースが正しく利用されており、ローカルLLMによる推論が安定して実行されています。クラウドに画像を送信しない設計のため、セキュリティ面でも保護された構成となりました。
注意点
- Zabbixの保存前処理のタイムアウトは10秒です(変更不可)。
- AI処理にはGPU性能が大きく影響します。
- クラウド利用料やAPIトークンコストを避けるため、ローカルLLMを活用しています。
- レスポンスを安定させるため、「num_predict=5」「temperature=0.0」でYes/No回答に限定しています。
まとめと今後の展望
今回のアドベントカレンダー記事では「サンタクロース検知」を通して、Zabbix×AI連携の新しい監視アプローチを検証しました。AI解析にはローカルLLM(llama3.2-vision)を活用し、クラウド依存のない低コスト・セキュアな画像監視基盤を構築しています。
今後の展開としては、AIを使った画像監視の高度化が期待されます。
AIが物体や動きのパターンを学習することで、単純な「Yes/No判定」から「異常検知」「状態分類」「傾向分析」へとステップアップし、よりインテリジェントな監視が可能になります。
- 製造ラインでの品質検査や異常検知
- 天候・災害監視の自動化
- 道路交通や防犯映像のリアルタイム分析
- オフライン環境でのローカルAI監視
OSSとAIによるオブザーバビリティ拡張の未来――
Zabbix × ローカルLLMによるAIを使った画像監視が、監視の新しい形を切り開こうとしています。
SCSK Plus サポート for Zabbix
★YouTubeに、SCSK Zabbixチャンネルを開設しました!★
★X(旧Twitter)に、SCSK Zabbixアカウントを開設しました!★




