Zabbixを使用してOracleテーブルスペースの操作プロセスを監視する

Zabbixを使用してOracleテーブルスペースの操作プロセスを監視する

0. 概要

Zabbix は非常に強力なオープンソースの監視ツールです。以下では、Zabbix がテーブルスペースを監視する方法について説明します。この考え方に従えば、他の項目の監視も同様です。

前提条件は、zabbix サーバーと zabbix エージェントがすでに存在し、zabbix エージェントと Oracle データベースが同じマシン上で実行されていることです。

1.エージェント上でスクリプトを準備する

a. テーブルスペースの使用状況に関するスクリプトを定義する

/home/oracle/get_tablespace_usage.sh

#!/bin/bash
# テーブルスペースの使用状況を取得する
ソース ~/.bash_profile
機能チェック{
sqlplus -S "/ を sysdba として" << EOF
行サイズを200、ページサイズを200に設定
フィードバックをオフにする
/tmp/tablespace.log をスプールします
dba_tablespace_usage_metrics から tablespace_name、round(used_percent) used_percent を選択します。
巻き取る
やめる
終了
};
チェック &> /dev/null
エラー = `grep ERROR /tmp/tablespace.log | wc -l`
[ "$errors" -gt 0 ]の場合;
    エコー "" > /tmp/tablespace.log
フィ

chown oracle:get_tablespace_usage.sh

chmod 755 get_tablespace_usage.sh

b. 表領域の自動検出用のスクリプトを定義する

スクリプト

#!/bin/bash
# zabbix 自動検出 Oracle テーブルスペース
テーブルスペース=(`cat /tmp/tablespace.log | awk '{print $1}' | grep -v "^$"`)
長さ=${#テーブルスペース[@]}
printf "{\n"
printf '\t'"\"データ\":["
((i=0;i<$length;i++)) の場合
する
    printf "\n\t\t{"
    printf "\"{#TABLESPACE_NAME}\":\"${tablespaces[$i]}\"}"
    [ $i -lt $[$length-1] ]の場合;
        printf ","
    フィ
終わり
    printf "\n\t]\n"
printf "}\n"

chmod 755 /etc/zabbix/scripts/discovery_tablespace.sh

c. 表領域監視項目スクリプトを定義する

/etc/zabbix/scripts/テーブルスペースチェック.sh

#!/bin/bash
# Oracle 表領域チェック
テーブルスペース名=$1
grep "\b$TABLESPACE_NAME\b" /tmp/tablespace.log | awk '{print $2}'

chmod 755 /etc/zabbix/scripts/tablespace_check.sh

2. スクリプトaをcrontabに入れる

su - オラクル

crontab -e

*/5 * * * * /home/oracle/get_tablespace_usage.sh

実行結果は /tmp/tablespace.log にあります。最初の列は表領域の名前で、2 番目の列は対応する表領域の使用状況です。

例2                                                                                                                                                             
システム 3                                                                                                                                                             
システム5                                                                                                                                                             
TBS01 85                                                                                                                                                             
温度 0                                                                                                                                                             
非ドットBS1 0                                                                                                                                                             
ユーザー 1

3. エージェントパラメータを編集する

vi /etc/zabbix/zabbix_agentd.d/userparameter_oracle.conf
# テーブルスペースの使用状況
ユーザーパラメータ=discovery.tablespace、/etc/zabbix/scripts/discovery_tablespace.sh
ユーザーパラメータ=tablespace.check.[*],/etc/zabbix/scripts/tablespace_check.sh $1

4. Zabbixウェブインターフェースで関連オプションを設定する

a. テンプレートを作成します。テンプレートには好きな名前を付けることができます。ここではマクロを定義します

b. 自動検出ルールを作成する

c. 監視項目のプロトタイプを作成する

d. トリガータイプを作成する

e. グラフィックプロトタイプを作成する

5. テスト

テーブルスペースにテーブルを作成し、80% を超えるようにデータを挿入して、アラームが発生するかどうかを確認しました。

テスト合格しました!

Zabbix を使用して Oracle テーブル スペースを監視する操作プロセスに関するこの記事はこれで終わりです。Zabbix による Oracle テーブル スペースの監視に関する関連コンテンツの詳細については、123WORDPRESS.COM で以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • 新しいプロジェクト用の Oracle テーブルの作成
  • Oracle一時表領域SQL文の実装
  • Oracleブロックチェーンテーブル作成プロセスの詳細な説明
  • Oracleテーブルパーティションの概念と操作
  • Oracleでテーブルデータを一括削除するいくつかの方法
  • PythonはOracleからデータを読み取り、グラフを生成します
  • Oracle 表領域拡張の詳細

<<:  Mysql で期間の交差をクエリする方法

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

推薦する

MySQLインスタンスクラッシュ事例の詳細な分析

[問題の説明]私たちの実稼働環境には、複数の MySQL サーバー (MySQL 5.6.21) の...

Linux クラウド サーバー上に SFTP サーバーとイメージ サーバーを構築する方法

まず、SFTP プロトコルと FTP プロトコルの違いを理解してください。ここでは詳細には触れません...

MySQL 接続例外とエラー 10061 の解決方法

MySQL は、スウェーデンの会社 MySQL AB によって開発されたリレーショナル データベース...

momentJs を使用してカウントダウン コンポーネントを作成する (サンプル コード)

今日はvueとmomentで作ったカウントダウンを紹介したいと思います。具体的な内容は以下のとおりで...

モバイルプラットフォーム開発におけるメタタグの適用の詳細な説明

デスクトップ プラットフォームの Web レイアウトのメタ タグは誰もがよく知っています。これは常に...

擬似静的およびクライアント適応型 Nginx の設定方法

バックエンドは thinkphp3.2.3 フレームワークを使用します。他の言語を使用している場合は...

MySQL マスタースレーブレプリケーションの実践の詳細説明 - GTID ベースのレプリケーション

GTIDベースのレプリケーション導入GTID ベースのレプリケーションは、MySQL 5.6 以降に...

Kubernetes を使用して Springboot または Nginx をデプロイするための詳細なチュートリアル

1 はじめに「Maven がワンクリックで Springboot を Docker リポジトリにデプ...

Vueはパーセンテージバー効果を実現します

この記事では、パーセンテージバーを実現するためのVueの具体的なコードを参考までに共有します。具体的...

JavaScript の useRef と useState の紹介

目次1. useStateフック2. useRefフック3. useRef と useState 4...

MySQLストアドプロシージャにおけるカーソル(DECLARE)の原理と使い方の詳細な説明

この記事では、例を使用して、MySQL ストアド プロシージャにおけるカーソル (DECLARE) ...

Dockerコンテナのデータを復元する方法

プロジェクトのテスト環境データベースのデータが失われてしまったので、記録しておきたいと思います。当時...

MySQL サブクエリとグループ化されたクエリ

目次概要サブクエリサブクエリの分類クエリの結果によるとサブクエリの位置で区別する選択後のサブクエリサ...

MySQL MGR 構築時の一般的な問題と解決策

目次01 よくある故障 1 02 よくある欠陥 2 03 よくある欠陥 3 04 よくある欠陥 4 ...

Linux7で仮想ホストを実装する3つの方法

1. 同じIPアドレス、異なるポート番号仮想ホスト 1: ホスト IP アドレスは 172.16.3...