<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          ELK 不香了!我用 Graylog,輕量多了...

          共 6815字,需瀏覽 14分鐘

           ·

          2022-06-09 02:30

          點(diǎn)擊關(guān)注公眾號(hào),Java干貨及時(shí)送達(dá)

          作者:Escape
          來(lái)源:www.escapelife.site/posts/38c81b25.html

          服務(wù)日志收集方案:Filebeat + Graylog!

          當(dāng)我們公司內(nèi)部部署很多服務(wù)以及測(cè)試、正式環(huán)境的時(shí)候,查看日志就變成了一個(gè)非常剛需的需求了。是多個(gè)環(huán)境的日志統(tǒng)一收集,然后使用 Nginx 對(duì)外提供服務(wù),還是使用專用的日志收集服務(wù) ELK 呢?

          這就變成了一個(gè)問(wèn)題!而 Graylog 作為整合方案,使用 elasticsearch 來(lái)存儲(chǔ),使用 mongodb 來(lái)緩存,并且還有帶流量控制的 (throttling),同時(shí)其界面查詢簡(jiǎn)單易用且易于擴(kuò)展。

          所以,使用 Graylog 成為了不二之選,為我們省了不少心。

          使用Graylog來(lái)收集日志

          1. Filebeat 工具介紹

          服務(wù)日志收集方案:Filebeat + Graylog!

          [1] Filebeat - 日志文件托運(yùn)服務(wù)

          Filebeat 是一個(gè)日志文件托運(yùn)工具,在你的服務(wù)器上安裝客戶端后,filebeat 會(huì)自動(dòng)監(jiān)控給定的日志目錄或者指定的日志文件,追蹤讀取這些文件,不停的讀取,并且轉(zhuǎn)發(fā)這些信息到 elasticsearch 或者 logstarsh 或者 graylog 中存放。

          [2] Filebeat - 工作流程介紹

          當(dāng)你安裝并啟用 filebeat 程序的時(shí)候,它會(huì)啟動(dòng)一個(gè)或多個(gè)探測(cè)器(prospectors)去檢測(cè)你指定的日志目錄或文件,對(duì)于探測(cè)器找出的每一個(gè)日志文件,filebeat 都會(huì)啟動(dòng)一個(gè)收割進(jìn)程(harvester),每一個(gè)收割進(jìn)程讀取一個(gè)日志文件的最新內(nèi)容,并發(fā)送這些新的日志數(shù)據(jù)到處理程序(spooler),處理程序會(huì)集合這些事件,最后 filebeat 會(huì)發(fā)送集合的數(shù)據(jù)到你指定的地址上去(我們這里就是發(fā)送給graylog服務(wù)了)。

          [3] Filebeat - 圖示理解記憶

          我們這里不適用 logstash 服務(wù),主要是因?yàn)?filebeat 相比于 logstash 更加輕量級(jí)。當(dāng)我們需要收集信息的機(jī)器配置或資源并不是特別多時(shí),且并沒(méi)有那么復(fù)雜的時(shí)候,還是建議使用 filebeat 來(lái)收集日志。日常使用中,filebeat 的安裝部署方式多樣且運(yùn)行十分穩(wěn)定。

          圖示服務(wù)架構(gòu)理解記憶

          2. Filebeat 配置文件

          配置 Filebeat 工具的核心就是如何編寫其對(duì)應(yīng)的配置文件!

          對(duì)應(yīng) Filebeat 工具的配置主要是通過(guò)編寫其配置文件來(lái)控制的,對(duì)于通過(guò) rpm 或者 deb 包來(lái)安裝的情況,配置文件默認(rèn)會(huì)存儲(chǔ)在,/etc/filebeat/filebeat.yml 這個(gè)路徑下面。而對(duì)于,對(duì)于 MAC 或者 Win 系統(tǒng)來(lái)說(shuō),請(qǐng)查看解壓文件中相關(guān)文件,其中都有涉及。

          下面展示了 Filebeat 工具的主配置文件,注釋信息中都對(duì)其各個(gè)字段含義進(jìn)行了詳細(xì)的解釋,我這里就不再贅述了。需要注意的是,我們將日志的輸入來(lái)源統(tǒng)統(tǒng)定義去讀取 inputs.d 目錄下的所有 yml 配置。

          所以,我們可以更加不用的服務(wù)(測(cè)試、正式服務(wù))來(lái)定義不同的配置文件,根據(jù)物理機(jī)部署的實(shí)際情況具體配置。

          另外,最新面試題整理好了,大家可以在Java面試庫(kù)小程序在線刷題。

          #?配置輸入來(lái)源的日志信息
          #?我們合理將其配置到了inputs.d目錄下的所有yml文件
          filebeat.config.inputs:
          ??enabled:?true
          ??path:?${path.config}/inputs.d/*.yml
          ??#?若收取日志格式為json的log請(qǐng)開(kāi)啟此配置
          ??#?json.keys_under_root:?true

          #?配置filebeat需要加載的模塊
          filebeat.config.modules:
          ??path:?${path.config}/modules.d/*.yml
          ??reload.enabled:?false

          setup.template.settings:
          ??index.number_of_shards:?1

          #?配置將日志信息發(fā)送那個(gè)地址上面
          output.logstash:
          ??hosts:?["11.22.33.44:5500"]

          #?output.file:
          #???enable:?true

          processors:
          ??-?add_host_metadata:?~
          ??-?rename:
          ??????fields:
          ????????-?from:?"log"
          ??????????to:?"message"
          ??-?add_fields:
          ??????target:?""
          ??????fields:
          ????????#?加token是為了防止無(wú)認(rèn)證的服務(wù)上Graylog服務(wù)發(fā)送數(shù)據(jù)
          ????????token:?"0uxxxxaM-1111-2222-3333-VQZJxxxxxwgX?"

          下面展示一個(gè)簡(jiǎn)單inputs.d 目錄下面的 yml 配置文件的具體內(nèi)容,其主要作用就是配置單獨(dú)服務(wù)的獨(dú)立日志數(shù)據(jù),以及追加不同的數(shù)據(jù) tag 類型。

          點(diǎn)擊關(guān)注公眾號(hào),Java干貨及時(shí)送達(dá)

          #?收集的數(shù)據(jù)類型
          -?type:?log
          ??enabled:?true
          ??#?日志文件的路徑地址
          ??paths:
          ????-?/var/log/supervisor/app_escape_worker-stderr.log
          ????-?/var/log/supervisor/app_escape_prod-stderr.log
          ??symlinks:?true
          ??#?包含的關(guān)鍵字信息
          ??include_lines:?["WARNING",?"ERROR"]
          ??#?打上數(shù)據(jù)標(biāo)簽
          ??tags:?["app",?"escape",?"test"]
          ??#?防止程序堆棧信息被分行識(shí)別
          ??multiline.pattern:?'^\[?[0-9]...{3}'
          ??multiline.negate:?true
          ??multiline.match:?after

          #?需要配置多個(gè)日志時(shí)可加多個(gè)type字段
          -?type:?log
          ??enabled:?true
          ??......

          需要注意的是,針對(duì)于不同的日志類型,filebeat 還提供了不同了模塊來(lái)配置不同的服務(wù)日志以及其不同的模塊特性,比如我們常見(jiàn)的 PostgreSQlRedisIptables 等。

          推薦一個(gè) Spring Boot 基礎(chǔ)教程及實(shí)戰(zhàn)示例:https://github.com/javastacks/spring-boot-best-practice

          #?iptables
          -?module:?iptables
          ??log:
          ????enabled:?true
          ????var.paths:?["/var/log/iptables.log"]
          ????var.input:?"file"

          #?postgres
          -?module:?postgresql
          ??log:
          ????enabled:?true
          ????var.paths:?["/path/to/log/postgres/*.log*"]

          #?nginx
          -?module:?nginx
          ??access:
          ????enabled:?true
          ????var.paths:?["/path/to/log/nginx/access.log*"]
          ??error:
          ????enabled:?true
          ????var.paths:?["/path/to/log/nginx/error.log*"]

          3. Graylog 服務(wù)介紹

          服務(wù)日志收集方案:Filebeat + Graylog!

          [1] Graylog - 日志監(jiān)控系統(tǒng)

          Graylog 是一個(gè)開(kāi)源的日志聚合、分析、審計(jì)、展現(xiàn)和預(yù)警工具。在功能上來(lái)說(shuō),和 ELK 類似,但又比 ELK 要簡(jiǎn)單很多。依靠著更加簡(jiǎn)潔,高效,部署使用簡(jiǎn)單的優(yōu)勢(shì)很快受到許多人的青睞。當(dāng)然,在擴(kuò)展性上面確實(shí)沒(méi)有比 ELK 好,但是其有商業(yè)版本可以選擇。

          [2] Graylog - 工作流程介紹

          部署 graylog 最簡(jiǎn)單的架構(gòu)就是單機(jī)部署,復(fù)雜的也是部署集群模式,架構(gòu)圖示如下所示。我們可以看到其中包含了三個(gè)組件,分別是 ElasticsearchMongoDbGraylog

          其中,Elasticsearch 用來(lái)持久化存儲(chǔ)和檢索日志文件數(shù)據(jù)(IO 密集),MongoDb 用來(lái)存儲(chǔ)關(guān)于 Graylog 的相關(guān)配置,而 Graylog 來(lái)提供 Web 界面和對(duì)外接口的(CPU 密集)。

          最小化單機(jī)部署
          最優(yōu)化集群部署

          4. Graylog 組件功能

          配置 Graylog 服務(wù)的核心就是理解對(duì)應(yīng)組件的功能以及其運(yùn)作方式!

          簡(jiǎn)單來(lái)講,Input 表示日志數(shù)據(jù)的來(lái)源,對(duì)不同來(lái)源的日志可以通過(guò) Extractors 來(lái)進(jìn)行日志的字段轉(zhuǎn)換,比如將 Nginx 的狀態(tài)碼變成對(duì)應(yīng)的英文表述等。然后,通過(guò)不同的標(biāo)簽類型分組成不用的 Stream,并將這些日志數(shù)據(jù)存儲(chǔ)到指定的 Index 庫(kù)中進(jìn)行持久化保存。

          編號(hào)組件名稱功能介紹主要特點(diǎn)
          1Dashboards數(shù)據(jù)面板固定展示主要是用來(lái)保存特定搜索條件的數(shù)據(jù)面板
          2Searching日志信息條件搜索關(guān)鍵字搜索、時(shí)間搜索、搜索保存、創(chuàng)建面板、分組查詢、結(jié)果導(dǎo)出、查詢高亮顯示、自定義時(shí)間
          3Alert設(shè)置告警提示方式支持郵件告警、HTTP 回調(diào)和自定義腳本觸發(fā)
          4Inputs日志數(shù)據(jù)抓取接收部署 Sidercar 主動(dòng)抓取或使用其他服務(wù)被動(dòng)上報(bào)
          5Extractors日志數(shù)據(jù)格式轉(zhuǎn)換json 解析、kv 解析、時(shí)間戳解析、正則解析
          6Streams日志信息分類分組設(shè)置日志分類條件并發(fā)送到不同的索引文件中去
          7Indices持久化數(shù)據(jù)存儲(chǔ)設(shè)置數(shù)據(jù)存儲(chǔ)性能
          8Outputs日志數(shù)據(jù)的轉(zhuǎn)發(fā)解析的 Stream 發(fā)送到其他 Graylog 集群或服務(wù)
          9Pipelines日志數(shù)據(jù)的過(guò)濾建立數(shù)據(jù)清洗的過(guò)濾規(guī)則、字段添加刪除、條件過(guò)濾、自定義函數(shù)等
          10Sidecar輕量級(jí)的日志采集器相當(dāng)于 C/S 模式;大規(guī)模時(shí)使用
          11Lookup Tables服務(wù)解析基于 IP 的 Whois 查詢和基于來(lái)源 IP 的情報(bào)監(jiān)控
          12Geolocation可視化地理位置實(shí)現(xiàn)基于來(lái)源 IP 的情報(bào)監(jiān)控
          Graylog中的核心服務(wù)組件

          Graylog中的核心服務(wù)組件

          Graylog 通過(guò) Input 搜集日志,每個(gè) Input 單獨(dú)配置 Extractors 用來(lái)做字段轉(zhuǎn)換。Graylog 中日志搜索的基本單位是 Stream,每個(gè) Stream 可以有自己?jiǎn)为?dú)的 Elastic Index Set,也可以共享一個(gè) Index Set

          ExtractorSystem/Input 中配置。Graylog 中很方便的一點(diǎn)就是可以加載一條日志,然后基于這個(gè)實(shí)際的例子進(jìn)行配置并能直接看到結(jié)果。內(nèi)置的 Extractor 基本可以完成各種字段提取和轉(zhuǎn)換的任務(wù),但是也有些限制,在應(yīng)用里寫日志的時(shí)候就需要考慮到這些限制。Input 可以配置多個(gè) Extractors,按照順序依次執(zhí)行。

          系統(tǒng)會(huì)有一個(gè)默認(rèn)的 Stream,所有日志默認(rèn)都會(huì)保存到這個(gè) Stream 中,除非匹配了某個(gè) Stream,并且這個(gè) Stream 里配置了不保存日志到默認(rèn) Stream。可以通過(guò)菜單 Streams 創(chuàng)建更多的 Stream,新創(chuàng)建的 Stream 是暫停狀態(tài),需要在配置完成后手動(dòng)啟動(dòng)。Stream 通過(guò)配置條件匹配日志,滿足條件的日志添加 stream ID 標(biāo)識(shí)字段并保存到對(duì)應(yīng)的 Elastic Index Set 中。

          Index Set 通過(guò)菜單 System/Indices 創(chuàng)建。日志存儲(chǔ)的性能,可靠性和過(guò)期策略都通過(guò) Index Set 來(lái)配置。性能和可靠性就是配置 Elastic Index 的一些參數(shù),主要參數(shù)包括,ShardsReplicas

          除了上面提到的日志處理流程,Graylog 還提供了 Pipeline 腳本實(shí)現(xiàn)更靈活的日志處理方案。這里不詳細(xì)闡述,只介紹如果使用 Pipelines 來(lái)過(guò)濾不需要的日志。下面是丟棄 level > 6 的所有日志的 Pipeline Rule 的例子。從數(shù)據(jù)采集(input),字段解析(extractor),分流到 stream,再到 pipeline 的清洗,一氣呵成,無(wú)需在通過(guò)其他方式進(jìn)行二次加工。

          Sidecar 是一個(gè)輕量級(jí)的日志采集器,通過(guò)訪問(wèn) graylog 進(jìn)行集中式管理,支持 linuxwindows 系統(tǒng)。Sidecar 守護(hù)進(jìn)程會(huì)定期訪問(wèn) graylogREST API 接口獲取 Sidecar 配置文件中定義的標(biāo)簽(tag) ,Sidecar 在首次運(yùn)行時(shí)會(huì)從 graylog 服務(wù)器拉取配置文件中指定標(biāo)簽(tag) 的配置信息同步到本地。

          目前 Sidecar 支持 NXLogFilebeatWinlogbeat。他們都通過(guò) graylog 中的 web 界面進(jìn)行統(tǒng)一配置,支持 BeatsCEFGelfJson APINetFlow 等輸出類型。Graylog 最厲害的在于可以在配置文件中指定 Sidecar 把日志發(fā)送到哪個(gè) graylog 群集,并對(duì) graylog 群集中的多個(gè) input 進(jìn)行負(fù)載均衡,這樣在遇到日志量非常龐大的時(shí)候,graylog 也能應(yīng)付自如。

          rule?"discard?debug?messages"
          when
          ??to_long($message.level)?>?6
          then
          ??drop_message();
          end

          日志集中保存到 Graylog 后就可以方便的使用搜索了。不過(guò)有時(shí)候還是需要對(duì)數(shù)據(jù)進(jìn)行近一步的處理。主要有兩個(gè)途徑,分別是直接訪問(wèn) Elastic 中保存的數(shù)據(jù),或者通過(guò) GraylogOutput 轉(zhuǎn)發(fā)到其它服務(wù)。

          想成為架構(gòu)師,這份架構(gòu)師圖譜建議看看,少走彎路


          5. 服務(wù)安裝和部署

          主要介紹部署 Filebeat + Graylog 的安裝步驟和注意事項(xiàng)!

          使用Graylog來(lái)收集日志

          [1] 部署 Filebeat 工具

          官方提供了多種的部署方式,包括通過(guò) rpmdeb 包安裝服務(wù),以及源代碼編譯的方式安裝服務(wù),同時(shí)包括了使用 Docker 或者 kubernetes 的方式安裝服務(wù)。我們根據(jù)自己的實(shí)際需要,進(jìn)行安裝即可。

          點(diǎn)擊關(guān)注公眾號(hào),Java干貨及時(shí)送達(dá)

          #?Ubuntu(deb)
          $?curl?-L?-O?https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-7.8.1-amd64.deb
          $?sudo?dpkg?-i?filebeat-7.8.1-amd64.deb
          $?sudo?systemctl?enable?filebeat
          $?sudo?service?filebeat?start
          #?使用docker啟動(dòng)
          docker?run?-d?--name=filebeat?--user=root?\
          ??--volume="./filebeat.docker.yml:/usr/share/filebeat/filebeat.yml:ro"?\
          ??--volume="/var/lib/docker/containers:/var/lib/docker/containers:ro"?\
          ??--volume="/var/run/docker.sock:/var/run/docker.sock:ro"?\
          ??docker.elastic.co/beats/filebeat:7.8.1?filebeat?-e?-strict.perms=false?\
          ??-E?output.elasticsearch.hosts=["elasticsearch:9200"]
          使用Graylog來(lái)收集日志

          [2] 部署 Graylog 服務(wù)

          我們這里主要介紹使用 Docker 容器來(lái)部署服務(wù),如果你需要使用其他方式來(lái)部署的話,請(qǐng)自行查看官方文檔對(duì)應(yīng)章節(jié)的安裝部署步驟。在服務(wù)部署之前,我們需要給 Graylog 服務(wù)生成等相關(guān)信息,生成部署如下所示:

          #?生成password_secret密碼(最少16位)
          $?sudo?apt?install?-y?pwgen
          $?pwgen?-N?1?-s?16
          zscMb65...FxR9ag

          #?生成后續(xù)Web登錄時(shí)所需要使用的密碼
          $?echo?-n?"Enter?Password:?"?&&?head?-1?'\n'?|?sha256sum?|?cut?-d"?"?-f1
          Enter?Password:?zscMb65...FxR9ag
          77e29e0f...557515f

          想成為架構(gòu)師,這份架構(gòu)師圖譜建議看看,少走彎路

          生成所需密碼信息之后,我們將如下 yml 信息保存到 docker-comopse.yml 文件中,使用 docker-compose 命令啟動(dòng)該服務(wù),即可完成部署。之后,通過(guò)瀏覽器訪問(wèn)對(duì)應(yīng)服務(wù)器地址的 9000 端口,即可登錄主頁(yè) 。

          version:?"3"

          services:
          ??mongo:
          ????restart:?on-failure
          ????container_name:?graylog_mongo
          ????image:?"mongo:3"
          ????volumes:
          ??????-?"./mongodb:/data/db"
          ????networks:
          ??????-?graylog_network

          ??elasticsearch:
          ????restart:?on-failure
          ????container_name:?graylog_es
          ????image:?"elasticsearch:6.8.5"
          ????volumes:
          ??????-?"./es_data:/usr/share/elasticsearch/data"
          ????environment:
          ??????-?http.host=0.0.0.0
          ??????-?transport.host=localhost
          ??????-?network.host=0.0.0.0
          ??????-?"ES_JAVA_OPTS=-Xms512m?-Xmx5120m"
          ????ulimits:
          ??????memlock:
          ????????soft:?-1
          ????????hard:?-1
          ????deploy:
          ??????resources:
          ????????limits:
          ??????????memory:?12g
          ????networks:
          ??????-?graylog_network

          ??graylog:
          ????restart:?on-failure
          ????container_name:?graylog_web
          ????image:?"graylog/graylog:3.3"
          ????ports:
          ??????-?9000:9000?#?Web服務(wù)提供的訪問(wèn)端口
          ??????-?5044:5044?#?Filebeat工具提供端口
          ??????-?12201:12201?#?GELF?TCP
          ??????-?12201:12201/udp?#?GELF?UDP
          ??????-?1514:1514?#?Syslog?TCP
          ??????-?1514:1514/udp?#?Syslog?UDP
          ????volumes:
          ??????-?"./graylog_journal:/usr/share/graylog/data/journal"
          ????environment:
          ??????-?GRAYLOG_PASSWORD_SECRET=zscMb65...FxR9ag
          ??????-?GRAYLOG_ROOT_PASSWORD_SHA2=77e29e0f...557515f
          ??????-?GRAYLOG_HTTP_EXTERNAL_URI=http://11.22.33.44:9000/
          ??????-?GRAYLOG_TIMEZONE=Asia/Shanghai
          ??????-?GRAYLOG_ROOT_TIMEZONE=Asia/Shanghai
          ????networks:
          ??????-?graylog
          ????depends_on:
          ??????-?mongo
          ??????-?elasticsearch

          networks:
          ??graylog_network:
          ????driver:?bridge

          需要注意的是,GELF(Graylog Extended Log Format) 的 input 模式可以接受結(jié)構(gòu)化的事件,支持壓縮和分塊。恰好,Docker 服務(wù)的 log-driver 驅(qū)動(dòng)原生提供了 GELF 的支持。

          只需要我們?cè)?Graylogsystem/inputs 下面創(chuàng)建對(duì)應(yīng)的 input 之后,啟動(dòng)容器時(shí)候指定 log-driver,就可以將容器內(nèi)的輸出都會(huì)發(fā)送到 Graylog 里面了。

          另外,最新面試題整理好了,大家可以在Java面試庫(kù)小程序在線刷題。

          使用Graylog來(lái)收集日志
          #?[docker]?啟動(dòng)容器指定地址和driver
          docker?run?--rm=true?\
          ????--log-driver=gelf?\
          ????--log-opt?gelf-address=udp://11.22.33.44:12201?\
          ????--log-opt?tag=myapp?\
          ????myapp:0.0.1
          #?[docker-compose]?啟動(dòng)使用方式
          version:?"3"
          services:
          ??redis:
          ????restart:?always
          ????image:?redis
          ????container_name:?"redis"
          ????logging:
          ??????driver:?gelf
          ??????options:
          ????????gelf-address:?udp://11.22.33.44:12201
          ????????tag:?"redis"
          ??......

          6. Graylog 界面功能

          主要介紹 Graylog 界面的相關(guān)功能和對(duì)應(yīng)特點(diǎn)!

          Graylog界面功能
          Graylog界面功能
          Graylog界面功能
          Graylog界面功能
          Graylog界面功能

          授人玫瑰,手有余香!

          相關(guān)參考文章引用:

          Filebeat 官方手冊(cè):https://www.elastic.co/guide/en/beats/filebeat/current/index.html
          Filebeat 中文指南:https://www.cnblogs.com/kerwinC/p/6227768.html
          Graylog 集中日志系統(tǒng):https://medium.com/@doitian/graylog-集中日志系統(tǒng)-1f715bb7998c
          Graylog2 采集 Nginx 日志 主動(dòng)方式:https://zhuanlan.zhihu.com/p/113761931
          Graylog2 采集 Nginx 日志 主動(dòng)方式:https://zhuanlan.zhihu.com/p/113761931








          Spring Boot 定時(shí)任務(wù)開(kāi)啟后,怎么自動(dòng)停止?
          工作 3 年的同事不知道如何回滾代碼
          23 種設(shè)計(jì)模式實(shí)戰(zhàn)(很全)
          Spring Boot 保護(hù)敏感配置的 4 種方法!
          再見(jiàn)單身狗!Java 創(chuàng)建對(duì)象的 6 種方式
          阿里為什么推薦使用 LongAdder?
          新來(lái)一個(gè)技術(shù)總監(jiān):禁止戴耳機(jī)寫代碼。。
          重磅!Spring Boot 2.7 正式發(fā)布
          Java 18?正式發(fā)布,finalize 被棄用。
          Spring Boot Admin 橫空出世!
          Spring Boot 學(xué)習(xí)筆記,這個(gè)太全了!



          關(guān)注Java技術(shù)棧看更多干貨



          獲取 Spring Boot 實(shí)戰(zhàn)筆記!
          瀏覽 51
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  欧美草逼网站 | 免费在线观看内射 | 五月天亚洲乱伦小说 | 特黄色电影免费观看 | 日韩欧美国产三级片 |