Este documento explica como ingerir registros do Jfrog Artifactory no Google Security Operations usando o Bindplane. O analisador processa dois formatos de registro diferentes do JFrog Artifactory. Ele usa padrões grok para identificar e extrair campos de cada formato. Em seguida, ele mapeia esses campos para a UDM, processando payloads JSON em um dos formatos e descartando os registros que não correspondem a nenhum deles.
Antes de começar
Verifique se você tem uma instância do Google SecOps.
Use o Windows 2016 ou uma versão mais recente ou um host Linux com systemd.
Se você estiver executando por trás de um proxy, verifique se as portas do firewall estão abertas.
Verifique se você tem acesso privilegiado à instância do Jfrog Artifactory.
Receber o arquivo de autenticação de ingestão do Google SecOps
Faça login no console do Google SecOps.
Acesse Configurações do SIEM > Agentes de coleta.
Baixe o arquivo de autenticação de ingestão. Salve o arquivo de forma segura no sistema em que o Bindplane será instalado.
Receber o ID do cliente do Google SecOps
Faça login no console do Google SecOps.
Acesse Configurações do SIEM > Perfil.
Copie e salve o ID do cliente na seção Detalhes da organização.
Instalar o agente do Bindplane
Instalação do Windows
Abra o Prompt de Comando ou o PowerShell como administrador.
Configurar o agente do Bindplane para ingerir o Syslog e enviar ao Google SecOps
Acesse o arquivo de configuração:
Localize o arquivo config.yaml. Normalmente, ele fica no diretório /etc/bindplane-agent/ no Linux ou no diretório de instalação no Windows.
Abra o arquivo usando um editor de texto (por exemplo, nano, vi ou Bloco de Notas).
Edite o arquivo config.yaml da seguinte forma:
```yamlreceivers:udplog:# Replace the port and IP address as requiredlisten_address:"0.0.0.0:514"exporters:chronicle/chronicle_w_labels:compression:gzip# Adjust the path to the credentials file you downloaded in Step 1creds:'/path/to/ingestion-authentication-file.json'# Replace with your actual customer ID from Step 2customer_id:<customer_id>
endpoint:malachiteingestion-pa.googleapis.com# Add optional ingestion labels for better organizationingestion_labels:log_type:'JFROG_ARTIFACTORY'raw_log_field:bodyservice:pipelines:logs/source0__chronicle_w_labels-0:receivers:-udplogexporters:-chronicle/chronicle_w_labels```
Substitua a porta e o endereço IP conforme necessário na sua infraestrutura.
Para salvar o arquivo, clique no botão ESC (escape) no teclado e digite :wq.
Tabela de mapeamento do UDM
Campo de registro
Mapeamento do UDM
Lógica
ação
read_only_udm.metadata.product_event_type
O valor de action do registro bruto é convertido em letras minúsculas e mapeado.
datetime
read_only_udm.metadata.event_timestamp
O campo datetime do registro bruto é analisado e convertido em um carimbo de data/hora.
hostname
read_only_udm.principal.hostname
Mapeado diretamente do campo hostname do registro bruto.
id
read_only_udm.metadata.product_log_id
Mapeado diretamente do campo id do log bruto (do payload JSON).
ip
read_only_udm.principal.ip
Mapeado diretamente do campo ip do registro bruto. Codificado como "USER_RESOURCE_ACCESS". Codificado como "JFROG_ARTIFACTORY". Codificado como "Artifactory". Codificado como "JFROG".
proprietário
read_only_udm.principal.user.userid
Mapeado se username não estiver presente no registro bruto (do payload JSON).
repo_name
read_only_udm.target.resource.name
Mapeado diretamente do campo repo_name do registro bruto.
repo_type
read_only_udm.target.resource.resource_subtype
Mapeado diretamente do campo repo_type do registro bruto.
scope
read_only_udm.target.resource.name
Mapeado diretamente do campo scope do log bruto (do payload JSON).
scope
read_only_udm.target.resource.resource_subtype
Codificado como "scope" se scope estiver presente no registro bruto.
sequenceId
read_only_udm.metadata.product_log_id
As aspas são removidas do campo sequenceId e mapeadas.
assunto
read_only_udm.about.labels.key
Codificado como "subject" se subject estiver presente no registro bruto.
assunto
read_only_udm.about.labels.value
Mapeado diretamente do campo subject do log bruto (do payload JSON).
type
read_only_udm.metadata.product_event_type
Mapeado diretamente do campo type do log bruto (do payload JSON).
user
read_only_udm.principal.user.userid
Mapeado diretamente do campo user do registro bruto.
username
read_only_udm.principal.user.userid
Mapeado diretamente do campo username do registro bruto (do payload JSON).
[[["Fácil de entender","easyToUnderstand","thumb-up"],["Meu problema foi resolvido","solvedMyProblem","thumb-up"],["Outro","otherUp","thumb-up"]],[["Difícil de entender","hardToUnderstand","thumb-down"],["Informações incorretas ou exemplo de código","incorrectInformationOrSampleCode","thumb-down"],["Não contém as informações/amostras de que eu preciso","missingTheInformationSamplesINeed","thumb-down"],["Problema na tradução","translationIssue","thumb-down"],["Outro","otherDown","thumb-down"]],["Última atualização 2025-08-21 UTC."],[[["\u003cp\u003eThis guide provides instructions for collecting JFrog Artifactory logs and ingesting them into Google SecOps via a webhook feed, supporting two distinct log formats.\u003c/p\u003e\n"],["\u003cp\u003eSetting up the integration involves configuring a webhook feed within Google SecOps, including generating a secret key and setting up an endpoint URL, then creating an API key in the Google Cloud console.\u003c/p\u003e\n"],["\u003cp\u003eWithin JFrog Artifactory, users must create a webhook, specifying the Google SecOps endpoint URL and relevant events to trigger the sending of log data.\u003c/p\u003e\n"],["\u003cp\u003eThe parser uses grok patterns to identify and extract data from JFrog Artifactory logs, mapping the extracted data to the Unified Data Model (UDM), as detailed in the provided UDM Mapping Table.\u003c/p\u003e\n"],["\u003cp\u003eThis feature is pre-GA and will have changes that might not be backwards compatible with older versions, and has limited support, per the provided service terms.\u003c/p\u003e\n"]]],[],null,["# Collect JFrog Artifactory logs\n==============================\n\nSupported in: \nGoogle secops [SIEM](/chronicle/docs/secops/google-secops-siem-toc)\n| **Note:** This feature is covered by [Pre-GA Offerings Terms](https://chronicle.security/legal/service-terms/) of the Google Security Operations Service Specific Terms. Pre-GA features might have limited support, and changes to pre-GA features might not be compatible with other pre-GA versions. For more information, see the [Google SecOps Technical Support Service guidelines](https://chronicle.security/legal/technical-support-services-guidelines/) and the [Google SecOps Service Specific Terms](https://chronicle.security/legal/service-terms/).\n\nThis document explains how to ingest Jfrog Artifactory logs to Google Security Operations using Bindplane. The parser handles two different JFrog Artifactory log formats. It uses grok patterns to identify and extract fields from each format. It then maps those fields to the UDM, handling JSON payloads within one of the formats and dropping logs that don't match either format.\n\nBefore you begin\n----------------\n\n- Ensure that you have a Google SecOps instance.\n- Ensure that you are using Windows 2016 or later, or a Linux host with `systemd`.\n- If running behind a proxy, ensure firewall [ports](/chronicle/docs/ingestion/use-bindplane-agent#verify_the_firewall_configuration) are open.\n- Ensure that you have privileged access to Jfrog Artifactory instance.\n\nGet Google SecOps ingestion authentication file\n-----------------------------------------------\n\n1. Sign in to the Google SecOps console.\n2. Go to **SIEM Settings \\\u003e Collection Agents**.\n3. Download the **Ingestion Authentication File**. Save the file securely on the system where Bindplane will be installed.\n\nGet Google SecOps customer ID\n-----------------------------\n\n1. Sign in to the Google SecOps console.\n2. Go to **SIEM Settings \\\u003e Profile**.\n3. Copy and save the **Customer ID** from the **Organization Details** section.\n\nInstall the Bindplane agent\n---------------------------\n\n### Windows installation\n\n1. Open the **Command Prompt** or **PowerShell** as an administrator.\n2. Run the following command:\n\n msiexec /i \"https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi\" /quiet\n\n### Linux installation\n\n1. Open a terminal with root or sudo privileges.\n2. Run the following command:\n\n sudo sh -c \"$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)\" install_unix.sh\n\n### Additional installation resources\n\n- For additional installation options, consult this [installation guide](/chronicle/docs/ingestion/use-bindplane-agent#install_the_bindplane_agent).\n\nConfigure the Bindplane agent to ingest Syslog and send to Google SecOps\n------------------------------------------------------------------------\n\n1. Access the configuration file:\n\n 1. Locate the `config.yaml` file. Typically, it's in the `/etc/bindplane-agent/` directory on Linux or in the installation directory on Windows.\n 2. Open the file using a text editor (for example, `nano`, `vi`, or Notepad).\n2. Edit the `config.yaml` file as follows:\n\n ```yaml\n receivers:\n udplog:\n # Replace the port and IP address as required\n listen_address: \"0.0.0.0:514\"\n\n exporters:\n chronicle/chronicle_w_labels:\n compression: gzip\n # Adjust the path to the credentials file you downloaded in Step 1\n creds: '/path/to/ingestion-authentication-file.json'\n # Replace with your actual customer ID from Step 2\n customer_id: \u003ccustomer_id\u003e\n endpoint: malachiteingestion-pa.googleapis.com\n # Add optional ingestion labels for better organization\n ingestion_labels:\n log_type: 'JFROG_ARTIFACTORY'\n raw_log_field: body\n\n service:\n pipelines:\n logs/source0__chronicle_w_labels-0:\n receivers:\n - udplog\n exporters:\n - chronicle/chronicle_w_labels\n ```\n\n3. Replace the port and IP address as required in your infrastructure.\n\n4. Replace `\u003ccustomer_id\u003e` with the actual customer ID.\n\n5. Update `/path/to/ingestion-authentication-file.json` to the path where the authentication file was saved in the\n [Get Google SecOps ingestion authentication file](/chronicle/docs/ingestion/default-parsers/jfrog-artifactory#get-auth-file) section.\n\nRestart the Bindplane agent to apply the changes\n------------------------------------------------\n\n- To restart the Bindplane agent in Linux, run the following command:\n\n sudo systemctl restart bindplane-agent\n\n- To restart the Bindplane agent in Windows, you can either use the **Services** console or enter the following command:\n\n net stop BindPlaneAgent && net start BindPlaneAgent\n\nConfigure Jfrog Artifactory Syslog\n----------------------------------\n\n1. Connect to the **Jfrog Artifactory** instance.\n2. Edit the file `$JFROG_HOME/artifactory/var/etc/artifactory/logback.xml` using vi:\n\n vi $JFROG_HOME/artifactory/var/etc/artifactory/logback.xml\n\n3. Add the following syslog appender to the file:\n\n \u003cappender name=\"SYSLOG\" class= \"ch.qos.logback.classic.net.SyslogAppender\"\u003e\n \u003csyslogHost\u003eBindplane-Agent-IP\u003c/syslogHost\u003e\n \u003cfacility\u003eSYSLOG\u003c/facility\u003e\n \u003csuffixPattern\u003e[%thread] %logger %msg\u003c/suffixPattern\u003e\n \u003c/appender\u003e\n\n - Replace `Bindplane-Agent-IP` in syslogHost, with the actual IP address configured for the Bindplane agent.\n4. Add additional configuration data to the file:\n\n \u003croot\u003e\n \u003c level value=\"debug\"/\u003e\n \u003cappender-ref ref=\"CONSOLE\"/\u003e\n \u003cappender-ref ref=\"FILE\"/\u003e\n \u003cappender-ref ref=\"SYSLOG\"/\u003e\n \u003c/root\u003e\n\n5. Save the file by clicking the `ESC` (escape) button on your keyboard and typing `:wq`.\n\nUDM Mapping Table\n-----------------\n\n**Need more help?** [Get answers from Community members and Google SecOps professionals.](https://security.googlecloudcommunity.com/google-security-operations-2)"]]