序章

システム管理者は、インフラストラクチャとサービスの現在の状態を知ることがベストプラクティスです。 理想的には、ユーザーが気付く前に、ディスクの障害やアプリケーションのダウンタイムに気付く必要があります。 Checkmk などの監視ツールは、管理者がこれらの問題を検出し、正常なサーバーを維持するのに役立ちます。

一般に、監視ソフトウェアはサーバーのハードウェア、稼働時間、およびサービスステータスを追跡でき、問題が発生したときにアラートを生成できます。 非常に基本的なシナリオでは、監視システムは、サービスがダウンした場合に警告を発します。 より堅牢な方法では、メモリ使用量の増加やTCP接続の異常な量など、疑わしい兆候が発生した直後に通知が送信されます。

無料と商用の両方で、さまざまな程度の複雑さと機能セットを提供する利用可能な多くの監視ソリューションがあります。 多くの場合、これらのツールのインストール、構成、および管理は困難で時間がかかります。

ただし、 Checkmk は、堅牢でインストールが簡単な監視ソリューションです。 これは、 Nagios(人気のあるオープンソースのアラートサービス)と、データの収集、監視、およびグラフ化のためのアドオンを組み合わせた自己完結型のソフトウェアバンドルです。 また、CheckmkのWebインターフェイスも付属しています。これは、Nagiosの多くの欠点に対処する包括的なツールです。 ユーザーフレンドリーなダッシュボード、フル機能の通知システム、および多くのLinuxディストリビューション用のインストールが簡単な監視エージェントのリポジトリを提供します。 CheckmkのWebインターフェイスがなかった場合、タスクごとに異なるビューを使用する必要があり、ファイルを大幅に変更せずにこれらすべての機能を構成することはできません。

このガイドでは、Ubuntu 18.04サーバーにCheckmkをセットアップし、2つの別々のホストを監視します。 Ubuntuサーバー自体と別のCentOS7サーバーを監視しますが、同じアプローチを使用して、監視構成に任意の数のホストを追加できます。

前提条件

ステップ1—UbuntuにCheckmkをインストールする

監視サイトを使用するには、まずUbuntuサーバーにCheckmkをインストールする必要があります。 これにより、必要なすべてのツールが提供されます。 Checkmkは、ソフトウェアバンドルのインストールに使用できる公式のすぐに使用できるUbuntuパッケージファイルを提供します。

まず、パッケージリストを更新して、リポジトリリストの最新バージョンを取得しましょう。

  1. sudo apt update

パッケージを閲覧するには、パッケージリストサイトにアクセスしてください。 特にUbuntu18.04は、ページメニューで選択できます。

次に、パッケージをダウンロードします。

  1. wget https://checkmk.com/support/1.6.0p8/check-mk-raw-1.6.0p8_0.bionic_amd64.deb

次に、新しくダウンロードしたパッケージをインストールします。

  1. sudo apt install -y ./check-mk-raw-1.6.0p8_0.bionic_amd64.deb

このコマンドは、監視インターフェイスへのWebアクセスを提供するために使用される Apache Webサーバーを含む、必要なすべての依存関係とともにCheckmkパッケージをインストールします。

インストールが完了すると、アクセスできるようになります omd 指図。 やってみよう:

  1. sudo omd

これ omd コマンドは以下を出力します:

Output
Usage (called as root): omd help Show general help . . . General Options: -V <version> set specific version, useful in combination with update/create omd COMMAND -h, --help show available options of COMMAND

The omd コマンドは、サーバー上のすべてのCheckmkインスタンスを管理できます。 すべての監視サービスを一度に開始および停止でき、それを使用してCheckmkインスタンスを作成します。 ただし、最初に、ファイアウォール設定を更新して、デフォルトのWebポートへの外部アクセスを許可する必要があります。

ステップ2—ファイアウォール設定の調整

Checkmkを使用する前に、ファイアウォール構成でWebサーバーへの外部アクセスを許可する必要があります。 前提条件のファイアウォール構成手順に従ったと仮定すると、サーバーへのアクセスを制限するようにUFWファイアウォールが設定されます。

インストール中に、Apacheはそれ自体をUFWに登録して、ファイアウォールを介したApacheへのアクセスを有効または無効にする簡単な方法を提供します。

Apacheへのアクセスを許可するには、次のコマンドを使用します。

  1. sudo ufw allow Apache

次に、変更を確認します。

  1. sudo ufw status

許可されているサービスの中にApacheがリストされていることがわかります。

Output
Status: active To Action From -- ------ ---- OpenSSH ALLOW Anywhere Apache ALLOW Anywhere OpenSSH (v6) ALLOW Anywhere (v6) Apache (v6) ALLOW Anywhere (v6)

これにより、CheckmkWebインターフェイスにアクセスできるようになります。

次のステップでは、最初のCheckmk監視インスタンスを作成します。

ステップ3—Checkmk監視インスタンスを作成する

Checkmkは、インスタンスまたは個別のインストールの概念を使用して、サーバー上の複数のCheckmkコピーを分離します。 ほとんどの場合、Checkmkのコピーは1つだけで十分です。そのため、このガイドではソフトウェアを構成します。

まず、新しいインスタンスに名前を付ける必要があります。次に、 monitoring このテキスト全体。 インスタンスを作成するには、次のように入力します。

  1. sudo omd create monitoring

The omd ツールがすべてを自動的にセットアップします。 コマンド出力は次のようになります。

Output
Adding /opt/omd/sites/monitoring/tmp to /etc/fstab. Creating temporary filesystem /omd/sites/monitoring/tmp...OK Restarting Apache...OK Created new site monitoring with version 1.6.0p8.cre. The site can be started with omd start monitoring. The default web UI is available at http://your_ubuntu_server/monitoring/ The admin user for the web applications is cmkadmin with password: your-default-password (It can be changed with 'htpasswd -m ~/etc/htpasswd cmkadmin' as site user.) Please do a su - monitoring for administration of this site.

この出力では、監視インターフェースにアクセスするためのURLアドレス、デフォルトのユーザー名、およびパスワードが強調表示されています。 これでインスタンスが作成されましたが、まだ開始する必要があります。 インスタンスを開始するには、次のように入力します。

  1. sudo omd start monitoring

これで、必要なすべてのツールとサービスが一度に開始されます。 最後に、すべてのサービスが正常に開始されたことを確認する出力が表示されます。

Output
Starting mkeventd...OK Starting rrdcached...OK Starting npcd...OK Starting nagios...OK Starting apache...OK Initializing Crontab...OK

インスタンスは稼働中です。

Checkmkインスタンスにアクセスするには、 http://your_ubuntu_server_ip/monitoring/ Webブラウザで。 パスワードの入力を求められます。 画面に事前に印刷されているデフォルトのクレデンシャルを使用します。 これらのデフォルトは後で変更します。

Checkmk画面が開き、ダッシュボードが表示されます。ダッシュボードには、すべてのサービスとサーバーのステータスがリストに表示され、地球に似た実用的なグラフが使用されます。 インストール直後は空ですが、まもなくサービスとシステムのステータスが表示されるようになります。

次のステップでは、このインターフェースを使用してサイトを保護するためにデフォルトのパスワードを変更します。

ステップ4—管理者パスワードの変更

インストール中に、Checkmkはランダムなパスワードを生成します cmkadmin 管理ユーザー。 このパスワードはインストール時に変更されることを意図しているため、多くの場合、短く、安全性が低くなります。 これは、Webインターフェイスを介して変更できます。

まず、左側のWATO-ConfigurationメニューからUsersページを開きます。 リストには、現在Checkmkサイトにアクセスできるすべてのユーザーが表示されます。 新規インストールでは、2人のユーザーのみが一覧表示されます。 最初の1つ、 automation、自動ツールでの使用を目的としています。 2番目は cmkadmin サイトにログインするために使用したユーザー。

の横にある鉛筆アイコンをクリックします cmkadmin ユーザーは、パスワードなどの詳細を変更できます。

パスワードを更新し、管理者の電子メールを追加し、その他の必要な変更を加えます。

変更を保存した後、新しい資格情報を使用して再度ログインするように求められます。 そうしてダッシュボードに戻ります。ダッシュボードでは、新しい構成を完全に適用するためにもう1つ実行する必要があります。

左側のWATO-ConfigurationメニューからUsersページをもう一度開きます。 1 Change というラベルの付いた左上隅のオレンジ色のボタンは、Checkmkの構成にいくつかの変更を加えたため、それらを保存してアクティブ化する必要があることを示しています。 これは、ユーザーの資格情報を編集した後だけでなく、監視システムの構成を変更するたびに発生します。 保留中の変更を保存してアクティブ化するには、このボタンをクリックし、次の画面の影響を受けるオプションを使用してリストされた変更をアクティブ化することに同意する必要があります。

変更をアクティブ化すると、新しいユーザーのデータが構成ファイルに書き込まれ、システムのすべてのコンポーネントで使用されます。 Checkmkは、個々の監視システムコンポーネントへの通知、必要に応じた再ロード、および必要なすべての構成ファイルの管理を自動的に処理します。

これで、Checkmkインストールを使用する準備が整いました。 次のステップでは、最初のホストを監視システムに追加します。

ステップ5—最初のホストを監視する

これで、最初のホストを監視する準備が整いました。 これを実現するために、最初にインストールします check-mk-agent Ubuntuサーバー上。 次に、を使用して監視データへのアクセスを制限します xinetd.

Checkmkとともにインストールされるコンポーネントは、監視情報の受信、保存、および表示を担当します。 それらは情報自体を提供しません。

実際のデータを収集するには、Checkmkエージェントを使用します。 このジョブ用に特別に設計されたCheckmkエージェントは、すべての重要なシステムコンポーネントを一度に監視し、その情報をCheckmkインスタンスに報告することができます。

エージェントのインストール

監視する最初のホストは your_ubuntu_server-Checkmkインスタンス自体をインストールしたサーバー。

まず、Checkmkエージェントをインストールする必要があります。 Ubuntuを含むすべての主要なディストリビューションのパッケージは、Webインターフェイスから直接入手できます。 左側のWATO-ConfigurationメニューからMonitoringAgentsページを開きます。 パッケージ化されたエージェントというラベルの付いた最初のセクションの下に、最も人気のあるパッケージで利用可能なエージェントのダウンロードが表示されます。

その包み check-mk-agent_1.6.0p8-1_all.deb Ubuntuを含むDebianベースのディストリビューションに適したものです。 そのパッケージのダウンロードリンクをWebブラウザーからコピーし、そのアドレスを使用してパッケージをダウンロードします。

  1. wget http://your_ubuntu_server_ip/monitoring/check_mk/agents/check-mk-agent_1.6.0p8-1_all.deb

ダウンロード後、パッケージをインストールします。

  1. apt install -y ./check-mk-agent_1.6.0p8-1_all.deb

次に、エージェントが正常にインストールされたことを確認します。

  1. check_mk_agent

このコマンドは、ぎこちないように見えるが、システムに関するすべての重要な情報を1か所にまとめた非常に長いテキストを出力します。

Output
<<<check_mk>>> Version: 1.6.0p8 AgentOS: linux . . . ["monitoring"] <<<job>>> <<<local>>>

Checkmkが監視対象ホストからステータスデータを収集するために使用するのは、このコマンドからの出力です。 次に、監視データへのアクセスを制限します。 xinetd.

xinetdを使用したモニタリングデータへのアクセスの制限

デフォルトでは、 check_mk_agent xinetdを使用して提供されます。これは、特定のネットワークポートにアクセスするとデータを出力するメカニズムです。 これは、にアクセスできることを意味します check_mk_agent telnetを使用して移植する 6556 (Checkmkのデフォルトポート)ファイアウォール構成で許可されていない限り、インターネット上の他のコンピューターから。

サーバーに関する重要な情報をインターネット上の誰にでも公開することは、適切なセキュリティポリシーではありません。 Checkmkを実行し、監視下にあるホストのみがこのデータにアクセスできるようにして、監視システムのみがデータを収集できるようにする必要があります。

ファイアウォールの設定手順を含む初期サーバー設定チュートリアルに従った場合、Checkmkエージェントへのアクセスはデフォルトでブロックされます。 ただし、これらのアクセス制限をサービス構成に直接適用し、ファイアウォールだけに依存して保護するのではないことをお勧めします。

エージェントデータへのアクセスを制限するには、次の場所で構成ファイルを編集する必要があります。 /etc/xinetd.d/check_mk. お気に入りのエディターで構成ファイルを開きます。 nanoを使用するには、次のように入力します。

  1. sudo nano /etc/xinetd.d/check_mk

このセクションを見つけます:

/etc/xinetd.d/check_mk
. . .
# configure the IP address(es) of your Nagios server here:
#only_from      = 127.0.0.1 10.0.20.1 10.0.20.2
. . .

The only_from 設定は、特定のIPアドレスへのアクセスを制限する責任があります。 現在、Checkmkが実行されているのと同じサーバーの監視に取り組んでいるため、許可するのは問題ありません。 localhost 接続する。 コメントを外して、構成設定を次のように更新します。

/etc/xinetd.d/check_mk
. . .
# configure the IP address(es) of your Nagios server here:
only_from      = 127.0.0.1
. . .

ファイルを保存して終了します。

変更を行うには、xinetdデーモンを再起動する必要があります。 今すぐそうしてください:

  1. sudo systemctl restart xinetd

これで、エージェントが稼働し、ローカル接続のみを受け入れるように制限されました。 Checkmkを使用して、そのホストの監視の構成に進むことができます。

CheckmkWebインターフェイスでのホストの構成

まず、監視する新しいホストを追加するには、左側のWATO-構成メニューのホストメニューに移動する必要があります。 ここから新しいホストの作成をクリックします。 ホストに関する情報を求められます。

ホスト名は、Checkmkが監視に使用するおなじみの名前です。 完全修飾ドメイン名の場合もありますが、必須ではありません。 この例では、ホストに名前を付けます monitoring、Checkmkインスタンス自体の名前と同じです。 なぜなら monitoring はIPアドレスに解決できないため、サーバーのIPアドレスも提供する必要があります。 また、ローカルホストを監視しているため、IPは単純に 127.0.0.1. IPv4アドレスボックスをチェックして手動IP入力を有効にし、テキストフィールドに値を入力します。

データソースセクションのデフォルト構成は、Checkmkエージェントに依存して監視データを提供します。これは問題ありません。 ネットワークセグメント設定は、リモートネットワーク上のホストを示すために使用されます。これは、誤動作の兆候ではない、予想される待ち時間が長いことを特徴としています。 これはローカルホストであるため、デフォルト設定でも問題ありません。

ホストを保存し、監視するサービスを構成するには、[ 保存してサービスに移動ボタン。

Checkmkは自動インベントリを実行します。 つまり、エージェントからの出力を収集して解読し、監視できるサービスの種類を把握します。 CPU負荷、メモリ使用量、ディスクの空き容量など、監視に使用できるすべてのサービスがリストに含まれます。

検出されたすべてのサービスの監視を有効にするには、未決定のサービス(現在監視されていません)セクションの下にある監視ボタンをクリックする必要があります。 これによりページが更新されますが、すべてのサービスが監視対象サービスセクションに一覧表示され、実際に監視されていることが通知されます。

ユーザーパスワードを変更する場合と同様に、これらの新しい変更は、公開する前に保存してアクティブ化する必要があります。 2変更ボタンを押し、影響を受けるボタンを使用して変更を受け入れます。 その後、ホストモニタリングが稼働します。

これで、サーバーデータを操作する準備が整いました。 左側の概要/メイン概要メニュー項目を使用してメインダッシュボードを見てください。

モニタリングデータの操作

次に、左側の概要/メイン概要メニュー項目を使用してメインダッシュボードを見てみましょう。

地球の球体は完全に緑色になり、表には1つのホストが問題なく稼働していることが示されています。 ホスト/すべてのホストビュー(左側のメニューを使用)で、現在は単一のホストで構成されている完全なホストリストを確認できます。

ここでは、正常なサービスの数(緑色で表示)、失敗しているサービスの数、およびチェックが保留されているサービスの数を確認できます。 ホスト名をクリックすると、すべてのサービスの完全なステータスとPerf-O-Metersのリストが表示されます。 Perf-O-Meter は、Checkmkが正常であると見なすものと比較した単一サービスのパフォーマンスを示します。

グラフ化可能なデータを返すすべてのサービスは、名前の横にグラフアイコンを表示します。 そのアイコンを使用して、サービスに関連付けられたグラフにアクセスできます。 ホストの監視は最新であるため、グラフにはほとんど何も表示されませんが、しばらくすると、グラフはサービスのパフォーマンスが時間の経過とともにどのように変化するかについての貴重な情報を提供します。

これらのサービスのいずれかが失敗または回復すると、情報がダッシュボードに表示されます。 失敗したサービスの場合、赤いエラーが表示され、問題はEarthグラフにも表示されます。

リカバリ後、すべてが正常に機能していることを示す緑色で表示されますが、右側のイベントログには過去の障害に関する情報が含まれています。

ダッシュボードについて少し調べたので、監視インスタンスに2番目のホストを追加しましょう。

ステップ6—2番目のCentOSホストを監視する

複数のホストがある場合、監視は非常に便利です。 次に、Checkmkインスタンスに2番目のサーバーを追加します。今回は、CentOS7を実行します。

Ubuntuサーバーと同様に、CentOSで監視データを収集するにはCheckmkエージェントをインストールする必要があります。 ただし、今回は rpm WebインターフェイスのMonitoringAgentsページからのパッケージ check-mk-agent-1.6.0p8-1.noarch.rpm.

ただし、最初にインストールする必要があります xinetd、デフォルトではCentOSインストールでは使用できません。 Xinetd、覚えておきますが、は、によって提供される監視データの作成を担当するデーモンです。 check_mk_agent ネットワーク経由で利用できます。

CentOSサーバーに、最初にインストールします xinetd:

  1. sudo yum install -y xinetd

これで、CentOSサーバーに必要な監視エージェントパッケージをダウンロードしてインストールできます。

  1. sudo yum install -y http://your_ubuntu_server_ip/monitoring/check_mk/agents/check-mk-agent-1.6.0p8-1.noarch.rpm

以前と同様に、実行することでエージェントが正しく機能していることを確認できます check_mk_agent:

  1. sudo check_mk_agent

出力はUbuntuサーバーからの出力と同様になります。 次に、エージェントへのアクセスを制限します。

アクセスの制限

今回はローカルホストを監視しないので、 xinetd データを収集するには、CheckmkがインストールされているUbuntuサーバーからの接続を許可する必要があります。 これを可能にするには、最初に構成ファイルを開きます。

  1. sudo vi /etc/xinetd.d/check_mk

ここにあなたの設定が表示されます check_mk サービス、Checkmkエージェントへのアクセス方法を指定します xinetd デーモン。 次の2つのコメント行を見つけます。

/etc/xinetd.d/check_mk
. . .
# configure the IP address(es) of your Nagios server here:
#only_from      = 127.0.0.1 10.0.20.1 10.0.20.2
. . .

次に、2行目のコメントを外し、ローカルIPアドレスを次のように置き換えます。 your_ubuntu_server_ip:

/etc/xinetd.d/check_mk
. . .
# configure the IP address(es) of your Nagios server here:
only_from      = your_ubuntu_server_ip
. . .

次のように入力して、ファイルを保存して終了します :x その後 ENTER. 再起動します xinetd 使用するサービス:

  1. sudo systemctl restart xinetd

これで、CentOS7ホストを監視するようにCheckmkを構成できます。

Checkmkでの新しいホストの構成

Checkmkにホストを追加するには、以前と同じようにHostsメニューを使用します。 今回はホストに名前を付けます centos、IPアドレスを設定し、ネットワークセグメント選択ボックスで WAN(高遅延)を選択します。これは、ホストが別のネットワーク上にあるためです。 これをスキップしてローカルのままにすると、Checkmkはすぐにホストがダウンしていることを警告します。これは、インターネットを介した場合よりもはるかに高速にエージェントのクエリに応答することを期待しているためです。

クリック保存してサービスに移動 、CentOSサーバーで監視できるサービスが表示されます。 リストは最初のホストのものと非常に似ています。 繰り返しになりますが、今回は Monitor をクリックしてから、左上隅のオレンジ色のボタンを使用して変更をアクティブ化する必要があります。

変更を有効にすると、すべてのホストページでホストが監視されていることを確認できます。 そこに行きなさい。 2つのホスト、 monitoringcentos、が表示されます。

現在、Checkmkを使用してUbuntuサーバーとCentOSサーバーを監視しています。 さらに多くのホストを監視することが可能です。 実際、サーバーのパフォーマンス以外に上限はありません。これは、ホストの数が数百になるまで問題にはなりません。 さらに、手順は他のホストでも同じです。 のCheckmkエージェント debrpm パッケージは、Ubuntu、CentOS、およびその他のLinuxディストリビューションの大部分で動作します。

結論

このガイドでは、UbuntuとCentOSの2つの異なるLinuxディストリビューションで2つのサーバーをセットアップしました。 次に、両方のサーバーを監視するようにCheckmkをインストールして構成し、Checkmkの強力なWebインターフェイスを調べました。

Checkmkを使用すると、完全で用途の広い監視システムを簡単にセットアップできます。これにより、手動構成のすべてのハードワークが、オプションと機能が満載の使いやすいWebインターフェイスにまとめられます。 これらのツールを使用すると、複数のホストを監視できます。 問題の電子メール、SMS、またはプッシュ通知を設定します。 より多くのサービスのために追加のチェックを設定します。 アクセシビリティとパフォーマンスなどを監視します。

Checkmkの詳細については、公式ドキュメントにアクセスしてください。