Zabbixは、ネットワークとアプリケーションを監視するための成熟したオープンソースソフトウェアです。 Zabbixは、さまざまなネットワークデバイス、システム、およびアプリケーションからメトリックを収集できます。障害が発生した場合、Zabbixはさまざまな方法で通知アラートを送信します。
Zabbixは、エージェントベースとエージェントレスの両方のモニタリングをサポートしています。 Zabbixエージェントはフットプリントが小さく、Linux、UNIX、macOS、Windowsなどのさまざまなプラットフォームで実行できます。
このチュートリアルでは、MySQLをデータベースバックエンドとして使用して、Debian9Linuxサーバーに最新バージョンのZabbix4.0をインストールして設定する方法について説明します。また、リモートホストにZabbixエージェントをインストールし、ホストをZabbixサーバーに追加する方法についても説明します。
前提条件#
としてログインしているユーザーは、パッケージをインストールするためにsudo権限を持っている必要があります。
ZabbixはMySQL/MariaDBとPostgreSQLの両方をサポートしています。このガイドでは、MariaDBをデータベースのバックエンドとして使用します。
DebianサーバーにMariaDBがインストールされていない場合は、次の手順に従ってインストールしてください。
MySQLコンソールにログインします:
sudo mysql 次のSQLステートメントを実行して、新しいデータベースを作成します。
CREATE DATABASE zabbix CHARACTER SET utf8 collate utf8_bin; 次に、MySQLユーザーアカウントを作成し、データベースへのアクセスを許可します。
GRANT ALL ON zabbix.* TO 'zabbix'@'localhost' IDENTIFIED BY 'change-with-strong-password'; 必ずchange-with-strong-passwordを変更してください 強力なパスワードを使用します。 完了したら、次のように入力してMySQLコンソールを終了します。
EXIT; DebianへのZabbixのインストール#
この記事を書いている時点で、Zabbixの最新の安定バージョンはバージョン4.0です。 Debianリポジトリで利用可能なZabbixパッケージは古くなっていることが多いため、公式のZabbixリポジトリを使用します。
1。 Zabbixのインストール#
最新のZabbixリポジトリをダウンロードする.deb 次のwgetコマンドを含むパッケージ:
wget https://repo.zabbix.com/zabbix/4.0/debian/pool/main/z/zabbix-release/zabbix-release_4.0-2+stretch_all.deb ファイルがダウンロードされたら、次のコマンドでインストールします:
sudo apt install ./zabbix-release_4.0-2+stretch_all.deb パッケージリストを更新し、Zabbixサーバー、MySQLデータベースをサポートするWebフロントエンド、およびZabbixエージェントをインストールします。
sudo apt updatesudo apt install zabbix-server-mysql zabbix-frontend-php zabbix-agent
上記のコマンドは、Apache、PHP、および必要なすべてのPHPモジュールもインストールします。
2。 Zabbixフロントエンド用のPHPの設定#
インストール中に、必要なすべてのApacheおよびPHP設定を含むApache構成ファイルが作成されます。
構成ファイルを開き、タイムゾーンの行のコメントを解除して、自分のタイムゾーンに変更します。 PHPでサポートされているタイムゾーンの完全なリストはここにあります。
/etc/apache2/conf-enabled/zabbix.conf...
<IfModule mod_php7.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 America/Denver
</IfModule>
... 完了したら、ファイルを保存し、Apacheサービスを再起動して、変更をアクティブにします。
sudo systemctl restart apache2 3。 Zabbixサーバー用のMySQLデータベースの設定#
MySQLを使用するZabbixサーバーの初期スキーマとデータを含むMySQLダンプファイルをインポートします。
gunzip < /usr/share/doc/zabbix-server-mysql/create.sql.gz | mysql -uzabbix -p zabbix プロンプトが表示されたら、前に作成したユーザーパスワードを入力します。成功すると、出力は表示されません。
次に、Zabbix構成を開き、データベースパスワードを設定します。
sudo nano /etc/zabbix/zabbix_server.conf
次のセクションを検索し、 DBPasswordのコメントを解除します ディレクティブを使用してデータベースパスワードを追加します。
...
### Option: DBPassword
# Database password.
# Comment this line if no password is used.
#
# Mandatory: no
# Default:
DBPassword=change-with-strong-password
... ファイルを保存して閉じます。
Zabbixサーバーとエージェントサービスを再起動して有効にします:
sudo systemctl restart zabbix-server zabbix-agentsudo systemctl enable zabbix-server zabbix-agent
Zabbixサーバーが実行されていることを確認します:
sudo systemctl status zabbix-server ● zabbix-server.service - Zabbix Server
Loaded: loaded (/lib/systemd/system/zabbix-server.service; enabled; vendor preset: enabled)
Active: active (running) since Mon 2019-01-28 15:37:21 CST; 35s ago
Main PID: 27632 (zabbix_server)
CGroup: /system.slice/zabbix-server.service
...
Zabbixフロントエンドのインストールと設定#
Zabbix WebインターフェースはPHPで記述されており、サーバーの構成、収集したデータの表示、監視するホストの追加を行うことができます。
インストールを開始するには、お気に入りのブラウザを開き、サーバーのドメイン名またはパブリックIPアドレスに続けて / zabbixを入力します :
http(s)://your_domain_or_ip_address/zabbix
最初の画面に、ウェルカムメッセージが表示されます。 次のステップコード>をクリックします 続行します。
次に、Zabbixフロントエンドの実行に必要なPHPパッケージのリストが記載された情報ページが表示されます。下にスクロールして、すべてが正しくインストールおよび設定されていることを確認します。確認したら、次のステップをクリックします 続行します。
次の画面で、セットアップウィザードはデータベース接続の詳細を入力するように求めます。以前に作成したMySQLユーザーとデータベースの詳細を入力します。
サーバーの名前の入力はオプションです。複数のZabbixモニタリングサーバーがある場合は、これを入力してください。提供されている場合は、メニューバーとページタイトルに表示されます。
次のステップコード>をクリックします 続行します。
次の画面に、インストール前の概要が表示されます。
次のステップコード>をクリックします インストールが完了すると、ZabbixWebインターフェイスがインストールされたことを示すページが表示されます。 Zabbixログインページにアクセスするには、 Finishをクリックします ボタン。
デフォルトのユーザーは「Admin」で、パスワードは「zabbix」です。ユーザー名とパスワードを入力し、ログインをクリックします ボタン。
ログインすると、Zabbix管理ダッシュボードにリダイレクトされます。
ここから、Zabbixインストールのカスタマイズと新しいホストの追加を開始できます。まず、現在のパスワードを変更する必要があります。これを行うには、上部のナビゲーションにあるプロファイルアイコンをクリックして、ユーザープロファイルページに移動します。
Zabbixサーバーへの新しいホストの追加#
監視用の新しいホストをZabbixサーバーに追加する手順には、2つのステップが含まれます。
まず、リモートホストにZabbixエージェントをインストールしてから、Webインターフェイスを介してホストをZabbixサーバーに追加する必要があります。
Zabbixエージェントのインストール#
このチュートリアルでは、ホストマシンもDebian9を使用していることを前提としています。
Zabbixサーバーをインストールするときと同じように、次のコマンドを実行してZabbixリポジトリを有効にします。
wget https://repo.zabbix.com/zabbix/4.0/debian/pool/main/z/zabbix-release/zabbix-release_4.0-2+stretch_all.debsudo apt install ./zabbix-release_4.0-2+stretch_all.deb
パッケージリストを更新し、Zabbixエージェントパッケージをインストールします:
sudo apt updatesudo apt install zabbix-agent
Zabbixは、サーバークライアント通信の暗号化に、事前共有キー(PSK)と証明書ベースの暗号化の2つの方法をサポートしています。このガイドでは、事前共有キー(PSK)方式を使用して、サーバーとエージェント間の接続を保護します。
次のコマンドを実行して事前共有キーを生成し、ファイルに保存します。
openssl rand -hex 32 | sudo tee /etc/zabbix/zabbix_agentd.psk PSKキーは次のようになります:
fc3077ed3db8589ec920ac98a7ddea96aca205eb63bbd29c66ae91743a7ecbb6
Zabbixエージェント設定ファイルを開きます:
sudo nano /etc/zabbix/zabbix_agentd.conf
サーバーを検索します IPアドレスをデフォルト値からZabbixサーバーのIPに変更します:
...
### 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
...
次に、 TSLConnectを見つけます オプションで、コメントを外し、 pskに設定します :
...
### 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=psk
...
TLSAcceptを見つけます オプションで、コメントを外し、 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=psk
...
次に、 TLSPSKIdentityを見つけます オプションで、コメントを外して PSK 001に設定します 値は一意の文字列である必要があります:
...
### Option: TLSPSKIdentity
# Unique, case sensitive string used to identify the pre-shared key.
#
# Mandatory: no
# Default:
TLSPSKIdentity=PSK 001
...
最後に、 TLSPSKFileを見つけます オプションで、コメントを外し、以前に作成した事前共有キーを指すように設定します:
...
### Option: TLSPSKFile
# Full pathname of a file containing the pre-shared key.
#
# Mandatory: no
# Default:
TLSPSKFile=/etc/zabbix/zabbix_agentd.psk
... 完了したら、ファイルを保存して閉じます。
Zabbixエージェントサービスを開始し、起動時に開始するように設定します:
sudo systemctl start zabbix-agentsudo systemctl enable zabbix-agent
次に、TCPポート 10050でZabbixサーバーからのトラフィックを有効にするファイアウォールルールを追加します 。
UFWを使用していると仮定します ファイアウォールを管理し、 192.168.121.70からのアクセスを許可したい 次のコマンドを実行するIPアドレス:
sudo ufw allow proto tcp from 192.168.121.70 to any port 10050 新しいホストを設定する#
監視するリモートホスト上のエージェントがインストールおよび設定されたので、次のステップはZabbixサーバーにホストを登録することです。
管理者ユーザーとしてZabbixサーバーのWebインターフェースにログインします。
http(s)://your_domain_or_ip_address/zabbix
中に入ると、上部のナビゲーションバーで Configurationをクリックします 、次に Hosts
次に、青い Create hostをクリックします 画面の右上隅にあるボタンをクリックすると、ホスト構成ページが開きます:
監視するリモートホストマシンのホスト名とIPアドレスを入力します。リストからグループを選択してホストを1つまたは複数のグループに追加するか、存在しないグループ名を入力して新しいグループを作成します。 Linuxサーバー グループは良い選択です。
完了したら、テンプレートをクリックします タブ。 Template OS Linuxを選択します Addをクリックします テンプレートをホストに追加するためのリンク。
次に、暗号化をクリックします タブ。両方のホストへの接続にPSKを選択します およびホストからの接続 。
PSK IDを設定します PSK 001の値 、 TLSPSKIdentityの値 前の手順で設定したZabbixエージェントのオプション。
PSK値 /etc/zabbix/zabbix_agentd.pskに保存されているZabbixエージェント用に生成したキーを追加します ファイル。
最後に、ホストを追加するには、青い[追加]ボタンをクリックします 。