You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ranger.apache.org by "ognjenit (Jira)" <ji...@apache.org> on 2024/05/16 13:59:00 UTC

[jira] [Created] (RANGER-4792) Fix issue with creating index and import data in ElasticSearch as Audit database

ognjenit created RANGER-4792:
--------------------------------

             Summary: Fix issue with creating index and import data in ElasticSearch as Audit database
                 Key: RANGER-4792
                 URL: https://issues.apache.org/jira/browse/RANGER-4792
             Project: Ranger
          Issue Type: Bug
          Components: admin, audit
    Affects Versions: 2.4.0
         Environment: Container:
- Linux: Debian buster
- Java: openjdk- 11
- Tested on kubernetes and openshift on AWS/Azure and on-prem
            Reporter: ognjenit


Hi all,

I apologize in advance if I haven't adjusted this issue properly.

Short description:

I have deployed Trino with ranger-trino-plugin and I wanted to use ElasticSearch (7.10.2) as a place where I want to store the audit. When I configured ranger-admin to use elasticsearch (audit_store=elasticsearch and all other parameters audit_elasticsearch_*) I started getting errors in the catalina.out: java.lang.NoSuchFieldError: LUCENE_8_5_1. As I increased the version of Lucena, it was written in the logs that an even higher version was needed. So in the end, I moved it to 8.11.3 and 8.4.0 for lucene-spatial since it is the latest. 

After it was fixed, I tried to use https for elasticsearch protocol (audit_elasticsearch_protocol) however, it always showed that ranger-admin use http instead of https. I show in code that audit_elasticsearch_protocol is not configured well.

As soon as it done, ranger admin successfully created ES index. However, I need to move from MiscUtil.toDate to MiscUtil.toLocalDate for evtTime "column" since I was getting error: Error converting value to date. Value = 2024-05-13T13:08:47.905Z

As soon as I fixed it, I found an error in Trino that the plugin couldn't insert data into elasticsearch. After I upgraded httpcomponents bug-fix version, it's started inserting data.

I opened PR with the fix 2.4.0 version, do I need to do the same on the master branch?

PR: https://github.com/apache/ranger/pull/314/files
h4. 1. Lucene version - fixed problem with writing data to ElasticSearch

{*}Error{*}: java.lang.NoSuchFieldError: LUCENE_8_5_1

I tried to change minor version one by one, but only latest version fit for me.

Changes:
 * agents-audit/pom.xml: 311
 * pom.xml: 241

h4. 2. Elastic search protocol - fixed problem with changing protocol

Even though I changed ranger.audit.elasticsearch.protocol from http to https, audit plugin still using http protocol.

Changes:
 * security-admin/scripts/ranger-admin-site-template.xml: 167-170
 * security-admin/scripts/setup.sh: 79, 794-797
 * security-admin/scripts/upgrade_admin.py: 116
 * security-admin/src/main/resources/conf.dist/ranger-admin-site.xml: 53-57
 * security-admin/src/test/java/org/apache/ranger/elasticsearch/ElasticSearchAccessAuditsServiceTest.java: 56

h4. 3. Audit plugin - cannot write audit to ES

{*}Error{*}: bootstrap method initialization exception

After changing the version of httpcomponents I started seeing audit

Changes:
 * pom.xml: 137, 138, 140

h4. 4. Ranger admin console - Audit show 1-1-1970

{*}Erro{*}: Error converting value to date. Value = 2024-05-13T13:08:47.905Z

Even though evtTime was ok in ElasticSearch, ranger couldn't show it on GUI.

Changes:
 * security-admin/src/main/java/org/apache/ranger/elasticsearch/ElasticSearchAccessAuditsService.java: 260
 * security-admin/src/main/java/org/apache/ranger/solr/SolrAccessAuditsService.java: 239



--
This message was sent by Atlassian Jira
(v8.20.10#820010)