メモ > サーバ > 構築: 管理ツール設定 > Zabbix
Zabbix
※サーバの監視を行う。
■Zabbixサーバのインストール(CentOS7で確認したもの / 監視する側のサーバ)
Amazon Linux 2 に Zabbix 4.0 をインストールしてみた - Qiita
https://qiita.com/ktooi/items/1d79db32e1b6082cb93b
2019年6月3日時点で、Vagrant+CentOS7では上の手順そのままでダッシュボードが表示された。
まずはインストール。
# rpm -import http://repo.zabbix.com/RPM-GPG-KEY-ZABBIX
# rpm -i https://repo.zabbix.com/zabbix/3.5/rhel/7/x86_64/zabbix-release-3.5-1.el7.noarch.rpm
# yum -y install zabbix-server-mysql zabbix-web-mysql zabbix-agent zabbix-web-japanese
データベースを作成。
# mysql -uroot -p
mysql> create database zabbix character set utf8 collate utf8_bin;
mysql> grant all privileges on zabbix.* to zabbix@localhost identified by 'password';
mysql> quit;
上記データベースに、テーブル定義などを流し込み。
# zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p zabbix
Zabbixの基本設定。
# cp /etc/zabbix/zabbix_server.conf{,.org}
# vi /etc/zabbix/zabbix_server.conf
ZabbixのWebUI設定。
# DBPassword=
DBPassword=password
# cp /etc/httpd/conf.d/zabbix.conf{,.org}
# vi /etc/httpd/conf.d/zabbix.conf
# php_value date.timezone Europe/Riga
php_value date.timezone Asia/Tokyo
# systemctl restart zabbix-server zabbix-agent httpd
# systemctl enable zabbix-server zabbix-agent httpd
# vi /etc/zabbix/web/zabbix.conf.php
動作確認。
http://192.168.33.10/zabbix/
Admin / zabbix
画面右上の人形アイコンをクリックすると、設定画面に遷移する。
「Language」を「Japanese (ja_JP)」にすると日本語表示になる。
上部メニューの「グラフ」をクリックして、「グループ」「ホスト」「グラフ」を選択すると、Zabbix server の状況がグラフで表示される。
もしくは上部メニューの「スクリーン」をクリックしても、Zabbix server の状況がグラフ(一部)で表示される。
動作確認の参考に。
■Zabbixサーバのインストール(CentOS6で確認したもの / 監視する側のサーバ)
EPELリポジトリ導入(EPEL)
http://centossrv.com/epel.shtml
統合監視ツール「Zabbix」によるサーバー監視
http://knowledge.sakura.ad.jp/tech/585/
<?php
// Zabbix GUI configuration file.
global $DB;
$DB['TYPE'] = 'MYSQL';
$DB['SERVER'] = 'localhost';
$DB['PORT'] = '0';
$DB['DATABASE'] = 'zabbix';
$DB['USER'] = 'zabbix';
$DB['PASSWORD'] = 'password';
// Schema name. Used for IBM DB2 and PostgreSQL.
$DB['SCHEMA'] = '';
$ZBX_SERVER = 'localhost';
$ZBX_SERVER_PORT = '10051';
$ZBX_SERVER_NAME = 'MyZabbix!';
$IMAGE_FORMAT_DEFAULT = IMAGE_FORMAT_PNG;
# chown apache:apache /etc/zabbix/web/zabbix.conf.php
# chmod 644 /etc/zabbix/web/zabbix.conf.php
# rpm -ivh http://ftp.riken.jp/Linux/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm … EPELリポジトリをインストール。
# sed -i 's/enabled=1/enabled=0/g' /etc/yum.repos.d/epel.repo … EPELリポジトリをデフォルト無効化。(RPMforgeリポジトリと競合するため。)
# yum --enablerepo=epel -y update epel-release … epel-releaseをアップデート。
# yum --enablerepo=epel install zabbix-server zabbix-server-mysql … Zabbixのインストール。
mysql> CREATE USER zabbix; … MySQLにZabbix用のユーザとデータベースを作成。
mysql> CREATE DATABASE zabbix;
mysql> GRANT ALL PRIVILEGES ON zabbix.* TO zabbix@localhost IDENTIFIED BY '1234';
mysql> FLUSH PRIVILEGES;
# mysql -u zabbix -p zabbix < /usr/share/doc/zabbix-server-mysql-1.8.22/create/schema/mysql.sql … Zabbix用の初期データを登録。(それぞれ時間がかかかるので待つ。)
# mysql -u zabbix -p zabbix < /usr/share/doc/zabbix-server-mysql-1.8.22/create/data/data.sql
# mysql -u zabbix -p zabbix < /usr/share/doc/zabbix-server-mysql-1.8.22/create/data/images_mysql.sql
# vi /etc/zabbix/zabbix_server.conf … Zabbixの設定ファイルを編集。
http://example.com/zabbix/ のようにアクセスすると、Zabbixの管理画面にアクセスできるので
http://knowledge.sakura.ad.jp/tech/585/2/ を参考に初期設定を行う。
■Zabbixエージェントのインストール(CentOS7で確認したもの / 監視する側のサーバ)
# DBName=
DBName=zabbix … 使用するデータベース名。
# DBUser=
DBUser=zabbix … データベースのユーザー名。
# DBPassword=
DBPassword=1234 … データベースのパスワード。
# service zabbix-server start … Zabbixを起動。
# chkconfig zabbix-server on … Zabbix自動起動を設定。
# yum --enablerepo=epel install zabbix-web-mysql … Webフロントエンドのインストール。
# vi /etc/php.ini … Zabbix用にPHPの設定を編集。
post_max_size = 32M
max_execution_time = 600
max_input_time = 600
memory_limit = 256M
upload_max_filesize = 16M
# service httpd restart … httpdを再起動。
# hostname … サーバのホスト名を確認する方法。
refirio.net
# rpm -Uvh https://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-2.el7.noarch.rpm
# yum clean all
# yum -y install zabbix-agent … Zabbixエージェントのインストール。
# vi /etc/zabbix/zabbix_agentd.conf … Zabbixエージェントの設定ファイルを編集。
セキュリティグループを編集するなどし、10050ポートを開放。
その後エージェントを起動する。
# Server=
Server=203.0.113.0 … 監視元(Zabbixサーバをインストールしたサーバ)のIPアドレス。
# Hostname=
Hostname=refirio.net … 監視対象(Zabbixエージェントをインストールしたサーバ)のホスト名。
# service zabbix-agent start … Zabbixエージェント起動。
# chkconfig zabbix-agent on … Zabbixの自動起動を設定。
引き続き、監視用Zabbixの管理画面でホストを登録する。
登録しても反映されない場合、エージェントをインストールしたサーバでエラーログを確認する。
以下はZabbixのバージョン違いで正しく通信できなかったときのエラー例。
# vi /var/log/zabbix/zabbix_agentd.log
■Zabbixエージェントのインストール(CentOS6で確認したもの / 監視される側のサーバ)
linuxにおけるホスト名の確認と変更
http://d.hatena.ne.jp/atree/20090420/1240308590
統合監視ツール「Zabbix」によるサーバー監視
http://knowledge.sakura.ad.jp/tech/585/2/
ホストの設定
https://www.zabbix.com/documentation/2.2/jp/manual/config/hosts/host
設定しようとしているホスト上でZabbixエージェントが動作している場合、
エージェントの 設定ファイルのパラメータ[Hostname]が、
ここで入力したホスト名と同じ値でなければなりません。
4140:20200514:124129.576 Message from 203.0.113.0 is missing header. Message ignored.
4142:20200514:124129.822 Message from 203.0.113.0 is missing header. Message ignored.
4142:20200514:124144.058 Message from 203.0.113.0 is missing header. Message ignored.
4142:20200514:124159.098 Message from 203.0.113.0 is missing header. Message ignored.
4142:20200514:124214.140 Message from 203.0.113.0 is missing header. Message ignored.
# hostname … サーバのホスト名を確認する方法。
refirio.net
# yum --enablerepo=epel install zabbix-agent … Zabbixエージェントのインストール。
# vi /etc/zabbix/zabbix_agentd.conf … Zabbixエージェントの設定ファイルを編集。
インストールが完了したら、Zabbixの管理画面で監視対象ホストを登録する。
■監視設定
※「設定 → ホスト → ホストの作成」から、監視したい対象を登録できる。
※似たような監視を行う場合、「設定 → ホスト」から設定をエクスポートし、
設定を編集して「設定 → ホスト → ホストのインポート」からインポートするといい。
ホストの設定
名前:refirio.net
グループ:Linux servers, Zabbix servers
IPアドレス:203.0.113.0
リンクしているテンプレート:Template_Linux
統合監視ツール「Zabbix」によるサーバー監視
http://knowledge.sakura.ad.jp/tech/585/3/
■監視設定例
※「設定 → ホスト → グラフ」から、監視したい内容を登録できる。
※「設定 → スクリーン」から、一括で監視したいグラフを登録できる。
Load Average
ノーマル
Processor load 濃い赤
Processor load5 赤
Processor load15 薄い赤
CPU Utilization
積算グラフ
CPU system time 赤
CPU iowait time 黒
CPU user time 黄
CPU idle time 緑
Memory
積算グラフ
Cached memory 赤
Buffers memory 黄
Free memory 緑
Disk Space
積算グラフ
Used disk space on / 赤
Free disk space on / 緑
Traffic
ノーマル
Outgoing traffic on interface eth0 青
Incoming traffic on interface eth0 赤
■グラフを作成せずに既存のグラフで監視
概要 → セルをクリック → そこからグラフを確認できる。
■グラフのフォント文字化け対策
※文字化けが直った代わりに、グラフに時間が表示されなくなったので未解決。
https://blog.isao.co.jp/zabbix_graph/
こちらは試していないので試す。
# Server=
Server=203.0.113.0 … 監視元(Zabbixサーバをインストールしたサーバ)のIPアドレス。
# Hostname=
Hostname=refirio.net … 監視対象(Zabbixエージェントをインストールしたサーバ)のホスト名。
# ListenIP=0.0.0.0
ListenIP=203.0.113.0 … 監視対象(Zabbixエージェントをインストールしたサーバ)のIPアドレスだが、設定しなくても動く。
# vi /etc/sysconfig/iptables … ファイヤーウォールを設定。(10050ポートを開ける / iptablesを使用している場合の設定。)
#Zabbixを許可
-A MY-FIREWALL -m state --state NEW -m tcp -p tcp --dport 10050 -j ACCEPT
# service iptables restart … ファイヤーウォールを再起動。
# service zabbix-agent start … Zabbixエージェント起動。
# chkconfig zabbix-agent on … Zabbixの自動起動を設定。
# yum search ipafont … フォントを検索。
# yum install ipa-pgothic-fonts … ゴシック可変幅フォントをインストール。
# ls /usr/share/fonts/ipa-pgothic/ … インストールされたフォントを確認。
ipagp.ttf
# vi /usr/share/zabbix/include/defines.inc.php … Zabbixの設定ファイルを編集。
Zabbix2の場合。
//define('ZBX_FONTPATH', '/usr/share/fonts/dejavu'); // where to search for font (GD > 2.0.18)
define('ZBX_FONTPATH', '/usr/share/fonts/ipa-pgothic'); // where to search for font (GD > 2.0.18)
//define('ZBX_GRAPH_FONT_NAME', 'DejaVuSans'); // font file name
define('ZBX_GRAPH_FONT_NAME', 'ipagp'); // font file name
… グラフ用のフォントを変更。
# cd /usr/share/zabbix/fonts/ … Zabbix用のフォントディレクトリへ移動。
# ln -s /usr/share/fonts/ipa-pgothic/ipagp.ttf ipagp.ttf … インストールしたフォントへシンボリックリンクを張る。
# vi /usr/share/zabbix/include/defines.inc.php … Zabbixの設定ファイルを編集。
Zabbixグラフの日本語文字化けを直す方法(2.0.5)
http://www.checksite.jp/zabbix-japanese-graph/
■Zabbix API
APIを使う場合、Zabbix1.8の場合は
「Zabbix管理画面 → 管理 → ユーザ」
から「APIアクセス」を有効にする。
Zabbix3ではこの項目は無くなっているが、特に何も設定しなくてもAPIアクセスができるみたい。
この設定とは別に、ZabbixにはIP制限をかけて運用することが多いと思われる。
「何故かAPIにアクセスできない」という場合、そういったアクセス制限も確認する。
PHP 5分でわかる! Zabbix API の使い方(ホスト一覧の取得) | あぱーブログ
https://blog.apar.jp/zabbix/3055/
Host [Zabbix Documentation 1.8]
https://www.zabbix.com/documentation/1.8/api/host//define('ZBX_GRAPH_FONT_NAME', 'graphfont'); // font file name
define('ZBX_GRAPH_FONT_NAME', 'ipagp'); // font file name … グラフ用のフォントを変更。