监控释放Google云外网静态IP地址
当未使用Google Cloud外部静态IP时获得通知,因此您可以释放它们以节省资金。
我正在查看Google Cloud Platform(GCP)帐单,并注意到以下几点:
gcp静态ip帐单
这不是谷歌的错,而是我。我保留了一个静态IP,但在删除VM后忘记释放它。它发生了,我想那不只是我一个。
我环顾了GCP控制台,找不到未使用静态IP的警报选项。也许是产品功能要求。
但是,我不会重复该错误。
感谢Google Cloud SDK提供的gcloudCLI,您可以在脚本中使用它执行几乎所有操作。我想写一个每天运行的脚本,并在不使用任何静态IP时发出通知。有多种方法可以得到通知,第一种便捷的方法是电子邮件。但是,我没有运行邮件服务器,因此不得不寻找其他选择。
经过几分钟的搜索,我发现了Pushbullet。它是一个通知系统,可用于将警报推送到Chrome,Firefox,Safari,Opera,Android,iOS和Windows。几乎所有的东西。我还需要什么?
您可以猜测,当您没有在服务器上运行邮件服务器或想要在任何地方运行gcloud命令时,Pushbullet现在是获得通知的先决条件。
如果您决定转到Pushbullet,则创建一个免费帐户,设置要接收通知的位置,然后转到“设置”以生成访问令牌。
我假设您gcloud在服务器上已准备好访问令牌并可以使用该命令。
这是小脚本。创建一个具有以下内容的文件,假设gcp-unused-ip-monitor.sh
#!/bin/bashif gcloud compute addresses list | grep EXTERNAL | grep RESERVED ; then
curl -u $Access_TOKEN: https://api.pushbullet.com/v2/pushes -d type=note -d title="Google Cloud IP NOT_INUSE" -d body="Some external IP is not in use"else :fi
不要忘记用实际值更新$ Access_TOKEN。
保存文件并通过授予执行权限使其可执行。
chmod 755 gcp-unused-ip-monitor.sh
手动运行脚本以验证警报。如果您有未使用的IP,则会收到警报。
gcp ip警报
上面的通知来自我已配置Pushbullet进行提醒的Chrome浏览器。但是如上所述,您可以将警报推送到移动设备或其他浏览器。选择您喜欢的。
现在,我们有了一个工作脚本,接下来,我们需要每天自动运行此脚本。
要安排脚本每天运行,请使用基于UNIX的操作系统上可用的Crontab。
使用crontab -e编辑crontab并添加以下内容
0 0 * * * $PATH/gcp-unused-ip-monitor.sh > /dev/null
将$ PATH更新到脚本所在的路径。在cron条目上方,将在每个午夜运行脚本。您可以根据自己的喜好调整运行时间。
有多容易?
收到警报后,您可以转到GCP控制台并查看“不在使用中” IP并将其释放。
我希望这个小脚本可以为您节省一些钱。