记录一份logstash.conf配置文件内容

下载及运行elk步骤略过, 本次使用版本均为7.3.2

# Sample Logstash configuration for creating a simple
# Beats -> Logstash -> Elasticsearch pipeline.

input {
	jdbc{
        #jdbc sql server 驱动,各个数据库都有对应的驱动,需自己下载
        jdbc_driver_library => "D:\develop\tool\mavenjar\mysql\mysql-connector-java\8.0.11\mysql-connector-java-8.0.11.jar"
        #jdbc class 不同数据库有不同的 class 配置
		jdbc_driver_class => "com.mysql.jdbc.Driver"
        #配置数据库连接 ip 和端口,以及数据库
        jdbc_connection_string => "jdbc:mysql://localhost:3306/mydb?useTimezone=true&serverTimezone=UTC"
        **#特别注意serverTimezone=UTC , 不指定或者指定错误会导致时间不对**
        #配置数据库用户名
        jdbc_user =>"dbusername"
        #配置数据库密码
        jdbc_password =>"dbpass"
        #上面这些都不重要,要是这些都看不懂的话,你的老板估计要考虑换人了。重要的是接下来的内容。
        # 定时器 多久执行一次SQL,默认是一分钟
        # schedule => 分 时 天 月 年
        # schedule => * 22  *  *  * 表示每天22点执行一次
        schedule => "* * * * *"
        #是否清除 last_run_metadata_path 的记录,如果为真那么每次都相当于从头开始查询所有的数据库记录
        clean_run => false
        #是否需要记录某个column 的值,如果 record_last_run 为真,可以自定义我们需要表的字段名称,
        #此时该参数就要为 true. 否则默认 track 的是 timestamp 的值.
        use_column_value => true
        #如果 use_column_value 为真,需配置此参数. 这个参数就是数据库给出的一个字段名称。当然该字段必须是递增的,可以是 数据库的数据时间这类的
        tracking_column => "updateTime"
		tracking_column_type => "timestamp"
        #是否记录上次执行结果, 如果为真,将会把上次执行到的 tracking_column 字段的值记录下来,保存到 last_run_metadata_path 指定的文件中
        record_last_run => true
        #们只需要在 SQL 语句中 WHERE MY_ID > :sql_last_value 即可. 其中 :sql_last_value 取得就是该文件中的值
        last_run_metadata_path => "D:\develop\tool\logstash-7.3.2\run_metadata.d\my_info"
        #是否将字段名称转小写。
        #这里有个小的提示,如果你这前就处理过一次数据,并且在Kibana中有对应的搜索需求的话,还是改为true,
        #因为默认是true,并且Kibana是大小写区分的。准确的说应该是ES大小写区分
        lowercase_column_names => false
        #你的SQL的位置,当然,你的SQL也可以直接写在这里。
        #statement => "SELECT p.id,p.title,p.file_num fileNum,p.create_time createTime,p.content FROM cms_policy_original p where update_time >:sql_last_value limit 3;"
        statement_filepath => "D:\develop\tool\logstash-7.3.2\statement_file.d\my_info.sql"
        #数据类型,标明你属于那一方势力。单了ES哪里好给你安排不同的山头。
        type => "my_info"
    }
        #注意:外载的SQL文件就是一个文本文件就可以了,还有需要注意的是,一个jdbc{}插件就只能处理一个SQL语句,
        #如果你有多个SQL需要处理的话,只能在重新建立一个jdbc{}插件。
}

output {
  elasticsearch {
    hosts => ["http://localhost:9200"]
	index => "mysql-policy"
	document_id => "%{id}"
  }
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Logstash配置文件可以放在任何你喜欢的位置,只要在启动时指定配置文件路径即可。一般来说,建议将配置文件放在项目的根目录下,文件名为 `logstash.conf`。 完整的配置文件内容如下: ``` input { tcp { port => 4560 codec => json_lines } } filter { json { source => "message" } grok { match => { "message" => "%{TIMESTAMP_ISO8601:logtime} \[%{DATA:thread}\] %{LOGLEVEL:level} %{DATA:class} - %{GREEDYDATA:logmsg}" } } mutate { add_field => { "timestamp" => "%{logtime}" "thread" => "%{thread}" "level" => "%{level}" "class" => "%{class}" "message" => "%{logmsg}" } } } output { jdbc { jdbc_connection_string => "jdbc:mysql://localhost:3306/dbname?useUnicode=true&characterEncoding=utf-8&autoReconnect=true&failOverReadOnly=false&zeroDateTimeBehavior=convertToNull&useSSL=false" jdbc_user => "username" jdbc_password => "password" jdbc_driver_library => "/path/to/mysql-connector-java-5.1.31.jar" jdbc_driver_class => "com.mysql.jdbc.Driver" statement => "INSERT INTO log_table(timestamp,thread,level,class,message) VALUES(?,?,?,?,?)" use_prepared_statements => true flush_size => 100 max_flush_exceptions => 5 } } ``` 其中,`input` 部分配置了监听的 TCP 端口和编码方式;`filter` 部分使用 `json` 插件解析消息,然后使用 `grok` 插件解析出日志信息的时间、线程、日志级别、类名和日志内容,并使用 `mutate` 插件添加新的字段;`output` 部分将解析后的字段写入 MySQL 数据库。需要根据实际情况修改数据库连接信息和日志表结构。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值