はじめに
皆様お疲れ様です。
今回はLinuxサーバーにZabbixを構築していきたいと思います。
AWSだと「Amazon CloudWatch」でサーバーの監視を行うのが主な方法だと思うのですが、「Amazon CloudWatch」だと1つのアカウントのみの監視になり複数アカウントの一元的な監視はできません。
「Zabbix」だと1つの監視サーバーで複数アカウントの監視やオンプレミスサーバーの監視もできます。
下記に「Amazon CloudWatch」と「Zabbix」の比較を記載いたします。
Amazon CloudWatch | Zabbix | |
---|---|---|
モニタリング対象 | AWSリソース(EC2、RDS、S3など) | 物理サーバー、仮想サーバー、ネットワーク機器 |
アラート | メトリクスに基づいたアラート | メトリクスとイベントに基づいたアラート |
カスタマイズ | 一部の機能に制限あり | オープンソースでカスタマイズの自由度が高い |
メリット | ・AWSリソースに対するシームレスな統合 ・AWSの他のサービスとの連携が容易 ・マネージドサービスで管理が容易 ・メトリクスの自動スケーリング ・グラフィカルなダッシュボード表示 ・AWSリソースのモニタリングに特化 |
・オープンソースで無料 ・柔軟性が高く、カスタマイズ可能 ・多様な監視対象に対応 ・様々なアラート機能が利用可能 ・高度なデータ収集や処理が可能 ・エージェントやプロキシを使用しての監視が可能 |
デメリット | ・AWS環境に依存する必要がある ・カスタムメトリクスの利用にコストがかかる ・AWS外のリソースへのモニタリングが制限される ・メトリクスのリアルタイム性に限界がある ・メトリクスデータの長期保存に制限がある |
・セットアップとメンテナンスに時間がかかる ・ インフラストラクチャへの導入コストが発生 ・コストやリソースに制限がない ・グラフィカルなダッシュボードの構築が必要 ・エンタープライズ向け機能の不足 |
目次
- Zabbixサーバー用の仮想マシン構築&SSH接続
- Zabbixインストール&セットアップ
- Zabbixウェブインターフェースへのログイン
- まとめ
- 参考サイト
Zabbixサーバー用の仮想マシン構築&SSH接続
Zabbixサーバーの構成は下記の通りになります。
・Zabbixサーバー用仮想マシン(EC2で作成)
-AMIでZabbixがインストールされているものもあるが手動でインストールしたいためUbuntu22.04で作成
-インスタンスタイプはZabbixサーバーが落ちないようにt3.mediumを選択
-Elastic IPをアタッチ
-その他はデフォルト
起動が成功したらSSH接続します。
Ubuntuの場合のユーザー名は「ubuntu」です。
パスワードは空欄で赤枠の部分にEC2作成時に設定した、キーペアを入れます。
ログインできました。
Zabbixインストール&セットアップ
ここからはZabbixリポジトリのインストールとセットアップに入っていきます。
「Zabbix公式ページ」を参照しながら進めていきます。
Zabbixのインストール
Zabbix公式ページからプラットフォームを選択します。今回は下記の通りに選択しましたが、ご使用のOSなどによって変更してください。
先ほど作成したLinuxサーバーに接続します。
Zabbixのリリースパッケージをダウンロードします。
# wget https://repo.zabbix.com/zabbix/6.4/ubuntu/pool/main/z/zabbix-release/zabbix-release_6.4-1+ubuntu22.04_all.deb
ダウンロードしたリリースパッケージをインストールします。
# dpkg -i zabbix-release_6.4-1+ubuntu22.04_all.deb
リポジトリ情報を更新します。# apt update
Zabbixサーバー、フロントエンド、エージェントをインストールします。
# apt install zabbix-server-mysql zabbix-frontend-php zabbix-apache-conf zabbix-sql-scripts zabbix-agent
確認が求められるのでYを入力しEnterを押下。
SQLサーバーのインストールを行います。(今回はMySQL)
# apt install mysql-server
MySQLサーバーのバージョン確認を行います。
# mysql --version
MySQLサーバーを起動させます。
# systemctl start mysql.service
MySQLサーバーの自動起動の設定を行います。
# systemctl enable mysql.service
MySQLサーバーの状態を確認します。
# systemctl status mysql.service
これでインストールは完成いたしました。
MySQLサーバーの設定
続いてMySQLサーバーの設定を行います。
MySQLサーバーに接続します。
# mysql -u root
MySQLサーバーに接続できたらrootユーザーのパスワードを設定していきます。
‘password’この部分には任意のパスワードを入力します。
mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password by 'password';
Query Okがでたら一度MySQLサーバーから抜けます。
mysql> quit
MySQLサーバーの初期設定を行います。
# mysql_secure_installation
下記の順で問われるのではいなら「y」いいえなら「n」を入力してEnterを押下して進めていきます。
①rootユーザーをパスワード変更するか
②匿名ユーザーの削除を行うか
③リモートログインの許可をするか
④テストデータベースの削除を行うか
⑤特権テーブルのリロードを許可するか(ここはyを入力してください)
全て問題なく完了したら再度MySQLサーバーから抜けます。
mysql> quit
Zabbixデータベースの設定
次にZabbixデータベースの設定を行います。
MySQLサーバーに接続します。パスワードは先ほど設定したものを入力してください。
# mysql -u root -p
ログインできましたら、Zabbixデータベースを作成します。
mysql> create database zabbix character set utf8mb4 collate utf8mb4_bin;
次にZabbixユーザーを作成します。’password’には任意のパスワードを入力してください。
mysql> create user zabbix@localhost identified by 'password';
Zabbixユーザーに全権限を付与します。
mysql> grant all privileges on zabbix.* to zabbix@localhost;
MySQLサーバーから抜けます。
mysql> quit
Zabbixの設定ファイルの修正
Zabbixデータベースに初期スキーマとデータをインポートします。
# zcat /usr/share/doc/zabbix-sql-scripts/mysql/server.sql.gz | mysql -uzabbix -p zabbix
パスワード入力が求められるので先ほど設定したパスワードを入力します。
/etc/zabbix/zabbix_server.conf
上記が設定ファイルなのでnanoやvimで開いて編集してください。
DBPassword=password
コメントアウトを外し、パスワードを設定したものに設定する。
日本語パッケージのインストール
下記のコマンドを流し、日本語パッケージをインストールします。
# apt -y install language-pack-ja-base language-pack-ja ibus-mozc
設定反映
下記のコマンドを流し、設定反映と自動起動設定を行う。
再起動で設定反映
# systemctl restart zabbix-server zabbix-agent apache2
自動起動設定
# systemctl enable zabbix-server zabbix-agent apache2
CUIでの設定は以上になります。
Zabbixウェブインターフェースへのログイン
Zabbixのウェブインターフェースへログインしてきます。
初期設定
①ウェブインターフェースへログイン
http://【ZabbixサーバーのIP】/zabbix
上記をブラウザで開きます。
②言語選択
Default languageでJapaneseを選択し次へ。
③前提条件のチェックで問題なければ次へ。
④データベース接続設定
先ほど設定したDBのパスワードを入力し次へ。
⑤設定
ZabbixServer:任意
デフォルトのタイムゾーン:Asia/Tokyo
⑥インストール事前準備概要での確認
問題なければ次へ。
⑦インストール画面で終了を押下で完了。
ウェブインターフェースへログイン
下記がデフォルト設定です。適宜変更してください。
ユーザー名:Admin
パスワード:zabbix
ログインできましたら、今回のZabbixServer構築は完了です。
まとめ
今回は統合監視ツールである、zabbixを構築してみました。
zabbixは奥が深く、設定などで沼ることもあるかと思います。ですが、何度か触っていけば非常に便利です。
ただ障害が起きたのを通知するだけでなく、その際の対応なども設定できるので是非試してみてください。
いろいろな機能があり面白いです。