ホスト可観測性のベストプラクティス (Linux)¶
基本概要¶
Linux(正式名称 GNU/Linux)は、無料で使用・配布できる Unix 系オペレーティングシステムです。企業で最も広く使われている OS として、その安定性が極めて重要です。Guanceは長年の顧客経験を活かし、ホスト可観測性を完全にカバーし、お客様がインフラストラクチャの稼働状況を迅速に把握し、運用コストを大幅に削減できるよう支援します。
ユースケース概要¶
Guance - シナリオ - ダッシュボード - ダッシュボードを作成 - ホスト概要_Linux
前提条件¶
公式サイト Guance にアクセスしてアカウントを登録し、登録したアカウント/パスワードでログインします。
デプロイと実装¶
ワンクリックインストール¶
DataKit は、Guanceが公式にリリースしたデータ収集アプリケーションで、数百種類のデータ収集をサポートしています。
Guanceコンソールにログインし、「インテグレーション」→「DataKit」をクリックし、コマンドラインをコピーしてサーバーで直接実行します。
デフォルトパス¶
| ディレクトリ | パス |
|---|---|
| インストールディレクトリ | /usr/local/datakit/ |
| ログディレクトリ | /var/log/datakit/ |
| メイン設定ファイル | /usr/local/datakit/conf.d/datakit.conf |
| プラグイン設定ディレクトリ | /usr/local/datakit/conf.d/ |
デフォルトプラグイン¶
インストール完了後、デフォルトでいくつかのプラグイン(データ収集)が有効になります。メイン設定ファイル datakit.conf で確認できます。
default_enabled_inputs = ["cpu", "disk", "diskio", "mem", "swap", "hostobject", "net", "host_processes", "container", "system"]
プラグインの説明:
メトリクスデータは [ Guance - メトリクス ] で、オブジェクトデータは関連ページで直接確認できます。
| プラグイン名 | 説明 | データタイプ |
|---|---|---|
| cpu | ホストの CPU 使用状況を収集 | メトリクス |
| disk | ディスク使用状況を収集 | メトリクス |
| diskio | ホストのディスク IO 状況を収集 | メトリクス |
| mem | ホストのメモリ使用状況を収集 | メトリクス |
| swap | Swap メモリ使用状況を収集 | メトリクス |
| system | ホスト OS の負荷を収集 | メトリクス |
| net | ホストのネットワークトラフィック状況を収集 | メトリクス |
| host_processes | ホスト上の常駐(10分以上生存)プロセス一覧を収集 | オブジェクト |
| hostobject | ホストの基本情報(OS 情報、ハードウェア情報など)を収集 | オブジェクト |
データ収集¶
Guanceでメトリクスを確認する際、タグを使用して条件を絞り込むことができます。
デフォルト収集¶
CPU メトリクス¶
[ Guance - メトリクス - cpu、CPU 状態データを確認 ] [ Guance - メトリクス - system、CPU 負荷とコア数を確認 ]
メモリメトリクス¶
[ Guance - メトリクス - mem、メモリデータを確認 ] [ Guance - メトリクス - swap、Swap データを確認 ]
ディスクメトリクス¶
[ Guance - メトリクス - disk、ディスクデータを確認 ] [ Guance - メトリクス - diskio、ディスク IO データを確認 ]
ネットワークメトリクス¶
[ Guance - メトリクス - net、ネットワークデータを確認 ]
ホストオブジェクト¶
[ Guance - インフラストラクチャ - ホスト、全ホストのオブジェクト一覧を表示 ]
[ Guance - インフラストラクチャ - ホスト - 任意のホストをクリック、基本システム情報を表示 ]
インテグレーションの実行状況は、そのサーバーで実行中のプラグイン一覧を表します
プロセスオブジェクト¶
[ Guance - インフラストラクチャ - プロセス、全プロセスオブジェクト一覧を表示 ]
[ Guance - インフラストラクチャ - プロセス - 任意のプロセス名をクリック、そのプロセスに関する情報を表示 ]
応用収集¶
DataKit はデフォルトのメトリクス/オブジェクトデータに加えて、他のプラグインを使用して OS の監視データを拡充できます。
プロセス一覧¶
全ホストのリアルタイムプロセス一覧を確認するには、プロセスプラグインを有効にします(グローバル top 機能)。
- プラグイン設定ディレクトリに移動し、サンプルファイルをコピーします。
cd /usr/local/datakit/conf.d/host/
cp host_processes.conf.sample host_processes.conf
vi host_processes.conf
- プロセスプラグインを有効にします。
- DataKit を再起動します。
[ Guance - メトリクス - host_processes、プロセスデータを確認 ]
ネットワークインターフェースメトリクス¶
ebpf 技術を使用して、ホストのネットワークインターフェースの TCP/UDP 接続情報を収集します。
- ebpf プラグインをインストールします。
- プラグイン設定ディレクトリに移動し、サンプルファイルをコピーします。
- ebpf プラグインを有効にします。
[[inputs.ebpf]]
daemon = true
name = 'ebpf'
cmd = "/usr/local/datakit/externals/datakit-ebpf"
args = ["--datakit-apiserver", "0.0.0.0:9529"]
enabled_plugins = ["ebpf-net"]
- DataKit を再起動します。
[ Guance - インフラストラクチャ - ホスト - ebpf プラグインをインストールしたホストをクリック - ネットワーク、システムのネットワークインターフェース情報を表示 ]
セキュリティチェック¶
ホスト OS 上のセキュリティ脆弱性をリアルタイムで検出します。
- Scheck サービスをインストールします。
インストールの説明
| ディレクトリ | パス |
|---|---|
| インストールディレクトリ | /usr/local/scheck |
| ログディレクトリ | /usr/local/scheck/log |
| メイン設定ファイル | /usr/local/scheck/scheck.conf |
| 検出ルールディレクトリ | /usr/local/scheck/rules.d |
- メイン設定ファイルを編集します。
rule_dir='/usr/local/scheck/rules.d'
output='http://127.0.0.1:9529/v1/write/security'
log='/usr/local/scheck/log'
log_level='info'
- サービスを起動します。
[ Guance - セキュリティチェック - エクスプローラー、全セキュリティイベントを表示 ]
拡張収集¶
DataKit は自身のデータ収集に加えて、Telegraf コレクターとも完全に互換性があります。
Telegraf をインストールします(CentOS の場合。他のシステムは Telegraf 公式ドキュメント を参照)。
- yum リポジトリを追加します。
cat <<EOF | tee /etc/yum.repos.d/influxdb.repo
[influxdb]
name = InfluxDB Repository - RHEL \$releasever
baseurl = https://repos.influxdata.com/rhel/\$releasever/\$basearch/stable
enabled = 1
gpgcheck = 1
gpgkey = https://repos.influxdata.com/influxdb.key
EOF
- Telegraf コレクターをインストールします。
- メイン設定ファイル telegraf.conf を編集します。
- influxdb を無効にし、outputs.http を有効にします(データを DataKit にアップロードするため)。
- Telegraf のデフォルト収集を無効にします。
#[[inputs.cpu]]
# percpu = true
# totalcpu = true
# collect_cpu_time = false
# report_active = false
#[[inputs.disk]]
# ignore_fs = ["tmpfs", "devtmpfs", "devfs", "iso9660", "overlay", "aufs", "squashfs"]
#[[inputs.diskio]]
#[[inputs.mem]]
#[[inputs.processes]]
#[[inputs.swap]]
#[[inputs.system]]
- Telegraf を起動します。
ポートメトリクス¶
OS 上の重要なポートを検出します。
- メイン設定ファイル telegraf.conf を編集します。
- ポート検出を有効にします。
[[inputs.net_response]]
protocol = "tcp"
address = "localhost:9090"
timeout = "3s"
[[inputs.net_response]]
protocol = "tcp"
address = "localhost:22"
timeout = "3s"
- Telegraf を再起動します。
[ Guance - メトリクス - net_response、ポートデータを確認 ]
プロセスメトリクス¶
OS 上の重要なプロセスを検出します。
- メイン設定ファイル telegraf.conf を編集します。
- プロセス検出を有効にします。
- Telegraf を再起動します。
[ Guance - メトリクス - procstat、プロセスデータを確認 ]
単一点テスト¶
ローカルマシンをテストポイントとして、重要なインターフェース/サイトをテストします。
複数ポイントテストについては、Synthetic モニタリングを参照してください。
- メイン設定ファイル telegraf.conf を編集します。
- HTTP テストを有効にします。
[[inputs.http_response]]
urls = ["https://www.baidu.com","https://guance.com","http://localhost:9090"]
- Telegraf を再起動します。
[ Guance - メトリクス - http_response、テストデータを確認 ]
監視ルール¶
アラートルールと通知先を設定し、システムの安定状態をリアルタイムで把握します。
組み込みテンプレート¶
Guanceには、すぐに使えるいくつかのチェックライブラリテンプレートが組み込まれています。
[ Guance - 監視 - テンプレートから作成 - ホストチェックライブラリ] [ Guance - 監視 - テンプレートから作成 - Ping 状態チェックライブラリ] [ Guance - 監視 - テンプレートから作成 - Port チェックライブラリ]
カスタムチェックライブラリ¶
カスタム方法でチェックルールを追加できます。Guanceは、しきい値、プロセス、ログ、ネットワークチェックなど、複数のチェックタイプをサポートしています。
しきい値チェック¶
[ Guance - 監視 - モニターを作成 - しきい値チェック ]
チェックメトリクス:アラートルール式。<mem> はデータテーブル、<used_percent> は監視メトリクス、<host> はタグです(by 条件のタグのみがイベント内容で参照できます)。
トリガー条件:最終的なしきい値範囲。条件を満たすとアラートがトリガーされます。トリガー後、再チェックでしきい値を下回った場合は復旧できます(「正常」でチェック間隔を設定する必要があります)。
イベント名/内容では変数を参照できます。イベント内容は Markdown テキスト形式(例:改行はスペース2つ)です。
通知先¶
アラートルールの通知先をカスタマイズします。
[ Guance - 管理 - 通知先 ]
モニターのグループに応じて通知先を追加します。
[ Guance - 監視 - モニター - グループ - アラート設定 ]

























