サムネイル

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

説明

初めに今回の使用技術とAlmaLinuxに関して説明します。

 

VirtualBoxとは

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

Vagrantとは

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

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

AlmaLinuxについて

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

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

Zabbixについて

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

OSのプロセス、ネットワーク、ログ監視はもちろんミドルウェアまで監視可能。
監視対象はWindows、Linux、商用UNIX、SNMP対応ネットワーク機器などです。

 

環境

  • VirtualBox 6.1.38
  • Vagrant2.2.19
  • ゲストOS: AlmaLinux 8
  • ホストOS: Ubuntu 22.04 (LTS)

 

環境構築

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

画像1

Vagrant+VirtualBoxの設定

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

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

vagrant up zabbix_
vagrant up zabbix_agent

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

  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にアクセス。

画像2

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

画像3

画像4

画像5

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

画像6

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

画像7

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

画像8

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

画像9

 

あとがき

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

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