博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
flume监控
阅读量:5300 次
发布时间:2019-06-14

本文共 3137 字,大约阅读时间需要 10 分钟。

Flume本身提供了http, ganglia的监控服务,而我们目前主要使用zabbix做监控。因此,我们为Flume添加了zabbix监控模块,和sa的监控服务无缝融合。

另一方面,净化Flume的metrics。只将我们需要的metrics发送给zabbix,避免 zabbix server造成压力。目前我们最为关心的是Flume能否及时把应用端发送过来的日志写到Hdfs上, 对应关注的metrics为:

  • Source : 接收的event数和处理的event数
  • Channel : Channel中拥堵的event数
  • Sink : 已经处理的event数

zabbix安装

http://my.oschina.net/yunnet/blog/173161

zabbix监控Flume 

 #JVM性能监控

Young GC  counts
sudo  /usr/local/jdk1.7.0_21/bin/jstat -gcutil $(pgrep java)|tail -1|awk '{print  $6}'
Full GC  counts
sudo  /usr/local/jdk1.7.0_21/bin/jstat -gcutil $(pgrep java)|tail -1|awk '{print  $8}'
JVM total  memory usage
sudo  /usr/local/jdk1.7.0_21/bin/jmap -histo $(pgrep java)|grep Total|awk '{print  $3}'
JVM total  instances usage
sudo  /usr/local/jdk1.7.0_21/bin/jmap -histo $(pgrep java)|grep Total|awk '{print  $2}'
#flume应用参数监控
启动时加上JSON repoting参数,这样就可以通过http://localhost:34545/metrics访问
bin/flume-ng agent -n consumer -c conf -f bin/conf.properties -Dflume.monitoring.type=http -Dflume.monitoring.port=34545 &
#生成一些数据
for i in  {1..100};do echo "exec test$i" >> /usr/logs/log.10;echo  $i;done
#通过shell脚本对JSON输出进行排版
curl http://localhost:34545/metrics 2>/dev/null|sed -e  's/\([,]\)\s*/\1\n/g' -e 's/[{}]/\n/g' -e 's/[",]//g'
SOURCE.kafka:
OpenConnectionCount:0
AppendBatchAcceptedCount:0
AppendBatchReceivedCount:0
Type:SOURCE
EventAcceptedCount:7252225
AppendReceivedCount:0
StopTime:0
EventReceivedCount:0
StartTime:1407731371546
AppendAcceptedCount:0
SINK.es:
BatchCompleteCount:10697
ConnectionFailedCount:0
EventDrainAttemptCount:7253061
ConnectionCreatedCount:1
BatchEmptyCount:226
Type:SINK
ConnectionClosedCount:0
EventDrainSuccessCount:7253061
StopTime:0
StartTime:1407731371546
BatchUnderflowCount:14857
SINK.hdp:
BatchCompleteCount:1290
ConnectionFailedCount:0
EventDrainAttemptCount:8057502
ConnectionCreatedCount:35787
BatchEmptyCount:54894
Type:SINK
ConnectionClosedCount:35609
EventDrainSuccessCount:8057502
StopTime:0
StartTime:1407731371545
BatchUnderflowCount:45433

--------------$1 变量!!!eg:EventDrainSuccessCount(source,channel,sink)
#配置监控flume的脚本文件
cat /opt/monitor_flume.sh
curl  http://localhost:34545/metrics 2>/dev/null|sed -e 's/\([,]\)\s*/\1\n/g' -e  's/[{}]/\n/g' -e 's/[",]//g'|grep $1|awk -F: '{print $2}'
curl  http://localhost:34545/metrics 2>/dev/null|sed -e 's/\([,]\)\s*/\1\n/g' -e  's/[{}]/\n/g' -e 's/[",]//g'|grep Total|awk -F: '{print $2}'
curl  http://localhost:34545/metrics 2>/dev/null|sed -e 's/\([,]\)\s*/\1\n/g' -e  's/[{}]/\n/g' -e 's/[",]//g'|grep StartTime|awk -F: '{print $2}'
#在zabbix agent配置文件进行部署
cat  zabbix_flume_jdk.conf
UserParameter=ygc.counts,sudo  /usr/local/jdk1.7.0_21/bin/jstat -gcutil $(pgrep java|head -1)|tail -1|awk  '{print $6}'
UserParameter=fgc.counts,sudo  /usr/local/jdk1.7.0_21/bin/jstat -gcutil $(pgrep java|head -1)|tail -1|awk  '{print $8}'
UserParameter=jvm.memory.usage,sudo  /usr/local/jdk1.7.0_21/bin/jmap -histo $(pgrep java|head -1)|grep Total|awk  '{print $3}'
UserParameter=jvm.instances.usage,sudo  /usr/local/jdk1.7.0_21/bin/jmap -histo $(pgrep java|head -1)|grep Total|awk '{print  $2}'
UserParameter=flume.monitor[*],/bin/bash  /opt/monitor_flume.sh $1

转载于:https://www.cnblogs.com/sunxucool/p/3906525.html

你可能感兴趣的文章
5.11题解 导弹拦截
查看>>
论三星输入法的好坏
查看>>
Linux 终端连接工具 XShell v6.0.01 企业便携版
查看>>
数据库体系
查看>>
JS写一个简单日历
查看>>
LCA的两种求法
查看>>
Python排序算法(四)——插入排序
查看>>
oo第三单元博客作业
查看>>
Jquery---定时器(实现页面内定时弹出广告,定时退出)
查看>>
day11-闭包函数和装饰器
查看>>
VSCode常用快捷键与流行插件
查看>>
从程序员到项目经理(14):项目经理必须懂一点“章法”【转载】
查看>>
JDBC批量插入优化addbatch
查看>>
复现一篇深度强化学习论文之前请先看了这篇文章!
查看>>
git 命令使用常见问题
查看>>
android加固系列—6.仿爱加密等第三方加固平台之动态加载dex防止apk被反编译
查看>>
decltype
查看>>
抽象类
查看>>
C++面向对象基础知识
查看>>
PY----Python
查看>>