Monitor your Oracle database by 12C em and send the message to you

本文介绍如何利用Oracle 12C EM自带脚本实现数据库关键事件的短信告警,包括告警规则配置、告警脚本编写及通过Curl发送短信的具体步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Monitor your Oracle database by 12C em and send the message to you

使用12c EM自带脚本实现DB关键事件短信告警

主要为了总结下12C em的自带脚本提取额自身Incident,Event等,并通过短信告警的功能,每DBAer的监控方式很多,这里只总结和记录下目前适合我们的一种简单粗暴但很灵活的监控方式,其他童鞋如果想参考,必须具备如下条件:
1)对12C em的告警规则及配置非常明确;
2)公司内部必须已有一个短信平台或者短信猫;
3)官方提取的12C em的告警脚本及简单的Shell编程能力;

12C告警规则配置

待补充

12C em官方告警脚本

将如下shell脚本包存至OEM服务器对应位置即可(见下文通知方法配置图):

#!/bin/sh#
LOG_FILE=/net/myhost/logs/oscmdNotify.log
echo ‘-------------’ >> $LOG_FILE
echo ‘issue_type=’ $ISSUE_TYPE >> $LOG_FILE
echo ‘notif_type=’ $NOTIF_TYPE >> $LOG_FILE
echo ‘message=’ $MESSAGE >> $LOG_FILE
echo ‘message_url’ = MESSAGEURL>>MESSAGE_URL >>MESSAGEURL>>LOG_FILE
echo ‘severity=’ $SEVERITY >> $LOG_FILE
echo ‘severity_code’ = SEVERITYCODE>>SEVERITY_CODE >>SEVERITYCODE>>LOG_FILE
echo ‘ruleset_name=’ $RULESET_NAME >> $LOG_FILE
echo ‘rule_name=’ $RULE_NAME >> $LOG_FILE
echo ‘rule_owner=’ $RULE_OWNER >> $LOG_FILE
echo ‘repeat_count=’ $REPEAT_COUNT >> $LOG_FILE
echo ‘categories_count’ = CATEGORIESCOUNT>>CATEGORIES_COUNT >>CATEGORIESCOUNT>>LOG_FILE
echo ‘category_1’ = CATEGORY1>>CATEGORY_1 >>CATEGORY1>>LOG_FILE
echo ‘category_2’ = CATEGORY2>>CATEGORY_2 >>CATEGORY2>>LOG_FILE
echo ‘category_code_1’ = CATEGORYCODE1>>CATEGORY_CODE_1 >>CATEGORYCODE1>>LOG_FILE
echo ‘category_code_2’ = CATEGORYCODE2>>CATEGORY_CODE_2 >>CATEGORYCODE2>>LOG_FILE
echo ‘category_codes_count’ = CATEGORYCODESCOUNT>>CATEGORY_CODES_COUNT >>CATEGORYCODESCOUNT>>LOG_FILE
#event
if [ $ISSUE_TYPE -eq 1 ]
then
echo ‘host_name=’ $HOST_NAME >> $LOG_FILE
echo ‘event_type=’ $EVENT_TYPE >> $LOG_FILE
echo ‘event_name=’ $EVENT_NAME >> $LOG_FILE
echo ‘event_occurrence_time=’ $EVENT_OCCURRENCE_TIME >> $LOG_FILE
echo ‘event_reported_time=’ $EVENT_REPORTED_TIME >> $LOG_FILE
echo ‘sequence_id=’ $SEQUENCE_ID >> $LOG_FILE
echo ‘event_type_attrs=’ $EVENT_TYPE_ATTRS >> $LOG_FILE
echo ‘source_obj_name=’ $SOURCE_OBJ_NAME >> $LOG_FILE
echo ‘source_obj_type=’ $SOURCE_OBJ_TYPE >> $LOG_FILE
echo ‘source_obj_owner=’ $SOURCE_OBJ_OWNER >> $LOG_FILE
echo ‘target_name’ = TARGETNAME>>TARGET_NAME >>TARGETNAME>>LOG_FILE
echo ‘target_url’ = TARGETURL>>TARGET_URL >>TARGETURL>>LOG_FILE
echo ‘target_owner=’ $TARGET_OWNER >> $LOG_FILE
echo ‘target_type=’ $TARGET_TYPE >> $LOG_FILE
echo ‘target_version=’ $TARGET_VERSION >> $LOG_FILE
echo ‘lifecycle_status=’ $TARGET_LIFECYCLE_STATUS >> $LOG_FILE
echo ‘assoc_incident_escalation_level’ = $ASSOC_INCIDENT_ESCALATION_LEVEL >> $LOG_FILE
echo ‘assoc_incident_id’ = ASSOCINCIDENTID>>ASSOC_INCIDENT_ID >>ASSOCINCIDENTID>>LOG_FILE
echo ‘assoc_incident_owner’ = ASSOCINCIDENTOWNER>>ASSOC_INCIDENT_OWNER >>ASSOCINCIDENTOWNER>>LOG_FILE
echo ‘assoc_incident_acknowledged_by_owner’ = $ASSOC_INCIDENT_ACKNOWLEDGED_BY_OWNER >> $LOG_FILE
echo ‘assoc_incident_acknowledged_details’ = $ASSOC_INCIDENT_ACKNOWLEDGED_DETAILS >> $LOG_FILE
echo ‘assoc_incident_priority’ = ASSOCINCIDENTPRIORITY>>ASSOC_INCIDENT_PRIORITY >>ASSOCINCIDENTPRIORITY>>LOG_FILE
echo ‘assoc_incident_status’ = ASSOCINCIDENTSTATUS>>ASSOC_INCIDENT_STATUS >>ASSOCINCIDENTSTATUS>>LOG_FILE
echo ‘ca_job_status’ = CAJOBSTATUS>>CA_JOB_STATUS >>CAJOBSTATUS>>LOG_FILE
echo ‘event_context_attrs’ = EVENTCONTEXTATTRS>>EVENT_CONTEXT_ATTRS >>EVENTCONTEXTATTRS>>LOG_FILE
echo ‘last_updated_time’ = LASTUPDATEDTIME>>LAST_UPDATED_TIME >>LASTUPDATEDTIME>>LOG_FILE
echo ‘sequence_id’ = SEQUENCEID>>SEQUENCE_ID >>SEQUENCEID>>LOG_FILE
echo ‘test_date_attr_noref’ = TESTDATEATTRNOREF>>TEST_DATE_ATTR_NOREF >>TESTDATEATTRNOREF>>LOG_FILE
echo ‘test_raw_attr_noref’ = TESTRAWATTRNOREF>>TEST_RAW_ATTR_NOREF >>TESTRAWATTRNOREF>>LOG_FILE
echo ‘test_str_attr1’ = TESTSTRATTR1>>TEST_STR_ATTR1 >>TESTSTRATTR1>>LOG_FILE
echo ‘test_str_attr2’ = TESTSTRATTR2>>TEST_STR_ATTR2 >>TESTSTRATTR2>>LOG_FILE
echo ‘test_str_attr3’ = TESTSTRATTR3>>TEST_STR_ATTR3 >>TESTSTRATTR3>>LOG_FILE
echo ‘test_str_attr4’ = TESTSTRATTR4>>TEST_STR_ATTR4 >>TESTSTRATTR4>>LOG_FILE
echo ‘test_str_attr5’ = TESTSTRATTR5>>TEST_STR_ATTR5 >>TESTSTRATTR5>>LOG_FILE
echo ‘test_str_attr_ref’ = TESTSTRATTRREF>>TEST_STR_ATTR_REF >>TESTSTRATTRREF>>LOG_FILE
echo ‘total_occurrence_count’ = TOTALOCCURRENCECOUNT>>TOTAL_OCCURRENCE_COUNT >>TOTALOCCURRENCECOUNT>>LOG_FILE
fi
#incident
if [ $ISSUE_TYPE -eq 2 ]
then
echo ‘action_msg=’ $ACTION_MSG >> $LOG_FILE
echo ‘incident_id=’ $INCIDENT_ID >> $LOG_FILE
echo ‘incident_creation_time=’ $INCIDENT_CREATION_TIME >> $LOG_FILE
echo ‘incident_owner=’ $INCIDENT_OWNER >> $LOG_FILE
echo ‘incident_acknowledged_by_owner’ = $INCIDENT_ACKNOWLEDGED_BY_OWNER >> $LOG_FILE
echo ‘incident_status’ = INCIDENTSTATUS>>INCIDENT_STATUS >>INCIDENTSTATUS>>LOG_FILE
echo ‘last_modified_by=’ $LAST_MODIFIED_BY >> $LOG_FILE
echo ‘last_updated_time=’ $LAST_UPDATED_TIME >> $LOG_FILE
echo ‘assoc_event_count=’ $ASSOC_EVENT_COUNT >> $LOG_FILE
echo ‘adr_incident_id=’ $ADR_INCIDENT_ID >> $LOG_FILE
echo ‘occurrence_count=’ $OCCURRENCE_COUNT >> $LOG_FILE
echo ‘escalated=’ $ESCALATED >> $LOG_FILE
echo ‘escalated_level=’ $ESCALATED_LEVEL >> $LOG_FILE
echo ‘priority=’ $PRIORITY >> $LOG_FILE
echo ‘priority_code’ = PRIORITYCODE>>PRIORITY_CODE >>PRIORITYCODE>>LOG_FILE
echo ‘ticket_id=’ $TICKET_ID >> $LOG_FILE
echo ‘ticket_status=’ $TICKET_STATUS >> $LOG_FILE
echo ‘ticket_url=’ $TICKET_ID_URL >> $LOG_FILE
echo ‘total_duplicate_count=’ $TOTAL_DUPLICATE_COUNT >> $LOG_FILE
echo ‘source_count=’ $EVENT_SOURCE_COUNT >> $LOG_FILE
echo ‘event_source_1_host_name’ = KaTeX parse error: Double subscript at position 15: EVENT_SOURCE_1_̲HOST_NAME >>LOG_FILE
echo ‘event_source_1_target_guid’ = KaTeX parse error: Double subscript at position 15: EVENT_SOURCE_1_̲TARGET_GUID >>LOG_FILE
echo ‘event_source_1_target_name’ = KaTeX parse error: Double subscript at position 15: EVENT_SOURCE_1_̲TARGET_NAME >>LOG_FILE
echo ‘event_source_1_target_owner’ = KaTeX parse error: Double subscript at position 15: EVENT_SOURCE_1_̲TARGET_OWNER >>LOG_FILE
echo ‘event_source_1_target_type’ = KaTeX parse error: Double subscript at position 15: EVENT_SOURCE_1_̲TARGET_TYPE >>LOG_FILE
echo ‘event_source_1_target_url’ = KaTeX parse error: Double subscript at position 15: EVENT_SOURCE_1_̲TARGET_URL >>LOG_FILE
echo ‘event_source_1_target_lifecycle_status’ = $EVENT_SOURCE_1_TARGET_LIFECYCLE_STATUS >> $LOG_FILE
echo ‘event_source_1_target_version’ = $EVENT_SOURCE_1_TARGET_VERSION >> $LOG_FILE
fi
exit 0

链接: https://docs.oracle.com/cd/E24628_01/doc.121/e24473/notification.htm#EMADM9811

12 EM端配置工作

在这里插入图片描述

使用Linux OS Curl告警

因为我们使用的SUSE Linux的OS,所有使用Curl来实现短信告警,告警的格式:

curl -d “BRANCH_CODE=xx&DESTINATION_ADDR=13xxxxxxxxx&FUNCTION_CODE=xxxxxx&CONTENT=$alert&POLICY_NUMBER&AT_TIME” “http://xx.xx.xx.xx/sendSMS”

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值