Článek přečtěte do 4 min.

prostřednictvím integrace s protokolováním infrastruktury Oracle Cloud

Protokoly Oracle Analytics Cloud (OAC) jsou nyní dostupné prostřednictvím služby protokolování Oracle Cloud Infrastructure (OCI). Integrace poskytuje správcům cenné informace o využívání zdrojů OAC. Správci mají přístup k podrobnostem o událostech auditu a diagnostických protokolech pro prostředí OAC. Služba protokolování OCI je jediným sklem pro správu protokolů pro zdroje OCI v rámci pronájmu.

Statistiky poskytované protokoly OAC

Protokoly dostupné prostřednictvím služby protokolování poskytují důležité informace pro správu instancí OAC. K dispozici jsou protokoly auditu i diagnostiky. Protokoly auditu zachycují akce iniciované uživatelem v rámci prostředků OAC v pronájmu. Aktivita auditu je organizována do kategorií, které zahrnují aktualizace katalogu, akce exportu, správu zabezpečení, operace se snímky a konfiguraci nastavení systému. Protokoly auditu poskytují správcům přehled o tom, kdo, co a kdy pro auditovatelné události. Pokud například uživatel změní oprávnění pro připojení, exportuje data ze sešitu, upraví roli aplikace nebo stáhne snímek, tato akce se zaprotokoluje. Diagnostické protokoly poskytují přístup k podrobnostem datových dotazů, které pomáhají správcům diagnostikovat problémy se zdrojovými datovými platformami. Správci mohou kontrolovat časování odezvy, vydané SQL a chybové reakce.

Služba protokolování poskytuje funkce pro vyhledávání, analýzu, filtrování a agregaci protokolů. Robustní integrace umožňují automatizované monitorování a oznamování, stejně jako integraci s Oracle a systémy třetích stran pro analýzu a monitorování. Protokoly lze archivovat do úložiště objektů OCI.

Zde je návod, jak můžete povolit, přistupovat a analyzovat protokoly OAC.

Povolení protokolování

Sekce Protokolování konzoly OCI poskytuje přístup ke všem možnostem správy protokolů a přístupu.

Oracle Analytics Cloud - Konzole OCI – pozorovatelnost a správa

Protokolování může povolit uživatel ve skupině s požadovanou politikou. Podrobnosti najdete v odkazu na dokumentaci na konci blogu.

Správce nejprve vytvoří skupinu protokolů. Skupiny protokolů jsou logické kontejnery pro organizaci protokolů. Protokoly musí být vždy uvnitř skupin protokolů.

Oracle Analytics Cloud - Vytvořit skupinu protokolů

Dále administrátor povolí protokol pro konkrétní prostředek OAC. Správce zvolí typ protokolu, např. audit, možnost nebo upřesnit lze použít k určení skupiny protokolů, doby uchování protokolu a dalších možností konfigurace.

Oracle Analytics Cloud - Povolit protokol OAC

Přístup k protokolům a jejich procházení

Jakmile jsou protokoly povoleny, může uživatel s příslušnými oprávněními přistupovat k položkám protokolu v Průzkumníku protokolů v konzole OCI. Průzkumník protokolů obsahuje výkonné vyhledávání pro rychlé vyhledání protokolů konkrétního zájmu.

Oracle Analytics Cloud - Prozkoumat Log

Obsah každé položky protokolu je ve formátu JSON. Níže vidíte příklad protokolu generovaného uživatelem exportujícím data ze sešitu. Obsah JSON poskytuje časové razítko události, sešit, který byl stažen, formát stahování, uživatele a další podrobnosti.

Oracle Analytics Cloud - Zaznamenat JSON

Protože jsou záznamy ve standardním formátu JSON, lze je exportovat pro další analýzu.

Použití konektoru služby a funkce ke kopírování záznamů protokolu do autonomní databáze

Záznamy protokolu lze snadno zkopírovat do databáze Oracle Autonomous JSON pomocí funkce Oracle OCI a konektoru služby. Scénář je popsán v dokumentaci .

Servisní konektor

Zdrojem pro Service Connector je soubor protokolu:

Nakonfigurujte zdroj konektoru služby

Cílem v připojení služby je funkce:

Nakonfigurujte cíl konektoru služby

Zde je nějaký ukázkový kód funkce:

<em>
import io
import json
import logging
import requests</em>

<em>from fdk import response</em>

<em># soda_insert uses the Autonomous Database REST API to insert JSON documents
def soda_insert(ordsbaseurl, dbschema, dbuser, dbpwd, collection, logentries):
    #auth=(dbuser, dbpwd)
    #sodaurl = ordsbaseurl + dbschema + '/soda/latest/'
    #bulkinserturl = sodaurl + 'custom-actions/insert/' + collection + "/"
    #logger.info("bulkinserturl is:" + bulkinserturl)
    #headers = {'Content-Type': 'application/json'}
    #resp = requests.post(bulkinserturl, auth=auth, headers=headers, data=json.dumps(logentries))
    return resp.json()</em>
<em>
def handler(ctx, data: io.BytesIO = None):
    logger = logging.getLogger()
    logger.info("function start")</em>

<em>    # Retrieving the Function configuration values
    try:
        cfg = dict(ctx.Config())
        ordsbaseurl = cfg["ordsbaseurl"]
        logger.info("ordsbaseurl is:" + ordsbaseurl)
        dbschema = cfg["dbschema"]
        logger.info("dbschema is:" + dbschema)
        dbuser = cfg["dbuser"]
        logger.info("dbuser is:" + dbuser)
        dbpwd = cfg["dbpwd"]
        logger.info("dbpwd is:" + dbpwd)
        collection = cfg["collection"]
        logger.info("collection is:" + collection)</em>

<em>        auth=(dbuser, dbpwd)
        sodaurl = ordsbaseurl + dbschema + '/soda/latest/'
        bulkinserturl = sodaurl + 'custom-actions/insert/' + collection + "/"
        logger.info("bulkinserturl is:" + bulkinserturl)
        headers = {'Content-Type': 'application/json'}</em>

<em>    except (Exception, ValueError) as ex:
        logger.error('Missing configuration keys: ordsbaseurl, dbschema, dbuser, dbpwd and collection')</em>

<em>    # Retrieving the log entries from Service Connector Hub as part of the Function payload
    try:
        logentries = json.loads(data.getvalue())
        # The log entries are in a list of dictionaries. We can iterate over the the list of entries and process them.
        # For example, we are going to put the Id of the log entries in the function execution log
        logger.info("Processing the following LogIds:")
        logger.info(json.dumps(logentries))
        for logentry in logentries:
            logger.info(logentry["oracle"]["logid"])
    except (Exception, ValueError) as ex:
        logger.error('Invalid payload')</em>

<em>    # Now, we are inserting the log entries in the JSON Database
    resp = requests.post(bulkinserturl, auth=auth, headers=headers, data=json.dumps(logentries))</em>
<em>
    logging.getLogger().info("Ending")
    return response.Response(
        ctx, response_data=json.dumps(
            {"message": "Hello"}),
        headers={"Content-Type": "application/json"}
    )</em>

Chcete-li do souboru requirements.txt zahrnout „požadavky“, nezapomeňte přidat následující:

<em>
fdk>=0.1.51
oci
requests</em>

Analýza záznamů protokolu pomocí Oracle Analytics Cloud 

Z OAC se můžete připojit k autonomní databázi JSON, kde jsou k dispozici vaše data protokolu, a provádět analýzu položek protokolu. Připojení k autonomní databázi JSON je stejné jako připojení k Oracle Autonomous Data Warehouse.

Dobrým způsobem, jak vytvořit datovou sadu na datech protokolu, je použití SQL se syntaxí JSON. Existují různé způsoby, jak napsat SQL. Zde je jeden příklad:

<em>select M.*
 from logs l,
 JSON_TABLE(
 l.JSON_DOCUMENT ,
 '$'
 columns
 Category VARCHAR2(30 CHAR) path '$.data.category',
 ecid VARCHAR2(30 CHAR) path '$.data.ecid',
 Message VARCHAR2(30 CHAR) path '$.data.message',
 Time VARCHAR2(30 CHAR) path '$.time') M;</em>

Tuto datovou sadu můžete použít k vytvoření vizualizací událostí protokolu.

Analyzujte protokoly v sešitu

Zdroj: Oracle