Skip to content

Commit acef4ab

Browse files
committed
Changes in oracle otel app for addition of metric collection, metric based dashbaoard and cetification of dashboard on latest oracle version
1 parent 62d35f0 commit acef4ab

File tree

1 file changed

+76
-20
lines changed

1 file changed

+76
-20
lines changed

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

Lines changed: 76 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -11,13 +11,13 @@ 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, 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

@@ -31,12 +31,26 @@ Oracle logs are sent to Sumo Logic through OpenTelemetry [filelog receiver](http
3131

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

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**.
3634
- `sumo.datasource`. Has a fixed value of **oracle**.
35+
- `db.system`. Has a fixed value of **oracle**.
36+
- `db.cluster.name`. User configured. Enter a name to identify this Oracle cluster. This cluster name will be shown in the Sumo Logic dashboards.
37+
- `db.node.name`. Has the value of host name of the machine which is being monitored.
3738

3839
## Prerequisites
3940

41+
## Metrics
42+
You will need to assign these permissions to the database user used to fetch metrics:
43+
44+
```
45+
GRANT SELECT ON V_$SESSION TO <username>;
46+
GRANT SELECT ON V_$SYSSTAT TO <username>;
47+
GRANT SELECT ON V_$RESOURCE_LIMIT TO <username>;
48+
GRANT SELECT ON DBA_TABLESPACES TO <username>;
49+
GRANT SELECT ON DBA_DATA_FILES TO <username>;
50+
GRANT SELECT ON DBA_TABLESPACE_USAGE_METRICS TO <username>;
51+
```
52+
53+
## Logs
4054
Here are the steps required to configure log collection for Oracle running on a non-Kubernetes environment.
4155

4256
* [Enable Oracle logging](#enable-oracle-logging)
@@ -54,7 +68,14 @@ If logging is not enabled, you can configure it by following the steps below.
5468
lsnrctl command [listener_name]
5569
lsnrctl set log_status on
5670
```
57-
- **Audit Log**. Follow [this](https://docs.oracle.com/cd/E11882_01/server.112/e10575/tdpsg_auditing.htm#TDPSG50000) guide to enable Audit Logs.
71+
- **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.
72+
73+
:::note
74+
Currently this app does not support collection of unified audit trail logs collected in Oracle on windows as windows event logs.
75+
Dashbaords **Oracle - Sys Audit Log, Oracle - Sys Audit Log - Logon Analysis, Oracle - XML Audit Log - Logon Analysis and Oracle - XML Audit Log - SQL Statement Analysis** will be populated when collecting logs for version below 21c
76+
77+
Dashboard **Oracle - Unified Audit Syslogs** will populate for audit log collected for oracle version 21c and above.
78+
:::
5879

5980
### Verify local logs file directories and path
6081

@@ -67,16 +88,21 @@ If logging is not enabled, you can configure it by following the steps below.
6788
```
6889
[oracle@sumolab alert]$ lsnrctl status
6990
```
70-
- **Oracle Audit Logs**. By default, Oracle logs are stored in
91+
- **Oracle Audit Logs**.
92+
- **For Oracle version below 21c**
93+
By default, Oracle logs are stored in
7194
```
7295
$ORACLE_BASE/app/oracle/admin/orcl/adump
7396
```
7497

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`.
98+
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`.
7699

77-
Audit Logs should be in either `XML`, `EXTENDED`, or `{{OS }}` format for the app to work.
100+
Audit Logs should be in either `XML`, `EXTENDED`, or `{{OS }}` format for the app to work.
78101

79-
The location of these logs will be required when you set up the app through the app catalog.
102+
The location of these logs will be required when you set up the app through the app catalog.
103+
104+
- **For Oracle version 21c and above**
105+
Once unified audit trail is redirected to syslog it will start getting written to destination set in syslog.conf.
80106

81107
### Performance Metrics Script Setup
82108

@@ -163,21 +189,26 @@ import SetupColl from '../../../reuse/apps/opentelemetry/set-up-collector.md';
163189
### Step 2: Configure integration
164190

165191
In this step, you will configure the yaml required for Oracle Collection.
192+
Below are the inputs required:
166193

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
194+
- **`Endpoint (no default)`**. Endpoint used to connect to the OracleDB server. Must be in the format of `host:port`.
195+
- **`Alert Logs`**. Path of the log file configured to capture oracle logs needs to be given here
196+
- **`Listener Logs`**. Path of the log file configured to capture oracle logs needs to be given here
197+
- **`Audit Logs`**. Path of the log file configured to capture oracle logs needs to be given here
198+
- **`Performance metric script-based logs`**. Path of the log file configured to capture oracle logs needs to be given here
199+
- **`username`**. Username for the OracleDB connection.
200+
- **`password`**. Password for the OracleDB connection. Special characters are allowed.
201+
- **`service`**. OracleDB Service that the receiver should connect to.
202+
- **`Collection Interval`**. You can specify at what interval should the metrics be collected.
173203

174-
You can get the location of these logs by following the instructions in the prerequisite step.
204+
You can add any custom fields which you want to tag along with the data ingested in Sumo Logic.
175205

176206
Once the details are filled, click on the **Download YAML File** button to get the yaml file.
207+
For Linux platform, click **Download Environment Variables File** to get the file with the password which is supposed to be set as environment variable.
177208

178209
<img src='https://sumologic-app-data-v2.s3.amazonaws.com/dashboards/Oracle-OpenTelemetry/Oracle-YAML.png' style={{border:'1px solid gray'}} alt="YAML" />
179210

180-
### Step 3: Send logs to Sumo Logic
211+
### Step 3: Send logs and metrics to Sumo Logic
181212

182213
import LogsIntro from '../../../reuse/apps/opentelemetry/send-logs-intro.md';
183214

@@ -259,7 +290,7 @@ import LogsOutro from '../../../reuse/apps/opentelemetry/send-logs-outro.md';
259290

260291
<LogsOutro/>
261292

262-
## Sample log messages
293+
## Sample log message
263294

264295
Sample Log Message in Non-Kubernetes environment:
265296

@@ -269,7 +300,7 @@ Sample Log Message in Non-Kubernetes environment:
269300
TNS-12514: TNS:listener does not currently know of service requested in connect descriptor
270301
```
271302

272-
## Sample queries
303+
## Sample Log query
273304

274305
This sample Query is from the **Oracle - Overview** dashboard > **DB Connection** panel.
275306

@@ -283,6 +314,18 @@ This sample Query is from the **Oracle - Overview** dashboard > **DB Connection*
283314
| count as %"ConnectionCount"
284315
```
285316
317+
# Sample metrics
318+
```json
319+
{"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}
320+
```
321+
## Sample Metrics query
322+
323+
This sample Query is from the **Oracle - Overview** dashboard > **Session Count** panel.
324+
325+
```sql title="Session Count"
326+
sumo.datasource=oracle metric=oracledb.sessions.usage deployment.environment=* db.cluster.name=* db.node.name=* | sum
327+
```
328+
286329
## Viewing Oracle dashboards
287330
288331
### Overview
@@ -504,3 +547,16 @@ Maximum Wait Time (sec) by User. A line chart that shows, for each user, the ses
504547
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.
505548
506549
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.
550+
551+
552+
### Oracle - Unified Audit Syslog
553+
554+
<img src='https://sumologic-app-data-v2.s3.amazonaws.com/dashboards/Oracle-OpenTelemetry/Oracle-Unified-Audit-Syslog.png' alt="Monitor Performance by DB Script" />
555+
See information derived from the syslog audit trail, including successful and failed activities, successful and failed logon attempts. In addition to this dashbaord gives insight around logon status trend, top current and database users.
556+
557+
558+
### Oracle - Performance Details
559+
560+
<img src='https://sumologic-app-data-v2.s3.amazonaws.com/dashboards/Oracle-OpenTelemetry/Oracle-Performance-Details.png' alt="Monitor Performance by DB Script" />
561+
The Oracle - Performance Details dashboard gives insight about - count of rollback, commits, transaction, process, session.
562+
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)