Logstash版本:7.6.2
Elasticsearch版本:7.6.2? ?# ELK版本保持一致
Postgresql版本:12.1
系統(tǒng)版本:centos7
ELK不要以root用戶啟動,最好單獨(dú)建立對應(yīng)的用戶,給該用戶授權(quán)進(jìn)行登錄泊愧。
1.在logstash安裝目錄的bin目錄中? 創(chuàng)建存放conf文件伊磺、sql文件、es模板以及pg庫連接jar包
mkdir pgsql
下面就是各文件的詳細(xì)配置
1.logstash-pgsql.conf配置文件
input {
? ? stdin {
? ? }
? ? jdbc {
#pg庫的連接地址
? ? ? jdbc_connection_string => "jdbc:postgresql://192.168.0.17:5432/order_goods"
#pg庫的賬號密碼
? ? ? jdbc_user => "postgres"
? ? ? jdbc_password => "123456"
#地址根據(jù)自身填寫
? ? ? jdbc_driver_library => "/home/logstash-7.6.2/bin/pgsql/postgresql-42.2.19.jar"
? ? ? jdbc_driver_class => "org.postgresql.Driver"
? ? ? jdbc_paging_enabled => "true"
? ? ? jdbc_page_size => "300000"
? ? ? use_column_value => "true"
#根據(jù)update_time字段更新
? tracking_column => "update_time"
#字段類型
? tracking_column_type => "timestamp"
? last_run_metadata_path => "./logstash_capital_bill_last_id"
? clean_run => false
? ?lowercase_column_names => false
? ?statement_filepath => "/home/logstash-7.6.2/bin/pgsql/logstash-pgsql.sql"
? ?schedule => "* * * * *"
? ?type => "jdbc"
? ?jdbc_default_timezone =>"Asia/Shanghai"
? ? }
}
filter {
? ? json {
? ? ? ? source => "message"
? ? ? ? remove_field => ["message"]
? ? }
}
output {
? ? elasticsearch {
#es對應(yīng)的地址
? ? ? ? hosts => ["http://192.168.0.17:9200"]
#索引名稱
? ? ? ? index => "user_order"
#模板地址
? ? ? ? template => "/home/logstash-7.6.2/bin/pgsql/es-template.json"
? ? ? ? template_name => "t-statistic-out-logstash"
? ? ? ? template_overwrite => true
? ? ? ? document_id => "%{id}"
? ? }
? ? stdout {
? ? ? ? codec => json_lines
? ? }
}
1.2.logstash-pgsql.sql
select id, user_id,payment,remark,update_time from order_goods
1.3.es-template.json
{
? ? "template" : "t-statistis-out-template",
? ? "order":1,
? ? "settings": {
? ? ? ? ? ? "index": {
? ? ? ? ? ? ? ? "refresh_interval": "5s"
? ? ? ? ? ? }
? ? },
? ? "mappings": {
? ? ? ? ? ? "_default_": {
? ? ? ? ? ? "_all" : {"enabled":false},
? ? ? ? ? ? "dynamic_templates": [{
? ? ? ? ? ? ? ????"message_field" : {
? ? ? ? ? ? ? ? ????"match" : "message",
? ? ? ? ? ? ? ? ????"match_mapping_type" : "string",
? ? ? ? ? ? ? ? ????"mapping" : { "type" : "string", "index" : "not_analyzed" }
? ? ? ? ? ? ? }
? ? ? ? ? ? },{
? ? ? ? ? ? ? "string_fields" : {
? ? ? ? ? ? ? ? "match" : "*",
? ? ? ? ? ? ? ? "match_mapping_type" : "string",
? ? ? ? ? ? ? ? "mapping" : { "type" : "string", "index" : "not_analyzed" }
? ? ? ? ? ? ? }
? ? ? ? ? ? }],
? ? ? ? ? ? ? ? "properties": {
????????????????????????"id":{
????????????????????????????"type":"integer"
????????????????????????},
? ? ? ? ? ? ? ? ? ? ????"user_id":{
????????????????????????????"type":"integer"
????????????????????????},
????????????????????????"payment":{
????????????????????????????"type":"double"
????????????????????????},
????????????????????????"remark":{
????????????????????????????"type":"keyword"
????????????????????????}
? ? ? ? ? ? ? ? }
? ? ? ? ? ? }
? ? },
? ? "aliases": {}
}
1.4.jar包下載地址删咱,根據(jù)自己的版本在網(wǎng)上查對應(yīng)的jar包
2.1啟動logstash
在logstash的bin目錄輸入
./logstash -f pgsql/logstash-pgsql.conf
覺得有用的話屑埋,不點(diǎn)個(gè)贊嗎? 都是干貨疤底獭U堋P隆!