【Linux】 Zabbixの設定
Zabbix
オープンソースの監視ソフトウェアであり、ネットワーク、サーバー、アプリケーション、およびサービスのパフォーマンスおよび可用性を監視するために使用されます。
作業ログ
zabbix-server-mysql x86_64 5.0.33-1.el7 zabbix 3.2 M
zabbix6.0-web-mysql noarch 6.0.14-1.el7 epel 3.5 k
php-mysql x86_64 5.4.16-48.el7
mysql Ver 15.1 Distrib 10.11.2-MariaDB, for Linux (x86_64) using readline 5.1
Server version: Apache/2.4.6 (CentOS)
PHP 5.4.16
コマンド解説
EPEL リポジトリ
yum -y install epel-release
Extra Packages for Enterprise Linux (EPEL) リポジトリをシステムに追加します。EPEL リポジトリは、Fedora プロジェクトと Red Hat Enterprise Linux (RHEL) およびその派生ディストリビューション (CentOS など) のコミュニティによって管理されている。
基本リポジトリには含まれていない追加のソフトウェアパッケージ。
PHP
yum remove php-*
yum -y install http://rpms.remirepo.net/enterprise/remi-release-7.rpm
yum -y install --enablerepo=remi,remi-php74 php php-mbstring php-xml php-xmlrpc php-gd php-pdo php-pecl-mcrypt php-mysqlnd php-pecl-mysql
systemctl restart httpd
yum remove php-*: 現在インストールされているPHP関連のパッケージを削除します。
yum -y install http://rpms.remirepo.net/enterprise/remi-release-7.rpm: Remiリポジトリを追加します。Remiリポジトリは、様々なPHPバージョンを提供しているサードパーティのリポジトリです。
yum -y install --enablerepo=remi,remi-php74 php php-mbstring php-xml php-xmlrpc php-gd php-pdo php-pecl-mcrypt php-mysqlnd php-pecl-mysql: RemiリポジトリからPHP 7.4と一部の必要なPHPモジュールをインストールします。このコマンドでは、remiとremi-php74リポジトリを有効にして、指定されたPHPパッケージとモジュールをインストールしています。
systemctl restart httpd: Apache Webサーバーを再起動して、新しいPHPバージョンとモジュールを有効にします。
MariaDBはCentosのデフォルトのPHPで作動するので、それ以上のバージョンを入れた際に以降のインストールがうまくいかないことがあるので、特に必要がなければデフォルトのものを使用すること。
Zabbix 5.0 リポジトリ
rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
Zabbix 5.0 のリポジトリを CentOS 7 システムに追加します。
リポジトリパッケージを https://repo.zabbix.com からダウンロードします。
-Uvh オプションを使用して、ダウンロードしたパッケージをインストールします。-U はアップグレードを意味し、-v は詳細な出力を表示し、-h はインストールの進行状況を表示します。
必要に応じてバージョンは変えてください。
Zabbix サーバ
yum install -y zabbix-server-mysql zabbix-web-mysql zabbix-agent
zabbix-server-mysql: Zabbix サーバー コンポーネントで、MySQL データベースをバックエンドとして使用します。
zabbix-web-mysql: Zabbix Web インターフェース コンポーネントで、MySQL データベースをバックエンドとして使用します。これにより、ウェブブラウザを通じて Zabbix システムの監視情報にアクセスできます。
zabbix-agent: Zabbix エージェント コンポーネントで、モニタリング対象の各ホストにインストールされ、Zabbix サーバーと通信します。
MariaDB サーバ
yum install -y mariadb-server
yum update mariadb-server
systemctl start mariadb
systemctl enable mariadb
MariaDB サーバーをインストールし、サーバーを最新バージョンにアップデートした後に起動する。
DBの設定
mysql -u root -p
MariaDB [(none)]> show databases;
MariaDB [(none)]> create database zabbix character set utf8 collate utf8_bin;
MariaDB [(none)]> create user 'zabbix'@'localhost' identified by 'Pinpon6241';
MariaDB [(none)]> grant all on zabbix.* to 'zabbix'@'localhost' with grant option;
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
| test |
| zabbix |
+--------------------+
6 rows in set (0.001 sec)
MariaDB [(none)]>
MariaDB [(none)]> exit
mysql -u root -p:root ユーザーとして MariaDB サーバーにログインします。パスワードが求められるので、設定した root パスワードを入力。
create database zabbix character set utf8 collate utf8_bin;:名前が "zabbix" で UTF-8 エンコーディングを使用するデータベースを作成します。
create user 'zabbix'@'localhost' identified by 'password';:'zabbix' という名前のユーザーを作成し、'password' というパスワード(任意)を設定します。このユーザーは、ローカルホストからのみ接続が許可されます。
grant all on zabbix.* to 'zabbix'@'localhost' with grant option;:'zabbix' ユーザーに、'zabbix' データベースへのすべての権限を付与し、他のユーザーに権限を付与できるようにします。
FLUSH PRIVILEGES;:変更された権限を反映するために、権限を更新します。
show databases;:データベース一覧を再度表示し、'zabbix' データベースが作成されたことを確認します。
データベーススキーマ
zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -u zabbix -p zabbix
Enter password:
Zabbix サーバーの MySQL/MariaDB 用のデータベーススキーマを作成するために使用されます。
zcat コマンドを使用して、create.sql.gz という圧縮ファイルを解凍し、その内容をパイプで MySQL クライアントに渡します。MySQL クライアントは、指定されたユーザー名(ここでは 'zabbix')とデータベース名(ここでは 'zabbix')でデータベースに接続し、解凍された SQL コマンドを実行します。これにより、Zabbix サーバーが必要とするテーブル、インデックス、および初期データがデータベースに作成されます。
パスワードはデータベースを作成したときのパスワードを入力する。(処理に少し時間がかかる)
※データベーススキーマとは、データベース内に格納されるデータの構造、関連性、制約などを定義した設計図のことを指します。データベーススキーマを作成することで、データの整合性や効率的なデータ管理が可能になります。Zabbixの場合、データベーススキーマは、監視対象ホスト、アイテム、トリガー、アラート、ユーザーなどのデータを格納するためのテーブルやインデックスが定義されています。
データベースの設定
vi /etc/zabbix/zabbix_server.conf
----------------------------------------------
# 以下を変更
DBName=zabbix
DBUser=zabbix
DBPassword=your_password
Zabbixサーバーの動作に関するさまざまな設定を行う。
DBName: Zabbixサーバーが使用するデータベース名を指定。
DBUser: Zabbixサーバーがデータベースに接続する際に使用するユーザー名を指定。
DBPassword: Zabbixサーバーがデータベースに接続する際に使用するパスワードを指定します。
タイムゾーン設定
vi /etc/httpd/conf.d/zabbix.conf
----------------------------------------------
php_value date.timezone Asia/Tokyo
ZabbixのWebインターフェース設定を行うためのApacheの設定ファイル「zabbix.conf」を編集するためのコマンド。
日本のタイムゾーンを設定する。
Zabbixサーバの起動
systemctl start zabbix-server zabbix-agent
systemctl enable zabbix-server zabbix-agent
systemctl status zabbix-server
systemctl status zabbix-agent
WEBサーバの起動
systemctl start httpd
systemctl enable httpd
systemctl status httpd
Firewallの設定
firewall-cmd --add-service=http --permanent
success
firewall-cmd --add-service=https --permanent
success
firewall-cmd --add-port=10050/tcp --permanent
success
firewall-cmd --add-port=10051/tcp --permanent
success
firewall-cmd --reload
success
firewall-cmd --list-all
public (active)
target: default
icmp-block-inversion: no
interfaces: enp0s3
sources:
services: dhcpv6-client ftp http https ssh
ports: 80/tcp 10050/tcp 10051/tcp
protocols:
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
以下のURLにアクセスします。
http://[サーバのIPアドレス]/zabbix/