Zabbix

Zabbixの構築手順の紹介!Almalinuxでサーバ構築

Zabbixをインストールしてみたいんですけど、手順が多いし設定も複雑そうで、調べても情報がバラバラでどれを参考にすればいいのか分からないんですよね。。。

公式ドキュメントを見ても専門用語が多くてピンとこないし、初心者向けの解説も環境によって違いがあって、自分のケースに当てはめられるのか不安でなかなか手を動かせずにいる人多いのではないでしょうか。

でもこの記事を読めば、Zabbixのインストール手順が一目でわかり、迷わず作業を進められるようになります。

初心者がつまずきやすいポイントも分かりやすく解説するので、「どの手順を参考にすればいいのか分からない」「設定が複雑そうで不安」といった悩みを解消できます!

その方法とは、この記事を読むことなんです。この方法は、実際に現役インフラエンジニアの私がZabbixをLinux環境にインストールした手順なんです!

1.Zabbixの概要

1-1.Zabbixとは

Zabbixとはオープンソースの統合監視ソフトウェアです。サーバやネットワーク機器、アプリケーションの稼働監視やリソース監視とその設定などを一元管理でき、障害発生時や復旧時にはメールによる通知やコマンド実行を行うことができます。また、収集したデータを利用したグラフの作成も可能です。

1-2.Zabbixの特徴

  1. オープンソースソフトウェア オープンソースソフトウェアのため、無償で利用できます。また、ソースの閲覧や修正を行えるため、ソフトウェアの動作を正確に調査したり、特定の環境向けたカスタマイズもできる
  2. エージェントレスの監視に対応 ZabbixエージェントやSNMPエージェントを使用することなく、Zabbixサーバからpingによる稼働監視やポート接続確認の監視を行うことができます。また、SSHやtelnetを利用したエージェントレスの監視機能も有しているため、エージェントを導入できないサーバのリソース監視も行えます。
  3. グラフの表示機能 収集した、蓄積したデータをもとにグラフを一画面で表示するなどグラフィカル表示機能を有しているため、視覚的にわかりやすくシステムの状態を表示できます。グラフは動的に期間を変えて表示出来たり、より詳細な分析やリアルタイムな障害検知を行えます。
    グラフにすると一目でわかるからいいよね!
  4. テンプレートによる監視項目/閾値/グラフ設定の管理 監視項目/閾値/グラフ設定をテンプレートとしてまとめて管理ができ、多数のサーバーの監視設定を容易に管理できます。また、テンプレートはインポート/エクスポートすることができるため、配布されているテンプレートを使用することができます。 「複数環境で運用する場合、設定する手間が省けるね!」

2.Zabbixサーバ構成

2-1.Zabbixのサーバ構成

Zabbixサーバの構成をご紹介します。

  1. Zabbixサーバ 監視マネージャ機能を有したサーバです。監視設定を一元的に管理し、各監視対象からネットワーク経由でpingやポート監視を行ったり、Zabbixエージェント、SNMPエージェントによるステータス情報収集を行って結果をデータベースに保存します。
  2. Zabbixエージェント 専用Zabbixエージェントを使用することにより、各OSのCPU/メモリ/ディスク/ネットワークなどのリソース情報やプロセスなどのアプリケーションの稼働情報を収集できます。Zabbixエージェント自体が主なリソース監視の機能を有しており、プラグインなど別途ソフトウェアを必要としないため容易に導入できます。
  3. SNMP機器 Zabbixサーバは汎用的な監視プロトコルであるSNMPのマネージャ機能を有しており、ネットワーク機器などのSNMP対応機器を監視できます。
    ※今回は触れません
  4. Zabbixエージェント未導入サーバ Zabbixサーバから直接監視対象サーバに対して死活監視とポート監視を行えます。
    ※今回は触れません
  5. データベース Zabbixは監視対象から収集したデータをRDMSに保存/蓄積します。監視データの長期保存を行えるため、過去のデータグラフ表示などに活用できます。

2-2.Zabbix監視項目

Zabbixは、pingやSNMPの監視、各種ログ監視など幅広い監視を行うことができます。 Zabbixエージェントが導入されたサーバで監視可能な主要項目は以下の通りです。

監視項目 監視項目詳細
CPU ロードアベレージ
system使用率、user使用率、idle使用率など
メモリ メモリ使用率/メモリ使用量/容量
スワップ使用率
ネットワーク NW送受信バイト数
ディスク ファイルシステム使用率/使用量/容量
ディスクI/O
サービス プロセス監視
Windowsサービス監視
TCPポート接続状況・応答時間
ログ テキストログ監視
Windowsイベントログ監視
ファイル ファイルの存在有無監視/ファイルサイズの監視
その他 Windowsパフォーマンスカウンタ
コマンド実行結果(標準出力)の監視
Web監視
VMware監視

3.Zabbixサーバインストール方法

これより行う操作はrootユーザで行ってください!

今回使用するOSはAlmalinuxを使用しています。以下のサイトからisoファイルをダウンロードできるのでこちらを使用してください。

https://ftp.iij.ad.jp/pub/linux/centos-stream/9-stream/BaseOS/x86_64/iso/

  1. getenfoceの結果が、disabledになっていることを確認します。
# getenforce

 

  1. enforcingになっている場合、SELINUXの部分をdisabledに修正
# vi /etc/selinux/config

SELINUX=disabled

 

  1. 修正したら変更されていることを確認し、変更を反映させるためにOSの再起動を行う
# cat /etc/selinux/config

# shutdown -r now

 

  1. 再起動後、修正が反映されていることを確認する。
# getenforce
Disabled

 

3-1.mariaDBのインストール

  1. 今回はmariaDBをインストールする
# dnf install -y mariadb-server

完了しました!と出ればOK!

 

  1. インストールされたことを確認するためにmariaDBのバージョンを確認する
# mysql --versionmysql --version
mysql: unknown option '--versionmysql'
mysql Ver 15.1 Distrib 10.5.27-MariaDB, for Linux (x86_64) using EditLine wrapper

バージョンによっては上記の通りにならないこともあります。バージョンが確認できればOKです。

 

  1. mariaDBを再起動し、自動起動を有効にする。
# systemctl restart mariadb

# systemctl enable mariadb
Created symlink /etc/systemd/system/mysql.service → /usr/lib/systemd/system/mariadb.service.
Created symlink /etc/systemd/system/mysqld.service → /usr/lib/systemd/system/mariadb.service.
Created symlink /etc/systemd/system/multi-user.target.wants/mariadb.service → /usr/lib/systemd/system/mariadb.service.

# systemctl status mariadb
● mariadb.service - MariaDB 10.5 database server
Loaded: loaded (/usr/lib/systemd/system/mariadb.service; enabled; preset: disabled)
Active: active (running) since Sat 2025-02-08 18:08:41 JST; 15s ago
Docs: man:mariadbd(8)
https://mariadb.com/kb/en/library/systemd/
Main PID: 3148 (mariadbd)
Status: "Taking your SQL requests now..."
Tasks: 17 (limit: 10727)
Memory: 76.6M
CPU: 727ms
CGroup: /system.slice/mariadb.service
mq3148 /usr/libexec/mariadbd --basedir=/usr

2月 08 18:08:41 Zabbix mariadb-prepare-db-dir[3103]: The second is mysql@localhost, it has no password either, but
2月 08 18:08:41 Zabbix mariadb-prepare-db-dir[3103]: you need to be the system 'mysql' user to connect.
2月 08 18:08:41 Zabbix mariadb-prepare-db-dir[3103]: After connecting you can set the password, if you would need to be
2月 08 18:08:41 Zabbix mariadb-prepare-db-dir[3103]: able to connect as any of these users with a password and without sudo
2月 08 18:08:41 Zabbix mariadb-prepare-db-dir[3103]: See the MariaDB Knowledgebase at https://mariadb.com/kb
2月 08 18:08:41 Zabbix mariadb-prepare-db-dir[3103]: Please report any problems at https://mariadb.org/jira
2月 08 18:08:41 Zabbix mariadb-prepare-db-dir[3103]: The latest information about MariaDB is available at https://mariadb.org/.
2月 08 18:08:41 Zabbix mariadb-prepare-db-dir[3103]: Consider joining MariaDB's strong and vibrant community:
2月 08 18:08:41 Zabbix mariadb-prepare-db-dir[3103]: https://mariadb.org/get-involved/
2月 08 18:08:41 Zabbix systemd: Started MariaDB 10.5 database server.

システムを再起動した際は必ずsystemctl statusコマンドで状態を確認しよう!

 

3-2.文字化け対策をする

  1. 設定ファイルのバックアップを作成し、文字コードの変更を行う。
# cp /etc/my.cnf.d/mariadb-server.cnf /etc/my.cnf.d/mariadb-server.cnf_orgcp

# vi /etc/my.cnf.d/mariadb-server.cnf
[mysqld]に以下の項目を追加する
character-set-server = utf8
collation-server = utf8_bin
skip-character-set-client-handshake

 

  1. mariaDBを再起動して、変更したものを反映させる
# systemctl restart mariadb

# systemctl status mariadb

 

3-3.リポジトリの登録

  1. 以下のコマンドを実行することでリポジトリ登録を行うことができ、dnf installコマンドでZabbixをインストールすることができるようになります。
# rpm -Uvh https://repo.zabbix.com/zabbix/7.0/alma/9/x86_64/zabbix-release-7.0-2.el9.noarch.rpm
https://repo.zabbix.com/zabbix/7.0/alma/9/x86_64/zabbix-release-7.0-2.el9.noarch.rpm を取得中
警告: /var/tmp/rpm-tmp.TQ9W25: ヘッダー V4 RSA/SHA512 Signature、鍵 ID b5333005: NOKEY
Verifying... ################################# [100%]
準備しています... ################################# [100%]
更新中 / インストール中...
1:zabbix-release-7.0-2.el9 ################################# [100%]

# dnf clean all
キャッシュのクリアをすることで、リポジトリが使えるようになる

# dnf -y install zabbix-web-japanese
日本語環境に必要なパッケージのインストールをする

 

3-4.Zabbixのインストール

  1. セキュリティの向上、システムの安定化のため、パッケージの更新を行います。
# dnf -y update

 

  1. Zabbixのインストールに必要なパッケージが含まれているため、EPELリポジトリを追加します。
# dnf -y install epel-release

 

  1. EPELリポジトリからZabbix関連のパッケージをインストールするのを防ぐために、 [epel]に「excludepkgs=zabbix*」を追記します。
# vi /etc/yum.repos.d/epel.repo
[epel]
name=Extra Packages for Enterprise Linux $releasever - $basearch
# It is much more secure to use the metalink, but if you wish to use a local mirror
# place its address here.
#baseurl=https://download.example/pub/epel/$releasever/Everything/$basearch/
metalink=https://mirrors.fedoraproject.org/metalink?repo=epel-$releasever&arch=$basearch&infra=$infra&content=$contentdir
enabled=1
gpgcheck=1
countme=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-$releasever
excludepkgs=zabbix*

 

  1. Zabbixのサーバー、フロントエンド、エージェントなどの関連パッケージをインストール します。
# dnf -y install zabbix-server-mysql zabbix-web-mysql zabbix-apache-conf zabbix-sql-scripts zabbix-selinux-policy zabbix-agent

 

  1. データベースの設定 データベースの作成を行います。
# mysql -uroot -pmysql -uroot -p
Enter password: 
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 3
Server version: 10.5.27-MariaDB MariaDB Server

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> create database [任意のデータベース名] character set utf8mb4 collate utf8mb4_bin;
Query OK, 1 row affected (0.004 sec)

 

  1. データベースで使用するユーザを作成します。
MariaDB [(none)]> create user [任意のユーザ名]@localhost identified by '[任意のパスワード]';
Query OK, 0 rows affected (0.012 sec)

 

  1. 作成したユーザにすべての権限を付与します。
MariaDB [(none)]> grant all privileges on zabbix.* to zabbix@localhost;
Query OK, 0 rows affected (0.002 sec)

 

  1. 関数やストアドプロシージャを作成することを許可するために設定を変更します。
MariaDB [(none)]> set global log_bin_trust_function_creators = 1;
Query OK, 0 rows affected (0.001 sec)

MariaDB [(none)]> quit
Bye

 

  1. Zabbixがデータベースを使用するための準備をします。
# zcat /usr/share/zabbix-sql-scripts/mysql/server.sql.gz | mysql --default-character-set=utf8mb4 -uzabbix -p zabbixzcat /usr/share/zabbix-sql-scripts/mysql/server.sql.gz | mysql --default-character-set=utf8mb4 -u[作成したユーザ] -p [作成したデータベース名]
Enter password: [先ほど設定したパスワード]

 

  1. 「log_bin_trust_function_creators」を無効化します。
# mysql -uroot -p
MariaDB [(none)]> set global log_bin_trust_function_creators = 0;
Query OK, 0 rows affected (0.001 sec)

MariaDB [(none)]> quit

 

  1. Zabbixサーバーがデータベースに接続するためのパスワードを指定します。
# cp /etc/zabbix/zabbix_server.conf /etc/zabbix/zabbix_server.conf_org

# cat /etc/zabbix/zabbix_server.conf
以下のようになっているのを確認する
# DBPassword=

# vi /etc/zabbix/zabbix_server.conf
以下のように修正する
DBPassword=[パスワードを入力]

 

  1. Zabbixサーバとエージェントのプロセスを再起動させます。
# systemctl restart zabbix-server zabbix-agent httpd php-fpm
# systemctl enable zabbix-server zabbix-agent httpd php-fpm
# systemctl status zabbix-server
# systemctl status zabbix-agent
# systemctl status httpd
# systemctl status php-fpm

 

  1. Zabbixで使用するポートを開けます。
# firewall-cmd --add-port=10051/tcp --zone=public --permanent
# firewall-cmd --add-port=80/tcp --zone=public --permanent
# firewall-cmd --reload

3-5.GUIにてのZabbix設定

  1. http://IPアドレス/zabbixでZabbixにアクセスする
  2. 言語を日本語に設定する。
  3. 条件がすべて「OK」になっていることを確認する。
  4. データベースポートを[3306]、作成したユーザ名、パスワードを入力する。
  5. タイムゾーンを日本時間に設定する。
  6. 設定した値を再確認する。
  7. [終了]ボタンを押下する。
  8. ユーザ名:Admin パスワード:zabbixで初期ログインする。
  9. ログインに成功し、以下の画面が表示されればZabbixのインストール完了!
    意外と簡単だった!

4.まとめ

Zabbixサーバ、エージェントのインストール方法を紹介させていただきました! 今回は、インストールのみでしたが、Zabbixにはまだまだ便利な機能等ありますので、 ぜひたくさん触って使いこなしてみてください!

今後も、インフラ系の情報を発信していきたいと思います。 最後まで読んでいただき、ありがとうございました。