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

広告

本記事の概要

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

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

以下のようなイメージで作成します。

ソフトウェアの構成

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

    ※VirtualBoxのインストール手順は以下の記事をご確認ください。
      https://security-blog-it.com/22/

Zabbixとは

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

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

CentOS Stream 8のインストール手順
  1. ブラウザを起動して、以下のCentOSのダウンロードサイトにアクセスします。
    https://www.centos.org/centos-stream/
  2. 「CentOS Stream」の「x86_64」をクリックします。
    CentOS8のダウンロード

  3. いずれかのURLをクリックして、CentOSのisoイメージをダウンロードします。
    CentOS8のダウンロード2

  4. ダウンロードが完了したら、「CentOS-Stream-8-x86_64-YYYYMMDD-dvd1.iso」があることを確認します。(YYYYMMDDは年月日です。)
    CentOS8のダウンロード3

  5. Virtualboxを起動して、「新規」をクリックします。
    Virtualbox起動

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

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

  8. 「仮想ハードディスクを作成する」を選択して、「作成」をクリックします。
    CentOSインストール(3)

  9. 「VDI(VirtualBox Disk Image)」を選択して、「次へ」をクリックします。
    CentOSインストール(4)

  10. 「可変サイズ」を選択して、「次へ」をクリックします。
    CentOSインストール(5)

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

  12. 先ほど作成した仮想マシンを選択して、「設定」をクリックします。
    CentOSインストール(7)

  13. 「システム」の「プロセッサー」タブを選択して、CPUのコア数を2に変更します。
    CentOSインストール(8)

  14. 「ネットワーク」の「アダプター1」が有効化されて、NATが設定されていることを確認します。
    CentOSインストール(30)

  15. 「アダプター2」を選択して、「ネットワークアダプターを有効化」にチェックをつけて、割り当てを「ホストオンリーアダプター」に設定します。
    CentOSインストール(31)

  16. 「ストレージ」の「コントローラ IDE」のディスクを選択して、右にあるディスクのアイコンをクリックします。
    CentOSインストール(9)

  17. 読み込むisoファイルを選択し、「コントローラ IDE」の値が変わったことを確認します。
    その後、「Live CD/DVD」にチェックをつけて、「OK」をクリックします。
    CentOSインストール(10)-1

  18. 作成した仮想マシンをダブルクリックして、起動します。
    CentOSインストール(11)

  19. 「日本語」-「日本語(日本)」を選択して、「続行」をクリックします。
    CentOSインストール(12)

  20. 「ソフトウェアの選択」をクリックします。
    CentOSインストール(13)

  21. 「最小限のインストール」を選択して、「完了」をクリックします。
    不要なソフトウェアをインストールすると、ディスク容量を使用し、ソフトウェアの脆弱性が増える可能性があるため、「最小限のインストール」でインストールすることを推奨します。
    CentOSインストール(14)

  22. 「ソフトウェアの選択」が「最小限のインストール」になっていることを確認します。
    CentOSインストール(15)

  23. 「インストール先」をクリックします。
    CentOSインストール(16)

  24. 「ローカルの標準ディスク」を選択して、「完了」をクリックします。
    CentOSインストール(17)

  25. 「インストール先」のアイコンの注意マークが消えたことを確認します。
    CentOSインストール(18)

  26. 下部にある「root パスワード」をクリックします。
    CentOSインストール(19)

  27. rootユーザのパスワードを入力して、「完了」をクリックします。
    CentOSインストール(20)

  28. 「インストールの開始」をクリックします。
    CentOSインストール(21)

  29. インストールが完了するまで待って、「システムの再起動」をクリックします。
    CentOSインストール(22)



    ※もし起動後に、再度インストール画面が表示された場合、以下の操作を行います。
    (1) VirtualBoxを起動して、仮想マシンを選択して、「設定」をクリックします。
       CentOSインストール(7)


    (2) 「ストレージ」の「コントローラ IDE」のディスクを選択して、
      右にあるディスクのアイコンをクリックします。
      ドロップダウンメニューから「仮想ドライブからディスクを除去」を
      クリックします。
       CentOSインストール(10)-3

    (3) 「ストレージ」の「コントローラ IDE」のディスクが空になったことを確認して、
      「OK」をクリックします。
       CentOSインストール(10)-4

zabbixのインストール

zabbixのインストール

※今回の記載している構築手順は以下の公式サイトの手順を参考にして作成しています。
 個人のブログは間違った記載がある可能性がありますので、zabbix以外のソフトウェアについても構築する前に、一次情報元である公式サイトを一度読むことを推奨します。

 【zabbix公式サイトのURL】
  https://www.zabbix.com/download?zabbix=5.0&os_distribution=centos&os_version=8&db=mysql&ws=apache

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

  2. 以下のコマンドを実行して、SELinuxが無効(Disabled)になっていない場合は無効にします。
    # getenforce ← 「Disabled」以外が出力された場合、以下の手順を実施

    「Disabled」以外が出力された場合の手順
      # vi /etc/selinux/config ← 以下の矢印の行「SELINUX=disabled」を変更します。
        zabbixの構築_2
         ※viコマンド実行後は、以下のキーを入力して、ファイルを編集します。
           「i」で編集モードに入って、ファイルの内容を変更します。
           「ESC」で編集モード終了します。
           「:wq」で保存して終了します。

      # reboot
      OS起動後、rootユーザでログインします。
        ・ユーザ名:root
        ・パスワード:[インストール時に設定したパスワード]
      # getenforce ← 「Disabled」と出力されることを確認します。
  3. 「nmtui」コマンドを実行して、ネットワークを有効化します。
    「Activate a connection」を選択(※)します。
      ※キーボード「↓」「↑」で移動し、「Enter」を押して選択しますzabbixインストール(2)

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

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

  5. パッケージを更新します。
    # dnf -y update
  6. タイムゾーンを日本に変更します。
    # timedatectl set-timezone Asia/Tokyo
    # timedatectl ← タイムゾーンが「Asia/Tokyo」のことを確認
  7. Zabbixレポジトリのインストールするために、以下のコマンドを実行します。
    # rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/8/x86_64/zabbix-release-5.0-1.el8.noarch.rpm
    # dnf clean all

  8. Zabbixサーバ構築に必要なソフトウェアをインストールために、以下のコマンドを実行します。
    # dnf install -y mariadb-server
    # systemctl start mariadb
    # systemctl enable mariadb
    # dnf -y install zabbix-server-mysql zabbix-web-mysql zabbix-apache-conf zabbix-agent

  9. データベースの作成するために、以下のコマンドを実行します。
    # mysql -uroot -p
    Enter password:   ← 何も入力せず[Enter]を押す
    MariaDB [(none)]> create database zabbix character set utf8 collate utf8_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-server-mysql*/create.sql.gz | mysql -uzabbix -p zabbix
  10. Zabbixサーバのデータベースの設定するために、以下のコマンドを実行します。
    # vi /etc/zabbix/zabbix_server.conf
       →最後の行に「DBPassword=[先ほど設定したパスワード]」を追記する。
  11. PHPを設定するために、以下のコマンドを実行して、以下の箇所を変更します。
    # vi /etc/php-fpm.d/zabbix.conf
       変更前 : 「; php_value[date.timezone] = Europe/Riga」
       変更後 : 「php_value[date.timezone] = Asia/Tokyo」

  12. 各種サービスの起動と自動起動の設定するために、以下のコマンドを実行します。
    # systemctl restart zabbix-server zabbix-agent httpd php-fpm
    # systemctl enable zabbix-server zabbix-agent httpd php-fpm

  13. zabbixで使用する通信ポートを開放します。
    # firewall-cmd --add-port=10051/tcp --zone=public --permanent
    # firewall-cmd --add-port=80/tcp --zone=public --permanent
    # firewall-cmd --reload

  14. ブラウザを起動して、zabbixの管理画面にアクセスします。
     zabbixの管理画面のURL : http://[zabbixサーバのIPアドレス]/zabbix
  15. 「Next Step」をクリックします。
    zabbixインストール(6)

  16. すべての項目がOKになっていることを確認して、「Next Step」をクリックします。
    zabbixインストール(7)
    zabbixインストール(8)
    zabbixインストール(9)

  17. 「Database port:3306」、「Password:[設定したパスワード]」を入力して、「Next step」をクリックします。
    zabbixインストール(10)

  18. 「Next step」をクリックします。
    zabbixインストール(11)

  19. 設定した値を確認して、「Next step」をクリックします。
    zabbixインストール(12)

  20. インストールが成功した旨のメッセージが表示されていることを確認して、「Finish」をクリックします。
    zabbixインストール(13)

  21. 「ユーザ名:Admin」、「パスワード:zabbix」を入力して、「Sign in」ボタンをクリックします。
    zabbixインストール(14)

  22. ダッシュボード画面が表示されることを確認します。
    zabbixインストール(15)

【補足】 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

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

# wget https://cdn.zabbix.com/zabbix/sources/stable/5.0/zabbix-5.0.9.tar.gz
# tar zxvf zabbix-5.0.9.tar.gz
# cp -p zabbix-5.0.9/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のポート(162/udp)のファイアウォールを開放します。

# firewall-cmd --add-port=162/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インストール)zabbixサーバを構築するための準備として、
仮想基盤のソフトウェアであるVirtualboxを
インストールします。
3zabbixサーバのインストール

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

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


zabbix関連の書籍

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