flume开启jmx加入grafana

芒果2年前技术文章1179

部署flume_exporter
需要go环境编译
配置go环境
首先下载go安装包Linux:
https://golang.google.cn/dl/

解压、添加环境变量
tar -zxvf go*.tar.gz
添加环境变量
vi /etc/profile
#在最后一行添加
export GOROOT=/你解压的路径/go
export PATH=$PATH:$GOROOT/bin
source环境变量查看go版本
source /etc/profile
go version

Flume_exporter下载地址:
https://github.com/woozhijun/flume_exporter/tags

上传 到 /opt/dtstack/exporters
解压 flume_exporter-0.0.2.tar.gz
# 解压
tar -xvf flume_exporter-0.0.2.tar.gz -C /opt/dtstack/exporters/
# 进入文件目录
cd /opt/dtstack/exporters/flume_exporter-0.0.2
编译flume_exporter-0.0.2
flume_exporter是需要编译的 执行编译命令
cd /opt/dtstack/exporters/flume_exporter-0.0.2
go install
把结果中含有go get “github.com…."的都复制下来,用&&连接多个下载命令

如果下载过程中出现网络错误,go添加国内镜像源
go env -w GO111MODULE=on
go env -w GOPROXY=https://goproxy.cn,direct
下载logrus:
go get github.com/Sirupsen/logrus
下载余下依赖:
go get github.com/prometheus/client_golang/prometheus &&go get github.com/prometheus/client_golang/prometheus/promhttp && go get github.com/prometheus/common/version && go get github.com/woozhijun/flume_exporter/exporter && go get gopkg.in/alecthomas/kingpin.v2
指定编译目录,执行安装:
[root@hd flume_exporter-0.0.2]# export GOPATH=/opt/flume_exporter-0.0.2
[root@hd flume_exporter-0.0.2]# go install

查看生成的文件,统一管理
[root@hd flume_exporter-0.0.2]# mkdir ../flume_exporter
[root@hd flume_exporter-0.0.2]# cp bin/flume_exporter-0.0.2 ../flume_exporter
[root@hd flume_exporter-0.0.2]# cp *.yml ../flume_exporter
[root@hd flume_exporter-0.0.2]# cd ../flume_exporter

注意:
可监控多个flume,但也需在prometheus增加对应的配置参数—config.yml

启动flume_exporter:
nohup /opt/flume_exporter/flume_exporter-0.0.2 --config-file=/opt/flume_exporter/config.yml --metric-file=/opt/flume_exporter/metrics.yml >/opt/flume_exporter/flumexport.log 2>&1 &
启动flume:
nohup /opt/flume/bin/flume-ng agent -c conf -f /opt/flume/conf/flume_hdfs.conf -n a1  -Dflume.root.logger=INFO,console -Dflume.monitoring.type=http -Dflume.monitoring.port=36001 -Dflume.root.logger=INFO,console -javaagent:/opt/dtstack/prometheus_conf/jmx_prometheus_javaagent-0.3.1.jar=9666:/opt/prometheus/flume.yml &
ps
如果需要用flume-ng的jmx后面再加入 -javaagent:/opt/dtstack/prometheus_conf/jmx_prometheus_javaagent-0.3.1.jar=9666:/opt/prometheus/flume.yml
vim /opt/prometheus/flume.yml
startDelaySeconds: 0
hostPort: localhost:36001
ssl: false
lowercaseOutputName: false
lowercaseOutputLabelNames: false
promethues配置flume_exporter
prometheus.yml 添加配置信息:
  - job_name: ‘flume-agent'
    static_configs:
      - targets:
        - hd1:9360
    metrics_path: /metrics
  - job_name: ‘flume-ng'
    static_configs:
      - targets:
        - hd1:9666
    metrics_path: /metrics
flume_exporter配置服务方式启动
vim /etc/systemd/system/flume_exporter.service
[Unit]
Description=flume_exporter service
After=network.target
Wants=network.target
[Service]
Type=simple
User=root
Group=root
ExecStart=/opt/flume_exporter/flume_exporter-0.0.2 --config-file=/opt/flume_exporter/config.yml --metric-file=/opt/flume_exporter/metrics.yml
Restart=on-failure
[Install]
WantedBy=multi-user.target
启动flume_exporter
# 重新加载服务的配置文件
systemctl daemon-reload
# 设置开机自启
systemctl enable flume_exporter
# 启动服务
systemctl start flume_exporter
添加模板 
导入Grafana Dashboard Flume Exporter Metrics Overview For Prometheus
进入Grafana查看 查看flume监控

参数定义:
字段名称    含义
SOURCE.OpenConnectionCount    打开的连接数
SOURCE.TYPE    组件类型
SOURCE.AppendBatchAcceptedCount    追加到channel中的批数量
SOURCE.AppendBatchAcceptedCount    source端刚刚追加的批数量
SOURCE.EventAcceptedCount    成功放入channel的event数量
SOURCE.AppendReceivedCount    source追加目前收到的数量
SOURCE.StartTime(StopTIme)    组件开始时间、结束时间
SOURCE.EventReceivedCount    source端成功收到的event数量
SOURCE.AppendAcceptedCount    source追加目前放入channel的数量
CHANNEL.EventPutSuccessCount    成功放入channel的event数量
CHANNEL.ChannelFillPercentage    通道使用比例
CHANNEL.EventPutAttemptCount    尝试放入将event放入channel的次数
CHANNEL.ChannelSize    目前在channel中的event数量
CHANNEL.EventTakeSuccessCount    从channel中成功取走的event数量
CHANNEL.ChannelCapacity    通道容量
CHANNEL.EventTakeAttemptCount    尝试从channel中取走event的次数
SINK.BatchCompleteCount    完成的批数量
SINK.ConnectionFailedCount    连接失败数
SINK.EventDrainAttemptCount    尝试提交的event数量
SINK.ConnectionCreatedCount    创建连接数
SINK.Type    组件类型
SINK.BatchEmptyCount            
SINK.ConnectionClosedCount    关闭连接数量
SINK.EventDrainSuccessCount    成功发送event的数量
SINK.BatchUnderflowCount    正处于批量处理的batch数


相关文章

centos6下时间修改

1、手动修改1)使用date命令修改的时间是系统时间临时生效的,重启系统后失效,需要将当前时间和硬件时间同步后才可以持久生效。date -s "2012-05-23 01:01:01&quo...

MySQL运维实战之元数据和数据字典

什么是元数据假设我们执行一个简单的SQL:select * from tab where col = 'value'...

MongoDB的MMAPv1存储引擎

 在MongoDB 3.0之前,默认存储引擎为MMAPv1。从MongoDB 4.0开始,MMAPv1存储引擎开始被遗弃。MMAPv1是基于内存映射文件的原始存储引擎。一、journal1、将数据写入...

CDH实操--集群关闭Kerberos

CDH实操--集群关闭Kerberos

1、关掉整个集群2、zookeeper配置搜索kerberos,将enable Kerberos配置关掉3、hdfs配置在输入框中填入[hadoop.security.auth] 进行搜索将安全身份认...

Linux 文件锁

1、背景Linux 系统定时任务正在执行时,可能会遇到上个周期的任务还没有执行完,这样便会造成相同的任务同一时间有过个任务进程在执行。如果任务有对互斥资源操作时,有可能产生死锁。2、用法参考flock...

企业级大数据安全架构(八)

企业级大数据安全架构(八)

前面第七章详细介绍了部署FreeIPA来做kerberos认证,这节接着介绍FreeIPA高可用部署1.FreeIPA高可用配置说明:在安装完一台ipa-server之后,在另一个备份节点部署ipa-...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。