zabbix 自定義腳本監控activemq

 

1. 編寫獲取activemq隊列積壓消息(check-amq.sh)python

#!/bin/bash
QUEUENAME=$1
MQ_IP='172.16.1.56'
curl -uadmin:admin http://${MQ_IP}:8161/admin/queues.jsp 2>/dev/null| grep -A 5 "${QUEUENAME}</a></td>"|awk -F '<' '{print $2}'|sed 's/td>//g'|grep '^[0-9]'|head -1

2. zabbix配置加入獲取值(userparameter_amq.conf)json

UserParameter=amq.Pending_Messages[*],/etc/zabbix/zabbix_agentd.d/check-amq.sh $1

3. 重啓zabbix-agent,server端測試獲取值是否正常api

zabbix_get -s 172.16.1.153 -k "amq.Pending_Messages[test-queues]"bash

4. 添加監控項itemapp

5. 添加觸發器curl

6. 配置觸發器對應得動做jsp

7. 配置故障消息格式post

## 故障測試

主機名稱: {HOSTNAME1}
告警名稱: {TRIGGER.NAME}
告警級別: {TRIGGER.SEVERITY}
告警時間: {EVENT.DATE} {EVENT.TIME}
檢查項: {TRIGGER.KEY1}
當前值: {ITEM.LASTVALUE}
IP地址: {HOST.IP}url

## 恢復

主機名稱: {HOSTNAME1}
告警名稱: {TRIGGER.NAME}
告警級別: {TRIGGER.SEVERITY}
告警時間: {EVENT.DATE} {EVENT.TIME}
恢復時間: {EVENT.RECOVERY.DATE} {EVENT.RECOVERY.TIME}
故障時長: {EVENT.AGE}
檢查項: {TRIGGER.KEY1}
當前值: {EVENT.RECOVERY.VALUE}
IP地址: {HOST.IP}

8. 配置釘釘報警

  a. server端 自定義腳本(默認自定義腳本存放路徑:/usr/lib/zabbix/alertscripts/DingAlert.py)  

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# Author: nickli

import requests
import json
import sys
import os

headers = {'Content-Type': 'application/json;charset=utf-8'}
api_url = "https://oapi.dingtalk.com/robot/send?access_token=#釘釘機器人token信息"

def dingAlert( text, mobile):
json_text= {
"msgtype": "text",
"at": {
"atMobiles": [
mobile
],
"isAtAll": False
},
"text": {
"content": text
}
}
print(requests.post(api_url,json.dumps(json_text),headers=headers).content)

if __name__ == '__main__':
text = sys.argv[1]
mobile = sys.argv[2]
dingAlert(text, mobile)

  b. 添加告警媒介

  c. 觸發器對應得動做添加告警媒介

9. 添加告警執行腳本

  a. 修改zabbix-agentd.conf(配置可執行腳本)

  EnableRemoteCommands=1

  b. 自定義腳本

#!/bin/bash
_date=`date +"%Y-%m-%d %H:%M:%S"`
_jps="/usr/local/jdk1.8.0_101/bin/jps"
_jstack="/usr/local/jdk1.8.0_101/bin/jstack"
_Pid=`${_jps} |grep "activemq.jar"|awk '{print $1}'`

function jstack_info ()
{
   echo ${_date} > /tmp/activemq_dump.log
   ${_jstack} -F -m ${_Pid} >> /tmp/activemq_dump.log

}

jstack_info

  c.  將zabbix用戶加入到sudo用戶

zabbix  ALL=(ALL)      NOPASSWD:/bin/bash

10. zabbix-server 手動測試自定義腳本(默認得超時是3s,客戶端和服務端都修改參數Timeout=10)

zabbix_get -s 172.16.1.153 -k "system.run[sudo /bin/bash /etc/zabbix/zabbix_agentd.d/jstack_info.sh]"  

11. 觸發器對應得操做裏添加遠程執行腳本

相關文章
相關標籤/搜索