Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Ansible で Vector を導入し Slack 通知とログレベル色分けまでした話
Search
Shuma
December 05, 2025
Programming
0
17
Ansible で Vector を導入し Slack 通知とログレベル色分けまでした話
【LT交流会】 テテミート 大阪#1
Shuma
December 05, 2025
Tweet
Share
More Decks by Shuma
See All by Shuma
阿部寛のホームページをSRE観点で改善出来るか考えてみた。
shubox
0
78
一日の終わりに、晩酌しながら眺めたいシステムログの世界
shubox
0
81
プロダクトがクローズした話
shubox
0
28
今も熱いもの!魂を揺さぶる戦士の儀式:マオリ族のハカ
shubox
0
240
信頼性工学とは? ~カツオを題材に~
shubox
0
93
バージョン管理と人生設計の類似点ver2 -リポジトリから学ぶ生きるヒント-
shubox
0
280
バージョン管理と人生設計の類似点
shubox
0
120
今年を振り返り、来年の抱負
shubox
0
260
インフラエンジニアが活きる組織、活きない組織って?
shubox
0
210
Other Decks in Programming
See All in Programming
配送計画の均等化機能を提供する取り組みについて(⽩⾦鉱業 Meetup Vol.21@六本⽊(数理最適化編))
izu_nori
0
120
Rediscover the Console - SymfonyCon Amsterdam 2025
chalasr
2
140
【Streamlit x Snowflake】データ基盤からアプリ開発・AI活用まで、すべてをSnowflake内で実現
ayumu_yamaguchi
1
110
AIエンジニアリングのご紹介 / Introduction to AI Engineering
rkaga
2
1.1k
目的で駆動する、AI時代のアーキテクチャ設計 / purpose-driven-architecture
minodriven
11
3.9k
WebRTC、 綺麗に見るか滑らかに見るか
sublimer
1
140
大体よく分かるscala.collection.immutable.HashMap ~ Compressed Hash-Array Mapped Prefix-tree (CHAMP) ~
matsu_chara
1
210
CSC509 Lecture 14
javiergs
PRO
0
220
C-Shared Buildで突破するAI Agent バックテストの壁
po3rin
0
200
TUIライブラリつくってみた / i-just-make-TUI-library
kazto
1
310
Level up your Gemini CLI - D&D Style!
palladius
1
170
モダンJSフレームワークのビルドプロセス 〜なぜReactは503行、Svelteは12行なのか〜
fuuki12
0
190
Featured
See All Featured
The Art of Programming - Codeland 2020
erikaheidi
56
14k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.2k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
31
2.7k
Leading Effective Engineering Teams in the AI Era
addyosmani
8
1.2k
Scaling GitHub
holman
464
140k
Making Projects Easy
brettharned
120
6.5k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
46
2.6k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
Designing for humans not robots
tammielis
254
26k
Fireside Chat
paigeccino
41
3.7k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
61k
Why Our Code Smells
bkeepers
PRO
340
57k
Transcript
Ansible で Vector を導入し Slack 通知とログレベル色分けまでした話 1 / 13
自己紹介 名前: Shuma 職種: SRE / インフラエンジニア 興味: IaC, 障害対応,
監視, パフォーマンス改善 最近うれしかったこと 懸賞でカニ当たった!!🦀 Shuma @ShuShuShuBOOOx 文鳥が人生を切り開くのです。 2 / 13
ログ監視、こんな課題ありませんか? 課題 1 手作業でミスが起こりやすい 設定の増減やフィルタ変更が頻繁に発生し、人 的ミスのリスクが高い 課題 2 環境ごとに設定が違う 「この環境だけ設定が違う」問題が頻発し、再現
性がない 課題 3 通知が多すぎて見分けられない 重要度がわからず、すべての通知を同じように 扱ってしまう ↓ Ansible × Vector × Slack で解決! 3 / 13
今日お話しすること 1 Vector とは? 高速・軽量なログ収集ツールの紹介 2 Ansible で自動化 インストールから設定管理まで 3
Slack 通知と色分け ログレベル別に視認性を向上 4 運用してわかったこと 導入効果と学び 4 / 13
SECTION 1 Vector とは? Datadog 社が開発 高速で軽量なログ収集・変換システム YAML で設定 柔軟かつ読みやすい設定ファイル
シンプルな 3段階構成 Sources → Transforms → Sinks VRL で変換処理 Vector Remap Language で柔軟に加工 SOURCES 入力 file, syslog, journald... ↓ TRANSFORMS 変換 filter, remap, aggregate... ↓ SINKS 出力 http, file, elasticsearch... 🔗 vector.dev 5 / 13
SECTION 2 Ansible で Vector を導入 📁 ディレクトリ構成 roles/ vector/
tasks/ main.yml install.yml configure.yml handlers/ main.yml templates/ vector.yaml.j2 group_vars/ all.yml ✨ ポイント 1. validate オプション 設定反映前に構文チェック validate: vector validate --config %s 2. Jinja2 テンプレート 変数で設定を動的生成 src: vector.yaml.j2 3. Handler で再起動 設定変更時のみ自動で反映 notify: Restart Vector 6 / 13
アラート定義を vars で管理 📝 group_vars/all.yml # 有効なアラート一覧 enabled_alerts: [1] name:
app_error level: error [2] name: app_warn level: warn ✓ 不要アラートは行を削除するだけ 🔧 vector.yaml.j2(テンプレート) transforms: {% for alert in enabled_alerts %} filter_{{ alert.name }}: type: filter inputs: ["app_logs"] condition: .level == "{{ alert.level }}" {% endfor %} メリット 1 レビュー可能 メリット 2 履歴が残る メリット 3 再現性◎ 7 / 13
オオカミアラートの排除 🐺 問題:対応不要なログが大量に通知される PHPの不要な例外ログ 対応する必要がないのに通知が来て、本当に重要なアラートが埋もれてしまう 例:よくある除外対象 UserNotFoundException TokenExpiredException ValidationException ↓
除外パターンを Ansible で管理 📝 除外設定のテンプレート化 # group_vars/all.yml exclude_patterns: [1] "UserNotFoundException" [2] "TokenExpiredException" [3] "ValidationException" # vector.yaml.j2 (filter) condition: | !match(.message, r'除外パターン') 8 / 13
SECTION 5 🐺 オオカミアラートの排除 😩 問題 対応不要な PHP 例外ログが Slack
に大量通知 → アラート疲れで本当に重要な通知を見逃すリスク ✅ 解決策 mtail で特定の例外パターンを除外フィルタリング → 本当に対応が必要なアラートのみ通知 📝 除外対象の例 正常系だが例外として出力されるログ ユーザー起因の想定内エラー リトライで自動復旧するエラー Deprecation warning 等の非緊急ログ 12 / 13
SECTION 3 Slack 通知をログレベルで色分け 🎨 色の意味 danger(赤) error / critical
warning(黄) warn good(緑) info 💡 色を見るだけで重要度がわかる 📱 Slack 通知イメージ #alerts [ERROR] Database connection failed [WARN] Memory usage exceeds 80% [INFO] Deployment completed → 「やばいやつ」がすぐわかる! 9 / 13
全体のデータフロー 🖥 アプリサー バー ログ出力 → VECTOR Sources file /
journald → VECTOR Transforms filter + remap → VECTOR Sinks http (Webhook) → 💬 Slack 色分け通知 📦 Ansible Vector インストール ⚙ Jinja2 設定テンプレート生成 🔄 Handler 変更時に自動再起動 入力 変換 出力 10 / 13
SECTION 4 運用してわかったこと 🎯 環境差分がゼロに Ansible 化で「この環境だけ設定が 違う」がなくなった 🔒 設定更新が安全に
PR ベースでレビューできるように なった 🗑 不要アラート削除が楽 vars から1行消すだけで反映され る ⚡ 初動が速くなった Slack の色を見るだけで「やばいや つ」がすぐわかる 「設定をコード化する」ことで、 レビュー・変更履歴・再現性が確保できる 11 / 13
SUMMARY まとめ ✓ Vector は YAML で扱いやすく Ansible と相性◎ ✓
Slack の色分けだけで運用効率が大幅向上 ✓ アラートの vars 管理でスリムな運用を実現 ご清聴ありがとうございました! 質問があればお気軽にどうぞ( ^ω^)・・・ 📚 参考: vector.dev | docs.ansible.com 13 / 13