Go로 AWS의 Billing 정보를 도표화한 mackerel-plugin을 만들었습니다.

4185 단어 GoMackerelAWS
공식 플러그인에도 사용되는 Go 언어의 사용자 정의 도량 플러그인 제작용 라이브러리의github.com/mackerelio/go-mackerel-pluginGo를 이용하여 AWS의 Billing 정보 도표를 Mackerel 계기판으로 바꾸는 mackerel-plugin을 처음으로 제작하였다.

Mackerel의 공식 사이트

  • go-mackerel-plugin을 이용하여 사용자 정의 도량 플러그인 만들기

  • https://mackerel.io/ja/docs/entry/advanced/go-mackerel-plugin
  • 개발 및 운영 환경

  • 개발 환경
  • Mac: 10.14.1
  • Golang: 1.11.2
  • Goland
  • 실행 환경
  • AWS
  • EC2
  • Ubuntu16.04
  • mackerel-agent
  • IAM 역할(EC2 Billing 사용 권한 부여)
  • 이번에 제작된mackerel-plugin-awsbilling의 원본 코드는 다음과 같습니다.

  • GitHub
  • https://github.com/yhidetoshi/mackerel-plugin-awsbilling
  • EC2 Ubuntu 서버로 설정


  • Mac 로컬main에서Ubuntu에서 이동하는 방식으로 go를 교차 컴파일합니다.
  • GOOS=linux go build -o bin/mkr-plugin-aws-billing

  • 이 플러그인을 실행하려면 AWS API를 실행할 수 있는 IAM이 필요합니다.
  • 이번에는 EC2 실례에서 Biliing 정보를 얻을 수 있도록 IAM 역할을 부여했다.

  • Ubuntu 서버의 다음 경로에 배치되었습니다.
  • /usr/local/yhidetoshi/mackerel-plugin-aws-billing
  • mackerel-agent 설정

  • /etc/mackerel-agent/mackerel-agent.conf 아래와 같이 다른 파일의 설정을 유효하게 할 수도 있다.
  • apikey = "XXXXXXXXXXXXX"
    include = "/etc/mackerel-agent/*"
    
  • /etc/mackerel-agent/get_billing
  • [plugin.metrics.awsbilling]
    command = '/usr/local/yhidetoshi/mackerel-plugin-aws-billing -region=us-east-1'
    
  • mackerel-agent 재시작
  • $ sudo systemctl restart mackerel-agent
  • Mackerel 대시보드 차트 보기


    mackerel-agent로 설정된 호스트에 사용자 정의 도량에 도표를 추가합니다.

    Mackerel 공식 레지스트리 등록


    mackerel의 부식 방지제에 등록하면 mkr plugin install プラグイン名 에 설치할 수 있습니다.방법은 아래 맥커렐 공식 블로그에서 설명하였다.
  • mkrplugin install에 대응하는 플러그인 삽입
  • https://mackerel.io/ja/docs/entry/advanced/make-plugin-corresponding-to-installer
  • TravisCI를 사용하여 GitHub에서 버전을 자동화했습니다.코드는 아래에 샘플을 준비해서 사용했습니다.
  • https://github.com/mackerelio/mackerel-plugin-sample
  • TravisCI에서 자동으로 해제되면 다음과 같이 컴파일된 zip화가 생성됩니다.

    게시 전에 완료되면 다음 저장소에 PullRequest를 넣습니다.PR을 제출할 때 다음 저장소를 제출한 다음 PR을 작성합니다.
  • https://github.com/mackerelio/plugin-registry

  • → PR이 Merge 상태이며 mkr plugin install プラグイン名 에서 설치할 수 있습니다.
    $ sudo mkr plugin install mackerel-plugin-awsbilling
    Password:
               Downloading https://github.com/yhidetoshi/mackerel-plugin-awsbilling/releases/download/v0.0.3/mackerel-plugin-awsbilling_darwin_amd64.zip
               /opt/mackerel-agent/plugins/bin/mackerel-plugin-awsbilling already exists. Skip installing for now
               Successfully installed mackerel-plugin-awsbilling
    

    총결산


    Go를 사용하여 처음으로 mackerel-plugin을 만들었습니다.플러그인을 만드는 것은 Go의 학습이 될 수도 있고 시스템을 가시화할 수도 있다.그리고 만든 플러그인을 mkr 등록표에 등록합니다.앞으로도 다른 플러그인을 만들 수 있기를 바랍니다.

    좋은 웹페이지 즐겨찾기