Skip to content

Instantly share code, notes, and snippets.

@tmuth
Last active May 31, 2016 21:30
Show Gist options
  • Save tmuth/eb0efd47a1cbbb531a495dc676c3d2d9 to your computer and use it in GitHub Desktop.
Save tmuth/eb0efd47a1cbbb531a495dc676c3d2d9 to your computer and use it in GitHub Desktop.
create or replace procedure log_splunk_plugin(
p_rec in logger.rec_logger_log)
as
l_text logger_logs.text%type;
l_module varchar2(50);
v_body CLOB;
v_result CLOB;
l_splunk_hec_token varchar2(64) := 'F3C63E53-1EDA-4DF4-80F8-6BD5B047069A';
begin
dbms_output.put_line('In Plugin');
dbms_output.put_line('p_rec.id: ' || p_rec.id);
select regexp_replace(text,'[[:cntrl:]]',''),module
into l_text,l_module
from logger_logs_5_min
where id = p_rec.id;
dbms_output.put_line('Text: ' || l_text);
apex_web_service.g_request_headers(1).name := 'Authorization';
apex_web_service.g_request_headers(1).value := 'Splunk '||l_splunk_hec_token;
v_body := '{"event": { "logger_text": "'|| l_text ||'",
"id": "'||p_rec.id||'",
"module": "'||l_module||'"}}';
v_result := apex_web_service.make_rest_request(
p_url => 'http://splunk-local:8088/services/collector'
,p_http_method => 'POST'
,p_body => v_body
);
dbms_output.put_line(v_body);
dbms_output.put_line(v_result);
end;
@tmuth
Copy link
Author

tmuth commented May 31, 2016

-- run as sys to enable network access out
Begin
dbms_network_acl_admin.create_acl(
acl => 'logger_acl.xml',
description => 'Logger ACL',
principal => 'LOGGER_USER',
is_grant => TRUE,
privilege => 'connect');
commit;
end;
/

begin
dbms_network_acl_admin.assign_acl(
acl => 'logger_acl.xml',
host => 'splunk-local',
lower_port => 8088,
upper_port => 8088);
commit;
end;
/

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment