管理 → スクリプトセクションでは、ユーザー定義のグローバルスクリプトを設定および保守できます。
構成されたスコープとユーザー権限に応じて、グローバルスクリプトを実行できます。
スクリプトはZabbixエージェント、Zabbixプロキシ、またはZabbixサーバーでのみ実行されます。 コマンド実行も参照してください。
ZabbixエージェントとZabbixプロキシリモートスクリプトの両方がデフォルトで無効になっています。それらは次の方法で有効にできます。
1
に設定します。既存のスクリプトとその詳細のリストが表示されます。
表示データ
列 | 説明 |
---|---|
Name | スクリプトの名前。スクリプト名をクリックすると、スクリプト設定フォームが開きます |
Scope | スクリプトの範囲。アクション操作、手動ホストアクション、または手動イベントアクション。この設定により、スクリプトを使用できる場所が決まります。 |
Used in actions | スクリプトが使用されているアクションが表示されます。 |
Type | スクリプトタイプが表示されます - Webhook、* Script 、 SSH 、 Telnet 、またはIPMI*コマンド。 |
Execute on | スクリプトがZabbixエージェント、Zabbixプロキシ、またはZabbixサーバーの何処で実行されるかが表示されます。 |
Commands | スクリプト内で実行されるすべてのコマンドが表示されます。 |
User group | スクリプトを使用できるユーザーグループが表示されます(すべてのユーザーグループの場合はすべて) |
Host group | スクリプトを使用できるホストグループが表示されます(すべてのホストグループの場合はすべて) |
Host access | ホストグループのアクセス許可レベルが表示されます - 読み取りまたは書き込み。必要な権限レベルを持つユーザーのみが、スクリプトの実行にアクセスできます。 |
新しいスクリプトを構成するには、右上隅にあるスクリプトの作成ボタンをクリックします。
リストの下にあるボタンは、1つの一括編集オプションを提供します。
このオプションを使用するには、それぞれのスクリプトの前にあるチェックボックスをオンにして、削除をクリックします。
フィルタを使用して、関心のあるスクリプトのみを表示できます。検索パフォーマンスを向上させるために、データは未解決のマクロで検索されます。
Filterリンクは、スクリプトのリストの上にあります。それをクリックすると、名前とスコープでスクリプトをフィルタリングできるフィルターが使用可能になります。
スクリプト属性
パラメータ | 詳細 | |||
---|---|---|---|---|
名前 | 一意なスクリプト名 例: Clear /tmp filesystem |
|||
範囲 | スクリプトの範囲 - アクション処理、手動ホスト処理、または手動イベント処理。この設定は、スクリプトを使用できる場所を決定します - アクション操作のリモートコマンドで、ホストメニューまたはイベントメニュー 範囲を'アクション処理'に設定すると、構成→アクションにアクセスできるすべてのユーザーがスクリプトを使用できるようになります。 スクリプトが実際にアクションの場合、その範囲を「アクション処理」から変更することはできません。 マクロのサポート 範囲は、使用可能なマクロの範囲に影響します。たとえば、ユーザー関連のマクロ({USER.*})はスクリプトでサポートされており、スクリプトを起動したユーザーに関する情報を渡すことができます。ただし、スクリプトスコープがアクション処理の場合は、アクション処理が自動的に実行されるため、サポートされていません。 サポートされているマクロを確認するには、「トリガーベースの通知とコマンド/トリガーベースのコマンド」を検索してください。 サポートされているマクロテーブルの「手動ホスト処理スクリプト」および「手動イベント処理スクリプト」。マクロがスペースを含む値(ホスト名など)に解決される可能性がある場合は必要に応じて引用符で囲むことを忘れないでください。 |
|||
メニューパス | スクリプトへの目的のメニューパス。たとえばDefault またはDefault / は、それぞれのディレクトリにスクリプトを表示します。メニューはネストできます。たとえばメインメニュー/サブメニュー1/サブメニュー2 。監視セクションのホスト/イベントメニューからスクリプトにアクセスすると、指定されたディレクトリに従ってスクリプトが整理されます。このフィールドは、[手動ホスト処理]または[手動イベント処理]が範囲として選択されている場合にのみ表示されます。 |
|||
タイプ | ボタンをクリックして、スクリプトタイプを選択します: Webhook,Script,SSH,Telnetまたは** IPMI**コマンド |
|||
スクリプトタイプ: Webhook | ||||
パラメータ | Webhook変数を属性と値のペアとして指定します。 関連項目:Webhook メディア設定 マクロとカスタムユーザーマクロはパラメーター値でサポートされています。マクロのサポートはスクリプトの範囲によって異なります(上記の範囲を参照) |
|||
スクリプト | パラメータフィールド(またはその横にある表示/編集ボタン)をクリックすると表示されるブロックにJavaScriptコードを入力します。 マクロのサポートはスクリプトの範囲によって異なります(上記の範囲を参照)<br >関連項目:Webhook メディア設定 ,追加のJavascriptオブジェクト |
|||
タイムアウト | JavaScript実行タイムアウト(1〜60秒、デフォルトは30秒) タイムサフィックスがサポートされています。例: 30s, 1m |
|||
スクリプトタイプ:スクリプト | ||||
次で実行 | それぞれのボタンをクリックしてシェルスクリプトを実行します。 ** Zabbixエージェント** - スクリプトはホスト上のZabbixエージェントによって実行されます(system.runアイテムが許可されている場合) ** Zabbixサーバー(プロキシ)** - スクリプトはZabbixサーバーまたはプロキシによって実行されます(EnableRemoteCommandsによって有効になっている場合)- ホストはサーバーまたはプロキシによって監視されます Zabbixサーバー - スクリプトはZabbixサーバーによってのみ実行されます。 |
|||
コマンド | スクリプト内で実行するコマンドへのフルパスを入力します。 マクロのサポートはスクリプトの範囲によって異なります(上記の範囲を参照)。カスタムユーザーマクロがサポートされています。 |
|||
スクリプトタイプ: SSH | ||||
認証方法 | 認証方法を選択します - パスワードまたは公開鍵 | |||
ユーザー名 | ユーザー名を入力します | |||
パスワード | パスワードを入力します このフィールドは、認証方法として'パスワード'が選択されている場合に使用できます。 |
|||
公開鍵ファイル | 公開鍵ファイルへのパスを入力します。 このフィールドは、認証方法として'公開鍵'が選択されている場合に使用できます。 |
|||
秘密鍵ファイル | 秘密鍵ファイルへのパスを入力します。 このフィールドは、認証方法として'公開鍵'が選択されている場合に使用できます。 |
|||
キーのパスフレーズ | パスフレーズを入力します。 このフィールドは認証方法として'公開鍵'が選択されている場合に使用できます。 |
|||
ポート | ポート番号を入力します | |||
コマンド | コマンドを入力します。 マクロのサポートはスクリプトの範囲によって異なります。(上記の範囲を参照)カスタムユーザーマクロがサポートされています。 |
|||
スクリプトタイプ: Telnet | ||||
ユーザー名 | ユーザー名を入力します | |||
パスワード | パスワードを入力します | |||
ポート | ポート番号を入力します | |||
コマンド | コマンドを入力します。 マクロのサポートはスクリプトの範囲によって異なります。(上記の範囲を参照)カスタムユーザーマクロがサポートされています。 |
|||
スクリプトタイプ: IPMI | ||||
コマンド | IPMIコマンドを入力します。 マクロのサポートはスクリプトの範囲によって異なります。(上記の範囲を参照)カスタムユーザーマクロがサポートされています。 |
|||
説明 | スクリプトの説明 | |||
ホストグループ | スクリプトを使用できるホストグループを選択します(すべてのホストグループの場合はすべて) | |||
ユーザーグループ | スクリプトを使用できるユーザーグループを選択します。(すべてのユーザーグループの場合はすべて) このフィールドは範囲が「手動ホスト処理」または「手動イベント処理」の時に表示されます。 |
|||
必要なホストへのアクセス権 | ホストグループのアクセス許可レベルを選択します - 読み取りまたは書き込み。必要な権限レベルを持つユーザーのみがスクリプトの実行にアクセスできます。 このフィールドは範囲が「手動ホスト処理」または「手動イベント処理」の時に表示されます。 |
|||
確認を有効 | スクリプトを実行する前に確認メッセージを表示するには、チェックボックスをオンにします。この機能は、潜在的に危険な操作(再起動スクリプトなど)や時間がかかる可能性のある操作で特に役立つ場合があります。 このオプションは範囲が「手動ホスト処理」または「手動イベント処理」の時に表示されます。 |
|||
確認テキスト | 上記のチェックボックスで有効にした確認ポップアップのカスタム確認テキストを入力します(例:リモートシステムが再起動されます。よろしいですか?)。テキストがどのように表示されるかを確認するには、フィールドの横にあるテストの確認をクリックします。 {HOST.*}および{USER.*}マクロがサポートされています。カスタムユーザーマクロがサポートされています。 注:確認メッセージのテスト時にマクロは展開されません。 このフィールドは範囲が「手動ホスト処理」または「手動イベント処理」の時に表示されます。 |
Advanced configuration options are available in a collapsible Advanced configuration section:
Parameter | Description |
---|---|
Enable user input | Mark the checkbox to enable manual user input before executing the script. Manual user input will replace the {MANUALINPUT} macro value in the script. See also: Manual user input. |
Input prompt | Enter custom text prompting for custom user input. This text will be displayed above the input field in the Manual input popup. To see a preview of the Manual input popup, click on Test user input. The preview also allows to test if the input string complies with the input validation rule (see parameters below). Macro and user macro support depends on the scope of the script (see Scope in general script configuration parameters). |
Input type | Select the manual input type: String - single string; Dropdown - value is selected from multiple dropdown options. |
Dropdown options | Enter unique values for the user input dropdown in a comma-delimited list. To include an empty option in the dropdown, add an extra comma at the beginning, middle, or end of the list. This field is displayed only if 'Dropdown' is selected as Input type. |
Default input string | Enter the default string for user input (or none). This field will be validated against the regular expression provided in the Input validation rule field. The value entered here will be displayed by default in the Manual input popup. This field is displayed only if 'String' is selected as Input type. |
Input validation rule | Enter a regular expression to validate the user input string. Global regular expressions are supported. This field is displayed only if 'String' is selected as Input type. |
Enable confirmation | Mark the checkbox to display a confirmation message before executing the script. This feature might be especially useful with potentially dangerous operations (like a reboot script) or ones that might take a long time. |
Confirmation text | Enter custom confirmation text for the confirmation popup enabled with the checkbox above (for example, Remote system will be rebooted. Are you sure?). To see how the text will look like, click on Test confirmation next to the field. Macros and custom user macros are supported. Note: the macros will not be expanded when testing the confirmation message. |
If both manual user input and a confirmation message are configured, they will be displayed in consecutive popup windows.
Manual user input allows to supply a custom parameter on each execution of the script. This saves the necessity to create multiple similar user scripts with only a single parameter difference.
For example, you may want to supply a different integer or a different URL address to the script during execution.
To enable manual user input:
With user input enabled, before script execution, a Manual input popup will appear to the user asking to supply a custom value. The supplied value will replace {MANUALINPUT} in the script.
Depending on the configuration, the user will be asked to enter a string value:
Or select the value from a dropdown of pre-determined options:
Manual user input is available only for scripts where the scope is 'Manual host action' or 'Manual event action'.
Zabbixサーバーで実行されるスクリプトは、終了コードの確認を含めコマンド実行セクションで説明されている順序で実行されます。スクリプトの結果は、スクリプトの実行後に表示されるポップアップウィンドウに表示されます。
Note: スクリプトの戻り値は標準エラーとともに標準出力です。
以下のスクリプトと結果ウィンドウの例を参照してください。
スクリプトの結果にスクリプト自体は表示されません。
スクリプトの実行中にタイムアウトが発生する場合があります。
Zabbixエージェントで実行されるスクリプトの例と以下の結果ウィンドウを参照してください。
この場合のエラーメッセージは次のとおりです。
このような状況を回避するためにスクリプト自体を最適化することをお勧めします。(Zabbixエージェント設定とZabbixサーバー設定のTimeoutパラメーターを対応する値(この場合は> ‘5’)に調整するのではありません)
Zabbixエージェント設定でタイムアウトパラメータが変更された場合は、次のエラーメッセージが表示されます。
これは、Zabbixエージェント設定で変更が行われたことを意味し、Zabbixサーバー設定でもタイムアウト設定を変更する必要があります。
Zabbixサーバーで実行されているスクリプトの例と以下の結果ウィンドウを参照してください。
このような状況を回避するためにスクリプト自体を最適化することをお勧めします。(Zabbixサーバー設定のTimeoutパラメーターを対応する値(この場合は> ‘11’)に調整するのではありません)