Checkmk
to checkmk.com
Important

This is a machine translation based on the English version of the article. It might or might not have already been subject to text preparation. If you find errors, please file a GitHub issue that states the paragraph that has to be improved.

1. はじめに

Checkmk のアップデートは、皆様がご存じの他のソフトウェアパッケージとは少し異なります。 その理由は、Checkmk は、1 台のサーバー上で複数の独立したサイトを実行できるだけでなく、複数のソフトウェアバージョンを同時にインストールできるからです。 このシステムでは、各サイトはインストールされているソフトウェア

その理由は、Checkmk は 1 台のサーバーで複数の独立したサイトを実行できるだけでなく 複数のソフトウェアバージョンを同時にインストールできるからです。 このシステムでは、各サイトはインストールされているソフトウェアのバージョンに割り当てられます。 これを説明するために、架空のサーバーでの以下の状況を考えてみましょう。

Three sites and their software versions used.

ここでは、サイトmysite1 はバージョン2.4.0p3.cee を使用していますが、サイトmysite2 およびmysite3 はバージョン2.4.0p1.cre を使用しています。 Checkmk バージョン2.4.0p1.cce はインストールされていますが、現在は使用されていません。

この例から、アップデートとは、サーバーに新しい Checkmk RPM/DEB パッケージをインストールするだけではないことがわかります。 追加の手順も必要です。 次の例を見てみましょう。

The site 'mysite' with the software version used before the update.

ここでは、サイトmysite を Checkmk バージョン2.4.0p3.cee に更新する必要があります。 まず、適切な RPM/DEB パッケージをダウンロードしてインストールします。 この手順は、最初のインストールとまったく同じです。 新しくインストールしたバージョンは、最初はどのサイトでも使用されません。

The situation after installing the new software version.

2 番目のステップは、2.4.0p1.cre から2.4.0p3.cee にサイトを更新することです。 これは、omd update コマンドを使用して実行します。このコマンドについては、以下で詳しく説明します。

With 'omd update' the site receives the new software version.

更新後、おそらくは不要になったバージョン2.4.0p1.cre は、対応するパッケージをアンインストールすることで削除できます。

2. アップデート前

Checkmk をバージョン 2.3.0 からバージョン 2.4.0 にアップデートする予定の場合は、まず「バージョン 2.4.0 へのアップデート」の記事をお読みください。この記事では、アップデート前後に考慮すべき最も重要な事項についてまとめています。

ただし、2.4.0 バージョンをすでにインストールしており、最新の安定版パッチバージョン 2.4.0p8 にアップデートする場合でも、以下のセクションで説明するトピックスは関連する場合があります。

2.1. メジャーバージョンへのアップデート

メジャーバージョンをアップグレードする際は、必ず利用可能な中間バージョンを順にアップグレードし、ターゲットバージョンに到達するまでスキップしないでください。 例えば、バージョン 2.2.0 からバージョン 2.4.0 にアップグレードする場合、まず中間バージョン 2.3.0 にアップグレードする必要があります。 この手順の理由は単純です。2つのメジャーバージョン間には変更点が非常に多く、バージョンをスキップすると問題が発生する可能性があるためです。

omd update コマンドでは、より低いバージョンへの「アップデート」もできます。 この手順は、リグレッションの場合にのみ使用してください。 逆方向の更新を行った場合、設定およびランタイム環境を再び互換性のある状態にするために、多くの調整が必要になります。特に、メジャーバージョンを下げる「更新」の場合は、その必要性が高くなります。 したがって、このような手順は絶対に行わないでください。また、バージョンを下げる更新については、サポートも提供いたしません。

2.2. 非互換および廃止された MKPs

Checkmk 拡張パッケージ (MKP) を使用すると、監視システムを非常に簡単かつ便利に拡張することができます。 一方では、一部の古い MKP はメンテナンスが終了しており、新しいバージョンの Checkmk と互換性がなくなる可能性があります。 他方では、Checkmk には新しいプラグインや機能拡張が継続的に追加されているため、MKP が廃止になる場合があります。 これらのプラグインおよび拡張機能の機能は、Checkmk 自体が標準で提供しています。

そのため、アップデートを準備する際には、インストールされているすべての MKPs を確認することを強くお勧めします。 これにより、互換性のないパッケージがアップデートに干渉したり、アップデート後に重複した、あるいは少なくとも非常に類似したサービスが生成されるのを防ぐことができます。

これを行うには、インストールされている MKPをチェックプラグインのカタログと照合し、Checkmk でネイティブに提供されている機能を含むパッケージを削除してください。 また、この機会を利用して、テスト実行のためにのみインストールされた MKP を削除することもできます。 リストは、[Setup ] メニューの [Maintenance > Extension packages] にあります。 コマンドラインでは、mkp list コマンドでインストールされている拡張機能を表示できます。 このコマンドの出力で、不要になった拡張機能や、識別できない拡張機能を確認してください。

Checkmk は、将来のアップデートに備えて、現在実行中のバージョンよりも新しいバージョンの MKP のインストールをサポートしています。 アップデートを実行すると、古いバージョンの Checkmk 用のパッケージは使用不能になり、新しいバージョンのパッケージが有効になります。 詳細については、MKP の使用に関する記事で説明しています。

注意: MKPs から元のファイルにローカル変更を加えた場合、バージョン番号を増加させた後に MKP を再パッケージ化してください。 更新時に、他の方法で変更されたファイルは MKP に含まれるファイルで上書きされます。

2.3. ローカルファイル

ローカルファイルを使用すると、Checkmk が提供する機能をカスタマイズおよび拡張することができます。 これらのファイルは、サイトディレクトリ構造のローカル部分、つまり~/local にあります。 ローカルファイルは、新しい Checkmk バージョンと一致しなくなる可能性があるため、更新時に問題が発生する可能性があります。

Checkmk は、アップデート中にローカルカスタマイズやサードパーティの拡張機能をインターセプトしてハンドルすることはできません。そのため、アップデートを行う前に、Checkmk サイトを使用して、ローカルファイルを使用しているかどうか、および使用しているローカルファイルを確認してください。

サイトユーザーとして次のコマンドを実行して、Checkmk サイトのローカルファイルの概要を確認します(-L オプションにより、シンボリックリンクも追跡されます)。

OMD[mysite]:~$ find -L ~/local -type f

Checkmk を新規にインストールした場合、現在、README.TXT というファイルのみがリストに表示されます。 それ以外のファイルは、更新に問題が発生した場合のトラブルシューティングリストの一番上に記載してください。

理想的には、ローカルファイルはすでにMKP に完全にパッケージ化されています。mkp find を使用して、パッケージ化されていないファイルを確認してください。 パッケージの作成の詳細については、Checkmk 拡張パッケージに関する記事をご覧ください。 パッケージ化すると、各拡張機能は完全なエレメントとして無効化または再有効化できます。

2.4. バックアップとテスト実行

更新を行う直前にバックアップを作成することの重要性については、改めて説明する必要はありません。更新中に障害が発生した場合に、監視のヒストリーを大幅に失うリスクを回避するためです。 この時点で重要なのは、定期的なバックアップは、ペンディング中の更新のテスト実行にも役立つということです。 この方法では、バックアップを別の名前で復元し、newsite サイトを使用して、更新を本番環境で適用する前にテストすることができます。

root@linux# omd restore newsite /path/to/backup

あるいはomd cp を使用してサイトをコピーすることもできます。 ただし、この方法では、ライブサイトを短時間停止する必要があります。

root@linux# omd stop mysite && omd cp mysite newsite && omd start mysite

次に、この新しいクローンサイト上でまずアップデートを実行し、たとえば、上記のローカル変更が新しい環境でも行われていることを確認します。 クローンサイトでのテストが成功した場合は、通常、スペースとパフォーマンスの理由から、本番サイトの実際のアップデートを行う前に、クローンサイトを削除するか、少なくとも停止しておくことをお勧めします。

Tip

Checkmk2.3.0 以降、更新に失敗した場合、更新前の設定状態が復元されます。 更新は、予期しない内部エラーによって失敗する場合がありますが、更新プロセス中にユーザーがメニューオプション「abort 」を選択したり、キーの組み合わせ「CTRL+C 」を押したりした場合にも失敗する場合があります。 設定の復元は、完全なバックアップに代わるものではありませんが、多くの場合、ダウンタイムの短縮に役立ちます。

3. Checkmk の更新

3.1. 新しいバージョンのインストール

はじめに」で説明したように、アップデートではまず、ご希望の新しいバージョンのCheckmkをインストールします。 この手順は、最初のインストールとまったく同じですが、依存するパッケージのほとんどはすでにインストールされているため、多少迅速に進みます。 以下の例では、Ubuntu 24.04 (Noble Numbat) 用のパッケージをインストールしています。

root@linux# apt install /tmp/check-mk-enterprise-2.4.0p8_0.noble_amd64.deb

注: apt install を使用してローカルパッケージをインストールする場合は、.deb ファイルへのプルパスを指定する必要があります。

インストールされている Checkmk のバージョンのリストは、omd versions コマンドでいつでも表示できます。

root@linux# omd versions
2.3.0p32.cre
2.4.0p8.cee (default)
2.4.0p8.cre

リストされたバージョンの 1 つが、(default) でマークされています。 このデフォルトバージョンは、omd -V myversion create mysite で他のバージョンが指定されていない限り、新しいサイトを作成する際に自動的に使用されます。 現在のデフォルトバージョンは、omd version で照会でき、omd setversion で変更できます。

root@linux# omd version
OMD - Open Monitoring Distribution Version 2.4.0p8.cee
root@linux# omd setversion 2.4.0p8.cre
root@linux# omd version
OMD - Open Monitoring Distribution Version 2.4.0p8.cre

デフォルトのバージョンは、既存のサイトを管理する際には何の影響も与えません。omd コマンドは、常に、コマンドが呼び出されたサイトに適したバージョンで起動します。

現在のサイトとそれらが使用しているバージョンのリストは、omd sites コマンドで取得できます。

root@linux# omd sites
SITE             VERSION          COMMENTS
mysite           2.3.0p32.cre
test             2.4.0p8.cre      default version

3.2. アップデートの実行

目的の新しいバージョンをインストールしたら、サイトを更新できます。 この作業には、root の許可は必要ありません。 この作業を行うには、サイトユーザーとして実行するのが最適です。

root@linux# omd su mysite

サイトが停止していることを確認します。

OMD[mysite]:~$ omd stop

更新(実際には別のバージョンへの切り替え)は、omd update コマンドで簡単に実行できます。

OMD[mysite]:~$ omd update

複数のターゲットバージョンが利用可能な場合は、選択リストが開きます。

 ┌─────────ターゲットバージョンを選択してください────────────┐  このサイトで使用するバージョンを選択してください      │  
  アップデートするバージョンを      │  
 ┌──────────────────────────────────────┐  
   2.4.0p1.cre  バージョン 2.4.0p1.cre     
   2.4.0p1.cee バージョン 2.4.0p1.cee   
                                         
                                         
 └──────────────────────────────────────┘  
 ├──────────────────────────────────────────┤  
        <今すぐ更新>   < キャンセル  >       │  
 └──────────────────────────────────────────┘  
                                               

次のダイアログボックスで、新しいバージョンへのアップデートの選択を確認してください。

 ┌──────────────────────────────────────────────────┐  サイトの mysite を更新します。     │  
  バージョン 2.3.0p32.cre からバージョン 2.4.0p1.cre に更新します。     │  
  これには、すべての           │  
  すべての設定ファイルが更新され、変更がマージされます。   │  
   
   
 ├──────────────────────────────────────────────────┤  
            <更新!>     < 中止 >               │  
 └──────────────────────────────────────────────────┘  
                                                       

安全を期すため、バージョンアップと同時に Checkmk Raw から商業版へのエディションのアップグレードを行う場合、この事実が再度通知されます。

 ┌───────────────────────────┐  Raw からアップデートしています │  
  Edition から Enterprise へ     │  
  エディションからアップデートしています。これは正しいですか?  
  意図されていますか?                │  
 ├───────────────────────────┤  
     < yes >   < no  >  
 └───────────────────────────┘  
                                

更新の重要な部分としては、最初に提供された設定ファイルの更新があります。 ここでは、ユーザーによってこれらのファイルに加えられた変更は、単に破棄されるのではなく、マージされます。 これは、複数の開発者が同時に 1 つのファイルに加えた変更を統合しようとするバージョン管理システムとよく似た機能です。

まれに、変更がファイル内の同じ位置に影響を与える場合、この機能は機能せず、衝突が発生します。 このような衝突を解決する方法については、後述します

更新では、変更されたすべてのファイルおよびディレクトリのリストが表示されます (以下の例では省略しています)。

2025-05-19 13:47:54 - Updating site 'mysite' from version 2.3.0p32.cre to 2.4.0p1.cre...

 * Updated        .profile
 * Installed dir  var/check_mk/packages_local
...

Installed default file of version 2.4.0p1.cre.
 * Installed link etc/rc.d/60-ui-job-scheduler
 * Installed link etc/rc.d/85-rabbitmq
...

Creating temporary filesystem /omd/sites/mysite/tmp...OK
Executing 'cmk-update-config --conflict ask --dry-run'
-| ATTENTION
-|   Some steps may take a long time depending on your installation.
-|   Please be patient.
-|
-| Cleanup precompiled host and folder files
-| Verifying Checkmk configuration...
-|  01/08 Legacy check plug-ins...
-|  02/08 Rulesets...
...
-|  07/08 Invalid hosts labels...
-|  08/08 Deprecated .mk configuration of plugins...
-| Done (success)
-|

Completed verifying site configuration. Your site now has version 2.4.0p1.cre.
Executing update-pre-hooks script "01_mkp-disable-outdated"...OK
Executing update-pre-hooks script "02_cmk-update-config"...
-| ATTENTION
-|   Some steps may take a long time depending on your installation.
-|   Please be patient.
-|
-| Cleanup precompiled host and folder files
-| Verifying Checkmk configuration...
-|  01/08 Legacy check plug-ins...
-|  02/08 Rulesets...
...
-|  29/30 Validating configuration files...
-|  30/30 Update core config...
-| Generating configuration for core (type nagios)...
-| Precompiling host checks...OK
-| Done (success)
OK
Finished update.

上記の出力で「Completed verifying site configuration 」という行が表示されている場合、サイトは新しいバージョンにスイッチされています。

OMD[mysite]:~$ omd version
OMD - Open Monitoring Distribution Version 2.4.0p8.cre

… その後、サイトを起動できます:

OMD[mysite]:~$ omd start

3.3. 互換性のない変更

ソフトウェアの開発には、当然ながら変更が伴います。 Checkmk は常に最新の状態に保つよう積極的に取り組んでいるため、不要な部分を削除したり、互換性がない変更を行ったりすることは避けられません。 そのため、アップデート時には、設定の変更、または少なくとも確認が必要になる場合があります

このような状況の典型的な例は、既存のプラグインを置き換える新しいチェックプラグインです。 影響を受けるプラグインのいずれかを使用している場合、影響を受けるホストで新しいサービスディスカバリーが必要になります。

Checkmk のすべての変更の概要は、検索機能付きオンラインのWerk でご覧いただけます。

しかし、より実用的なのは、Checkmk にビルトインされている検索機能です。 サイトにログインすると、Help メニューの上部に互換性がないまだ確認されていない変更の数が赤で強調表示されたリンクが表示されます。

“Help menu with link to the list of incompatible changes.”

Checkmk は、現在のバージョンへのアップデート中に発生した互換性のない変更を追跡し、確認と承認を求めます。

Top of the list with incompatible and open changes.

Help メニューの赤いリンクからこのページを開くと、何か対応が必要な、つまりIncompatible - TODO でマークされた「Werk」(変更)のみが表示されます。 各Werkを個別に呼び出し、表示してマウスクリックで確認することで、未解決の互換性のない変更の数を順次減らすことができます。 さらに、Help > Change log (works) メニュー項目から、現在のメジャーバージョンにおける変更の完全なヒストリーにアクセスできます。

3.4. アップデートの詳細

更新の「裏側」で何が起こっているのか気になりますか? または、omd update 実行中にデータ競合が発生しましたか? その場合、以下の詳細情報をご確認ください。

omd update では、次の3つのアクションが実行されます:

  1. ~/etc/~/var/ にあるデフォルトファイルの刷新 – つまり、omd create によって作成されたファイルです。

  2. サイトディレクトリにあるシンボリックリンクversion を変更して、アクティブなバージョンをターゲットバージョンに切り替えます。

  3. さまざまなパッケージ(Checkmk など)による後処理。 特に、コアの有効な構成を生成するために、変更をアクティブにする処理が自動的に実行されます。

ファイルの更新、変更のマージ

最初のステップは、最も包括的な作業です。 ここで、Checkmk は、一般的なソフトウェアのインストールと比較して大きな利点を発揮します。Checkmk は、すべての標準設定ファイルを新しいバージョンの前提条件に合わせて調整する作業を支援します。 これは、Linux ディストリビューションの更新手順と似ていますが、実装はさらに進んでいます。 Checkmk は、次のようなさまざまな状況に対応できます。

  • アップデートによって行われたファイルの変更と、ユーザーがローカルで行った変更のマージ。

  • 新しいバージョンでは使用されなくなった、またはユーザーによって削除されたファイル、ディレクトリ、シンボリックリンク。

  • 許可の変更。

  • ファイルタイプの変更(ファイルまたはディレクトリから派生したシンボリックリンク、またはその逆)。

  • シンボリックリンクのターゲットの変更。

Checkmk は、ローカルでの変更が確実に保持され、新しいバージョンで必要なすべての変更が同時に実装されるようにします。

マージと競合

新しいバージョンで、ユーザーも変更を加えた設定ファイルの変更が必要な場合、Checkmk は自動的に両方の変更をマージしようと試みます。 これは、バージョン管理システムで使用されているのと同じ方法で行われます。

ユーザーと Checkmk による変更が、テキスト内で物理的に明確に分離されている場合(少なくとも数行離れている場合)、問題はほとんど発生しません。 この場合、マージは自動的に実行され、ユーザーの介入は必要ありません。

2 つの変更が、データ内の同じ場所に影響するため「衝突」した場合、 Checkmk はどちらの変更がより重要かを判断することはできません。 このような状況では、ユーザーに通知され、対話形式で競合を解決することができます。

                                                                               
  etc/mk-livestatus/nagios.cfg に競合があります!                                   
  バージョン 2.3.0p32.cre から 2.4.0p1.cre への変更を etc/mk-livestatus/nagios.cfg に   マージしようとしました  
 残念ながら、あなたの変更と競合があります。
次の   オプション   があります                                                                                
                                                                               
  diff        新しいデフォルトとあなたのバージョンの違いを表示します        あなた         あなたの変更を古いデフォルトバージョンと比較して表示します           new         2.3.0p32.cre から 2.4.0p1.cre への変更点を表示します。           編集        半分マージされたファイルを編集します (>>>>> および <<<<< に注意してください)            
  try again   元のファイルを編集して、もう一度試してください  keep        ファイルの半分マージされたバージョンを保持します                              復元     ファイルの元のバージョンを復元します                         インストール     新しいデフォルトバージョンをインストールします  シェル       シェルを開いて確認してください  abort       ここで停止して更新を中止します                                                                                                                   

上記の状況では、以下のオプションが利用可能です:

d

新しいデフォルトバージョンと、お使いのファイルのバージョンの違いを「統一差分」 (diff -u) のフォームで表示します。

y

これは上記と類似していますが、前のデフォルトバージョンを基に、ファイルに施した変更を表示します。

n

この 3 番目のオプションは、Checkmk がファイルに加える変更を表示することで、事実上「三角形を閉じる」役割を果たします。

e

エディターで手動で衝突を解決します。

t

t を選択すると、すでに正常にマージされた変更が含まれていない元のファイルがエディタで開かれます。ファイルを編集して、発生する可能性のある競合を回避してください。エディタを閉じると、Checkmk はマージを再試行します。

k

ここで、データを「そのまま」受け入れるかどうかを決定できます。正常に挿入された変更は保持されます。それ以外は、ファイルはユーザーによってカスタマイズされたままの状態になります。

r

これにより、ファイルの古いバージョンに戻り、このファイルに対する Checkmk の更新をスキップすることができます。必要なカスタマイズは、手動で実行する必要があります。

i

新しいデフォルトのファイルバージョンをインストールします。古いファイルの変更は失われます。

s

不明な場合は、s でシェルを開きます。関連ファイルを含むディレクトリが表示され、状況を確認できます。更新を続行するには、CTRL+D でシェルを終了します。

a

更新を中止します。サイトは古いバージョンを保持し、以前の設定が復元されます。新しい更新はいつでも試みることができます。

その他の競合状況

ファイルのコンテンツのマージに加えて、Checkmk がユーザーの決定を必要とする一連の状況があります。 その中には、非常に珍しい状況もありますが、それでも正しくハンドルする必要があります。 このような場合、Checkmk は常に、現在のバージョンを維持するか、新しいデフォルトバージョンを採用するかを選択するよう求めます。 さらに、更新を中止したり、シェルを開いたりするオプションも常にあります。 このような「難しい」状況の例としては、次のようなものがあります。

  • ファイルタイプの変更が衝突する場合(例:ファイルがシンボリックリンクで置き換えられた場合)

  • ファイルの許可に関する競合する変更

  • 新しいソフトウェアバージョンで必要とされないファイルの変更

  • ユーザーによって作成され、新しいバージョンのファイル/ディレクトリ/リンクと競合するファイル、ディレクトリ、リンク

更新中の出力の説明

更新手順では、ファイルに自動的に変更を加えた場合、必ず 1 行の説明が出力されます。 以下の状況が発生する可能性があります。ここではファイルについて説明しますが、リンクやディレクトリについても同様に適用されます。

更新されました

ファイルが新しいバージョンで変更されました。このファイルは変更されていないため、Checkmk は新しいデフォルトバージョンのファイルをインストールするだけです。

マージ

ファイルが新しいバージョンで変更され、同時にユーザーがファイルに他の変更を加えました。ファイルの両方のバージョンは、競合することなく 1 つのバージョンにマージできます。

同一

新しいバージョンでファイルが変更され、同時にユーザーが同じ変更をファイルにすでに施しています。Checkmk は何もしません。

インストール済み

新しいバージョンには、今インストールされた新しい設定ファイルが含まれています。

同一の新

新しいバージョンには、ユーザーがすでにインストールしているファイルと同一のファイルが含まれています。

廃止

新しいバージョンでは、ファイルが廃止されました (リンクやディレクトリも同様です)。ユーザーはすでにそのファイルを削除しています。何もする必要はありません。

消失

新しい Checkmk では別のファイルが廃止されており、ユーザーは既存のバージョンを削除も変更もしていません。Checkmk はこのファイルを自動的に削除します。

不要

通常存在するファイルがユーザーによって削除されました。新しい Checkmk のバージョンは、このファイルの最後のバージョンから変更がないため、Checkmk はこのファイルが存在しないことを許容します。

欠落

ユーザーがすでにファイルを削除していますが、新しい Checkmk ではこのファイルに以前のバージョンからの変更が含まれています。Checkmk は新しいファイルをインストールし、この操作に関する通知をユーザーにログに記録します。

Permissions

新しいバージョンでは異なる権限が設定されているため、Checkmk はファイルの権限を更新しました。

3.5. ユーザーの操作なしで更新する

Checkmk のソフトウェア更新を自動化しますか? 最初は、omd update からの対話型の応答に戸惑うかもしれません。 このシナリオには簡単な解決策があります。このコマンドには、スクリプトで使用するために特別に考案されたオプションがあります。

  • omd の直後に指定するオプション-f または--force は、すべての「本当に実行しますか?」という確認メッセージを無効にします。

  • update の直後に指定するオプション--conflict= は、ファイルの競合が発生した場合の動作を決定します。

--conflict= の可能な値は次のとおりです:

--conflict=keepold

競合が発生した場合、ユーザー自身が変更したファイルが保持されます。ただし、Checkmk が実行できない場合があり、手動での修正が必要になる可能性があります。

--conflict=install

競合が発生した場合、ファイルの新しい標準バージョンがインストールされます。これにより、ファイルに対するローカルでの変更は少なくとも一部失われます。

--conflict=abort

競合が発生した場合、更新はキャンセルされ、古いバージョンの以前の設定が復元されます。

--conflict=ask

これは標準的な手順であるため、このフォームではこのオプションは実際には不要です。

以下は、mysite のバージョン2.4.0p8.cre への自動更新の完全なコマンドの例です。

root@linux# omd stop mysite ; omd -f -V 2.4.0p8.cre update --conflict=install mysite && omd start mysite

&&omd start の前に追加すると、omd update がエラーで中止された場合、サイトの再起動が防止されます。 このような状況でも確実に起動を試みたい場合は、&& をセミコロン (;) に置き換えてください。

サーバー上で実行されている Checkmk サイトが 1 つだけであることが確実な場合は、シェルスクリプトで使用する名前を単に 1 つの変数にトラップすることができます。

root@linux# omd sites --bare
mysite
root@linux# SITENAME=$(omd sites --bare)
root@linux# echo $SITENAME
mysite

これにより、上記の行はサイト名に依存しなくなります。 たとえば、小さなシェルスクリプトは次のようになります。

update.sh
#!/bin/bash
SITE=$(omd sites --bare)
VERSION=2.4.0p8.cre

omd stop $SITE
omd -f -V $VERSION update --conflict=install $SITE  && omd start $SITE

4. 分散環境での更新

分散監視に含まれるすべてのサイト(セントラルサイトおよびセントラルサイトによって制御されるリモートサイト)の更新を行うには、2 つの異なる手順があります。

重要: どちらの方法を選択する場合も、まず最初に、環境内のすべてのサイトのバックアップを作成してください。

推奨される最も安全な手順は、以下の手順を一度に実行して更新を行う方法です。

  1. まず、すべてのサイトを停止します

  2. 次に、すべてのサイトの更新を実行します

  3. 更新したサイトを再起動します

これが不可能な場合(たとえば、環境が複数のサイト、タイムゾーン、サポートチームに分散している場合など)は、厳格な条件の下で一時的な混合運用を実施することができます。 バージョンは、メジャーアップデートの場合、1 バージョン以内の違いで、常に現在の(既存の)バージョンの特定のパッチレベルを前提とします。

この順序を正確に守ることが重要です。まず、すべてのリモートサイトを更新してから、セントラルサイトを更新してください。 これにより、新しい Checkmk バージョンで作成された設定が、古い Checkmk バージョンに反映されることがないようになります。

以下の表は、2.3.0 から 2.4.0 への更新時の可能な組み合わせを示しています:

セントラルサイト リモートサイト 許可されていますか? 備考

2.3.0

2.3.0

はい

すべてのサイトを更新する前に状態を確認してください。

2.3.0

2.4.0

はい

更新中は機能に若干の損失が見込まれますので、混合環境での運用は短期間にしてください。データおよび設定に危険はありません。

2.4.0

2.3.0

いいえ

注意: セントラルセットアップでは、この状況ではリモートサイトが修復不可能な損傷を受ける危険があります。この条件は絶対に避けてください。

2.4.0

2.4.0

はい

すべてのサイトの更新後の状態です。

4.1. 技術的背景

上記の更新アプローチの技術的な理由は、使用されているプロトコルにあります。 セントラルサイトは、主にライブステータスを介してリモートサイトのデータにアクセスし、 セントラルセットアップの場合は、非公開の HTTP API による追加の書き込みアクセスも使用します。 どちらの場合も、新しいバージョンでは、使用されているプロトコルの真の上位セットが導入されます。 したがって、古いセントラルサイトは、新しいリモートサイトの機能の真の下位セットのみを使用します。 セントラルサイトが最初に更新された場合、リモートサイトがまだ「理解」できない API 呼び出しやライブステータス要求をリモートサイトに発行する可能性があります。

メジャーバージョンの最大バージョン差、インターフェースの削除には正確に 1 バージョンの猶予期間があることから生じます。

4.2. 中央セットアップで使用するための拡張パッケージ

このような段階的な更新を容易にするため、Checkmk では、同じ名前の拡張パッケージを異なるバージョンで保存する機能を提供しています。たとえば、古いセントラルサイトと一致するバージョンと、新しいリモートサイトと一致するバージョンを保存することができます。 各サイトには、適切なバージョンがアクティブになります。 詳細については、拡張パッケージ (MKP) に関する記事をご覧ください。

4.3. ライブステータスのカスケード

閲覧専用サイト拡張機能を使用すると、閲覧専用サイトは、そのサイトが表示するサイトのデータが更新された後にのみ更新することができます。 閲覧専用サイトがリモートサイトのデータのみを表示する場合、リモートサイトが更新されるとすぐに閲覧専用サイトも更新されます。 一方、セントラルサイトのデータも表示する場合、閲覧専用サイトの更新は最後にのみ行われます。

5. Docker コンテナの更新

Docker コンテナ内の Checkmk サイトの更新は非常に簡単です。 必要な条件は、以下の通りです。

  • コンテナを停止してもコンテナは削除されません — つまり、起動時に「--rm 」オプションが使用されていません。

  • コンテナのボリュームID がわかっていること。 通常、コンテナの起動時に、そのストレージに一意の ID を指定しておく必要があります。 ボリューム ID がわからない場合は、コマンド docker inspect myContainermyContainer という名前のコンテナに関する情報を取得できます。

Docker での Checkmk のインストールガイドに従った場合は、要件は自動的に満たされているはずです。

更新プロセスは 3 つのステップで実行されます。

  1. コンテナを停止します。 Checkmk コンテナの名前がmyContainer の場合、コマンドは次のとおりです。docker stop myContainer

  2. コンテナを削除します。 コマンドは、docker rm myContainer です。

  3. docker container run コマンドを使用して、ご希望のバージョンの新しいコンテナを起動し、既知のボリュームをマウントします。 ボリュームの名前がmyVolume の場合、対応するオプションは-v myVolume:/omd/sites です。 コマンドのすべてのオプションは、Docker での Checkmk のインストールガイドに記載されています。

Checkmk が自動的に残りの作業(Checkmk サイトの更新と起動)を行います。 その後、通常どおりログインできるようになります。

6. アップグレード

Checkmk Rawから商業版へのアップグレード、または商業版からより機能的な商業版へのアップグレードは、いつでも簡単に行えます。 手順は基本的に常に同じです。 ご希望のパッケージをインストールし、omd update で該当するサイトをスイッチしてください。 商業版にアップグレードする場合は、アップグレード後にライセンスを取得する必要があります

商用バージョンからより機能範囲の広いバージョンにアップグレードする場合は、アップグレード後に必ずライセンスを再入力する必要があります。 これは、販売担当者が、ライセンスアップグレード後に「下位」の Checkmk 環境で「上位」のライセンスを使用できると保証した場合にも適用されます。 アップグレードすると、ライセンス状態がリセットされます(ヒストリーは保持されます)ため、ライセンスを再入力する必要があります。

6.1. Checkmk Raw を商業版にアップグレードする

この章では、主に Checkmk Enterprise へのアップグレードについて説明します。 Checkmk Cloud へのアップグレードも 1 ステップで実行できますが、その場合は、次のセクションの注意事項もご参照ください。

商業版には追加のモジュールや機能が多数含まれているため、アップグレード後に留意すべき点がいくつかあります。 重要な点は、Checkmk Raw または商業版で新しいサイトを作成すると、異なるデフォルト設定が設定されることです。

Nagios と CMC

Checkmk Raw は Nagios のみをコアとしてサポートしているため、Checkmk Raw で作成されたサイトのデフォルト設定は Nagios です。 この設定は、Checkmk Enterprise へのアップグレード後も保持されます。 つまり、アップグレード後も、最初は Nagios をコアとして実行し続けることになります。 CMC への移行は、omd config を使用して行います。その方法については、CMC への移行という記事で説明しています。

RRD 形式

商業版では、履歴測定データを保存するための代替フォーマットがサポートされており、ディスク I/O を大幅に削減できます。 このフォーマットは、新しい商業版サイトには自動的に事前設定されています。 Checkmk Raw サイトも、アップグレード時に自動的に変換されることはありません。 データフォーマットを切り替える方法については、測定値とグラフに関する記事の別のセクションで説明しています。

その他の違い

Checkmk Enterprise を最大限に活用するには、Checkmk Raw とCheckmk Enterprise の違いの概要をご覧ください。

6.2. Checkmk Enterprise から Checkmk Cloud へのアップグレード

監視コアと通知システムに関しては、Checkmk Enterprise と Checkmk Cloud には違いはありません。 デプロイの重点に応じて、新しいホストを追加する場合にのみ、より大規模な機能セットを使用することがよくあります。 ただし、場合によっては、既存の設定を見直すことをお勧めします。

追加機能の完全な概要については、Checkmk Cloud (セルフホスト型) の記事をご覧ください。

クラウドサービス用のプラグインをチェック

Amazon Web Services (AWS)Microsoft Azure、またはGoogle Cloud Platform (GCP) を監視する場合、Checkmk Cloud 用に予約されている既存のホストのサービスは、最初は有効になっていません。 これらのサービスは、XYZ services to monitor ルール(XYZ はクラウドプラットフォームの名前)で有効にすることができます。 その後、これらのホストでサービスディスカバリーを実行して、利用可能になったサービスを見つけます。

プッシュモードのエージェントコントローラー

Checkmk サーバーに到達できるが、Checkmk サーバーからはアクセスできないホストを直接監視できる機能により、データソースプログラムを使用した自社開発ソリューションの必要性が多くの場合でなくなります。 これらのホストをプッシュモードに切り替えて、直接監視を有効にすることができます。

6.3. 分散環境でのエディションのアップグレード

分散環境では、エディションのアップグレードを行う前に、必ずバージョンアップデートを行う必要があります。 異なる順序でのアップデートや、クロスグレード(バージョンアップデートとエディションのアップグレードを同時に行うこと)はサポートされていません。 一般的な手順としては、オフラインアップグレードをお勧めします。この方法では、どのエディションからでも、どのエディションへもアップグレードすることができます。

よく要求される 2 つのアップグレードシナリオ(Checkmk Raw から Checkmk Enterprise へ、およびCheckmk Enterprise から Checkmk Cloud へ)については、期間限定で混合運用が可能です。

オフラインアップグレード(すべての組み合わせ)

エディションの混合はごく一部の組み合わせでのみ可能であるため、通常はエディションのアップグレードはオフラインで行うことをお勧めします。 これを行うには、以下の手順に従ってください。

  1. すべてのサイトを停止します。

  2. セントラルサイトのアップグレードを実行します。

  3. 必要に応じて(通知が大量に送信されても問題がない場合)、セントラルサイトをすぐに再起動することができます。

  4. 次に、リモートサイトのアップグレードを行います。これは並行して実行し、アップグレードが完了したらすぐにリモートサイトを再起動することができます。

もちろん、すべてのサイトのアップグレードが完了してから再起動することもできます。その場合は、通知の数が多少減少します。

Checkmk Raw から Checkmk Enterprise へ(オンライン

Checkmk では、Checkmk Enterprise をセントラルサイトとして、Checkmk Raw または Checkmk Cloud をリモートサイトとして混合運用することは可能です。 Checkmk Enterprise へのアップグレードでは、セントラルサイトが最初にアップデートを受け取ります。 混合運用中は、セントラルサイトからまだアップグレードを受けていないリモートサイトに設定を転送しないでください。 そのため、混合運用中は、Setup > General > Read only mode を使用して、セントラルサイトでの設定の変更を禁止することをお勧めします。 理論的には、Checkmk Enterprise をセントラルサイト、Checkmk Raw をリモートサイトとするこの混合運用は、必要なだけ継続することができます。

これにより、アップグレードの順序は次のようになります:

  1. セントラルサイトを Checkmk Enterprise にアップグレードします。

  2. ライセンシングの記事に記載されているとおり、サブスクリプションデータを入力して送信します。 サブスクリプションの計算では、すべてのリモートサイトによって提供されるサービスは平等に扱われます。 つまり、混合運用中は、Checkmk Raw リモートサイトのサービスも Checkmk Enterprise として請求されます。

  3. リモートサイトを徐々に更新します。

  4. 設定の転送をグローバルに無効にしていないが、リモートサイトごとに個別に無効にしている場合は、アップグレードを受けた各リモートサイトについて、設定の転送を再度有効にすることができます。

  5. セントラルセットアップのない分散監視では、アップグレード後すぐにリモートサイトにもライセンスを付与する必要があります。

すべてのサイトのアップグレードが完了したら、Checkmk Enterprise 独自の機能を有効にすることができます。

Tip

アップグレード中に構成を同期しないことを推奨する理由はなんですか?

リモートサイトは、「何もできない」設定は実際に破棄します。 これは何も壊れることはありませんが、混乱を招く可能性があります。 たとえば、すべてのリモートサイトがアップグレードを受ける前に、Checkmk Enterprise 独自の設定(定期的なスケジュールダウンタイムなど)をアクティブにしたとします。 この場合、Checkmk Raw サイトは設定を破棄するため、アップグレード後もその設定は使用できなくなります。 この設定は、アップグレード後に再度変更するまで使用できません。

アップグレード中に設定を同期できない場合は、アップグレードが完了した後、Checkmk Enterprise 独自の設定の一貫性を確認してください。

Checkmk Enterprise から Checkmk Cloud へ (オンライン)

前述のように、Checkmk では、Checkmk Enterprise をセントラルサイトとして、Checkmk Raw または Checkmk Cloud をリモートサイトとして混合運用することしかできません。 Checkmk Cloud へのアップグレードの場合、これは、セントラルサイトが最後にアップデートを受け取ることを意味します。 環境全体のアップグレードは 30 日以内に完了する必要があります。 混合運用中は、セントラルサイトからリモートサイトに設定を転送することができます。

これにより、アップグレードの順序は次のようになります:

  1. リモートサイトを Checkmk Cloud にアップグレードします。 重要:Checkmk Enterprise をセントラルサイトとする混合運用は、30 日間の「トライアル」ライセンス状態でのみ可能です。 Checkmk Cloud のサブスクリプションデータはまだ保存しないでください。

  2. Checkmk Cloud のサブスクリプションデータは、Checkmk Enterprise のセントラルサイトに保存してください。

  3. セントラルサイトを Checkmk Cloud にアップグレードします。

  4. セントラルセットアップのない分散監視では、アップグレード直後にリモートサイトにもライセンスを付与する必要があります。

Checkmk Raw から Checkmk Cloud に直接アップグレードする場合は、中間ステップとして、セントラルサイトを Checkmk Enterprise にアップグレードする必要があります。 まず、セントラルサイトを Checkmk Raw から Checkmk Enterprise にアップグレードし、次にリモートサイトを Checkmk Raw から Checkmk Cloud に直接アップグレードします。 最後に、セントラルサイトを Checkmk Enterprise から Checkmk Cloud にアップグレードします。

7. ダウングレード

エディション間のダウングレードも可能です。 ダウングレードは、ターゲットエディションでは一部の機能が動作しない場合があるため、より複雑で時間のかかる作業となります。 これらの機能は手動で無効にし、効率や利便性の低い代替機能に置き換える必要があります。

実際のダウングレードは、アップデートやアップグレードと同様、omd update コマンドで実行する必要があります。 詳細については、「アップデートの実行」セクションをご覧ください。

たとえば、Checkmk Cloud から Checkmk Enterprise にダウングレードしようとすると、Checkmk はそれが本当にあなたの意図であるかどうかを検証します。

 ┌─────────────────────────────┐  クラウドからアップデートしています │  
  Edition から Enterprise へ       │  
  エディションからエンタープライズに更新しています。意図した動作でしょうか?  │  
 ├─────────────────────────────┤  
      < はい >   < いいえ  >  
 └─────────────────────────────┘  
                                  

yes でこのダイアログを確認すると、ダウングレードがすぐに開始されます。 このダウングレードの前に必要な手順については、以下をご覧ください。

以下に記載する以外のダウングレード(Checkmk MSP のダウングレードなど)は、意図されたものではなく、弊社ではサポートしておりません。 その場合は、新しいサイトから開始することをお勧めいたします。

7.1. Checkmk Cloud から Checkmk Enterprise へのダウングレード

Checkmk Cloud から Checkmk Enterprise へのダウングレードの準備として、少なくとも以下の変更を行う必要があります。

  • プッシュモードで動作するホストをプルモードに設定してください。 そうしないと、Checkmk はそれらのホストから監視データを受信できず、通常、関連するホストは面白くない状態になります。

  • フォルダ用のエージェントパッケージを再設定して、自動登録を停止します。 その後、エージェントパッケージを再作成します。

さらに、一部のクラウドサービスおよびダッシュボードは使用できなくなります。 その結果、消滅したサービスをクリーンアップする必要があります。

Checkmk Cloud で「Grafana Store」のGrafana プラグインを使用していた場合は、zip アーカイブからインストールしたプラグインに置き換える必要があります。

Checkmk Cloud と Checkmk Enterprise の違いの概要は、Checkmk Cloud (セルフホスト型) の記事でご確認いただけます。

7.2. Checkmk Enterprise から Checkmk Raw へのダウングレード

Checkmk Enterprise から Checkmk Raw へダウングレードする準備として、少なくとも以下の変更を行う必要があります。

  • Configuration of RRD databases of hosts ルールで RRD データベースのフォーマットをMultiple RRDs per host/service に変更します。 パフォーマンスが若干低下するほか、既存のデータの変換は含まれていないため、履歴の監視データが表示されなくなることにご注意ください。

  • 監視コアを CMC から Nagios に切り替えます。この変更は、まずパフォーマンスの低下につながる可能性があります。

さらに、一部のダッシュボード、グラフ設定、通知プラグイン、およびスペシャルエージェントは使用できなくなります。 Checkmk Enterprise の記事では、Checkmk Raw にダウングレードした場合に Checkmk Enterprise の機能がどの程度失われるか、およびさらに調整が必要な箇所を確認することができます。

7.3. 分散環境でのエディションのダウングレード

前の 2 つのセクションで説明したダウングレードのシナリオは、分散環境でも実行できます。 分散環境では、エディションのダウングレードを行う前に、必ずバージョンアップデートを実行する必要があることにご注意ください。 異なる順序での実行や、クロスグレード(バージョンアップデートとエディションのダウングレードを 1 つの操作で実行)はサポートされていません。

Checkmk が異なるエディション間の混合運用をサポートするダウングレードシナリオはありません。 そのため、エディションのダウングレードはオフラインで実行することを強くお勧めします。 これを行うには、次のようにします。

  1. すべてのサイトを停止します。

  2. セントラルサイトのダウングレードを実行します。

  3. 必要に応じて(通知が大量に送信されても問題がない場合)、セントラルサイトをすぐに再起動することができます。

  4. 次に、リモートサイトのダウングレードを行います。 これは並行して実行し、ダウングレード後にリモートサイトをすぐに再起動することができます。

もちろん、すべてのサイトのダウングレードが完了してからサイトを再起動することもできます。この方法では、通知の数が多少減少します。

8. Checkmk のアンインストール

8.1. 概要

不要になった Checkmk バージョンのアンインストールは、オペレーティングシステムのパッケージマネージャを使用して行います。 これを行うには、インストールされているパッケージの名前(元の RPM/DEB ファイルのファイル名ではない)を入力してください。
重要:どのサイトでも使用されなくなった Checkmk バージョンのみ削除してください。

不要になった Checkmk サイトは、omd rm で簡単に削除できます(この操作により、すべてのデータも削除されます)。

root@linux# omd rm mysite

8.2. Debian、Ubuntu

以下のコマンドを使用して、インストールされているパッケージを特定します。

root@linux# dpkg -l | grep check-mk
ii  check-mk-enterprise-2.4.0p8    0.noble  amd64  Checkmk - Best-in-class infrastructure & application monitoring
ii  check-mk-raw-2.3.0p32          0.noble  amd64  Checkmk - Best-in-class infrastructure & application monitoring
ii  check-mk-raw-2.4.0p8           0.noble  amd64  Checkmk - Best-in-class infrastructure & application monitoring

アンインストールは、dpkg --purge で実行します。

root@linux# dpkg --purge check-mk-raw-2.3.0p32
(Reading database ... 603038 files and directories currently installed.)
Removing check-mk-raw-2.3.0p32 (0.noble) ...
...

8.3. SLES、Red Hat Enterprise Linux、CentOS

RPM ベースのシステムで使用されている Checkmk パッケージを識別する方法は、次のとおりです。

root@linux# rpm -qa | grep check-mk
check-mk-enterprise-2.4.0p8-el9-38.x86_64.rpm
check-mk-raw-2.4.0p8-el9-38.x86_64.rpm
check-mk-raw-2.3.0p32-el9-38.x86_64.rpm

削除は、rpm -e で実行します:

root@linux# rpm -e check-mk-raw-2.3.0p32-el9-38.x86_64.rpm

9. 故障診断

Checkmk の更新中にエラーが発生した場合、その原因は通常、前の章で述べた 3 つのうちのいずれかに該当します。

10. ファイルとディレクトリ

この記事に関連するファイルおよびディレクトリは、こちらでご覧いただけます。 いつものように、/ で始まらないパスは、サイトのホームディレクトリ (/omd/sites/mysite) の後に適用されます。

ファイルパス 機能

~/version

このサイトで使用されている Checkmk バージョンのインストールへのシンボリックリンクです。

/omd/versions

このディレクトリには、インストールされている Checkmk バージョンごとにサブディレクトリが存在します。root に属するファイルは、決して変更されません。

/omd/sites

このディレクトリには、各サイト用のホームディレクトリがあり、その中に設定ファイルと可変データが含まれています。このデータはサイトユーザーに属しており、設定や操作によって変更することができます。

/usr/bin/omd

Checkmk サイトの管理コマンドです。これは、デフォルトバージョンのbin ディレクトリへのシンボリックリンクです。特定のサイトにアクセスすると、omd コマンドは、適切なバージョンのコマンドに置き換えられます。

このページでは