12.8. アラート
アラート定義は CLI を使用して作成または編集できませんが、引き続き実行できる管理タスクがあります。発生するアラート自体では、サーバー側のスクリプトをアラート応答(および暗黙的な変数として参照されるアラート)として使用することができます。また、発生するアラートは管理者が表示し、承認することができます。定義は有効または無効にできます。
12.8.1. スクリプトでのアラートの使用 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
アラートへの応答の 1 つが、サーバーが保存したサーバースクリプト(通常は保存された CLI スクリプトファイル)を自動的に実行することです。
そのサーバー側のアラートスクリプトは、トリガーされたアラートのアラートオブジェクトを参照できます。サーバーは暗黙的な アラート 変数を定義します。これは、アラート情報、ID、定義、および発生するアラートのその他の情報でプルします。
よって、
Alert メソッドはアラート定義を識別し、アラートをトリガーしたリソースを特定します。これにより、スクリプトに再利用可能なプロキシーリソース定義を作成できます。この定義は、そのアラートスクリプトを使用するリソースに適用できます。
例:
var myResource = ProxyFactory.getResource(alert.alertDefinition.resource.id)
注記
この方法は、対話式 CLI や外部 CLI スクリプトファイルではなく、アラートで使用されるサーバー側のスクリプトでのみ利用できます。
12.8.2. アラートの承認 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
アラートが発生した場合の一般的な管理アクションの 1 つが管理者が確認し、その後アラートを確認し、承認すると、効果的に閉じます。このスクリプト例は、すべての Linux プラットフォームリソースの現在のアラートをすべて認識します。
検索の基準は、特定のアラートのみ、または特定のリソースのみをアクションに含めるように制限されるよう設定することができます。
このスクリプトのステップ:
- 発生するアラートを検索します。この場合、検索はリソースタイプ(Linux)に基づいています。
- 検索結果のデータを取得します。
- 返されるすべてのアラートを確認します。
例12.26 プラットフォームリソースのアラートの承認
// set the criteria and search for the alerts
var criteria = new AlertCriteria()
criteria.addFilterResourceTypeName('Linux')
var alerts = AlertManager.findAlertsByCriteria(criteria)
// go through the results and then acknowledge the alerts
if( alerts != null ) {
if( alerts.size() > 1 ) {
for( i =0; i < alerts.size(); ++i) {
alert = alerts.get(i);
AlertManager.acknowledgeAlerts([alert.id])
}
}
else if( alerts.size() == 1 ) {
alert = alerts.get(0);
AlertManager.acknowledgeAlerts([alert.id])
}
}
12.8.3. アラート定義の有効化または無効化 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
アラート定義は CLI で作成または編集できませんが、有効または無効にすることができます。
このサンプルスクリプトは、検索で返されたすべての定義を無効にします。実際のライフでは、定義の大きな blocs を無効にするのではなく、適切な定義のみを無効にするには、検索の基準が重要です。
このスクリプトのステップ:
- 優先度に基づいて一致するアラート定義を検索します(この場合は低速)。
- 検索結果のデータを取得します。
- 取得した検索リストの ID に基づいて、返されるすべてのアラート定義を無効にします。
例12.27 優先度に基づいてアラートの無効化
// set the search criteria for the alert definitions with a reasonable filter
var criteria = new AlertDefinitionCriteria()
criteria.addFilterPriority(AlertPriority.LOW)
//search for the alert definitions
alertdefs = AlertDefinitionManager.findAlertDefinitionsByCriteria(criteria)
//get the data from the results
alertdef = alertdefs.get(0);
println(" alert: " + alertdef.id );
//disable the matching alerts, based on ID
AlertDefinitionManager.disableAlertDefinitions([alertdef.id]);