ウェブサイト検索

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


CentOS 7を使用していませんか?別のバージョンまたはディストリビューションを選択してください。

著者は「Write for DOnations」プログラムの一環として寄付を受けるためにオープンソースイニシアチブを選びました。

紹介

Zabbixは、ネットワークとアプリケーションのためのオープンソースの監視ソフトウェアです。これは、サーバー、仮想マシン、ネットワーク機器、ウェブアプリケーションから収集された数千のメトリクスのリアルタイム監視を提供します。これらのメトリクスは、ITインフラの現在の健康状態を判断し、顧客が不満を言う前にハードウェアやソフトウェアコンポーネントの問題を検出するのに役立ちます。役立つ情報はデータベースに保存されるため、時間をかけてデータを分析し、提供されるサービスの品質を向上させたり、設備のアップグレードを計画したりすることができます。

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

Zabbixサーバーは、MySQL、PostgreSQL、またはOracleによって提供されるリレーショナルデータベースにデータを保存します。また、ElasticsearchやTimescaleDBのようなNoSQLデータベースに履歴データを保存することもできます。Zabbixは、データを表示しシステム設定を構成するためのウェブインターフェースを提供しています。

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

前提条件

このチュートリアルに従うためには、次のものが必要です:

  • CentOS 7の初期サーバー設定に従って設定された2台のCentOS 7サーバーには、sudo権限を持つ非ルートユーザーとファイアウォールが含まれています。1台のサーバーにはZabbixをインストールします。このチュートリアルでは、これをZabbixサーバーと呼びます。それはあなたの2台目のサーバーを監視します。この2台目のサーバーは、2台目のCentOSサーバーと呼ばれます。
  • ZabbixサーバーにはApache、MySQL、PHPが必要です。CentOS 7にLinux、Apache、MySQL、PHP(LAMP)スタックをインストールする方法に従って、これらをZabbixサーバーに設定してください。

注: CentOSはMySQLの代わりにMariaDBを使用していますが、このチュートリアルに従う際に問題は発生しません。

さらに、Zabbixサーバーを使用して、無断のユーザーにアクセスしてほしくないインフラに関する貴重な情報にアクセスするため、TLS/SSL証明書をインストールしてサーバーのセキュリティを保つことが重要です。これは任意ですが、強く推奨されます。無料のTLS/SSL証明書を取得するために、CentOS 7のLet’s Encryptガイドに従うことができます。

ステップ1 — Zabbixサーバーのインストール

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

  1. ssh sammy@zabbix_server_ip_address

Zabbixはデフォルトではパッケージマネージャーに含まれていないため、CentOSの公式Zabbixリポジトリを使用してリポジトリ設定パッケージをインストールします。このチュートリアルでは、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

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

Retrieving 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サーバーとウェブフロントエンドをインストールします:

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

インストールプロセス中に、GPG鍵のインポートに関して質問されます。この鍵は、あなたがインストールしているパッケージの真正性を確認します。インストールを完了させるために、促されたときにyと入力し、ENTERを押してGPG鍵を受け入れてください。

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

sudo yum install zabbix-agent

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

ステップ2 — ZabbixのためのMySQLデータベースの設定

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

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

  1. mysql -uroot -p

UTF-8文字サポートを持つZabbixデータベースを作成してください:

  1. create database zabbix character set utf8 collate utf8_bin;

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

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

それでは、新しい権限を適用してください:

  1. flush privileges;

それはユーザーとデータベースの管理を行います。データベースコンソールから退出します:

  1. quit;

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

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

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

zabbix MySQLユーザーのパスワードを、表示されたときに設定したものを入力してください。

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

Zabbixサーバーがこのデータベースを使用できるようにするには、Zabbixサーバーの設定ファイルにデータベースのパスワードを設定する必要があります。好みのテキストエディタで設定ファイルを開いてください。このチュートリアルではviを使用します:

sudo vi /etc/zabbix/zabbix_server.conf

注意: テキストエディタviおよびその後継であるvimについて詳しく知りたい場合は、私たちのCloud Server上でのVimテキストエディタのインストールと使用に関するチュートリアルをご覧ください。

ファイルの次のセクションを探してください:

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

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

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

完了したら、挿入モードを終了するためにESCを押し、その後:wqとENTERを押してファイルを保存して終了してください。

これでZabbixサーバーの設定は完了です。次に、Zabbixウェブインターフェイスが正常に動作するようにPHPの設定をいくつか変更します。

ステップ3 — ZabbixのためのPHPの設定

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

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

このファイルには、Zabbixウェブインターフェースに必要なPHP設定が含まれています。しかし、タイムゾーン設定はデフォルトでコメントアウトされています。Zabbixが正しい時間を使用するためには、適切なタイムゾーンを設定する必要があります。

...
<IfModule mod_php5.c>
    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
</IfModule>

前のコードブロックで強調表示されたタイムゾーンの行のコメントを外し、あなたのタイムゾーンに変更してください。このサポートされているタイムゾーンのリストを使って、自分に合ったものを見つけることができます。そして、ファイルを保存して閉じてください。

これらの新しい設定を適用するために、Apacheを再起動してください:

sudo systemctl restart httpd

注意: SELinuxが強制モードで実行されている場合、sudo setenforce 0コマンドを使用して、Zabbixエージェントが自由に動作できるように許可モードに変更する必要があります。このチュートリアルを使用して、セキュリティ強化Linuxコントロールメカニズムに関する詳細情報を取得できます。

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

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

次に、Zabbixサーバーが正しく動作しているかどうかを確認してください:

sudo systemctl status zabbix-server

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

● 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)
  ...

最後に、サーバーとエージェントがブート時に起動するようにします:

  1. sudo systemctl enable zabbix-server
  2. sudo systemctl enable zabbix-agent

サーバーは設定され、データベースに接続されています。次に、ウェブフロントエンドを設定してください。

注意: 前提条件セクションで述べたように、サーバーでSSL/TLSを有効にすることをお勧めします。CentOS 7のApache用に無料のSSL証明書を取得するために、このチュートリアルを今すぐフォローできます。SSL/TLS証明書を取得したら、戻ってきてこのチュートリアルを完了できます。

ステップ4 — Zabbixウェブインターフェースの設定を構成する

ウェブインターフェースを使用すると、レポートを表示し、監視したいホストを追加できますが、使用するには初期設定が必要です。ブラウザを起動し、アドレスhttp://zabbix_server_name/zabbix/にアクセスしてください。最初の画面にはウェルカムメッセージが表示されます。次のステップをクリックして続けてください。

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

この表のすべての値はOKでなければなりませんので、それを確認してください。すべての前提条件を確認するために、必ず下にスクロールしてすべてを見てください。すべてが準備完了であることを確認したら、次のステップをクリックして進んでください。

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

Zabbixサーバーにデータベースの情報を伝えましたが、Zabbixウェブインターフェースもホストを管理しデータを読み取るためにデータベースへのアクセスが必要です。そのため、ステップ2で設定したMySQLの認証情報を入力し、次のステップをクリックして進んでください。

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

名前はオプションです; 複数の監視サーバーがある場合、Webインターフェースでサーバーを区別するために使用されます。続行するには次のステップをクリックしてください。

次の画面では、すべてが正しいことを確認できるように、プレインストールの要約が表示されます。

次のステップをクリックして、最終画面に進んでください。

ウェブインターフェースの設定は完了しました。このプロセスでは、設定ファイル /etc/zabbix/web/zabbix.conf.php が作成されます。これをバックアップして将来使用できます。終了 をクリックしてログイン画面に進んでください。デフォルトのユーザーは Admin で、パスワードは zabbix です。

ログインする前に、2台目のCentOSサーバーにZabbixエージェントを設定してください。

ステップ5 — Zabbixエージェントのインストールと構成

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

二番目のCentOSサーバーにログインします:

  1. ssh sammy@second_centos_server_ip_address

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

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

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

  1. sudo yum clean all

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

  1. sudo yum install zabbix-agent

インストールプロセス中に、GPG鍵のインポートについて尋ねられます。それを確認してください、そうすればインストールを完了できるようになります。

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

まず、PSKを生成してください:

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

キーを表示してどこかにコピーできるようにしてください。ホストの設定にそれが必要です。

  1. cat /etc/zabbix/zabbix_agentd.psk

鍵はこのようなものになるでしょう:

a4374c8c3b55de472225dbf96aa7cd3ce6a34abc95d0eb2a601d954ee0cd4410

次に、Zabbixエージェントの設定を編集して、Zabbixサーバーとの安全な接続を設定します。テキストエディタでエージェントの設定ファイルを開いてください:

  1. sudo vi /etc/zabbix/zabbix_agentd.conf

このファイル内の各設定は、ファイル全体にわたる情報コメントによって文書化されていますが、一部だけを編集すればよいです。

まず、ZabbixサーバーのIPアドレスを編集する必要があります。次のセクションを見つけてください:

...
### 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に変更してください:

...
Mandatory: no
Default:
Server=

Server=zabbix_server_ip_address
...

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

...
### 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= のコメントを外し、unencrypted を psk に置き換えて、プリアシェアードキーサポートを設定します:

...
TLSConnect=psk
...

次に、次のようなセクションを見つけてください:

...
### 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を追加して、受信接続を構成します:

...
TLSAccept=psk
...

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

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

事前共有鍵を識別するためのユニークな名前を選択するには、TLSPSKIdentity=のコメントを外し、ハイライトされたコードを追加してください:

...
TLSPSKIdentity=PSK 001
...

ホストをZabbixウェブインターフェイスを通じて追加する際に、これをPSK IDとして使用します。

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

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

次のテキストを追加して、Zabbixエージェントが作成したPSKファイルを指すようにするには、TLSPSKFile=のコメントを解除してください:

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

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

  1. sudo systemctl start zabbix-agent
  2. sudo systemctl enable zabbix-agent

念のため、Zabbixエージェントが正しく動作していることを確認してください。

  1. sudo systemctl status zabbix-agent

次のステータスが表示され、エージェントが実行中であることを示します。

● 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アドレスやサブネットからのアクセスを設定するには、firewalldのリッチルール機能を使用してください:

  1. 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サーバーのport 10050に追加しています。

次に、新しいルールを有効にするためにfirewalldを再読み込みします:

  1. sudo firewall-cmd --reload

あなたのエージェントは現在、接続を受け入れ、Zabbixサーバーにデータを送信する準備が整いました。しかし、それを使用するには、サーバーのWebコンソールからリンクする必要があります。次のステップでは、設定を完了します。

ステップ6 — 新しいホストをZabbixサーバーに追加する

監視したいサーバーにエージェントをインストールすることはプロセスの半分に過ぎません。監視したい各ホストはZabbixサーバーに登録する必要があり、これはウェブインターフェースを通じて行うことができます。

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

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

ホスト名とIPアドレスを、あなたの第二のCentOSサーバーのホスト名とIPアドレスに合わせて調整してから、ホストをグループに追加します。既存のグループ(例:Linuxサーバー)を選択するか、自分自身のグループを作成することができます。ホストは複数のグループに所属することができます。これを行うには、グループフィールドに既存または新規のグループ名を入力し、提案されたリストから希望の値を選択します。

グループを追加したら、テンプレートタブをクリックしてください。

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

次に、暗号化タブに移動します。ホストへの接続およびホストからの接続の両方についてPSKを選択し、ホストからの接続については暗号化なしのチェックを外します。そして、PSK IDをPSK 001に設定します。これは、以前に構成したZabbixエージェントのTLSPSKIdentity設定の値です。その後、PSKの値を、Zabbixエージェント用に生成したキーに設定します。それは、エージェントマシンのファイル/etc/zabbix/zabbix_agentd.pskに保存されています。

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

新しいホストがリストに表示されます。1分待ってページをリロードすると、すべてが正常に動作しており、接続が暗号化されていることを示す緑のラベルが表示されます。

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

Zabbixサーバーは現在、あなたの2台目のCentOSサーバーを監視しています。今度は、問題について通知を受けるためのメール通知を設定してください。

ステップ7 — email通知の設定

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

最も簡単なコミュニケーション手段はメールです。このチュートリアルでは、このメディアタイプの通知を設定します。

管理をクリックし、次に上部ナビゲーションバーのメディアタイプをクリックしてください。すべてのメディアタイプのリストが表示されます。メールをクリックしてください。

メールサービスによって提供された設定に従ってSMTPオプションを調整します。このチュートリアルでは、GmailのSMTP機能を使用してメール通知を設定します。設定方法の詳細については、「GoogleのSMTPサーバーの使用方法」をご覧ください。

注意: Gmailで2段階認証を使用している場合、Zabbix用のアプリパスワードを生成する必要があります。これを覚えておく必要はなく、セットアップ中にアプリパスワードを一度入力するだけで済みます。このパスワードの生成方法についての手順はGoogleヘルプセンターにあります。

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

今、新しいユーザーを作成してください。上部ナビゲーションバーの管理をクリックし、次にユーザーをクリックします。ユーザーのリストが表示されます。その後、画面右上隅にあるユーザー作成ボタンをクリックします。これにより、ユーザー設定ページが開きます。

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

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

送信先フィールドにメールアドレスを入力してください。他のオプションはデフォルトの値のままでかまいません。下部の追加ボタンをクリックして送信してください。

今、権限タブに移動します。ユーザータイプのドロップダウンメニューからZabbix スーパーユーザーを選択します。

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

通知を有効にする必要があります。設定タブをクリックし、次にトップナビゲーションバーのアクションをクリックします。すべてのZabbix管理者に通知を送信する責任のある事前設定されたアクションが表示されます。その名前をクリックすることで、設定を確認し変更できます。このチュートリアルの目的のために、デフォルトのパラメータを使用してください。アクションを有効にするには、ステータス列の赤い無効リンクをクリックします。

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

ステップ8 — テストアラートの生成

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

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

  1. ssh sammy@second_centos_server_ip_address

次に、サーバーにどれだけの空き容量があるかを確認してください。dfコマンドを使用して調べることができます:

  1. df -h

コマンドdfはファイルシステムのディスクスペース使用状況を報告し、-hオプションを使用すると出力が人間が読みやすい形式になります。以下のような出力が表示されます:

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

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

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

  1. 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

「監視」タブに移動し、「ダッシュボード」を選択すると、通知とその詳細を見ることができます。

アラートが機能していることが分かったので、ディスクスペースを回収するために作成した一時ファイルを削除してください:

  1. rm -f /tmp/temp.img

1分後、Zabbixは回復メッセージを送信し、アラートはメインダッシュボードから消えます。

結論

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

監視インフラストラクチャの設定について詳しく学ぶには、「CentOS 7にElasticsearch、Logstash、Kibana(Elastic Stack)をインストールする方法」と「CentOS 7でMetricbeatを使用してインフラストラクチャメトリクスを収集する方法」をチェックしてください。

関連記事: