1.架构流程
telegraf 收集数据
kafka 消息队列
java 消费程序
clickhousen 存放数据
grafana 展示数据
2.telegraf
介绍
Telegraf 是收集和报告指标和数据的代理。
Telegraf是TICK Stack的一部分,是一个插件驱动的服务器代理,用于收集和报告指标。
Telegraf 集成了直接从其运行的容器和系统中提取各种指标,事件和日志,从第三方API提取指标,甚至通过StatsD和Kafka消费者服务监听指标。
telegraf安装
wget https://dl.influxdata.com/telegraf/releases/telegraf-1.10.0-1.x86_64.rpm
sudo yum localinstall telegraf-1.10.0-1.x86_64.rpm
nohup ./telegraf --config telegraf.conf --input-filter cpu:mem --output-filter postgresql &
telegraf --config telegraf.conf --input-filter cpu:mem --output-filter kafka --test
公司编译好了一个包和已经配置好了一个配置文件,上面的操作不用做
------------------------------------------------
telegraf包和配置
给telegraf 添加执行权限
chmod +x telegraf
./telegraf --config telegraf.conf --input-filter cpu:disk:diskio:mem --output-filter kafka
配置文件生成
例如,生成带 cpu、memroy、disk、diskio、net 和 influxdb 插件的配置文件 telegraf.conf,指定输出到 influxdb 和 opentsdb
telegraf --input-filter cpu:mem --output-filter kafka config > telegraf.d/telegraf.conf
也可使用默认的配置文件
telegraf --input-filter cpu:mem:http_listener --output-filter influxdb config
telegraf 支持读取多个配置文件,可将多个配置文件放置在 /etc/telegraf/telegraf.d 目录下
查看 telegraf 的日志
/var/log/telegraf/telegraf.log
telegraf.conf配置文件修改
[outputs.kafka]]
brokers = [“10.23.32.22:9092”] #kafka集群地址,多个实例以逗号隔开
topic = “telegraf-prd”#kafka的topic设置
routing_tag = “host” #是否路由tags,同一host写入到同一分片中
compression_codec = 1#数据传输是否压缩
required_acks = 1 #数据同步是否确认,0为否,1为leader确认,-1为全部同步确认
max_retry = 3#数据写入尝试次数
data_format = “json”#数据发送格式
c.input设置:
主要设置采集器的各项插件采集配置
服务器基础监控采用标准的telegraf.conf统一标准,软件项目的配置,新建conf文件放在/etc/telegraf/telegraf.d/文件夹中,重启生效
3.kafka
介绍
Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者规模的网站中的所有动作流数据。 这种动作(网页浏览,搜索和其他用户的行动)是在现代网络上的许多社会功能的一个关键因素。 这些数据通常是由于吞吐量的要求而通过处理日志和日志聚合来解决。
安装
wget http://mirrors.tuna.tsinghua.edu.cn/apache/kafka/2.1.0/kafka_2.11-2.1.0.tgz
> tar -xzf kafka_2.11-2.1.0.tgz
> cd kafka_2.11-2.1.0
nohup bin/zookeeper-server-start.sh config/zookeeper.properties &
nohup bin/kafka-server-start.sh config/server.properties &
创建topic
bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic telegraf
bin/kafka-topics.sh --list --zookeeper localhost:2181
bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic telegraf --from-beginning
删除kafka存储目录(server.properties文件log.dirs配置,默认为"/tmp/kafka-logs")相关topic目录
bin/kafka-console-producer.sh --broker-list localhost:9092 --topic telegraf
配置(多台主机监控时,在多台安装telegraf,连接同一个kafka)
在该文件
/data/embrace/kafka_2.11-2.1.0/config/server.properties
的
Socket Server Settings 部分 添加下面一行
advertised.host.name=198.218.188.10
4.grafana
Grafana是一个跨平台的开源的度量分析和可视化工具,可以通过将采集的数据查询然后可视化的展示,并及时通知。它主要有以下六大特点:
1、展示方式:快速灵活的客户端图表,面板插件有许多不同方式的可视化指标和日志,官方库中具有丰富的仪表盘插件,比如热图、折线图、图表等多种展示方式;
2、数据源:Graphite,InfluxDB,OpenTSDB,Prometheus,Elasticsearch,CloudWatch和KairosDB等;
安装
wget https://dl.grafana.com/oss/release/grafana-6.0.1-1.x86_64.rpm
sudo yum localinstall grafana-6.0.1-1.x86_64.rpm
grafana-cli plugins install vertamedia-clickhouse-datasource
centos sudo service grafana-server start
systemctl start grafana-server