Zabbixアラートとの連携
さて、それでは他システムとの連携を始めましょう。
ここでは、ZabbixにてOSの空きメモリを監視(常時)している環境において、メモリの空き容量が規定値より小さくなるのをZabbixが検知すると、その内容をRedmineに起票する、という動作を実現してみます。
環境の準備とZabbixの設定
Zabbixを使用する環境として、VirtualBox の仮想イメージが提供されていますのでこちらを利用します。
また今回は、Template OS Linuxに含まれているAvailable Memoryの監視を対象にします。
通知用トリガーの作成
ブラウザからZabbixのWebコンソールを開き、ログインします。
上部のメニューから[Configuration]→[Templates]とたどり、表示されるリストの中ほどから「Template OS Linux」を選択します。
上部のTriggersのリンクを選択します。
Triggersのリストが表示されるので、「Lack of available memory on server {HOST.NAME}」のリンクを選択します。
次に、表示された詳細画面の下部にある[Clone]ボタンをクリックします。
同じ内容のトリガーが複製されるので、下記のように変更し、[Add]ボタンをクリックします。
- Name: {HOST.NAME} メモリが不足しそうです
- Expression: {Template OS Linux:vm.memory.size[available].last(0)}<1024M
- Severity: Warning
リモートコマンドアクションの作成
続いて、スクリプトを呼び出すアクションを作成します。
Zabbix のWebコンソールの上部メニューから[Configuration]→[Actions]とたどり、アクション画面を表示します。
右上の[Create action]ボタンをクリックします。
[Action]タブ、[Conditions]タブ、[Operations]タブを持つ画面が表示されるので、それぞれのタブで次のように設定を行います。
Action タブ
- Name: Redmine通知
Conditions タブ
- Type of calculation: And
-
Conditions
- [B] Trigger value = PROBLEM
- [C] Trigger name like {HOST.NAME} メモリが不足しそうです
Operations タブ
-
Action operations
-
Operation details
- Step From 1 To 1 Step duration 0
- Operation type: Remote Command
- Target list: Current host
- Type: Custom script
- Execute on: Zabbix server
- Commands: /usr/local/bin/issue_reporter.py http://redmine-server/ API_KEY alert "自動登録"
-
Conditions:
- [A] Event acknowledged = Not Ack
-
Operation details
以上でZabbix側の設定は完了です。