logstash-input-jdbc配置說明

來源:互聯網
上載者:User

標籤:眼睛   nec   beat   statement   分類   密碼   表示   weight   rom   

Logstash由三個組件構造成,分別是input、filter以及output。我們可以吧Logstash三個組件的工作流程理解為:input收集資料,filter處理資料,output輸出資料。至於怎麼收集、去哪收集、怎麼處理、處理什麼、怎麼發生以及發送到哪等等一些列的問題就是我們接下啦要討論的一個重點。
我們今天先討論input組件的功能和基本外掛程式。前面我們意見介紹過了,input組件是Logstash的眼睛和鼻子,負責收集資料的,那麼們就不得不思考兩個問題,第一個問題要清楚的就是,中繼資料在哪,當然,這就包含了中繼資料是什麼類型,屬於什麼業務;第二個問題要清楚怎麼去拿到中繼資料。只要搞明白了這兩個問題,那麼Logstash的input組件就算是弄明白了。
對於第一個問題,中繼資料的類型有很多,比如說你的中繼資料可以是日誌、報表、可以是資料庫的內容等等。中繼資料是什麼樣子的我們不需要關心,我們要關係的是中繼資料是什麼類型的,只要你知道中繼資料是什麼類型的,你才能給他分類,或者說給他一個type,這很重要,type對於你後面的工作處理是非常有協助的。所以第一個問題的重心中繼資料在嗎,是什麼,現在已經是清楚了。那麼進行第二個問題。
第二個問題的核心是怎麼拿到這些不同類型的原資料?這是一個真箇input組件的核心內容了,我們分門別類的來看待這和解決個問題。
首先,我們肯定需要認同的,什麼樣的資料來源,就需要使用什麼樣的方式去擷取資料。
我們列舉幾種:
1、檔案類型:檔案類型,顧名思義,檔案資料來源,我們可以使用input組件的file外掛程式來擷取資料。file{}外掛程式有很多的屬性參數,我們可以張開講解一下。具體內容在下面的代碼中展示:

input{    file{        #path屬性接受的參數是一個數組,其含義是標明需要讀取的檔案位置        path => [‘pathA’,‘pathB’]        #表示多就去path路徑下查看是夠有新的檔案產生。預設是15秒檢查一次。        discover_interval => 15        #排除那些檔案,也就是不去讀取那些檔案        exclude => [‘fileName1’,‘fileNmae2’]        #被監聽的檔案多久沒更新後中斷連線不在監聽,預設是一個小時。        close_older => 3600        #在每次檢查檔案列 表的時候, 如果一個檔案的最後 修改時間 超過這個值, 就忽略這個檔案。 預設一天。        ignore_older => 86400        #logstash 每隔多 久檢查一次被監聽檔案狀態( 是否有更新) , 預設是 1 秒。        stat_interval => 1        #sincedb記錄資料上一次的讀取位置的一個index        sincedb_path => ’$HOME/. sincedb‘        #logstash 從什麼 位置開始讀取檔案資料, 預設是結束位置 也可以設定為:beginning 從頭開始        start_position => ‘beginning’        #注意:這裡需要提醒大家的是,如果你需要每次都從同開始讀取檔案的話,關設定start_position => beginning是沒有用的,你可以選擇sincedb_path 定義為 /dev/null    }           }

 

2、資料庫類型:資料庫類型的資料來源,就意味著我們需要去和資料庫打交道了是嗎?是的!那是必須的啊,不然怎麼擷取資料呢。input組件如何擷取資料庫類的資料呢?沒錯,下面即將隆重登場的是input組件的JDBC外掛程式jdbc{}。同樣的,jdbc{}有很多的屬性,我們在下面的代碼中作出說明;

input{    jdbc{    #jdbc sql server 驅動,各個資料庫都有對應的驅動,需自己下載    jdbc_driver_library => "/etc/logstash/driver.d/sqljdbc_2.0/enu/sqljdbc4.jar"    #jdbc class 不同資料庫有不同的 class 配置    jdbc_driver_class => "com.microsoft.sqlserver.jdbc.SQLServerDriver"    #設定資料庫串連 ip 和連接埠,以及資料庫       jdbc_connection_string => "jdbc:sqlserver://200.200.0.18:1433;databaseName=test_db"    #設定資料庫使用者名稱    jdbc_user =>       #設定資料庫密碼    jdbc_password =>    #上面這些都不重要,要是這些都看不懂的話,你的老闆估計要考慮換人了。重要的是接下來的內容。    # 定時器 多久執行一次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 => create_time    #是否記錄上次執行結果, 如果為真,將會把上次執行到的 tracking_column 欄位的值記錄下來,儲存到 last_run_metadata_path 指定的檔案中    record_last_run => true    #們只需要在 SQL 陳述式中 WHERE MY_ID > :last_sql_value 即可. 其中 :last_sql_value 取得就是該檔案中的值    last_run_metadata_path => "/etc/logstash/run_metadata.d/my_info"    #是否將欄位名稱轉小寫。    #這裡有個小的提示,如果你這前就處理過一次資料,並且在Kibana中有對應的搜尋需求的話,還是改為true,    #因為預設是true,並且Kibana是大小寫區分的。準確的說應該是ES大小寫區分    lowercase_column_names => false    #你的SQL的位置,當然,你的SQL也可以直接寫在這裡。    #statement => SELECT * FROM tabeName t WHERE  t.creat_time > :last_sql_value    statement_filepath => "/etc/logstash/statement_file.d/my_info.sql"    #資料類型,標明你屬於那一方勢力。單了ES哪裡好給你安排不同的山頭。    type => "my_info"    }    #注意:外載的SQL檔案就是一個文字檔就可以了,還有需要注意的是,一個jdbc{}外掛程式就只能處理一個SQL語句,    #如果你有多個SQL需要處理的話,只能在重建立立一個jdbc{}外掛程式。}

 

好了,廢話不多說了,接著第三種情況:

input {  beats {    #接受資料連接埠    port => 5044    #資料類型    type => "logs"  }  #這個外掛程式需要和filebeat進行配很這裡不做多講,到時候結合起來一起介紹。}

 

現在我們基本清楚的知道了input組件需要做的事情和如何去做,當然他還有很多的外掛程式可以進行資料的收集,比如說TCP這類的,還有可以對資料進行encode,這些感興趣的朋友可以自己去查看,我說的只是我自己使用的。一般情況下我說的三種外掛程式已經足夠了。
今天的ELK種的Logstash的input組件就到這。後面還會講述Logstash的另外另個組件filter和output。

 

轉載自:https://yq.aliyun.com/articles/152043

logstash的output,查看https://yq.aliyun.com/articles/197785?spm=5176.8091938.0.0.pg7WLz

 

logstash-input-jdbc配置說明

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.