zabbix 自定义脚本监控activemq
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的更多相关文章
- Golang 基于Prometheus Node_Exporter 开发自定义脚本监控
Golang 基于Prometheus Node_Exporter 开发自定义脚本监控 公司是今年决定将一些传统应用从虚拟机上迁移到Kubernetes上的,项目多而乱,所以迁移工作进展缓慢,为了建立 ...
- zabbix自定义脚本监控服务器端口状态
zabbix可以通过客户端的[net.tcp.port[<ip>,port]]该item监控项来判断本地/远程服务器TCP端口是否正常,不过当时没有想起来,就用了自定义脚本去写的,很久没有 ...
- zabbix 自定义mysql监控
一.配置zabbix-agent 编辑 /etc/zabbix/zabbix_agentd.conf文件 增加如下两个配置 1.vim /etc/zabbix/zabbix_agentd.conf ...
- 菩提圣心诀---zabbix自定义key监控oracle连接状态(python脚本)
目的:此次实验目的是为了zabbix服务端能够实时监控某服务器上oracle实例能否正常连接 环境:1.zabbix_server 2.zabbix_agent(含有oracle) 主要知识点: 1. ...
- zabbix使用自定义脚本监控内存
我这里的脚本是监控centos7系统的内存.centos7系统的内存如何查看我之前的博客都是有的.这里直接写了监控步骤 1.首先是编写脚本. #!/bin/bash mem_total(){ TOTA ...
- zabbix自定义模板——监控TCP连接状态
TCP十二种连接状态说明 可以使用man netstat查看 LISTEN - 侦听来自远方TCP端口的连接请求: SYN-SENT -在发送连接请求后等待匹配的连接请求: SYN-RECEIVED ...
- zabbix 自定义 nginx 监控模板
打开zabbix首页→配置→模板→创建模板模板名称:Template App NGINXagent 需添加自定义监控项:UserParameter=nginx.status[*],/bin/bash ...
- zabbix配合脚本监控Kafka
简介: Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者规模的网站中的所有动作流数据.Kafka如下特性,受到诸多公司的青睐. 1.高吞吐量:即使是非常普通的硬件Kafka也可以支持 ...
- zabbix自定义key监控nginx和fpm(网站并发数)
一. nginx编译参数 监控nginx,主要讲解监控并发数 --prefix=/usr/local/nginx --with-http_stub_status_module zabbix编译参数的查 ...
随机推荐
- [置顶]
kubernetes--应用程序健康检查
K8S的应用程序健康检查分为livenessProbe和readinessProbe,两者相似,但两者存在着一些区别. livenessProbe在服务运行过程中检查应用程序是否运行正常,不正常将杀掉 ...
- django发送邮箱
要用django发送邮箱之前需要在setting中配置一下 EMAIL_HOST = 'smtp.qq.com' EMAIL_PORT = 25 EMAIL_HOST_USER = 'xxx@qq.c ...
- [Functional Programming] Combine State Dependent Transactions with the State ADT (composeK to replace multi chian call)
When developing a Finite State Machine, it is often necessary to apply multiple transitions in tande ...
- SpringMVC处理MYSQL BLOB字段的上传
任务: uos.docfile的content字段是longblob类型的,通过页面将文件存储到这个字段里. 页面代码: <div class="box"> <d ...
- Java中的回调函数学习-深入浅出
Java中的回调函数一般来说分为下面几步: 声明回调函数的统一接口interface A.包括方法callback(); 在调用类caller内将该接口设置为私有成员private A XXX; 在c ...
- 雷锋沙龙 ppt 演讲内容分享(xss,流量劫持的利用)
http://www.pkav.net/XSS.png?from=timeline&isappinstalled=0
- How to Configure an SSIS Package to Access a Web Service using WCF
This information is from:http://blogs.msdn.com/b/dbrowne/archive/2010/07/08/how-to-configure-an-ssis ...
- Codeforces Round #307 (Div. 2) E. GukiZ and GukiZiana (分块)
题目地址:http://codeforces.com/contest/551/problem/E 将n平均分成sqrt(n)块,对每一块从小到大排序,并设置一个总体偏移量. 改动操作:l~r区间内,对 ...
- 51单片机 | 实现SMC1602液晶屏显示实例
———————————————————————————————————————————— LCD1602 - - - - - - - - - - - - - - - - - - - - - - - - ...
- asp.net中UpdatePanel数据加载成功后回调
//添加UpdatePanel加载成功后执行的js方法 Sys.WebForms.PageRequestManager.getInstance().add_pageLoaded(onPageLoade ...