前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Logstash-input-jdbc 同步 mysql 准实时数据至 ElasticSearch 搜索引擎

Logstash-input-jdbc 同步 mysql 准实时数据至 ElasticSearch 搜索引擎

作者头像
Kevin song
发布2020-08-28 09:49:10
2.6K0
发布2020-08-28 09:49:10
举报
文章被收录于专栏:运维监控日志分析

logstash-input-jdbc 插件将 Zabbix 数据库中 alerts 表告警数据推送至 ElasticSearch 搜索引擎。

Zabbix 数据库

alerts 表结构

alerts 表数据条目数

logstash-input-jdbc 插件

安装 logstash-input-jdbc 插件

代码语言:javascript
复制
/usr/share/logstash/bin/logstash-plugin  install logstash-input-jdbc

查看 logstash 插件列表

代码语言:javascript
复制
/usr/share/logstash/bin/logstash-plugin  list

升级 logstash-input-jdbc 插件

代码语言:javascript
复制
/usr/share/logstash/bin/logstash-plugin  update  logstash-input-jdbc

mysql-connector-java 驱动程序

mysql-connector-java 下载地址

https://dev.mysql.com/downloads/connector/j/

安装 mysql-connector-java 驱动

代码语言:javascript
复制
rpm -ivh mysql-connector-java-8.0.21-1.el7.noarch.rpm

拷贝 mysql-connector-java.jar

代码语言:javascript
复制
cp  /usr/share/java/mysql-connector-java.jar /usr/share/logstash/logstash-core/lib/jars/

logstash 配置

代码语言:javascript
复制
cat  /etc/logstash/conf.d/odbc.conf 
input {
  jdbc {
    jdbc_connection_string => "jdbc:mysql://192.168.99.51:3306/zabbix"
    jdbc_default_timezone => "Asia/Shanghai"
    jdbc_user => "zabbix"
    jdbc_password => "******"
    schedule => "* * * * *"
    jdbc_driver_library => "/usr/share/java/mysql-connector-java.jar"
    jdbc_driver_class => "com.mysql.cj.jdbc.Driver"
    jdbc_paging_enabled => "true"
    jdbc_page_size => "50000"
    use_column_value => false
    tracking_column => "clock"
    statement => "select * from alerts  where from_unixtime(clock) > :sql_last_value"
    tracking_column_type => "timestamp"
    type => "zabbix_alters"
  }
}

filter {
  json {
    source => "message"
  }
}

output {
  stdout {
    codec => json
  }
if [type] == 'zabbix_alters' {
  elasticsearch { 
    index => "zabbix_alters-%{+YYYY.MM.dd}"
    hosts => ["192.168.99.185:9200"]
    document_id => "%{alertid}"
    user => "elastic"
    password => "*******"    
   }
 }
}

odbc.conf 参数介绍

jdbc_connection_string : mysql 数据库地址

jdbc_default_timezone : 设定时区

jdbc_user :数据库用户名

jdbc_password :数据库密码

schedule :执行SQL任务,类似crontab

jdbc_driver_library :jdbc mysql-connector-java 驱动路径

jdbc_driver_class :驱动类名称

jdbc_paging_enabled => "true" :数据分页

jdbc_page_size => "50000" : 数据条目

use_column_value:是否使用字段的值

tracking_column :监控字段用于区分增加数据

statement :SQL执行查询语句

tracking_column_type :区分的字段类型

type :类型 判断output es 写入标识

运行 logstash odbc.conf

代码语言:javascript
复制
/usr/share/logstash/bin/logstash -f odbc.conf

Kibana

Zabbix 告警数据写入数据库 alerts 表后 ,logstash-input-jdbc 插件通过执行 SQL 语句将数据同步到 elasticsearch ,同时使用递增字段做条件查询,记录字段当前的查询位置进行数据增量同步,由于 SQL 任务1分钟执行一次到 elasticsearch 存储 kibana 展示的 数据存在1分钟左右的延迟。

JSON 数据

查看索引数据

代码语言:javascript
复制
GET /zabbix_alters-2020.08.21/_search
{
  "query": {
    "match_all": {}
  }
}

logstash-input-jdbc 插件官方文档

https://www.elastic.co/guide/en/logstash/current/plugins-inputs-jdbc.html

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-08-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 开源搬运工宋师傅 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档