日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

【产品环境】使用ELK搭建日志系统

發布時間:2025/3/20 windows 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【产品环境】使用ELK搭建日志系统 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

為什么80%的碼農都做不了架構師?>>> ??

隨著業務不斷完善與發展,日志的重要性穩步上升。我們需要從日志中排查錯誤,以及分析用戶行為,為業務發展提供參考意見。因此,需要一套專門的日志系統幫助我們收集、分析、處理日志。

以前我曾經寫過一個logstash的blog: http://my.oschina.net/abcfy2/blog/372138 ,版本比較低,但是logstash的配置沒變過。此篇blog將比上述blog更詳盡一些,擴展到產品環境搭建完整的日志系統,但是logstash本身的配置不多做介紹,因為舊Blog已經介紹的比較詳細了。

本篇Blog主要介紹我們目前使用的日志系統的總體架構和部分配置。Kibana的使用暫時不在本篇Blog的覆蓋范圍之內,以后也許會單獨寫一篇kibana的使用,讀者也可以參考饒琛琳的《ELK stack權威指南》一書的相關章節。

本篇Blog的內容也并非自己獨自完成,關于log4j 1.2部分的配置和使用是開發同事共同探究實現的。

最后要說的一點是,日志系統的實現并不只是運維的工作,開發也需要配合,規范日志格式,規范項目埋點,便于排查問題。最后歸結與一點,要有執行力,要有人推動,不能隨隨便便的打日志,更不允許產品環境有亂七八糟的println這種調試方式的日志輸出。

關于ELK

ELK Stack指代三個獨立的組件: Elasticsearch,Logstash,Kibana。這三個獨立的組件組合使用,可以形成一套完整的日志解決方案。目前這三個產品先后歸于Elastic.co公司旗下,該公司圍繞Elasticsearch這個核心產品逐步打造一整套生態環境,使得ELK Stack這套架構日益成熟,而且周邊也逐步開始完善。

其中,Logstash的作用是處理日志,將日志解析為JSON格式進行傳遞。Elasticsearch的作用是數據庫,將最終解析的結果存庫,用于日后查詢與分析使用。Kibana是Elasticsearch的dashboard,用于圖形化展示elasticsearch數據庫的查詢結果。這三個組件搭配使用,將十分靈活,有以下幾個優點(以下內容節選自饒琛琳的《ELK stack權威指南》一書,感謝作者的努力):

  • 處理方式靈活。Elasticsearch是實時全文索引,不需要像Storm那樣預先編程才能使用。
  • 配置簡易上手。Elasticsearch全部采用JSON接口,Logstash是Ruby DSL設計,都是目前業界最通用的配置語法設計。
  • 檢索性能高效。雖然每次查詢都是實時計算,但是優秀的設計和實現基本可以達到百億級數據查詢的秒級響應。
  • 集群線性擴展。不管是Elasticsearch集群還是Logstash集群都是可以線性擴展的。
  • 前端操作炫麗。Kibana界面上,只需點擊鼠標,就可以完成搜索、聚合功能,生成炫麗的儀表盤。

Kibana的可視化效果:

Logstash的處理流程

其中,ELK的靈活性得益于Logstash的插件式設計,而且插件之間都是松耦合(通過JSON事件交互,接口統一)。數據流在Logstash會經過三個階段: Input -> Filter -> Output,而且Filter可以無限制串聯,形成流式處理,甚至可以干脆沒有。這三個階段既可以在單節點上完成,也可以直接Output到其他節點上,分布處理與卸載壓力。整個Logstash的基本流程圖如下:

Logstash的數據處理過程描述如下:

  • 進入Logstash的數據流,會被解析成一條一條的JSON記錄。每一條JSON在Logstash中稱為一個事件(event)。
  • Logstash對每條事件記錄可以使用Filter進行處理,如篩選,簡單聚合(如Multiline插件將多行JAVA堆棧異常聚合為一個事件),編解碼(如將unix時間戳轉為時間字符串,將k1=v1,k2=v2這種kv格式解析為{k1:v1, k2:v2}這種JSON格式,正則解析文本日志等),執行Ruby代碼等等,并且Filter可以無限制串聯。此過程可直接跳過,即不對事件做任何處理。
  • 通過Output插件,將解析處理過的數據輸出到指定目標,如RDB,TCP/UDP端口,Elasticsearch,消息隊列,文件等等,只要有對應插件的支持,就可以輸出到對應的目標中。
  • 整個Logstash的ruby DSL配置語法看起來像這樣:

    input {插件名1 {# 插件相關配置屬性}插件名2 {# 插件相關配置屬性}... SNIP ...插件名3 {# 插件相關配置屬性} }filter {插件名1 {# 插件相關配置屬性}插件名2 {# 插件相關配置屬性}... SNIP ...插件名3 {# 插件相關配置屬性} }output {插件名1 {# 插件相關配置屬性}插件名2 {# 插件相關配置屬性}... SNIP ...插件名3 {# 插件相關配置屬性} }

    舉個例子,比如存儲于日志文件中的某http access log日志:

    55.3.244.1 GET /index.html 15824 0.043

    經過了Logstash的inputs-file插件,輸入成為Logstash的一個事件,在Logstash會變成這樣(以rubydebug格式顯示):

    {"message" => "55.3.244.1 GET /index.html 15824 0.043","@version" => "1","@timestamp" => "2016-03-01T03:37:33.081Z","host" => "fengyu-Vostro-3900" }

    日志本身內容會存放在message這個field中,除此之外還會加上一些元數據,如host,@timestamp等。

    加上filters-grok這個Filter進行正則解析處理,解析message這個field(詳細配置參考filters-grok的文檔),最終將該事件解析成如下的事件:

    {"message" => "55.3.244.1 GET /index.html 15824 0.043","@version" => "1","@timestamp" => "2016-03-01T03:51:03.914Z","host" => "fengyu-Vostro-3900","client" => "55.3.244.1","method" => "GET","request" => "/index.html","bytes" => "15824","duration" => "0.043" }

    最后,通過outputs-elasticsearch這個output插件,將解析過的日志推送至Elasticsearch數據庫中存儲。

    通過elasticsearch中的各種查詢方式,即可按照自己的需求展示這些數據了。

    Logstash的這種設計,可以很容易進行線性擴展,比如不做filter處理,直接output到其他logstash實例的input端,將處理分散在不同的節點上。最極端的情況,甚至可以擴展成這個架構,兼顧HA(High Availability)與HP(High Performance):

    三個logstash實例互為冗余,將解析的結果推送至消息隊列,由另一個logstash實例將日志從消息隊列取出,推送至elasticsearch集群中。

    架構設計

    整個日志數據流的模型圖:

    每臺服務器上部署有我們自己開發的應用程序,以及這些應用程序的第三方依賴服務項(如數據庫,web服務器等)。

    因此日志源主要有兩種: 自己開發的應用程序的日志,依賴的第三方軟件的日志。

    我們自己開發的程序,直接將日志以JSON格式寫入消息隊列中。第三方服務大部分無法直接將日志寫入消息隊列中,而是輸出為日志文件,這種日志源通過logstash的filters-grok插件,解析日志文件后推送至消息隊列中。

    需要收集的第三方依賴的日志,以及收集哪些日志,詳見文檔末的附錄。

    消息隊列使用kafka + zookeeper的方式實現。日志專用的消息隊列部署在日志服務器中。

    注: 如果日志量比較小的話,可以沒必要這么復雜,比如省略掉kafka這個消息隊列,日志服務器也無需部署logstash,直接在應用服務器上用logstash將解析過的log推送至日志服務器上的es數據庫中。

    安全問題:

    所有服務盡可能只對內網ip暴露(通過防火墻實現),減少對外暴露的服務,并且以低權限賬戶運行。跨節點的服務(如mongodb復制集,kafka+zookeeper,postgresql集群等)連接一律采用SSL雙向認證的方案,提高安全性。

    詳細配置參考文檔末附錄的內容。

    解決方案

    根據上述描述,我們需要搭建一臺日志服務器,安裝ELK與日志專用的消息隊列。

    應用程序產生的日志直接推送至日志服務器的消息隊列中,經過logstash的處理最終推送至elasticsearch中,在kibana上進行展示。

    可以在logstash的Filter上定義報警規則,當日志有嚴重的錯誤時Output郵件報警。

    部署方案

    服務器上應用程序列表如圖所示:

    多臺產品服務器上,每臺服務器分別部署有應用程序和logstash,其他第三方服務按照需要組成集群(如postgresql集群,mongodb復制集等)。日志服務器上部署完整的ELK Stack和Kafka+Zookeeper。

    • 日志信息由應用程序生成時,直接寫入日志服務器的kafka隊列中。相關規范與配置參考文檔末的附錄內容。
    • 由第三方依賴程序產生的log,通常以文件形式存儲在產品服務器上。通過產品服務器的logstash解析日志文件后,推送至日志服務器的kafka。需要收集的日志列表參考文檔末的附錄。
    • 日志統一輸出到logs這個TOPIC中。
    • 日志服務器的logstash負責從日志服務器的kafka隊列中取出日志信息,推送至elasticsearch儲存,同時做報警規則,遇到需要報警的日志通過郵件方式報警。kibana作為elasticsearch的dashboard使用,對es數據庫存儲的內容進行可視化展示。

    擴展問題

    此架構在擴展上將即為便利,共有三個可擴展的點:

  • 通過消息隊列將外部依賴解耦,使得橫向擴展很容易,如果日志解析負載較高,可以利用消息隊列,在別的節點上進行解析后推送至es數據庫。甚至借助于Hadoop,Spark這樣的大數據處理引擎去解析。
  • 如果存儲容量成為一個問題,可以選擇hdfs,ceph這種分布式存儲解決方案,分散數據存儲容量,也可以使用增加elasticsearch分片節點解決這個問題。
  • 如果elasticsearch存儲效率成為了瓶頸,可以選擇增加elasticsearch分片集群節點解決這個問題。
  • 這些擴展方案均可在無需原程序改動的條件下進行擴展。

    部署步驟

    單節點部署

    推薦使用elastic.co的倉庫(RHEL/CentOS和Ubuntu/Debian倉庫為官方維護):

    • Elasticsearch地址: https://www.elastic.co/guide/en/elasticsearch/reference/current/setup-repositories.html
    • Logstash地址: https://www.elastic.co/guide/en/logstash/current/package-repositories.html
    • Kibana地址: https://www.elastic.co/guide/en/logstash/current/package-repositories.html

    推薦使用清華大學鏡像倉庫,我的issue已經被tuna接受,國內安裝速度會快許多(官方倉庫在S3上,所以你懂的)。tuna鏡像地址: http://mirrors.tuna.tsinghua.edu.cn/ELK/

    按照官方文檔的步驟,安裝之后根據需要定制配置,啟動服務,啟用開機自啟動即可。

    包管理器安裝的logstash,啟動配置存放于/etc/logstash/conf.d/,這個目錄一開始是空的,自己將logstash的配置文件以.conf結尾扔到這個目錄后,即可使用service logstash start啟動服務,日志存放于/var/log/logstash/。logstash的配置文件可以拆分成多個.conf文件,以規范配置,比如input.conf,filter.conf,output.conf。

    特別注意: logstash可以在一個目錄下存放多個.conf文件,logstash內部會將多個.conf文件合并為一個大的配置文件,合并的順序為文件名順序。所以特別注意你的filter配置,如果多個配置文件都有filter配置,特別注意filter的加載次序!否則會搞亂你的配置。如果你的filter只針對某個應用的日志使用,那么推薦你使用if [type] == "appname" { filter配置 }這種方式限制住你的filter的作用范圍。

    批量部署

    我用的是salt,產品環境Ubuntu Server 14.04 LTS,當然你也可以使用其他類似的工具,如puppet,chef,ansible等等。

    salt的logstash這個state的目錄結構如下:

    $ tree /srv/salt/logstash/ /srv/salt/logstash/ ├── config │?? ├── logagent │?? │?? ├── 00_log4j.conf │?? │?? ├── 01_vertx.conf │?? │?? ├── 02_mongod.conf │?? │?? ├── 03_postgresql.conf │?? │?? ├── 04_nginx.conf │?? │?? └── 99_output.conf │?? └── logserver │?? └── logserver.conf └── init.sls $ cat /srv/salt/logstash/init.sls logstash_repo:pkgrepo.managed:- name: deb http://mirrors.tuna.tsinghua.edu.cn/ELK/apt/logstash/2.3/ stable main- file: /etc/apt/sources.list.d/logstash.list- key_url: https://packages.elastic.co/GPG-KEY-elasticsearch- clean_file: Truelogstash:pkg.latest:- require:- pkgrepo: logstash_repologstash_grains:grains.list_present:- name: roles- value: logstashlogstash-config:file.recurse:- name: /etc/logstash/conf.d{% if 'logserver' in grains.get('roles', '') %}- source: salt://logstash/config/logserver/{% else %}- source: salt://logstash/config/logagent/{% endif %}- clean: True- makedirs: True- template: jinja{% if 'postgresql' in grains.get('roles', '') %} logstash-user:group.present:- name: adm- addusers: - "logstash" {% endif %}logstash-service:service.running:- name: logstash- enable: True- watch:- pkg: logstash- file: logstash-config

    最終推送到/etc/logstash/conf.d/目錄下的文件為00_log4j.conf,01_vertx.conf,02_mongod.conf,03_postgresql.conf,04_nginx.conf,99_output.conf,這樣命名是為了按照自己預期的文件順序疊加input,filter,output配置,而不會造成混亂。有關00_log4j.conf的配置內容參考博客開頭提供的舊的blog,這里基本沒大改過。

    測試用例

    為了演示這套架構的流程與效果,所以將這套架構最小化,將產品服務器的應用與日志服務器的應用全部部署在一個節點上測試。

    日志文件數據源以Nginx的access log為例,使用logstash將nginx access log中的內容推送至kafka隊列中,另一個logstash實例從kafka將nginx的log取出存入elasticsearch中。

    自己開發的應用程序直接按照上述日志規范打印日志進入kafka,由logstash從kafka中取出應用程序的日志,推送至elasticsearch中。

    日志文件用例

    修改Nginx的配置文件,使之打印出JSON格式的access log,配置方法見附錄內容。 access log內容如下:

    {"@timestamp":"2016-03-03T13:11:03+08:00","host":"sinoiot-172-16-250-3","clientip":"172.16.1.34","size":191,"responsetime":0.000,"http_host":"172.16.250.3","url":"/mirror/","xff":"-","referer":"-","agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.116 Safari/537.36","status":200} {"@timestamp":"2016-03-03T13:11:03+08:00","host":"sinoiot-172-16-250-3","clientip":"172.16.1.34","size":0,"responsetime":0.000,"http_host":"172.16.250.3","url":"/favicon.ico","xff":"-","referer":"http://172.16.250.3/mirror/","agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.116 Safari/537.36","status":204} ...

    模擬產品環境的Logstash的配置文件如下所示:

    input {file {path => "/var/log/nginx/access.log"codec => jsontype => "nginx"tags => "access"} }output {# stdout這個output插件僅作為調試階段使用,用于將處理過的結果打印在終端# 真實產品環境不需要這個outputstdout {codec => "rubydebug"}kafka {topic_id => "logs"bootstrap_servers => "172.16.250.10:9092" # 真實產品環境需要修改對應的kafka集群列表} }

    啟動logstash,將會看到終端上顯示解析過的事件:

    {"@timestamp" => "2016-03-03T05:11:03.000Z","host" => "sinoiot-172-16-250-3","clientip" => "172.16.1.34","size" => 191,"responsetime" => 0.0,"http_host" => "172.16.250.3","url" => "/mirror/","xff" => "-","referer" => "-","agent" => "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.116 Safari/537.36","status" => 200,"@version" => "1","path" => "/var/log/nginx/access.log","type" => "nginx","tags" => [[0] "access"] } {"@timestamp" => "2016-03-03T05:11:03.000Z","host" => "sinoiot-172-16-250-3","clientip" => "172.16.1.34","size" => 0,"responsetime" => 0.0,"http_host" => "172.16.250.3","url" => "/favicon.ico","xff" => "-","referer" => "http://172.16.250.3/mirror/","agent" => "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.116 Safari/537.36","status" => 204,"@version" => "1","path" => "/var/log/nginx/access.log","type" => "nginx","tags" => [[0] "access"] }

    從kafka隊列中的logs這個topic獲取日志信息,將看到下列內容:

    $ bin/kafka-console-consumer.sh --zookeeper 172.16.250.10:2181 --topic logs --from-beginning {"@timestamp":"2016-03-03T05:12:21.000Z","host":"sinoiot-172-16-250-3","clientip":"218.75.124.3","size":162,"responsetime":0.000,"http_host":"218.75.124.3","url":"/mirror/packages.elastic.co/elasticsearch/2.x/debian/dists/stable/main/i18n/Translation-en","xff":"-","referer":"-","agent":"Debian APT-HTTP/1.3 (1.0.1ubuntu2)","status":404,"@version":"1","path":"/var/log/nginx/access.log","type":"nginx","tags":["access"]} {"@timestamp":"2016-03-03T05:12:21.000Z","host":"sinoiot-172-16-250-3","clientip":"218.75.124.3","size":162,"responsetime":0.000,"http_host":"218.75.124.3","url":"/mirror/packages.elastic.co/kibana/4.4/debian/dists/stable/main/i18n/Translation-en_US","xff":"-","referer":"-","agent":"Debian APT-HTTP/1.3 (1.0.1ubuntu2)","status":404,"@version":"1","path":"/var/log/nginx/access.log","type":"nginx","tags":["access"]}

    證明logstash已經將解析過的事件推送至kafka隊列中。

    由于消息隊列中存儲的日志都是解析過的,所以日志服務器上的配置就簡單多了,只需要通過logstash將kafka中的日志推送至elasticsearch存儲即可。

    日志服務器的logstash配置就簡單的多(真實產品環境下需要配置email filter插件,用于郵件報警)。

    模擬日志服務器的logstash配置:

    input {kafka {topic_id => "logs"zk_connect => "172.16.250.10:2181" # 真實產品環境替換為對應的zookeeper集群列表} }output {elasticsearch {codec => json}# 產品環境調試完畢,不需要stdout這個output pluginstdout {codec => "rubydebug"}# 產品環境需要郵件報警的話,加入email output# if 報警條件 {# email {# # email output插件的配置# }#} }

    最后,在kibana中將看到如下的效果:

    應用程序日志

    自己開發的應用程序直接按照JSON格式推送至Kafka消息隊列中,因此不需要通過logstash output kafka這種方式。log4j 1.2版本需要手工格式化成JSON,log4j 2.x版本提供了JSON appender,不過目前來看log4j 1.x版本依舊占據主流。輸出到kafka的配置參考附錄。

    由于推送的topic_id是一樣的,因此日志服務器中的logstash配置也無需修改。

    從kafka隊列中取出log,看看格式:

    $ bin/kafka-console-consumer.sh --zookeeper 172.16.250.10:2181 --topic logs --from-beginning {"@timestamp":"2016-03-03T17:03:32.772+08:00","host":"172.16.1.4","type":"rtds","loglevel":"INFO","classname":"hawkeyes.rtds.MainVerticle","logdetail":{"a":1,"b":2}} {"@timestamp":"2016-03-03T17:03:32.773+08:00","host":"172.16.1.4","type":"rtds","loglevel":"DEBUG","classname":"hawkeyes.rtds.MainVerticle","logdetail":{"c":1,"d":2}} {"@timestamp":"2016-03-03T17:03:32.813+08:00","host":"172.16.1.4","type":"rtds","loglevel":"ERROR","classname":"hawkeyes.rtds.MainVerticle","logdetail":{"errormsg":" java.math.BigDecimal.divide(Unknown Source)\n org.codehaus.groovy.runtime.typehandling.BigDecimalMath.divideImpl(BigDecimalMath.java:68)\n org.codehaus.groovy.runtime.typehandling.IntegerMath.divideImpl(IntegerMath.java:49)\n org.codehaus.groovy.runtime.dgmimpl.NumberNumberDiv$NumberNumber.invoke(NumberNumberDiv.java:323)\n org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite.call(PojoMetaMethodSite.java:56)\n org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48)\n org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:113)\n org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:125)\n hawkeyes.rtds.MainVerticle.test(MainVerticle.groovy:69)\n hawkeyes.rtds.MainVerticle.deployInStandaloneMode(MainVerticle.groovy:63)\n sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)\n sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)\n java.lang.reflect.Method.invoke(Unknown Source)\n org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:93)\n groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325)\n groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1210)\n groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1077)\n groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1019)\n groovy.lang.Closure.call(Closure.java:426)\n groovy.lang.Closure.call(Closure.java:420)\n java_util_concurrent_Callable$call.call(Unknown Source)\n org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48)\n org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:113)\n org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:117)\n hawkeyes.rtds.MainVerticle.start(MainVerticle.groovy:30)\n io.vertx.lang.groovy.GroovyVerticle.start(GroovyVerticle.groovy:64)\n io.vertx.lang.groovy.GroovyVerticle$1.start(GroovyVerticle.groovy:93)\n io.vertx.core.impl.DeploymentManager.lambda$doDeploy$159(DeploymentManager.java:429)\n io.vertx.core.impl.ContextImpl.lambda$wrapTask$16(ContextImpl.java:335)\n io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:358)\n io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:357)\n io.netty.util.concurrent.SingleThreadEventExecutor$2.run(SingleThreadEventExecutor.java:112)\n java.lang.Thread.run(Unknown Source)\n"}} {"@timestamp":"2016-03-03T17:03:32.814+08:00","host":"172.16.1.4","type":"rtds","loglevel":"INFO","classname":"hawkeyes.rtds.MainVerticle","logdetail":{"a":1,"b":2}} {"@timestamp":"2016-03-03T17:03:32.814+08:00","host":"172.16.1.4","type":"rtds","loglevel":"DEBUG","classname":"hawkeyes.rtds.MainVerticle","logdetail":{"c":1,"d":2}}

    最終在kibana中展示的效果如圖:

    總結

    ELK這套架構的設計由于其外部組件的松耦合性,幾乎可以滿足各種規模日志收集,組合消息隊列,更是帶來了彈性伸縮的可能性。

    這套架構的引入,將對今后日志的收集管理提供便利,通過日志提供的數據,也便于業務跟蹤。而且此架構在未來也容易擴展。

    此架構涉及到的組件也相對較多,需要有一定的維護量。數據分析時不但需要有規范化的數據結構,也需要熟悉elasticsearch的聚合表達式,需要一些專業知識與學習成本。

    附錄

    附錄一 應用程序log輸出到Kafka的方法

    修改log4j.properties文件,配置kafka appender即可將log內容輸入到kafka消息隊列中。

    log4j.logger.hawkeyes.rtds=INFO, Kafka log4j.appender.Kafka=org.apache.kafka.log4jappender.KafkaLog4jAppender log4j.appender.Kafka.layout=org.apache.log4j.EnhancedPatternLayout log4j.appender.Kafka.layout.ConversionPattern=%m log4j.appender.Kafka.brokerList=127.0.0.1:9092 log4j.appender.Kafka.topic=logs log4j.appender.Kafka.requiredNumAcks=1

    LOG4J主要由三大組件組成:

    • Logger: 決定什么日志信息應該被輸出、什么日志信息應該被忽略;
    • Appender: 指定日志信息應該輸出到什么地方, 這些地方可以是控制臺、文件、網絡設備;
    • Layout: 指定日志信息的輸出格式;

    按照原來配置log4j.rootLogger=DEBUG, Kafka這使程序中所有日志都會向Kafka中寫入。但KafkaLog4jAppender在初始化時,本身會打印log,它在獲取logger對象時又會繼續創建KafkaLog4jAppender,新的KafkaLog4jAppender又會打log, 這就成了死循環,因此定義了一個輸出范圍log4j.category.hawkeyes.rtds=INFO, Kafka,所有hawkeyes.rtds包下的類才會向kafka消息隊列中輸出,這不會影響KafkaLog4jAppender中log輸出。

    附錄二 應用程序動態調整日志級別的實現方法

    為滿足不重啟程序就能修改日志級別的需求,可以使用log4j的動態改變log輸出級別的功能。

    動態修改loglevel原理

    改變Logger中level屬性即可。

    參考代碼:

    def rtdsLogger = Logger.getLogger("hawkeyes.rtds") rtdsLogger.setLevel(Level.toLevel("info"))

    然后將這種方法進行封裝,對外提供一個可以操作的api即可(如REST api)。

    附錄三 部分相關服務的配置參考

    Nginx輸出JSON格式的log配置方法

    編輯/etc/nginx/nginx.conf配置文件,加入以下內容:

    log_format json '{"@timestamp":"$time_iso8601",''"host":"$hostname",''"clientip":"$remote_addr",''"size":$body_bytes_sent,''"responsetime":$request_time,''"http_host":"$host",''"url":"$uri",''"xff":"$http_x_forwarded_for",''"referer":"$http_referer",''"agent":"$http_user_agent",''"status":$status}';access_log /var/log/nginx/access.log json;

    刪掉原來默認的配置行access_log /var/log/nginx/access.log。重啟nginx,之后nginx的access log文件/var/log/nginx/access.log將以json_lines的格式打印日志。

    以上配置參考了饒琛琳的《ELK stack權威指南》的相關章節

    Zookeeper相關配置參考

    Zookeeper集群配置范例:

    需要改動的文件有兩個。在zookeeper的配置目錄中

    • myid: 這個文件的內容修改為一個正整數,要求每個節點的數值不同
    • zoo.cfg: 修改server.${id}=${ip}:2888:3888。這個id和myid中的數字一一對應,后面的ip是節點的ip(注意不要使用環回ip,必須是能被其他節點訪問到的ip,也可以是域名)。參考范例:
    server.1=172.16.250.10:2888:3888 server.2=172.16.250.13:2888:3888 server.3=172.16.250.14:2888:3888

    Zookeeper啟用SSL雙向認證: //TODO

    Kafka相關配置參考

    Kafka集群配置范例:

    修改config目錄下的主配置文件server.properties。關鍵的幾個配置參數如下:

    broker.id=1 advertised.host.name=172.16.250.10 zookeeper.connect=172.16.250.10:2181,172.16.250.13:2181,172.16.250.14:2181
    • broker.id: 同zookeeper集群配置,每個節點的id均為不重復的正整數。
    • advertised.host.name: 同zookeeper的集群配置,設置為能被其他節點訪問到的ip或域名(該選項默認為系統主機名,不用hosts或dns基本無法被其他節點訪問到)。
    • zookeeper.connect: 為zookeeper集群列表,格式為ip:port。多個節點使用,分割。

    Kafka啟用SSL雙向認證: //TODO

    Logstash配置參考

    產品服務器的logstash將日志從文件取出,格式化后推送至日志服務器的Kafka中:

    input {file {path => "/path/to/log/file" # 日志文件路徑type => "app" # 應用名,如nginx,postgresql等... SNIP ... # 這里根據不同的文件格式可能需要做不同處理} }filter {# filter這里主要是grok正則,nginx配置JSON日志格式后不需要grok解析grok {... SNIP ...} }output {kafka {topic_id => "logs"bootstrap_servers => "kafka" # 真實產品環境需要修改對應的kafka集群列表... SINP ...} }

    日志服務器logstash從kafka消息隊列中取出對應的日志消息,推送至elasticsearch存儲。 日志報警規則在日志服務器指定,便于修改報警規則。

    input {kafka {zk_connect => "zookeeper_cluster:2181"topic_id => "logs"... SNIP ...} }filter {# 這里詳細指定郵件報警規則if "email_alert" in [tags] {email {... SNIP ...}} }output {elasticsearch {... SNIP ...} }

    參考文獻

    • ELKstack 中文指南: https://www.gitbook.com/book/chenryn/kibana-guide-cn/details
    • Logstash官方文檔: https://www.elastic.co/guide/en/logstash/2.2/index.html
    • Kafka官方文檔集群配置: http://kafka.apache.org/documentation.html#quickstart_multibroker
    • Zookeeper官方文檔集群配置: https://zookeeper.apache.org/doc/r3.3.2/zookeeperAdmin.html#sc_zkMulitServerSetup

    轉載于:https://my.oschina.net/abcfy2/blog/703158

    總結

    以上是生活随笔為你收集整理的【产品环境】使用ELK搭建日志系统的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    国产精品综合久久 | 国产无套视频 | 波多野结衣动态图 | 久久国产a | 亚洲人精品午夜 | 97在线观看视频 | a天堂最新版中文在线地址 久久99久久精品国产 | 久久一区二 | 国产精品成人久久久久久久 | 国产精品国产自产拍高清av | 久久国产精品一区二区 | 日韩视频一区二区三区在线播放免费观看 | 色国产精品一区在线观看 | 婷婷五天天在线视频 | 日韩精品在线观看视频 | 国产精品九九视频 | 精品视频久久久久久 | 亚洲精品h| 久久国产福利 | 成年人天堂com | 在线视频观看国产 | 伊人影院得得 | 天天草天天爽 | 色婷婷www| 福利二区视频 | 片网站 | 国产精品久久人 | 天天精品视频 | av黄免费看| 久久久久久久久久久免费视频 | 国产成人免费高清 | 精品久久一区二区三区 | 中文字幕在线影视资源 | 中文字幕乱码在线播放 | 国产精品一区二区三区在线看 | 91av在线免费 | 天天干视频在线 | 欧美久久久久久久久久久久久 | 九色视频网 | 日韩在线观看精品 | 国产亚洲情侣一区二区无 | 在线国产视频一区 | 久草视频99 | 亚洲国产精品日韩 | 欧美日韩二区三区 | 中文字幕在线观看视频一区二区三区 | 久久久99精品免费观看 | 久久婷婷综合激情 | 91在线免费视频观看 | av 一区 二区 久久 | 在线观看国产www | 久久免费成人精品视频 | 91av电影| 亚洲视频分类 | 一级电影免费在线观看 | 午夜精品久久久久久久99婷婷 | 五月天综合在线 | 国产乱码精品一区二区蜜臀 | 国产又粗又硬又爽的视频 | 久久男女视频 | av在线免费在线观看 | 在线观看成人福利 | 欧美日本不卡 | 最近日本中文字幕 | 精品天堂av | 国产网红在线观看 | 在线国产黄色 | 欧美激情奇米色 | 国产精品久久久久久久久久白浆 | 伊人成人激情 | 免费日韩电影 | 久久好看免费视频 | 国产精品免费视频久久久 | 操操操影院 | 亚洲视频中文 | 成人久久18免费 | av免费在线免费观看 | 亚州人成在线播放 | 视频一区二区精品 | 91视频91自拍 | 91视频在线免费 | 玖玖在线视频观看 | 国产日韩在线看 | 久久免费看视频 | 日韩一区正在播放 | 日韩免费观看视频 | 欧美 日韩 国产 中文字幕 | 成人免费观看大片 | 欧美天堂久久 | 中文字幕电影高清在线观看 | 日本 在线 视频 中文 有码 | 丁香六月久久综合狠狠色 | 天天干,天天干 | 久久一区国产 | 亚洲精品乱码久久久久久写真 | 欧美性生活一级片 | 在线观看视频你懂得 | 国产精品黄色 | 欧美片网站yy | 偷拍精品一区二区三区 | 欧美一级专区免费大片 | 99国产一区 | 精品久久久久久久 | 日本精品免费看 | 免费观看的av网站 | 色视频在线免费 | 免费看片在线观看 | 久久久久久久久久网 | 国产精品一区二区av | 久久久电影网站 | 日韩欧美在线一区 | 最新国产在线视频 | 天堂黄色片 | 最近中文字幕在线中文高清版 | 国产96在线视频 | 国产区久久 | 欧美黄色免费 | 五月开心婷婷网 | 国产欧美中文字幕 | 四虎在线观看 | 精品国产一区二区在线 | 国产精品1024 | av在线色| 69亚洲乱| 手机看片福利 | 97色婷婷成人综合在线观看 | 97精品视频在线 | 亚洲精品tv久久久久久久久久 | 久久男女视频 | 亚洲专区免费观看 | 九九热视频在线播放 | 亚洲欧美成aⅴ人在线观看 四虎在线观看 | 三级黄色片在线观看 | 午夜精品久久久久99热app | 99国产在线观看 | 91在线看网站 | 97精品国产97久久久久久粉红 | 中文字幕美女免费在线 | 久久免费的视频 | 国产精品永久久久久久久www | 精品av网站 | 超碰公开97| 日韩av黄 | 国产精品成人免费精品自在线观看 | 亚洲国产精品久久久 | 免费视频在线观看网站 | 人人讲下载 | 色999精品 | 午夜在线免费视频 | 色wwwww| 久久999精品| 日韩精品一区在线播放 | 日韩欧美精品在线观看 | 欧美精品三级 | 色香蕉网 | 丁香婷婷在线观看 | 亚洲高清免费在线 | 人人超在线公开视频 | 最近中文字幕视频完整版 | 久热精品国产 | 99国产视频 | 九九九九九精品 | 美女一区网站 | 五月婷婷一级片 | 亚洲精品国产精品国自产 | 成人免费 在线播放 | 国产精品一区二区av影院萌芽 | 久久婷亚洲五月一区天天躁 | 奇米网444| av大全免费在线观看 | 欧美另类巨大 | 欧美日本不卡视频 | 亚洲精品看片 | 96精品视频 | 精品99在线 | 久久蜜臀一区二区三区av | 超碰免费成人 | 黄色视屏在线免费观看 | 亚洲五月| 日韩av中文字幕在线免费观看 | 伊人久操| 日韩视频精品在线 | 久久精品亚洲精品国产欧美 | 波多野结衣电影一区二区 | 久久视频99 | 999精品网 | 国产成人精品国内自产拍免费看 | 国产xvideos免费视频播放 | av在线免费在线 | av女优中文字幕在线观看 | 久久人操| 六月婷婷久香在线视频 | 国产在线色站 | 天天操天天干天天 | 久99久在线视频 | 国产精品一区二区av麻豆 | 国产美女搞久久 | 国产精品国内免费一区二区三区 | 久久乱码卡一卡2卡三卡四 五月婷婷久 | 香蕉视频91 | 91在线91拍拍在线91 | 一级一片免费视频 | 操操爽| 特黄一级毛片 | 国产精品久久久久9999吃药 | 国产精品九色 | 成人av亚洲 | 久久69精品 | 久久国产精品偷 | 欧美日韩在线免费视频 | 国产中文 | 婷婷丁香激情 | 色婷婷国产精品 | 久久视屏网| 人人狠 | 狠狠色丁香婷婷综合橹88 | 色婷婷免费视频 | 又长又大又黑又粗欧美 | 日韩一区在线播放 | 日韩午夜视频在线观看 | 人人射人人澡 | 亚洲天堂网在线视频观看 | 久久国产免费视频 | 在线国产视频观看 | 手机av片 | 国产福利精品一区二区 | 黄色成年片| 国产日韩精品在线观看 | 国产在线看一区 | www久久99| 久久精品久久久精品美女 | 久久人人爽人人 | 免费观看一级成人毛片 | 99久久99久久综合 | 国产99久久精品一区二区300 | 久久久久亚洲精品成人网小说 | 亚洲 欧洲 国产 精品 | 亚洲综合精品在线 | 精品国产一区二区三区久久久久久 | 久草在线一免费新视频 | 国产玖玖视频 | 91精品毛片 | 人人澡人人添人人爽一区二区 | 狠狠色免费 | 在线电影日韩 | 国产美女精品在线 | 国产精品视频免费观看 | 天天综合久久综合 | 69视频永久免费观看 | 成年人免费在线观看网站 | 国产精品一区二区果冻传媒 | 欧美在线观看视频免费 | 97超碰超碰| 丁香五月缴情综合网 | 色先锋av资源中文字幕 | 国产精品女人久久久 | 免费成人av在线 | 999久久久久久久久6666 | 日p视频| 色婷婷av在线 | 亚洲精品乱码久久久久久9色 | 久久天堂精品视频 | 欧美日本不卡 | 成人在线视频在线观看 | 国产福利久久 | 4438全国亚洲精品在线观看视频 | 欧美a级片网站 | 国产精品中文字幕在线播放 | 亚洲aⅴ免费在线观看 | 狠狠躁日日躁夜夜躁av | 黄色av网站在线观看免费 | 成 人 黄 色 片 在线播放 | 亚洲 成人 欧美 | 国产精品电影一区 | 欧美一区二区在线免费观看 | 视频国产精品 | 天天爽夜夜爽人人爽一区二区 | 免费在线国产视频 | av大全在线免费观看 | 日韩av黄| 91一区二区三区在线观看 | 五月婷婷国产 | 欧美日韩在线观看视频 | 中文字幕黄色网 | 五月婷婷狠狠 | 欧美最爽乱淫视频播放 | 人人干人人做 | 天天拍天天操 | 二区三区中文字幕 | 国产一区二区综合 | 久综合网 | 久久免费播放视频 | 日韩精品久久久久久久电影竹菊 | 亚洲91精品在线观看 | 久久久久久久久久久黄色 | 在线观看免费国产小视频 | 国产精品观看视频 | 久久久国产视频 | 99精品视频免费 | 国语久久 | 国产精品第二页 | 天天爱天天射 | 亚洲精品视频在线播放 | 欧美国产不卡 | 国产视频一区二区三区在线 | 成人在线观看资源 | 免费观看成人av | 天天视频色版 | 色婷久久 | 97在线免费视频 | 天天色天天艹 | 丰满少妇在线观看网站 | 欧美日韩在线观看一区二区 | 国产在线毛片 | 国产精品久久久精品 | 国产成人福利在线 | 久久久久久久久久久影院 | 成人av一区二区在线观看 | 久草在在线视频 | 国产中文字幕在线播放 | 97成人在线观看 | 一本—道久久a久久精品蜜桃 | 91看成人| 美女黄频在线观看 | 国产精品大片在线观看 | 中文字幕一区二区三区乱码不卡 | 日韩在线电影一区二区 | 日韩精品在线看 | 中文字幕免费高清在线观看 | 欧美伦理一区二区 | 亚洲精品一区二区三区四区高清 | 亚洲欧美少妇 | 亚洲国产精品久久久 | 九九综合久久 | 国产又粗又猛又色又黄视频 | 久久久久国产精品免费网站 | 四虎影视8848dvd | 97精品超碰一区二区三区 | 久草在线免费资源 | 这里只有精彩视频 | 国产色在线观看 | 日韩在线观看一区二区 | 九九导航 | 国产成人精品一区在线 | 在线日韩亚洲 | 99一区二区三区 | 国产精品视频久久 | 久久国产精品免费一区二区三区 | 91高清视频在线 | 在线观看免费版高清版 | 波多野结衣一区二区三区中文字幕 | 国产美女精品久久久 | 亚洲精选在线 | 国产精品18久久久久久久久久久久 | 久久久久美女 | 亚洲视频1区2区 | 亚洲视频一 | 亚洲国产欧美在线人成大黄瓜 | 特级毛片在线免费观看 | 久久这里只有精品久久 | 伊人久久在线观看 | 色婷婷六月| 99色精品视频 | 久久人人爽人人爽人人片 | 欧美日韩中文视频 | 日韩精品网址 | 国产高清视频在线观看 | 欧美精品亚州精品 | 99麻豆视频| 精品国产乱码久久久久久1区2匹 | 亚洲国产成人精品在线观看 | 色综合久久久久久久 | 99国产视频在线 | 日韩高清精品免费观看 | 婷婷色网 | 久久久久久视频 | 最近中文字幕大全 | 中文字幕免费高清 | 开心色插 | 亚洲在线观看av | 久久久精品视频网站 | 日韩亚洲精品电影 | 欧美一区二区三区激情视频 | 国产高清专区 | 婷婷丁香在线 | 香蕉网在线 | 视频 国产区 | 99久久er热在这里只有精品66 | 国产精品视频全国免费观看 | 天天插综合网 | 夜夜爽天天爽 | 999久久久精品视频 日韩高清www | 日本中出在线观看 | 99久久久成人国产精品 | 亚洲四虎影院 | 国产黄色精品网站 | 久久女同性恋中文字幕 | 国产麻豆精品在线观看 | 日韩r级电影在线观看 | 亚洲精品动漫久久久久 | 久草网视频在线观看 | 91网站免费观看 | 天天爱天天操 | 日日夜夜精品免费观看 | 亚洲四虎影院 | 天天操天天摸天天爽 | 大片网站久久 | 日韩av在线资源 | 成人av片免费看 | 日日弄天天弄美女bbbb | 日本二区三区在线 | 中文字幕日韩高清 | 国产xx在线 | 99久久综合狠狠综合久久 | 香蕉影院在线观看 | 日韩精品短视频 | 国产精品久久久久久久久久久久午夜 | 日本在线观看一区二区 | 成人高清在线观看 | 超碰在线网 | 久久久网站 | 丁香六月婷婷开心 | 久久免费视频在线观看30 | 亚洲涩涩色 | 精品国产欧美一区二区 | 欧美a在线看 | 天天干天天射天天插 | 在线观看理论 | 欧美夫妻性生活电影 | 韩国精品在线观看 | 日日操日日 | 精品欧美一区二区在线观看 | 天天色天天射天天操 | 久久久久在线 | 在线日韩av| 色中文字幕在线观看 | 黄色一级片视频 | 欧美日韩另类视频 | 一本到视频在线观看 | 美女网站色 | 久久久久国产精品一区二区 | 99久高清在线观看视频99精品热在线观看视频 | 最近2019年日本中文免费字幕 | 在线观看91精品国产网站 | 欧美一级片在线 | 欧美一级片播放 | 婷婷在线综合 | 日韩一区二区三区在线看 | 久久精品4 | 欧美中文字幕第一页 | 精品96久久久久久中文字幕无 | 91在线看视频 | 国产精品久久一区二区三区, | 中文在线字幕免 | 免费av网站在线看 | av高清免费| a v在线观看| 激情综合亚洲精品 | 亚洲激情电影在线 | 亚洲国产欧美一区二区三区丁香婷 | 久久综合操 | 久久电影国产免费久久电影 | 狠狠色丁香久久婷婷综合丁香 | 午夜精品成人一区二区三区 | 亚洲黄a| 国产专区日韩专区 | 中文字幕一区二区在线观看 | 亚洲国产中文字幕 | 米奇狠狠狠888 | 日韩有码中文字幕在线 | 国产精品美女久久久久久久 | 久草精品在线播放 | 人成电影网 | 视频国产精品 | www免费看片com | 亚洲一区二区视频在线播放 | 伊人日日干 | 人人干免费 | 91人人澡 | 四季av综合网站 | 超级av在线| 国产99一区视频免费 | 日韩免费高清在线 | 亚洲美女在线国产 | 欧美激情另类文学 | 国产在线色视频 | www.99在线观看 | 亚洲精品国产综合99久久夜夜嗨 | 国产99在线免费 | 国产理论片在线观看 | 天天综合视频在线观看 | 五月婷婷黄色 | 免费在线国产黄色 | 午夜精品一区二区三区免费视频 | 久久久免费少妇 | 国内精品亚洲 | 麻豆成人精品视频 | 国产中文 | 狠狠色丁香婷婷综合 | 国产一级片一区二区三区 | 日韩在线视频免费看 | 天堂av在线网址 | 丰满少妇高潮在线观看 | 最近2019好看的中文字幕免费 | 久久久久久美女 | 日韩在线观看免费 | 免费观看完整版无人区 | 精品亚洲免费 | 国产精品成人av久久 | 欧美a级成人淫片免费看 | 国产天天爽 | 亚洲一本视频 | 免费在线黄网 | 国产综合在线视频 | 亚洲第五色综合网 | 国产麻豆果冻传媒在线观看 | 国产精品久久久久久久久久久免费 | 激情综合亚洲精品 | 91成人网页版 | 2024国产精品视频 | 国产精品美女999 | 国产精品刺激对白麻豆99 | 黄色小说在线免费观看 | 日韩在线中文字幕 | 免费观看全黄做爰大片国产 | 色国产精品一区在线观看 | 天天摸日日操 | 97成人啪啪网 | 国产精品一区二区三区观看 | av大全在线播放 | 婷婷综合导航 | 精品国产久 | 久久久久久久久久久久久9999 | 91av在线视频免费观看 | 免费看一及片 | 少妇bbw搡bbbb搡bbbb | 久久成人高清 | 日韩高清在线一区二区三区 | 日本不卡123区 | 97av视频| 国产精品av免费 | 99视频在线精品国自产拍免费观看 | 在线免费黄色毛片 | 热99在线视频 | 天天天干天天射天天天操 | 激情五月看片 | 日日夜夜精品免费 | 天天av天天 | 在线免费观看国产精品 | 天天爱综合 | 午夜精品av在线 | 国产成人av一区二区三区在线观看 | 中文字幕亚洲高清 | 青青河边草手机免费 | 婷婷久久婷婷 | 韩国精品在线观看 | 日本婷婷色 | 亚洲欧美色婷婷 | 91插插插免费视频 | 91视频91蝌蚪 | 国产人成在线视频 | 婷婷综合五月 | 天堂网av在线 | 激情综合亚洲精品 | 最近中文字幕高清字幕免费mv | 亚洲视频精品在线 | 欧美日韩国产一区二区三区 | 亚洲资源在线观看 | 日本高清中文字幕有码在线 | 中文在线天堂资源 | 国产精品成人aaaaa网站 | 欧美一级久久 | 国产毛片久久 | 在线欧美国产 | 中文字幕精品一区 | 久久久亚洲精华液 | 午夜国产一区二区三区四区 | 久久久激情视频 | 成人黄色视 | 亚洲国产经典视频 | 国产精品不卡av | 日本三级香港三级人妇99 | 国产一区二区三区高清播放 | 日本h视频在线观看 | 亚洲视频免费视频 | 日韩网站一区二区 | 国内精品亚洲 | 91国内在线 | 超碰97中文 | 久久99视频| 国产麻豆电影在线观看 | 999视频在线播放 | 久久不见久久见免费影院 | 91精品一区二区在线观看 | 国产视频中文字幕在线观看 | 久久久久亚洲精品成人网小说 | 91香蕉视频 | 99精品偷拍视频一区二区三区 | 国产中文字幕一区二区三区 | 日韩视频专区 | 国产成人精品综合久久久久99 | 国产精品美女www爽爽爽视频 | 久操免费视频 | 亚洲精品久久久久中文字幕二区 | 91精品国产91p65 | 黄色软件视频大全免费下载 | 国产精品免费在线播放 | 视频二区在线 | 日韩欧美xx| 99久久日韩精品免费热麻豆美女 | 成人午夜影视 | 999成人网| 成人av免费电影 | 亚洲欧洲美洲av | 日本黄色大片儿 | 丁香视频五月 | 成年人黄色大片在线 | 97网在线观看 | 日韩一区二区三免费高清在线观看 | 欧美日韩一二三四区 | 久久久久久久国产精品 | 在线观看岛国av | 久草爱 | 国产精品日韩在线播放 | 九九九热精品免费视频观看 | 91精品啪在线观看国产 | 欧美亚洲成人免费 | 免费高清看电视网站 | 99免费视频 | 在线观看视频 | 久久狠狠婷婷 | 天天操伊人 | 欧美污网站 | 久久美女高清视频 | 久久手机精品视频 | 激情五月婷婷丁香 | www.亚洲精品| 日韩中文字幕视频在线观看 | 欧美日韩中文字幕综合视频 | 国内精品久久久久久久影视麻豆 | 日本视频网 | 免费视频二区 | 91精品天码美女少妇 | 免费观看性生交 | 91最新视频| 免费看三级黄色片 | 国产精品久久久久久一区二区 | 国产精品日韩 | 精品一区二区久久久久久久网站 | 国产超碰在线 | 亚洲国产欧洲综合997久久, | 日韩中出在线 | 中文字幕免费中文 | av中文字幕av| 亚洲国产精久久久久久久 | 九九色综合 | 亚洲综合五月 | 婷婷www | 国产免费av一区二区三区 | 人人插人人| 亚洲韩国一区二区三区 | 久久久久久久免费 | 激情五月播播久久久精品 | 国产精品免费视频一区二区 | 精品国产免费av | 色综合久久中文综合久久牛 | 国产综合精品一区二区三区 | 欧美一级片免费观看 | 91成人午夜| 2020天天干夜夜爽 | 国产在线免费av | 亚洲另类交 | 国产手机免费视频 | 日韩高清一区 | 成人一级片免费看 | 91亚洲精品国产 | 少妇bbr搡bbb搡bbb | 国产麻豆精品久久 | 最新国产福利 | 人人人爽| 97成人精品视频在线观看 | 五月天久久综合网 | 国产剧情在线一区 | 欧美 日韩 国产 中文字幕 | av三级在线免费观看 | 久久综合天天 | 国产精品黑丝在线观看 | 久久久国产精品一区二区中文 | 欧美精品免费在线 | 在线一区观看 | 日韩一级电影网站 | 国产精品免费视频观看 | av福利电影| 99国产在线| 亚洲精品综合在线观看 | 久久精选视频 | 久久新 | 国产日韩视频在线播放 | 天堂av免费看 | 中文字幕黄色av | 香蕉久草| 久草在线资源免费 | 日本久久视频 | 久草免费看| 在线观看日韩中文字幕 | 91av免费观看 | 精品日韩在线 | 91精品在线免费视频 | 一级黄色在线视频 | 成人精品在线 | 91九色成人蝌蚪首页 | 亚洲一区二区三区91 | 91香蕉国产在线观看软件 | 国产精品成人一区二区三区吃奶 | 视频在线观看入口黄最新永久免费国产 | 日韩欧美综合在线视频 | 日韩大片在线 | 一区二区三区免费在线观看 | 日本在线观看一区 | 日韩色在线观看 | 欧美 日韩精品 | 人人搞人人搞 | 国产亚洲视频中文字幕视频 | 91三级在线观看 | 国产一区二区三区高清播放 | 综合网婷婷 | 亚洲成人免费在线观看 | 中文字幕免费中文 | 一区二区三区中文字幕在线 | 日韩精品你懂的 | 天天草天天干天天射 | 日韩久久久久久久久久久久 | 午夜av大片 | 久久影视网 | 久久爱资源网 | 国产超碰97 | 91高清免费在线观看 | 国产精品美女久久久免费 | 日韩色在线观看 | 色天天综合久久久久综合片 | 最新av网址大全 | 国产免费成人 | 亚洲精品综合一二三区在线观看 | 国际精品久久久久 | 色婷婷激情电影 | 99色免费 | 九九九视频精品 | 亚洲精品ww | 亚洲aⅴ久久精品 | 亚洲 欧美 精品 | 九九在线播放 | 毛片无卡免费无播放器 | 成在人线av | 日b视频国产 | 欧美一区二区在线 | 久草在线免费资源 | 99久久9| 日韩中文字幕a | 日韩字幕 | 正在播放五月婷婷狠狠干 | 可以免费观看的av片 | 在线播放一区二区三区 | 中文字幕在线观 | 国产一区黄色 | 91视频麻豆视频 | 国产精品久久久久9999 | 免费开视频 | 欧美精品一区二区性色 | 婷婷草| 久久永久视频 | 激情综合网天天干 | a级国产乱理伦片在线观看 亚洲3级 | 97国产视频 | 五月天免费网站 | av成人动漫 | 成人av在线一区二区 | 91久久精品一区二区二区 | 香蕉在线视频播放网站 | 久久精品永久免费 | 国产精品一区二区三区观看 | 欧美激情综合五月色丁香 | 综合色中色 | 久久国产欧美日韩精品 | 亚洲成年人在线播放 | 在线观看视频在线 | 日本狠狠干| 婷婷久久久 | 麻豆视频免费入口 | 日韩免费电影网站 | 丁香婷婷深情五月亚洲 | 最近日本mv字幕免费观看 | 一区二区中文字幕在线播放 | 久久视频6| 午夜av大片| 黄色影院在线免费观看 | 国产一级免费片 | 久久国产精品二国产精品中国洋人 | 日韩欧美在线高清 | 夜夜躁狠狠躁日日躁视频黑人 | 免费男女羞羞的视频网站中文字幕 | 91视频黄色 | 久久9999久久免费精品国产 | 午夜久久影视 | 在线观看 国产 | 国产97色| 亚洲欧美日韩不卡 | 欧美久久久久久久久中文字幕 | 国产精品久久久久久久午夜 | 一区免费视频 | 国产精品都在这里 | 婷婷久久国产 | 亚洲精品1234区 | 国内精品美女在线观看 | 91片在线观看| 国产精品久久久久久电影 | 黄色特级片 | 狠狠88综合久久久久综合网 | 欧美性免费 | 亚洲精品综合在线观看 | 五月婷婷视频 | 色综合久久网 | 五月天六月丁香 | 91在线视频免费播放 | 国产福利一区二区三区视频 | 97av在线视频免费播放 | 超碰97在线资源站 | 91自拍成人 | 日本成人a | 欧美日韩在线观看一区二区 | 欧美在线91 | av福利超碰网站 | 亚洲日韩欧美一区二区在线 | 黄网站色视频免费观看 | 欧美日韩国产免费视频 | 成人动态视频 | 在线观看一区二区精品 | 亚洲观看黄色网 | 91视频在线看 | 色网站免费在线观看 | 久久99亚洲精品 | 91在线中字 | 国产在线高清 | 久久久精品成人 | 中文理论片| 久久久久国产精品视频 | 夜夜躁日日躁狠狠躁 | 麻豆视频在线看 | 久久久久国产一区二区三区 | 国产成人久久精品 | 亚洲国产精品视频在线观看 | 国产精品乱码久久久久久1区2区 | 久久激情视频网 | 人人插人人澡 | 中文字幕第一页在线视频 | 在线播放第一页 | 久久综合偷偷噜噜噜色 | 97av视频| 91福利影院在线观看 | 日韩欧美在线高清 | 日韩av网站在线播放 | 美女视频黄在线观看 | 亚洲精品国产精品国自产在线 | 亚洲精品资源 | 国产高清在线观看 | 天天操夜夜操国产精品 | 久久久久久久久久久久久9999 | 337p西西人体大胆瓣开下部 | 亚洲最大av网 | 久久综合国产伦精品免费 | 亚洲一区二区视频 | 一区久久久 | 国产剧情一区二区 | 又污又黄的网站 | 欧美成人猛片 | 久久 精品一区 | 国产精品系列在线观看 | 久久精品影片 | av观看网站 | 美女免费电影 | 国产一区 在线播放 | 久久精品成人热国产成 | 91最新在线观看 | 精品国模一区二区 | 亚洲久久视频 | 欧美日韩视频在线观看一区二区 | 欧美精品一区二区在线播放 | 亚洲男人天堂a | 久久精品视频网 | 久99精品| 日本中文字幕网 | 青青河边草手机免费 | 免费中文字幕视频 | 九九热1 | 国产美女永久免费 | 国产精品久久久久久久久搜平片 | 国产区在线看 | 在线播放国产一区二区三区 | 国产精品久久电影观看 | 欧美一级视频在线观看 | 国产精品一区二区麻豆 | 亚洲有 在线 | 国产黄a三级三级三级三级三级 | 亚洲国产精品第一区二区 | 久久久久久久久久毛片 | 国产美女视频一区 | 免费aa大片 | av在线中文| 亚洲国产精品一区二区久久hs | 玖玖视频| 亚洲欧美精品一区 | 国产精品免费观看久久 | 奇米网8888 | 国产玖玖精品视频 | 国产黄色观看 | 国产资源网 | 久久久久久久久久电影 | 99久久爱 | 狠狠狠色丁香婷婷综合激情 | 最新色视频 | 成人h在线 | 欧美午夜a | 亚洲成人精品在线观看 | 成人一级电影在线观看 | 人人爽人人爱 | 人人干天天射 | av在线免费观看不卡 | 中文字幕91在线 | 麻豆免费精品视频 | 五月婷婷综合激情网 | 国产精品99在线观看 | se婷婷| 成人中文字幕av | 在线观看国产亚洲 | 91亚色视频在线观看 | 色视频网站在线 | 999国内精品永久免费视频 | 激情深爱五月 | 国产日本亚洲高清 | 国产做爰视频 | 国内精品二区 | 黄色大片av | 久久久免费国产 | 日本中文字幕在线 | 伊人久久av | 日韩午夜网站 | 丁香花中文在线免费观看 | 肉色欧美久久久久久久免费看 | 精品国产成人av在线免 | 精品久久久久久久久久国产 | 国产精品成人一区二区三区吃奶 | 久精品一区 | 中文字幕视频三区 | 超碰在线中文字幕 | 天天av资源| 久久人人爽爽人人爽人人片av | 久久成人视屏 | 色噜噜在线观看 | 美女精品在线观看 | 99欧美精品 | 美女很黄免费网站 | 国产99久久久精品 | 99中文视频在线 | 成人在线免费观看视视频 | 亚洲三级在线 | 超碰在线官网 | 少妇bbw揉bbb欧美 | 91精品视频免费看 | 午夜免费视频网站 | 色综合久久久久久中文网 | 国产精品理论在线观看 | 日韩av免费一区二区 | 久久天堂影院 | 99视频| 在线精品观看国产 | 97**国产露脸精品国产 | 一级黄色片在线观看 | 婷婷久久综合九色综合 | 国产精国产精品 | 黄色av免费电影 | 国产只有精品 | 亚洲婷婷在线视频 | 黄网站www| 四虎影视www| 婷婷综合成人 | 国产精品k频道 | 四虎在线免费观看 | 三级a毛片 | 久久99精品国产麻豆婷婷 | 久久怡红院 | 伊人久久精品久久亚洲一区 | 欧美日韩高清 | av线上看 | 成人午夜黄色影院 | 久久成人国产 | 成人av免费在线播放 | 99久久久久免费精品国产 | 欧美精品久久天天躁 | 黄色大全免费观看 |