質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

Zabbix

モニタリングツール

Q&A

解決済

1回答

3544閲覧

Zabbixのアイテム取得ができない

santasan1224

総合スコア2

CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

Zabbix

モニタリングツール

0グッド

0クリップ

投稿2022/12/31 14:06

前提

Zabbixエージェントでサーバ証明書の有効期限監視を設定したところ、有効期限のアイテム取得にて「Unsupported item key」のエラーが発生した。
設定で何が間違っているのかわからないため、ご支援をいただきたいです。

サーバ構成

・Zabbixサーバ

  • CentOS7.9
  • Zabbix-Agent5.0
  • Zabbix-Server5.0

・Webサーバ

  • CentOS7.9
  • Zabbix-Agent6.0

設定状況

・Zabbixのアイテム設定

  • 名前:ssl-check
  • タイプ:Zabbixエージェント
  • キー:cert_expire_check[]
  • データ型:数値(整数)

・Zabbixサーバ側 zabbix_agentd.conf(変更している箇所のみ記載)
UserParameter=cert_expire_check[*],export TODAY=$(date "+%Y%m%d"); expr $(( $date --date "$(openssl s_client -connect localhost:443 2>/dev/null | openssl x509 -noout -enddate | awk -F '=' '{print $2}')" +%s - $TODAY )) / 86400

・Webサーバ側 zabbix-agentd.conf(変更している箇所記載)
Server=10.0.100.96 #ZabbixサーバのIPアドレス
ServerActive=10.0.100.96 #ZabbixサーバのIPアドレス
Hostname=httpd server

実現したいこと

Zabbixエージェントでサーバ証明書の有効期限をアイテム取得できること。

発生している問題・エラーメッセージ

Zabbixサーバ側で以下のzabbix-getコマンドを実行した結果です。

/bin/zabbix_get -s 10.0.100.211 -k cert_expire_check[] ZBX_NOTSUPPORTED

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

TaichiYanagiya

2023/01/01 07:06

UserParameter は監視対象ホスト(Webサーバー)の zabbix_agent.conf に設定するのでは?
guest

回答1

0

ベストアンサー

UserParameter は監視対象ホスト(Webサーバー)の zabbix_agent.conf に設定します。
コマンドも誤りがあるようです。(変数 TODAY が UNIX Time じゃなかったり、「$date」→「$(date」の Typo)

また、記号を使う場合、UnsafeUserParameters=1 が必要ですし、これを設定しても「'」(シングルクォート) の扱いがうまくいっていないように思います。
なるべく記号を使わないよう試行錯誤して調整するか、別途シェルスクリプトを作成して、UserParameter からこのシェルスクリプトを呼び出すだけにするといいと思います。

(awk の代替で sed を用いる例) UnsafeUserParameters=1 UserParameter=cert_expire_check[*],export LANG=C; echo $(( ( $(date --date "$(openssl s_client -connect localhost:443 </dev/null 2>/dev/null | openssl x509 -noout -enddate | sed "s|notAfter=||" )" +%s) - $(date +%s) ) / 86400 ))

投稿2023/01/02 08:50

TaichiYanagiya

総合スコア12146

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

santasan1224

2023/01/03 01:40

@TaichiYanagiyaさん 回答ありがとうございます。 UserParameterの設定する対象に関して認識が間違っていました。 コマンド自体もシングルクォートの構文エラーが出ていたので、別コマンドでシェルスクリプトを作成してから値が取れるようになっていました。 ご支援いただきありがとうございました。 ``` date +"%s" --date="`openssl s_client -connect localhost:443 -servername localhost </dev/null 2>/dev/null | openssl x509 -enddate -noout | cut -d'=' -f2`" | awk '{printf("%d\n",($0-systime())/86400-1/86400+1)}' ```
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問