RHEL9のEC2にZabbix6.0をインストールしてみた
目次
こんにちは!
スカイアーチHRソリューションズのRyojiです。
業務でAWSを使用して構築や保守を行っています。
その中で、監視ツールとしてZabbixを使用することが多々あります。
そこで、今回の記事は、Zabbixとは何か?
EC2を使って、Zabbix を利用できるようになるまで
というのをまとめていきたいと思います。
Zabbixとは
まず簡単に、Zabbix(ザビックス)とは何か。
Zabbixは、オープンソースのネットワークモニタリングおよび監視ツールです。
システムやネットワークの健全性やパフォーマンスをリアルタイムで監視し、問題を検出して解決するのに役立つツールです。
下記にZabbixの特徴をまとめます。
Zabbixの特徴
- Zabbixは無料で利用できるオープンソースソフトウェアです。
コミュニティや開発者によって積極的にサポートされています。 - Zabbixはさまざまなプラットフォームやデバイスに対応しており、
モジュールやプラグインを追加することで機能を拡張できます。 - Zabbixはリアルタイムでシステムやネットワークの状態を監視し、異常が検出されると通知を送信します。
- Zabbixはさまざまな手段でアラートを通知することができ、
EメールやSMS、Slackなどのツールとの統合も容易にすることができます。 - Zabbixはさまざまな種類のデータを収集し、グラフやレポートとして表示することができます。
これにより、システムのトラブルシューティングやパフォーマンスの最適化が容易になります。
Zabbix のインストール
それでは、ここからは実際にEC2上でZabbix serverを設定していく方法をまとめていきます。
前提条件
今回は下記条件で設定を進めていきます。
- OS:Red Hat Enterprise Linux 9.3
- セキュリティグループで外部からのHTTP接続を許可している事
パッケージのインストール
下記コマンドを実行しZabbixの公式リポジトリをインストールします。
※Zabbixは常に新しいパージョンのパッケージがリリースされますので、インストールする際は公式サイトで最新のものを確認してみてください。
https://repo.zabbix.com/zabbix/6.4/rhel/9/x86_64/
dnf install -y https://repo.zabbix.com/zabbix/6.4/rhel/9/x86_64/zabbix-release-6.4-1.el9.noarch.rpm
リポジトリをインストールしたら、続いてZabbix serever関連のパッケージをインストールしていきます。
dnf install -y zabbix-server-mysql zabbix-web-mysql zabbix-web-japanese zabbix-apache-conf zabbix-sql-scripts zabbix-selinux-policy mysql-server
Zabbix Agent 2をインストールします。
dnf install -y zabbix-agent2
設定ファイルの編集
Zabbix Serverの設定ファイルを開き、下記のZabbixで使用するDBのパスワードをコメントアウトを外し、編集します。
vi /etc/zabbix/zabbix_server.conf
# DBPassword=
↓
DBPassword=dbpassword
※今回は仮で「dbpassword」としています。
続いて、Zabbix Agent2の設定ファイルのHostnameの箇所を確認してください。
こちらは、ブラウザで初期設定をする際に必要になります。デフォルトでは「Zabbix server」となっていますので必要に応じて編集してください。
cat /etc/zabbix/zabbix_agent2.conf
Hostname=Zabbix server
データベースの設定
まず。データベースの設定を行うために、Mysql自動起動の設定と、サービスの起動を行います。
systemctl enable --now mysqld.service
続いて、下記コマンドでMysqlの初期設定を行います。
mysql_secure_installation
設定を進めるとデータベースのrootユーザーのパスワードの設定が求められますので、任意のパスワードを設定してください。
※こちらは、上記Zabbix Serverの設定ファイルで設定したものとは異なります。
Zabbix用のDBとDBユーザの作成
Mysqlの初期設定が完了したら、Mysqlに接続し、DBとユーザーを作成します。
mysql -u root -p
※パスワードは初期設定で設定したrootのパスワードを入力
mysql> CREATE DATABASE zabbix CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;
mysql> CREATE USER zabbix@localhost IDENTIFIED BY 'dbpassword';
※DBユーザzabbixのパスワード文字列は、Zabbix Serverの設定ファイルで設定したもの
mysql> GRANT ALL PRIVILEGES ON zabbix.* TO zabbix@localhost;
mysql> SET GLOBAL log_bin_trust_function_creators = 1;
mysql> quit;
続いて、Zabbix用DBスキーマと初期データをデータベースに読み込みます。
※ここでパスワードが求められますので、DBユーザzabbixのパスワードを入力します。
zcat /usr/share/zabbix-sql-scripts/mysql/server.sql.gz | mysql --default-character-set=utf8mb4 -uzabbix -p zabbix
完了したら、再度Mysqlに接続し、「log_bin_trust_function_creators」を無効化します。
mysql -u root -p
mysql> SET GLOBAL log_bin_trust_function_creators = 0;
mysql> quit;
SELinuxの設定
その後、必要に応じてSELinuxの設定を行います。
setsebool -P httpd_can_connect_zabbix on
setsebool -P zabbix_can_network on
各サービスの起動
Apache、PHP-FPM、Zabbix server、Zabbix Agent2の自動起動設定とサービスの起動を行います。
systemctl enable --now httpd.service
systemctl enable --now php-fpm.service
systemctl enable --now zabbix-server.service
systemctl enable --now zabbix-agent2
ブラウザでZabbixの初期設定
上記まで設定ができたら、ここからはブラウザでZabbixの初期設定を進めていきます。
ブラウザを起動し、下記にアクセスします。
http://EC2のパブリックIPアドレス/zabbix/
アクセスすると、Zabbixの初期画面が表示されるので、Default languageで「日本語(ja_JP)」を選択し、「次のステップ」を押下します。
全ての項目が「OK」となっていることを確認し、「次のステップ」を押下。
パスワードはDBユーザzabbixのパスワードを入力し、その他はデフォルトのままで、「次のステップ」を押下。
デフォルトのタイムゾーンで「(UTC;09:00)Asia/Tokyo」を選択し、「次のステップ」を押下。
各設定値を確認し、「次のステップ」を押下。
下記画面に切り替わったら、「終了」を押下。
Zabbixのログイン画面が表示されますので、ユーザー名「Admin」パスワード「zabbix」と入力し、サインインします。
これで、Zabbixのコンソール画面にサインインすることができます。
この後、各種設定をすることで、下記画像のように値やグラフを表示させることができるようになります。
さいごに
今回はRHEL9のEC2にZabbix serverを導入し、コンソールを表示できるまでを実施しました。
参考になれば幸いです。