https://github.com/ne-sachirou/mkr-gcloud-auto-retirement
Mackerel の Google Cloud インテグレーションから Compute Engine instance を自動退役します
https://github.com/ne-sachirou/mkr-gcloud-auto-retirement
mackerel
Last synced: 9 months ago
JSON representation
Mackerel の Google Cloud インテグレーションから Compute Engine instance を自動退役します
- Host: GitHub
- URL: https://github.com/ne-sachirou/mkr-gcloud-auto-retirement
- Owner: ne-sachirou
- License: unlicense
- Created: 2021-12-15T17:33:04.000Z (almost 4 years ago)
- Default Branch: main
- Last Pushed: 2024-12-07T17:39:42.000Z (12 months ago)
- Last Synced: 2025-01-08T10:49:07.074Z (11 months ago)
- Topics: mackerel
- Language: Clojure
- Homepage:
- Size: 18.6 KB
- Stars: 0
- Watchers: 3
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
[](https://github.com/ne-sachirou/mkr-gcloud-auto-retirement/actions/workflows/test.yml)
# mkr-gcloud-auto-retirement
mkr-gcloud-auto-retirement は、Mackerel の Google Cloud インテグレーションで Compute Engine を監視してゐる時に、auto scale 等で Compute Engine instance が無くなったならば、Mackerel からも退役させる道具です。
Mackerel の Google Cloud インテグレーションでは、Compute Engine instance が増えた時は自動で監視對象に追加されますが、減った時は、メトリックは取得されなくなりますが退役はされません。mkr-gcloud-auto-retirement は Compute Engine instance 一覧と Mackerel のホスト一覧を定期的に照合して、instance の無くなったホストを退役させます。
- [Google Cloud インテグレーション - Compute Engine - Mackerel ヘルプ](https://mackerel.io/ja/docs/entry/integrations/gcp/gce)
## 實行方法
### 手元から實行する
Clojure と mkr を入れてください。
- [CLI ツール mkr を使う - Mackerel ヘルプ](https://mackerel.io/ja/docs/entry/advanced/cli)
設定の要る環境變數は以下です。
- `GCLOUD_PROJECT_ID` : 監視する Compute Engine instance のある Google Cloud project の ID です。
- `MACKEREL_APIKEY` : ホスト一覧を取得し、要らないホストを退役する爲の Mackerel の API キーです。Read と Write の權限が要ります
- `MACKEREL_HOST_ID` : `mkr wrap` に指定するホスト ID です。mkr-gcloud-auto-retirement が正常に實行されるかチェック監視するものです。
- `MACKEREL_ROLE` : Google Cloud インテグレーションで登錄されたホストのサービスとロールです (例: `service1:role1`)。このロールにあるホストは全て、一つの Google Cloud インテグレーションの設定から登錄されたものでなければなりません。他の Google Cloud インテグレーションの設定や Google Cloud インテグレーションによるものではないホストが混ざってゐた場合、閒違へて退役させる可能性があります。
google-cloud-java が認證できるやうにしておいてください ( https://github.com/googleapis/google-cloud-java#authentication )。典型的には `GOOGLE_APPLICATION_CREDENTIALS` 環境變數を設定します。必要な權限は、Compute Engine の Compute インスタンス管理者です。
以下の command で實行できます。
```sh
make run-local
```
### Kubernetes の CronJob として實行する
`deployments/` directory に Kubernetes の manifest と、Google Cloud Build の設定があります。
GitHub repository へ Cloud Build への接續を install し、git push でトリガーするやうにします。mkr-gcloud-auto-retirement は Google Kubernetes Engine に deploy されます。
Cloud Build のトリガーに設定する変数は以下です。
- `_CLOUDSDK_COMPUTE_REGION` : deploy する Kubernetes Engine のある region。`asia-northeast1-a` 等。
- `_CLOUDSDK_CONTAINER_CLUSTER` : deploy する Kubernetes Engine の名前。
- `_GCLOUD_SERVICE_ACCOUNT_KEY_JSON` : Google Cloud API を實行する爲のサービスアカウントキーです。必要な權限は、Compute Engine の Compute インスタンス管理者です。
- `_MACKEREL_APIKEY` : ホスト一覧を取得し、要らないホストを退役する爲の Mackerel の API キーです。Read と Write の權限が要ります
- `_MACKEREL_HOST_ID` : `mkr wrap` に指定するホスト ID です。mkr-gcloud-auto-retirement が正常に實行されるかチェック監視するものです。
- `_MACKEREL_ROLE` : Google Cloud インテグレーションで登錄されたホストのサービスとロールです (例: `service1:role1`)。このロールにあるホストは全て、一つの Google Cloud インテグレーションの設定から登錄されたものでなければなりません。他の Google Cloud インテグレーションの設定や Google Cloud インテグレーションによるものではないホストが混ざってゐた場合、閒違へて退役させる可能性があります。
一時間毎に mkr-gcloud-auto-retirement が實行されます。
## 現狀の制限
- 一つの Mackerel ロールのホストしか自動退役させられません。複數のロールから自動退役されたい場合は、複數 CronJob を起動してください。
- asia-northeast1 以外の Google Cloud region には對應してゐません。