そういうのがいいブログ

SIerで働く30代サラリーマンSEがインフラエンジニアに憧れてLinux・クラウド・AWSの勉強をするブログ

Hinemos6.2でSQL監視をする設定手順【JDBC(Oracle)インストールから】

HinemosでOracleのSQL監視を設定する方法

HinemosでOracleSQL監視を設定する方法をを知りたい方へ

Hinemosの監視機能を使って、OracleデータベースのSQL監視をしたいと考えているけれど、
Hinemosサーバ側の設定のやり方、CentOSへのOracle用のJDBCドライバの追加インストールの仕方が分からない、
と悩んでいませんか。

あと、インフラエンジニアになるためにおすすめの勉強法があれば知りたい、と考えていませんか?

HinemosでOracleデータベースのSQL監視をする手順を解説します。

本記事では、下記の内容を解説します。

  • CentOS7.7サーバに Oracle(19c) 用のJDBCドライバを追加する手順
  • Hinemos6.2マネージャ(CentOS7.7)に、OracleデータベースへのSQL監視を設定する手順
  • インフラエンジニアになるためのおススメの勉強法の紹介

この記事を書いている私は、某SIerに勤務しながら、WEB系エンジニア・インフラエンジニアに憧れて、
プログラミングおよびインフラ技術の勉強をしています。
私が実機で試したコマンドや画像を載せて書いていますので、記事の信頼性担保に繋がると思います。

Oracle用のJDBCドライバの入手(Oracleの公式サイトからダウンロード)

まず最初に、Oracleの公式サイトから、JDBCドライバのjarファイルをダウンロードする必要があります。

Hinemosインストール直後の状態だと、JDBCドライバは、「PostgreSQL」「SQL Server」用のものしか設定されていないからです。

※1 Linux版マネージャとWindows版マネージャはデフォルトではPostgreSQLSQL Serverが利用可能です。
MySQLOracleはプルダウンリストより選択可能な状態 になっておりますが、 JDBCドライバを別途配置する必要があります。
JDBCドライバの追加手順については、 「管理者ガイド 6.1.1 監視対象のRDBMSの追加」を参照してください。 引用元: 「Hinemos ver.6.2 ユーザーマニュアル 第3版 7.8 SQL監視」

OracleJDBCドライバのダウンロード元

下記のURLにアクセスして、gzファイルをダウロードしてから展開すると、jarファイルが取得できます。

https://www.oracle.com/jp/database/technologies/appdev/jdbc.html

OracleのJDBCドライバのダウンロード

Oracle Database 19c (19.3) drivers OracleのJDBCドライバのダウンロード

ojdbc8-full.tar.gz

OracleのJDBCドライバのダウンロード OracleのJDBCドライバのダウンロード

ダウンロードした「ojdbc8-full.tar.gz」を展開する

OracleのJDBCドライバのダウンロード

OracleのJDBCドライバのダウンロード

Hinemosマネージャサーバの設定

JDBCドライバのjarファイルをHinemosマネージャサーバ(CentOS7)にアップロード

HinemosマネージャからJDBC Driver経由でRDBMSに接続します。
このため、SQL監視の対象RDBMSを追加するには、 そのRDBMSに対応したJDBC Driverを用意する必要があります。
Java Runtime Environment 8.0で動作するJDBC Driverとなります) 引用元: 「Hinemos ver.6.2 管理者ガイド(Linux版マネージャ) 第3版 6.1.1 監視対象のRDBMSの追加」

ダウンロードしたtar.gzファイルを展開した中に入っていた「ojdbc8.jar」を
Hinemos6.2マネージャサーバ(CentOS7.7)の下記ディレクトリにアップロードします。

/opt/hinemos/plugins/

Hinemosマネージャサーバの設定

Hinemosマネージャの再起動

JDBC Driverを配置後、Hinemosマネージャを再起動する必要があります。

Hinemosマネージャを再起動しないと、HinemosにJDBCドライバが認識されません

Hinemosマネージャのステータス確認
service hinemos_manager status
[root@SV-SATURN ~]# service hinemos_manager status
Redirecting to /bin/systemctl status hinemos_manager.service
● hinemos_manager.service - Hinemos Manager
   Loaded: loaded (/usr/lib/systemd/system/hinemos_manager.service; enabled; vendor preset: disabled)
   Active: active (running) since 水 2020-01-01 21:58:16 JST; 2 weeks 2 days ago
 Main PID: 5179 (java)
   CGroup: /system.slice/hinemos_manager.service
           mq5179 /usr/lib/jvm/jre-1.8.0-openjdk/bin/java -Djdk.xml.entityExp...

 101 21:58:15 SV-SATURN jvm_start.sh[5113]: sysctl: reading key "net.ipv..."
 101 21:58:15 SV-SATURN jvm_start.sh[5113]: sysctl: reading key "net.ipv..."
 101 21:58:15 SV-SATURN jvm_start.sh[5113]: sysctl: reading key "net.ipv..."
 101 21:58:15 SV-SATURN jvm_start.sh[5113]: sysctl: reading key "net.ipv..."
 101 21:58:15 SV-SATURN jvm_start.sh[5113]: sysctl: reading key "net.ipv..."
 101 21:58:15 SV-SATURN jvm_start.sh[5113]: sysctl: reading key "net.ipv..."
 101 21:58:15 SV-SATURN jvm_start.sh[5113]: sysctl: reading key "net.ipv..."
 101 21:58:15 SV-SATURN jvm_start.sh[5113]: waiting for Java Virtual Mac....
 101 21:58:16 SV-SATURN jvm_start.sh[5113]: Java Virtual Machine started...)
 101 21:58:16 SV-SATURN systemd[1]: Started Hinemos Manager.
Hint: Some lines were ellipsized, use -l to show in full.
Hinemosマネージャの停止
service hinemos_manager stop
[root@SV-SATURN ~]# service hinemos_manager stop
Redirecting to /bin/systemctl stop hinemos_manager.service
[root@SV-SATURN ~]# service hinemos_manager status
Redirecting to /bin/systemctl status hinemos_manager.service
● hinemos_manager.service - Hinemos Manager
   Loaded: loaded (/usr/lib/systemd/system/hinemos_manager.service; enabled; vendor preset: disabled)
   Active: inactive (dead) since 土 2020-01-18 12:44:51 JST; 10s ago
  Process: 26577 ExecStop=/opt/hinemos/bin/jvm_stop.sh (code=exited, status=0/SUCCESS)
 Main PID: 5179 (code=exited, status=143)

 101 21:58:16 SV-SATURN jvm_start.sh[5113]: Java Virtual Machine started...)
 101 21:58:16 SV-SATURN systemd[1]: Started Hinemos Manager.
 118 12:44:13 SV-SATURN systemd[1]: Stopping Hinemos Manager...
 118 12:44:13 SV-SATURN jvm_stop.sh[26577]: waiting for Java Virtual Mac....
 118 12:44:13 SV-SATURN jvm_stop.sh[26577]: Thread Dump 1
 118 12:44:14 SV-SATURN jvm_stop.sh[26577]: Thread Dump 2
 118 12:44:15 SV-SATURN jvm_stop.sh[26577]: Thread Dump 3
 118 12:44:51 SV-SATURN jvm_stop.sh[26577]: .......done
 118 12:44:51 SV-SATURN jvm_stop.sh[26577]: Java Virtual Machine stopped
 118 12:44:51 SV-SATURN systemd[1]: Stopped Hinemos Manager.
Hint: Some lines were ellipsized, use -l to show in full.
Hinemosマネージャの起動
service hinemos_manager start
[root@SV-SATURN ~]# service hinemos_manager start
Redirecting to /bin/systemctl start hinemos_manager.service
[root@SV-SATURN ~]# service hinemos_manager status
Redirecting to /bin/systemctl status hinemos_manager.service
● hinemos_manager.service - Hinemos Manager
   Loaded: loaded (/usr/lib/systemd/system/hinemos_manager.service; enabled; vendor preset: disabled)
   Active: active (running) since 土 2020-01-18 12:45:18 JST; 2s ago
  Process: 26577 ExecStop=/opt/hinemos/bin/jvm_stop.sh (code=exited, status=0/SUCCESS)
  Process: 26729 ExecStart=/opt/hinemos/bin/jvm_start.sh -W (code=exited, status=0/SUCCESS)
 Main PID: 26790 (java)
   CGroup: /system.slice/hinemos_manager.service
           mq26790 /usr/lib/jvm/jre-1.8.0-openjdk/bin/java -Djdk.xml.entityEx...

 118 12:45:17 SV-SATURN jvm_start.sh[26729]: sysctl: reading key "net.ip..."
 118 12:45:17 SV-SATURN jvm_start.sh[26729]: sysctl: reading key "net.ip..."
 118 12:45:17 SV-SATURN jvm_start.sh[26729]: sysctl: reading key "net.ip..."
 118 12:45:17 SV-SATURN jvm_start.sh[26729]: sysctl: reading key "net.ip..."
 118 12:45:17 SV-SATURN jvm_start.sh[26729]: sysctl: reading key "net.ip..."
 118 12:45:17 SV-SATURN jvm_start.sh[26729]: sysctl: reading key "net.ip..."
 118 12:45:17 SV-SATURN jvm_start.sh[26729]: sysctl: reading key "net.ip..."
 118 12:45:17 SV-SATURN jvm_start.sh[26729]: waiting for Java Virtual Ma....
 118 12:45:18 SV-SATURN jvm_start.sh[26729]: Java Virtual Machine starte...)
 118 12:45:18 SV-SATURN systemd[1]: Started Hinemos Manager.
Hint: Some lines were ellipsized, use -l to show in full.

Oracleデータベースサーバ側のfirewalldファイアウォールのポート開放

次は、監視される側のOracleデータベースサーバの方のファイアウォールのポート開放をして
Hinemosマネージャから、データベースへ接続できるようにします。

Hinemos専用のゾーン追加
firewall-cmd --new-zone=hinemoszone --permanent
[root@SV-PLUTO ~]# firewall-cmd --new-zone=hinemoszone --permanent
success
[root@SV-PLUTO ~]# firewall-cmd --zone=hinemoszone --set-target=ACCEPT --permanent
success
[root@SV-PLUTO ~]# firewall-cmd --zone=hinemoszone --add-source=192.168.1.107/24 --permanent
success
Oracle用のポート1521を追加
firewall-cmd --zone=hinemoszone --add-port=1521/tcp --permanent
[root@SV-PLUTO ~]# firewall-cmd --zone=hinemoszone --add-port=1521/tcp --permanent
success
再読み込みしてアクティブゾーンの確認
firewall-cmd --reload
firewall-cmd --get-active-zones
[root@SV-PLUTO ~]# firewall-cmd --reload
success
[root@SV-PLUTO ~]# firewall-cmd --get-active-zones
hinemoszone
  sources: 192.168.1.107/24
managerzone
  sources: 192.168.1.101/24
public
  interfaces: ens192

Hinemosクライアント画面からの設定

監視設定パースペクティブ画面で、SQL監視(数値)を追加

接続先DBは「Oracle」を選択

今回は適当に下記のように設定 jdbc:oracle:thin:@//ホスト名:ポート番号/サービス名

Hinemosクライアント画面の監視履歴の確認およびOracleリスナーログの確認

監視履歴パースペクティブ画面で結果を確認

Oracleリスナーログの確認

リスナーログには以下のように出力されていました。

/opt/oracle/diag/tnslsnr/SV-PLUTO/listener/trace/listener.log
2020-01-18T12:59:32.025490+09:00
18-1月 -2020 12:59:32 * (CONNECT_DATA=(CID=(PROGRAM=JDBC Thin Client)(HOST=__jdbc__)(USER=root))(SERVICE_NAME=ORCLCDB)) * (ADDRESS=(PROTOCOL=tcp)(HOST=192.168.1.107)(PORT=60934)) * establish * ORCLCDB * 0
2020-01-18T13:00:49.008584+09:00
18-1月 -2020 13:00:49 * (ADDRESS=(PROTOCOL=tcp)(HOST=192.168.1.107)(PORT=60946)) * <unknown connect data> * 12537

参考にしたサイト

atomitech.jp

インフラエンジニアになるための勉強のやり方

私は、某SIerに勤務しながら、WEB系エンジニア・インフラエンジニアに憧れて、プログラミングおよびインフラ技術の勉強をしています。

現在の会社で直接担当している業務の中では、決まった技術しか触れないけれど、
「他にも将来役に立ちそうなインフラ技術を勉強したい」「働きながらでもできる効率的なインフラエンジニアの勉強方法を知りたい」と考えている方のために、
①おすすめの書籍と、②おススメのオンライン学習サイト、③おすすめのエンジニアスクールを紹介します。

働きながら勉強するための、おススメの書籍と、オンラインで学習できるサイトの紹介です。

インフラエンジニアの勉強ができるおススメ書籍

朝の通勤時や帰宅時の電車の中や、社外打合せへの移動中などに勉強するなら、やはり書籍が一番だと思います。

インフラエンジニアの教科書

LINE社に創業時から在籍しているインフラエンジニア・プロマネの「佐野裕」さんの本です。 https://twitter.com/sanonosatwitter.com

膨大なトラフィックをさばくLINE社にて構築・保守を行っている現役エンジニアが記すITインフラの必須知識と経験の数々! サーバ、OS、ネットワーク機器、データセンター、購買と商談、障害対応、大規模インフラ、成長するために必要なスキルなど、基礎知識から実践まで言及。 ITインフラの世界が理解できる珠玉の1冊!

インフラエンジニアの教科書
(C&R研究所)
佐野裕

1週間でLPICの基礎が学べる本

Linuxの資格「LPIC」の試験対策を初心者向けに書いた入門書です。

Linuxの資格として広く知られているLPICですが、あまり知識の無いまま試験対策を始める人も多いのではないでしょうか。しかし、試験対策書は試験範囲についてのみ解説しているものが多く、初心者が理解するのは困難です。本書は、初心者がスムーズに試験対策を行えるよう、事前に基礎固めを行うLinux入門書です。試験情報や模擬問題も掲載しているので、資格取得を視野に入れた効率的な基礎学習が行えます。

1週間でLPICの基礎が学べる本
第3版 徹底攻略シリーズ
(インプレス)
中島能和

インフラエンジニアの勉強ができるオンライン学習サイト

Udemy (オンライン動画学習サイト)

Udemy(ユーデミー)は、オンラインで動画で学習できるサービスです。
ITエンジニア系の講座もたくさん公開されています。

世界最大級のオンライン学習サイトUdemy

Udemyの特徴
  • ユーザー登録すれば、第1回の講座は無料で視聴できる
  • 無料のコンテンツもある
  • 過去に受講した人の人数や、受講した人の評価も表示されるので選びやすい

f:id:souiunogaii:20200118154357j:plain

世界最大級のオンライン学習サイトUdemy

インフラエンジニアの勉強ができる専門スクール

リナックスアカデミー(ITエンジニア専門スクール)

スクールというと、昼間働いている人には難しいかもしれませんが、
以下に紹介するスクールには、 Linuxサーバとネットワークとを両分野ともに学べるコースが、
夜間・土日での5か月~7か月の期間で用意されています。

リナックスアカデミー(ITエンジニア専門スクール) http://www.linuxacademy.ne.jp

リナックスアカデミーの特徴
  • 初心者でも最短4週間でエンジニアになれる「IT教育専門機関」
  • 100%ライブ抗議の「少人数クラス担任制」
  • 実務スキルを身につける「PBL(Project Based Learning)」が充実
  • 圧倒的な合格実績と「合格保証制度」
  • 就職実績と「就職・転職サポート」が充実

リナックスアカデミーが選ばれ続ける最大の理由、それはIT技術に特化した日本初のIT教育専門機関だからということです。他を寄せ付けないカリキュラムと講師の質で日本No.1のオープンソース専門スクールだと認知されています。 スクールとしては世界で初めてLPI(Linux技術者認定機関)プラチナスポンサーに加盟し、LPI-Jアカデミック認定校第一号スクール、OSS-DBアカデミック認定校第一号スクール、PostgreSQL CE認定校、国内唯一のPHP技術者育成認定校Zend Authorized Training Center など、数々の認定を受けています。 先日来日したLPIC資格試験の開発責任者であるMatthew Rice氏にも、「世界でNo.1と言われる日本の市場で、リナックスアカデミーはNo.1のスクールだと言われている。それは素晴らしいことだ」という言葉を頂いています。

f:id:souiunogaii:20200118152129j:plain

リナックスアカデミー(ITエンジニア専門スクール)の資料請求(無料)について詳しく見てみる

HinemosでOracleデータベースのSQL監視をする手順まとめ

  1. HinemosマネージャサーバにJDBCドライバのjarファイルを配置
  2. Hinemosマネージャを再起動
  3. Oracleデータベースサーバ側のファイアウォールのポート開放
  4. Hinemosクライアント画面から監視の設定

以上、読んでいただきありがとうございました。