Red Hat Enterprise Linux 8系OS(RHEL8系OS)に弊社が提供しているMIRACLE ZBX 2.2エージェントパッケージをインストールしたさい、OSの再起動後にサービスが次のような状態を継続し続け、正常に起動しない問題が発生します。
● zabbix-agentd.service - MIRACLE ZBX Agent
Loaded: loaded (/usr/lib/systemd/system/zabbix-agentd.service; enabled; vendor preset: disabled)
Active: activating (start-post) since Thu 2022-06-30 04:28:31 EDT; 16s ago
Process: 5098 ExecStart=/usr/sbin/zabbix_agentd -c ${CONFIG} (code=exited, status=0/SUCCESS)
Main PID: 5028 (code=exited, status=0/SUCCESS); Control PID: 5100 (zabbix-wait-pid)
Tasks: 2 (limit: 11263)
Memory: 596.0K
CGroup: /system.slice/zabbix-agentd.service
tq5100 /bin/bash /var/lib/zabbix/init/zabbix-wait-pidfile.sh /var/run/zabbix/zabbix_agentd.pid
mq5143 sleep 1
これはzabbix_agentdのプロセスが存在せず、activating(start-post)ステータスのままzabbix-wait-pidfile.shスクリプトの実行を待ち続けているためです。
またzabbix_agentd.logには以下のようなエラーが記録されます。
cannot create PID file [/var/run/zabbix/zabbix_agentd.pid]: [2] No such file or directory
このエラーはサービス起動時に/var/run/zabbix(/var/runは/runのシンボリックリンクです)ディレクトリが存在せず、pidファイルを作成できないため表示されます。/run下のディレクトリはOSがシャットダウンするさいに削除されます。MIRACLE ZBXエージェントパッケージではOS起動時に/run/zabbix ディレクトリを作成するための設定ファイルが同梱されています。しかしRHEL8系OS向けに提供しているMIRACLE ZBX 2.2パッケージにはその設定ファイルが同梱されておらず、再起動後に/var/run/zabbixディレクトリが作成されません。
# mkdir /run/zabbix -m 755
# chown zabbix:zabbix /run/zabbix
# systemctl restart zabbix-agent
d /run/zabbix 755 zabbix zabbix
これによって、今後OSを再起動したさいも/run/zabbixディレクトリが作成され、MIRACLE ZBXエージェントが正常に起動するようになります。
当社コミュニティ版パッケージをお使いの場合など、
サーバやエージェントなど全ての種類のパッケージのインストール方法が記載されています。
当社アプライアンス製品をお使いの場合など、
エージェントのインストール方法のみが記載されています。
2019年 9月 5日 新規作成
2020年 3月 3日 マニュアル更新
2020年 5月 21日 マニュアル更新
2020年 10月 13日 マニュアル更新
当社が提供しているMIRACLE ZBXパッケージにおいて、Red Hat Enterprise Linux 7以降に使用されているsystemdを用いた環境で、下記のエラーが出力されることがあります。
# systemctl status zabbix-agent
...
zabbix-agent.service: Supervising process xxxx
which is not our child. We'll most likely not notice when it exits.
これはsystemdが起動したサービスのプロセス状況を正しく把握できていない状態となります。Zabbix agentに関しては特に影響はないと思われますが、Zabbix server,Zabbix proxyに関しては、systemdの動作上の問題に起因し、サービス終了時にデータを正しく書き出せなくなります。これは、この状態の場合systemdがサービス終了時に、サービスの親プロセスにSIGTERMを送った直後にSIGKILLを投げてしまうためです。なお、バージョン3.0以前のZabbix Server/Proxyでの発生は確認できていません。
本問題への対策を行ったパッケージをリリースしました。パッケージのアップデートを行ってください。
MIRACLE ZBX V2.2.x
MIRACLE ZBX 2.2.23-3
https://www.miraclelinux.com/support/miracle-zbx22/zbx-update/20190313
なお、問題が発生している状態でZabbix server, proxyのサービスを停止させるには、下記のようにしなくてはなりません。
設定ファイル(/usr/lib/systemd/system/zabbix-server.service)の Restart=always 部を Restart=no に書き換え、systemdに反映させる。
[Service]
Restart=no
# systemctl daemon-reload
# kill -TERM `cat /var/run/zabbix/zabbix_server.pid`
システム規模により停止時間は異ります。下記のように、ログを出力して進行状況を確認してください。(終了するには、Ctl-cを実行します。)
# tail -f /var/log/zabbix/zabbix_server.log
正常に終了すると最終行に以下の表示が出ます。(終了するには、Ctrl+Cを実行します。)
Zabbix Server stopped. Zabbix x.x.x-x (revision xxxxx).
上記の方法で正常終了しない場合は下記を行います。
# kill -KILL `cat /var/run/zabbix/zabbix_server.pid`
# ps aux|grep -v grep | grep "zabbix_server: poller" | awk '{print $2}'
# kill -KILL PID
# systemctl stop zabbix-server
1 |
Zabbixサーバ、プロキシ、エージェントにHUPシグナルを送ることにより、設定ファイルをリロード可能 |
||
設定ファイルを編集後、下記のようにリロードを行う # service zabbix-server reload 現状効果があるパラメータは、DebugLevel, LogSlowQueriesのみ |
2.2.15-1にて調査 |
||
2 | イベント画面のフィルタ機能を強化し、緊急度の高い障害のみ表示させるなどの細かい指定ができるよう機能拡張 | ||
2.2.15-1にて調査 | |||
3
|
原因となったヒストリ情報をイベント画面へ表示できるよう機能拡張 |
||
zabbix.conf.php へ下記を追加する。 $ZBX_SHOW_HISTORY_IN_EVENT = "1"; |
2.2.15-1にて調査 | ||
4 |
グラフ画面から描画に使用したデータをCSV出力させることが可能 |
||
|
2.2.15-1にて調査 | ||
5 |
メジャーバージョンアップ後の自動DBアップデート機能をデフォルトで動作させない |
||
アップデートさせるには下記を実行する。 # /usr/sbin/zabbix_server --updatedb 若しくは、zabbix_server.conf ファイルへ下記を追加し、サービスを起動する。 AutoMajorDBSchemaUpdate=1 |
2.2.15-1にて調査 | ||
6 | 監視アイテムeventlog_ext[]の追加 | ||
https://users.miraclelinux.com/support/?q=node/418 | 2.2.15-1にて調査 | ||
7
|
『重大』や『詳細』のイベントログ受信時に、マクロ {ITEM.LOG.SEVERITY} を使用すると『unknown』の文字列になってしまうため、『Critical』『Verbose』の文字列になるよう変更 | ||
2.2.15-1にて調査 | 2.2.19以降はアップストリームで修正されたため除外 | ||
8 |
監視アイテムproc_info[]キーの変更
|
||
Windowsエージェントにおいて、第 2 引数 attribute として、プロセスのカーネル時間『ktime』とユーザー時間『utime』を合計した『cpu_time』を使用できるよう拡張
|
2.2.15-1にて調査 | ||
9
|
JMX 監視において、オブジェクトタイプ "javax.management.openmbean.TabularDataSupport" を監視可能 | ||
2.2.15-1にて調査 | |||
10 | Housekeepingをさせない | ||
HousekeepingFrequency=0と設定することで可能 | 2.2.15-1にて調査 | ||
11
|
アイテムの型によって "NUMBER" もしくは "TEXT" を返すマクロ {ITEM.TYPE} を追加 |
||
メッセージ中で使用可能 |
2.2.15-1にて調査 | ||
12
|
Web監視を TLS1.0 以降に対応
|
||
SSL2.0 および SSL3.0 のみ対応の Web ページは非対応
|
2.2.15-1にて調査 | ||
13 |
トリガー深刻度を変更している場合に正しく表示可能
|
||
2.2.15-1にて調査 |
本ドキュメントでは、MIRACLE ZBX パッケージのマイナーバージョンをアップデートする方法を案内します。
※メジャーバージョンをアップデートする方法ではありません
パッケージのダウンロード
下記のURLのページにてログインを行い、「ユーザー情報」-「MIRACLE ZBX ソフトウェアダウンロード」からパッケージをダウンロードすることができます。
※ご使用の環境[OS、アーキテクチャ、バージョン]にあわせて全てのパッケージをダウンロードして下さい。
ユーザー情報 ログイン
https://users.miraclelinux.com/user/cdb/login.php
現在使用しているZabbixサーバのOSリリース番号、アーキテクチャの確認方法。
※OSリリース番号
$ cat /etc/redhat-release
※Zabbixサーバパッケージのアーキテクチャ
$ rpm -q --qf "%{arch}\n" zabbix
※[手順3]の間、監視が停止しますのでご注意ください。
※事前に[手順1]にてダウンロードしたパッケージをカレントディレクトリに配置してください。
# rpm -Fvh zabbix*
※zabbix-serverとzabbix-agent両方のパッケージが、1つのホストに導入されている場合は、依存関係の問題によりzabbix-serverパッケージのみをアップデートすることはできません。Zabbix-serverとzabbix-agentの両方をアップデートする必要があります。
※実際にパッケージのアップデートは行わずアップデートコマンドの確認のみを行うため、”--test” オプションを付与して実行します。
# rpm -Fvh zabbix* --test
実行例)
# rpm -Fvh zabbix* --test
# <-コマンドの実行に問題がない場合は何も出力されません。
※以下コマンドにてパッケージがアップデートされていることを確認することが可能です。
# rpm -qa "zabbix*"
3.1) zabbix-server のみを使用している場合
# service zabbix-server restart
Shutting down zabbix server:[OK]
Starting zabbix server:[OK]
3.2) zabbix-agent のみを使用している場合
# service zabbix-agent restart
Shutting down zabbix agent:[OK]
Starting zabbix agent:[OK]
3.3) zabbix-serverとzabbix-agentの両方を使用している場合
# service zabbix-server restart
Shutting down zabbix server:[OK]
Starting zabbix server:[OK]
#
# service zabbix-agent restart
Shutting down zabbix agent:[OK]
Starting zabbix agent:[OK]
本ドキュメントの内容は、予告なしに変更される場合があります。
本ドキュメントは、限られた評価環境における検証結果をもとに作成しており、 全ての環境での動作を保証するものではありません。
本ドキュメントの内容に基づき、導入、設定、運用を行なったことにより損害が 生じた場合でも、弊社はその損害についての責任を負いません。あくまでお客様のご判断にてご使用ください。
2015年8月5日 更新
2013年7月5日 新規作成
本ドキュメントでは、MIRACLE ZBX 3.0.0-1 以降の 3.0 系バージョン、2.2.7-1 以降の 2.2 系バージョン、2.0.12-1 以降の 2.0 系バージョン、および 1.8.19-2 以降の 1.8 系バージョンで提供されている、Windows イベントログフィルター機能の拡張された機能について解説します。
本機能では、正規表現メニューへの Windows イベントログ用のフィルター形式の追加、および、新規アイテムキー eventlog_ext[] の追加により、Agent 側で Windows イベントログを『イベントログ本文』、『深刻度』、『ソース』、『イベント ID』の複合条件によってフィルターすることを可能にします。
フィルターには、条件に合致するイベントログについて、『含める』、もしくは、『含めない』を指定する 2 種類のフィルターが存在し、それぞれ複数回フィルターを掛けることが可能です。
以下手順でフィルター作成とeventlog_ext[] アイテム作成を行うことにより監視が可能になります。
本機能は MIRACLE ZBX Server、MIRACLE ZBX Agent の両方を MIRACLE ZBX 3.0.0-1 以降の 3.0 系バージョン、2.2.7-1 以降の 2.2 系バージョン、2.0.12-1 以降の 2.0 系バージョン、もしくは 1.8.19-2 以降の 1.8 系バージョンにすることによって利用可能です。MIRACLE ZBX Server および、本機能を利用する Agent 環境のみ該当バージョンへアップデートし、他の Agent 環境は古いバージョンを使用し続けることも可能です。
本機能拡張では、Windows イベントログのフィルター設定を記述する記法を正規表現メニューの機能へ追加しています。
正規表現メニューとは、Web インターフェイスのメニュー [管理] - [一般設定] - [正規表現] で表示されるメニューのことを指します。
MIRACLE ZBX の Web インターフェイスから、メニュー [管理] - [一般設定] - [正規表現]を開き、『正規表現の作成』ボタンをクリック。
正規表現作成の画面において、以下項目を設定する。
項目 | 説明 | |
---|---|---|
名前(必須項目) | フィルターの名前を入力。 | |
テスト文字列 (必須項目) |
この画面では『結果』欄には常に真と表示されるが、必ずテスト文字列を入力する必要がある。 | |
条件式 (必須項目) |
条件式の形式 | Windows イベントログ向けのフィルター作成時は、『対象のイベントログを指定する』、もしくは『除外するイベントログを指定する』を選択する。 |
条件式 | 『イベントログ本文,深刻度,ソース名,イベント ID』(区切り文字が『,』の場合)の形式でフィルターを記入する。『イベントログ本文』、『深刻度』、『ソース名』、『イベント ID』は正規表現として評価される。 | |
区切り文字 | 『条件式』における区切り文字として使用される文字を『,』、『#』、『/』から選択する。 | |
大文字小文字を区別 | 条件式の『イベントログ本文,深刻度,ソース名,イベント ID』について、大文字小文字を区別して判定するか指定する。 |
以下設定例では、『全ての "Warning" 深刻度のイベントログを取得』し、そこから『ソース名 "Sophos Anti-Virus"、イベントID "6" のイベントログを除外』し、さらに『イベントログ本文に "通信に失敗しました" を含むイベントログを除外』している。
設定保存時に条件式の形式でソートされ、必ず『対象のイベントログを指定する』、『除外するイベントログを指定する』の順に表示され、さらにそれぞれの形式内で文字列順でソートされる。
条件判定の処理は必ず『対象のイベントログを指定する』、『除外するイベントログを指定する』の順に上から下へ向かって行われる。
複数の『対象のイベントログを指定する』、および『除外するイベントログを指定する』の条件が存在する場合、最初に複数の『対象のイベントログを指定する』をOR条件で結合し、その結果から、複数の『除外するイベントログを指定する』をOR条件で結合した条件を除外する。以下ベン図にあるように、『対象のイベントログを指定する』合成したもの(青地)から、『除外するイベントログを指定する』を合成したもの(赤地)を除外している。
『対象のイベントログを指定する』条件A、B、C、『除外するイベントログを指定する』条件D、E、F = (A ∨ B ∨ C) ∧ ¬(D ∨ E ∨ F)
『eventlog_ext[]』のアイテム設定方法について記載する。
項目 | 説明 |
---|---|
キー | eventlog_ext[イベントログタイプ,@フィルタ名,Eventlog APIバージョン,maxlines,mode] |
イベントログタイプ | eventlog[]キー同様に、Application、System などを指定可能。 入力必須。省略した場合は、アイテムのステータスが「取得不可」となる。 なお、第 3 引数に『6』を指定した場合に限り、『アプリケーションとサービス ログ』のパスも指定可能となる。 |
フィルタ名 | 前項で作成した正規表現メニューのフィルター名に『@』を付けて指定する。 『test_filter』という名で作成したフィルターは、『@test_filter』と指定する。 省略した場合は、フィルターされずに全てのログが取得される。 |
Eventlog API バージョン (5 もしくは 6) | 『5』を指定した場合は既存のeventlog[]キーと同等の動作をする。 『6』を指定した場合は既存のeventlog6[]キーと同等の動作をする。 Windows2008 以降においては『6』を使用することが望ましい。 デフォルトは『5』。 |
maxlines | 既存のeventlog[]キーと同じように、1秒間に処理するログ数の上限を指定する。 |
mode | eventlog[]キー同様に、『all』(デフォルト)、『skip』を指定可能。『skip』指定時には、古いデータを読み込まず、監視アイテム設定時点以降のデータのみを読み込む。 |
イベントログタイプ『Application』について『eventlog_test_a』という名の正規表現フィルターが適用されている
以上の設定により、フィルターされた Windows イベントログを収集可能になります。
2015年7月29日 更新
品名 | OS※ |
---|---|
MIRACLE ZBX 1.6 | ML5, RHEL5, CentOS5 |
MIRACLE ZBX 1.8/2.0 | ML5/6, RHEL5/6, CentOS5/6 |
MIRACLE ZBX 2.2 | ML6, RHEL6/7, CentOS6/7 |
MIRACLE ZBX EnterprisePack V2.0 | ML6 x86_64(64bit), RHEL6 x86_64(64bit), CentOS6 x86_64(64bit) |
MIRACLE ZBX1200 | ML6 x86(32bit) |
MIRACLE ZBX3200 | ML6 x86_64(64bit) |
MIRACLE ZBX6000 | ML6 x86_64(64bit) |
MIRACLE ZBX6200 | ML6 x86_64(64bit) |
MIRACLE ZBX8000a | ML6 x86_64(64bit) |
MIRACLE ZBX8200 | ML6 x86_64(64bit) |
MIRACLE ZBX Virtual Appliance V2.0 | ML6 x86_64(64bit) |
MIRACLE ZBX2000 | ML5 x86(32bit) |
MIRACLE ZBX2100 | ML5 x86(32bit) |
MIRACLE ZBX3100 | ML5 x86_64(64bit) |
MIRACLE ZBX5000 | ML5 x86_64(64bit) |
MIRACLE ZBX5100 | ML5 x86_64(64bit) |
MIRACLE ZBX8000 | ML6 x86_64(64bit) |
※ 表記の説明
ML6: MIRACLE LINUX V6 == Asianux Server 4
ML5: MIRACLE LINUX V5 == Asianux Server 3
本ドキュメントの内容は、予告なしに変更される場合があります。
本ドキュメントは、限られた評価環境における検証結果をもとに作成しており、 全ての環境での動作を保証するものではありません。
本ドキュメントの内容に基づき、導入、設定、運用を行なったことにより損害が 生じた場合でも、弊社はその損害についての責任を負いません。あくまでお客様のご判断にてご使用ください。
2014年10月1日 新規作成