<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                [TOC] # 運行參數 ![](https://box.kancloud.cn/f39ef9a6a9b68cd595117f6f58fed16c_803x462.png) # 配置語法 * 處理輸入的input * 處理過濾的filter * 處理輸出的output 完整的配置語句 ![](https://box.kancloud.cn/e3b52c0f2e9f803890ea26d5bd48ffda_795x525.png) **語法格式** * 區域 * 數據類型(布爾值,字符串,數值,數組,哈希) * 條件判斷 * 字段引用 **區域** * logstash中,是用{}來定義區域的 * 區域內,我們可以定義插件 * 一個區域內是定義多個插件 **數據類型** ![](https://box.kancloud.cn/4bd1d86ac9417d14130f931c7e4ab9e5_620x436.png) **條件判斷** ![](https://box.kancloud.cn/e6468da94ce98230c51bb73791921291_757x98.png) ![](https://box.kancloud.cn/94dd5483c61ab413e7d3acc2608c2d82_514x164.png) **字段引用** logstash還支持變量內插,在字符串里使用字段引用的方法是這樣的 ![](https://box.kancloud.cn/ba5abd59c1755dc198e9ffc00fa81934_517x150.png) # logstash插件 * inputs 就是輸入 * codecs就是解碼 * filters就是過濾 * outputs輸出 插件獲取地址 https://github.com/logstash-plugins 在線安裝 `./plugin install logstash-input-jdbc` 升級插件 `./plugin update logstash-input-jdbc` 卸載插件 `./plugin uninstall logstash-input-jdbc` 淘寶源地址 https://ruby.taobao.org 替換源: 安裝gem包,`yum install -y gem` 然后`gem sources --remove http://ruby.taobao.org/` 最好運行下`gem sources -l` 看下源地址 先切換下源在安裝插件 列出插件列表 ~~~ ./plugin list ~~~ # inputs輸入配置 * Stdin標準輸入 * File文件輸入 * TCP/UDP輸入 * Rsyslog輸入 ## File文件輸入 ![](https://box.kancloud.cn/2ed115fc624af0fa2670c21fbef1eb9f_1144x435.png) 路徑要寫絕對路徑,不要寫相對路徑 例子,讀取elasticsearch.log ![](https://box.kancloud.cn/a8b439b56cc3b4f2969d9421ffd59fa0_723x390.png) 可以讀取多個日志用`*`做通配符 ![](https://box.kancloud.cn/5f04f6d836eb933f90ea3b1cdc2083c6_789x382.png) 也可以定義多個file ![](https://box.kancloud.cn/5ea91b623bc3bd7fb548e8f71ee21e0e_727x413.png) ![](https://box.kancloud.cn/86faa54971f1d035f0df9920d94075b0_489x159.png) 這個參數是,比如你測試日志,他讀到100行,你把日志刪了,他不會從頭讀,加上這個可以從頭讀取 ## TCP輸入 ![](https://box.kancloud.cn/85befdea8bb994aaafa8998e7dff44bd_672x469.png) 例子 ![](https://box.kancloud.cn/ddc957511c8aabb3848d16ae49b46783_671x389.png) 我們來測試下 在bin下寫個文件tcp.conf ~~~ input { tcp { port => 9999 mode => "server" ssl_enable=>false } } output { stdout {} } ~~~ 然后我們運行 ~~~ ./logstash -f tcp.conf ~~~ 再開個窗口運行 ~~~ # 后面是個文件 nc 127.0.0.1 9999 < original-ks.cfg ~~~ ## UDP輸入 ![](https://box.kancloud.cn/92bbdb5353fc75232bda9eb0b1bbb472_1098x313.png) 例子 ![](https://box.kancloud.cn/ba51e6e00ef83a694524ee816ef05c14_255x344.png) ## syslog輸入 rsyslog是一個syslog的多線程加強版 從centos6開始,syslog由rsyslog替代 ~~~ /etc/rsyslog.conf service rsyslog restart ~~~ ![](https://box.kancloud.cn/716679d549e363537356f3c3e239c44c_558x345.png) # codec編碼配置 codec:解碼編碼 json,msgpack,edn... logstash處理流程 ~~~ input-->decode-->filter-->encode-->output ~~~ ## plain編碼 plain是一個空的解析器,他可以讓用戶自己指定格式 例子 ![](https://box.kancloud.cn/99bb82c48428c2b4e773ec04bed3a477_265x356.png) 把這個寫到文件中然后運行 ~~~ ./logstash -f plain.conf ~~~ 然后你輸出什么他就顯示什么 ## json編碼 如果事件格式是json的話,直接 `codec=>json` 例子1: ~~~ input{ stdin{ } } output{ stdout{ codec=>json } } ~~~ 例子2: 如果你的json文件比較長,需要換行那么就用到json_lines的編碼方式 ~~~ input{ tcp{ port=>12388 host=>"127.0.0.1" codec=>json_lines{ } } } output{ stdout{} } ~~~ 不用json_line他會有反斜杠轉義 ## rubydebug 將采用RubyAwsonePrint庫來解析日志 輸出格式 ![](https://box.kancloud.cn/da0614370ca1f3ddaafcd7691d2e6413_611x215.png) 例子: ~~~ input{ stdin{ codec=>json } } output{ stdout{ codec=>rubydebug } } ~~~ ## multiline多行事件編碼 有時候有的日志會用很多行去展現,這么多行其實都是一個事件 比如java的異常日志 ![](https://box.kancloud.cn/0c3cb4890d333766ee39726f0aeaafff_1184x471.png) 例子 一段日志 ![](https://box.kancloud.cn/17b3dbddc5092917b708cdbafe68b19b_1290x130.png) ![](https://box.kancloud.cn/81205341d6ed1021875dcc94c39327f0_276x385.png) ![](https://box.kancloud.cn/2587df0624bdca5008fcf290e6d43e94_1247x318.png) # filter過濾配置 * Json filter * Grok filter * KV filter ## Json filter 數據格式是json,那么可以通過它把數據解析成你想要的數據結構 **設置參數** ![](https://box.kancloud.cn/b0fdcfe50af921e2e6f903ce90325342_607x327.png) source就是來源數據,target表示解析目標字段 例子: ![](https://box.kancloud.cn/b1324c13a14b2c4bf7ad874e806b644c_274x385.png) ![](https://box.kancloud.cn/d30d7170a6b4d4806ddac350548c316b_976x562.png) 如果多了target就會把結果放到target指定的下面 ## Grok filter grok是目前logstash里面最好的一種解析各種非結構化的日志數據的工具 原因是里面有很多定義好的patterns ![](https://box.kancloud.cn/985f49524cb450a46d94110ff4187afe_1115x129.png) **設置參數** ![](https://box.kancloud.cn/7105eed6ec9af77a90f218518f92c5ab_609x495.png) 例子 日志 ![](https://box.kancloud.cn/eb2e5e7bc0a6335e1c93c238e7369572_1096x248.png) -- 配置 ![](https://box.kancloud.cn/1746e4f0a6b7e4e4a5948f87a38e5e1c_1100x467.png) -- **patterns_dir** 路徑要寫絕對路徑不能寫相對路徑 ![](https://box.kancloud.cn/730c1159393d904efbbd0a46ce461070_1093x367.png) **多匹配規則定義** 如果日志 ![](https://box.kancloud.cn/36fe6781f6c2ab7c2044f6e698ce1e66_1096x346.png) 可以在這個網址上測試`https://grokdebug.herokuapp.com` 可以檢驗你的pattern寫的是不是正確 ## KV filter 解析處理key-value這種鍵值對數據 ![](https://box.kancloud.cn/50217dd3eaf5b5fc0ada04bea88afb82_1189x90.png) 例子 ![](https://box.kancloud.cn/34111371dd750bb6fa359fcd79b568ec_252x406.png) # output 如何讓數據經過logstash的解析和處理后,把結果輸出出來 * 輸出到file * 以tcp/udp方式輸出 * 輸出到elasticsearch ## 輸出到file 把解析過濾的結果,輸出到file文件里 比如放到一個txt文件里 例子1 ![](https://box.kancloud.cn/b57df39cf6c3467001101dbb2fe7aac2_522x348.png) 還可以定義輸出的文件是被壓縮的,message指定輸出的字段 ![](https://box.kancloud.cn/653537d1bee09fa4111c3f4ee9197d97_760x314.png) ## tcp/udp方式輸出 tcp ![](https://box.kancloud.cn/2f8d142c5fa50294a8e15694bf3abff2_371x340.png) udp ![](https://box.kancloud.cn/524a4f349995040181d85f45ef174ba7_344x293.png) ## 輸出到elasticsearch elasticsearch就是數據庫 把logstash解析過濾的結果輸入到elasticsearch里 方可存儲以及檢索 ![](https://box.kancloud.cn/cbcf72d40057ae38e1e6a65e75493182_858x343.png) 這邊host一般寫主節點,你也可以把集群名字寫進去 index是索引名稱,type是在input里面定義的,引用這個字段 也可以讓logstash的結果輸出到redis中
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看