前回まではメールサーバ構築の記事をアップしてきましたが、今回はサーバ監視を行うためにZabbixをインストールします
Zabbix APIを検証する事が目的なのですが、まずは監視サーバとしての基本セットアップを行います。
今回のコンポーネント
項目 | コンポーネント |
OS | Ubuntu 20.04LTS |
監視マネージャ | Zabbix 5.4 |
DB | MariaDB |
Web | NGINX |
Zabbixセットアップ
それでは早速Zabbixのセットアップに進みます。
STEP1. 公式サイトからのダウンロード
今回は最新版のZabbix 5.4を利用します。
Zabbix公式サイトのダウンロードページから取得します。
https://www.zabbix.com/download
ダウンロードしたいバージョン、利用するOS/DB/Webサーバを選択します。
画面にダウンロード・セットアップするためのコマンド例が記載されるため、それを実行します。
STEP2. レポジトリのインストール
こちらはZabbix 5.4をUbuntu20.04で利用するための例となります。
レポジトリをパッケージ(dpkg)を使ってインストールします。
# wget https://repo.zabbix.com/zabbix/5.4/ubuntu/pool/main/z/zabbix-release/zabbix-release_5.4-1+ubuntu20.04_all.deb
# dpkg -i zabbix-release_5.4-1+ubuntu20.04_all.deb
# apt update
STEP3. Zabbix サーバ、フロントエンド、エージェントのインストール
レポジトリがインストールされたので、それを利用してパッケージ(apt)を使って、Zabbixサーバ、フロントエンド、エージェントをインストールします
# apt install zabbix-server-mysql zabbix-frontend-php zabbix-nginx-conf zabbix-sql-scripts zabbix-agent
STEP4. DBの初期インストール
記載されたコマンドをコマンドライン上のSQLクライアントから実行します。
※phpMyAdminでの実行方法は記載しません。利用法がわかる方は適宜読み替えてください
データベース、ユーザ作成
下記はコマンドラインからインストールを行った際の実行例です
管理者ユーザでのログインと、DBユーザzabbixのパスワードは適宜修正してください
# mysql -uroot -p
mysql> create database zabbix character set utf8 collate utf8_bin;
mysql> create user zabbix@localhost identified by 'password';
mysql> grant all privileges on zabbix.* to zabbix@localhost;
mysql> quit;
初期データインポート
初期スキームとデータをインポートします
※SQLファイルが2MBを超えているため、phpMyAdminでのSQLファイルインポートはphpMyAdminで2MB以上のファイルと取り扱える環境にしていることが前提です
初期セットアップ用のSQLファイルは/usr/share/doc/zabbix-sql-scripts/mysql/create.sql.gzになります。
コマンドラインでの実施は以下を参照ください。パスワードは先ほどユーザ作成時に利用したものを入力します。
# zcat /usr/share/doc/zabbix-sql-scripts/mysql/create.sql.gz | mysql -uzabbix -p zabbix
STEP5. ZabbixサーバにDBの設定を追加
Zabbixサーバの設定ファイル/etc/zabbix/zabbix_server.confを編集
# vim /etc/zabbix/zabbix_server.conf
下記項目を編集します
DBのzabbixユーザに設定したパスワードに変更します
DBPassword=password |
STEP6. NGINX設定変更
今回はzabbix用にホスト名を1個新設します。例としてzabbix.your-domain.comとして、DNSには事前に設定済みということにします。
自ドメイン運用+VPSはホスト名作りたい放題ですねw 面倒くさがりって言わないでください
このためにワイルドカード証明書の発行をしたんです
パッケージインストール時に初期設定ファイル/etc/nginx/conf.d/zabbix.confは作成されていますので、そちらを編集します。
# vim /etc/nginx/conf.d/zabbix.conf
ダウンロードページではlistenとserver_nameだけ修正となっていますが、HTTPS対応(強制切替あり)のための設定を追加します。
listen 80; ssl_certificate /etc/letsencrypt/live/your-domain.com/fullchain.pem; if ($scheme = http) { |
これ以外の箇所は、ひとまずそのままで良いです。
STEP7. 設定反映
各コンポーネントを再起動して設定を反映します。
# nginx -t
# systemctl restart zabbix-server zabbix-agent nginx php7.4-fpm
# systemctl enable zabbix-server zabbix-agent
STEP8. フロントエンドセットアップ
セットアップしたURLにブラウザでアクセスし下記のような初期画面が出れば成功です
言語ファイルのインストールを行っていないため、英語でセットアップを進めます。
[Next step]をクリックし次に進みます
環境チェックを行いすべて「OK」であれば[Next step]をクリックし次に進みます
先ほどセットアップしたデータベースのパスワードを入力します。
続いてZabbixサーバのホスト名、TCPポート番号、Zabbixサーバ名を入力します
Zabbixサーバ名はオプションですが、記載した場合はメニューバーやページタイトルに記入されます
標準タイムゾーン(初期値はシステム標準値)とテーマ(初期値はBlue)を選択します
最後にインストール前の確認があります。確認して問題なければ[Next Step]をクリックします。
「Congraturations! You have successfully installed Zabbix frontend.」と表示されたらインストールは完了です。
作成したコンフィグファイルは/usr/share/zabbix/conf/zabbix.conf.phpに作成されています。
[Finish]をクリックすると次のようなログイン画面に転移されます。
初期ユーザ情報は以下の通りです。
項目 | パラメータ |
---|---|
Username | Admin |
Password | zabbix |
初期ユーザでログインを行うと下記のようなダッシュボードが表示されます。
まずは、初期パスワードの変更を行います。
ダッシュボード左下の[User settings] - [Profile]をクリックし、ユーザ情報変更画面に移ります。
ユーザプロファイル設定画面でパスワードを変更します。
これで一通りのセットアップは完了です。
zabbixの使い方は別の機会に