天天看點

部署Tshark+ELK資料包分析平台

系統版本:Ubuntu20.04.2LTS

Tshark:thark_3.2.3-1

Logstash:logstash-7.12.0-amd64.deb

Elasticsearch:elasticsearch-7.12.0-amd64.deb

Kibana:kibana-7.12.0-amd64.deb

系統結構圖參考:

部署Tshark+ELK資料包分析平台

1.   下載下傳logstash;

# wget https://artifacts.elastic.co/downloads/logstash/logstash-7.12.0-amd64.deb

2.   下載下傳elasticsearch;

# wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.12.0-amd64.deb

3.   下載下傳kibana;

# wget https://artifacts.elastic.co/downloads/kibana/kibana-7.12.0-amd64.deb

4.   下載下傳tsharkVM git包(主要用到裡面一個處理腳本);

# git clone https://github.com/H21lab/tsharkVM.git

5.   修改Ubuntu的source源味國内鏡像源;

6.   更新系統;

# apt update && apt upgrade && reboot

1、 安裝tshark和java

2、 安裝ELK

1、 elasticsearch配置

# cd /etc/elasticsearch/

# vim jvm.options

部署Tshark+ELK資料包分析平台

# vim elasticsearch.yml

部署Tshark+ELK資料包分析平台
部署Tshark+ELK資料包分析平台

# systemctl daemon-reload

重新開機服務;

# systemctl restart elasticsearch.service

檢視服務狀态;

# systemctl status elasticsearch.service

●elasticsearch.service - Elasticsearch

    Loaded: loaded (/lib/systemd/system/elasticsearch.service; enabled; vendor preset: enabled)

    Active: active (running) since Fri 2021-08-13 02:55:08 UTC; 4h 7min ago

      Docs: https://www.elastic.co

  Main PID: 271265 (java)

     Tasks: 99 (limit: 19109)

    Memory: 8.6G

    CGroup: /system.slice/elasticsearch.service

             ├─271265 /usr/share/elasticsearch/jdk/bin/java -Xshare:auto -Des.networkaddress.cache.ttl=60 -Des.networkaddress.cache.negative.ttl=10 -XX:+AlwaysPreT>

             └─271470 /usr/share/elasticsearch/modules/x-pack-ml/platform/linux-x86_64/bin/controller

Aug 13 02:54:48 elas systemd[1]: Starting Elasticsearch...

Aug 13 02:55:08 elas systemd[1]: Started Elasticsearch.

檢視服務監聽端口;

# netstat -tlunp

Active Internet connections (only servers)

Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name

tcp        0     0 127.0.0.53:53          0.0.0.0:*               LISTEN      661/systemd-resolve

tcp        0     0 0.0.0.0:22              0.0.0.0:*               LISTEN      780/sshd: /usr/sbin

tcp        0     0 127.0.0.1:6010         0.0.0.0:*               LISTEN      265188/sshd: root@p

tcp        0     0 0.0.0.0:5601           0.0.0.0:*               LISTEN      270722/node

tcp6       0     0 :::9300                :::*                    LISTEN      271265/java

tcp6       0     0 :::22                  :::*                    LISTEN      780/sshd: /usr/sbin

tcp6       0     0 ::1:6010               :::*                    LISTEN     265188/sshd: root@p

tcp6       0     0 127.0.0.1:9600         :::*                    LISTEN      270442/java

tcp6       0     0 :::9200                :::*                    LISTEN      271265/java

udp        0     0 127.0.0.53:53           0.0.0.0:*                           661/systemd-resolve

2、 logstash配置

# cd /etc/logstash/

部署Tshark+ELK資料包分析平台

# cd conf.d/

增加tshark資料輸入到elasticsearch配置檔案;

重新開機服務

# systemctl restart logstash.service

檢視伺服器狀态

# systemctl status logstash.service

● logstash.service - logstash

    Loaded: loaded (/etc/systemd/system/logstash.service; enabled; vendor preset: enabled)

    Active: active (running) since Fri 2021-08-13 02:10:24 UTC; 5h 17min ago

  Main PID: 270442 (java)

     Tasks: 72 (limit: 19109)

    Memory: 2.6G

    CGroup: /system.slice/logstash.service

             └─270442 /usr/share/logstash/jdk/bin/java -Xms2g -Xmx2g -XX:+UseG1GC -XX:CMSInitiatingOccupancyFraction=75 -XX:+UseCMSInitiatingOccupancyOnly -Djava.a>

Aug 13 02:10:46 elas logstash[270442]: [2021-08-13T02:10:46,739][WARN ][logstash.outputs.elasticsearch][main] Restored connection to ES instance {:url=>"http://loc>

Aug 13 02:10:46 elas logstash[270442]: [2021-08-13T02:10:46,798][INFO ][logstash.outputs.elasticsearch][main] ES Output version determined {:es_version=>7}

Aug 13 02:10:46 elas logstash[270442]: [2021-08-13T02:10:46,802][WARN ][logstash.outputs.elasticsearch][main] Detected a 6.x and above cluster: the `type` event fi>

Aug 13 02:10:46 elas logstash[270442]: [2021-08-13T02:10:46,857][INFO ][logstash.outputs.elasticsearch][main] New Elasticsearch output {:class=>"LogStash::Outputs:>

Aug 13 02:10:47 elas logstash[270442]: [2021-08-13T02:10:47,110][INFO ][logstash.javapipeline    ][main] Starting pipeline {:pipeline_id=>"main", "pipeline.workers>

Aug 13 02:10:48 elas logstash[270442]: [2021-08-13T02:10:48,070][INFO ][logstash.javapipeline    ][main] Pipeline Java execution initialization time {"seconds"=>0.>

Aug 13 02:10:48 elas logstash[270442]: [2021-08-13T02:10:48,325][INFO ][logstash.inputs.file     ][main] No sincedb_path set, generating one based on the "path" se>

Aug 13 02:10:48 elas logstash[270442]: [2021-08-13T02:10:48,352][INFO ][logstash.javapipeline    ][main] Pipeline started {"pipeline.id"=>"main"}

Aug 13 02:10:48 elas logstash[270442]: [2021-08-13T02:10:48,409][INFO ][filewatch.observingtail ][main][6efc126c2ab1b0e66a90b494d9a18ae7dc55003ac5f9addc874a5130d9>

Aug 13 02:10:48 elas logstash[270442]: [2021-08-13T02:10:48,417][INFO ][logstash.agent           ] Pipelines running {:count=>1, :running_pipelines=>[:main], :non_>

3、 kibana配置

# cd /etc/kibana/

# vim kibana.yml

部署Tshark+ELK資料包分析平台

# systemctl restart kibana.service

# systemctl status kibana.service

● kibana.service - Kibana

     Loaded: loaded (/etc/systemd/system/kibana.service; enabled; vendor preset: enabled)

     Active: active (running) since Fri 2021-08-13 02:19:08 UTC; 5h 16min ago

       Docs: https://www.elastic.co

   Main PID: 270722 (node)

      Tasks: 11 (limit: 19109)

     Memory: 267.2M

     CGroup: /system.slice/kibana.service

            └─270722 /usr/share/kibana/bin/../node/bin/node /usr/share/kibana/bin/../src/cli/dist --logging.dest=/var/log/kibana/kibana.log --pid.file=/run/kibana>

Aug 13 02:19:08 elas systemd[1]: Started Kibana.

檢視服務監聽端口

tcp       0      0 127.0.0.53:53           0.0.0.0:*               LISTEN      661/systemd-resolve

tcp       0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      780/sshd: /usr/sbin

tcp       0      0 127.0.0.1:6010          0.0.0.0:*               LISTEN      265188/sshd: root@p

tcp       0      0 0.0.0.0:5601            0.0.0.0:*               LISTEN      270722/node

tcp6      0      0 :::9300                 :::*                    LISTEN      271265/java

tcp6      0      0 :::22                   :::*                    LISTEN      780/sshd: /usr/sbin

tcp6      0      0 ::1:6010                :::*                    LISTEN      265188/sshd: root@p

tcp6      0      0 127.0.0.1:9600          :::*                    LISTEN      270442/java

tcp6      0      0 :::9200                 :::*                    LISTEN      271265/java

udp        0      0 127.0.0.53:53           0.0.0.0:*                           661/systemd-resolve

1、 導出elastic-mapping;

# cd tsharkVM/Kibana

# tshark -G elastic-mapping --elastic-mapping-filter frame,eth,ip,udp,tcp,dns > custom_tshark_mapping.json

2、 處理重複字段和類型;(腳本處理完後,還有一些字段類型不比對,在logstash導入資料時會有提示,根據提示,修改後再重新導入);

# ruby ./Public/process_tshark_mapping_json.rb

3、 導入模闆檔案;

# curl -X PUT "localhost:9200/_index_template/packets_template" -H 'Content-Type: application/json' \

-d@custom_tshark_mapping_deduplicated.json

{"acknowledged":true}

#

1、 使用tshark将資料包轉換為elasticsearch格式,由logstacsh輸出到elasticsearch;

# tshark –T ek –x –r 1030.pcap > /data/packets.json

2、 在kibana上建立index patterns;

部署Tshark+ELK資料包分析平台
部署Tshark+ELK資料包分析平台
部署Tshark+ELK資料包分析平台

自定義展示;

部署Tshark+ELK資料包分析平台
部署Tshark+ELK資料包分析平台
部署Tshark+ELK資料包分析平台