こんにちは。ゆーろんです。
今回はVagrant+VirtualBoxで監視ツールであるZabbixサーバ(Manager)と監視対象のZabbixエージェント(監視対象サーバ)をローカルで立ててみましたので、手順を紹介します。
説明
VirtualBoxとは
ホスト型の仮想化ソフトウェア。
Oracle VirtualBox
Vagrantとは
一言でいうと仮想マシンなどを簡単に構築/操作するためのソフトウェア。
VirtualBoxやVMwareを直接操作せずともエージェントとして操作できる。
ちなみにTerraformと同じHashiCorp製。
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対応ネットワーク機器などです。
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
環境
- VirtualBox 6.1.38
- Vagrant 2.2.19
- ゲストOS: AlmaLinux 8
- ホストOS: Ubuntu 22.04 (LTS)
環境構築
Vagrant+VirtualBoxの環境構築に関しては割愛します。
またVirtualBoxにおける構成イメージは以下図の通り。
Vagrant+VirtualBoxの設定
以下リポジトリから構築用データのダウンロード。
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マネージャに実施する。
- MySQLのサービスの起動/有効化
- MySQLにzabbix用のデータベース,ユーザを作成
- 2で作成したデータベースにzabbixデータの挿入
- Zabbixサーバの設定ファイルの設定/phpのタイムゾーンの変更を行う
- Zabbixサーバ、Apache等の起動/有効化
- 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
にアクセス。
上記画像のように表示されるのが確認したら、以下画像のように初期設定を行います。
トップ画面は以下のように表示されます。
日本語化は左ナビメニューのユーザ設定項目より以下画像のように設定しUpdateすることで可能です。
zabbix-agentの監視対象の追加は「設定/ホスト/ホストの追加」で行います。
今回はテンプレートは「Template OS Linux by Zabbix agent」を選択し、以下画像のように設定します。
ダッシュボードに戻り数十秒後に更新すると以下のように監視ホスト数が2つとなります。
これでZabbix Managerの作成と監視対象サーバの監視登録は終了となります。お疲れ様でした。
あとがき
最近はネットワークの勉強(CCNA)をしているので1ヶ月ぶりにちゃんとShellスクリプトとUNIXコマンドを叩きました。
やれたら次回、意図的に障害を起こして障害検知などの検証も行うかもしれません。
ここまでご覧くださりありがとうございました。