Skip to content

Commit 142eca6

Browse files
sumoanemaJV0812
authored andcommitted
Changes in oracle otel app for addition of metric collection, metric … (#4694)
* Changes in oracle otel app for addition of metric collection, metric based dashbaoard and cetification of dashboard on latest oracle version * Spell corrections * Minor fixes * Update docs/integrations/databases/opentelemetry/oracle-opentelemetry.md * minor fix * Update docs/integrations/databases/opentelemetry/oracle-opentelemetry.md * Modifying description for log file paths needed for config * Update docs/integrations/databases/opentelemetry/oracle-opentelemetry.md * Update docs/integrations/databases/opentelemetry/oracle-opentelemetry.md * Update docs/integrations/databases/opentelemetry/oracle-opentelemetry.md * Update docs/integrations/databases/opentelemetry/oracle-opentelemetry.md --------- Co-authored-by: Jagadisha V <[email protected]>
1 parent 9ddbf05 commit 142eca6

File tree

1 file changed

+86
-34
lines changed

1 file changed

+86
-34
lines changed

docs/integrations/databases/opentelemetry/oracle-opentelemetry.md

Lines changed: 86 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -11,40 +11,50 @@ import TabItem from '@theme/TabItem';
1111

1212
<img src={useBaseUrl('img/integrations/databases/oracle.png')} alt="Thumbnail icon" width="100"/> <img src={useBaseUrl('img/send-data/otel-color.svg')} alt="Thumbnail icon" width="45"/>
1313

14-
The [Oracle](https://docs.oracle.com/database/121/CNCPT/intro.htm#CNCPT001) app is a logs based app. Preconfigured dashboards and searches provide insight into the listeners, sys/xml audit logs, alerts, performance, and security.
14+
The [Oracle](https://docs.oracle.com/database/121/CNCPT/intro.htm#CNCPT001) app is a logs and metrics based app. Preconfigured dashboards and searches provide insight into the listeners, sys/xml audit logs, alerts, performance, and security. It also gives insight around count of rollback, commits, transaction, process, session, hard parse, and DML locks.
1515

1616
This app is tested with the following Oracle versions:
1717

18-
- Non-Kubernetes: Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production - Version 19.3.0.0.0
18+
- Non-Kubernetes: Oracle Database 23 Release 23.4.0.24.05.
1919

20-
Oracle logs are sent to Sumo Logic through OpenTelemetry [filelog receiver](https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/receiver/filelogreceiver).
20+
Oracle logs are sent to Sumo Logic through OpenTelemetry [filelog receiver](https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/receiver/filelogreceiver) and metrics are collected through [Oracledb receiver](https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/receiver/oracledbreceiver)
2121

2222
<img src='https://sumologic-app-data-v2.s3.amazonaws.com/dashboards/Oracle-OpenTelemetry/Oracle-Schematics.png' alt="Schematics" />
2323

24-
## Log types
25-
26-
- Alert Logs
27-
- Listener Logs
28-
- Audit Logs
29-
3024
## Fields creation in Sumo Logic for Oracle
3125

3226
Following are the tags which that be created as part of Oracle App install if not already present. 
3327

34-
- `db.cluster.name`. User configured. Enter a name to identify this Oracle cluster. This cluster name will be shown in the Sumo Logic dashboards.
35-
- `db.system`. Has a fixed value of **oracle**.
3628
- `sumo.datasource`. Has a fixed value of **oracle**.
29+
- `db.system`. Has a fixed value of **oracle**.
30+
- `db.cluster.name`. User configured. Enter a name to identify this Oracle cluster. This cluster name will be shown in the Sumo Logic dashboards.
31+
- `db.node.name`. Has the value of host name of the machine which is being monitored.
3732

3833
## Prerequisites
3934

35+
### For metrics collection
36+
37+
You will need to assign these permissions to the database user used to fetch metrics:
38+
39+
```
40+
GRANT SELECT ON V_$SESSION TO <username>;
41+
GRANT SELECT ON V_$SYSSTAT TO <username>;
42+
GRANT SELECT ON V_$RESOURCE_LIMIT TO <username>;
43+
GRANT SELECT ON DBA_TABLESPACES TO <username>;
44+
GRANT SELECT ON DBA_DATA_FILES TO <username>;
45+
GRANT SELECT ON DBA_TABLESPACE_USAGE_METRICS TO <username>;
46+
```
47+
48+
### For logs collection
49+
4050
Here are the steps required to configure log collection for Oracle running on a non-Kubernetes environment.
4151

4252
* [Enable Oracle logging](#enable-oracle-logging)
4353
* [Verify log files path](#verify-local-logs-file-directories-and-path)
4454
* [Set up Oracle performance metrics script](#performance-metrics-script-setup)
4555
* [Configure three local log file Sources](#step-2-configure-integration)
4656

47-
### Enable Oracle logging
57+
#### Enable Oracle logging
4858

4959
If logging is not enabled, you can configure it by following the steps below.
5060

@@ -54,9 +64,13 @@ If logging is not enabled, you can configure it by following the steps below.
5464
lsnrctl command [listener_name]
5565
lsnrctl set log_status on
5666
```
57-
- **Audit Log**. Follow [this](https://docs.oracle.com/cd/E11882_01/server.112/e10575/tdpsg_auditing.htm#TDPSG50000) guide to enable Audit Logs.
67+
- **Audit Log**. Traditional auditing is deprecated in Oracle Database 21c. If you are using version below 21c follow [this](https://docs.oracle.com/cd/E11882_01/server.112/e10575/tdpsg_auditing.htm#TDPSG50000) guide to enable Audit Logs. For version 21c and above, follow [this](https://docs.oracle.com/en/database/oracle/oracle-database/19/dbseg/administering-the-audit-trail.html#GUID-662AA54B-D878-4B78-94D3-733256B3F37C) to enable exporting for unified audit trail through syslog for Oracle on Linux.
5868

59-
### Verify local logs file directories and path
69+
:::note
70+
Currently this app does not support collection of unified audit trail logs collected in Oracle on Windows as Windows event logs.
71+
:::
72+
73+
#### Verify local logs file directories and path
6074

6175
- **Oracle Alert Logs**. For 11g and later releases (12c, 18c, 19c). By default, Oracle logs are stored in
6276
`$ORACLE_BASE/diag/rdbms/$DB_UNIQUE_NAME/$ORACLE_SID/trace/`. The default directory for log files is stored in `BACKGROUND_DUMP_DEST` parameter. You can query the value of `BACKGROUND_DUMP_DEST`, an initialization parameter, where you can find Oracle alert log by executing the command below:
@@ -67,18 +81,20 @@ If logging is not enabled, you can configure it by following the steps below.
6781
```
6882
[oracle@sumolab alert]$ lsnrctl status
6983
```
70-
- **Oracle Audit Logs**. By default, Oracle logs are stored in
71-
```
72-
$ORACLE_BASE/app/oracle/admin/orcl/adump
73-
```
84+
- **Oracle Audit Logs**.
85+
- **For Oracle version below 21c**. By default, Oracle logs are stored in
86+
```
87+
$ORACLE_BASE/app/oracle/admin/orcl/adump
88+
```
89+
The default directory for log files is stored as the value of `audit_file_dest`. In order to display it, run the following command: `SQL> show parameter audit`.
7490
75-
The default directory for log files is stored as the value of `audit_file_dest`. In order to display it, run the following command: `SQL> show parameter audit`.
91+
Audit Logs should be in either `XML`, `EXTENDED`, or `{{OS }}` format for the app to work.
7692
77-
Audit Logs should be in either `XML`, `EXTENDED`, or `{{OS }}` format for the app to work.
93+
The location of these logs will be required when you set up the app through the app catalog.
7894
79-
The location of these logs will be required when you set up the app through the app catalog.
95+
- **For Oracle version 21c and above**. Once unified audit trail is redirected to syslog, it will start getting written to destination set in `syslog.conf`.
8096
81-
### Performance Metrics Script Setup
97+
#### Performance metrics script setup
8298
8399
To set up the performance metrics script on Linux and Windows for the Oracle app:
84100
@@ -163,21 +179,26 @@ import SetupColl from '../../../reuse/apps/opentelemetry/set-up-collector.md';
163179
### Step 2: Configure integration
164180
165181
In this step, you will configure the yaml required for Oracle Collection.
182+
Below are the inputs required:
166183
167-
Path of the log file configured to capture oracle logs needs to be given here. Here is the list of logs which are required by the application. 
168-
169-
- Alert Logs
170-
- Listener Logs
171-
- Audit Logs
172-
- Performance metric script-based logs
184+
- **`Endpoint (no default)`**. Endpoint used to connect to the OracleDB server. Must be in the format of `host:port`.
185+
- **`Alert Logs`**. Path of the log file configured to capture oracle alert logs.
186+
- **`Listener Logs`**. Path of the log file configured to capture oracle listener logs .
187+
- **`Audit Logs`**. Path of the log file configured to capture oracle audit logs.
188+
- **`Performance metric script-based logs`**. Path of the log file configured to capture log generated through script.
189+
- **`username`**. Username for the OracleDB connection.
190+
- **`password`**. Password for the OracleDB connection. Special characters are allowed.
191+
- **`service`**. OracleDB Service that the receiver should connect to.
192+
- **`Collection Interval`**. You can specify at what interval should the metrics be collected.
173193
174-
You can get the location of these logs by following the instructions in the prerequisite step.
194+
You can add any custom fields which you want to tag along with the data ingested in Sumo Logic.
175195
176196
Once the details are filled, click on the **Download YAML File** button to get the yaml file.
197+
For Linux platform, click **Download Environment Variables File** to get the file with the password which is supposed to be set as environment variable.
177198
178199
<img src='https://sumologic-app-data-v2.s3.amazonaws.com/dashboards/Oracle-OpenTelemetry/Oracle-YAML.png' style={{border:'1px solid gray'}} alt="YAML" />
179200
180-
### Step 3: Send logs to Sumo Logic
201+
### Step 3: Send logs and metrics to Sumo Logic
181202
182203
import LogsIntro from '../../../reuse/apps/opentelemetry/send-logs-intro.md';
183204
@@ -259,19 +280,19 @@ import LogsOutro from '../../../reuse/apps/opentelemetry/send-logs-outro.md';
259280

260281
<LogsOutro/>
261282

262-
## Sample log messages
283+
## Sample log message
263284

264-
Sample Log Message in Non-Kubernetes environment:
285+
Sample log message in Non-Kubernetes environment:
265286

266287
```sh title="Time"
267288
20-Jan-2023 11:02:56 * (CONNECT_DATA=(CID=(PROGRAM=null)(HOST=__jdbc__)(USER=null))(SERVICE_NAME=sumo.cmdb01.com)) * (ADDRESS=(PROTOCOL=TCP)(HOST=124.243.25.82)(PORT=56486)) * establish * sumo.cmdb01.com * 12514
268289

269290
TNS-12514: TNS:listener does not currently know of service requested in connect descriptor
270291
```
271292

272-
## Sample queries
293+
## Sample log query
273294

274-
This sample Query is from the **Oracle - Overview** dashboard > **DB Connection** panel.
295+
This sample query is from the **Oracle - Overview** dashboard > **DB Connection** panel.
275296

276297
```sql title="Query String"
277298
 %"db.cluster.name"=* %"deployment.environment"=* %"sumo.datasource"=oracle establish ("SID=" or "SERVICE_NAME=")  | json "log" as _rawlog nodrop 
@@ -283,8 +304,27 @@ This sample Query is from the **Oracle - Overview** dashboard > **DB Connection*
283304
| count as %"ConnectionCount"
284305
```
285306

307+
## Sample metrics
308+
309+
```json
310+
{"queryId":"A","oracledb.instance.name":"localhost:1521/FREE","_source":"oracle/oracledb","cloud.platform":"aws_ec2","_metricId":"lZCclGCpxjgi0_E4r4v5ww","host.image.id":"ami-000314be38df8042e","_sourceName":"oracle","cloud.availability_zone":"us-east-1b","host.id":"i-05ce9f3824aa73d10","host.group":"anemaoracle","os.type":"linux","sumo.datasource":"oracle","db.system":"oracle","db.node.name":"ip-10-0-29-37","cloud.account.id":"956882708938","_sourceCategory":"OTC Metric Input","deployment.environment":"anemaoracle","_contentType":"OpenTelemetry","tablespace_name":"SYSTEM","host.type":"m5.large","host.name":"ip-10-0-29-37","metric":"oracledb.tablespace_size.usage","_collectorId":"00005AF310D08C7C","_sourceId":"0000000000000000","unit":"By","db.cluster.name":"test","cloud.region":"us-east-1","cloud.provider":"aws","_sourceHost":"ip-10-0-29-37","_collector":"ip-10-0-29-37","max":1104150528,"min":1104150528,"avg":1104150528,"sum":3312451584,"latest":1104150528,"count":3}
311+
```
312+
313+
## Sample metrics query
314+
315+
This sample query is from the **Oracle - Overview** dashboard > **Session Count** panel.
316+
317+
```sql title="Session Count"
318+
sumo.datasource=oracle metric=oracledb.sessions.usage deployment.environment=* db.cluster.name=* db.node.name=* | sum
319+
```
320+
286321
## Viewing Oracle dashboards
287322

323+
:::note
324+
- **Oracle - Sys Audit Log**, **Oracle - Sys Audit Log - Logon Analysis**, **Oracle - XML Audit Log - Logon Analysis**, and **Oracle - XML Audit Log - SQL Statement Analysis** dashboards will be populated only when collecting logs for Oracle database version below 21c.
325+
- **Oracle - Unified Audit Syslogs** dashboard will populate for audit log collected for Oracle database version 21c and above.
326+
:::
327+
288328
### Overview
289329

290330
See the overview of Oracle listener process activity, including successful DB connections, TNS error information, SID and Service Name usage, and top usage, in terms of ports, database users, user hosts, client hosts, and user programs as derived from the Oracle Listener log.
@@ -504,3 +544,15 @@ Maximum Wait Time (sec) by User. A line chart that shows, for each user, the ses
504544
Top Session Wait Time Events. A table that shows the top 10 event types associated with session waits, and the count of each event type.
505545

506546
Recent Jobs in the database. A table of information about recent database jobs, including when each job ran, low long it ran, and when it will next run.
547+
548+
549+
### Unified Audit Syslog
550+
551+
<img src='https://sumologic-app-data-v2.s3.amazonaws.com/dashboards/Oracle-OpenTelemetry/Oracle-Unified-Audit-Syslog.png' alt="Monitor Performance by DB Script" />
552+
See information derived from the syslog audit trail, including successful and failed activities, successful and failed logon attempts. In addition to this dashboard gives insight around logon status trend, top current and database users.
553+
554+
### Performance Details
555+
556+
<img src='https://sumologic-app-data-v2.s3.amazonaws.com/dashboards/Oracle-OpenTelemetry/Oracle-Performance-Details.png' alt="Monitor Performance by DB Script" />
557+
The Oracle - Performance Details dashboard gives insight about - count of rollback, commits, transaction, process, session.
558+
In addition to this it helps monitoring physical and logical reads, PGA allocated. This dashboard is based on the [metrics collected by Oracle DB opentelemetry receiver](https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/main/receiver/oracledbreceiver/documentation.md).

0 commit comments

Comments
 (0)