項目實戰14—ELK 企業內部日誌分析系統

来源:https://www.cnblogs.com/along21/archive/2018/03/05/8509123.html
-Advertisement-
Play Games

本文收錄在Linux運維企業架構實戰系列 一、els、elk 的介紹 1、els,elk els:ElasticSearch,Logstash,Kibana,Beats elk:ElasticSearch,Logstash,Kibana ① ElasticSearch 搜索引擎 ElasticSea ...


本文收錄在Linux運維企業架構實戰系列

一、els、elk 的介紹

1、els,elk

els:ElasticSearch,Logstash,Kibana,Beats

elk:ElasticSearch,Logstash,Kibana

① ElasticSearch 搜索引擎

  ElasticSearch 是一個基於Lucene的搜索引擎,提供索引,搜索功能。它提供了一個分散式多用戶能力的全文搜索引擎,基於RESTful web介面。Elasticsearch是用Java開發的,並作為Apache許可條款下的開放源碼發佈,是當前流行的企業級搜索引擎。設計用於雲計算中,能夠達到實時搜索,穩定,可靠,快速,安裝使用方便

② Logstash 接收,處理,轉發日誌的工具

  Logstash 是一個開源的伺服器端數據處理流水線,它可以同時從多個數據源獲取數據,並將其轉換為最喜歡的"存儲"(Ours is Elasticsearch, naturally.)

③ Beats:採集日誌信息(加上beats 就是els),GO開發的,所以高效、很快

  Filebeat:Log Files

  Metricbeat:Metrics

  Packetbeat:Network Data

  Winlogbeat:Windows Event Logs

  Heartbeat:Uptime Monitoring

④ Kibana:獨立的、美觀的圖形數據展示界面

  Kibana 讓你可視化你的Elasticsearch數據並導航Elastic Stack,所以你可以做任何事情,從凌晨2:00分析為什麼你得到分頁,瞭解雨水可能對你的季度數字造成的影響。

 

2、實驗前準備

實驗所需要的包(我用的是5.5.1版本),都放在我的網盤裡了,需要的私聊 https://pan.baidu.com/s/1c2An0Co

① 環境準備

機器名稱

IP配置

服務角色

els

192.168.1.101(私)

192.168.10.101(公)

elasticsearch(搜索引擎)

logstash

192.168.1.102(私)

192.168.10.102(公)

logstash(日誌處理)

redis(緩衝隊列)

filebeat

 

192.168.1.103(私)

192.168.10.103(公)

filebeat(日誌收集)

httpd/mysql(生成日誌)

kibana

192.168.1.104(私)

192.168.10.104(公)

kibana(展示界面)

② 修改主機名、hosts文件,確保節點直接能通過主機名連通

[root@els ~]# hostnamectl set-hostname els.along.com

[root@logstash ~]# hostnamectl set-hostname logstash.along.com

[root@filebeat ~]# hostnamectl set-hostname filebeat.along.com

[root@kibana ~]# hostnamectl set-hostname kibana.along.com

centos7 修改主機名:

[root@server1 ~]# hostnamectl set-hostname 主機名

 

③ 修改hosts

[root@server1 ~]# vim /etc/hosts

192.168.1.101 els.along.com

192.168.1.102 logstash.along.com

192.168.1.103 filebeat.along.com

192.168.1.104 kibana.along.com

互相測試

[root@els ~]# ping filebeat.along.com

 

④ 關閉防火牆、selinux

[root@server1 ~]# iptables -F

[root@server3 ~]# setenforce 0

 

⑤ 同步時間

[root@server1 ~]# systemctl restart chronyd

 

二、安裝搭建elasticsearch 和head 插件

1、安裝elasticsearch

  Elasticsearch 是一個分散式的 RESTful 風格的搜索和數據分析引擎,能夠解決不斷涌現出的各種用例。作為 Elastic Stack 的核心,它集中存儲您的數據,幫助您發現意料之中以及意料之外的情況

(1)官網下載,各種版本

https://www.elastic.co

 

(2)安裝java 環境

安裝JDK,至少1.8 以上的版本

因為是java 語言編寫的,需安裝JDK

[root@server1 ~]# yum install java-1.8.0-openjdk-devel -y

 

(3)安裝els

在網上找自己需要的版本,我下好了5.5.1 版本,在網盤裡

[root@server1 ~]# rpm -ivh elasticsearch-5.5.1.rpm

 

2、配置elasticsearch

(1)修改JVM 的配置

[root@server1 ~]# vim /etc/elasticsearch/jvm.options 修改分配的空間大小

-Xms1g #初始化大小

-Xmx1g #最大大小

註意:不要超過32G,如果空間大,多跑幾個實例,不要讓一個實例太大記憶體

生產環境,建議都給32;為了實驗方便,我直接改成了1g

 

(2)配置els

[root@els ~]# vim /etc/elasticsearch/elasticsearch.yml

cluster.name: alongels    #集群名字
node.name: els   #節點名
path.data: /els/data   #索引路徑
path.logs: /els/logs    #日誌存儲路徑
network.host: 192.168.10.101   #對外通信的地址,依次修改為自己機器對外的IP
#http.port: 9200    #預設埠

 

(3)創建出所需的路徑,並修改許可權

[root@els ~]# mkdir -pv /els/{data,logs} && chown -R elasticsearch.elasticsearch /els/*

 

(4)開啟服務

[root@els ~]# systemctl start elasticsearch.service

 

(5)測試elasticsearch

① 開啟服務,會打開9200 埠

② [root@server1 ~]# curl 192.168.10.101:9200

 

3、搭建elasticsearch 集群(自己選擇)

我因機器缺少,所以沒有做集群;若機器夠用,建議做集群

(1)配置els

[root@server1 ~]# vim /etc/elasticsearch/elasticsearch.yml

cluster.name: alongels    #集群名字
node.name: server1   #節點名,依次修改為server2,server3
path.data: /els/data   #索引路徑
path.logs: /els/logs    #日誌存儲路徑
network.host: 192.168.10.101   #對外通信的地址,依次修改為自己機器對外的IP
#http.port: 9200    #預設埠
discovery.zen.ping.unicast.hosts: ["server1", "server2","server3"]   #發現方式,採用單播
discovery.zen.minimum_master_nodes: 2   #數量要大於集群中節點的半數

 

(2)創建出所需的路徑,並修改許可權

[root@server1 ~]# mkdir -pv /els/{data,logs} && chown -R elasticsearch.elasticsearch /els/*

[root@server2 ~]# mkdir -pv /els/{data,logs} && chown -R elasticsearch.elasticsearch /els/*

[root@server3 ~]# mkdir -pv /els/{data,logs} && chown -R elasticsearch.elasticsearch /els/*

 

(3)開啟3個節點的服務

[root@server3 ~]# systemctl start elasticsearch.service

 

4、安裝elasticsearch 的head插件(Web前端)

https://github.com/mobz/elasticsearch-head 這裡有github上的詳細步驟

(1)安裝head 插件

① 下載git 環境

[root@server1 ~]$ cd /usr/local/

[root@server1 local]$ yum -y install git

 

② git 克隆

[root@server1 local]$ git clone git://github.com/mobz/elasticsearch-head.git

[root@server1 local]$ cd elasticsearch-head/

 

③ 安裝npm 包

[root@server1 elasticsearch-head]$ yum -y install npm

 

④ 安裝npm 的各種模塊

[root@server1 elasticsearch-head]$ npm install

註意:需連網,安裝需一段時間

 

⑤ 中間會出錯,提示解壓一個包失敗,手動解開就好

Error: Command failed: tar jxf /tmp/phantomjs/phantomjs-2.1.1-linux-x86_64.tar.bz2

解決辦法:

bunzip2 /tmp/phantomjs/phantomjs-2.1.1-linux-x86_64.tar.bz2

tar -xvf /tmp/phantomjs/phantomjs-2.1.1-linux-x86_64.tar

再次執行[root@server1 elasticsearch-head]$ npm install

成功

 

(2)再次修改配置文件,在最後加一個配置段

[root@server1 ~]$ vim /etc/elasticsearch/elasticsearch.yml

# ------------------------ Enable CORS in elasticsearch -------------------------
http.cors.enabled: true
http.cors.allow-origin: "*"      #授所有許可權

 

(3)運行head

① 重啟elasticsearch 服務,打開了9100 埠

[root@server1 ~]$ service elasticsearch restart

 

② 啟動head

[root@server1 ~]# cd /usr/local/elasticsearch-head/

[root@server1 elasticsearch-head]# npm run start 前端運行

[root@server1 elasticsearch-head]# nohup npm run start & 後臺運行

[root@server1 elasticsearch-head]# jobs 查看後臺運行的任務

[1]+ Running nohup npm run start &

 

5、測試elasticsearch-head

網頁訪問http://192.168.1.101:9100/

 

6、elasticsearch-head 的全功能文本搜索引擎庫:lucene

https://lucene.apache.org/core/ 下載地址

  Apache Lucene 是一個完全用Java編寫的高性能,全功能的文本搜索引擎庫。它幾乎適用於任何需要全文搜索的應用程式,特別是跨平臺的應用程式。

有經典的查詢分析器語法結構,根據自己需要安裝。

  

三、安裝介紹logstash

1、介紹

(1)定義

查看官方文檔 https://www.elastic.co/cn/products/logstash

① 官方介紹:Logstash is an open source data collection engine with real-time pipelining capabilities。簡單來說logstash就是一根具備實時數據傳輸能力的管道,負責將數據信息從管道的輸入端傳輸到管道的輸出端;與此同時這根管道還可以讓你根據自己的需求在中間加上濾網,Logstash提供里很多功能強大的濾網以滿足你的各種應用場景。

 

② Logstash的事件(logstash將數據流中等每一條數據稱之為一個event)處理流水線有三個主要角色完成:inputs –> filters –> outputs:

  • inpust:必須,負責產生事件(Inputs generate events),常用:File、syslog、redis、beats(如:Filebeats)
  • filters:可選,負責數據處理與轉換(filters modify them),常用:grok、mutate、drop、clone、geoip
  • outpus:必須,負責數據輸出(outputs ship them elsewhere),常用:elasticsearch、file、graphite、statsd

 

(2)有自己的搜索模式,事先定義好的

所謂的搜索模式就是像變數一樣,把用的較多的事先定義好,便於多次引用

[root@centos7-1 conf.d]# rpm -ql logstash |grep pattern

[root@centos7-1 conf.d]# less /usr/share/logstash/vendor/bundle/jruby/1.9/gems/logstash-patterns-core-4.1.1/patterns/grok-patterns

/usr/share/logstash/vendor/bundle/jruby/1.9/gems/logstash-patterns-core-4.1.1/patterns

例如:httpd 的搜索模式

 

(3)文檔,有較詳細的用法介紹

選擇對應版本

① input

② filter

③ output

 

2、下載安裝

① 去官網下載對應版本的logstash ,我下載的是5.5.1版本

https://www.elastic.co/cn/downloads/logstash

[root@centos7-1 els]# rpm -ivh logstash-5.5.1.rpm

 

② 修改環境變數,可以直接使用logstash 命令

[root@centos7-1 els]# vim /etc/profile.d/logstash.sh

export PATH=$PATH:/usr/share/logstash/bin/

[root@centos7-1 els]# . /etc/profile.d/logstash.sh

 

四、logstash 演示用法

進入自配置文件的目錄

[root@centos7-1 logstash]# cd /etc/logstash/conf.d/

 

1、示例1:標準輸入輸出

input => 標準輸入

filter => 無

output => 標準輸出

① 編輯配置文件

[root@centos7-1 conf.d]# vim test.conf

input {
        stdin {}
}

output {
        stdout {
                codec => rubydebug
        }
} 

② -t 測試語法,這個命令級慢

[root@centos7-1 conf.d]# logstash -f ./test.conf -t

 

③ 執行

[root@centos7-1 conf.d]# logstash -f ./test.conf

 

2、示例2:從文件輸入數據,經grok 拆分插件過濾之後輸出至標準輸出

input => 標準輸入

filter => grok、date 模塊

  grok:拆分欄位

  date:修改時間格式

output => 標準輸出

 

(1)事前準備,生成日誌

① 下載開啟httpd 服務

[root@centos7-1 ~]# yum install httpd

[root@centos7-1 ~]# systemctl start httpd

 

② 生成一個主頁

[root@centos7-1 ~]# vim /var/www/html/index.html

Home Page

 

③ 生成20個測試頁面

[root@centos7-1 ~]# for i in {1..20}; do echo "Test Page ${i}" > /var/www/html/test${i}.html; done

 

④ 測試頁面正常訪問

 

⑤ 迴圈生成httpd 日誌

[root@centos7-1 ~]# for i in {1..200}; do j=$[$RANDOM%20+1]; curl http://192.168.1.102:80/test${j}.html; done

 

(2)編輯配置文件

[root@centos7-1 conf.d]# vim test2.conf

input {
        stdin {}
}

filter {
    grok {    #拆分message 欄位
         match => {      #指定匹配哪個欄位
             "message" => "%{COMBINEDAPACHELOG}"   #引用定義好的搜索模式
         }
              remove_field => "message"    #刪除message 欄位
    }
    date {    #改變時間格式
              match => ["timestamp","dd/MMM/YYYY:H:m:s Z"]
              remove_field => "timestamp"    #刪除原有的時間欄位
    }
}

output {
        stdout {
                codec => rubydebug
        }
} 

(3)執行

[root@centos7-1 conf.d]# logstash -f test2.conf -t

[root@centos7-1 conf.d]# logstash -f test2.conf

 

3、示例3:filter 的date、mutate 插件

input => 標準輸入

filter => date、mutate 模塊

  mutate:修改欄位

output => 標準輸出

① 編輯配置文件,由於input、output還是標準輸入輸出,就沒有貼出

[root@centos7-1 conf.d]# vim test3.conf

filter {
        grok {
                match => {
                "message" => "%{HTTPD_COMBINEDLOG}"
        }
}
        date {
                match => ["timestamp","dd/MMM/YYYY:H:m:s Z"]
        }
        mutate {
                rename => {
                        "agent" => "user_agent"
                }
        }
} 

② 執行

[root@centos7-1 conf.d]# logstash -f test3.conf -t

[root@centos7-1 conf.d]# logstash -f test3.conf

 

4、示例4:filter 的geoip 模塊

input => 標準輸入

filter => geoip 模塊

  geoip:利用這個模塊解析ip的地址,利於後邊kibana 的地理位置展示圖

output => 標準輸出

(1)準備ip 資料庫

  網上下載資料庫,因為是記錄世界的IP 地址,所以經常有變動,可以寫一個計劃任務,每隔一周去網上下載一次,解包,鏈接到maxmind 下

[root@centos7-1]# tar -xvf GeoLite2-City.tar.gz

[root@centos7-1]# mv GeoLite2-City_20170704/ /etc/logstash/

[root@centos7-1 logstash]# mv GeoLite2-City_20170704/ maxmind

 

(2)模擬一個公網ip 訪問

[root@centos7-1 ~]# echo '112.168.1.102 - - [08/Feb/2018:15:28:53 +0800] "GET /test6.html HTTP/1.1" 200 12 "-" "curl/7.29.0"' >> /var/log/httpd/access_log

 

(3)執行

① 編輯配置文件,由於input、output還是標準輸入輸出,就沒有貼出

[root@centos7-1 conf.d]# vim tes4.conf

filter {
        grok {
                match => {
                "message" => "%{HTTPD_COMBINEDLOG}"
        }
}
        geoip {
                source => "clientip"   #哪個源ip 欄位,轉換為地理位置
                target => "geoip"   #目標信息存儲時的健名
                database => "/etc/logstash/maxmind/GeoLite2-City.mmdb"    #資料庫路徑
        }
}

 

② 執行

[root@centos7-1 conf.d]# logstash -f test4.conf -t

[root@centos7-1 conf.d]# logstash -f test4.conf

 

③ 如果是內網地址,會顯示失敗

[root@centos7-1 ~]# echo '192.168.1.102 - - [08/Feb/2018:15:28:53 +0800] "GET /test6.html HTTP/1.1" 200 12 "-" "curl/7.29.0"' >> /var/log/httpd/access_log

 

5、示例5:output 輸出給elasticsearch

input => 來自httpd 的訪問日誌

filter => geoip 模塊

output => 輸出給elasticsearch

(1)執行

① 編輯配置文件

[root@centos7-1 conf.d]# vim test5.conf

input {
        file {
                path => ["/var/log/httpd/access_log"]
                start_position => "beginning"
        }
}

filter {
        grok {
                match => {
                "message" => "%{HTTPD_COMBINEDLOG}"
        }
}
        geoip {
                source => "clientip"
                target => "geoip"
                database => "/etc/logstash/maxmind/GeoLite2-City.mmdb"
        }
}

output {
        elasticsearch {  
                hosts => ["http://192.168.10.101:9200/"]   #主機
                index => "logstash-%{+YYYY.MM.dd}"   #索引
                document_type => "apache_logs"    #文檔類型標識,自己定義
        }
}  

② 執行

logstash -f test5.conf

 

(2)驗證

① 網頁登錄到elasticsearch,可以查看到

② 搜索查詢的演示

(a)基於2個欄位CN 的搜索

(b)響應碼首碼搜索

(c)範圍搜索

 

6、示例6:output 輸出給redis

input => 來自httpd 的訪問日誌

filter => geoip 模塊

output => 輸出給redis

 

(1)準備redis 服務

[root@logstash]# vim /etc/redis.conf

bind 0.0.0.0   #監聽所有埠

requirepass ilinux.io   #加密碼,為了安全運行

其他一些優化配置:

① 只做隊列,沒必要持久存儲,性能更好

② 把記憶體的淘汰策略關掉

③ 把記憶體空間最大,調大一點

④ 把所有持久化功能關掉:AOF 快照

 

開啟redis

[root@centos7-1 conf.d]# systemctl start redis   打開6379 埠

 

(2)運行logstash

① 配置文件

[root@centos7-1 conf.d]# vim test6.conf

output {
        redis {
                batch => true    #批量寫入
                host => "192.168.10.102"   #主機
                password => "ilinux.io"   #密碼
                port => 6379  #
                #db => 0     #預設就是0號庫
                data_type => "list"   #數據格式,列表
                key => "apachelogs"   #自己定義的鍵
        }       
}

②  [root@logstash]# logstash -f test6.conf

 

(3)測試

[root@centos7-1 ~]# redis-cli -a ilinux.io

127.0.0.1:6379> KEYS *

127.0.0.1:6379> LLEN apachelogs

127.0.0.1:6379> LINDEX apachelogs 1

 

(4)註:logstash 開啟的方法:

① logstash 指令指定配置文件啟動

logstash -f test.conf

② systemctl start logstash  命令啟動

此命令啟動,要確保/etc/logstash/conf.d 目錄下沒有其他多餘的配置文件。

 

五、Beats 輕量型數據採集器

Beats 平臺集合了多種單一用途數據採集器。這些採集器安裝後可用作輕量型代理,從成百上千或成千上萬台機器向 Logstash 或 Elasticsearch 發送數據。

1、下載

去官網下載對應版本

[root@centos7-1 ~]# rpm -ivh filebeat-5.5.1-x86_64.rpm

 

2、示例1:配置filebeats,目標elasticsearch

源 => 本機httpd 的日誌

目標 => 直接給elasticsearch

(1)配置文件

[root@filebeat ~]# vim /etc/filebeat/filebeat.yml

#================= Filebeat prospectors =====================
filebeat.prospectors:
  paths:
    - /var/log/httpd/*log

#exclude_lines: ["^DBG"]    黑名單
#include_lines: ["^ERR", "^WARN"]   白名單

#-------------------------- Elasticsearch output ------------------------------
output.elasticsearch:
  # Array of hosts to connect to.
  hosts: ["192.168.10.101:9200"]    #主機和埠
  #protocol: "https"     #如果是https
  #username: "elastic"    #用戶,如果elasticsearch設置的有的話
  #password: "changeme"    #密碼

 

(2)啟動服務

[root@centos7-1 filebeat]# systemctl start filebeat.service

 

(3)生成httpd 日誌

① 下載開啟httpd 服務

[root@centos7-1 ~]# yum install httpd

[root@centos7-1 ~]# systemctl start httpd

 

② 生成一個主頁

[root@centos7-1 ~]# vim /var/www/html/index.html

Home Page

 

③ 生成20個測試頁面

[root@centos7-1 ~]# for i in {1..20}; do echo "Test Page ${i}" > /var/www/html/test${i}.html; done

 

④ 測試頁面正常訪問

 

⑤ 迴圈生成httpd 日誌

[root@centos7-1 ~]# for i in {1..20}; do j=$[$RANDOM%20+1]; curl http://192.168.1.102:80/test${j}.html; done

 

(4)測試

直接訪問elasticsearch 頁面,可以查看到

 

3、示例2:完整的ELK —> 配置filebeat,目標給logstash

(1)配置filebeat

[root@filebeat ~]# vim /etc/filebeat/filebeat.yml

filebeat.prospectors:
- input_type: log
  paths:
    - /var/log/httpd/*log

output.logstash:
  hosts: ["192.168.10.102:5044"]

 

啟動服務

[root@centos7-1 filebeat]# systemctl start filebeat.service

 

(2)在logstash 伺服器上配置

input => 來自filebeat

filter => geoip 模塊

output => 輸出給elasticsearch

① 配置

[root@logstash conf.d]# vim /etc/logstash/conf.d/apachelogs.conf

input {
        beats {
                port => 5044
        }
}

filter {
        grok {
                match => {
                "message" => "%{HTTPD_COMBINEDLOG}"
                }
        }
}

output {
        elasticsearch {
                hosts => ["http://192.168.10.101:9200/"]
                index => "logstash-%{+YYYY.MM.dd}"
                document_type => "apache_logs"
        }
} 

② 運行logstash

[root@centos7-1 conf.d]# logstash -f apachelogs.conf -t 測試

重啟filebeat

[root@centos7-1 filebeat]# systemctl restart filebeat.service

 

(3)測試

 

4、示例3:完整的els搭建

(1)配置filebeat,目標給redis

[root@filebeat ~]# vim /etc/filebeat/filebeat.yml

filebeat.prospectors:
- input_type: log
  paths:
    - /var/log/httpd/*log
#----------------------------- Redis output --------------------------------
output.redis:
  hosts: ["192.168.10.102"]
  password: "ilinux.io"
  key: "httpdlogs"
  datatype: "list"
  db: 0
  timeout: 5

 

(2)redis 伺服器查詢測試

[root@centos7-1 conf.d]# redis-cli -a ilinux.io 查詢有key值,有數據

 

(3)配置logstash

input => 來自redis

filter => geoip 模塊

output => 輸出給elasticsearch

① 配置

[root@logstash conf.d]# vim /etc/logstash/conf.d/apachelogs.conf

input {
        redis {
                host => "192.168.10.102"
                port => "6379"
                password => "ilinux.io"
                data_type => "list"
                key => "httpdlogs"
                threads => 2
        }
}

filter {
        grok {
                match => {
                        "message" => "%{HTTPD_COMBINEDLOG}"
                }
        }
        date {
                match => ["timestamp","dd/MMM/YYYY:H:m:s Z"]
                remove_field => "timestamp"
        }
}

output {
        elasticsearch {
                hosts => ["http://192.168.10.101:9200/"]
                index => "logstash-%{+YYYY.MM.dd}"
                document_type => "apache_logs"
        }
} 

② 啟動logstash

[root@filebeat ~]# systemctl start logstash

 

(4)用192.168.1.101 機器生成訪問日誌,測試

 

六、kibana

1、介紹

  kibana 是您走進 Elastic Stack 的視窗,Kibana 讓您能夠可視化 Elasticsearch 中的數據並操作Elastic Stack,因此您可以在這裡解開任何疑問:例如,為何會在凌晨 2:00 被傳呼,雨水會對季度數據造成怎樣的影響。

① 一張圖片勝過千萬行日誌

  Kibana 讓您能夠自由地選擇如何呈現您的數據。或許您一開始並不知道自己想要什麼。不過藉助Kibana 的互動式可視化,您可以先從一個問題出發,看看能夠從中發現些什麼。

② 從基礎入手

  Kibana 核心搭載了一批經典功能:柱狀圖、線狀圖、餅圖、環形圖,等等。它們充分利用了Elasticsearch 的聚合功能。

③ 將地理數據融入任何地圖

  利用我們的 Elastic Maps Services 來實現地理空間數據的可視化,或者發揮創意,在您自己的地圖上實現自定義位置數據的可視化。

④ 時間序列也在菜單之列

  您可以利用 Timelion,對您 Elasticsearch 中的數據執行高級時間序列分析。您可以利用功能強大、簡單易學的表達式來描述查詢、轉換和可視化。

⑤ 利用 graph 功能探索關係

  憑藉搜索引擎的相關性功能,結合 graph 探索,揭示您 Elasticsearch 數據中極其常見的關係。

 

2、安裝搭建

(1)安裝

從官網上下載對應的版本https://www.elastic.co/cn/downloads/kibana

[root@kibana ~]#rpm -ivh kibana-5.5.1-x86_64.rpm

(2)配置

vim /etc/kibana/kibana.yml

server.port: 5601
server.host: "0.0.0.0"
server.name: "kibana.along.com"
elasticsearch.url: "http://192.168.10.101:9200"

 

(3)開啟服務

[root@kibana ~]# systemctl start kibana.service

 

3、配置使用kibana

(1)打開網頁 http://192.168.1.104:5601,選擇logstash 發送的日誌,就直接顯示效果了

 

(2)設置效果展示圖

 

① 可以創建各種圖形,面積圖,線裝圖,餅狀圖......

我以餅狀圖為例,創建top5 來源ip、top10 請求點擊頁面 的餅狀圖

 

② 做出top5 來源ip 的餅狀圖

選擇對什麼進行聚合圖形,我選擇對自己設置的terms 詞條進行聚合,再選擇clientip.keyword 的key鍵值,最後展示

 

③ 同理,做出top10 請求點擊頁面的餅狀圖

 

④ 可以將多個圖形呈現在一個儀錶盤上

點擊儀錶盤,添加所需要展示的圖形即可

 

⑤ 根據ip 顯示地理位置

 

(3)其他欄位都可進行設置,多種圖案,也可將多個圖形放在一起展示

 

有什麼問題,歡迎討論~


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 測試證明代碼: 操作說明,這裡我給出我和作者交流時的說明,所以用的是英文,不過我英文水平有限,希望諒解: I should give you my manipulation. You should send a SIGUSR1 to the process in less than 20 secon ...
  • tomcat預設情況下不帶www的功能變數名稱是不會跳轉到帶www的功能變數名稱的,而且也無法像apache那樣通過配置.htaccess來實現。如果想要把不帶“www'的功能變數名稱重定向到帶”www"功能變數名稱下,又不想寫代碼,可以使用UrlRewriteFilter來實現。 一、前期準備 1.安裝JDK 2.安裝tomca ...
  • 一、關機重啟命令的作用 相信對於接觸過電腦的人來說,特別是對於windows系統來說,如果長時間使用不經重啟的話會出現一點點卡頓的感覺。但是當重啟整個系統後,這點點卡頓的感覺好像又沒了,重啟後windows系統會重置整個服務,就像恢復出廠設置一樣,也許重啟就是這樣的作用吧。同樣在Linux中,關機重 ...
  • Socket TCP網路通信編程 首先,伺服器端需要做以下準備工作: (1)調用socket()函數。建立socket對象,指定通信協議。 (2)調用bind()函數。將創建的socket對象與當前主機的某一個IP地和埠綁定。 (3)調用listen()函數。使socket對象處於監聽狀態,並設置 ...
  • 一、RabbitMQ 1、安裝配置epel源 $ rpm -ivh http://dl.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm 2、更新CA證書 yum --disablerepo=epel -y update ca ...
  • 最近使用tinymix 調試相應的音頻通道,但是一直不知道音頻通道的原理是什麼。所以百度了一下,百度結果是與DPAM有關。 一、DAPM簡介: DAPM是Dynamic Audio Power Management的縮寫,直譯過來就是動態音頻電源管理的意思,DAPM是為了使基於linux的移動設備上 ...
  • 連接Mysql提示Can’t connect to local MySQL server through socket的解決方法 問題所在 1.大家要明白 /mydata/mysql 這個目錄 只有mysql這個賬號有許可權。。。 主要因為mysql.sock配置的路徑預設是/mydata/mysql ...
  • 操作系統版本:CentOS release 6.4 (Final) 軟體版本:extundelete-0.2.4.tar.bz2 1.使用rz命令上傳extundelete-0.2.4.tar.bz2到/tmp文件夾下並解壓軟體。 2.進入到extundelete解壓的目錄下麵,執行編譯安裝。 3. ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...