Zabbix を使用して Oracle データベースを監視する方法の詳細な説明

Zabbix を使用して Oracle データベースを監視する方法の詳細な説明

1. 概要

Zabbix は非常に強力で、最も広く使用されているオープンソースの監視ソフトウェアです。この記事では、Zabbix + Python を使用して Oracle データベースを監視する方法を紹介します。

2. 環境の紹介

以下は私がインストールした環境です。実際の展開は私のものと同じである必要はありません。

1. 監視マシン Redhat Linux 6.5 + Zabbix サーバー 3.4.10 + Python 2.6.6 (オペレーティング システムに含まれています) + Oracle Client 11.2 (x86_64)

2. 監視対象マシン Oracle 11.2.0.4

3. 監視方法を選択する

Zabbix の監視方法には主に 3 つの種類があります。

Zabbixエージェント

監視対象マシンに zabbix エージェントをインストールすると、zabbix エージェントは監視対象マシンによって収集されたデータを zabbix サーバーに送信します。この方法は最も一般的に使用されており、通常はサーバーの CPU やメモリなどの情報を収集するために使用されます。

SNMP の

スイッチなどの一部のネットワーク デバイスには Zabbix エージェントをインストールできないため、ポートの状態やトラフィックなどの監視データは snmp 経由でのみ収集できます。

外部チェック

zabbix サーバー上でクエリ スクリプトを実行して、監視対象マシン上のデータを直接クエリします。この方法では、監視対象マシンへのデプロイメントは必要ありません。すべてのクエリは zabbix サーバーから送信されるため、zabbix サーバーのパフォーマンス要件は比較的高くなります。公式では、この方法を大規模に使用することは推奨されていません。この方法は、少数の Oracle データベース サーバーに使用できます。

この記事では、外部チェックを使用して Oracle データベースを監視する方法について説明します。

4. 監視項目の計画

データベースを監視する目的は、データベースの安定した運用を確保することです。障害が発生した場合、DBA はすぐにそれを発見し、介入して対処することができます。監視項目は次の 2 つのカテゴリに分かれています。

1. データベースのスペースが不足しているか、データベースに障害が発生しており、DBA がすぐに対処する必要があります。

監視項目には、表領域、ユーザー ステータス、インスタンス ステータス、ロック、大量の待機イベント、フラッシュバック領域の使用状況などがあります。このタイプの監視項目には、異常が発生した場合に適切なタイミングでアラームを発行できるようにトリガーを設定する必要があります。

2. データベース操作ステータスに関する統計情報の一部は、DBA がデータベース パフォーマンスの問題の時間とカテゴリを特定するための参考資料となります。

監視項目には、共通待機イベントの数、ヒット率、ハード解析率などが含まれます。

次の表は、添付ファイルのテンプレートの監視項目の一覧です。

5. インストール

上記の説明の後、正式なインストール リンクに入りましょう。Zabbix サーバーはすでにインストールされていると想定しているため、ここでは Zabbix サーバーのインストール手順を省略します。

以下の操作はすべてZabbixサーバー上で実行されます

Oracleクライアントをインストールする

公式サイトから以下の3つのrpmパッケージをダウンロードします。

Oracle-インスタントクライアント11.2-ベーシック-11.2.0.4.0-1.x86_64.rpm

Oracle-インスタントクライアント11.2-devel-11.2.0.4.0-1.x86_64.rpm

Oracle-インスタントクライアント11.2-sqlplus-11.2.0.4.0-1.x86_64.rpm

ルートを使用してOracleクライアントをインストールする

rpm -ivh oracle-instantclient11.2-basic-11.2.0.4.0-1.x86_64.rpm

rpm -ivh oracle-instantclient11.2-devel-11.2.0.4.0-1.x86_64.rpm

rpm -ivh oracle-instantclient11.2-sqlplus-11.2.0.4.0-1.x86_64.rpm

環境変数の設定

vi + /etc/profile

---------------------------------------------

エクスポート ORACLE_HOME=/usr/lib/oracle/11.2/client64

LD_LIBRARY_PATH=$ORACLE_HOME/lib をエクスポートします。

PATH=$PATH:$ORACLE_HOME/bin をエクスポートします。

設定を有効にするには、次のコマンドを実行します。

ソース /etc/profile

動的ライブラリ構成ファイルを追加する

vi + /etc/ld.so.conf.d/oracle.conf

---------------------------------------

oracle_client_lib は、次のディレクトリにあります。

ldconfigコマンドを実行する

テストのためにOracleに接続する

SQL> sqlplus scott/[email protected]:1521/orcltest

SQL*Plus: リリース 11.2.0.4.0 プロダクション、2019 年 4 月 24 日水曜日 18:24:28

Copyright (c) 1982, 2013, Oracle. 無断複写・転載を禁じます。

接続先:

Oracle Database 11g Enterprise Edition リリース 11.2.0.4.0 - 64 ビット製品

パーティショニング、OLAP、データマイニング、リアルアプリケーションテストのオプション

SQL>

上記のプロンプトは、Oracle Clientが正常にインストールされていることを証明します。

Python関連パッケージをインストールする

cx_Oracle(Oracleに接続するためのPythonパッケージ)をインストールします

http://downloads.sourceforge.net/project/cx-oracle/5.1.2/cx_Oracle-5.1.2-11g-py26-1.x86_64.rpm を実行します。

rpm -ivh cx_Oracle-5.1.2-11g-py26-1.x86_64.rpm

argparseをインストールする

https://bootstrap.pypa.io/2.6/get-pip.py --no-check-certificate を実行します。

python 取得pip.py

pip インストール argparse

Pythonスクリプトをアップロードする

添付のpyora.pyスクリプトを/usr/lib/zabbix/externalscripts/ディレクトリに配置します。

zabbixユーザーがスクリプトを実行できるように権限を付与します

chmod 755 /usr/lib/zabbix/externalscripts/pyora.py

[注:まず、監視対象マシンの Oracle データベースに監視ユーザーを作成します。ユーザー名とパスワードは自由に指定できます。

zabbix によって識別されるユーザー zabbix を作成します。

接続を許可し、Zabbix に任意の辞書を選択します。

テストスクリプト

python pyora.py --ユーザー名 zabbix --パスワード zabbix --アドレス 10.30.10.32 --ポート 1521 --データベース オフィス show_tablespaces

上記テストスクリプトのパラメータの説明

ユーザー名: ユーザー名

パスワード: パスワード

アドレス: 監視対象マシンのIPアドレス

ポート: ポート番号

データベース: Oracle サービス名

結果が返された場合は、スクリプトが正常に実行できることを意味します。

テンプレートファイルをアップロード

添付のPyora_ExternalCheck_11G.xmlテンプレートをzabbixサーバーにインポートします。

zabbix ページで、[構成] - [テンプレート] - [インポート] - [ファイルの選択] - [インポート] をクリックして、インポートを完了します。

監視データを表示する

監視 – 最新データ – ホスト(対応するホストを選択)を選択すると、監視データが表示されます。

参考: https://github.com/bicofino/Pyora

付録:

pyora.py、Pyora_ExternalCheck_11G.xmlのアドレスはgithubにあります

https://github.com/YangBaohust/zabbix_templates

Zabbix を使用して Oracle データベースを監視する方法についての記事はこれで終わりです。Zabbix による Oracle データベースの監視の詳細については、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • Zabbix Agent2を使用してOracleデータベースを監視する方法
  • Python スクリプト Zabbix カスタム キーを使用して Oracle 接続ステータスを監視する
  • Zabbixを使用してOracleテーブルスペースの操作プロセスを監視する

<<:  CSS マルチレベルメニュー実装コード

>>:  Vue カプセル化コンポーネント アップロード画像コンポーネント

推薦する

Mysql ファジークエリが大文字と小文字を区別するかどうかの詳細な調査

序文最近、私は小さな個人ブログ プロジェクトを書くのに忙しくしています。 「グローバル検索」機能を実...

Mysqlのマージ結果と水平スプライシングフィールドの実装手順

序文最近、レポート機能に取り組んでいたのですが、ある月に各部署に入社した人と退職した人の数をカウント...

古い Vue プロジェクトに Vite サポートを追加する方法

1. はじめに会社のプロジェクトを引き継いで2年になります。今では毎回プロジェクトを起動するのに1分...

Mysql 文字列の傍受と指定された文字列内のデータの取得

序文: 正規表現のインターセプションに似た、MySql フィールドの文字列から特定の文字を抽出すると...

Linux で rc.local ファイルがない場合の完璧なソリューション

新しい Linux ディストリビューションには rc.local ファイルがなくなりました。サービス...

Linux で一般的なソフトウェアを設定する方法

新しいLinuxサーバーを入手する場合、通常は次の5つの構成を実行する必要があります。 HOSTAN...

vue v-for ループ オブジェクトの属性

目次1. ループオブジェクト内の値2. ループオブジェクト3. キーと値のループ1. ループオブジェ...

Vueの自己ネストツリーコンポーネントの使い方の詳細な説明

この記事では、Vueの自己ネストツリーコンポーネントの使い方を参考までに紹介します。具体的な内容は次...

Vue での this.$set の使用に関する詳細な説明

目次Vue での this.$set の使用使用なぜレスポンシブなのか?分析する要約するVue での...

1つの記事でJavaScriptのクロージャ関数について学ぶ

目次変数のスコープ閉鎖の概念クロージャの使用クロージャのデメリット最後に、クロージャのメリットとデメ...

Windows 10 での MySQL 5.7.19 インストール チュートリアル MySQL のルート パスワードを忘れた場合の変更方法

MySQL 5.7.19のインストールを例に挙げると、まずダウンロードしますもちろん、最初に行うこと...

プロジェクトを素早く構築するためのvite+vue3.0+ts+element-plusの実装

目次バイト機能使用環境プロジェクトを構築する構成vite.config.ts tsconfig.js...

WeChat アプレットのシンプルなログイン ページの実装 (ソース コード付き)

目次1. 上の写真2. ユーザーが存在しない3. コードをアップロードする1. 上の写真 2. ユー...

jQuery は拡張アニメーションによるナビゲーション バー効果を実装します

展開アニメーション効果のあるナビゲーションバーを設計してカスタマイズし、デモを作成してみました。設計...

Vue.set() と this.$set() の使い方と違い

開発に Vue を使用する場合、次のような状況に遭遇することがあります。Vue インスタンスを生成し...