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

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モジュールを保存するディレクトリを作成します。 現在の例では、名前を付けています アラートを無効にする スクリプトは、特定のLogicMonitorグループに移動されたすべての新しいデバイスでアラートを無効にするためです。

$ mkdir アラートを無効にする

次に、スクリプトの実行に必要なため、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 デモ.