Skip to end of metadata
Go to start of metadata

新版本Zabbix server 4.0 支持把性能数据实时输出到文本文件,我们只要结合一些文件采集工具就可以轻松把Zabbix产生的数据和其他平台对接起来。下面介绍一下如何通过filebeat把Zabbix实时的性能数据推送kafka消息队列中。

01. Kafka安装

a.Java环境检查

在开始安装之前检查一下系统的java环境,保证版本还是JDK1.8以上:

b.下载kafka 安装包

wget http://mirror.bit.edu.cn/apache/kafka/2.1.0/kafka_2.12-2.1.0.tgz

c.解压

tar xvf kafka_2.12-2.1.0.tgz

d.配置kafka监听的地址

vim kafka_2.12-2.1.0/config/server.properties

增加以下配置:

listeners=PLAINTEXT://服务器IP:9092

e.启动zookeeper

cd kafka_2.12-2.1.0/bin/
./zookeeper-server-start.sh-daemon ../config/zookeeper.properties

f. 启动kafka

cd kafka_2.12-2.1.0/bin/
./kafka-server-start.sh-daemon ../config/server.properties

g.新建一个Zabbix性能数据专用的topic

./kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic Zabbix

注意:上面介绍安装kafka是单节点的方式,更详细配置请参考Kafka官方文档

02. 修改Zabbix server配置文件

修改Zabbix server配置文件,开启实时生成文本数据的功能。

vim /etc/Zabbix_server.conf

加入以下配置:

重启Zabbix server

systemctl restart Zabbix_server

参数说明:

ExportDir:以换行符分隔的JSON格式实时导出事件, 历史数据和趋势数据到这个目录。如果设置,则启用实时导出数据到这个目录。

ExportFileSize:每个导出文件的最大限制,单位为字节。仅当ExportDir参数设置后才使用。

03. 配置filebeat

a.下载 filebeat

wget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-6.4.2-linux-x86_64.tar.gz

b.解压filebeat

tar xvf filebeat-6.4.2-linux-x86_64.tar.gz

c.编辑filebeat配置文件

vim Zabbix.yml

加入以下配置:

filebeat.prospectors:
- input_type: log
  paths:
    - /data/*.ndjson

 output.kafka:
  enabled: true
  hosts: ["Kafka的IP:9092"]
  topic: 'Zabbix'

d.启动filebeat

./filebeat -c Zabbix.yml

04. 查看Kafka的数据

命令行启动一个消费者,看下推送过去的数据。

./kafka_2.12-2.1.0/bin/kafka-console-consumer.sh --bootstrap-server Kafka的IP:9092 --topic Zabbix

可以Kafka看到这样的数据:

我们把数据送到Kafka之后,就可以在此基础实现很多功能。例如对接流计算工具(storm,spark)对数据进行实时处理,或者通过logstash把数据解析送到elasticsearch集群中获取更高性能查询,或者通过flume把数据送到hadoop用于数据计算分析等等。