Contents
オープンソースの統合監視ソフトウェア「Zabbix7」インストール
Zabbix とは、サーバー、ネットワーク、アプリケーションを集中監視するためのオープンソースの統合監視ソフトウェアです。統合監視に必要な監視、障害検知、通知機能を備えています。多数のプラットフォームに対応した Zabbix エージェントと SNMP に対応しているため、システム全体を Zabbix ひとつで監視することが可能です。
Zabbixを実行するにはPHPプログラミング言語、データベースサーバーとしてはMySQL/MariaDB、ApacheやNginxなどのWebサーバーが必要です。
今回は次の条件がすべてが構成済みという前提で進めます。
今回は2024年06月04日にリリースされたZabbix7.0 LTSを下記環境にインストールしてみます。
AlmaLinux9.4 IP(192.168.11.83)
Apache/2.4.57 (AlmaLinux)
mysql Ver 8.0.36
PHP 8.3.8 (cli)
PHP 8.3.8 (fpm-fcgi)
Zabbix 7 サーバ、フロントエンド、エージェントをインストール
①EPELが提供するZabbixパッケージがインストールされている場合は、それを無効にします。/etc/yum.repos.d/epel.repoを編集し、以下の記述を追加する。
1 2 3 |
[epel] ... excludepkgs=zabbix* |
➁リポジトリをインストール
Zabbix 7 リポジトリを設定して、Zabbix サーバーをインストール。
Zabbix サーバー自身も監視できるよう、監視対象ホストに必要な Zabbix Agent も同時にインストール。
1 |
# rpm -Uvh https://repo.zabbix.com/zabbix/7.0/alma/9/x86_64/zabbix-release-7.0-2.el9.noarch.rpm |
1 |
# dnf clean all |
1 |
# dnf install zabbix-server-mysql zabbix-web-mysql zabbix-apache-conf zabbix-sql-scripts zabbix-selinux-policy zabbix-agent |
Zabbix用のデータベースとユーザーを作成する
Zabbixサーバーのデータベーススキーマを作成します。
rootアカウントでMariaDBサーバーにログインし、MySQLデータベース(例:my_zabbix_db)とユーザー(例:zabbix_user)、パスワード(例:?WWabcd123)を作成します
1 2 3 4 5 6 7 |
# mysql -u root -p Password: >CREATE DATABASE my_zabbix_db character set utf8 collate utf8_bin; >CREATE USER 'zabbix_user'@'localhost' IDENTIFIED BY '?WWabcd123'; >GRANT ALL PRIVILEGES ON my_zabbix_db.* TO 'zabbix_user'@'localhost' WITH GRANT OPTION; >set global log_bin_trust_function_creators = 1; >exit; |
データベースのZabbixのデフォルトスキーマをロードする
1 |
# zcat /usr/share/zabbix-sql-scripts/mysql/server.sql.gz | mysql --default-character-set=utf8mb4 -uzabbix_user -p'?WWabcd123' my_zabbix_db |
Zabbix構成を更新
Zabbixサーバーがデータベースに接続するためにZabbixサーバー設定ファイル/etc/zabbix/zabbix_server.confを編集し、データベース設定を更新する
1 2 3 4 5 6 7 8 |
# vi /etc/zabbix/zabbix_server.conf 107行目変更 DBName=my_zabbix_db 123行目変更 DBUser=zabbix_user 131行目コメント解除して追記 DBPassword=?WWabcd123 |
Zabbix サーバー自身も監視する
1 2 3 4 5 6 7 |
# vi /etc/zabbix/zabbix_agentd.conf # 117行目 : Zabbix サーバーを指定 Server=127.0.0.1 # 171行目 : Zabbix サーバーを指定 ServerActive=127.0.0.1 # 182行目 : 自身のホスト名に変更 Hostname=Lepard |
Zabbixサーバ、エージェントディーモンを再起動し、システム起動時に実行できるようにします。
1 2 |
# systemctl restart zabbix-server zabbix-agent httpd php-fpm # systemctl enable zabbix-server zabbix-agent httpd php-fpm |
PHP の設定
1 2 3 4 5 6 7 8 9 10 |
# vi /etc/php-fpm.d/www.conf # 最終行に追記 php_value[max_execution_time] = 300 php_value[memory_limit] = 128M php_value[post_max_size] = 16M php_value[upload_max_filesize] = 2M php_value[max_input_time] = 300 php_value[max_input_vars] = 10000 php_value[always_populate_raw_post_data] = -1 php_value[date.timezone] = Asia/Tokyo |
設定反映
1 |
# systemctl restart zabbix-agent httpd php-fpm |
Zabbix Webインストーラーの実行
Zabbix Webインストーラは、「サーバーのIP/zabbix」または「ドメイン/zabbix」でアクセスできます。
Webブラウザーを開き、「http://[your-server-IP_Address]/zabbix」を入力します。
次の画面になる。[ Next step]をクリック。
すべての要件がOKになっていることを確認後、[ Next step ]をクリック
「Database name」「User」「Password」欄には、設定した情報を入力し、[ Next step ]をクリック
「Zabbix server names」は任意の名称を入力し、タイムゾーンにはAsia/Tokyoを選択する
自身のタイムゾーンになっているか確認後、[ Next step ]をクリック
設定の再確認 情報が正しければ[Next step ]をクリック
インストールが正常に完了すると、次のページが表示されます。「Finish」クリック
Zabbixログインページにリダイレクトされます
次のデフォルト資格情報を使用してログインします。
ユーザー名:Admin
パスワード:zabbix
ログインに成功すると次の画面(Zabbixダッシュボード)になる。
Zabbixの各種設定
管理者パスワード変更
セキュリティ上、デフォルトの管理者パスワードを変更しておきます
上記ダッシュボードが表示されれば、続いて
①左ペインで [Users] - [Users] を選択して、右ペインで [Admin] をクリックします
②[Change paddword] をクリック
③Current password : デフォルトのパスワード zabbixを入力
変更したいパスワードを入力して [Update] をクリックする
再度ログイン認証画面にリダイレクトしますので作成したパスワードでログインします
メールでの通知設定
各種情報等をメールで受け取れるように通知の設定をしておきます。
サーバーにpostfix等SMTPサーバーが構築されていることが前提です。
①左ペインで [Alerts] - [Media Types] を選択し、右ペインで [Email] をクリック
➁下図のようにメールサーバーの設定をし、 [Enabled] にチェックを入れ [Update] ボタンをクリック
➂[Email] が [Enabled] になります
④左ペインで [Users] - [Users] を選択し、右ペインで [Admin] をクリック
⑤[Media] タブに移動し、[Add] をクリック
⑥[Type] は [Email] を選択し、[Send to] に管理者のメールアドレスを入力し[Add] をクリック
⑦[Update] ボタンをクリック
⑧左ペインで [Alerts] - [Actions] - [Trigger actions] を選択
⑨右ペインで [Report problems to Zabbix administrators] をクリック
⑩[Enabled] にチェックを入れ[Update] ボタンをクリック
以上で、各種障害通知が設定したメールアドレスへ送信される
監視対象ホストを追加する
下記サーバーを対象に追加
OS : AlmaLinux9.4
IPアドレス : 192.168.11.200
Host name : Lion
1.監視対象としたいサーバーでの設定
1.1 EPELが提供するZabbixパッケージがインストールされている場合は、それを無効にします。/etc/yum.repos.d/epel.repoを編集し、以下の記述を追加する。
1 2 3 |
[epel] ... excludepkgs=zabbix* |
1.2 監視対象としたいサーバーに Zabbix Agent をインストール
1 |
# rpm -Uvh https://repo.zabbix.com/zabbix/7.0/alma/9/x86_64/zabbix-release-7.0-2.el9.noarch.rpm |
1 |
# dnf clean all |
1 |
# dnf install zabbix-agent |
1.3 zabbix-agent 設定ファイル編集
1 2 3 4 5 6 7 8 |
# vi /etc/zabbix/zabbix_agentd.conf # 117行目 : Zabbix サーバーを指定(今回は192.168.11.83) Server=192.168.11.83 # 171行目 : Zabbix サーバーを指定(今回は192.168.11.83) ServerActive=192.168.11.83 # 182行目 : 自身のホスト名に変更(今回はLion) Hostname=Lion |
1 |
# systemctl restart zabbix-agent |
1.4 Zabbix-agent側のファイアウォールを設定
Zabbixポート10050(Zabbixサーバー側)および10051(zabbix agent側)を許可する必要があります。
1 2 3 |
# firewall-cmd --add-port=10050/tcp --permanent # firewall-cmd --add-port=10051/tcp --permanent # firewall-cmd --reload |
2. Zabbix WEB UIでの設定
2.1 Zabbix の管理サイトにログインし、左ペインで [Datacollection] - [Hosts] を選択し、右ペイン上部の [Create Host] ボタンをクリック
2.2 [Hostname] にはホスト名を入力(今回はLion)
[Templates] は、[Select] ボタンをクリックし、監視テンプレートのリストの中から Linux OS で CPU 等の一般的な項目を監視する場合は、[Linux by Zabbix agent] を選択
2.3 [Host groups] には[Linux servers]を選択
2.4 [Interfaces] にはInterfadesの中の[Add]をクリックし[Agent]を選択し、監視対象の IP アドレスを入力後下段の[Add]をクリック
2.5 新しく監視対象サーバーが登録されている
しばらくすると追加した対象ホストのデータが表示されるようになる
監視対象項目を追加
今回は Zabbix サーバー上の Apache httpd サービスを監視対象に追加する
1. 監視対象とする Zabbix サーバーの Apache httpd で server-status を有効化する
1 2 3 4 5 6 7 |
新規作成 # vi /etc/httpd/conf.d/server-status.conf <Location /server-status> SetHandler server-status Require local </Location> |
1 |
# systemctl reload httpd |
2.Zabbix の管理サイトにログインし、左ペインで [Data collection] - [Hosts] をクリックし、右ペインで、監視項目を追加したいホストをクリック(今回はZabbix server)
3. [Templates] セクションの [Select] ボタンをクリック
4. [Select] ボタンをクリック
5. [Templates/Applications] をクリック
6. [Apache by HTTP] を選択し[Select]
7. [Update] ボタンをクリックして設定を更新
8. [Apache by HTTP] リンクをクリック
9. [Macros] タブを開き、{$APACHE.STATUS.HOST} に [127.0.0.1] を入力して [Update]
しばらくすると下図のようにデータが表示されるようになる