服务器监控最佳实践:Telegraf + InfluxDB + Grafana 部署指南
概述
監視システムは昨今のIT基盤において不可欠です。本稿では、ージェント → Telegraf → InfluxDB → Grafanaという監視スタックの構築方法を紹介します。
監視システムの構成は次の通です:
1. Telegraf のインストール
Telegraf は InfluxData 社が開発したオープンソースのエージェント型監視ツールです。多種多様な入力プラグインをサポートし、簡単にメトリクスを収集できます。
インストール
1 2 3 4 5 6 7 8
| wget -qO- https://repos.influxdata.com/influxdb.key | sudo apt-key add - source /etc/os-release echo "deb https://repos.influxdata.com/${ID}_${VERSION_ID} stable main" | sudo tee /etc/apt/sources.list.d/influxdb.list
sudo apt update sudo apt install telegraf
|
設定
1
| sudo vim /etc/telegraf/telegraf.conf
|
基本設定:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
| [agent] interval = "10s" round_interval = true metric_batch_size = 1000 metric_buffer_limit = 10000 collection_jitter = "0s" flush_interval = "10s" flush_jitter = "0s"
[[inputs.cpu]] percpu = true totalcpu = true collect_cpu_time = false
[[inputs.mem]]
[[inputs.disk]] ignore_fs = ["tmpfs", "devtmpfs", "devfs"]
[[inputs.diskio]]
[[inputs.net]]
[[outputs.influxdb]] urls = ["http://localhost:8086"] database = "telegraf" username = "telegraf" password = "your_password"
|
2. InfluxDB のインストール
InfluxDB は時系列データベースであり、監視データの蓄積に最適です。
インストール
1 2 3
| sudo apt install influxdb sudo systemctl enable influxdb sudo systemctl start influxdb
|
データベースとユーザーの作成
1 2 3 4 5 6 7 8 9 10 11 12 13
| CREATE DATABASE telegraf;
CREATE USER telegraf WITH PASSWORD 'your_password' WITH ALL PRIVILEGES;
GRANT ALL ON telegraf TO telegraf;
SHOW DATABASES; USE telegraf; SHOW MEASUREMENTS;
|
3. Grafana のインストール
Grafana は最強の可視化ツールです。美しいダッシュボードを簡単に作成できます。
インストール
1 2 3
| sudo apt install grafana sudo systemctl enable grafana-server sudo systemctl start grafana-server
|
アクセス
InfluxDB への接続
- Configuration → Data Sources に移動
- Add data source をクリック
- InfluxDB を選択
- 以下の設定を入力:
1 2 3 4
| URL: http: Database: telegraf User: telegraf Password: your_password
|
4. ダッシュボードの作成
Grafana で美しいダッシュボードを作成しましょう。
CPU 使用率のダッシュボード
- Create → Dashboard をクリック
- Add new panel を選択
- 以下のクエリを入力:
1
| SELECT mean("usage_idle") FROM "cpu" WHERE $timeFilter GROUP BY time($__interval), "host"
|
- Visualization で Graph を選択
- タイトルを「CPU 使用率」に設定
- Save をクリック
メモリ使用率のダッシュボード
1
| SELECT mean("used") FROM "mem" WHERE $timeFilter GROUP BY time($__interval), "host"
|
ネットワーク流量のダッシュボード
1
| SELECT mean("bytes_sent") FROM "net" WHERE $timeFilter GROUP BY time($__interval), "host"
|
5. 監視アラートの設定
Grafana では簡単にアラートを設定できます。
- パネルの Alert タブをクリック
- Create Alert をクリック
- 条件を設定:
1 2 3
| FOR: 5m EVERY: 1m CONDITION: avg() OF query(A) IS ABOVE 80
|
- 通知チャンネルを設定(Email, Slack, Discord など)
6. まとめ
ージェント → Telegraf → InfluxDB → Grafana スタックの利点:
| 要素 |
役割 |
特徴 |
| ージェント |
監視対象 |
CPU、メモリ、ディスク、ネットワークなど |
| Telegraf |
データ収集 |
多種多様なプラグイン |
| InfluxDB |
データ蓄積 |
時系列データベース、高速書み |
| Grafana |
可視化・アラート |
美しいダッシュボード、簡単なアラート設定 |
このスタックを導入することで、服务器的状態をリアルタイムに監視し、問題を早期に発見できます。
参考文献