どうも、Tです。
運用・監視系のツールは苦手分野なのであまり関わらないように生きてきたのですが、今回SNMPの検証をする必要がでてきていました。今まで、検証の際はインストールするだけの簡易ツール(TWSNMPとか)だったのですが、時間もあるのでちゃんとしたツールを1つでも覚えるかと思い立った次第です。
ということで、仕事で関わりの多いZabbixをインストールしてみることにしました。
目次
やりたいこと
Zabbixサーバーをインストールして、監視できる環境が欲しいです。
Zabbixサーバー・Zabbixエージェントのインストールまでやり方を知りたいです。
前提条件
- OS:CentOS7.6
- Zabbix:5.0.2
CnetOSは下記の設定を行っています。
- 時刻同期設定
- Firewalld無効
- SELinux無効
事前準備
各コンポーネントの必要なバージョン
必要なバージョンや対応状況については、Manualページの「4. Installation→2 Requirements」に記載されているので読んでおきましょう。
Zabbix社のyumリポジトリ登録
Zabbix社のyumを利用するため下記コマンドでyumを登録します。
#rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
yum search zabbixコマンドでリポジトリを利用できることを確認します。
[root@zabbix ~]# yum search zabbix 読み込んだプラグイン:fastestmirror Determining fastest mirrors * base: mirrors.cat.net * extras: mirrors.cat.net * updates: ty1.mirror.newmediaexpress.com base | 3.6 kB 00:00:00 extras | 2.9 kB 00:00:00 updates | 2.9 kB 00:00:00 zabbix | 2.9 kB 00:00:00 zabbix-non-supported | 951 B 00:00:00 (1/5): base/7/x86_64/group_gz | 153 kB 00:00:00 (2/5): extras/7/x86_64/primary_db | 205 kB 00:00:00 (3/5): updates/7/x86_64/primary_db | 3.7 MB 00:00:00 (4/5): base/7/x86_64/primary_db | 6.1 MB 00:00:00 (5/5): zabbix/x86_64/primary_db | 25 kB 00:00:00 zabbix-non-supported/x86_64/primary | 1.6 kB 00:00:00 zabbix-non-supported 4/4 ============================================================================================================ N/S matched: zabbix ============================================================================================================ pcp-export-pcp2zabbix.x86_64 : Performance Co-Pilot tools for exporting PCP metrics to Zabbix pcp-export-zabbix-agent.x86_64 : Module for exporting PCP metrics to Zabbix agent zabbix-agent.x86_64 : Old Zabbix Agent zabbix-agent2.x86_64 : New Zabbix Agent zabbix-get.x86_64 : Zabbix Get zabbix-java-gateway.x86_64 : Zabbix java gateway zabbix-js.x86_64 : Zabbix JS zabbix-proxy-mysql.x86_64 : Zabbix proxy for MySQL or MariaDB database zabbix-proxy-pgsql.x86_64 : Zabbix proxy for PostgreSQL database zabbix-proxy-sqlite3.x86_64 : Zabbix proxy for SQLite3 database zabbix-release.noarch : Zabbix repository configuration zabbix-sender.x86_64 : Zabbix Sender zabbix-server-mysql.x86_64 : Zabbix server for MySQL or MariaDB database zabbix-server-pgsql.x86_64 : Zabbix server for PostgresSQL database Name and summary matches only, use "search all" for everything.
インストール
データベースインストール・設定
データベースのMariaDBをインストールします。
[root@zabbix ~]# yum install mariadb-server
MariaDBを設定します。
# vi /etc/my.cnf.d/server.cnf
[mysqld]セクションに下記の設定をしました。
[mysqld] character-set-server=utf8 collation-server=utf8_bin skip-character-set-client-handshake innodb_file_per_table innodb_buffer_pool_size=512M innodb_log_file_size=16M innodb_log_files_in_group=2
MariaDBを起動します。自動起動設定も入れておきます。
# systemctl start mariadb # systemctl enable mariadb
MariaDBの初期設定をします。
# mysql_secure_installation
Zabbix用のデータベースとユーザー作成を作成します。
#コメント:MariaDBにログイン # mysql -uroot -p #コメント:データベース名「zabbix」作成 MariaDB [(none)]> CREATE DATABASE zabbix CHARACTER SET utf8 COLLATE utf8_bin; #コメント:ユーザー「zabbix」を作成してzabbixデータベースへの権限を付与 MariaDB [(none)]> GRANT all privileges ON zabbix.* TO zabbix@localhost IDENTIFIED BY '<パスワード入力>'; #MariaDBをログアウト MariaDB [(none)]> exit
Zabbixサーバーインストール
Zabbixサーバーをインストールします。
Zabbixは利用するデータベースの種類によってパッケージが異なります。今回はMariaDB(MySQL)を利用しているため、zabbix-server-mysqlをインストールします。
# yum install zabbix-server-mysql
データベースへの初期データインポート
Zabbixが利用するデータベース(テーブル)を準備します。
下記に初期データがあるので、移動します。
# cd /usr/share/doc/zabbix-server-mysql-5.0.2/
下記のコマンドでデータベースにテーブルとデータをインポートします。
# zcat create.sql.gz | mysql -uzabbix -p zabbix Enter password: #コメント:ここはzabbixユーザーのパスワードを入力
Zabbixサーバーの設定
Zabbixの設定ファイルを修正します。
# vi /etc/zabbix/zabbix_server.conf
98行目でDB名を指定します。上が修正前、下が修正後です。
# DBName= ↓ DBName=zabbix
114行目でDBユーザーを指定します。上が修正前、下が修正後です。
# DBUser= ↓ DBUser=zabbix
124行目でDBユーザーを指定します。上が修正前、下が修正後です。
# DBPassword= ↓ DBPassword=<zabbixユーザーのパスワード>
Zabbixサーバーを起動して、自動起動を有効にします。
# systemctl start zabbix-server # systemctl enable zabbix-server
Zabbixサーバーの起動状態を確認します。Active: active (running) になっていれば起動しています。
# systemctl status zabbix-server ● zabbix-server.service - Zabbix Server Loaded: loaded (/usr/lib/systemd/system/zabbix-server.service; enabled; vendor preset: disabled) Active: active (running) since 金 2020-08-07 13:44:42 JST; 39s ago -以下割愛-
Webインターフェースインストール
Zabbix5.0からPHP7.2以降が必要ですが、CentOS7の標準リポジトリのPHPは5.4のため、The Software Collections ( SCL ) Repositoryを使ってPHP7.2をインストールする必要があります。SCLはCentOSコミュニティがCentOSのリリースとは別のライフサイクルで管理しているアドオンリポジトリです。
SCLリポジトリをインストールします。
yum install centos-release-scl
Webインターフェースパッケージを導入できるようにzabbix-frontendを有効にします。
# vi /etc/yum.repos.d/zabbix.repo
enblaedを1に変更します。
[zabbix-frontend] name=Zabbix Official Repository frontend - $basearch baseurl=http://repo.zabbix.com/zabbix/5.0/rhel/7/$basearch/frontend enabled=1 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX-A14FE591
Webインターフェースをインストールします。
# yum install zabbix-web zabbix-web-mysql-scl zabbix-apache-conf-scl zabbix-web-japanese
*-sclというパッケージは、SCLのPHP 7.2と組み合わせて使用する際にインストールするパッケージです。
Webインターフェースもデータベースの種類によってパッケージが異なります。今回はMariaDB(MySQL)を利用しているため、zabbix-web-mysqlをインストールします。
PHPのタイムゾーンを変更します。
# vi /etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf
最終行のtimezonを日本時間にします。上が修正前、下が修正後です。
; php_value[date.timezone] = Europe/Riga ↓ php_value[date.timezone] = Asia/Tokyo
PHP-FPMを起動し、自動起動も有効にします。
SCL版のPHP-FPMは、OS同梱版とサービス名が異ことなります。
# systemctl start rh-php72-php-fpm # systemctl enable rh-php72-php-fpm
Webサーバー(apache)を起動し、自動起動も有効にします。
# systemctl start httpd # systemctl enable httpd
初期セットアップ
Webブラウザで下記のURLにアクセスして初期セットアップを進めます。
http://<ZabbixサーバIPアドレス>/zabbix/
Next stepをクリックします。
すべてOKになっていることを確認して、Next stepをクリックします。
データベースユーザーZabbixのパスワードを入力して、Next stepをクリックします。
Zabbixのホスト名を入力して、Next stepをクリックします。ちゃんと確認してませんが、特に入力しなくても大丈夫っぽいです。
Next stepをクリックします。
Finishをクリックします。
ログイン画面が表示されます。
初期設定では、Username:Admin Passowrd:zabbixです。
ユーザー名がAが大文字なので注意。
ログインできました。
日本語化
英語が苦手なので日本語化しておきます。
User settingsをクリックします。
UserタブのLanguageをJapanese(ja_JP)に変更してUpdateをクリックします。
日本語になりました。
Zabbixエージェントインストール
Zabbixエージェントについて
ZabbixエージェントとZabbix2エージェントの2つがるようです。
エージェント2の方が色々改善されてるようですが、現在2020年8月時点では、サポートプラットフォームが少ないので、本記事ではZabbixエージェントを使っています。
エージェント2のサポート状況。Windowsがまだ完全にされていないのがつらい。
エージェントのサポート状況。網羅されてる。
監視対象のLinuxOSにインストール
LinuxにZabbixエージェントをインストールします。
Zabbix社のリポジトリを利用するため下記コマンドでyumを登録します。
#rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.
zabbix-agentをインストールします。
# yum install zabbix-agent
設定ファイルを修正します。
# vi /etc/zabbix/zabbix_agentd.conf
117行目でZabbixサーバーのIPアドレスを指定します。上が修正前、下が修正後です。
ここで指定したホストからの監視接続のみ許可されます。
Server=127.0.0.1 ↓ Server=192.168.10.10
158行目でZabbixサーバーのIPアドレスを指定します。アクティブチェックの際に利用されます。上が修正前、下が修正後です。
ServerActive=127.0.0.1 ↓ ServerActive=192.168.10.10
169行目で自身のホスト名を指定します。上が修正前、下が修正後です。
Hostname=Zabbix server ↓ Hostname=util-centos76
エージェントを起動し、自動起動も有効にします。
# systemctl start zabbix-agent # systemctl enable zabbix-agent
監視対象のWindowsOSにインストール
WindowsにZabbixエージェントをインストールします。Windowsの場合は、エージェントファイルのダウンロードが必要です。
下記のページに移動して、必要な情報を選択してエージェントファイルをダウンロードします。
エージェントファイルを解凍すると中にbinフォルダとconfフォルダがあります。
Zabbixエージェントのインストールは手動で行う必要があります。
インストール先のZabbix Agentフォルダを作成します。今回は、「C:\Program Files\Zabbix Agent」に作りました。
解凍したbinフォルダの中の「zabbix_agentd.exe」「zabbix_get.exe」「zabbix_sender.exe」ファイルをインストールフォルダ「「C:\Program Files\Zabbix Agent」」にコピーします。
解凍したconfフォルダの中のzabbix_agentd.confをテキストエディタで開きます。
105行目でZabbixサーバーのIPアドレスを指定します。上が修正前、下が修正後です。
ここで指定したホストからの監視接続のみ許可されます。
Server=127.0.0.1 ↓ Server=192.168.10.10
146行目でZabbixサーバーのIPアドレスを指定します。アクティブチェックの際に利用されます。上が修正前、下が修正後です。
ServerActive=127.0.0.1 ↓ ServerActive=192.168.10.10
157行目で自身のホスト名を指定します。上が修正前、下が修正後です。
Hostname=Windows host ↓ Hostname=utilw10pro
zabbix_agentd.confを保存して、インストールフォルダ「「C:\Program Files\Zabbix Agent」」にコピーします。
管理者権限でコマンドプロンプトを起動して、コマンド「zabbix_agentd.exe -c “C:\Program Files\Zabbix Agent\zabbix_agentd.conf” -i」を実行するとインストールが開始します。
C:\WINDOWS\system32>cd C:\Program Files\Zabbix Agent C:\Program Files\Zabbix Agent>zabbix_agentd.exe -c "C:\Program Files\Zabbix Agent\zabbix_agentd.conf" -i zabbix_agentd.exe [5368]: service [Zabbix Agent] installed successfully zabbix_agentd.exe [5368]: event source [Zabbix Agent] installed successfully
サービス一覧を見るとZabbix Agentが登録されています。がサービスが停止状態なので手動で起動するかOSを再起動します。
参考
まとめ
PHPバージョンの問題で、CentOS7だと少々面倒でした。CentOS8を使えばよかったと途中で気づいたのですが、突き進みました。
Zabbixエージェントを入れても、Zabbixサーバー側には自動登録されないので手動で設定が必要なのですが、力尽きました・・・・。ホスト登録は別記事にまとめたいと思います・・・・。