Mengumpulkan log Atlassian Confluence

Didukung di:

Dokumen ini menjelaskan cara menyerap log Atlassian Confluence ke Google Security Operations. Parser pertama-tama mencoba mengekstrak kolom dari pesan log mentah menggunakan ekspresi reguler (pola grok) yang dirancang untuk log Atlassian Confluence. Jika penguraian grok gagal atau log dalam format JSON, kode akan mencoba mengurai pesan sebagai JSON. Terakhir, kolom yang diekstrak dipetakan ke skema UDM Google SecOps dan diperkaya dengan konteks tambahan.

Sebelum memulai

Pastikan Anda memiliki prasyarat berikut:

  • Instance Google SecOps
  • Akun Atlassian Confluence Cloud dengan akses log audit ATAU Confluence Data Center/Server dengan akses administratif
  • Untuk metode berbasis AWS: Akses istimewa ke AWS (S3, IAM, Lambda, EventBridge)
  • Untuk metode Bindplane: Host Windows 2016 atau yang lebih baru atau Linux dengan systemd

Ringkasan opsi integrasi

Panduan ini menyediakan dua jalur integrasi:

  • Opsi 1: Confluence Data Center/Server melalui BindPlane + Syslog
  • Opsi 2: Log Audit Confluence Cloud melalui AWS Lambda + S3 (format JSON)

Pilih opsi yang paling sesuai dengan jenis dan infrastruktur deployment Confluence Anda.

Opsi 1: Confluence Data Center/Server melalui Bindplane + Syslog

Opsi ini mengonfigurasi Confluence Data Center atau Server untuk mengirim log melalui syslog ke agen Bindplane, yang kemudian meneruskannya ke Google SecOps.

Mendapatkan file autentikasi penyerapan Google SecOps

  1. Login ke konsol Google SecOps.
  2. Buka Setelan SIEM > Agen Pengumpulan.
  3. Download File Autentikasi Penyerapan. Simpan file dengan aman di sistem tempat BindPlane akan diinstal.

Mendapatkan ID pelanggan Google SecOps

  1. Login ke konsol Google SecOps.
  2. Buka Setelan SIEM > Profil.
  3. Salin dan simpan ID Pelanggan dari bagian Detail Organisasi.

Menginstal agen Bindplane

Instal agen Bindplane di sistem operasi Windows atau Linux Anda sesuai dengan petunjuk berikut.

Penginstalan Windows

  1. Buka Command Prompt atau PowerShell sebagai administrator.
  2. Jalankan perintah berikut:

    msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
    

Penginstalan Linux

  1. Buka terminal dengan hak istimewa root atau sudo.
  2. Jalankan perintah berikut:

    sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh
    

Referensi penginstalan tambahan

Mengonfigurasi agen BindPlane untuk menyerap Syslog dan mengirimkannya ke Google SecOps

  1. Akses file konfigurasi:

    1. Cari file config.yaml. Biasanya, file ini berada di direktori /etc/bindplane-agent/ di Linux atau di direktori penginstalan di Windows.
    2. Buka file menggunakan editor teks (misalnya, nano, vi, atau Notepad).
  2. Edit file config.yaml sebagai berikut:

    receivers:
      udplog:
        # Replace the port and IP address as required
        listen_address: "0.0.0.0:514"
    
    exporters:
      chronicle/chronicle_w_labels:
        compression: gzip
        # Adjust the path to the credentials file you downloaded
        creds_file_path: '/path/to/ingestion-authentication-file.json'
        # Replace with your actual customer ID
        customer_id: YOUR_CUSTOMER_ID
        endpoint: malachiteingestion-pa.googleapis.com
        log_type: 'ATLASSIAN_CONFLUENCE'
        raw_log_field: body
        ingestion_labels:
    
    service:
      pipelines:
        logs/confluence:
          receivers:
            - udplog
          exporters:
            - chronicle/chronicle_w_labels
    
    • Ganti port dan alamat IP sesuai kebutuhan di infrastruktur Anda.
    • Ganti <YOUR_CUSTOMER_ID_HERE> dengan ID pelanggan yang sebenarnya.
    • Ganti /path/to/ingestion-authentication-file.json dengan jalur tempat file autentikasi disimpan di bagian Mendapatkan file autentikasi penyerapan Google SecOps.

Mulai ulang agen Bindplane untuk menerapkan perubahan

  • Untuk memulai ulang agen Bindplane di Linux, jalankan perintah berikut:

    sudo systemctl restart bindplane-agent
    
  • Untuk memulai ulang agen Bindplane di Windows, Anda dapat menggunakan konsol Services atau memasukkan perintah berikut:

    net stop BindPlaneAgent && net start BindPlaneAgent
    

Mengonfigurasi penerusan Syslog di Confluence Data Center/Server

  1. Login ke server Confluence Anda melalui SSH atau RDP.
  2. Cari file konfigurasi Log4j:
    • Untuk Log4j2: <confluence-install>/confluence/WEB-INF/classes/log4j2.xml
  3. Edit file konfigurasi untuk menambahkan SyslogAppender:

    <Configuration>
      <Appenders>
        <!-- Existing appenders -->
    
        <Syslog name="SyslogAppender" 
                host="BINDPLANE_AGENT_IP" 
                port="514" 
                protocol="UDP"
                facility="LOCAL0"
                format="RFC5424">
          <PatternLayout pattern="%d{ISO8601} %p [%t] [%c{1}] %m%n"/>
        </Syslog>
      </Appenders>
    
      <Loggers>
        <Root level="info">
          <AppenderRef ref="SyslogAppender"/>
          <!-- Other appender refs -->
        </Root>
    
        <!-- Audit logger -->
        <Logger name="com.atlassian.confluence.event.events.security.AuditEvent" level="info" additivity="false">
          <AppenderRef ref="SyslogAppender"/>
        </Logger>
      </Loggers>
    </Configuration>
    
    • Ganti BINDPLANE_AGENT_IP dengan alamat IP agen BindPlane Anda.
  4. Mulai ulang Confluence untuk menerapkan perubahan:

    sudo systemctl restart confluence
    

Opsi B: Mengonfigurasi rsyslog untuk meneruskan file log lokal

  1. Konfigurasi Confluence untuk menulis log ke file (perilaku default).
  2. Instal rsyslog jika belum ada:

    sudo apt-get install rsyslog  # Debian/Ubuntu
    sudo yum install rsyslog      # RHEL/CentOS
    
  3. Buat file konfigurasi rsyslog /etc/rsyslog.d/confluence.conf:

    # Forward Confluence logs to BindPlane
    $ModLoad imfile
    
    # Application logs
    $InputFileName /opt/atlassian/confluence/logs/atlassian-confluence.log
    $InputFileTag confluence-app:
    $InputFileStateFile stat-confluence-app
    $InputFileSeverity info
    $InputFileFacility local0
    $InputRunFileMonitor
    
    # Audit logs (JSON format in DC/Server)
    $InputFileName /var/atlassian/application-data/confluence/log/audit/*.json
    $InputFileTag confluence-audit:
    $InputFileStateFile stat-confluence-audit
    $InputFileSeverity info
    $InputFileFacility local1
    $InputRunFileMonitor
    
    # Forward to BindPlane agent
    *.* @@BINDPLANE_AGENT_IP:514
    
    • Ganti BINDPLANE_AGENT_IP dengan alamat IP agen Bindplane Anda.
    • Sesuaikan jalur file log berdasarkan penginstalan Confluence Anda:
      • Log aplikasi biasanya: <confluence-install>/logs/ atau <local-home>/logs/
      • Log audit: <confluence-home>/log/audit/*.json
  4. Mulai ulang rsyslog:

    sudo systemctl restart rsyslog
    

Opsi 2: Confluence Cloud Audit Logs melalui AWS Lambda + S3

Mengumpulkan kredensial Confluence Cloud API

  1. Login ke akun Atlassian Anda.
  2. Buka https://id.atlassian.com/manage-profile/security/api-tokens.
  3. Klik Create API token.
  4. Masukkan label untuk token (misalnya, Google Security Operations Integration).
  5. Klik Buat.
  6. Salin dan simpan token API secara aman.
  7. Catat URL situs Confluence Cloud Anda (misalnya, https://yoursite.atlassian.net).
  8. Catat alamat email akun Atlassian Anda (digunakan untuk autentikasi).

Mengonfigurasi bucket AWS S3 dan IAM untuk Google SecOps

  1. Buat bucket Amazon S3 dengan mengikuti panduan pengguna ini: Membuat bucket
  2. Simpan Name dan Region bucket untuk referensi di masa mendatang (misalnya, confluence-audit-logs).
  3. Buat Pengguna dengan mengikuti panduan pengguna ini: Membuat pengguna IAM.
  4. Pilih Pengguna yang dibuat.
  5. Pilih tab Kredensial keamanan.
  6. Klik Create Access Key di bagian Access Keys.
  7. Pilih Layanan pihak ketiga sebagai Kasus penggunaan.
  8. Klik Berikutnya.
  9. Opsional: Tambahkan tag deskripsi.
  10. Klik Create access key.
  11. Klik Download CSV file untuk menyimpan Access Key dan Secret Access Key untuk referensi di masa mendatang.
  12. Klik Done.
  13. Pilih tab Permissions.
  14. Klik Tambahkan izin di bagian Kebijakan izin.
  15. Pilih Tambahkan izin.
  16. Pilih Lampirkan kebijakan secara langsung.
  17. Cari kebijakan AmazonS3FullAccess.
  18. Pilih kebijakan.
  19. Klik Berikutnya.
  20. Klik Add permissions.

Mengonfigurasi kebijakan dan peran IAM untuk upload S3

  1. Di konsol AWS, buka IAM > Policies > Create policy > JSON tab.
  2. Masukkan kebijakan berikut:

    {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Sid": "AllowPutObjects",
          "Effect": "Allow",
          "Action": "s3:PutObject",
          "Resource": "arn:aws:s3:::confluence-audit-logs/*"
        },
        {
          "Sid": "AllowGetStateObject",
          "Effect": "Allow",
          "Action": "s3:GetObject",
          "Resource": "arn:aws:s3:::confluence-audit-logs/confluence-audit/state.json"
        }
      ]
    }
    
    • Ganti confluence-audit-logs jika Anda memasukkan nama bucket yang berbeda.
  3. Klik Berikutnya > Buat kebijakan.

  4. Beri nama kebijakan ConfluenceAuditToS3Policy.

  5. Buka IAM > Roles > Create role > AWS service > Lambda.

  6. Lampirkan kebijakan ConfluenceAuditToS3Policy yang baru dibuat.

  7. Beri nama peran ConfluenceAuditLambdaRole, lalu klik Buat peran.

Buat fungsi Lambda

  1. Di Konsol AWS, buka Lambda > Functions.
  2. Klik Create function > Author from scratch.
  3. Berikan detail konfigurasi berikut:

    Setelan Nilai
    Nama ConfluenceAuditToS3
    Runtime Python 3.13
    Arsitektur x86_64
    Peran eksekusi ConfluenceAuditLambdaRole
  4. Setelah fungsi dibuat, buka tab Code, hapus stub, dan masukkan kode berikut:

    import json
    import os
    import boto3
    from datetime import datetime, timezone, timedelta
    from urllib import request, parse, error
    from base64 import b64encode
    
    # Environment variables
    S3_BUCKET = os.environ['S3_BUCKET']
    S3_PREFIX = os.environ.get('S3_PREFIX', 'confluence-audit/')
    STATE_KEY = os.environ.get('STATE_KEY', 'confluence-audit/state.json')
    CONFLUENCE_URL = os.environ['CONFLUENCE_URL']  # e.g., https://yoursite.atlassian.net
    CONFLUENCE_EMAIL = os.environ['CONFLUENCE_EMAIL']
    CONFLUENCE_API_TOKEN = os.environ['CONFLUENCE_API_TOKEN']
    MAX_RECORDS = int(os.environ.get('MAX_RECORDS', '1000'))
    
    s3_client = boto3.client('s3')
    
    def lambda_handler(event, context):
        """Fetch Confluence Cloud audit logs and write to S3."""
    
        # Read last execution state
        start_date = get_last_execution_time()
        end_date = datetime.now(timezone.utc)
    
        print(f"Fetching audit logs from {start_date} to {end_date}")
    
        # Fetch audit records
        records = fetch_audit_logs(start_date, end_date)
    
        if not records:
            print("No new audit records found.")
            save_state(end_date)
            return {'statusCode': 200, 'body': 'No new records'}
    
        # Write to S3
        timestamp = end_date.strftime('%Y%m%d_%H%M%S')
        object_key = f"{S3_PREFIX}audit_{timestamp}.json"
    
        s3_client.put_object(
            Bucket=S3_BUCKET,
            Key=object_key,
            Body='\n'.join(json.dumps(record) for record in records),
            ContentType='application/json'
        )
    
        print(f"Wrote {len(records)} records to s3://{S3_BUCKET}/{object_key}")
    
        # Update state
        save_state(end_date)
    
        return {
            'statusCode': 200,
            'body': f"Processed {len(records)} records"
        }
    
    def get_last_execution_time():
        """Retrieve the last execution timestamp from S3 state file."""
        try:
            response = s3_client.get_object(Bucket=S3_BUCKET, Key=STATE_KEY)
            state = json.loads(response['Body'].read())
            return datetime.fromisoformat(state['last_execution'])
        except s3_client.exceptions.NoSuchKey:
            # First run: fetch logs from last 24 hours
            return datetime.now(timezone.utc) - timedelta(hours=24)
        except Exception as e:
            print(f"Error reading state: {e}")
            return datetime.now(timezone.utc) - timedelta(hours=24)
    
    def save_state(execution_time):
        """Save the execution timestamp to S3 state file."""
        state = {'last_execution': execution_time.isoformat()}
        s3_client.put_object(
            Bucket=S3_BUCKET,
            Key=STATE_KEY,
            Body=json.dumps(state),
            ContentType='application/json'
        )
    
    def fetch_audit_logs(start_date, end_date):
        """Fetch audit logs from Confluence Cloud REST API."""
        records = []
        start_param = int(start_date.timestamp() * 1000)  # milliseconds
        end_param = int(end_date.timestamp() * 1000)
    
        # Build authentication header
        auth_string = f"{CONFLUENCE_EMAIL}:{CONFLUENCE_API_TOKEN}"
        auth_bytes = auth_string.encode('ascii')
        auth_b64 = b64encode(auth_bytes).decode('ascii')
    
        headers = {
            'Authorization': f'Basic {auth_b64}',
            'Accept': 'application/json'
        }
    
        # Confluence Cloud Audit API endpoint
        url = f"{CONFLUENCE_URL}/wiki/rest/api/audit?startDate={start_param}&endDate={end_param}&limit=1000"
    
        try:
            req = request.Request(url, headers=headers)
            with request.urlopen(req) as response:
                data = json.loads(response.read())
                records = data.get('results', [])
                print(f"Retrieved {len(records)} audit records")
        except error.HTTPError as e:
            print(f"HTTP Error: {e.code} - {e.reason}")
            print(e.read().decode())
        except Exception as e:
            print(f"Error fetching audit logs: {e}")
    
        return records[:MAX_RECORDS]
    
  5. Buka Configuration > Environment variables.

  6. Klik Edit > Add new environment variable.

  7. Masukkan variabel lingkungan berikut, lalu ganti dengan nilai Anda.

    Kunci Nilai contoh
    S3_BUCKET confluence-audit-logs
    S3_PREFIX confluence-audit/
    STATE_KEY confluence-audit/state.json
    CONFLUENCE_URL https://yoursite.atlassian.net
    CONFLUENCE_EMAIL your-email@example.com
    CONFLUENCE_API_TOKEN your-api-token-here
    MAX_RECORDS 1000
  8. Pilih tab Configuration

  9. Di panel General configuration, klik Edit.

  10. Ubah Waktu Tunggu menjadi 5 menit (300 detik), lalu klik Simpan.

Membuat jadwal EventBridge

  1. Buka Amazon EventBridge > Scheduler > Create schedule.
  2. Berikan detail konfigurasi berikut:
    • Jadwal berulang: Tarif (1 hour).
    • Target: Fungsi Lambda Anda ConfluenceAuditToS3.
    • Name: ConfluenceAuditToS3-1h.
  3. Klik Buat jadwal.

Opsional: Buat pengguna & kunci IAM hanya baca untuk Google SecOps

  1. Buka Konsol AWS > IAM > Pengguna.
  2. Klik Add users.
  3. Berikan detail konfigurasi berikut:
    • Pengguna: Masukkan secops-confluence-reader.
    • Jenis akses: Pilih Kunci akses – Akses terprogram.
  4. Klik Berikutnya.
  5. Klik Attach policies directly > Create policy.
  6. Di editor JSON, masukkan kebijakan berikut:

    {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Effect": "Allow",
          "Action": ["s3:GetObject"],
          "Resource": "arn:aws:s3:::confluence-audit-logs/*"
        },
        {
          "Effect": "Allow",
          "Action": ["s3:ListBucket"],
          "Resource": "arn:aws:s3:::confluence-audit-logs"
        }
      ]
    }
    
  7. Tetapkan nama ke secops-reader-policy.

  8. Buka Buat kebijakan > cari/pilih > Berikutnya > Tambahkan izin.

  9. Buka Kredensial keamanan > Kunci akses > Buat kunci akses.

  10. Download CSV (nilai ini dimasukkan ke dalam feed).

Mengonfigurasi feed di Google SecOps untuk memproses log Confluence

  1. Buka Setelan SIEM > Feed.
  2. Klik Tambahkan Feed Baru.
  3. Di kolom Nama feed, masukkan nama untuk feed (misalnya, Confluence Cloud Audit Logs).
  4. Pilih Amazon S3 V2 sebagai Jenis sumber.
  5. Pilih Atlassian Confluence sebagai Jenis log.
  6. Klik Berikutnya.
  7. Tentukan nilai untuk parameter input berikut:
    • URI S3: s3://confluence-audit-logs/confluence-audit/
    • Opsi penghapusan sumber: Pilih opsi penghapusan sesuai preferensi Anda.
    • Usia File Maksimum: Menyertakan file yang diubah dalam jumlah hari terakhir. Defaultnya adalah 180 hari.
    • ID Kunci Akses: Kunci akses pengguna dengan akses ke bucket S3.
    • Kunci Akses Rahasia: Kunci rahasia pengguna dengan akses ke bucket S3.
    • Namespace aset: Namespace aset.
    • Label penyerapan: Label yang diterapkan ke peristiwa dari feed ini.
  8. Klik Berikutnya.
  9. Tinjau konfigurasi feed baru Anda di layar Selesaikan, lalu klik Kirim.

Tabel Pemetaan UDM

Kolom Log Pemetaan UDM Logika
agen read_only_udm.network.http.user_agent Nilai diambil dari kolom "agent".
app_protocol read_only_udm.network.application_protocol Diperoleh dari kolom "app_protocol". Jika "app_protocol" berisi "HTTPS", "HTTP", "SSH", atau "RDP", protokol yang sesuai akan digunakan. Jika tidak, defaultnya adalah "UNKNOWN_APPLICATION_PROTOCOL".
app_protocol read_only_udm.network.application_protocol_version Nilai diambil dari kolom "app_protocol".
auditType.action read_only_udm.security_result.action Diperoleh dari kolom "auditType.action". Jika "auditType.action" berisi "successful", nilai ditetapkan ke "ALLOW". Jika berisi "restricted", nilainya ditetapkan ke "BLOCK".
auditType.action read_only_udm.security_result.summary Nilai diambil dari kolom "auditType.action" jika "auditType" tidak kosong dan "auditType_area" adalah "SECURITY".
auditType.actionI18nKey read_only_udm.metadata.product_event_type Nilai diambil dari kolom "auditType.actionI18nKey" jika "auditType" tidak kosong.
auditType.area read_only_udm.security_result.detection_fields.value Nilai diambil dari kolom "auditType.area" dan ditetapkan ke kolom "value" dari kolom deteksi dengan kolom "key" yang ditetapkan ke "auditType area". Pemetaan ini dilakukan saat "auditType" tidak kosong.
auditType.category read_only_udm.security_result.category_details Nilai diambil dari kolom "auditType.category" jika "auditType" tidak kosong.
auditType.categoryI18nKey read_only_udm.security_result.detection_fields.value Nilai diambil dari kolom "auditType.categoryI18nKey" dan ditetapkan ke kolom "value" dari kolom deteksi dengan kolom "key" yang ditetapkan ke "auditType categoryI18nKey". Pemetaan ini dilakukan saat "auditType" tidak kosong.
auditType.level read_only_udm.security_result.detection_fields.value Nilai diambil dari kolom "auditType.level" dan ditetapkan ke kolom "value" dari kolom deteksi dengan kolom "key" yang ditetapkan ke "auditType level". Pemetaan ini dilakukan saat "auditType" tidak kosong.
author.displayName read_only_udm.principal.user.user_display_name Nilai diambil dari kolom "author.displayName".
author.externalCollaborator read_only_udm.security_result.about.resource.attribute.labels.value Nilai diambil dari kolom "author.externalCollaborator" dan ditetapkan ke kolom "value" dari label dengan kolom "key" yang ditetapkan ke "externalCollaborator".
author.id read_only_udm.principal.user.userid Nilai diambil dari kolom "author.id" jika "author.type" adalah "user" dan "principal_user_present" adalah "false".
author.isExternalCollaborator read_only_udm.security_result.about.resource.attribute.labels.value Nilai diambil dari kolom "author.isExternalCollaborator" dan ditetapkan ke kolom "value" dari label dengan kolom "key" yang ditetapkan ke "isExternalCollaborator".
author.name read_only_udm.principal.user.user_display_name Nilai diambil dari kolom "author.name" jika "author.type" adalah "user" dan "principal_user_present" adalah "false".
bytes_in read_only_udm.network.received_bytes Nilai diambil dari kolom "bytes_in" jika berisi digit. Jika tidak, nilai defaultnya adalah 0.
category read_only_udm.security_result.category_details Nilai diambil dari kolom "category".
changedValues read_only_udm.principal.resource.attribute.labels Melakukan iterasi melalui setiap elemen dalam "changedValues" dan membuat label dengan kunci seperti "changedValue[index][key]" dan nilai dari nilai yang sesuai dalam array "changedValues".
creationDate read_only_udm.metadata.event_timestamp Nilai diambil dari kolom "creationDate", diuraikan sebagai stempel waktu UNIX atau UNIX_MS.
extraAttributes read_only_udm.principal.resource.attribute.labels Melakukan iterasi melalui setiap elemen di "extraAttributes" dan membuat label dengan kunci berdasarkan kolom "name" dan "nameI18nKey" serta nilai dari kolom "value" yang sesuai.
http_verb read_only_udm.network.http.method Nilai diambil dari kolom "http_verb".
ip read_only_udm.target.ip Nilai diambil dari kolom "ip".
principal_host read_only_udm.principal.hostname Nilai diambil dari kolom "principal_host".
referral_url read_only_udm.network.http.referral_url Nilai diambil dari kolom "referral_url".
remoteAddress read_only_udm.principal.ip Nilai diambil dari kolom "remoteAddress", diuraikan sebagai alamat IP.
response_code read_only_udm.network.http.response_code Nilai diambil dari kolom "response_code".
Durasi sesi read_only_udm.additional.fields.value.string_value Nilai diambil dari kolom "session_duration" dan ditetapkan ke kolom "string_value" dari label dengan kolom "key" yang ditetapkan ke "Durasi Sesi".
sumber read_only_udm.principal.ip Nilai diambil dari kolom "source", diuraikan sebagai alamat IP.
src_ip read_only_udm.principal.ip Nilai diambil dari kolom "src_ip" jika "remoteAddress" kosong.
ringkasan read_only_udm.security_result.summary Nilai diambil dari kolom "summary".
sysAdmin read_only_udm.security_result.about.resource.attribute.labels.value Nilai diambil dari kolom "sysAdmin" dan ditetapkan ke kolom "value" dari label dengan kolom "key" yang ditetapkan ke "sysAdmin".
superAdmin read_only_udm.security_result.about.resource.attribute.labels.value Nilai diambil dari kolom "superAdmin" dan ditetapkan ke kolom "value" dari label dengan kolom "key" yang ditetapkan ke "superAdmin".
target_url read_only_udm.target.url Nilai diambil dari kolom "target_url".
timestamp read_only_udm.metadata.event_timestamp Nilai diambil dari kolom "timestamp", diuraikan sebagai string tanggal dan waktu.
user_id read_only_udm.principal.user.userid Nilai diambil dari kolom "user_id".
read_only_udm.metadata.event_type Nilai kolom ini ditentukan oleh serangkaian pemeriksaan dan secara default adalah "GENERIC_EVENT". Nilai ini ditetapkan ke nilai tertentu seperti "NETWORK_HTTP", "USER_UNCATEGORIZED", atau "STATUS_UPDATE" berdasarkan keberadaan dan konten kolom lain seperti "principal_host", "user_id", "has_principal", dan "author.type".
read_only_udm.metadata.vendor_name Tetapkan ke "ATLASSIAN".
read_only_udm.metadata.product_name Tetapkan ke "CONFLUENCE".
read_only_udm.metadata.log_type Tetapkan ke "ATLASSIAN_CONFLUENCE".
read_only_udm.principal.user.user_display_name Nilai kolom ini dapat berasal dari "author.displayName" atau "affectedObject.name", bergantung pada konteksnya.
read_only_udm.target.process.pid Nilai kolom ini dapat berasal dari "principal_host" atau "pid", bergantung pada konteksnya.
read_only_udm.principal.resource.attribute.labels Kolom ini diisi dengan berbagai label yang berasal dari kolom seperti "affectedObjects", "changedValues", dan "extraAttributes". Kunci dan nilai label ini dibuat secara dinamis berdasarkan konten spesifik dari kolom ini.

Perlu bantuan lain? Dapatkan jawaban dari anggota Komunitas dan profesional Google SecOps.