Checkmk で始める統合 IT 監視 — 物理・仮想・Kubernetes・クラウドをひとつのダッシュボードで

タグ CheckmkIT監視Kubernetesクラウド監視オープンソースインフラ運用統合監視MSPcolumnコラムlinuxLinuxGitHubcheckmk
🚀 今すぐ試せます! デモスクリプトをダウンロードして、解凍後にターミナルで bash ファイル名.sh を実行してください(中身を一度確認してから実行すると安心です)。 (macOS / Linux 環境が必要)

Checkmk で始める統合 IT 監視 — 物理・仮想・Kubernetes・クラウドをひとつのダッシュボードで

ひとことでいうと

Checkmk(チェックエムケー)は、物理サーバー・仮想マシン・コンテナ・クラウド環境をまとめて監視できる、オープンソースの IT 監視プラットフォームです。ブラウザで開ける管理画面(Web UI)から設定と確認がすべて完結するため、コマンドラインに不慣れな方でもすぐに使い始められます。監視対象にソフトをインストールする「エージェント型」と、インストールなしで外部から情報を取得する「エージェントレス型」の両方に対応しており、既存インフラの構成を問わず導入できます。無料で使える Community 版から、Kubernetes やクラウドに特化した Ultimate 版まで複数のエディションがあり、組織の規模や予算に合わせて選べます。

こんな人におすすめ

シーン 1: オンプレミスとクラウドが混在する環境を統合したい

物理サーバー・仮想マシン・クラウドが混在する環境を、ひとつの画面でまとめて監視したいインフラエンジニアに向いています。エージェントをインストールできないネットワーク機器(ルーターやスイッチ)は、SNMP(ネットワーク機器の情報を取得する業界標準のプロトコル)や REST API 経由でエージェントレスに監視できます。障害が起きたとき、複数の管理ツールを行き来せずに全体像を素早く把握できます。

シーン 2: Kubernetes や AWS / Azure / GCP を活用するチーム

Checkmk Ultimate はコンテナを束ねるシステム(Kubernetes)やクラウドプロバイダーの API に対応しており、動的に増減するワークロードを自動で検出・監視します。プッシュエージェント機能を使えば、新しいホストを自動登録することも可能です。クラウドネイティブな環境の監視基盤を素早く整えたいチームに特に適しています。

シーン 3: 複数の顧客環境をまとめて管理する MSP(運用代行事業者)

Checkmk Ultimate のマルチテナント機能を使うと、顧客ごとに分離されたビューとアクセス権を持ちながら、単一のインスタンス(サーバー 1 台分の動作環境)で複数顧客を一元管理できます。顧客数が増えても管理コストを抑えながらスケールできるため、MSP の運用チームに特に有効です。

インストール・使い方

Checkmk は Linux パッケージ(DEB / RPM 形式)または Docker(アプリをコンテナという隔離された箱の中で動かす仕組み)として導入できます。公式がサポートするディストリビューション(Linux の種類)は RedHat 系(CentOS・AlmaLinux・Rocky Linux・Oracle Linux など)・Ubuntu・SUSE Linux Enterprise Server で、LTS(長期サポート)の安定版が推奨されます。


Linux パッケージでのインストール(Ubuntu / Debian の例)

Step 1: パッケージをダウンロードする

ターミナル(文字を入力してパソコンに命令を送る画面)を開き、以下のコマンドを実行します。コピー&ペーストで入力して問題ありません。

wget https://download.checkmk.com/checkmk/2.3.0p1/check-mk-free-2.3.0p1_0.jammy_amd64.deb

wget はインターネットからファイルを取得するコマンドです。ここでは Checkmk の Community 版インストーラーをダウンロードしています。

Step 2: パッケージをインストールする

sudo apt install ./check-mk-free-2.3.0p1_0.jammy_amd64.deb

sudo は「管理者権限で実行する」という意味です。必要なファイルが自動的にシステムにコピーされます。

Step 3: 監視サイトを作成して起動する

sudo omd create mysite
sudo omd start mysite

omd(Open Monitoring Distribution)は Checkmk が採用するサイト管理フレームワークです。create コマンドで監視サイトのディレクトリ構造・設定ファイル・初期ユーザー(cmkadmin)が自動生成され、start でサービスが起動します。mysite の部分は好きな名前に変更できます。

Step 4: Web UI にアクセスする

ブラウザ(Chrome や Firefox など)のアドレスバーに http://<サーバーの IP アドレス>/mysite/ と入力し、ユーザー名 cmkadmin でログインします。初回ログイン後はウィザード(ステップごとの案内画面)に従ってホストを追加するだけで、基本的な死活監視(対象が動いているかどうかの確認)がすぐに始まります。追加のスクリプト記述は不要です。


Docker でのワンコマンド起動

Docker がすでに入っている場合は、以下の 1 コマンドだけで Checkmk を起動できます。

docker run -d -p 8080:5000 --name checkmk checkmk/check-mk-free:latest

起動後はブラウザで http://localhost:8080/ にアクセスすれば Web UI が表示されます。まずローカルで動作を確かめたい方にはこの方法が最速です。

ブラウザで試す(エディション選択ガイド)

Checkmk 本体を動かすにはサーバー上での OMD サイト起動が必要ですが、どのエディションが自分の環境に合っているかを事前に診断できる簡易ツールをブラウザ上で試せます。環境規模・SaaS 希望の有無・Kubernetes の利用状況・予算の 4 項目を選ぶだけで、おすすめのエディションと主要機能の一覧が表示されます。実際に Checkmk をインストールする前のファーストステップとして活用してください。

動かしてみた

リポジトリを確認したところ、Checkmk は Bazel(Google が開発した大規模向けビルドツール)と Cargo(Rust 言語のパッケージ管理ツール)を組み合わせた大規模なモノレポ(複数のプロジェクトをひとつのリポジトリにまとめた構成)として管理されています。Python と Rust の両方のコンポーネントが含まれており、本格的なエンタープライズソフトウェアとしての規模感が確認できました。

cmk/ ディレクトリ配下には、設定の整合性を確認する validate_config.py・プラグインの検証用 validate_plugins.py・パスワード管理の cmkpasswd.py・証明書管理の message_broker_certs.py など、実運用で役立つ Python スクリプト群が用意されています。bin/ には cmk-validate-configcmk-piggyback(ピギーバック監視)・cmk-certcmk-monitor-core など、運用時に使う実行可能ファイルも揃っています。

公式の推奨はビルド済みパッケージを利用することです。ソースから自分でビルドするにはディストリビューション固有の Docker イメージが必要になるため、通常の導入では公式サイトからダウンロードしたパッケージを使うのが確実で簡単です。

実践のコツ — はじめの一歩をスムーズに踏み出すために

  • 最初は Docker で Community 版を試す: ローカルマシンに Docker があれば 1 コマンドで起動できます。サーバーを別途用意しなくても、Web UI の操作感をすぐに確かめられます。
  • 「クイックセットアップ」ウィザードを活用する: 初回ログイン後すぐに表示されるウィザードに従うだけで、ホストの追加と死活監視の開始が完了します。難しい設定ファイルの編集は不要です。
  • 「Check catalog」でプラグインを探す: AWS・Linux・Windows・Docker などカテゴリ別にプラグイン(機能拡張パーツ)が整理されており、既存のスタックに合ったものをすぐに見つけられます。
  • アラートの通知先を早めに設定する: メール・PagerDuty・Slack との連携が可能です。WARNING / CRITICAL のしきい値(問題と判断する基準の数値)も GUI(グラフィカルな画面操作)から直感的に設定できます。
  • REST API や自動化スクリプトと組み合わせる: 設定は Web UI だけでなく REST API(プログラムからシステムを操作するための窓口)経由でも行えます。Ansible や Terraform などの Infrastructure as Code ツールと組み合わせると、環境構築を自動化できます。
  • 大規模環境では分散監視を検討する: Pro 以上のエディションでは、リモートサイトのデータを中央サーバーに集約する分散監視構成が使えます。拠点が複数ある場合はこの構成が推奨されます。

活用例

  • データセンターの統合監視: 物理サーバー・ストレージ・ネットワーク機器をひとつのダッシュボードで管理します。障害発生時はメールや Slack へ自動通知し、SLA レポートの自動生成にも活用できます。
  • Kubernetes クラスターのリアルタイム追跡: ノード・Pod・デプロイメントの状態を常時監視し、リソース枯渇や Pod クラッシュの予兆を早期検知してアラートを発報します。動的に変化するクラウドネイティブ環境の安定運用に役立ちます。
  • MSP による複数顧客の一元管理: マルチテナント機能で顧客ごとのビューと権限を分離しつつ、単一インスタンスで多数顧客を監視します。月次報告向けのレポートも効率よく作成できます。
  • ネットワーク機器の SNMP 監視: エージェントをインストールできないルーターやスイッチも、SNMP 経由でエージェントレスに監視できます。ネットワーク障害の早期検知に有効です。
  • Infrastructure as Code との連携による自動プロビジョニング: REST API を使ってホストの追加・設定変更を自動化し、Ansible や Terraform と組み合わせた自動構築フローを実現できます。構成変更のたびに手作業で設定し直す手間を減らせます。
  • Community 版でのスモールスタート: 無料の Community 版から始めて監視運用のノウハウを蓄積し、必要なタイミングで Pro / Ultimate 版へアップグレードする段階的な導入も可能です。初期コストを抑えながら本格的な監視体制を整えられます。

用語とポイント解説

OMD(Open Monitoring Distribution)

Checkmk が採用するサイト管理フレームワーク(複数のソフトウェアをひとまとめにして管理する仕組み)です。かんたんに言うと、「omd create コマンドひとつで、監視サイトに必要なフォルダ・設定・ユーザーがすべて自動で用意される便利な管理ツール」です。omd start / stop / status などのコマンドで監視サービスを一括管理でき、複数のサイトを同一サーバー上で並行して動かすこともできます。

エージェント

監視対象のサーバーやホストにインストールする小さなプログラム(常時起動するデーモン)のことです。かんたんに言うと、「情報を集めて Checkmk サーバーに送り続ける係のプログラム」です。CPU 使用率・メモリ・ディスク使用量などのメトリクス(数値データ)を定期的に収集して送信します。Linux・Windows・macOS 向けのエージェントが公式から提供されています。

エージェントレス監視

監視対象にエージェントをインストールせず、外部から SNMP や REST API 経由で情報を取得する監視方法です。かんたんに言うと、「対象に何もインストールしなくても監視できる仕組み」です。エージェントをインストールできないネットワーク機器やクラウドサービスの監視に活用されます。

Check / プラグイン

特定のサービスやメトリクスを取得・評価するスクリプト(小さなプログラム)のことです。かんたんに言うと、「〇〇を監視するための専用パーツ」で、Checkmk の機能を拡張するパーツです。公式・コミュニティ合わせて数百種類が提供されており、AWS・Docker・VMware など主要な技術スタックに対応したものを「Check catalog」からカテゴリ別に探せます。

ピギーバック(Piggyback)

あるホストが収集したデータを、別のホストの監視データとして「相乗り」させて転送する仕組みのことです。かんたんに言うと、「A が集めたデータを B のものとして届ける、データの乗り合い転送」です。AWS EC2 インスタンスの情報をクラウド監視エージェント経由で収集する際などに使われます。

SNMP(Simple Network Management Protocol)

ネットワーク機器(ルーター・スイッチ・プリンターなど)の状態を管理・取得するための業界標準プロトコル(通信のルール)です。かんたんに言うと、「ネットワーク機器の情報を決まったやり方で引き出す共通の仕組み」です。エージェントをインストールできない機器でも、SNMP に対応していれば Checkmk から監視できます。

OpenTelemetry(オープンテレメトリー)

アプリケーションのトレース(処理の流れ追跡)・メトリクス(数値データ)・ログを収集するための OSS(オープンソースソフトウェア)規格です。かんたんに言うと、「いろいろなアプリの動作データを統一フォーマットで集めるための業界共通ルール」です。Checkmk Ultimate がこの規格に対応しており、モダンなアプリケーションの計装データを Checkmk に取り込んで一元管理できます。

マルチテナント

ひとつのシステムを複数の組織(テナント)が独立して利用できる仕組みのことです。かんたんに言うと、「同じソフトを使いながら、お客さんごとのデータや画面はきちんと分けて管理できる機能」です。Checkmk Ultimate のマルチテナント機能により、MSP は単一のインスタンスで複数顧客の環境を分離したまま一元管理できます。

Bazel(ベイゼル)

Google が開発した大規模プロジェクト向けのビルドツール(ソースコードを実行可能な形にまとめるツール)です。かんたんに言うと、「大量のファイルを効率よく高速でビルドするための高性能ツール」です。Checkmk のような大規模モノレポのビルドに活用されており、通常の利用者が直接触れる機会はほとんどありません。

モノレポ(Monorepo)

複数のプロジェクトやコンポーネントをひとつのリポジトリ(ソースコードの置き場)にまとめて管理する手法のことです。かんたんに言うと、「バラバラになりがちなコードをひとつの大きなフォルダにまとめて管理する方式」です。Checkmk はこの構成を採用しており、Python コンポーネントと Rust コンポーネントが同じリポジトリ内に共存しています。


Checkmk はオープンソースでありながら、エンタープライズ級の監視機能を備えた強力なプラットフォームです。無料の Community 版から気軽に試せるため導入ハードルも低く、組織の成長に合わせて段階的に機能を拡張していけます。ぜひデータセンターの統合監視や Kubernetes クラスターのリアルタイム追跡などに活用してみてはいかがでしょうか。