AWSLambdaでのLogicMonitorAPIスクリプトの実行

LogicMonitorのベストプラクティスブログ

LogicMonitorポータルでメンテナンスAPIスクリプトを実行する必要がある場合があります。 たとえば、廃止されたデバイスを特定のフォルダーに移動します。これらのデバイスでアラートを受信する必要がなくなったためです。 APIスクリプトは、このフォルダーに追加された新しいデバイスでアラートを無効にするためにXNUMX日XNUMX回実行することにより、プロセスを自動化するのに役立ちます。  

XNUMXつの解決策は、APIスクリプトを AWS Lambda関数.  

アマゾンによると:

AWS Lambdaを使用すると、サーバーをプロビジョニングまたは管理せずにコードを実行できます。 消費した計算時間に対してのみ料金を支払います。コードが実行されていないときは無料です。 Lambdaを使用すると、事実上すべてのタイプのアプリケーションまたはバックエンドサービスのコードを実行できます。すべて管理なしで実行できます。 コードをアップロードするだけで、Lambdaがコードの実行とスケーリングに必要なすべてを高可用性で処理します。 他のAWSサービスから自動的にトリガーするようにコードを設定するか、任意のWebまたはモバイルAPから直接呼び出すことができますp.

サーバー上でcronジョブやWindowsスケジュールタスクを構成しなくても、PythonまたはJavaスクリプトをXNUMX日XNUMX回の速度で実行するのに最適です。  

Lambdaで動作させるには、Pythonスクリプトにいくつかの小さな変更を加える必要があります。

ラムダ関数を設定する手順:

  • 通常どおりPythonコードを記述します  
  • 通常のコードに加えて、ハンドラーを定義する必要があります。 基本的なAPIPythonスクリプトの場合、以下で十分です。 残りのコードをインデントするだけです
def lambda_handler(request_obj、context = None):

クローズステートメントは必要ありません。  

LambdaのデフォルトのPython環境は削除されており、モジュールはそれほど多く含まれていません。 LogicMonitor APIスクリプトには「requests」モジュールが必要です。つまり、仮想Python環境を構築し、リクエストをインストールして、zip形式で圧縮し、AWSにアップロードする必要があります。  

これを行うにはいくつかの方法がありますが、最も簡単な方法は、Ubuntu環境内でPIPを使用することです。

$ sudo apt-get install python-pip python-dev build-essential $ sudo pip install --upgrade pip $ sudo pip install --upgrade virtualenv

次に、スクリプトとサポートするPythonモジュールを保存するディレクトリを作成します。 現在の例では、名前を付けています disablealerts スクリプトは、特定のLogicMonitorグループに移動されたすべての新しいデバイスでアラートを無効にするためです。

$ mkdir disablealerts

次に、スクリプトの実行に必要なため、requestsパッケージをターゲットディレクトリにインストールする必要があります。 このコマンドは、disablealertsディレクトリにリクエストをインストールします。

$ pipインストールリクエスト-tdisablealerts

次に、Python APIスクリプトをdisablealertsディレクトリのルートに保存し、圧縮します

cd disablealerts zip -r disablealerts.zip *

Python環境を作成して圧縮したので、AWSでLambda関数を作成できます。

にログインします AWSコンソール ラムダセクションを開きます

  1. 「関数の作成」をクリックします。
  2. 「最初から作成」を選択し、適切な名前を指定します。  
  3. ランタイムをPython3.7に設定します。
  4. [役割]で、[既存の役割を選択]を選択します
  5. 既存のロールに「lambda_basic_execution」を選択します。
  6. 「関数の作成」ボタンを押します  
  7. 「コード入力タイプ」を「.zipファイルのアップロード」に変更し、前の手順で作成した.zipファイルを参照してアップロードします。  
  8. 「ハンドラー」は、実行するPythonファイルの名前であり、その後に.lambda_handlerが続く必要があります(例:「index.lambda_handler」)。  
  9. 環境変数は変数に使用できます(オプション)。 この例では、スクリプト自体からアクセスIDとアクセスキーを削除し、[環境]セクションでそれらを定義できます。 これらの値を取得するPythonコードは次のようになります。
    • AccessId = os.environ ['AccessId']
    • AccessKey = os.environ ['AccessKey']
  10. テストボタンをクリックしてスクリプトを実行し、Lambda環境で正しく機能することを確認します。

時間間隔を設定するには、「Addtriggers」セクションから「CloudWatchEvents」をクリックします。 これにより、「「トリガー」の構成」ウィンドウが開き、適切なルールを選択したり、 新しいカスタムルールを作成します。 アラートを無効にする例では、デフォルトのルール「once_a_day_10_min_before_midnight」が最適です。

LogicMonitorが環境でどのように役立つかについて詳しく知りたい場合は、ここでサインアップしてください。 無料試用 or デモ.

 

ジェフ・ウーバー

Jeff Woeberは、LogicMonitorのプロフェッショナルサービスチームのソリューションエンジニアであり、LogicMonitorの最大の環境のいくつかをコンサルティングおよび展開してきました。 ジェフはすべての自動化が大好きで、不可能な問題を解決することに真の情熱を持っています。

LogicBlogを購読して、LogicMonitorの最新の開発に関する最新情報を入手し、ITエキスパートとエンジニアのワールドクラスのチーム、およびITプロフェッショナルが愛する製品。

LogicBlogの他の記事

アンペアロボット 影

お店の話をしましょう。

STARTED GET