Zabbix は orabbix を使用して Oracle データベースを監視します

Orabbix プラグインのダウンロード アドレス:  http://www.smartmarmot.com/product/orabbix/download/

1. zabbix_server のインストールと展開 orabbix :

1. orabbix は JDBC を介してデータベースに接続します。zabbix サーバーは jdk をインストールする必要があります。jdk1.7 と jdk1.8 の両方が利用可能です。

yum install java-1.8.0-openjdk.x86_64 java-1.8.0-openjdk-devel.x86_64 -y

java -version

java version "1.8.0_45"

Java(TM) SE Runtime Environment (build 1.8.0_45-b14)

Java HotSpot(TM) 64-Bit Server VM (build 25.45-b02, mixed mode)

2. /opt/orabbix ディレクトリを作成 ***このディレクトリに配置することをお勧めします.他のディレクトリを配置する場合は、デフォルトで opt/orabbix ディレクトリに書き込まれている orabbix 起動ファイル orabbix を変更する必要があります** *

 mkdir -p /opt/orabbix

3. orabbix インストール ファイルを /opt/ ディレクトリにダウンロードし、ファイルを解凍します。

wget https://jaist.dl.sourceforge.net/project/orabbix/orabbix-1.2.3.zip
unzip -o orabbix-1.2.3.zip -d /opt/orabbix/

4. orabbix 構成ファイルをコピーします。

cp /opt/orabbix/conf/config.props.sample /opt/orabbix/conf/config.props

5. orabbix 起動ファイルをコピーして認証する

cp /opt/orabbix/init.d/orabbix /etc/init.d/

chmod u+x /etc/init.d/orabbix

chmod u+x /opt/orabbix/run.sh

6. orabbix 構成ファイルを変更する

原配置文件:
ZabbixServerList=ZabbixServer1,ZabbixServer2

ZabbixServer1.Address=IP_ADDRESS_OF_ZABBIX_SERVER
ZabbixServer1.Port=PORT_OF_ZABBIX_SERVER

ZabbixServer2.Address=IP_ADDRESS_OF_ZABBIX_SERVER
ZabbixServer2.Port=PORT_OF_ZABBIX_SERVER

OrabbixDaemon.PidFile=./logs/orabbix.pid
OrabbixDaemon.Sleep=300
OrabbixDaemon.MaxThreadNumber=100

DatabaseList=DB1,DB2,DB3

DatabaseList.MaxActive=10
DatabaseList.MaxWait=100
DatabaseList.MaxIdle=1

DB1.Url=jdbc:oracle:thin:@server.domain.example.com:<LISTENER_PORT>:DB1
DB1.User=zabbix
DB1.Password=zabbix_password
DB1.MaxActive=10
DB1.MaxWait=100
DB1.MaxIdle=1
DB1.QueryListFile=./conf/query.props

DB2.Url=jdbc:oracle:thin:@server2.domain.example.com:<LISTENER_PORT>:DB2
DB2.User=zabbix
DB2.Password=zabbix_password
DB2.QueryListFile=./conf/query.props

DB3.Url=jdbc:oracle:thin:@server3.domain.example.com:<LISTENER_PORT>:DB3
DB3.User=zabbix
DB3.Password=zabbix_password
DB3.QueryListFile=./conf/query.props

修改之后:

ZabbixServerList=ZabbixServer  # (zabbixserver的名字,下行中address和port都引用到了这个名字,所以下面两行的前缀名字要与这里的名字保持一致,自己觉得还是不修改更好一点)
ZabbixServer.Address=192.168.245.111  #zabbix server ip地址
ZabbixServer.Port=10051  # zabbix server的服务端口


OrabbixDaemon.PidFile=./logs/orabbix.pid
OrabbixDaemon.Sleep=300
OrabbixDaemon.MaxThreadNumber=100

DatabaseList=ORACLETEST  #这里很重要,不仅要跟zabbix监控配置的主机名一致,而且跟上面配置zabbixserver一样,下面DB1都需要修改为ORACLETEST,如果多个数据库就用逗号分隔

DatabaseList.MaxActive=10 # 数据库连接池中的最大活跃数量(全局参数)
DatabaseList.MaxWait=100  # 数据库连接池中的最大等待的毫秒数(全局参数)
DatabaseList.MaxIdle=1

ORACLETEST.Url=jdbc:oracle:thin:@192.168.245.222:1521:ORACLETEST #192.168.246.222 oracle数据库的地址,1521端口,ORACLETEST数据库实例名
ORACLETEST.User=zabbix      #授权的账号
ORACLETEST.Password=zabbix  #授权的密码
# 以下几个可对单个数据库进行配置,如果不配置则引用上面的数据库连接池全局配置
ORACLETEST.MaxActive=10
ORACLETEST.MaxWait=100
ORACLETEST.MaxIdle=1
#要查询的语句都在这定义的,根据需求可添加新的监控项
ORACLETEST.QueryListFile=./conf/query.props 

***如果有多个数据库需要监控、可以在下面增加配置。当然、上面的DatabaseList也需要进行添加***
#DB2.Url=jdbc:oracle:thin:@server2.domain.example.com:<LISTENER_PORT>:DB2
#DB2.User=zabbix
#DB2.Password=zabbix_password
#DB2.QueryListFile=./conf/query.props

#DB3.Url=jdbc:oracle:thin:@server3.domain.example.com:<LISTENER_PORT>:DB3
#DB3.User=zabbix
#DB3.Password=zabbix_password
#DB3.QueryListFile=./conf/query.props

2.  Oracle データベースの操作:

1. Oracle 監視アカウントを作成する

create user zabbix identified by zabbix default tablespace system temporary tablespace temp profile default account unlock;

2. 役割の権限を付与する

GRANT IMP_FULL_DATABASE TO zabbix;
GRANT CONNECT TO zabbix;
GRANT RESOURCE TO zabbix;
ALTER USER zabbix DEFAULT ROLE ALL;
GRANT UNLIMITED TABLESPACE TO zabbix;
GRANT CREATE ANY TRIGGER TO zabbix;
GRANT CREATE VIEW TO zabbix;
GRANT DROP ANY TABLE TO zabbix;
GRANT CREATE TABLE TO zabbix;
GRANT CREATE ANY PROCEDURE TO zabbix;
GRANT UPDATE ANY TABLE TO zabbix;
GRANT SELECT ANY TABLE TO zabbix;
GRANT CREATE ANY SYNONYM TO zabbix;
GRANT DELETE ANY TABLE TO zabbix;
GRANT INSERT ANY TABLE TO zabbix;
GRANT CREATE SEQUENCE TO zabbix;
GRANT DBA TO zabbix;

3. ACL アクセス制御を開きます。そうしないと、一部の監視データを表示できません

exec dbms_network_acl_admin.create_acl(acl => 'resolve.xml',description => 'resolve acl', principal =>'ZABBIX', is_grant => true, privilege => 'resolve');

exec dbms_network_acl_admin.assign_acl(acl => 'resolve.xml', host =>'*');

commit;

3. ojdbc8.jar ドライバーを追加します

 orabbix はデフォルトで ojdbc6.jar ドライバーを使用します。これは、ojdbc6.jar ドライバーの認証プロトコルが 12c 認証プロトコルと一致しないためです。そのため、ここでは ojdbc8.jar ドライバーに置き換えられます。

ダウンロード URL: https://www.oracle.com/database/technologies/appdev/jdbc-ucp-183-downloads.html

1. ojdbc8.jar ファイルを /opt/orabbix/lib/ に移動します。

mv ojdbc8.jar /opt/orabbix/lib/

2. /opt/orabbix/lib/ ディレクトリにあるデフォルトの ojdbc6.jar を削除します。

rm -rf /opt/orabbix/lib/ojdbc6.jar

3. ojdbc8.jar を承認します。

chown -Rf root.root /opt/orabbix/lib/ojdbc8.jar

chmod 644 /opt/orabbix/lib/ojdbc8.jar

4. orabbix-1.2.3.jar を再コンパイルします。

orabbix は、データを送信するときに orabbix がデータ パケットにヘッダーを追加しないため、デフォルトで zabbix4+ をサポートしません. zabbix4 より前のバージョンでは、zabbix サーバーと zabbix プロキシによって受信されたデータ パケットはヘッダーを追加することが許可されていないため、orabbix はzabbix4. バージョン 0 より前は orabbix を簡単に監視できましたが、zabbix4.0 以降、zabbix は純粋なテキスト プロトコル (ヘッダーなし) のサポートを正式に削除しました。

そのため、zabbix4.0 以降のバージョンでは、強制的にヘッダー ヘッダーを追加する必要があります.ヘッダー ヘッダーのないデータ パケットの場合、Zabbix サーバー/Zabbix プロキシはこのデータ パケットを拒否します.解決策は github で提供されており、orabbix-1.2 を再コンパイルします. .3.jar は、ヘッダー プロトコル ヘッダーのサポートを追加しました。具体的な操作は以下の通り

1. https://github.com/hsnotebook/orabbix4zabbix4にアクセスし 、コードをクリックして orabbix4.zip をダウンロードします。

2. サーバーにアップロードして解凍する

unzip orabbix4zabbix4-master.zip -d /usr/local/

3. 構成ファイルを変更する

cd /usr/local/orabbix4zabbix4-master

vi /usr/local/orabbix4zabbix4-master/bind.sh

#注释最后一行:
#docker build . -t zabbix-agent-oracle

4. コンパイル

cd /usr/local/orabbix4zabbix4-master

./bind.sh

5. コンパイルされた orabbix-1.2.3.jar を /opt/orabbix/ に移動します。

mv /usr/local/orabbix4zabbix4-master/orabbix/orabbix-1.2.3.jar /opt/orabbix/

 6.orabbixを起動

systemctl start orabbix

7. orabbix が起動していることを確認します

ps aux | grep orabbix

5. Orabbix モニタリングを Zabbix Web に追加する

1. Winds システムで orabbix-1.2.3 を解凍します。

 2.  Orabbix には、デフォルト emplateの下に独自の監視テンプレートが付属しています

Orabbix_export_full.xml すべてインポート (チャート監視項目トリガー)
Orabbix_export_graphs.xml チャート
Orabbix_export_items.xml 監視項目
Orabbix_export_triggers.xml トリガー

3. 監視テンプレートをzabbix-server Webページに追加します

構成 - テンプレート - インポート

 4. Orabbix_export_full.xml を選択します。

 

5. 再度 [インポート] を選択します

 

 6. Oracle ホストに接続するだけ

 

 

 

おすすめ

転載: blog.csdn.net/weixin_50877409/article/details/127107523