ローカルにZabbixサーバを構築
はじめに
Zabbixについて理解を深めるために、簡単な構成で構築してみました。
その際の構築手順をまとめました。
Zabbixの概要について知りたい方は下記ページを参照ください。
対象者
PHP, Apache, MySQLを含め、Zabbix構築の一連について知りたい人。
構成
Zabbixサーバ・・・1台
Linux仮想マシン(zabbix-server)にZabbixサーバをインストールする。
Zabbixエージェント・・・1台
Linux仮想マシン(zabbix-agent-linux)にZabbixエージェントをインストールする。
ZabbixサーバはZabbixエージェントから情報を収集する。
上記のホストは同一ネットワーク上に存在する。
ネットワークアドレス・・・10.10.0.0 /24
各ホストの情報
-
Zabbixサーバ
ホスト名・・・zabbix-server
OS・・・CentOS 7.9.2009
Zabbixサーバ・・・Zabbix 5.0
MySQL・・・MySQL 8.0.33
Apache・・・Apache 2.4.6
IPアドレス・・・10.10.0.1 /24
SELinux・・・無効
firewalld・・・無効 -
Zabbixエージェント
ホスト名・・・zabbix-linux-agent
OS・・・CentOS 7.9.2009
Zabbixエージェント・・・Zabbix 5.0
IPアドレス・・・10.10.0.2 /24
SELinux・・・無効
firewalld・・・無効
検証ゴール
zabbix-linux-agentが再起動したとき、zabbix-serverはそれを検知する。
再起動したことを示すイベントがWEBインターフェースから確認できる。
具体的なシナリオ
①zabbix-serverにPHPをインストールする。
②zabbix-serverにApacheをインストールする。
③zabbix-serverにMySQLをインストールする。
④zabbix-serverに必要なコンポーネントをインストールする。
⑤zabbix-linux-agentにZabbixエージェントをインストールする。
⑤Zabbixサーバに対して、Zabbixエージェントがインストールされているマシンの再起動を検知する監視項目やトリガーを設定する。
⑥Zabbixエージェントインストールされているマシンを再起動する。
⑦再起動したことを示すイベントがWEBインターフェース上で表示されることを確認する。
zabbix-serverにPHPをインストール
まずはPHPをインストールします。
epel-release パッケージをインストール
これによりEPELリポジトリをシステムに追加できる
yum install epel-release
Remiリポジトリをシステムに追加
rpm -Uvh https://rpms.remirepo.net/enterprise/remi-release-7.rpm
RemiリポジトリからPHP 7.4をインストールするために、PHP 7.4を有効にする
yum-config-manager --enable remi-php
PHPと必要なモジュールをインストールする
yum install php php-mysql php-xml php-bcmath php-mbstring php-json php-gd php-ldap
PHPのバージョン確認
php -v
Apacheを再起動し、新しくインストールしたPHPが有効になる
systemctl restart httpd
zabbix-serverにApacheをインストール
Apacheをインストールする
yum install httpd
Apacheのバージョン確認
httpd -v
Apacheを起動する
systemctl start httpd
サーバが起動するたびにApacheが自動的に起動するようにする
systemctl enable httpd
zabbix-serverにMySQLをインストールする
MySQL8.0をリポジトリに追加する
rpm -Uvh https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
MySQLをインストールする
yum install mysql-community-server
鍵を更新する(公開鍵をインポートする。セキュリティの観点から非常に重要)
rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022
MySQLを起動する
systemctl start mysqld
systemctl status mysqld
MySQLのバージョン確認
mysql --version
MySQLインストール時に自動で設定されるroot@localhostのパスワードを確認
grep 'temporary password' /var/log/mysqld.log
サーバが起動した時にMySQLが自動的に起動するようにする
systemctl enable mysqld
MySQLの初期設定をする
mysql_secure_installation
zabbix-serverに必要なコンポーンネントをインストール
Zabbixに必要なコンポーネントをインストールし、サービスを起動する。
Zabbix Webインターフェースに接続し、Zabbix Webインタフェースの初期設定を行う。
zabbix-linux-agentにZabbixエージェントをインストール
/etc/zabbix/zabbix_agentd.conf
を編集する。
Server=10.10.0.1(zabbix-serverのIPアドレス)
Hostname=zabbix-linux-agent
zabbix-serverで監視項目を追加する
WEBインターフェースでzabbix-linux-agentに対する監視項目を追加する。
~ホストを追加~
左サイドバーから [設定] - [ホスト] を押下。
画面右上の「ホストの作成」を押下。
画面が遷移したら下記項目を入力し「追加」を押下。
ホスト名 : zabbix-linux-agent
グループ : practice
インターフェース : 10.10.0.2
~アイテムを追加~
左サイドバーから [設定] - [ホスト] を押下。
ホスト一覧に存在するzabbix-linux-agentにおける「アイテム」を押下。
画面右上の「アイテムの作成」を押下。
画面が遷移したら下記項目を入力し「追加」を押下。
名前:システムの再起動
タイプ:Zabbixエージェント
キー:system.uptime
データ型:数値(整数)
単位:uptime
監視間隔:1m
アプリケーションの作成:OS
~トリガーを追加~
左サイドバーから [設定] - [ホスト] を押下。
ホスト一覧に存在するzabbix-linux-agentにおける「トリガー」を押下。
画面右上の「トリガーの作成」を押下。
画面が遷移したら下記項目を入力し「追加」を押下。
名前 : ホストが再起動しました
深刻度 : 重度の障害
条件式 : {zabbix_linux_agent:system.uptime.change()}<0
WEBインターフェースで確認
zabbix_linux_agentを再起動する。
sudo reboot
再起動したことを示すイベントがWEBインターフェース上で表示されることを確認する。
さいごに
簡単な構成でありますが、ゴールを設定しZabbix構築を行なってみることで、
公式ドキュメントを読む力や、想定と異なる場面に遭遇した時の問題解決能力が上がったと思います。
やはり自分で手を動かすことは大事だなと改めて感じました。
Discussion