콘텐츠로 이동

리소스 카탈로그 데이터 전송


리소스 카탈로그 데이터를 전송하려면 먼저 DataKit과 DataFlux Func를 설치하고 연결한 후, DataFlux Func를 통해 DataKit으로 데이터를 전송하고, 최종적으로 DataKit이 Guance 워크스페이스로 데이터를 전송합니다.

DataKit 설치

Guance 워크스페이스에서 통합 > DataKit을 차례로 클릭하고, DataKit 설치 방식을 선택한 후 아래 정보를 확인하고 설치 명령어를 복사하여 호스트에서 실행합니다.

명령줄 터미널 도구를 열고 호스트에 로그인한 후 복사한 설치 명령어를 실행합니다. 설치가 완료되면 Install Success 메시지가 표시됩니다.

DataKit 사용入门에 대해 자세히 알아보기.

DataFlux Func 설치

Guance 워크스페이스에서 통합 > 확장을 차례로 클릭하고, 아래 단계에 따라 명령줄 터미널 도구에서 Func를 설치합니다.

  1. 휴대용 버전 다운로드;

  1. 자동 배포 스크립트 설치;

  1. 설치가 완료되면 브라우저에 http://서버 IP 주소:8088을 입력하고 데이터베이스 저장 및 초기화를 클릭하여 초기화를 수행합니다.

Func 설치에 대한 자세한 내용은 빠른 시작을 참조하세요.

DataFlux Func와 DataKit 연결

DataFlux Func를 사용하여 DataKit에 데이터를 쓰기 전에 먼저 연결 상태를 확인해야 합니다. 따라서 DataKit 설치가 완료된 후에는 DataFlux Func 연결을 허용하도록 구성을 조정해야 합니다.

  1. DataKit 구성 열기: sudo vim /usr/local/datakit/conf.d/datakit.conf;

  2. http_listen = "localhost:9529"http_listen = "0.0.0.0:9529"로 수정;

  3. DataKit 재시작.

sudo datakit --restart

자세한 내용은 DataKit 연결 및 작업을 참조하세요.

리소스 카탈로그 데이터 전송

DataFlux Func와 DataKit이 연결된 후, DataFlux Func에서 함수를 작성하여 리소스 카탈로그 데이터를 전송할 수 있습니다.

DataFlux Func 함수 호출의 인터페이스 설명은 DataKit API를 참조하세요.

DataFlux Func가 DataKit에 데이터를 쓰는 방법에 대한 설명은 DataKit을 통한 데이터 쓰기를 참조하세요.

예시 설명

아래 예시는 주로 Alibaba Cloud 제품을 예로 들어 DataFlux Func를 통해 리소스 카탈로그 데이터를 전송하는 방법을 설명합니다.

전제 조건: DataKit 및 DataFlux Func 설치 및 연결이 완료되어 있어야 합니다.

  1. 브라우저에 http://서버 IP 주소:8088을 입력하고 계정과 비밀번호를 입력합니다. 초기화 시 설정할 수 있으며, 기본값은 admin/admin입니다.

  1. DataFlux Func에 로그인한 후 스크립트 편집기에서 스크립트를 추가할 수 있습니다.

  1. DataFlux Func는 Python으로 스크립트를 작성하여 데이터를 전송하는 것을 지원합니다. 스크립트 추가를 시작하기 전에 먼저 Alibaba Cloud Python SDK를 설치해야 합니다.

1) DataFlux Func 관리 > 실험적 기능 > PIP 도구 모듈 활성화에서 설정합니다.

2) PIP 도구 모듈에서 Alibaba Cloud Python SDK 웹사이트의 링크를 클릭하여 열고, aliyun-python-sdk-core를 복사하여 설치합니다.

  1. Alibaba Cloud Python SDK 설치가 완료되면 스크립트 편집기 > 스크립트 세트 추가를 클릭하여 들어갑니다.

DataKit API 문서를 참조하여 데이터 전송 API 인터페이스를 확인하고, DataFlux Func로 데이터를 전송하는 스크립트를 작성합니다. Alibaba Cloud API 문서를 참조하여 Alibaba Cloud 제품 기본 정보의 필드를 가져오는 스크립트를 작성합니다.

스크립트 작성이 완료되면 오른쪽 상단의 실행을 클릭하여 코드가 정상적으로 실행되는지 확인할 수 있습니다.

스크립트 코드 참고 자료는 아래와 같으며, 위 그림의 안내에 따라 관련 내용을 바꿔서 사용할 수 있습니다.

from aliyunsdkcore.request import CommonRequest
from aliyunsdkcore.client import AcsClient
import requests
import json
import time

#DF로 데이터 푸시
def pushdata(data):
    params = (
        ('token', 'tokn_bW47smmgQpoZxxxxxxx'),
    )
    response = requests.post('http://서버 IP 주소:9529/v1/write/custom_object', params=params, data=data)
    print(response.status_code, response.text)

#메인 함수
@DFF.API('custom_object')
def main():
    # 1.SDK 초기화
    client = AcsClient(
        'LTAI5t6d3sRh3xxxxxxxx',  # your-access-key-id
        'CHdrce2XtMyDAnYJxxxxxxxxxxxxxx',  # your-access-key-secret
        'cn-qingdao',  # your-region-id
    )
    request = CommonRequest()
    request.set_accept_format('json')
    request.set_domain('ecs.aliyuncs.com')
    request.set_method('POST')
    request.set_version('2014-05-26')
    request.set_action_name('DescribeInstances')
    request.add_query_param('RegionId', 'cn-qingdao')
    response = json.loads(client.do_action_with_exception(request))
    for i in response["Instances"]["Instance"]:
        data = ''' aliyun_ecs,name=%s,host=%s instanceid="%s",os="%s",status="%s",creat_time="%s",publicip="%s",regionid="%s",privateip="%s",cpu=%s,memory=%s %s''' %(
            i['HostName'], 
            i['InstanceId'], 
            i['InstanceId'], 
            i['OSType'],
            i['Status'], 
            i['CreationTime'], 
            i['PublicIpAddress']['IpAddress'],
            i['RegionId'], 
            i['NetworkInterfaces']['NetworkInterface'][0]['PrivateIpSets']['PrivateIpSet'][0]['PrivateIpAddress'],
            i['Cpu'],
            i['Memory'], 
            int(time.time()))
        print(data)
        pushdata(data)
  1. DataFlux Func 스크립트 구성이 완료되어 실행된 후, Guance 워크스페이스의 인프라스트럭처 > 사용자 정의에서 전송된 데이터를 확인할 수 있습니다.

  1. 스크립트 작업을 정기적으로 실행해야 하는 경우, DataFlux Func > 관리 > 자동 트리거 구성에서 정기적인 전송 작업을 생성할 수 있습니다.

문서 평가

이 페이지가 도움이 되었나요?