見出し画像

【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モジュールをインストールします。このコマンドでは、remiremi-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
  1. zabbix-server-mysql: Zabbix サーバー コンポーネントで、MySQL データベースをバックエンドとして使用します。

  2. zabbix-web-mysql: Zabbix Web インターフェース コンポーネントで、MySQL データベースをバックエンドとして使用します。これにより、ウェブブラウザを通じて Zabbix システムの監視情報にアクセスできます。

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





この記事が参加している募集

仕事について話そう

よろしければサポートお願いします!よりいい情報を発信します。