DUICUO

Zabbix 6 シリーズ学習: パッケージのインストール (Ubuntu)

この記事では Ubuntu 22.04 を使用しています。他のシステムについては後続の記事を参照してください。

この記事の環境

  • システム: Ubuntu 22.04 LTS
  • PHP: 8.0
  • PostgreSQL: 14
  • フロントエンド: Nginx

システムバージョン

前提

Ubuntuの初期インストールでは一般ユーザー権限が使用されるため、aptツールを使用するための権限が不足している可能性があります。そのため、インストールプロセス中にsudoコマンドを使用して権限を昇格するか、直接rootアカウントに切り替えてください。権限の昇格にはsudoを使用することをお勧めします。

Zabbixリポジトリを追加する

リポジトリ ファイルをダウンロードします。

 https://repo.zabbix.com/zabbix/6.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_6.0-4%2Bubuntu22.04_all.deb を wget します。

リポジトリファイルをインストールします:

 sudo dpkg -i zabbix-release_6.0-4+ubuntu22.04_all.deb 

プロセス中に、ユーザー パスワード (ルート パスワードではありません) の入力を求められます。

リポジトリファイルを更新します。インストールプロセスは実際には非常に高速なので、リポジトリを変更する必要はありません。

 sudo apt アップデート

追加した後は必ず更新してください。そうしないと上記のエラーが発生します。

Zabbixコンポーネントをインストールする

 sudo apt install zabbix-server-pgsql zabbix-frontend-php php8.1-pgsql zabbix-nginx-conf zabbix-sql-scripts zabbix-agent -y

インストール完了

データベースセクション

データベースをインストールする

Zabbix 6.0 には PostgreSQL バージョン 13.0 以上が必要です。バージョン 22.04 にはデフォルトでバージョン 14 が付属しています。このテストは簡単なため、インストールにはバージョン 14 を直接使用します。特定のバージョンを使用したい場合は、インストール時にpostgresql-13 のように指定してください。

 sudo apt-get -y postgresqlをインストールします

Ubuntu と CentOS の違いに注意することが重要です。PostgreSQL はインストール後に自動的に起動します。

データベースと対応するユーザーを作成します。

 sudo -u postgres createuser --pwprompt zabbix
sudo -u postgres createdb -O zabbix zabbix

コマンド実行後、以下の警告が表示されますが、心配する必要はありません。この警告は、ユーザー postgres に kasar のホームディレクトリへのアクセス権がないために表示されます。操作には影響しません。

データベース構成の問題

上記の手順が成功したかどうかを確認するには、データベースにログインする必要があります。

 psql -U ポストグルス

この時点で、認証方法に問題が発見され、PostgreSQL 権限設定ファイルの調整が必要になります。

HBA ファイルの説明 (簡易版。詳細は公式ドキュメントを参照してください)

 sudo vim /etc/postgresql/14/main/pg_hba.conf 

hba設定ファイル

この構成ファイルには 5 つのパラメータがあります。

  • タイプ: タイプ
  • データベース: データベース名
  • ユーザー: ユーザー
  • 住所: 住所
  • 方法: 手順

タイプ

このフィールドには6つの値があり、バージョン14でのみ利用可能です。その他のバージョンについては、設定ファイルを参照してください。詳細については、公式ドキュメントをご覧ください。

  • local: Unix ドメイン ソケット経由で接続します。
  • ホスト: TCP/IP ソケット経由で接続されています。
  • hostssl: TCP/IP ソケット (SSL 暗号化) 経由で接続します。
  • hostnossl: TCP/IP ソケット経由で接続します (SSL 暗号化なし)。
  • hostgssenc: TCP/IP ソケット (GSSAPI 暗号化) 経由で接続します。
  • hostnogssenc: TCP/IP ソケット経由で接続します (GSSAPI 暗号化なし)。

データベース

データベースインスタンス名は、all、sameuser、samerole、replication のいずれかです。「all」は、replication を除くすべてのデータベースを意味します。複数のデータベースを指定する場合は、カンマで区切ります。


ユーザー

ユーザー名は「all」(全ユーザー)または特定のユーザーを指定できます。グループを指定する場合は「+」プレフィックスが必要です。複数のユーザーはカンマで区切ります。DATABASEと同様に、設定はファイルに記述することもできます。その場合、ファイル名の先頭に「@」を付けます。


住所

ホスト名、またはIPアドレスとCIDRマスクの組み合わせを指定できます。マスクは0~32(IPv4)または0~128(IPv6)の整数で、32はサブネットマスク255.255.255.255、24はサブネットマスク255.255.255.0を表します。ホスト名は「.」で始まります。`samehost`はすべてのホストに一致し、`samenet`は同じマスク内のすべてのホストに一致します。

たとえば、192.168.20.100/32 は単一のホストを表し、192.168.20.0/24 はネットワーク セグメント 192.168.0.1 ~ 192.168.0.255 内のすべてのホストを表し、0.0.0.0/0 はすべてのホストを表します。

方法

クライアント認証の処理方法を指定します。一般的に使用される値は、ident、md5、password、trust、peer、reject です。ident モードと peer モードは Linux、Unix、Mac でのみ使用可能で、Windows では使用できません。このパラメータには合計 13 個の値があります(バージョン 14 のみ。その他のバージョンについては、設定ファイルを参照してください)。

  • MD5は一般的に使用されているパスワード認証方式です。identを使用していない場合は、MD5を使用することをお勧めします。パスワードはMD5形式でデータベースに送信されるため、より安全で、同じ名前のオペレーティングシステムユーザーを作成する必要がありません。
  • パスワードはプレーンテキストでデータベースに送信されるため、実稼働環境での使用はお勧めしません。
  • Trustは、データベースのユーザー名が分かっている限り、パスワードやIDを必要とせずにログインを許可します。本番環境での使用は推奨されません。
  • identユーティリティは、identサーバーからクライアントのオペレーティングシステムのユーザー名を取得し、それを使用してデータベースサーバーにアクセスすることで機能します。この方法は、クライアントコンピュータがシステム管理者によって厳密に管理されている閉鎖的なネットワークに推奨されます。
  • peerは ident に似ていますが、クライアントのオペレーティング システムのユーザー名はカーネルから取得されます。
  • 「拒否」は認証を拒否することを意味します。

同じデータベースであっても、複数の認証モードを同時に使用できます。Postgresサーバーは、接続要求ごとにpg_hba.confファイルに記述されたルールを上から下までチェックします。

最初の一致するルールが見つかると、検索は継続されます。ファイルの最後まで一致するルールが見つからない場合、デフォルトのルールに従ってリンクは拒否されます。

HBAファイル構成

上記の説明に基づいて、この記事の目的は、ローカル ユーザーがローカル マシンから直接ログインできるようにすること、そして Zabbix ユーザーが自分のパスワードを使用してデータベースにアクセスできるようにすることです。

次の変更が行われました: ローカル ログイン認証方法が trust に変更されました。

ホスト フィールドを MD5 形式に変更し、データベースを再起動するだけです。

 sudo サービス pos​​tgresql を再起動

再度ログインすると、すべてが正常に戻り、以前に作成したデータベースが表示されます。

Zabbixユーザーでログインしてみてください。下のスクリーンショットが表示されれば、正しくログインできていることを意味します。ローカルマシンはデータベースへの接続にIPv6を優先するため、MD5方式は効果がありません。代わりにScram-Sha-256が使用され、効果は同じです。これはデモ用ですので、ご自身でテストしてみてください。

Zabbixアーキテクチャとデータをインポートする

 sudo zcat /usr/share/zabbix-sql-scripts/postgresql/server.sql.gz | sudo -u zabbix psql zabbix

インポート完了

Zabbix 部分設定

Zabbix 構成ファイルを変更します。

 sudo vim /etc/zabbix/zabbix_server.conf

実際のデータベース構成によって異なります。このガイドに従う場合は、DBHostとDBPasswordパラメータを調整するだけで済みます。

127.0.0.1に変更

データベースのパスワードを入力してください

Nginxの部分設定

Nginxのデフォルトポートは80なので、ウェブサイトにアクセスするとNginxインターフェースが直接表示されます。PHPのインストールには通常Apache2が含まれているため、Apache2インターフェースも表示されるので、驚かないでください。

Zabbixのポートを調整したり、デフォルトのポートを変更したりできます。この記事では、デフォルトのポートを変更する方法を説明します。

 sudo vim /etc/nginx/sites-available/default

8080に変更

Nginx サービスを再起動します。

 systemctl nginx を再起動します

この時点で、Zabbix フロントエンド ページに通常どおりアクセスできます。

Zabbix関連サービスを開始する

 sudo systemctl zabbix-server zabbix-agent nginx php8.1-fpm を再起動します。
sudo systemctl で zabbix-server zabbix-agent nginx php8.1-fpm を有効にします。

フロントエンド構成

環境検査、次のステップ。

データベース インターフェイスでは、データベース ホストを 127.0.0.1 に変更し、データベース スキーマに「public」と入力し、任意のパスワードを入力し、「データベース TLS 暗号化」のチェックを外して次の手順に進む必要があることに注意してください。

Zabbix サーバーの名前を入力し、対応するタイムゾーンを調整して、East 8 Shanghai を選択します。

次のステップ:

インストールが完了したら、「完了」をクリックします。このページに、対応するフロントエンドファイルを生成できないというエラーメッセージが表示される場合は、基本的にディレクトリの権限の問題です。私は以前にもこの問題に遭遇したことがあり、後ほど問題のセクションで説明します。

デフォルトのユーザー名とパスワードは、引き続きAdmin/zabbix です。

最終効果

「実行中」位置の「はい」の値は、通常の動作を示します。

やっと

Ubuntu環境は、多くの点でユーザーフレンドリーな機能のおかげで、CentOSよりもはるかにシンプルです。CentOSのエラーメッセージはより分かりやすく、ユーザーはドキュメントを参照したり、他のサポートに問い合わせたりする必要があります。それでは次回!