コンテンツにスキップ

ホスト可観測性のベストプラクティス (Linux)


基本概要

Linux(正式名称 GNU/Linux)は、無料で使用・配布できる Unix 系オペレーティングシステムです。企業で最も広く使われている OS として、その安定性が極めて重要です。Guanceは長年の顧客経験を活かし、ホスト可観測性を完全にカバーし、お客様がインフラストラクチャの稼働状況を迅速に把握し、運用コストを大幅に削減できるよう支援します。

ユースケース概要

Guance - シナリオ - ダッシュボード - ダッシュボードを作成 - ホスト概要_Linux

image.png image.png image.png image.png image.png image.png

前提条件

公式サイト Guance にアクセスしてアカウントを登録し、登録したアカウント/パスワードでログインします。

デプロイと実装

ワンクリックインストール

DataKit は、Guanceが公式にリリースしたデータ収集アプリケーションで、数百種類のデータ収集をサポートしています。

Guanceコンソールにログインし、「インテグレーション」→「DataKit」をクリックし、コマンドラインをコピーしてサーバーで直接実行します。

image.png

デフォルトパス

ディレクトリ パス
インストールディレクトリ /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 負荷とコア数を確認 ]

image.png

メモリメトリクス

[ Guance - メトリクス - mem、メモリデータを確認 ] [ Guance - メトリクス - swap、Swap データを確認 ]

image.png

ディスクメトリクス

[ Guance - メトリクス - disk、ディスクデータを確認 ] [ Guance - メトリクス - diskio、ディスク IO データを確認 ]

image.png

ネットワークメトリクス

[ Guance - メトリクス - net、ネットワークデータを確認 ]

image.png

ホストオブジェクト

[ Guance - インフラストラクチャ - ホスト、全ホストのオブジェクト一覧を表示 ]

image.png

[ Guance - インフラストラクチャ - ホスト - 任意のホストをクリック、基本システム情報を表示 ]

インテグレーションの実行状況は、そのサーバーで実行中のプラグイン一覧を表します

image.png

プロセスオブジェクト

[ Guance - インフラストラクチャ - プロセス、全プロセスオブジェクト一覧を表示 ]

image.png

[ Guance - インフラストラクチャ - プロセス - 任意のプロセス名をクリック、そのプロセスに関する情報を表示 ]

image.png

応用収集

DataKit はデフォルトのメトリクス/オブジェクトデータに加えて、他のプラグインを使用して OS の監視データを拡充できます。

プロセス一覧

全ホストのリアルタイムプロセス一覧を確認するには、プロセスプラグインを有効にします(グローバル top 機能)。

  1. プラグイン設定ディレクトリに移動し、サンプルファイルをコピーします。
cd /usr/local/datakit/conf.d/host/
cp host_processes.conf.sample host_processes.conf
vi host_processes.conf
  1. プロセスプラグインを有効にします。
[[inputs.host_processes]]
  min_run_time = "10m"
  open_metric = true
  1. DataKit を再起動します。
systemctl restart datakit

[ Guance - メトリクス - host_processes、プロセスデータを確認 ]

image.png

ネットワークインターフェースメトリクス

ebpf 技術を使用して、ホストのネットワークインターフェースの TCP/UDP 接続情報を収集します。

  1. ebpf プラグインをインストールします。
datakit install --datakit-ebpf
  1. プラグイン設定ディレクトリに移動し、サンプルファイルをコピーします。
cd /usr/local/datakit/conf.d/host
cp ebpf.conf.sample ebpf.conf
vi ebpf.conf
  1. 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"]
  1. DataKit を再起動します。
systemctl restart datakit

[ Guance - インフラストラクチャ - ホスト - ebpf プラグインをインストールしたホストをクリック - ネットワーク、システムのネットワークインターフェース情報を表示 ]

image.png

セキュリティチェック

ホスト OS 上のセキュリティ脆弱性をリアルタイムで検出します。

  1. Scheck サービスをインストールします。
bash -c "$(curl https://static.dataflux.cn/security-checker/install.sh)"

インストールの説明

ディレクトリ パス
インストールディレクトリ /usr/local/scheck
ログディレクトリ /usr/local/scheck/log
メイン設定ファイル /usr/local/scheck/scheck.conf
検出ルールディレクトリ /usr/local/scheck/rules.d
  1. メイン設定ファイルを編集します。
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'
  1. サービスを起動します。
systemctl start scheck

[ Guance - セキュリティチェック - エクスプローラー、全セキュリティイベントを表示 ]

image.png

拡張収集

DataKit は自身のデータ収集に加えて、Telegraf コレクターとも完全に互換性があります。

Telegraf をインストールします(CentOS の場合。他のシステムは Telegraf 公式ドキュメント を参照)。

  1. 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
  1. Telegraf コレクターをインストールします。
yum -y install telegraf
  1. メイン設定ファイル telegraf.conf を編集します。
vi /etc/telegraf/telegraf.conf
  1. influxdb を無効にし、outputs.http を有効にします(データを DataKit にアップロードするため)。
#[[outputs.influxdb]]
[[outputs.http]]
url = "http://127.0.0.1:9529/v1/write/metric?input=telegraf"
  1. 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]]
  1. Telegraf を起動します。
systemctl start telegraf

ポートメトリクス

OS 上の重要なポートを検出します。

  1. メイン設定ファイル telegraf.conf を編集します。
vi /etc/telegraf/telegraf.conf
  1. ポート検出を有効にします。
[[inputs.net_response]]
  protocol = "tcp"
  address = "localhost:9090"
  timeout = "3s"
[[inputs.net_response]]
  protocol = "tcp"
  address = "localhost:22"
  timeout = "3s"
  1. Telegraf を再起動します。
systemctl restart telegraf

[ Guance - メトリクス - net_response、ポートデータを確認 ]

image.png

プロセスメトリクス

OS 上の重要なプロセスを検出します。

  1. メイン設定ファイル telegraf.conf を編集します。
vi /etc/telegraf/telegraf.conf
  1. プロセス検出を有効にします。
[[inputs.procstat]]
    pattern = "zookeeper"
[[inputs.procstat]]
    pattern = "httpd"
  1. Telegraf を再起動します。
systemctl restart telegraf

[ Guance - メトリクス - procstat、プロセスデータを確認 ]

image.png

単一点テスト

ローカルマシンをテストポイントとして、重要なインターフェース/サイトをテストします。

複数ポイントテストについては、Synthetic モニタリングを参照してください。

  1. メイン設定ファイル telegraf.conf を編集します。
vi /etc/telegraf/telegraf.conf
  1. HTTP テストを有効にします。
[[inputs.http_response]]
    urls = ["https://www.baidu.com","https://guance.com","http://localhost:9090"]
  1. Telegraf を再起動します。
systemctl restart telegraf

[ Guance - メトリクス - http_response、テストデータを確認 ]

image.png

監視ルール

アラートルールと通知先を設定し、システムの安定状態をリアルタイムで把握します。

組み込みテンプレート

Guanceには、すぐに使えるいくつかのチェックライブラリテンプレートが組み込まれています。

[ Guance - 監視 - テンプレートから作成 - ホストチェックライブラリ] [ Guance - 監視 - テンプレートから作成 - Ping 状態チェックライブラリ] [ Guance - 監視 - テンプレートから作成 - Port チェックライブラリ]

カスタムチェックライブラリ

カスタム方法でチェックルールを追加できます。Guanceは、しきい値、プロセス、ログ、ネットワークチェックなど、複数のチェックタイプをサポートしています。

しきい値チェック

[ Guance - 監視 - モニターを作成 - しきい値チェック ]

チェックメトリクス:アラートルール式。<mem> はデータテーブル、<used_percent> は監視メトリクス、<host> はタグです(by 条件のタグのみがイベント内容で参照できます)。

image.png

トリガー条件:最終的なしきい値範囲。条件を満たすとアラートがトリガーされます。トリガー後、再チェックでしきい値を下回った場合は復旧できます(「正常」でチェック間隔を設定する必要があります)。

image.png

イベント名/内容では変数を参照できます。イベント内容は Markdown テキスト形式(例:改行はスペース2つ)です。

image.png

通知先

アラートルールの通知先をカスタマイズします。

[ Guance - 管理 - 通知先 ]

image.png

モニターのグループに応じて通知先を追加します。

[ Guance - 監視 - モニター - グループ - アラート設定 ]

image.png

フィードバック

このページは役に立ちましたか?