CentOS 7でリモートサーバーを安全に監視するためにZabbixをインストールおよび構成する方法

著者は、Write for DOnationsプログラムの一部として寄付を受け取るためにOpen Source Initiativeを選択しました。

前書き

Zabbixは、ネットワークおよびアプリケーション用のオープンソースの監視ソフトウェアです。 サーバー、仮想マシン、ネットワークデバイス、およびWebアプリケーションから収集された数千のメトリックのリアルタイム監視を提供します。 これらのメトリックは、お客様が苦情を申し立てる前に、ITインフラストラクチャの現在の状態を判断し、ハードウェアまたはソフトウェアコンポーネントの問題を検出するのに役立ちます。 有用な情報はデータベースに保存されるため、長期間にわたってデータを分析し、提供されるサービスの品質を改善したり、機器のアップグレードを計画したりできます。

Zabbixは、ユーザーサービスやクライアント/サーバーアーキテクチャのエージェントレス監視など、メトリックを収集するためのいくつかのオプションを使用します。 サーバーメトリクスを収集するために、監視対象クライアント上の小さなエージェントを使用してデータを収集し、Zabbixサーバーに送信します。 Zabbixは、サーバーと接続されたクライアント間の暗号化された通信をサポートしているため、安全でないネットワーク上を移動する間、データは保護されます。

Zabbixサーバーは、MySQLPostgreSQL、またはOracleを利用したリレーショナルデータベースにデータを保存します。 履歴データをElasticsearchTimescaleDBなどのnosqlデータベースに保存することもできます。 Zabbixには、データを表示してシステム設定を構成できるWebインターフェースが用意されています。

このチュートリアルでは、2台のマシンを構成します。 1つはサーバーとして構成され、もう1つは監視するクライアントとして構成されます。 サーバーはMySQLデータベースを使用して監視データを記録し、Apacheを使用してWebインターフェイスを提供します。

前提条件

このチュートリアルを実行するには、次のものが必要です。

  • sudo権限を持つ非rootユーザーとfirewallを含む、Initial Server Setup with CentOS 7を追跡することによってセットアップされた2つのCentOS7サーバー。 1つのサーバーにZabbixをインストールします。このチュートリアルでは、これをZabbix serverと呼びます。 2番目のサーバーを監視します。この2番目のサーバーはsecond CentOS serverと呼ばれます。

  • Zabbixサーバーには、Apache、MySQL、およびPHPがインストールされている必要があります。 How To Install Linux, Apache, MySQL, PHP (LAMP) Stack on CentOS 7に従って、Zabbixサーバーでこれらを設定します。

[.note]#Note:CentOSはMySQLの代わりにMariaDBを使用しますが、このチュートリアルを実行している間は問題は発生しません。

さらに、Zabbixサーバーを使用して、権限のないユーザーにアクセスさせたくないインフラストラクチャに関する貴重な情報にアクセスするため、TLS / SSL証明書をインストールしてサーバーを安全に保つことが重要です。 これはオプションですが、strongly encouragedです。 Let’s Encrypt on CentOS 7ガイドに従って、無料のTLS / SSL証明書を取得できます。

[[step-1 -—- installing-the-zabbix-server]] ==ステップ1—Zabbixサーバーのインストール

まず、MySQL、Apache、およびPHPをインストールしたサーバーにZabbixをインストールする必要があります。 非rootユーザーとしてこのマシンにログインします。

ssh sammy@zabbix_server_ip_address

Zabbixはデフォルトではパッケージマネージャーで使用できないため、CentOSのofficial Zabbix repositoryを使用してリポジトリ構成パッケージをインストールします。 このチュートリアルでは、Zabbixのバージョン4.2を使用します。

sudo rpm -Uvh https://repo.zabbix.com/zabbix/4.2/rhel/7/x86_64/zabbix-release-4.2-1.el7.noarch.rpm

次の出力が表示されます。

OutputRetrieving https://repo.zabbix.com/zabbix/4.2/rhel/7/x86_64/zabbix-release-4.2-1.el7.noarch.rpm
warning: /var/tmp/rpm-tmp.WXsYNB: Header V4 RSA/SHA512 Signature, key ID a14fe591: NOKEY
Preparing...                          ################################# [100%]
Updating / installing...
   1:zabbix-release-4.2-1.el7         ################################# [100%]

現在有効になっているリポジトリのすべてのエントリをキャッシュからクリアします。

sudo yum clean all

次に、MySQLデータベースをサポートするZabbixサーバーとWebフロントエンドをインストールします。

sudo yum install zabbix-server-mysql zabbix-web-mysql

インストールプロセス中に、GPGキーのインポートについて尋ねられます。 このキーは、インストールするパッケージの信頼性を検証します。 インストールを完了できるようにするには、yと入力し、プロンプトが表示されたら%(​​t1)sを押して、GPGキーを受け入れます。

また、Zabbixサーバーのステータス自体に関するデータを収集できるZabbixエージェントをインストールします。

sudo yum install zabbix-agent

Zabbixを使用する前に、Zabbixサーバーがエージェントから収集するデータを保持するデータベースを設定する必要があります。 次のステップでこれを行うことができます。

[[step-2 -—- configuring-the-mysql-database-for-zabbix]] ==ステップ2—Zabbix用のMySQLデータベースの構成

新しいMySQLデータベースを作成し、Zabbixに適したデータベースにするために、いくつかの基本情報を入力する必要があります。 また、このデータベースに特定のユーザーを作成して、ZabbixがrootアカウントでMySQLにログインしないようにします。

MySQLサーバーのインストール中に設定したrootパスワードを使用して、rootユーザーとしてMySQLにログインします。

mysql -uroot -p

UTF-8文字をサポートするZabbixデータベースを作成します。

create database zabbix character set utf8 collate utf8_bin;

次に、Zabbixサーバーが使用するユーザーを作成し、新しいデータベースへのアクセスを許可し、ユーザーのパスワードを設定します。

grant all privileges on zabbix.* to zabbix@localhost identified by 'your_zabbix_mysql_password';

次に、これらの新しい許可を適用します。

flush privileges;

ユーザーとデータベースの面倒を見てくれます。 データベースコンソールを終了します。

quit;

次に、初期スキーマとデータをインポートします。 Zabbixのインストールにより、これを設定するファイルが提供されました。

次のコマンドを実行してスキーマを設定し、データをzabbixデータベースにインポートします。 ファイル内のデータは圧縮されているため、zcatを使用してください。

zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p zabbix

プロンプトが表示されたら、構成したzabbixMySQLユーザーのパスワードを入力します。

このコマンドは、成功した場合、エラーを出力しません。 エラーERROR 1045 (28000): Access denied for user zabbix@'localhost' (using password: YES)が表示された場合は、rootユーザーではなく、zabbixユーザーのパスワードを使用していることを確認してください。

Zabbixサーバーがこのデータベースを使用するためには、Zabbixサーバー設定ファイルでデータベースパスワードを設定する必要があります。 任意のテキストエディターで構成ファイルを開きます。 このチュートリアルでは、viを使用します。

sudo vi /etc/zabbix/zabbix_server.conf

[.note]#Note:テキストエディタviとその後継のvimの詳細については、Installing and Using the Vim Text Editor on a Cloud Serverチュートリアルをご覧ください。

ファイルの次のセクションを探します。

/etc/zabbix/zabbix_server.conf

...
### Option: DBPassword
#       Database password. Ignored for SQLite.
#       Comment this line if no password is used.
#
# Mandatory: no
# Default:
# DBPassword=
...

ファイル内のこれらのコメントは、データベースへの接続方法を説明しています。 ファイル内のDBPassword値をデータベースユーザーのパスワードに設定する必要があります。 iを押して挿入モードに入り、DBPassword=のコメントを解除し、パスワードを追加してデータベースを構成します。

/etc/zabbix/zabbix_server.conf

...
# Mandatory: no
# Default
DBPassword=your_zabbix_mysql_password
...

終了したら、ESCを押して挿入モードを終了し、次に:wqENTERを押してファイルを保存して終了します。

これにより、Zabbixサーバーの設定が処理されます。 次に、Zabbix Webインターフェースが適切に機能するように、PHPのセットアップにいくつかの変更を加えます。

[[step-3 -—- configuring-php-for-zabbix]] ==ステップ3—Zabbix用のPHPの設定

ZabbixウェブインターフェースはPHPで書かれており、いくつかの特別なPHPサーバー設定が必要です。 Zabbixのインストールプロセスにより、これらの設定を含むApache設定ファイルが作成されました。 このファイルに小さな変更を加える必要があるので、次のようにして開きます。

sudo vi /etc/httpd/conf.d/zabbix.conf

このファイルには、Zabbix Webインターフェースに必要な要件を満たすPHP設定が含まれています。 ただし、タイムゾーン設定はデフォルトでコメント化されています。 Zabbixが正しい時間を使用していることを確認するには、適切なタイムゾーンを設定する必要があります。

/etc/httpd/conf.d/zabbix.conf

...

    php_value max_execution_time 300
    php_value memory_limit 128M
    php_value post_max_size 16M
    php_value upload_max_filesize 2M
    php_value max_input_time 300
    php_value max_input_vars 10000
    php_value always_populate_raw_post_data -1
    # php_value date.timezone Europe/Riga

前のコードブロックで強調表示されているタイムゾーンの行のコメントを解除し、タイムゾーンに変更します。 このlist of supported time zonesを使用して、適切なものを見つけることができます。 次に、ファイルを保存して閉じます。

次に、Apacheを再起動して、これらの新しい設定を適用します。

sudo systemctl restart httpd

[.note]#Note: SELinuxが強制モードで実行されている場合、Zabbixエージェントが自由に動作できるようにするには、sudo setenforce 0コマンドを使用してSELinuxを許容モードにする必要があります。 this tutorialを使用して、Security Enhanced Linux制御メカニズムに関する詳細情報を取得できます。

これで、Zabbixサーバーとエージェントを起動できます。

sudo systemctl start zabbix-server
sudo systemctl start zabbix-agent

次に、Zabbixサーバーが正常に実行されているかどうかを確認します。

sudo systemctl status zabbix-server

次のステータスが表示されます。

Output● zabbix-server.service - Zabbix Server
   Loaded: loaded (/usr/lib/systemd/system/zabbix-server.service; disabled; vendor preset: disabled)
   Active: active (running) since Fri 2019-05-03 05:57:29 UTC; 2s ago
  Process: 4461 ExecStart=/usr/sbin/zabbix_server -c $CONFFILE (code=exited, status=0/SUCCESS)
  ...

最後に、サーバーとエージェントを起動時に起動できるようにします。

sudo systemctl enable zabbix-server
sudo systemctl enable zabbix-agent

サーバーがセットアップされ、データベースに接続されます。 次に、Webフロントエンドをセットアップします。

[.note]#Note:「前提条件」セクションで説明したように、サーバーでSSL / TLSを有効にすることをお勧めします。 今すぐthis tutorialをフォローして、CentOS7でApacheの無料SSL証明書を取得できます。 SSL / TLS証明書を取得したら、戻ってこのチュートリアルを完了することができます。

[[step-4 -—- configuring-settings-for-the-zabbix-web-interface]] ==ステップ4— ZabbixWebインターフェースの設定を構成する

Webインターフェースでは、レポートを表示し、監視するホストを追加できますが、使用する前に初期設定が必要です。 ブラウザを起動し、アドレスhttp://zabbix_server_name/zabbix/に移動します。 最初の画面に、ようこそメッセージが表示されます。 続行するには、Next stepをクリックしてください。

次の画面で、Zabbixを実行するためのすべての前提条件をリストした表が表示されます。

Prerequisites

このテーブルのすべての値はOKである必要があるため、そうであることを確認してください。 必ず下にスクロールして、すべての前提条件を確認してください。 すべての準備が整ったことを確認したら、Next stepをクリックして続行します。

次の画面では、データベース接続情報を求められます。

DB Connection

データベースについてZabbixサーバーに伝えましたが、Zabbix Webインターフェイスは、ホストを管理してデータを読み取るためにデータベースにアクセスする必要もあります。 したがって、ステップ2で構成したMySQL資格情報を入力し、Next stepをクリックして続行します。

次の画面で、オプションをデフォルト値のままにすることができます。

Zabbix Server Details

Nameはオプションです。複数の監視サーバーがある場合に、1つのサーバーを別のサーバーと区別するためにWebインターフェースで使用されます。 Next stepをクリックして続行します。

次の画面にインストール前の概要が表示されるため、すべてが正しいことを確認できます。

Summary

Next stepをクリックして、最終画面に進みます。

Webインターフェイスのセットアップが完了しました。 このプロセスにより、将来バックアップして使用できる構成ファイル/etc/zabbix/web/zabbix.conf.phpが作成されます。 Finishをクリックして、ログイン画面に進みます。 デフォルトのユーザーはAdminで、パスワードはzabbixです。

ログインする前に、2番目のCentOSサーバーでZabbixエージェントをセットアップします。

[[ステップ-5 ---- installing-and-configuring-the-zabbix-agent]] ==ステップ5—Zabbixエージェントのインストールと設定

次に、Zabbixサーバーに監視データを送信するエージェントソフトウェアを設定する必要があります。

2番目のCentOSサーバーにログインします。

ssh sammy@second_centos_server_ip_address

次に、Zabbixサーバーと同様に、次のコマンドを実行してリポジトリ設定パッケージをインストールします。

sudo rpm -Uvh https://repo.zabbix.com/zabbix/4.2/rhel/7/x86_64/zabbix-release-4.2-1.el7.noarch.rpm

次に、yumキャッシュをクリアします。

sudo yum clean all

次に、Zabbixエージェントをインストールします。

sudo yum install zabbix-agent

インストールプロセス中に、GPGキーのインポートについて尋ねられます。 インストールが完了するように確認してください。

Zabbixは証明書ベースの暗号化をサポートしていますが、認証局の設定はこのチュートリアルの範囲外です。 代わりに、このチュートリアルでは、pre-shared keys(PSK)を使用してサーバーとエージェント間の接続を保護します。

まず、PSKを生成します。

sudo sh -c "openssl rand -hex 32 > /etc/zabbix/zabbix_agentd.psk"

キーを表示して、どこかにコピーできるようにします。 ホストを構成するために必要になります。

cat /etc/zabbix/zabbix_agentd.psk

キーは次のようになります。

Outputa4374c8c3b55de472225dbf96aa7cd3ce6a34abc95d0eb2a601d954ee0cd4410

Zabbixエージェントの設定を編集して、Zabbixサーバーへの安全な接続を設定します。 テキストエディターでエージェント構成ファイルを開きます。

sudo vi /etc/zabbix/zabbix_agentd.conf

このファイル内の各設定は、ファイル全体の有益なコメントを介して文書化されますが、編集する必要があるのはそれらの一部のみです。

最初に、ZabbixサーバーのIPアドレスを編集する必要があります。 次のセクションを見つけます。

/etc/zabbix/zabbix_agentd.conf

...
### Option: Server
#       List of comma delimited IP addresses (or hostnames) of Zabbix servers.
#       Incoming connections will be accepted only from the hosts listed here.
#       If IPv6 support is enabled then '127.0.0.1', '::127.0.0.1', '::ffff:127.0.0.1' are treated equally.
#
# Mandatory: no
# Default:
# Server=

Server=127.0.0.1
...

デフォルト値をZabbixサーバーのIPに変更します。

/etc/zabbix/zabbix_agentd.conf

...
# Mandatory: no
# Default:
# Server=

Server=zabbix_server_ip_address
...

次に、Zabbixサーバーへの安全な接続を設定し、事前共有キーのサポートを有効にするセクションを見つけます。 次のようなTLSConnectセクションを見つけます。

/etc/zabbix/zabbix_agentd.conf

...
### Option: TLSConnect
#       How the agent should connect to server or proxy. Used for active checks.
#       Only one value can be specified:
#               unencrypted - connect without encryption
#               psk         - connect using TLS and a pre-shared key
#               cert        - connect using TLS and a certificate
#
# Mandatory: yes, if TLS certificate or PSK parameters are defined (even for 'unencrypted' connection)
# Default:
# TLSConnect=unencrypted
...

次に、TLSConnect=のコメントを解除し、unencryptedpskに置き換えて、事前共有キーのサポートを構成します。

/etc/zabbix/zabbix_agentd.conf

...
TLSConnect=psk
...

次に、次のようなTLSAcceptセクションを見つけます。

/etc/zabbix/zabbix_agentd.conf

...
### Option: TLSAccept
#       What incoming connections to accept.
#       Multiple values can be specified, separated by comma:
#               unencrypted - accept connections without encryption
#               psk         - accept connections secured with TLS and a pre-shared key
#               cert        - accept connections secured with TLS and a certificate
#
# Mandatory: yes, if TLS certificate or PSK parameters are defined (even for 'unencrypted' connection)
# Default:
# TLSAccept=unencrypted
...

TLSAccept=のコメントを解除し、pskを追加して、事前共有キーをサポートするように着信接続を構成します。

/etc/zabbix/zabbix_agentd.conf

...
TLSAccept=psk
...

次に、次のようなTLSPSKIdentityセクションを見つけます。

/etc/zabbix/zabbix_agentd.conf

...
### Option: TLSPSKIdentity
#       Unique, case sensitive string used to identify the pre-shared key.
#
# Mandatory: no
# Default:
# TLSPSKIdentity=
...

TLSPSKIdentity=のコメントを解除し、強調表示されたコードを追加して、事前共有キーを識別する一意の名前を選択します。

/etc/zabbix/zabbix_agentd.conf

...
TLSPSKIdentity=PSK 001
...

Zabbix Webインターフェースを介してホストを追加するときに、これをPSK IDとして使用します。

次に、以前に作成した事前共有キーを指すオプションを設定します。 TLSPSKFileオプションを見つけます。

/etc/zabbix/zabbix_agentd.conf

...
### Option: TLSPSKFile
#       Full pathname of a file containing the pre-shared key.
#
# Mandatory: no
# Default:
# TLSPSKFile=
...

TLSPSKFile=のコメントを解除し、このテキストを追加して、Zabbixエージェントが作成したPSKファイルを指すようにします。

/etc/zabbix/zabbix_agentd.conf

...
TLSPSKFile=/etc/zabbix/zabbix_agentd.psk
...

ファイルを保存して閉じます。 これで、Zabbixエージェントを起動して、起動時に起動するように設定できます。

sudo systemctl start zabbix-agent
sudo systemctl enable zabbix-agent

適切な測定のために、Zabbixエージェントが正しく実行されていることを確認します。

sudo systemctl status zabbix-agent

次のステータスが表示され、エージェントが実行されていることが示されます。

Output● zabbix-agent.service - Zabbix Agent
   Loaded: loaded (/usr/lib/systemd/system/zabbix-agent.service; enabled; vendor preset: disabled)
   Active: active (running) since Fri 2019-05-03 06:25:06 UTC; 28s ago
  ...

エージェントは、サーバーからの接続をポート10050でリッスンします。 特定のIPアドレスまたはサブネットからのアクセスを構成するには、firewalldrich rule機能を使用します。

sudo firewall-cmd --permanent --zone=public --add-rich-rule='rule family="ipv4" source address="zabbix_server_ip_address/32" port protocol="tcp" port="10050" accept'

豊富なルールを使用すると、より複雑でカスタマイズ可能なfirewalldルールを作成して、ファイアウォールをより細かく制御できます。 このコマンドでは、ZabbixサーバーのIPアドレスとして設定したソースからのipv4トラフィックを受け入れるルールを2番目のCentOSサーバーのport10050に追加します。 。

次に、firewalldをリロードして、新しいルールをアクティブにします。

sudo firewall-cmd --reload

これで、エージェントは接続を受け入れてデータをZabbixサーバーに送信する準備ができました。 ただし、それを使用するには、サーバーのウェブコンソールからリンクする必要があります。 次のステップでは、構成を完了します。

[[step-6 --- add-the-new-host-to-the-zabbix-server]] ==ステップ6—新しいホストをZabbixサーバーに追加する

監視するサーバーにエージェントをインストールすることは、プロセスの半分だけです。 監視する各ホストは、Zabbixサーバーに登録する必要があります。これは、Webインターフェースから実行できます。

アドレスhttp://zabbix_server_name/zabbix/に移動して、ZabbixサーバーのWebインターフェイスにログインします。

The Zabbix login screen

ログインしたら、上部のナビゲーションバーでConfigurationをクリックしてから、Hostsをクリックします。 次に、画面の右上隅にあるCreate hostボタンをクリックします。 これにより、ホスト構成ページが開きます。

Creating a host

2番目のCentOSサーバーのホスト名とIPアドレスを反映するようにHost nameIP addressを調整してから、ホストをグループに追加します。 Linux serversなどの既存のグループを選択するか、独自のグループを作成できます。 ホストは複数のグループに属することができます。 これを行うには、Groupsフィールドに既存または新規のグループの名前を入力し、提案されたリストから目的の値を選択します。

グループを追加したら、[Templates]タブをクリックします。

Adding a template to the host

[Search]フィールドにTemplate OS Linuxと入力し、検索バーのすぐ下にあるAddをクリックして、このテンプレートをホストに追加します。

次に、Encryptionタブに移動します。 Connections to hostConnections from hostの両方でPSKを選択し、Connections from hostNo encryptionのチェックを外します。 次に、PSK identityPSK 001に設定します。これは、前に構成したZabbixエージェントのTLSPSKIdentity設定の値です。 次に、PSK値をZabbixエージェント用に生成したキーに設定します。 これは、エージェントマシンのファイル/etc/zabbix/zabbix_agentd.pskに保存されているものです。

Setting up the encryption

最後に、フォームの下部にあるAddボタンをクリックして、ホストを作成します。

リストに新しいホストが表示されます。 少し待ってからページをリロードして、すべてが正常に機能し、接続が暗号化されていることを示す緑色のラベルを確認します。

Zabbix shows your new host

追加のサーバーを監視する必要がある場合は、各ホストにログインし、Zabbixエージェントをインストールし、PSKを生成し、エージェントを設定し、最初のホストを追加するための手順と同じ手順に従って、ホストをWebインターフェースに追加します。

Zabbixサーバーは、2番目のCentOSサーバーを監視しています。 次に、電子メール通知を設定して、問題が通知されるようにします。

[[step-7 -—- configuring-email-notifications]] ==ステップ7—電子メール通知の構成

Zabbixは、電子メール、Jabber、SMSなどのいくつかのタイプの通知を自動的にサポートします。 TelegramやSlackなどの代替通知方法を使用することもできます。 統合hereの完全なリストを確認できます。

最も簡単な通信方法は電子メールです。このチュートリアルでは、このメディアタイプの通知を構成します。

上部のナビゲーションバーでAdministrationをクリックしてから、Media typesをクリックします。 すべてのメディアタイプのリストが表示されます。 Emailをクリックします。

電子メールサービスによって提供される設定に従って、SMTPオプションを調整します。 このチュートリアルでは、GmailのSMTP機能を使用してメール通知を設定します。これを設定する方法の詳細については、How To Use Google’s SMTP Serverを参照してください。

[.note]#Note: Gmailで2段階認証プロセスを使用する場合は、Zabbixのアプリパスワードを生成する必要があります。 覚えておく必要はありません。セットアップ中にアプリのパスワードを入力する必要があるのは1回だけです。 このパスワードを生成する方法の説明は、Google Help Center
#にあります。

メッセージ形式(htmlまたはプレーンテキスト)を選択することもできます。 最後に、フォームの下部にあるUpdateボタンをクリックして、電子メールパラメータを更新します。

Setting up email

次に、新しいユーザーを作成します。 上部のナビゲーションバーでAdministrationをクリックしてから、Usersをクリックします。 ユーザーのリストが表示されます。 次に、画面の右上隅にあるCreate userボタンをクリックします。 これにより、ユーザー構成ページが開きます。

Creating a user

Aliasフィールドに新しいユーザー名を入力し、新しいパスワードを設定します。 次に、ユーザーを管理者のグループに追加します。 GroupsフィールドにZabbix administratorsと入力し、提案されたリストから選択します。

グループを追加したら、Mediaタブをクリックし、Addの下線付きリンクをクリックします。 ポップアップウィンドウが表示されます。

Adding an email

Send toフィールドにメールアドレスを入力します。 残りのオプションはデフォルト値のままにしておくことができます。 下部にあるAddボタンをクリックして送信します。

次に、Permissionsタブに移動します。 User typeドロップダウンメニューからZabbix Super Adminを選択します。

最後に、フォームの下部にあるAddボタンをクリックして、ユーザーを作成します。

次に、通知を有効にする必要があります。 Configurationタブをクリックしてから、上部のナビゲーションバーのActionsをクリックします。 すべてのZabbix管理者に通知を送信する事前設定されたアクションが表示されます。 名前をクリックして、設定を確認および変更できます。 このチュートリアルでは、デフォルトのパラメーターを使用します。 アクションを有効にするには、Status列の赤いDisabledリンクをクリックします。

これで、アラートを受信する準備が整いました。 次のステップでは、通知設定をテストするために生成します。

[[step-8 -—- generate-a-test-alert]] ==ステップ8—テストアラートの生成

この手順では、テストアラートを生成して、すべてが接続されていることを確認します。 デフォルトでは、Zabbixはサーバーの空きディスク容量を追跡します。 すべてのディスクマウントを自動的に検出し、対応するチェックを追加します。 このディスカバリーは1時間ごとに実行されるため、通知がトリガーされるまでしばらく待つ必要があります。

Zabbixのファイルシステム使用状況アラートをトリガーするのに十分な大きさの一時ファイルを作成します。 これを行うには、まだ接続していない場合は2番目のCentOSサーバーにログインします。

ssh sammy@second_centos_server_ip_address

次に、サーバー上の空き容量を確認します。 dfコマンドを使用して、以下を確認できます。

df -h

コマンドdfは、ファイルシステムのディスク容量の使用状況を報告し、-hは、出力を人間が読める形式にします。 次のような出力が表示されます。

OutputFilesystem      Size  Used Avail Use% Mounted on
/dev/vda1        25G  958M   25G   4% /

この場合、空き領域は25GBです。 空き容量は異なる場合があります。

fallocateコマンドを使用すると、ファイルにスペースを事前に割り当てたり、割り当てを解除したりして、使用可能なディスクスペースの80%以上を占めるファイルを作成できます。 これはアラートをトリガーするのに十分です:

fallocate -l 20G /tmp/temp.img

約1時間後、Zabbixは空きディスク容量に関するアラートをトリガーし、設定したアクションを実行して通知メッセージを送信します。 Zabbixサーバーからのメッセージを受信ボックスで確認できます。 次のようなメッセージが表示されます。

Problem started at 10:49:25 on 2019.05.03
Problem name: Free disk space is less than 20% on volume /
Host: Second Centos Server
Severity: Warning

Original problem ID: 34

また、Monitoringタブに移動し、次にDashboardに移動して、通知とその詳細を表示することもできます。

Main dashboard

アラートが機能していることがわかったので、作成した一時ファイルを削除して、ディスク容量を再利用できるようにします。

rm -f /tmp/temp.img

しばらくすると、Zabbixが回復メッセージを送信し、アラートがメインダッシュボードから消えます。

結論

このチュートリアルでは、サーバーの状態を監視するのに役立つシンプルで安全な監視ソリューションを設定します。 問題を警告できるようになり、ITインフラストラクチャで発生するプロセスを分析する機会が得られます。

監視インフラストラクチャの設定の詳細については、How To Install Elasticsearch, Logstash, and Kibana (Elastic Stack) on CentOS 7およびHow To Gather Infrastructure Metrics with Metricbeat on CentOS 7を確認してください。