Contents
オープンソースの統合監視ソフトウェア「Zabbix7」インストール
Zabbix とは、サーバー、ネットワーク、アプリケーションを集中監視するためのオープンソースの統合監視ソフトウェアです。統合監視に必要な監視、障害検知、通知機能を備えています。多数のプラットフォームに対応した Zabbix エージェントと SNMP に対応しているため、システム全体を Zabbix ひとつで監視することが可能です。
Zabbixを実行するにはPHPプログラミング言語、データベースサーバーとしてはMySQL/MariaDB、ApacheやNginxなどのWebサーバーが必要です。
今回は次の条件がすべてが構成済みで自動起動設定も完了していることが前提で進めます。
今回は2024年06月04日にリリースされたZabbix7.0 LTSを下記環境にインストールしてみます。
FreeBSD14.1 IP(192.168.11.83)
Apache/2.4.59 (FreeBSD)
mysql Ver 8.0.35
PHP 8.3.6 (cli)
PHP 8.3.6 (fpm-fcgi)
Zabbix 7 サーバ、フロントエンド、エージェントをインストール
➁Binary Packageのダウンロード、インストール
portコレクションにはZabbix 7パッケージがありませんので
zabbix7-server
zabbix7-agent
zabbix7-frontend-php83
のBinary Packageをダウンロードしてインストールします。
Zabbix サーバー自身も監視できるよう、監視対象ホストに必要な Zabbix Agent も同時にインストール。
1 2 |
# wget https://pkg.freebsd.org/FreeBSD:14:amd64/latest/All/zabbix7-server-7.0.0.pkg # pkg install zabbix7-server-7.0.0.pkg |
1 2 |
# wget https://pkg.freebsd.org/FreeBSD:14:amd64/latest/All/zabbix7-frontend-php83-7.0.0.pkg # pkg install zabbix7-frontend-php83-7.0.0.pkg |
1 2 |
# wget https://pkg.freebsd.org/FreeBSD:14:amd64/latest/All/zabbix7-agent-7.0.0.pkg # pkg install zabbix7-agent-7.0.0.pkg |
Zabbix用のデータベースとユーザーを作成する
①mysql my.cnf への設定追加
[client] 欄と、[mysql]欄に追加する
1 2 3 4 5 6 |
[client] default-character-set = utf8mb4 [mysqld] skip-networking character-set-server = utf8mb4 |
➁zabbix用データベース作成と初期化
database my_zabbix_db
user zabbix_user
password ?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; |
初期化
1 2 3 4 |
# cd /usr/local/share/zabbix7/server/database/mysql # mysql -uzabbix_user -p?WWabcd123 my_zabbix_db < schema.sql # mysql -uzabbix_user -p?WWabcd123 my_zabbix_db < images.sql # mysql -uzabbix_user -p?WWabcd123 my_zabbix_db < data.sql |
Zabbix構成を更新
Zabbixサーバーがデータベースに接続するためにZabbixサーバー設定ファイル/etc/zabbix/zabbix_server.confを編集し、データベース設定を更新する
1 2 3 4 5 6 7 8 |
# vi /usr/local/etc/zabbix7/zabbix_server.conf 101行目変更 DBName=my_zabbix_db 117行目変更 DBUser=zabbix_user 125行目コメント解除して追記 DBPassword=?WWabcd123 |
自動起動設定
1 2 3 4 |
# vi /etc/rc.conf 下記を追加する zabbix_server_enable="yes" |
起動
1 |
# /usr/local/etc/rc.d/zabbix_server start |
Zabbix サーバー自身も監視する Zabbix Agentd の設定
1 2 3 4 5 6 7 8 |
# vi /usr/local/etc/zabbix7/zabbix_agentd.conf # 113行目 : Zabbix サーバーを指定 Server=127.0.0.1 # 167行目 : Zabbix サーバーを指定 ServerActive=127.0.0.1 # 178行目 : 自身のホスト名に変更 Hostname=Lepard |
自動起動設定
1 2 3 4 |
# vi /etc/rc.conf 下記を追加する zabbix_agentd_enable="YES" |
起動
1 |
# /usr/local/etc/rc.d/zabbix_agentd start |
Zabbix Frontend の設定
Zabbix Frontend のためのウェブサーバ Apache httpdの設定
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
# vi /usr/local/etc/apache24/httpd.conf 下記を追加する <FilesMatch "\.php$"> SetHandler application/x-httpd-php </FilesMatch> <FilesMatch "\.phps$"> SetHandler application/x-httpd-php-source </FilesMatch> <Directory "/usr/local/www/zabbix7"> Options Indexes FollowSymLinks AllowOverride None Require all granted </Directory> DocumentRoot "/usr/local/www/zabbix7" DirectoryIndex index.html index.php |
PHP の設定
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
# cd /usr/local/etc/ # cp php.ini-production php.ini # vi /usr/local/etc/php.ini 419行目 max_execution_time = 300 518行目 display_errors = Off 713行目 post_max_size = 16M 865行目 upload_max_filesize = 2M 989行目タイムゾーンの設定、コメント解除し"Asia/Tokyo"追記 [Date] ; Defines the default timezone used by the date functions ; http://php.net/date.timezone date.timezone = "Asia/Tokyo" |
1 2 3 4 5 6 7 8 9 10 |
# vi /usr/local/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 |
Apache再起動
1 |
# /usr/local/etc/rc.d/apache24 restart |
Zabbix Webインストーラーの実行
Webブラウザーを開き、http://[IP address]/setup.php にアクセス
次の画面になる。[ 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 : openSUSE15.6
IPアドレス : 192.168.11.200
Host name : Lion
1.監視対象としたいサーバーでの設定
1.1 監視対象としたいサーバーに Zabbix Agent をインストール
1 2 |
# rpm -Uvh --nosignature https://repo.zabbix.com/zabbix/7.0/sles/15/x86_64/zabbix-release-7.0-1.sles15.noarch.rpm # zypper --gpg-auto-import-keys refresh 'Zabbix Official Repository' |
1 |
# zypper -n install zabbix-agent2 zabbix-agent2-plugin-* |
1.3 zabbix-agent 設定ファイル編集
1 2 3 4 5 6 7 8 |
# vi /etc/zabbix/zabbix_agent2.conf # 80行目 : Zabbix サーバーを指定(今回は192.168.11.83) Server=192.168.11.83 # 133行目 : Zabbix サーバーを指定(今回は192.168.11.83) ServerActive=192.168.11.83 # 144行目 : 自身のホスト名に変更(今回はLion) Hostname=Lion |
1 2 |
# systemctl restart zabbix-agent2 # systemctl enable zabbix-agent2 |
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 を有効化する
apache構成ファイルhttpd.confを編集
1 2 3 4 5 6 7 8 9 10 |
# vi /usr/local/etc/apache24/httpd.conf 161行目 status_moduleが有効になっているか確認 LoadModule status_module libexec/apache24/mod_status.so 最終行に下記を追加 <Location /server-status> SetHandler server-status Require local </Location> |
1 |
# service apache24 restart |
2.Zabbix の管理サイトにログインし、左ペインで [Data collection] - [Hosts] をクリックし、右ペインで、監視項目を追加したいホストをクリック(今回はZabbix server)
3. [Templates] セクションの [Select] ボタンをクリック
4. [Select] ボタンをクリック
5. [Templates/Applications] をクリック
6. [Apache by Zabbix agent] を選択し[Select]
7. [Update] ボタンをクリックして設定を更新
8. [Apache by Zabbix agent] リンクをクリック
9. [Macros] タブを開き、{$APACHE.STATUS.HOST} に [127.0.0.1] を入力して [Update]
しばらくすると下図のようにデータが表示されるようになる