
シェア:
Adrian is a problem solver and Python developer advocate. He works with various programming languages to solve engineering problems. Introduced to programming at age 16, Adrian has spent the last 8 years oscillating between backend development and automation. He lives in Nairobi and when not writing code he is most likely playing Call Of Duty or NBA 2K on his PlayStation, riding his bicycle or binge watching the latest series on Netflix.
Vonage Messages APIを使用したディスク使用量監視システムの構築
所要時間:1 分
はじめに
ディスク使用量は、あらゆる組織のITインフラストラクチャにおいて追跡すべき重要な指標です。ディスク使用量を常に把握していないと、本番稼動中のアプリケーションでパフォーマンスの問題が発生したり、既存のインフラをアップグレードする際に突発的なコストが発生し、財務的な打撃を受けたりするリスクがあります。
最近のクラウド・インフラストラクチャ・プロバイダー、例えばAWSは、アラームが設定された高度な測定システムを提供しているが、それには追加コストがかかる。ディスク使用量は重要な指標であり、クラウドプロバイダーが提供する数分の一のコストで、アラートを備えた独自のディスク使用量監視システムを開発することができる。クールだろう?
このガイドでは、Pythonプログラミング言語とVonage Messages APIを使って、カスタムディスク使用量監視システムを構築する方法を説明します。このプログラムはサーバーやローカルの開発マシンでも実行できることに注意してください。
前提条件
Python 3.6+
Vonage CLIでVonageアプリケーションをセットアップする
開発マシンに最新バージョンのVonage CLIをインストールします:
npm install --location=global @vonage/cliVonageの設定
API_KEYそしてAPI_SECRET最後のステップからvonage config:set --apiKey=API_KEY --apiSecret=API_SECRETvonageメッセージアプリを作成する:コマンド
vonage apps:createコマンドを使用し、以下のように対話型CLIモードでプロンプトに従う:
✔ Application Name … <insert any appropriate name>
✔ Select App Capabilities › <select Messages>
✔ Create messages webhooks? › (y/N)
✔ Allow use of data for AI training? Read data collection disclosure - https://help.nexmo.com/hc/en-us/articles/4401914566036 … <select either y/N> 私たちの目標
以下のような軽量アプリケーションを作りたい:
ディスク使用量の統計を取得する(サーバーまたはローカルの開発マシン)。Pythonのライブラリを使います、
psutilを使います。任意のしきい値(例えばディスク使用量の50%)を設定し、このしきい値に達したときに通知を送信できるようにする。
ディスク使用量がしきい値を超えた場合に警告するメッセージをカスタマイズします。このメッセージの配信にはVonage APIを利用しています。
ステップ
ローカルにプロジェクト・ディレクトリを作成する:例えば
mkdir disk_usage_monitor && cd disk_usage_monitor.プロジェクトディレクトリ内で、プロジェクトの依存関係をグローバルなPythonの依存関係から分離するための仮想環境を作成します:
python3 -m venv .venv.以下のコマンドで仮想環境をアクティブにします:
source .venv/bin/activate.プロジェクト・ディレクトリー内に
requirements.txtファイルを作成しtouch requirements.txtでファイルを作成し、以下のプロジェクトの依存関係をそのファイルにコピーする:
vonage==3.5.1
python-dotenv==1.0.0
psutil==5.9.5依存関係を仮想環境にインストールするには、以下のコマンドを実行する:
pip3 install -r requirements.txt次のコマンドを使って、環境変数を格納する.envファイルを作成する。
touch .envを実行し、以下の内容をコピーする:
注意変更 YOUR_VONAGE_API_KEY, YOUR_VONAGE_API_SECRET, THE_SENDER_NUMBERと THE_RECIPIENT_NUMBERを ダッシュボード.
# Vonage Credentials
VONAGE_API_KEY=YOUR_VONAGE_API_KEY
VONAGE_API_SECRET=YOUR_VONAGE_API_SECRET
VONAGE_SENDER=THE_SENDER_NUMBER
RECIPIENT=THE_RECIPIENT_NUMBERという名前のファイルを
monitor.pyという名前のファイルをtouch monitor.pyというファイルをプロジェクト・ディレクトリに追加し、以下の内容を貼り付ける:
注:
psutil.disk_usageをpsutilという名前のタプルを返します:sdiskusage(total=xxxxx, used=xxxxx, free=xxxx, percent=47.0).パーセンテージの値が私たちにとって最も興味深いものです。
import psutil
import vonage
from dotenv import dotenv_values
# load your environment variables
config = dotenv_values(".env")
client = vonage.Client(key=config["VONAGE_API_KEY"], secret=config["VONAGE_API_SECRET"])
# get disk usage statistics for home directory
stats = psutil.disk_usage("/")
# device: give it an easily identifiable name e.g. server 1.89.200.4
device = "local dev machine"
# send out a message indicating the disk usage level
client.messages.send_message(
{
"channel": "sms",
"message_type": "text",
"from": config["VONAGE_SENDER"],
"to": config["RECIPIENT"],
"text": f"Your Disk Usage is at {stats[-1]} % on {device}.",
}
)これで monitor.pyファイルを実行することができる: python3 monitor.py.
ある閾値に達したら通知を受け取りたい。そのためには
monitor.pyファイルを修正して、ある閾値に達したらアラートを送るようにすることができる:
# our previous code remains as is on this section
...
# the disk usage threshold. Adjust this to an acceptable threshold of your choice
threshold = 50
# if disk usage is above given threshold, send out an sms alert
if stats[-1] > threshold:
client.messages.send_message(
{
"channel": "sms",
"message_type": "text",
"from": config["VONAGE_SENDER"],
"to": config["RECIPIENT"],
"text": f"Your Disk Usage is at {stats[-1]} % on {device}. Delete some files soon to create some disk space!",
}
)
ボーナス
Unixシステムでは、このプログラムをcronジョブとして設定し、毎日(またはお好みの頻度に応じて)実行することで、定期的にディスク使用量のチェックを行うことができる:
ターミナル・セッションで以下のコマンドを使ってcrontabエントリーを編集する。 sudo crontab -e以下のcronエントリーを追加し、毎日午前6:00に実行する:
0 6 * * * cd <project_directory> && .venv/bin/python3 monitor.pyウィンドウズでは、以下の手順で、毎日実行するスケジュール・タスクとしてプログラムを設定することができる:
スタートアップメニューからタスクスケジューラを開く。
アクションパネルから、タスクの作成オプションを選択し、新しいクーロンジョブを作成します。
画面に表示されるタスクの作成ウィンドウで、一般タブの下にタスクの名前を追加し、他のオプションはデフォルトのままにしておきます。
トリガータブを選択し、新規をクリックしてトリガーを追加する。
タスク開始ウィンドウで、サイドパネルから毎日を選択し、開始時間を例えば午前6時00分00秒とする。他のオプションはデフォルトのままにしておく。
アクションパネルから新しいアクションを作成し、新規アクションパネルで、コマンドプロンプトで以下のコマンドを実行した結果であるpython実行ファイルへのパスを指定します:
where python.引数の追加セクションに、ファイル名を追加する。
monitor.py.スタート・イン・セクションに、プロジェクト・ディレクトリへのパスを追加する:
C:\Users\<user>\path\to\project-directory.
結論
私たちは、SMSアラートを送信するためにVonage APIに依存するアラートコンポーネントを備えた本格的なディスク使用量監視システムをセットアップしました。
もし、これを楽しんでいただけたなら、あるいはさらに質問がおありなら、私にメッセージを送ってください。 電子メールまたは GitHub.
Vonageは常にコミュニティへの参加を歓迎しています。お気軽に GitHubおよび VonageコミュニティSlack.
シェア:
Adrian is a problem solver and Python developer advocate. He works with various programming languages to solve engineering problems. Introduced to programming at age 16, Adrian has spent the last 8 years oscillating between backend development and automation. He lives in Nairobi and when not writing code he is most likely playing Call Of Duty or NBA 2K on his PlayStation, riding his bicycle or binge watching the latest series on Netflix.