Vagrant+VirtualBoxで仮想サーバ構築②Zabbixサーバ編

2023年08月30日
 
2023年08月30日

こんにちは。ゆーろんです。
今回はVagrant+VirtualBoxで監視ツールであるZabbixサーバ(Manager)と監視対象のZabbixエージェント(監視対象サーバ)をローカルで立ててみましたので、手順を紹介します。

説明

VirtualBoxとは

ホスト型の仮想化ソフトウェア。

Oracle VirtualBox

Vagrantとは

一言でいうと仮想マシンなどを簡単に構築/操作するためのソフトウェア。

VirtualBoxやVMwareを直接操作せずともエージェントとして操作できる。
ちなみにTerraformと同じHashiCorp製。

OGPサムネイル

Vagrant by HashiCorp

Vagrant enables users to create and configure lightweight, reproducible, and portable development environments.

AlmaLinuxについて

RHELのクローン。
サーバ用Linuxの事実上の標準だったCentOSの開発終了に伴い、AlmaLinuxまたはRockyLinuxに移行するケースが多いようです。

今回の環境ではAlmaLinux8を使用します。

Zabbixについて

OSSの統合監視ツールです。他の監視ツールにはNagiosなどがあります。

OSのプロセス、ネットワーク、ログ監視はもちろんミドルウェアまで監視可能。

監視対象はWindows、Linux、商用UNIX、SNMP対応ネットワーク機器などです。

OGPサムネイル

Zabbix :: The Enterprise-Class Open Source Network Monitoring Solution

Zabbix is an enterprise-class, open-source monitoring solution that makes network monitoring and application monitoring

環境

  1. VirtualBox 6.1.38
  2. Vagrant 2.2.19
  3. ゲストOS: AlmaLinux 8
  4. ホストOS: Ubuntu 22.04 (LTS)

環境構築

Vagrant+VirtualBoxの環境構築に関しては割愛します。
またVirtualBoxにおける構成イメージは以下図の通り。

zu

Vagrant+VirtualBoxの設定

以下リポジトリから構築用データのダウンロード。

OGPサムネイル

GitHub - yuron3141/zabbix-vb-sample

Contribute to yuron3141/zabbix-vb-sample development by creating an account on GitHub.

ターミナルを用いて以下コマンドをダウンロードしたリポジトリ内で実行


vagrant up zabbix_
vagrant up zabbix_agent

2つのVMが立ち上がったらvagrant ssh zabbix_でssh接続します。

以下内容をzabbixマネージャに実施する。

  1. MySQLのサービスの起動/有効化
  2. MySQLにzabbix用のデータベース,ユーザを作成
  3. 2で作成したデータベースにzabbixデータの挿入
  4. Zabbixサーバの設定ファイルの設定/phpのタイムゾーンの変更を行う
  5. Zabbixサーバ、Apache等の起動/有効化
  6. Firewallの起動とポートの設定

上記実施後はブラウザにて監視の設定を行います。

Zabbix Mannagerに対する設定

MySQLのサービスの起動/有効化

sudo systemctl start mysqld
sudo systemctl enable mysqld

MySQLの初期設定を以下コマンドで実施します。
なおrootのパスワードは例ではpasswordとしました。

sudo mysql_secure_installation

MySQLにzabbix用のデータベース,ユーザを作成

MySQLにrootで接続し、zabbix用データベースとユーザを作成します。
なおzabbixユーザのパスワードは例ではzabbixとしました。

sudo mysql -u root -ppassword <<EOF
CREATE DATABASE zabbix CHARACTER SET utf8 COLLATE utf8_bin;
CREATE USER zabbix@localhost IDENTIFIED BY "zabbix";
GRANT ALL PRIVILAGES ON zabbix.* TO zabbix@"localhost";
FLUSH PRIVILAGES;
EOF

2で作成したデータベースにzabbixデータの挿入

以下コマンドでzabbixデータベースにデータ挿入する。

sudo zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -pzabbix zabbix

zabbixサーバの設定ファイルの設定/phpのタイムゾーンの変更を行う

下記コマンドでzabbixサーバの設定ファイルの更新と、phpのタイムゾーンの設定を行います。
なおviコマンドで直接ファイルの中に入り設定しても大丈夫です。

sudo sed -i "s/# DBPassword=/DBPassword=$ZABBIX_DB_PASS/" /etc/zabbix/zabbix_server.conf

sudo sed -i "s/^; php_value[date.timezone] = $/ php_value[date.timezone] = Asia\/Tokyo/" /etc/php-fpm.d/zabbix.conf

Zabbixサーバ、Apache等の起動/有効化

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

Firewallの起動とポートの設定

AlmaLinuxではデフォルトではFirewallは有効になっていないようです。
そのため有効化と設定を以下コマンドで行います。

sudo systemctl start firewalld
sudo systemctl enable firewalld

sudo firewall-cmd --add-service={http,https} --zone=public --permanent
sudo firewall-cmd --reload

ブラウザからZabbixの設定

上記手順実施後、ホストOSのブラウザでlocalhost:8888/zabbixにアクセス。

Zabbix

上記画像のように表示されるのが確認したら、以下画像のように初期設定を行います。

Zabbix

Zabbix

Zabbix

トップ画面は以下のように表示されます。

Top

日本語化は左ナビメニューのユーザ設定項目より以下画像のように設定しUpdateすることで可能です。

Zabbix-japansese

zabbix-agentの監視対象の追加は「設定/ホスト/ホストの追加」で行います。
今回はテンプレートは「Template OS Linux by Zabbix agent」を選択し、以下画像のように設定します。

Setting

ダッシュボードに戻り数十秒後に更新すると以下のように監視ホスト数が2つとなります。
これでZabbix Managerの作成と監視対象サーバの監視登録は終了となります。お疲れ様でした。

Conclude

あとがき

最近はネットワークの勉強(CCNA)をしているので1ヶ月ぶりにちゃんとShellスクリプトとUNIXコマンドを叩きました。

やれたら次回、意図的に障害を起こして障害検知などの検証も行うかもしれません。
ここまでご覧くださりありがとうございました。

よろしければシェアしてくださいね!
タグ: VirtualBox

関連記事