Logpush 작업 관리
IBM Cloud® Internet Services 엔터프라이즈급 요금제 가입자는 HTTP, DNS 및 Range 요청에 대한 상세 로그와 해당 도메인의 방화벽 이벤트 정보를 확인할 수 있습니다. 이러한 로그는 디버깅 및 분석에 유용하며, 특히 오리진의 Ingress 또는 애플리케이션 서버 로그와 같은 다른 데이터 소스와 결합된 경우에 유용합니다.
시작하기 전에
콘솔을 사용하여 Logpush 작업을 생성하기 전에 다음 정보를 검토하고 모든 필수 조건을 충족하십시오:
-
현재 CIS 콘솔은 다음 대상들을 지원합니다:
- IBM Cloud 로그
- Cloud Object Storage
- IBM QRadar
- Splunk
-
Logpush를 사용하기 전에 로그 보존을 활성화하십시오.
-
CIS 에서 명시적으로 지원하지 않는 대상인 경우 사용자 지정 HTTP 대상을 사용하여 Logpush에서 액세스할 수 있습니다. 여기에는 사용자 지정 HTTP 로그 서버가 포함됩니다.
오류를 방지하려면 대상에서 압축된 콘텐츠(
{"content":"tests"})가 포함된test.txt.gz이라는 이름의 압축 파일 업로드를 허용할 수 있는지 확인하세요. -
Splunk 전용입니다: QRadar 또는 Splunk 으로 로그를 보내면 CIS 에서 IP 주소와 포트의 접근성을 확인하고 HTTP 수신자의 인증서를 확인합니다. 모든 매개변수가 유효하면 Logpush 작업이 생성되고 HTTP 수신기 로그 소스( QRadar ) 또는 HTTP 이벤트 수집기( Splunk )로 이벤트 전송이 시작됩니다.
콘솔에서 Logpush 작업 만들기
콘솔에서 Logpush 작업을 만들려면 다음 단계를 따르세요:
-
CIS 콘솔에서 계정 > 로그로 이동한 다음 만들기를 클릭합니다.
-
사용 가능한 옵션에서 대상 서비스 유형을 선택하고 구성합니다:
- IBM Cloud 로그
-
-
서비스 유형 옵션에서 IBM Cloud 로그를 선택합니다.
-
다음 을 클릭하십시오.
-
인스턴스 ID 를 입력하십시오.
-
인스턴스 리전을 선택하십시오.
-
API 키 를 입력하세요.
IBM Cloud 로그 인스턴스가 설정된 계정의 API 키가 필요합니다. 사용자 API 키나 서비스 ID API 키 중 하나를 사용할 수 있습니다. 이 키는 Logpush 작업에 대한 무기명 토큰을 생성하는 데 사용됩니다. API 키는 로그푸시 작업 업데이트 API를 사용하여 회전할 수 있습니다.
IBM Cloud 로그 서비스의 경우 사용자 또는 서비스 ID에 발신자 IAM 역할이 부여되어야 합니다.
-
다음 을 클릭하십시오.
-
- Cloud Object Storage
-
-
서비스 유형 옵션에서 Cloud Object Storage 를 선택합니다.
-
다음 을 클릭하십시오.
-
Cloud Object Storage 인스턴스 ID, 버킷 이름, 버킷 지역, 버킷 경로(선택 사항), API 키를 입력합니다.
선택 사항입니다: 일일 폴더에 로그 정리를 사용 설정합니다.
Cloud Object Storage 의 대상 값은 고유해야 합니다. 충돌을 방지하려면 고유한 버킷 경로를 사용하십시오.
Cloud Object Storage 인스턴스가 설정된 계정의 API 키가 필요합니다. 사용자 API 키나 서비스 ID API 키 중 하나를 사용할 수 있습니다. 이 키는 Logpush 작업에 대한 무기명 토큰을 생성하는 데 사용됩니다. API 키는 로그푸시 작업 업데이트 API를 사용하여 회전할 수 있습니다.
Cloud Object Storage 서비스의 경우 사용자 또는 서비스 ID에 버킷에 대한 Object Writer IAM 역할이 부여되어야 합니다.
-
다음 을 클릭하십시오.
-
- IBM QRadar
-
- 서비스 유형 옵션에서 IBM QRadar 을 선택합니다.
- 다음 을 클릭하십시오.
- QRadar URL 을 입력한 다음 로그 소스 포트를 선택합니다.
- 다음 을 클릭하십시오.
- Splunk
-
-
서비스 유형 옵션에서 Splunk 를 선택합니다.
-
다음 을 클릭하십시오.
-
Splunk raw HTTP 이벤트 수집기 URL, 채널 ID, 인증 토큰을 입력합니다.
안전하지 않은 확인 방법을 사용할 수도 있지만, 권장하지 않습니다.
-
다음 을 클릭하십시오.
-
-
로그푸시 작업 구성을 검토합니다:
-
Logpush 세부 정보가 정확한지 확인하십시오.
-
필요한 타임스탬프 형식 및 빈도 설정을 선택합니다.
-
활성화 스위치를 켜짐으로 전환하여 로그푸시 작업을 활성화할지 여부를 선택합니다.
-
Logpush 작업에 포함할 로그 필드를 선택하십시오.
이 스위치를 사용하여 모든 필드를 선택 하거나 모든 필드를 펼칠 수 있습니다. 기본 설정으로 되돌릴 수도 있습니다.
-
완료를 클릭 하여 로그푸시 작업을 생성합니다.
-
Logpush 작업이 생성되고 구성된 대상으로 로그 전송이 시작됩니다.
CLI에서 로그푸시 작업 생성하기
사용할 수 있습니다 ibmcloud cis logpush-job-create CLI를 사용하여 Logpush 작업을 생성합니다.
특정 도메인에 대해 Logpush 작업을 작성하고 이 작업을 사용으로 설정하려면 다음 명령을 실행하십시오.
ibmcloud cis logpush-job-create DNS_DOMAIN_ID --destination PATH --name JOB_NAME --fields all --enable true
여기서:
-destination: 대상 경로를 지정합니다. 지원되는 목적지 경로는 다음과 같습니다:
| IBM Cloud 로그 |
|---|
ibmcl://<INSTANCE_ID>.ingress.<REGION>.logs.cloud.ibm.com/logs/v1/singles?ibm_api_key=<IBM_API_KEY>
예를 들어 예: IBM Cloud 로그 인스턴스가 설정된 계정의 API 키가 필요합니다. 사용자 API 키나 서비스 ID API 키 중 하나를 사용할 수 있습니다. 이 키는 Logpush 작업에 대한 무기명 토큰을 생성하는 데 사용됩니다. '로그푸시 작업 업데이트' API 를 사용하여 API 키를 갱신할 수 있습니다. 중요: 해당 사용자 또는 서비스 ID에는 ‘ IBM Cloud Logs’ 서비스에 대한 ‘Sender’ IAM 역할이 부여되어 있어야 합니다. |
| Cloud Object Storage |
|---|
cos://<BUCKET_OBJECT_PATH>?region=<REGION>&instance-id=<IBM_ClOUD_OBJECT_STORAGE_INSTANCE_ID>&ibm_api_key=<IBM_API_KEY>
예를 들면 다음과 같습니다. |
| IBM QRadar |
|---|
<QRADAR_URL>:<LOG_SOURCE_PORT>
예를 들면 다음과 같습니다. |
| Splunk |
|---|
splunk://<SPLUNK_ENDPOINT_URL>?channel=<SPLUNK_CHANNEL_ID>&header_Authorization=<SPLUNK_AUTH_TOKEN>&sourcetype=<SOURCE_TYPE>&insecure-skip-verify=<INSECURE_SKIP_VERIFY>
예를 들면 다음과 같습니다. |
| 사용자 정의 HTTP |
|---|
https://<HOSTNAME>?header_Authorization=Basic%20REDACTED&tags=host:<DOMAIN_NAME>,dataset:<LOGPUSH_DATASET>
예를 들면 다음과 같습니다. |
--name: Logpush 작업 이름을 지정합니다.
--fields: 로그 파일에 포함될 로그 필드 목록을 지정합니다. 여러 필드를 구분하려면 쉼표를 사용하십시오. ibmcloud cis logpush-available-fields DNS_DOMAIN_ID --dataset DATASET 명령어를 사용하여 사용 가능한 로그 필드의 전체 목록을 확인하거나, all 명령어를 사용하여 로그 파일에 사용 가능한 모든
필드를 포함시키십시오.
--enable: Logpush 작업을 활성화하거나 비활성화하는 플래그입니다. 올바른 값은 true 또는 false(기본값)입니다.
명령 예제
지원되는 목적지에 대한 CLI 예:
- IBM Cloud 로그
- 예
ibmcloud cis logpush-job-create 601b728b86e630c744c81740f72570c3 --destination "ibmcl://604a309c-585c-4a42-955d-76239ccc1905.ingress.us-south.logs.cloud.ibm.com/logs/v1/singles?ibm_api_key=xxxxxxxx" --name logpushJobGen --enable true --fields RayID --dataset http_requests --frequency high --instance 1a9174b6-0106-417a-844b-c8eb43a72f63 - Cloud Object Storage
- 예시
```sh {: pre}
ibmcloud cis logpush-job-create 31984fea73a15b45779fa0df4ef62f9b --destination cos://cis-test-bucket/logs/{DATE}?region=us&instance-id=f75e6d90-4212-4026-851c-d572071146cd&ibm_api_key=XXX --name logpushcreate --enable true --fields all --timestamps rfc3339 --dataset http_requests --frequency low -i cis-demo --output JSON
```
- IBM QRadar
-
예
ibmcloud cis logpush-job-create 31984fea73a15b45779fa0df4ef62f9b --destination https://qradar.example.com:8088 --name logpushJobQRadar --enable true --fields RayID --dataset http_requests --frequency high --instance 1a9174b6-0106-417a-844b-c8eb43a72f63 - Splunk
-
예
ibmcloud cis logpush-job-create 601b728b86e630c744c81740f72570c3 --destination splunk://cis-analytics.ibm.com:8088/services/collector/raw?header_Authorization=Splunk%20e6d94e8c-5792-4ad1-be3c-29bcaee0197d&channel=f1aafa4f-684f-4c29-a040-7fe184b03712&sourcetype=cloudflare:json&insecure-skip-verify=false --name logpushJobSplunk --enable true --fields RayID --dataset http_requests --frequency high --instance 1a9174b6-0106-417a-844b-c8eb43a72f63 - 사용자 정의 HTTP
-
예
ibmcloud cis logpush-job-create 601b728b86e630c744c81740f72570c3 --destination https://logs.example.com?header_Authorization=a64VuywesDu5Aq" --name logpushJobGen --enable true --fields RayID --dataset http_requests --frequency high --instance 1a9174b6-0106-417a-844b-c8eb43a72f63
API로 Logpush 작업 생성하기
IBM Cloud Logs, Cloud Object Storage, Splunk 를 사용할 때 Create a Logpush job API를 사용하여 Logpush 작업을 생성할 수 있습니다.
API를 사용하여 데이터 세트에 사용할 수 있는 로그 필드 가져오기
Logpush 작업의 로그 필드( logpull_options )를 지정하여 대상에 전송되는 내용을 사용자 지정할 수 있습니다. Logpush 데이터 세트에 사용할 수 있는 로그 필드를 얻으려면 다음 단계를 따르십시오
- 올바른 변수로 API 환경을 설정하십시오.
- API 명령에 사용할 변수에 다음 값을 저장하십시오.
CRN: 서비스 인스턴스의 전체 URL 인코딩 CRN
ZONE_ID: 도메인 ID.
DATASET: Logpush 데이터 세트가 검사되고 있습니다. http_requests, range_events, dns_logs, firewall_events 중 하나.
-
모든 변수가 초기화되면 logpush 작업을 작성하십시오.
curl -X GET https://api.cis.cloud.ibm.com/v2/$CRN/zones/$ZONE_ID/logpush/datas/$DATASET/fields \ --header "Content-Type: application/json" \ --header "X-Auth-User-Token: Bearer $IAM_TOKEN"'
로그를 목적지로 전송하는 로그푸시 작업 생성
Logpush 작업을 대상( IBM Cloud Logs, Cloud Object Storage 또는 Splunk )에 생성하려면 다음 단계를 따르십시오
- 올바른 변수로 API 환경을 설정하십시오.
- API 명령에 사용할 변수에 다음 값을 저장하십시오.
CRN URL 로 인코딩된 서비스 인스턴스의 전체 클라우드 리소스 이름(CRN).
ZONE_ID: 도메인 ID.
--request body: 로그푸시 작업 본문을 생성하는 정보( logpush_job_DESTINATION_req ) 여기서 DESTINATION 는 다음 값 중 하나입니다:
| IBM Cloud 로그 |
|---|
|
중요: 사용자 또는 서비스 ID에는 ‘ IBM Cloud ’ 로그 서비스에서 ‘Sender’ IAM 역할이 부여되어 있어야 합니다.
|
| Cloud Object Storage |
|---|
cos: 데이터가 전송되는 Object Storage 버킷을 식별하는 정보. cos 객체 내의 필드는 다음과 같습니다:
중요: 고객 또는 서비스 ID는 ‘ Object Storage ’ 버킷에 대해 Object Writer IAM 역할을 가지고 있어야 합니다. |
| IBM QRadar |
|---|
qradar: 데이터가 푸시되는 QRadar HTTP 수신자를 식별하기 위한 정보입니다. |
| Splunk |
|---|
|
|
| 사용자 정의 HTTP |
|---|
destination_conf: 데이터를 푸시할 사용자 지정 데이터 저장소( HTTP )를 구성하는 데 필요한 정보입니다. header_ Logpush가 쿼리 파라미터를 사용할 때 사용할 헤더를 지정할 수 있습니다(예: header_Authorization=XXXX). |
name: logpush 작업의 이름입니다.
enabled: 작업이 사용 가능한지 여부. true 또는 false입니다.
logpull_options: 구성 문자열. 예를 들어, fields=RayID,ZoneID×tamps=rfc3339입니다.
dataset: 가져온 데이터 세트입니다. http_requests, dns_logs, range_events, firewall_events 중 하나.
frequency: CIS 가 대상에 로그의 배치를 전송하는 빈도입니다. high 또는 low입니다.
-
모든 변수가 초기화되면 logpush 작업을 작성하십시오.
- IBM Cloud 로그
-
curl -X POST https://api.cis.cloud.ibm.com/v2/$CRN/zones/$ZONE_ID/logpush/jobs \ --header "Content-Type: application/json" \ --header "X-Auth-User-Token: Bearer $IAM_TOKEN" \ --data '{ "ibmcl": { "instance_id": "f8k3309c-585c-4a42-955d-76239cccf8k3", "region": "us-south", "api_key": "f8k3NQI22dPwNVCcmS62YFL1tm9vaehY6C9jxdtnf8k3" }, "ibmcl_names": { "application_name": "cis-edge-logs", "subsystem_name": "stage-firewall-logs" } "dataset": "http_requests", "enabled": true, "logpull_options": "fields=RayID,ZoneID×tamps=rfc3339", "name": "CIS-Edge-Requests", "frequency": "low" }'
{: pre} Cloud Object Storage : ```sh curl -X POST https://api.cis.cloud.ibm.com/v2/$CRN/zones/$ZONE_ID/logpush/jobs \ --header "Content-Type: application/json" \ --header "X-Auth-User-Token: Bearer $IAM_TOKEN" \ --data '{ "cos": { "bucket_name": "example_bucket", "path": "temp/", "id": "cos_instance_id", "region": "us-east" }, "dataset": "firewall_events", "enabled": false, "name": "CIS-Firewall-COS", "frequency": "low", "logpull_options": "fields=RayID,ZoneID×tamps=rfc3339", "ownership_challenge": "xxxxxxx" }'- IBM QRadar
-
curl -X POST https://api.cis.cloud.ibm.com/v2/$CRN/zones/$ZONE_ID/logpush/jobs \ --header "Content-Type: application/json" \ --header "X-Auth-User-Token: Bearer $IAM_TOKEN" \ --data '{ "qradar": { "url": "https://example.qradar.ibmcloud.com", "port": 8088 }, "dataset": "firewall_events", "enabled": false, "name": "CIS-Firewall-QRadar", "frequency": "low", "logpull_options": "fields=RayID,CacheResponseBytes,CacheResponseStatus,CacheCacheStatus×tamps=rfc3339" }'
{: pre} Splunk : ```sh curl -X POST https://api.cis.cloud.ibm.com/v2/$CRN/zones/$ZONE_ID/logpush/jobs \ --header "Content-Type: application/json" \ --header "X-Auth-User-Token: Bearer $IAM_TOKEN" \ --data '{ "splunk": { "endpoint_url": "example.splunkcloud.com:8088/services/collector/raw", "channel_id": "def3c136-7a01-4655-b17f-8e25a780ef2c", "skip_verify": false, "source_type": "cloudflare:json", "auth_token": "Splunk fake3585-0f38-4d62-8b43-c4b78584fake" }, "dataset": "http_requests", "enabled": true, "name": "CIS-Splunk-Logpush", "frequency": "high", "logpull_options": "fields=RayID,CacheResponseBytes,CacheResponseStatus,CacheCacheStatus×tamps=rfc3339" }'- 사용자 정의 HTTP
-
curl -X POST https://api.cis.cloud.ibm.com/v2/$CRN/zones/$ZONE_ID/logpush/jobs \ --header "Content-Type: application/json" \ --header "X-Auth-User-Token: Bearer $IAM_TOKEN" \ --data '{ "destination_conf": "https://logs.example.com?header_Authorization=a64VuywesDu5Aq", "dataset": "http_requests", "enabled": true, "name": "CIS-Custom-Logpush", "frequency": "high", "logpull_options": "fields=RayID,CacheResponseBytes,CacheResponseStatus,CacheCacheStatus×tamps=rfc3339" }'
{: pre}