1. 编写获取activemq队列积压消息(check-amq.sh)

#!/bin/bash
QUEUENAME=$
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)

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

3. 重启zabbix-agent,server端测试获取值是否正常

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

4. 添加监控项item

5. 添加触发器

6. 配置触发器对应得动作

7. 配置故障消息格式

## 故障

主机名称: {HOSTNAME1}
告警名称: {TRIGGER.NAME}
告警级别: {TRIGGER.SEVERITY}
告警时间: {EVENT.DATE} {EVENT.TIME}
检查项: {TRIGGER.KEY1}
当前值: {ITEM.LASTVALUE}
IP地址: {HOST.IP}

## 恢复

主机名称: {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. 触发器对应得操作里添加远程执行脚本

zabbix 自定义脚本监控activemq的更多相关文章

  1. Golang 基于Prometheus Node_Exporter 开发自定义脚本监控

    Golang 基于Prometheus Node_Exporter 开发自定义脚本监控 公司是今年决定将一些传统应用从虚拟机上迁移到Kubernetes上的,项目多而乱,所以迁移工作进展缓慢,为了建立 ...

  2. zabbix自定义脚本监控服务器端口状态

    zabbix可以通过客户端的[net.tcp.port[<ip>,port]]该item监控项来判断本地/远程服务器TCP端口是否正常,不过当时没有想起来,就用了自定义脚本去写的,很久没有 ...

  3. zabbix 自定义mysql监控

    一.配置zabbix-agent 编辑 /etc/zabbix/zabbix_agentd.conf文件  增加如下两个配置 1.vim /etc/zabbix/zabbix_agentd.conf ...

  4. 菩提圣心诀---zabbix自定义key监控oracle连接状态(python脚本)

    目的:此次实验目的是为了zabbix服务端能够实时监控某服务器上oracle实例能否正常连接 环境:1.zabbix_server 2.zabbix_agent(含有oracle) 主要知识点: 1. ...

  5. zabbix使用自定义脚本监控内存

    我这里的脚本是监控centos7系统的内存.centos7系统的内存如何查看我之前的博客都是有的.这里直接写了监控步骤 1.首先是编写脚本. #!/bin/bash mem_total(){ TOTA ...

  6. zabbix自定义模板——监控TCP连接状态

    TCP十二种连接状态说明 可以使用man netstat查看 LISTEN - 侦听来自远方TCP端口的连接请求: SYN-SENT -在发送连接请求后等待匹配的连接请求: SYN-RECEIVED ...

  7. zabbix 自定义 nginx 监控模板

    打开zabbix首页→配置→模板→创建模板模板名称:Template App NGINXagent 需添加自定义监控项:UserParameter=nginx.status[*],/bin/bash ...

  8. zabbix配合脚本监控Kafka

    简介: Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者规模的网站中的所有动作流数据.Kafka如下特性,受到诸多公司的青睐. 1.高吞吐量:即使是非常普通的硬件Kafka也可以支持 ...

  9. zabbix自定义key监控nginx和fpm(网站并发数)

    一. nginx编译参数 监控nginx,主要讲解监控并发数 --prefix=/usr/local/nginx --with-http_stub_status_module zabbix编译参数的查 ...

随机推荐

  1. http网页性能最佳实践

    你愿意为打开一个网页等待多长时间?我一秒也不愿意等.但是事实上大多数网站在响应速度方面都让人失望.现在越来越多的人开始建立自己的网站,博客,你的网页响应速度如何呢?在这篇文章中我们来介绍一下提高网页性 ...

  2. symbol(s) not found for architecture arm64

    问题如下:       解决:更改环境 ok   Standard architectures (armv7, arm7s)

  3. iOS import framework头文件时报错could not build module xxx

    导致这个错误的原因有多种: 1.库的search paths没有设置对. 2.库里面某些头文件找不到. 而导致.h头文件找不到的原因也有多种: (a)search paths没设置对,文件可能换过位置 ...

  4. Java混乱的日志体系(logback)(转)

    作为一名 Java 程序员,日常开发工作中肯定会接触日志系统,但是众多的框架,包括 Log4j.Log4j2.Logback.Slf4j.Apache Common logging 等等,引用的 ma ...

  5. 详细解析ASP.NET中Request接收参数乱码原理

    起因:今天早上被同事问了一个问题:说接收到的参数是乱码,让我帮着解决一下. 实际情景: 同事负责的平台是Ext.js框架搭建的,web.config配置文件里配置了全局为“GB2312”编码: < ...

  6. ubuntu-kvm上面deploy qcow2格式虚拟机

    ubuntu-kvm完成后,将xxx.qcow2格式的镜像拷贝到ubuntu-kvm这个虚拟机上面去. 1. 若是ubuntu server没有图形界面,可以先安装desktop,参考http://w ...

  7. Javascript -- document的createDocumentFragment()方法

    在<javascript高级程序设计>一书的6.3.5:创建和操作节点一节中,介绍了几种动态创建html节点的方法,其中有以下几种常见方法: · crateAttribute(name): ...

  8. mysql修改表字段属性类型

    例如: 修改表expert_info中的字段birth,允许其为空 >alter table expert_info change birth birth varchar(20) null; 例 ...

  9. 文件流:"fopen","fclose",“ftell”"fseek","fgets","fprintf" ,“feof”,"fwrite","fread"

    char const* filename="D:/hello.txt"; 路径名使用的是“/”或者使用 转义字符“\\”: "fopen", FILE *fp= ...

  10. 11. 配置ContextPath【从零开始学Spring Boot】

    转载:http://blog.csdn.net/linxingliang/article/details/51637036 spring boot默认是/ ,这样直接通过http://ip:port/ ...