CentOS8にZabbix4.4サーバを構築してWebhookを実行してみよう! 前編:CentOS8にZabbix4.4サーバを構築

はじめまして。これからtech系の投稿も復活させていこうともくろんでいるインフラエンジニアの竹西@hiromaa03です。
今回の記事はタイトルの通り、zabbix4.4の新機能の一つであるwebhookメディアタイプを試してみようという記事です。

以下のような前後編の2回に分けて記事にしますのでよろしくお願いします!

ちなみに、zabbix4.4のリリースノートはこちらを参照ください。

 

CentOS8にZabbix4.4サーバを構築

構成情報

今回は私の気まぐれでCentOS8の使用。
DBをMySQLではなく、MariaDBで構築してみます。
webサーバもNginxにしようかなとも思ったのですが、そこはまぁいいやとなってやめました。
ですので今回の構成はこちらです!

・OS:CentOS8
・web: httpd2.4.37
・アプリケーション:php7.2.11
・DB:MariaDB:10.3.11

 

事前準備

SELinuxの停止
SELINUX=enforcingをdisabledへ編集

vi /etc/selinux/config

# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - No SELinux policy is loaded.
SELINUX=disabled
# SELINUXTYPE= can take one of these two values:
# targeted - Targeted processes are protected,
# mls - Multi Level Security protection.
SELINUXTYPE=targeted

SELinuxのため再起動

reboot

firewalldの変更
今回は簡単にpublicゾーンにhttpとzabbix-agent,zabbix-serverサービスの許可を追加します。
※ポート指定で80,10050,10051を公開しても構いません。

firewall-cmd --add-service=http --permanent
firewall-cmd --add-service=zabbix-agent --permanent
firewall-cmd --add-service=zabbix-server --permanent

firewall-cmd --reload

Zabbixリポジトリのインストール

https://www.zabbix.com/jp/download?へアクセスしてインストールしたいOSとDBを選択します。

 

OSとDBを選択後、「a. Install Zabbix repository」のURIをコピーしてください

リポジトリをインストールします。

rpm -ivh https://repo.zabbix.com/zabbix/4.4/rhel/8/x86_64/zabbix-release-4.4-1.el8.noarch.rpm
dnf clean all

Zabbixサーバ(httpd,php-fpm)のインストール

zabbixサーバのインストールをdnf(yum)コマンドで実行します。
httpd,php-fpmなどは依存関係でインストールされるので今回はこちらで済ませてしまいます。
せっかくなのでzabbix-agent2もインストールしておきました。

dnf install -y zabbix-server-mysql zabbix-web-mysql zabbix-apache-conf zabbix-agent2

MariaDBのインストール

CentOS8ではApplication StreamにMySQLとMariaDBのパッケージがあるためそちらをそのまま使用してみます。

dnf install -y mariadb-server

DB設定を行いたいのでMariaDBは一度サービスを起動します。

systemctl start mariadb

忘れそうなのでMariaDBの自動起動の設定もここでしておきます。

systemctl enable mariadb

DB設定

DBアクセスをzabbixユーザで行うのでzabbixユーザを作成します。
※mysqlコマンドライン

mysql

create database zabbix character set utf8 collate utf8_bin;
grant all privileges on zabbix.* to zabbix@localhost identified by '任意のPW';
FLUSH PRIVILEGES;

zabbixサーバの初期DBを準備してくれているのでdumpファイルから初期DBを構築します。

zcat /usr/share/doc/zabbix-server-mysql/create.sql.gz | mysql -uzabbix -p zabbix

php設定ファイル編集

以下の行を任意のタイムゾーンに変更します。
今回はAsia/Tokyoに変更

vi /etc/php-fpm.d/zabbix.conf

; php_value[date.timezone] = Europe/Riga
php_value[date.timezone] = Asia/Tokyo

Zabbixサーバ設定ファイル編集

zabbixサーバは画面表示程度の使用であれば設定の変更がほぼほぼ必要ないので
先ほど設定したDBのzabbixユーザのパスワードのみ記載します。

vi /etc/zabbix/zabbix_server.conf

# DBPassword=
DBPassword=DBのzabbixユーザのPW

Zabbixエージェント設定ファイル編集

zabbixサーバ自身の監視も入れておきましょうということで
zabbixエージェントの設定も変更します。といっても今回はこちらも必要最低限の変更のみとします。
zabbixの設定のhostnameとOSで認識しているhostnameを同じにします。

・・・そういえば、zabbix-agent2の設定ファイルも今までのzabbix-agentの設定ファイルと大きくは変わらないみたいと思っているのですが変更されているのでしょうか??

vi /etc/zabbix/zabbix_agent2.conf

Hostname=zabbixサーバのhostname

Zabbix(httpd,php-fpm)サービス起動

各サービスを起動します。

systemctl start httpd
systemctl start php-fpm
systemctl start zabbix-server
systemctl start zabbix-agent2

自動起動設定を行う場合、以下も実行

systemctl enable httpd
systemctl enable php-fpm
systemctl enable zabbix-server
systemctl enable zabbix-agent2

ダッシュボード画面表示

お使いのwebブラウザで以下へアクセスします。
http://<zabbixサーバのIP>/zabbix/

[要件チェック画面]

Zabbixというロゴが見えているでしょうか。ダッシュボード画面の表示まであと少しです。
このページでOKになっていない項目がある場合は今までの手順のどこかが抜けている可能性が高いので
見返してみてください。
私はphp設定ファイルの編集をとばしてPHP option “data.timezone”をNGとすることがよくあります。

[DB接続設定画面]

先に設定したDBの設定とzabbixサーバの設定が完了していれば何も変更しないで
Next stepへ進んでください。

[Zabbixサーバ設定画面]

こちらも変更する必要はないと思いますのでそのままNext stepへ進んでください。

[設定確認画面]

[インストール完了画面]

[ログイン画面]

Username:Admin
Password:zabbix
※デフォルトの初期設定です。

[ダッシュボード画面]

さいごに

お疲れさまでした!!
いかがでしたでしょうか。思ったよりもインストール方法の解説だけで記事が長くなってしまいましたが
インストールからダッシュボードの表示までは比較的簡単にできるようになっているかと思います。
これが3系からのアップデートとなってきたりするとまた一段と難しくなるのですが。。
そこらへんの話はいつかできればと思います。

次回は本命の4,4の新機能 webhookの設定を解説させていただきます。
ありがとうございました。


hiromasa.takenishi

AnsibleやコンテナはじめCloud関連の技術を頑張りたいです!

あわせて読みたい