CentOS Stream 8上にzabbixバージョン6.0のインストール

※本サイトはアフィリエイト広告を利用しています。
広告

本記事の概要

インフラエンジニアとして業務に行う場合、各機器(サーバやネットワーク機器)の異常を早期発見して、対処することが求められます。
サーバやネットワーク機器などの稼働監視で使用するzabbixというソフトウェアをインストールします。
今回は前の記事でインストールしたVirtualBox上にCentOS Stream 8をインストールして、その中にzabbixをインストールすることを想定しています。

※本記事の作成日(2022年5月14日)時点での動作確認をしていますが、Webページなどが更新されている可能性があります。適宜読み替えてください。

以下のようなイメージで作成します。
CentOS Stream 8上にzabbixバージョン6.0のインストール(1)

ソフトウェアの構成

以下のソフトウェアを用いて、zabbixサーバを構築します。

  • VirtualBox(※)
  • CentOS Stream 8
  • Zabbix 6.0
  • Apache (Webサーバ用のソフトウェア)
  • MySQL (データベース用のソフトウェア)

   ※VirtualBoxのインストール方法が分からない場合は、「仮想基盤構築のためにVirtualboxインストール」をご確認ください。

Zabbixとは

zabbixとは、サーバやネットワーク機器を監視するためのソフトウェアです。
オープンソース・ソフトウェアとして開発されているため、無償で使用することができます。
zabbixでは、ping監視、通信ポート監視、OSの性能監視(CPU、メモリ、ディスクI/Oの負荷)、サービス監視、ログ監視など様々な監視をすることができます。

CentOS Stream 8のインストール手順

zabbixサーバのOSと動作するCentOS Stream 8をVirtualbox上にインストールする手順を記載します。

(1) ブラウザを起動して、以下のCentOSのダウンロードサイトにアクセスします。
   https://www.centos.org/download/

(2) [CentOS Stream]-[8]-[x86_64]をクリックします。
CentOS Stream 8上にzabbixバージョン6.0のインストール(2)

(3) 任意のダウンロードサイトをクリックします。
CentOS Stream 8上にzabbixバージョン6.0のインストール(3)

(4) CentOS Srtram 8のISOファイルをクリックして、ダウンロードします。
CentOS Stream 8上にzabbixバージョン6.0のインストール(4)

(5) Virtualboxを起動します。その後、「ツール」をクリックして、「新規」をクリックします。
CentOS Stream 8上にzabbixバージョン6.0のインストール(5)

(6) 「名前」、「タイプ」、「バージョン」の3つの値を設定して、「次へ」をクリックします。
CentOS Stream 8上にzabbixバージョン6.0のインストール(6)

(7) 「メモリサイズ」を設定して、「次へ」をクリックします。
以下のzabbix公式サイトに「CPUのコア数:2CPU」、「メモリ:2GB」程度あれば動作する旨の記載がありますが、今回は4GBを設定します。
 https://www.zabbix.com/documentation/6.0/en/manual/installation/requirements
CentOS Stream 8上にzabbixバージョン6.0のインストール(7)

(8) 「仮想ハードディスクを作成する」を選択して、「作成」をクリックします。
CentOS Stream 8上にzabbixバージョン6.0のインストール(8)

(9) 「VDI(VirtualBox Disk Image)」を選択して、「次へ」をクリックします。
CentOS Stream 8上にzabbixバージョン6.0のインストール(9)

(10) 「可変サイズ」を選択して、「次へ」をクリックします。
CentOS Stream 8上にzabbixバージョン6.0のインストール(10)

(11) 「仮想ハードディスクのサイズ」を選択して、「作成」をクリックします。
zabbixの環境により異なりますが、今回は「16.00GB」を設定します。
CentOS Stream 8上にzabbixバージョン6.0のインストール(11)

(12) 先ほど作成した仮想マシンを選択して、「設定」をクリックします。
CentOS Stream 8上にzabbixバージョン6.0のインストール(12)

(13) 「システム」の「プロセッサー」の「プロセッサー数」を2に変更します。
CentOS Stream 8上にzabbixバージョン6.0のインストール(12)-2

(14) 「ストレージ」の「コントローラ IDE」のディスクを選択して、右にあるディスクのアイコンをクリックします。
CentOS Stream 8上にzabbixバージョン6.0のインストール(13)

(15) 読み込むISOファイルを選択し、「コントローラ IDE」の値が変わったことを確認します。
その後、「OK」をクリックします。
CentOS Stream 8上にzabbixバージョン6.0のインストール(14)

(16) 作成した仮想マシンをダブルクリックして、起動します。
CentOS Stream 8上にzabbixバージョン6.0のインストール(15)

(17) 読み込みISOファイル(CentOS Stream 8のISOファイル)が選択されていることを確認して、「起動」をクリックします。
CentOS Stream 8上にzabbixバージョン6.0のインストール(16)

(18) 「日本語」-「日本語(日本)」を選択して、「続行」をクリックします。
CentOS Stream 8上にzabbixバージョン6.0のインストール(17)

(19) 「インストール先」をクリックします。
CentOS Stream 8上にzabbixバージョン6.0のインストール(18)

(20) 「ローカルの標準ディスク」を選択して、「完了」をクリックします。
CentOS Stream 8上にzabbixバージョン6.0のインストール(19)

(21) 「インストール先」のアイコンの注意マークが消えたことを確認します。
CentOS Stream 8上にzabbixバージョン6.0のインストール(20)

(22) 「ソフトウェアの選択」をクリックします。
CentOS Stream 8上にzabbixバージョン6.0のインストール(21)

(23) 「Minimal Install」を選択して、「完了」をクリックします。
不要なソフトウェアをインストールすると、ディスク容量を使用し、ソフトウェアの脆弱性が増える可能性があるため、「Minimal Install(最小限のインストール)」でインストールすることを推奨します
CentOS Stream 8上にzabbixバージョン6.0のインストール(22)

(24) 「ソフトウェアの選択」が「Minimal Install」になっていることを確認します。
CentOS Stream 8上にzabbixバージョン6.0のインストール(23)

(25) 下部にある「root パスワード」をクリックします。
CentOS Stream 8上にzabbixバージョン6.0のインストール(24)

(26) rootユーザのパスワードを入力して、「完了」をクリックします。
CentOS Stream 8上にzabbixバージョン6.0のインストール(25)

(27) 「root パスワード」のアイコンの注意マークが消えたことを確認します。
CentOS Stream 8上にzabbixバージョン6.0のインストール(26)

(28) 一般ユーザーを作成するために、「ユーザーの作成」をクリックします。
CentOS Stream 8上にzabbixバージョン6.0のインストール(27)

(29) 「ユーザー名」と「パスワード」を入力して、「完了」をクリックします。
CentOS Stream 8上にzabbixバージョン6.0のインストール(28)

(30) 「ユーザーの作成」に作成したユーザー名が表示されることを確認します。その後、「インストールの開始」をクリックします。
CentOS Stream 8上にzabbixバージョン6.0のインストール(29)

(31) インストールが終わるまでしばらく待って、「システムの再起動」をクリックします。
CentOS Stream 8上にzabbixバージョン6.0のインストール(30)

SELinuxの無効化

SELinux (Security-Enhanced Linux) とは、システム上のアプリケーション、プロセス、ファイルのアクセス制御をします。
SELinuxが有効化されているとzabbixは正常に動作しないため、無効化する必要があります。
本章では、SELinuxが無効化する手順を記載します。

(1) CentOS Streamを起動して、rootユーザでログインします。
  ・ユーザ名:root
  ・パスワード:[インストール時に設定したパスワード]

(2) 以下のコマンドを実行して、SELinuxが無効(Disabled)になっていない場合は無効にします。

# getenforce ← 「Disabled」以外が出力された場合、以下の手順を実施
  【「Disabled」以外が出力された場合の手順】
    # vi /etc/selinux/config
      →「SELINUX=enforcing」を「SELINUX=disabled」を変更します。

     ※viコマンド実行後は、以下のキーを入力して、ファイルを編集します。
       「i」で編集モードに入って、ファイルの内容を変更します。
       「ESC」で編集モード終了します。
       「:wq」で保存して終了します。


(3) 以下のコマンドを実行して、OSを再起動します。

# reboot


(4) OS起動後、rootユーザでログインします。

(5) 以下のコマンドを実行して、SELinuxが無効化されていることを確認します。

# getenforce ← 「Disabled」と出力されることを確認します。


MARIADBのインストールおよびアップグレード

zabbixのバージョン6.0の場合、MARIADBのバージョン10.5以上がサポートされています。
そのため、本章ではMARIADBをインストールしてバージョン10.5にアップグレードする手順を記載します。
アップグレード手順については、「9.2.8.2. RHEL 8 バージョンの MariaDB 10.3 から MariaDB 10.5 へのアップグレード Red Hat Enterprise Linux 8 | Red Hat Customer Portal」を参考にしています。

(1) 以下の手順を実施して、ネットワークを有効化します。
  「nmtui」コマンドを実行して、「Activate a connection」を選択(※)します。
   ※キーボード「↓」「↑」で移動し、「Enter」を押して選択します。zabbixインストール(2)

  インターフェース名の場所を選択して、インターフェースを有効化(※1)します。
  以下の状態になっていたらインターフェースが有効になっています。
    ・インターフェース名の横に※マークがある
    ・インターフェース選択時に「Deactivate」という表記になっている
  その後、「Back」を選択します。
    ※1 キーボード「↓」「↑」「→」「←」で移動し、「Enter」を押して選択します。
  zabbixインストール(3)

  その後、「Quit」を選択します。
  zabbixの構築_3

  「ip a」コマンドを実行して、インターフェースのIPアドレスが表示されていることを確認します。
  zabbixインストール(5)

(2) 以下のコマンドを実行して、MARIADBをインストールします。

# dnf install -y mariadb-server



(3) 以下のコマンドを実行して、MARIADBをバージョン10.5にアップグレードします。

# systemctl stop mariadb
# yum distro-sync -y
# yum module reset mariadb -y
# yum module enable mariadb:10.5 -y
# yum distro-sync -y
# systemctl start mariadb
# mariadb-upgrade
  →「This installation of MariaDB is already upgraded to 10.5.9-MariaDB, use --force if you still need to run mysql_upgrade」が出力されることを確認します。
# systemctl restart mariadb


日本語の文字化け対策

zabbixのバージョン6.0の設定中に日本語の文字列を設定すると、文字化けしてしまいます。
そのため、MARIADBの文字コードの変更と日本語環境に必要なパッケージをインストールします。

(1) 以下のコマンドを実行して、MARIADBの文字コードを変更します。

# cp /etc/my.cnf.d/mariadb-server.cnf /etc/my.cnf.d/mariadb-server.cnf_org
# vi /etc/my.cnf.d/mariadb-server.cnf
  ⇒以下のように「[mysqld]」の以下の3行を追記します。
     [mysqld]
    (中略)
    character-set-server = utf8
    collation-server = utf8_bin
    skip-character-set-client-handshake


(2) 以下のコマンドを実行して、MARIADBの自動起動を有効化します。

# systemctl restart mariadb
# systemctl enable mariadb


(3) 以下のコマンドを実行して、日本語環境に必要なパッケージをインストールします。

# rpm -Uvh https://repo.zabbix.com/zabbix/6.0/rhel/8/x86_64/zabbix-release-6.0-1.el8.noarch.rpm
# dnf clean all
# dnf -y install zabbix-web-japanese


Zabbixのバージョン6.0のインストール

zabbixのバージョン6.0を構築するための手順を記載します。

(1) 以下のコマンドを実行して、パッケージを更新します。

# dnf -y update


(2) 必要なソフトウェアをインストールために、以下のコマンドを実行します。

# dnf -y install zabbix-server-mysql zabbix-web-mysql zabbix-apache-conf zabbix-sql-scripts zabbix-selinux-policy zabbix-agent


(3) 以下のコマンドを実行して、データベースの作成及びテーブルを作成します。

# mysql -uroot -p
Enter password:   ← 何も入力せず[Enter]を押す
MariaDB [(none)]> create database zabbix character set utf8mb4 collate utf8mb4_bin;
MariaDB [(none)]> create user zabbix@localhost identified by '[任意のパスワード]';
MariaDB [(none)]> grant all privileges on zabbix.* to zabbix@localhost;
MariaDB [(none)]> quit;
# zcat /usr/share/doc/zabbix-sql-scripts/mysql/server.sql.gz | mysql -uzabbix -p zabbix


(4) 以下のコマンドを実行して、Zabbizサーバのためのデータベースの設定を変更します。

# cp /etc/zabbix/zabbix_server.conf /etc/zabbix/zabbix_server.conf_org
# vi /etc/zabbix/zabbix_server.conf

iを入力して編集モードに変更して、以下の行を編集します。
【変更前】
# DBPassword=
【変更後】
DBPassword=[パスワードを入力]


(5) 以下のコマンドを実行して、Zabbixサーバとエージェントのプロセスを起動します。

# systemctl restart zabbix-server zabbix-agent httpd php-fpm
# systemctl enable zabbix-server zabbix-agent httpd php-fpm


(6) 以下のコマンドを実行して、zabbixで使用する通信ポートを開放します。

# firewall-cmd --add-port=10051/tcp --zone=public --permanent
# firewall-cmd --add-port=80/tcp --zone=public --permanent
# firewall-cmd --reload


(7) ブラウザを起動して、「http://[zabbixサーバのIPアドレス]/zabbix」にアクセスします。その後、デフォルトの言語を「日本語(ja_JP)」に設定して、「次のステップ」をクリックします。
CentOS Stream 8上にzabbixバージョン6.0のインストール(35)

(8) 全てのステータスがOKになっていることを確認して、「次のステップ」をクリックします。
CentOS Stream 8上にzabbixバージョン6.0のインストール(36)

(9) 「データベースポート:3306」、「パスワード:[設定したパスワード]」を入力して、「次のステップ」をクリックします。
CentOS Stream 8上にzabbixバージョン6.0のインストール(37)

(10) 「Zabbixサーバー名:[任意の名前]」、「デフォルトのタイムゾーン:(UTC +9:00)Asia/Tokyo」を入力して、「次のステップ」をクリックします。
CentOS Stream 8上にzabbixバージョン6.0のインストール(38)

(11) 設定した値を確認して、「次のステップ」をクリックします。
CentOS Stream 8上にzabbixバージョン6.0のインストール(39)

(12) インストールが成功した旨のメッセージが表示されていることを確認して、「Finish」をクリックします。
CentOS Stream 8上にzabbixバージョン6.0のインストール(40)

(13) 「ユーザ名:Admin」、「パスワード:zabbix」を入力して、「サインイン」をクリックします。
CentOS Stream 8上にzabbixバージョン6.0のインストール(41)

(14) ダッシュボード画面が表示されることを確認します。
CentOS Stream 8上にzabbixバージョン6.0のインストール(42)




【補足】 zabbixによるSNMP監視の設定

もしzabbixサーバを用いてSNMP trapを用いた監視をする場合、本手順を実施する必要があります。
本手順はzabbixの公式サイトである「https://www.zabbix.com/documentation/2.0/jp/manual/config/items/itemtypes/snmptrap」を参考にして作成しています。

(1) 以下のコマンドを実行して、zabbixでSNMP監視をするために必要なパッケージをインストールします。

# dnf install -y net-snmp net-snmp-utils net-snmp-perl wget tar

(2) 以下のコマンドを実行して、SNMP trapを処理するためのスクリプトを格納します。

# wget https://cdn.zabbix.com/zabbix/sources/stable/6.0/zabbix-6.0.4.tar.gz
# tar zxvf zabbix-6.0.4.tar.gz
# cp -p zabbix-6.0.4/misc/snmptrap/zabbix_trap_receiver.pl /usr/local/bin/

(3) 以下のコマンドを実行して、スクリプトの実行結果のログの格納先を設定します。

# vi /usr/local/bin/zabbix_trap_receiver.pl

【変更前】
$SNMPTrapperFile = '/tmp/zabbix_traps.tmp';
$DateTimeFormat = '%H:%M:%S %Y/%m/%d';
【変更後】
$SNMPTrapperFile = '/var/log/snmptrap/snmptrap.log';
$DateTimeFormat = '%H:%M:%S %Y/%m/%d';

(4) 以下のコマンドを実行して、スクリプトに実行権限を付与します。

# chmod +x /usr/local/bin/zabbix_trap_receiver.pl

(5) 以下のコマンドを実行して、スクリプトのログ格納場所のディレクトリを作成します。

# mkdir /var/log/snmptrap

(6) 以下のコマンドを実行して、snmptrapdの設定を変更します。以下の設定値は、SNMPのバージョンはSNMPv2で、コミュニティ名が「public」を使用することを想定しています。

# vi /etc/snmp/snmptrapd.conf

【追記内容】
authCommunity log,execute,net public
perl do "/usr/local/bin/zabbix_trap_receiver.pl";

(7) 以下のコマンドを実行して、snmptrapdサービスの起動及び自動起動をします。

# systemctl start snmptrapd
# systemctl enable snmptrapd

(8) 以下のコマンドを実行して、SNMP trapの送信テストを実行すると、ログファイルに格納されたことを確認します。

# snmptrap -v 2c -c public 127.0.0.1 '' .1.3.6.1.6.3.1.1.5.3

# cat /var/log/snmptrap/snmptrap.log
  ⇒SNMP trapのログが出力されることを確認します。

(9) 以下のコマンドを実行して、zabbixサーバ側でSNMP trapの受信を有効にします。

# vi /etc/zabbix/zabbix_server.conf

【変更前】
# StartSNMPTrapper=0
【変更後】
StartSNMPTrapper=1

(10) 以下のコマンドを実行して、zabbix-serverサービスを再起動します。

# systemctl restart zabbix-server

(11) 以下のコマンドを実行して、SNMP trapのポート(161/udp)のファイアウォールを開放します。

# firewall-cmd --add-port=161/udp --zone=public --permanent
# firewall-cmd --reload

(12) 以下のコマンドを実行して、ログローテーションを有効にします。

# vi /etc/logrotate.d/snmptrap

【設定内容】
/var/log/snmptrap/snmptrap.log {
    daily
    rotate 20
    compress
    delaycompress
    missingok
    notifempty
}


zabbix関連の記事

zabbix関連の記事は以下の通りです。
必要に応じて、ご確認ください。

Noタイトル記事の概要
1zabbixのハンズオン形式での勉強
(構築、監視設定、アラート確認)
zabbixのおすすめの勉強方法をご紹介します。
2仮想基盤構築(Virtualboxインストール)
Virtualboxバージョン6
Virtualboxバージョン7
zabbixサーバを構築するための準備として、
仮想基盤のソフトウェアであるVirtualboxを
インストールします。
3zabbixサーバのインストール

〇zabbixバージョン5.0
[仮想環境に構築]
CentOS Stream 8Ubuntu 20.04
[クラウド環境に構築]
さくらインターネットConoHa VPS
カゴヤ

〇zabbixバージョン6.0
[仮想環境に構築]
CentOS Stream 8

〇zabbixバージョン7.0
[仮想環境に構築]
CentOS Stream 9
zabbixサーバを構築します。
4zabbixの監視設定の流れzabbixの監視設定の流れを理解します。
5zabbixの推奨の監視項目と
zabbix agentのインストール
  ・zabbixバージョン5.0の場合
  ・zabbixバージョン6.0の場合
  ・zabbixバージョン7.0の場合
zabbixにて監視する推奨の項目と、
監視対象サーバにzabbix agentを
インストールする手順を理解します。
5-1死活監視(ping監視)
  ・zabbixバージョン5.0の場合
  ・zabbixバージョン6.0の場合
  ・zabbixバージョン7.0の場合
死活監視の設定をします。
5-2TCP通信ポート応答監視
  ・zabbixバージョン5.0の場合
  ・zabbixバージョン6.0の場合
  ・zabbixバージョン7.0の場合
TCPの通信ポートの応答有無を監視する
設定をします。
5-3CPU使用率監視
  ・zabbixバージョン5.0の場合
  ・zabbixバージョン6.0の場合
  ・zabbixバージョン7.0の場合
サーバのOSのCPU使用率を監視する
設定をします。
5-4メモリ空き容量監視
  ・zabbixバージョン5.0の場合
  ・zabbixバージョン6.0の場合
  ・zabbixバージョン7.0の場合
メモリの空き容量を監視する設定をします。
5-5ドライブのディスク空き容量監視
  ・zabbixバージョン5.0の場合
  ・zabbixバージョン6.0の場合
  ・zabbixバージョン7.0の場合
ドライブのディスク空き容量を
監視する設定をします。
5-6プロセス監視
  ・zabbixバージョン5.0の場合
  ・zabbixバージョン6.0の場合
  ・zabbixバージョン7.0の場合
プロセスの停止を監視する設定をします。
5-7ログファイル監視
  ・zabbixバージョン5.0の場合
  ・zabbixバージョン6.0の場合
  ・zabbixバージョン7.0の場合
ログファイル中に特定のメッセージが
出力されたか監視します。
5-8ファイルの変更(チェックサム)監視
  ・zabbixバージョン5.0の場合
  ・zabbixバージョン6.0の場合
  ・zabbixバージョン7.0の場合
ファイルの内容が変わったことを
監視します。
5-9Windows OSのサービス状態監視
  ・zabbixバージョン5.0の場合
  ・zabbixバージョン6.0の場合
  ・zabbixバージョン7.0の場合
Windows OSのサービスの起動状態を
監視します。
5-10Windowsイベントログ監視
  ・zabbixバージョン5.0の場合
  ・zabbixバージョン6.0の場合
  ・zabbixバージョン7.0の場合
Windowsイベントログに特定のログが
出力されたか監視します。
5-11Webシナリオ(Webページ監視)
  ・zabbixバージョン5.0の場合
  ・zabbixバージョン6.0の場合
  ・zabbixバージョン7.0の場合
Webアクセス時のHTTPステータスコードが
200番であることを監視します。
5-12SNMP trap監視
  ・zabbixバージョン5.0の場合
  ・zabbixバージョン6.0の場合
  ・zabbixバージョン7.0の場合
機器から送信されたSNMP trapを
受信したことを監視します。
5-13ネットワーク機器監視
  ・zabbixバージョン5.0の場合
  ・zabbixバージョン6.0の場合
  ・zabbixバージョン7.0の場合
ネットワーク機器の監視設定をします。
6zabbixの監視データの確認と
メール通知設定
監視データの確認方法を理解します。
また、障害発生時のアラートメールの
通知設定をします。
7zabbixの詳細設計書(パラメータシート)の
サンプル
zabbixのパラメータシートのサンプルを
記載します。
8【仕事依頼】zabbixサーバの
要件定義、設計、構築
zabbixの構築作業をご依頼いただける場合の
作業の流れなどを記載します。


zabbix関連の書籍

zabbixに関する設定を網羅的および詳細に学びたい場合、以下の書籍がおすすめです。
ページ数が多い書籍ですので、分からないことを調べる辞書の役割にもなります。