CentOS 7でZabbixを使用してリモートサーバーを安全に監視する方法

Zabbixは、システムとネットワークコンポーネントの可用性を監視するために使用��れる無料でオープンソースのエンタープライズ対応ソフトウェアです。Zabbixは、数千のサーバー、仮想マシン、またはネットワークコンポーネントを同時に監視できます。Zabbixは、CPU、メモリ、ディスク領域とIO、プロセス、ネットワーク、データベース、仮想マシン、Webサービスなど、システムに関連するほぼすべてを監視できます。ZabbixにIPMIアクセスが提供されている場合は、温度、電圧などのハードウェアも監視できます。

前提条件

このチュートリアルでは192.0.2.1、Zabbixサーバー192.0.2.2のパブリックIPアドレスと、リモートで監視するZabbixホストのパブリックIPアドレスとして使用します。例のIPアドレスをすべて実際のパブリックIPアドレスに置き換えてください。

CentOS 7のアップデート方法ガイドを使用して、ベースシステムをアップデートします。システムが更新されたら、依存関係のインストールに進みます。

ApacheとPHPをインストールする

Zabbix Webをインストールすると、Apacheの構成が自動的に作成されます。

Apacheをインストールして、ZabbixフロントエンドまたはWeb UIを提供します。

sudo yum -y install httpd

Apacheを起動し、起動時に自動的に起動するように有効にします。

sudo systemctl start httpd
sudo systemctl enable httpd

RemiデフォルトのYUMリポジトリには古いバージョンのPHPが含まれているため、リポジトリを追加して有効にします。

sudo rpm -Uvh http://rpms.remirepo.net/enterprise/remi-release-7.rpm
sudo yum -y install yum-utils
sudo yum-config-manager --enable remi-php71

Zabbixで必要なモジュールと共に最新バージョンのPHPをインストールします。

sudo yum -y install php php-cli php-gd php-bcmath php-ctype php-xml php-xmlreader php-xmlwriter php-session php-sockets php-mbstring php-gettext php-ldap php-pgsql php-pear-Net-Socket

PostgreSQLのインストールと構成

PostgreSQLはオブジェクトリレーショナルデータベースシステムです。デフォルトのYUMリポジトリには古いバージョンのPostgreSQLが含まれているため、システムにPostgreSQLリポジトリを追加する必要があります。

sudo rpm -Uvh https://download.postgresql.org/pub/repos/yum/9.6/redhat/rhel-7-x86_64/pgdg-centos96-9.6-3.noarch.rpm

PostgreSQLデータベースサーバーをインストールします。

sudo yum -y install postgresql96-server postgresql96-contrib

データベースを初期化します。

sudo /usr/pgsql-9.6/bin/postgresql96-setup initdb

initdb 単一のサーバーによって管理されるデータベースのグループである新しいデータベースクラスターを作成します。

を編集しpg_hba.confて、MD5ベースの認証を有効にします。

sudo nano /var/lib/pgsql/9.6/data/pg_hba.conf

次の行と変更検索peerするtrustidnetしますmd5

# TYPE  DATABASE        USER            ADDRESS                 METHOD

# "local" is for Unix domain socket connections only
local   all             all                                     peer
# IPv4 local connections:
host    all             all             127.0.0.1/32            idnet
# IPv6 local connections:
host    all             all             ::1/128                 idnet

更新すると、設定は次のようになります。

# TYPE  DATABASE        USER            ADDRESS                 METHOD

# "local" is for Unix domain socket connections only
local   all             all                                     trust
# IPv4 local connections:
host    all             all             127.0.0.1/32            md5
# IPv6 local connections:
host    all             all             ::1/128                 md5

PostgreSQLサーバーを起動し、起動時に自動的に起動するようにします。

sudo systemctl start postgresql-9.6
sudo systemctl enable postgresql-9.6

passwordデフォルトのPostgreSQLユーザーのを変更します。

sudo passwd postgres

PostgreSQLユーザーとしてログインします。

sudo su - postgres

Zabbix用の新しいPostgreSQLユーザーを作成し���す。

createuser zabbix

PostgreSQLシェルに切り替えます。

psql

Zabbixデータベース用に新しく作成したデータベースユーザーのパスワードを設定します。

ALTER USER zabbix WITH ENCRYPTED password 'StrongPassword';

Zabbix用の新しいデータベースを作成します。

CREATE DATABASE zabbix OWNER zabbix;

psqlシェルを終了します。

\q

sudo現在のユーザーからユーザーに切り替えpostgresます。

exit

Zabbixをインストールする

ZabbixはCentOS用のバイナリを提供します。これは、Zabbixリポジトリから直接インストールできます。Zabbixリポジトリをシステムに追加します。

sudo rpm -ivh http://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-1.el7.centos.noarch.rpm

とをインストールZabbix serverZabbix webます。

sudo yum -y install zabbix-server-pgsql zabbix-web-pgsql 

PostgreSQLデータベースをインポートします。

zcat /usr/share/doc/zabbix-server-pgsql-3.4.*/create.sql.gz | psql -U zabbix zabbix

出力の最後に、次のようなものが表示されます。

...
INSERT 0 1
INSERT 0 1
COMMIT

Zabbix構成ファイルを開いて、データベースの詳細を更新します。

sudo nano /etc/zabbix/zabbix_server.conf

次の行を見つけ、データベース構成に従って値を更新します。DBHostand DBPort行のコメントを解除する必要があります。

DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=StrongPassword
DBPort=5432

ZabbixはApache用の仮想ホストファイルを自動的にインストールします。仮想ホストを構成して、タイムゾーンとPHPバージョンを更新する必要があります。

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

次の行を見つけます。

<IfModule mod_php5.c>
...
#php_value date.timezone Europe/Riga

PHPバージョン7を使用しているため、mod_phpバージョンも更新する必要があります。以下に示すように、タイムゾーンに従って行を更新します。

<IfModule mod_php7.c>
...
php_value date.timezone Asia/Kolkata

Apacheを再起動して、これらの変更を構成に適用します。

sudo systemctl restart httpd

Zabbixサーバーを起動し、起動時に自動的に起動するようにします。

sudo systemctl start zabbix-server
sudo systemctl enable zabbix-server

Zabbixサーバーが実行されているはずです。これを実行すると、プロセスのステータスを確認できます。

sudo systemctl status zabbix-server

ファイアウォールを変更して、標準HTTPHTTPSポートを許可します。また10051、リモートマシンで実行されているZabbixエージェントからイベントを取得するためにZabbixが使用するファイアウォール経由のポートを許可する必要があります。

sudo firewall-cmd --zone=public --permanent --add-service=http
sudo firewall-cmd --zone=public --permanent --add-service=https
sudo firewall-cmd --zone=public --permanent --add-port=10051/tcp
sudo firewall-cmd --reload

管理ダッシュボードにアクセスするにはhttp://192.0.2.1/zabbix、お気に入りのブラウザーを使用して開きます。ウェルカムメッセージが表示されます。次のインターフェースですべての前提条件が満たされている必要があります。インストーラーページの指示に従って、ソフトウェアをインストールします。ソフトウェアがインストールされたら、ユーザー名Adminとパスワードを使用してログインしますzabbix。これでZabbixがインストールされ、Zabbixエージェントからデータを収集する準備が整いました。

サーバーでのZabbixエージェントのセットアップ

Zabbixがインストールされているサーバーを監視するために、サーバーにエージェントを設定できます。Zabbixエージェントは、Linuxサーバーからイベントデータを収集してZabbixサーバーに送信します。デフォルトでは、ポート10050はイベントとデータをサーバーに送信するために使用されます。

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

sudo yum -y install zabbix-agent

エージェントを起動し、起動時に自動的に起動するようにします。

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

ZabbixエージェントとZabbixサーバー間の通信はローカルで行われるため、暗号化を設定する必要はありません。

Zabbixサーバーがデータを受信する前に、を有効にする必要がありますhost。ZabbixサーバーのWeb管理ダッシュボードにログインし、に移動しConfiguration >> Hostます。Zabbixサーバーホストの無効化されたエントリが表示されます。エントリを選択し、[有効にする]ボタンをクリックして、ZabbixサーバーアプリケーションおよびZabbixサーバーがインストールされている基本CentOSシステムの監視を有効にします。

リモートLinuxマシンでのエージェントのセットアップ

リモートZabbixエージェントがZabbixサーバーにイベントを送信できる3つの方法があります。最初の方法は暗号化されていない接続を使用する方法で、2番目の方法は安全な事前共有キーを使用する方法です。3番目に安全な方法は、RSA証明書を使用して送信を暗号化することです。

Zabbixエージェントをリモートマシンにインストールして設定する前に、Zabbixサーバーシステムで証明書を生成する必要があります。自己署名証明書を使用します。

Zabbixサーバーでsudoユーザーとして次のコマンドを実行します

Zabbixキーを格納する新しいディレクトリを作成し、CAの秘密キーを生成します。

mkdir ~/zabbix-keys && cd ~/zabbix-keys
openssl genrsa -aes256 -out zabbix-ca.key 4096

秘密鍵を保護するためのパスフレーズを求められます。秘密鍵が生成されたら、CAの証明書の生成に進みます。

openssl req -x509 -new -key zabbix-ca.key -sha256 -days 3560 -out zabbix-ca.crt

秘密鍵のパスフレーズを提供します。それはあなたの国、州、組織についていくつかの詳細を尋ねます。詳細を適宜入力してください。

[user@vultr zabbix-keys]$ openssl req -x509 -new -key zabbix-ca.key -sha256 -days 3560 -out zabbix-ca.crt
Enter passphrase for `zabbix-ca.key`:
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [XX]:IN
State or Province Name (full name) []:My State
Locality Name (eg, city) [Default City]:My City
Organization Name (eg, company) [Default Company Ltd]:My Organization
Organizational Unit Name (eg, section) []:My Unit
Common Name (eg, your name or your server's hostname) []:Zabbix CA
Email Address []:[email protected]

CA証明書が正常に生成されました。Zabbixサーバーの秘密鍵とCSRを生成します。

openssl genrsa -out zabbix-server.key 2048
openssl req -new -key zabbix-server.key -out zabbix-server.csr

上記のコマンドを実行するときは、秘密鍵を暗号化するためのパスフレーズを指定しないでください。CSRを使用して、Zabbixサーバーの証明書を生成します。

openssl x509 -req -in zabbix-server.csr -CA zabbix-ca.crt -CAkey zabbix-ca.key -CAcreateserial -out zabbix-server.crt -days 1825 -sha256

同様に、Zabbixホストまたはエージェントの秘密鍵とCSRを生成します。

openssl genrsa -out zabbix-host1.key 2048
openssl req -new -key zabbix-host1.key -out zabbix-host1.csr

証明書を生成します。

openssl x509 -req -in zabbix-host1.csr -CA zabbix-ca.crt -CAkey zabbix-ca.key -CAcreateserial -out zabbix-host1.crt -days 1460 -sha256

証明書をZabbix設定ディレクトリにコピーします。

sudo mkdir /etc/zabbix/keys
sudo cp zabbix-ca.* zabbix-server.* /etc/zabbix/keys

証明書の所有権をZabbixユーザーに提供します。

sudo chown -R zabbix: /etc/zabbix/keys

Zabbixサーバーの構成ファイルを開いて、証明書のパスを更新します。

sudo nano /etc/zabbix/zabbix_server.conf

構成ファイルでこれらの行を見つけ、次のように変更します。

TLSCAFile=/etc/zabbix/keys/zabbix-ca.crt
TLSCertFile=/etc/zabbix/keys/zabbix-server.crt
TLSKeyFile=/etc/zabbix/keys/zabbix-server.key

ファイルを保存して、エディターを終了します。Zabbixサーバーを再起動して、構成の変更を有効にします。

sudo systemctl restart zabbix-server

scpコマンドを使用して、監視するホストコンピュータに証明書をコピーします。

cd ~/zabbix-keys
scp zabbix-ca.crt zabbix-host1.* [email protected]:~

192.0.2.2Zabbixエージェントをインストールするリモートホストの実際のIPアドレスに置き換えてください。

Zabbixホストをインストールする

証明書をホストシステムにコピーしたので、Zabbixエージェントをインストールする準備ができました。

これ以降、監視するホストですべてのコマンドを実行する必要があります

Zabbixリポジトリをシステムに追加します。

sudo rpm -ivh http://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-1.el7.centos.noarch.rpm

Zabbixエージェントをシステムにインストールします。

sudo yum -y install zabbix-agent

キーと証明書をZabbix構成ディレクトリに移動します。

sudo mkdir /etc/zabbix/keys
sudo mv ~/zabbix-ca.crt ~/zabbix-host1.* /etc/zabbix/keys/

Zabbixユーザーに証明書の所有権を提供します。

sudo chown -R zabbix: /etc/zabbix/keys

Zabbixエージェントの設定ファイルを開いて、サーバーのIPアドレスと、キーと証明書へのパスを更新します。

sudo nano /etc/zabbix/zabbix_agentd.conf

次の行を見つけ、必要な変更を加えて、以下に示すようにします。

Server=192.0.2.1                    # Replace with actual Zabbix server IP
ServerActive=192.0.2.1              # Replace with actual Zabbix server IP
Hostname=Zabbix host1               # Provide a appropriate name or hostname

ホスト名は、他のホストシステムには指定されていない一意の文字列である必要があります。Zabbixサーバーに正確なホスト名を設定する必要があるため、ホスト名をメモしてください。

さらに、これらのパラメーターの値を更新します。

TLSConnect=cert
TLSAccept=cert
TLSCAFile=/etc/zabbix/keys/zabbix-ca.crt
TLSCertFile=/etc/zabbix/keys/zabbix-host1.crt
TLSKeyFile=/etc/zabbix/keys/zabbix-host1.key

次に、Zabbixエージェントを再起動し、起動時に自動的に開始するようにします。

sudo systemctl restart zabbix-agent
sudo systemctl enable zabbix-agent

ホストシステムでZabbixエージェントが正常に構成されました。でZabbix管理ダッシュボードを参照https://192.0.2.1/zabbixして、新しく構成されたホストを追加します。

右上のボタンに移動しConfiguration >> HostsてクリックしCreate Hostます。

CentOS 7でZabbixを使用してリモートサーバーを安全に監視する方法

上のcreate hostインタフェースは、ホスト・システムのZabbixのエージェント設定ファイルで設定されたホスト名と正確に類似していなければならないホスト名を、提供しています。表示名は自由に選んでください。

CentOS 7でZabbixを使用してリモートサーバーを安全に監視する方法

システムを追加するグループを選択します。Zabbixエージェントを実行して基本的なLinuxサーバーを監視しているので、Linuxサーバーグループを選択できます。必要に応じて、新しいグループを作成することもできます。

Zabbixエージェントが実行されているホストのIPアドレスを入力します。ホストのオプションの説明を提供できます。

次に、Template新しいホストインターフェースのタブに移動し、アプリケーションに応じてテンプレートを検索します。この場合、を見つける必要がありますTemplate OS LinuxAddリンクをクリックして、テンプレートをホストに割り当てます。

CentOS 7でZabbixを使用してリモートサーバーを安全に監視する方法

最後に、Encryptionタブに移動し、Certificateホストへの接続とホストからの接続の両方に対してを選択します。このようにして、両側からの通信はRSA証明書を使用して暗号化されます。IssuerそしてSubjectフィールドはオプションです。

CentOS 7でZabbixを使用してリモートサーバーを安全に監視する方法

完了したら、Addボタンをクリックして新しいホストをZabbixサーバーに追加できます。数分後、ZBX可用性は緑色に変わります。これは、Zabbixエージェントを使用してホストが利用可能であり、ホストコンピュータからZabbixサーバーにイベントをアクティブに送信していることを示しています。

CentOS 7でZabbixを使用してリモートサーバーを安全に監視する方法

ZBX可用性がred緑色ではなく色に変わった場合は、何らかのエラーがあり、ホストがサーバーにデータを送信できないことを意味します。その場合は、ログファイルでエラーを探し、それに応じてエラーのトラブルシューティングを行ってください。ZabbixサーバーログとZabbixエージェントログへのパスは/var/log/zabbix/zabbix_server.log、および/var/log/zabbix/zabbix_agentd.logです。

これで、monitoringタブに移動してホストを監視できます。監視ページでは、問題、受信したイベント、ライブグラフ、その他多くの情報を表示できます。

CentOS 7でZabbixを使用してリモートサーバーを安全に監視する方法

結論

おめでとうございます。Zabbixサーバーインスタンスが正常にデプロイされ、リモートホストでの監視が有効になりました。

1つのZabbixインスタンスを使用して、中小企業のインフラ全体を監視できます。



Leave a Comment

CentOS 7にApacheをインストールする方法

CentOS 7にApacheをインストールする方法

CentOS 7サーバーにApache 2.4をインストールする方法を説明します。安定したウェブサーバーを構築するための前提条件と手順を解説します。

FreeBSD 11.1にBlacklistdをインストールする方法

FreeBSD 11.1にBlacklistdをインストールする方法

FreeBSD 11.1におけるBlacklistdのインストール方法について詳しく解説します。この方法を通じて、強力なセキュリティ対策を実装できます。

Windows Serverのサーバーマネージャーを使用した複数サーバーの管理

Windows Serverのサーバーマネージャーを使用した複数サーバーの管理

サーバーマネージャーを使用して、Windows Serverの管理が向上します。セキュリティリスクを軽減し、効率的な管理を実現します。

CentOS 7にSeafileサーバーをインストールする方法

CentOS 7にSeafileサーバーをインストールする方法

CentOS 7にSeafileサーバーをインストールする方法。Seafile(コミュニティバージョン)は、ownCloudに似た無料のオープンソースファイル同期および共有ソリューションです。

DebianでSnortを設定する方法

DebianでSnortを設定する方法

Snortは無料のネットワーク侵入検知システムです。最新の方法で、SnortをDebianにインストールし、設定する手順を紹介します。ネットワークのセキュリティを強化しましょう。

CentOS 7にGraylogサーバーをインストールする方法

CentOS 7にGraylogサーバーをインストールする方法

CentOS 7にGraylogサーバーをインストールし、ログ管理を行う方法を学びます。

WindowsでhMailServerを使用してメールサーバーを構築する

WindowsでhMailServerを使用してメールサーバーを構築する

WindowsサーバーでWebサイトを実行している場合、電子メールも受信できるようにするためにhMailServerを使用する方法を解説します。

Ubuntu 19.04にFiveMサーバーをインストールする方法

Ubuntu 19.04にFiveMサーバーをインストールする方法

FiveMサーバーをUbuntu 19.04にインストールするための詳細なガイド。必要条件からインストール、起動、トラブルシューティングまで、すべてのステップを含みます。

WsgiDAVを使用してDebian 10にWebDAVをデプロイする

WsgiDAVを使用してDebian 10にWebDAVをデプロイする

Debian 10にWebDAVをデプロイする方法を学び、WsgiDAVとSSL証明書で安全な接続を実現しましょう。

ヘルスケア2021における人工知能の影響

ヘルスケア2021における人工知能の影響

ヘルスケアにおけるAIは、過去数十年から大きな飛躍を遂げました。したがって、ヘルスケアにおけるAIの未来は、日々成長を続けています。