著者は、コンピューター歴史博物館を選択して、 Write forDOnationsプログラムの一環として寄付を受け取りました。

序章

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

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

Zabbixサーバーは、MySQLまたはPostgreSQLを搭載したリレーショナルデータベースにデータを保存します。 ElasticsearchTimescaleDBなどのNoSQLデータベースに履歴データを保存することもできます。 ZabbixはWebインターフェースを提供するため、データを表示したり、システム設定を構成したりできます。

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

前提条件

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

  • Ubuntu 20.04の初期サーバーセットアップガイドに従ってセットアップされた2つのUbuntu20.04サーバー。これには、sudo特権を持つ非rootユーザーとufwで構成されたファイアウォールが含まれます。 1台のサーバーにZabbixをインストールします。 このチュートリアルでは、これをZabbixサーバーと呼びます。 2番目のサーバーを監視します。 この2番目のサーバーは2番目のUbuntuサーバーと呼ばれます。

  • Zabbixサーバーを実行するサーバーには、Nginx、MySQL、およびPHPがインストールされている必要があります。 Ubuntu 20.04 LEMPスタックガイドのステップ1〜3に従って、Zabbixサーバーでそれらを構成します。

  • 登録されたドメイン名。 このチュートリアルでは、全体を通してyour_domainを使用します。 Namecheap からドメイン名を購入するか、 Freenom で無料でドメイン名を取得するか、選択したドメイン登録事業者を使用できます。

  • Zabbixサーバー用に設定された次のDNSレコードの両方。 DigitalOceanを使用している場合、それらを追加する方法の詳細については、DNSドキュメントを参照してください。

    • ZabbixサーバーのパブリックIPアドレスを指すyour_domainのAレコード。
    • ZabbixサーバーのパブリックIPアドレスを指すwww.your_domainのAレコード。

さらに、Zabbixサーバーは、許可されていないユーザーにアクセスさせたくないインフラストラクチャに関する貴重な情報にアクセスするために使用されるため、TLS/SSL証明書をインストールしてサーバーを安全に保つことが重要です。 これはオプションですが、強くお勧めします。 サーバーを保護したい場合は、このチュートリアルのステップ3の後、 Ubuntu20.04で暗号化しましょうガイドに従ってください。

ステップ1—Zabbixサーバーをインストールする

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

  1. ssh sammy@zabbix_server_ip_address

ZabbixはUbuntuのパッケージマネージャーで利用できますが、古くなっているため、公式Zabbixリポジトリを使用して最新の安定バージョンをインストールしてください。 リポジトリ構成パッケージをダウンロードしてインストールします。

wget https://repo.zabbix.com/zabbix/5.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_5.0-1+focal_all.deb
sudo dpkg -i zabbix-release_5.0-1+focal_all.deb

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

Output
Selecting previously unselected package zabbix-release. (Reading database ... 64058 files and directories currently installed.) Preparing to unpack zabbix-release_5.0-1+focal_all.deb ... Unpacking zabbix-release (1:5.0-1+focal) ... Setting up zabbix-release (1:5.0-1+focal) ...

パッケージインデックスを更新して、新しいリポジトリが含まれるようにします。

sudo apt update

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

sudo apt install zabbix-server-mysql zabbix-frontend-php

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

sudo apt install zabbix-agent

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

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

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

rootユーザーとしてMySQLにログインします。

  1. sudo mysql

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

  1. create database zabbix character set utf8 collate utf8_bin;

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

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

これでユーザーとデータベースが処理されます。 データベースコンソールを終了します。

  1. quit;

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

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

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

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

このコマンドの実行には1〜2分かかる場合があります。 エラーERROR 1045 (28000): Access denied for user ``zabbix``@'localhost' (using password: YES)が表示された場合は、zabbixユーザーに正しいパスワードを使用していることを確認してください。

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

sudo nano /etc/zabbix/zabbix_server.conf

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

/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値をデータベースユーザーのパスワードに設定する必要があります。 これらのコメントの後に次の行を追加して、データベースを構成します。

/etc/zabbix/zabbix_server.conf
...
DBPassword=your_zabbix_mysql_password
...

CTRL+XYENTERの順に押して、zabbix_server.confを保存して閉じます(nanoを使用している場合)。

これで、データベースに接続するようにZabbixサーバーを設定できました。 次に、Zabbixフロントエンドにサービスを提供するようにNginxWebサーバーを構成します。

ステップ3—Zabbix用のNginxの設定

Nginxを自動的に構成するには、自動構成パッケージをインストールします。

sudo apt install zabbix-nginx-conf

その結果、構成ファイル/etc/zabbix/nginx.confと、Nginx構成ディレクトリ/etc/nginx/conf.d/zabbix.confにそのファイルへのリンクが表示されます。

次に、このファイルに変更を加える必要があります。 構成ファイルを開きます。

sudo nano /etc/zabbix/nginx.conf

このファイルには、自動生成されたNginxサーバーブロック構成が含まれています。 サーバー名とサーバーがリッスンしているポートを決定する2行が含まれています。

/etc/zabbix/nginx.conf
server {
#        listen          80;
#        server_name     example.com;
...

2行のコメントを解除し、example.comをドメイン名に置き換えます。 設定は次のようになります。

/etc/zabbix/nginx.conf
server {
        listen          80;
        server_name     your_domain;
...

ファイルを保存して閉じます。 次に、テストしてNginxファイルに構文エラーがないことを確認し、構成をリロードします。

  1. sudo nginx -t
  2. sudo nginx -s reload

NginxがZabbixフロントエンドにサービスを提供するように設定されたので、Zabbix Webインターフェイスが正しく機能するように、PHP設定にいくつかの変更を加えます。

注:前提条件のセクションで説明したように、サーバーでSSL/TLSを有効にすることをお勧めします。 これを行う場合は、 Ubuntu 20.04 Let’s Encryptチュートリアルに従ってから、ステップ4に進んでNginxの無料SSL証明書を取得してください。 このプロセスにより、Zabbixサーバーブロックが自動的に検出され、HTTPS用に構成されます。 SSL / TLS証明書を取得したら、戻ってこのチュートリアルを完了することができます。

ステップ4—Zabbix用のPHPの設定

Zabbix WebインターフェースはPHPで記述されており、特別なPHPサーバー設定が必要です。 Zabbixのインストールプロセスでは、これらの設定を含むPHP-FPM構成ファイルが作成されました。 これはディレクトリ/etc/zabbixにあり、PHP-FPMによって自動的にロードされます。 このファイルに小さな変更を加える必要があるので、次のように開きます。

  1. sudo nano /etc/zabbix/php-fpm.conf

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

/etc/zabbix/php-fpm.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[date.timezone] = Europe/Riga

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

次に、PHP-FPMを再起動して、次の新しい設定を適用します。

sudo systemctl restart php7.4-fpm.service

これで、Zabbixサーバーを起動できます。

sudo systemctl start zabbix-server

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

sudo systemctl status zabbix-server

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

Output
● zabbix-server.service - Zabbix Server Loaded: loaded (/lib/systemd/system/zabbix-server.service; disabled; vendor preset: enabled) Active: active (running) since Fri 2020-06-12 05:59:32 UTC; 36s ago Process: 27026 ExecStart=/usr/sbin/zabbix_server -c $CONFFILE (code=exited, status=0/SUCCESS) ...

最後に、サーバーが起動時に起動できるようにします。

  1. sudo systemctl enable zabbix-server

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

ステップ5—ZabbixWebインターフェースの設定を構成する

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

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

Prerequisites

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

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

DB Connection

Zabbixサーバーにデータベースについて説明しましたが、Zabbix Webインターフェイスは、ホストを管理してデータを読み取るためにデータベースにアクセスする必要もあります。 したがって、ステップ2で構成したMySQLクレデンシャルを入力します。 次のステップをクリックして続行します。

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

Zabbix Server Details

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

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

Summary

次のステップをクリックして、最終画面に進みます。

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

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

ステップ6—Zabbixエージェントのインストールと設定

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

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

  1. ssh sammy@second_ubuntu_server_ip_address

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

  1. wget https://repo.zabbix.com/zabbix/5.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_5.0-1+focal_all.deb
  2. sudo dpkg -i zabbix-release_5.0-1+focal_all.deb

次に、パッケージインデックスを更新します。

  1. sudo apt update

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

  1. sudo apt install zabbix-agent

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

まず、PSKを生成します。

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

catを使用してキーを表示し、どこかにコピーできるようにします。

  1. cat /etc/zabbix/zabbix_agentd.psk

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

Output
75ad6cb5e17d244ac8c00c96a1b074d0550b8e7b15d0ab3cde60cd79af280fca

後で使用するためにこれを保存します。 ホストを構成するために必要になります。

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

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

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

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

/etc/zabbix/zabbix_agentd.conf
...
### Option: Server
#       List of comma delimited IP addresses, optionally in CIDR notation, or DNS names of Zabbix servers and Zabbix proxies.
#       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
#       and '::/0' will allow any IPv4 or IPv6 address.
#       '0.0.0.0/0' can be used to allow any IPv4 address.
#       Example: Server=127.0.0.1,192.168.1.0/24,::1,2001:db8::/32,zabbix.example.com
#
# Mandatory: yes, if StartAgents is not explicitly set to 0
# Default:
# Server=

Server=127.0.0.1
...

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

/etc/zabbix/zabbix_agentd.conf
...
Server=zabbix_server_ip_address
...

デフォルトでは、Zabbixサーバーはエージェントに接続します。 ただし、一部のチェック(ログの監視など)では、逆接続が必要です。 正しく動作させるには、Zabbixサーバーアドレスと一意のホスト名を指定する必要があります。

アクティブなチェックを構成するセクションを見つけて、デフォルト値を変更します。

/etc/zabbix/zabbix_agentd.conf
...
##### Active checks related

### Option: ServerActive
#       List of comma delimited IP:port (or DNS name:port) pairs of Zabbix servers and Zabbix proxies for active checks.
#       If port is not specified, default port is used.
#       IPv6 addresses must be enclosed in square brackets if port for that host is specified.
#       If port is not specified, square brackets for IPv6 addresses are optional.
#       If this parameter is not specified, active checks are disabled.
#       Example: ServerActive=127.0.0.1:20051,zabbix.domain,[::1]:30051,::1,[12fc::1]
#
# Mandatory: no
# Default:
# ServerActive=

ServerActive=zabbix_server_ip_address

### Option: Hostname
#       Unique, case sensitive hostname.
#       Required for active checks and must match hostname as configured on the server.
#       Value is acquired from HostnameItem if undefined.
#
# Mandatory: no
# Default:
# Hostname=

Hostname=Second Ubuntu Server
...

次に、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
...

次に、次の行を追加して、事前共有キーのサポートを構成します。

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

次の行を追加して、事前共有キーをサポートするように着信接続を構成します。

/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=
...

次の行を追加して、事前共有キーを識別するための一意の名前を選択します。

/etc/zabbix/zabbix_agentd.conf
...
TLSPSKIdentity=PSK 001
...

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

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

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

次の行を追加して、Zabbixエージェントが作成したPSKファイルを指すようにします。

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

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

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

適切な対策として、Zabbixエージェントが正しく実行されていることを確認してください。

  1. sudo systemctl status zabbix-agent

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

Output
● zabbix-agent.service - Zabbix Agent Loaded: loaded (/lib/systemd/system/zabbix-agent.service; enabled; vendor preset: enabled) Active: active (running) since Fri 2020-06-12 08:19:54 UTC; 25s ago ...

エージェントは、ポート10050でサーバーからの接続をリッスンします。 このポートへの接続を許可するようにUFWを設定します。

  1. sudo ufw allow 10050/tcp

UFWの詳細については、 Ubuntu20.04でUFWを使用してファイアウォールを設定する方法をご覧ください。

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

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

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

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

The Zabbix login screen

ログインしたら、左側のナビゲーションバーで構成をクリックし、次にホストをクリックします。 次に、画面右上のホストの作成ボタンをクリックします。 これにより、ホスト構成ページが開きます。

Creating a host

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

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

Adding a template to the host

SearchフィールドにTemplate OS Linux by Zabbix agentと入力し、リストから選択して、このテンプレートをホストに追加します。

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

Setting up the encryption

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

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

Zabbix shows your new host

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

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

ステップ8—電子メール通知の構成

Zabbixは、電子メール、 OTRS Slack Telegram 、SMSなどの多くの種類の通知を自動的にサポートします。 統合の完全なリストは、ZabbixWebサイトで確認できます。

例として、このチュートリアルでは、Emailメディアタイプの通知を構成します。

左側のナビゲーションバーで管理をクリックし、次にメディアタイプをクリックします。 すべてのメディアタイプのリストが表示されます。 電子メールには、プレーンテキスト通知用とHTML通知用の2つの事前構成済みオプションがあります。 このチュートリアルでは、プレーンテキストの通知を使用します。 メールをクリックします。

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

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

Gmailを使用している場合は、SMTPサーバーフィールドにsmtp.gmail.comSMTPサーバーポートフィールドに465gmail.comと入力します。 ] SMTP helo の場合は]、 SMTPemailの場合はメール。 次に、接続セキュリティには SSL / TLS を選択し、認証にはユーザー名とパスワードを選択します。 Gmailアドレスをユーザー名として入力し、Googleアカウントから生成したアプリパスワードをパスワードとして入力します。

Setting up email media type

メッセージテンプレートタブで、さまざまなタイプの通知の事前定義されたメッセージのリストを確認できます。 最後に、フォームの下部にある更新ボタンをクリックして、電子メールパラメータを更新します。

これで、通知の送信をテストできます。 これを行うには、対応する行のTestの下線付きリンクをクリックします。

ポップアップウィンドウが表示されます。 送信先フィールドにメールアドレスを入力し、テストボタンをクリックします。 送信が成功したことを示すメッセージが表示され、テストメッセージが表示されます。

Testing email

キャンセルボタンをクリックしてポップアップを閉じます。

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

Creating a user

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

グループを追加したら、メディアタブをクリックし、追加の下線付きリンクをクリックします(その下の追加ボタンではありません)。 ポップアップウィンドウが表示されます。

Adding an email

TypeドロップダウンからEmailオプションを選択します。 送信先フィールドにメールアドレスを入力してください。 残りのオプションはデフォルト値のままにしておくことができます。 下部にある追加ボタンをクリックして送信してください。

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

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

注:デフォルトのパスワードを使用することは安全ではありません。 組み込みユーザーAdminのパスワードを変更するには、ユーザーリストのエイリアスをクリックします。 次に、パスワードの変更をクリックし、新しいパスワードを入力し、更新ボタンをクリックして変更を確認します。

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

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

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

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

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

  1. ssh sammy@second_ubuntu_server_ip_address

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

  1. df -h

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

Output
Filesystem Size Used Avail Use% Mounted on /dev/vda1 78G 1.4G 77G 2% /

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

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

  1. fallocate -l 70G /tmp/temp.img

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

Problem started at 09:49:08 on 2020.06.12
Problem name: /: Disk space is low (used > 80%)
Host: Second Ubuntu Server
Severity: Warning
Operational data: Space used: 71.34 GB of 77.36 GB (92.23 %)
Original problem ID: 106

監視タブに移動し、ダッシュボードに移動して、通知とその詳細を確認することもできます。

Main dashboard

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

  1. rm -f /tmp/temp.img

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

結論

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

監視インフラストラクチャの設定の詳細については、監視トピックページをご覧ください。