文章目錄
- 前言:
- 一、ELK日志分析系統簡介
- (一)、日志服務器
- (二)、ELK日志分析系統
- 補充:
- (三)、日志處理步驟
- (四)、Elasticsearch 介紹
- (五)、Logstash介紹
- (六)、Kibana介紹
- 二、部署ELK日志分析系統步驟
前言:
日志分析是運維工程師解決系統故障,發現問題的主要手段,日志主要包括系統日志應用程式日志和安全日志
- 系統運維和開發人員可以通過日志了解服務器軟硬體資訊檢查配程序中的錯誤及錯誤發生的原因,經常分析日志可以了解服務器的負荷,性能安全性,從而及時采取措施糾正錯誤
- 通常,日志被分散的儲存在不同的設備上,如果你管理數十上百臺服務器,你還在使用依次登錄每臺機器的傳統方法查閱日志,既繁瑣又效率低下,為此,我們可以使用集中化的日志管理,例如:開源的 syslog,將所有服務器上的日志收集匯總
- 集中化管理日志后,日志的統計和檢承又成為一件比較麻煩的事情,一般我們使用 grep、awk 和 wc 等 Linux 命令能實作檢索和統計,但是對于更高要求的查詢、排序和統計等,再加上龐大的機器數量,使用這樣的方法依然難免有點力不從心
- 開源實時日志分析 ELK 平臺能夠完美的解決我們上述的問題,ELK 由 ElasticSearch、Logstash 和 Kiabana 這三個開源工具組成,
一、ELK日志分析系統簡介
(一)、日志服務器
1、提高安全性
2、集中存放日志
3、缺陷
- 對日志的分析困難
(二)、ELK日志分析系統
- Elasticsearch
- Logstash
- Kibana
補充:
EFK 的構成:
- Elasticsearch
- Logstash(僅做資料格式處理的作業)
- Filebeat (搜集檔案資料)
- Kafka
- Kibana
- Redis
(三)、日志處理步驟
1、將日志進行集中化管理
2、將日志格式化(Logstash)并輸出到 Elasticsearch
3、對格式化后的資料進行索引和存盤( Elasticsearch)
4、前端資料的展示(Kibana)
(四)、Elasticsearch 介紹
1、 概述
- 提供了一個分布式多用戶能力的全文搜索(索引)引擎,開源
- 分布式即資料不會放在一個地方
- 正是 ES 這些優秀的機制,所以會被百度等龍頭企業所選擇
2、 核心概念
-
接近實時:指索引和資料處理的能力
-
集群:一個內部組件 ES 的架構(特性)
-
節點:有集群必定有節點
-
索引:
- 索引(庫)→ 索引型別(表)→ 索引的具體檔案(記錄)
- 索引根據以上這個方式來進行資料(位置)定位
-
分片:例如,一個40G的檔案,分為兩份20G的檔案,存放至兩個節點上,讀取這個40G的檔案時,會效率更快
-
副本:核心是為了容災,不過也可以處理任務
-
分片加上副本的使用:例如,四臺主機同時處理一項任務,理論上效率可以提高四倍
(五)、Logstash介紹
1、Logstash介紹
- 一款強大的資料處理工具
- 可實作資料傳輸、格式處理、格式化輸出
- 資料輸入、資料加工(如過濾,改寫等)以及資料輸出
2、LogStash主要組件
- Shipper
- Indexer
- Broker
- Search and Storage
- Web Interface
(六)、Kibana介紹
1、Kibana介紹
- 一個針對Elasticsearch的開源分析及可視化平臺
- 搜索、查看存盤在Elasticsearch索引中的資料
- 通過各種圖表進行高級資料分析及展示
2、Kibana主要功能
- Elasticsearch無縫之集成
- 整合資料,復雜資料分析
- 讓更多團隊成員受益
- 介面靈活,分享更容易
- 配置簡單,可視化多資料源
- 簡單資料匯出
二、部署ELK日志分析系統步驟
案例拓撲:

需求描述:
- 配置ELK日志分析集群
- 使用Logstash收集日志
- 使用Kibana查看分析日志
部署步驟:
配置和安裝ELK日志分析系統,安裝集群方式,2個elasticsearch節點,并監控apache服務器日志
| 主機 | 作業系統 | 主機名 | IP地址 | 主要軟體 |
|---|---|---|---|---|
| 服務器 | Centos7.4 | node1 | 192.168.200.10 | Elasticsearch Kibana |
| 服務器 | Centos7.4 | node2 | 192.168.200.20 | Elasticsearch |
| 服務器 | Centos7.4 | apache | 192.168.200.30 | Logstash Apache |
所有主機均需要關閉防火墻
[root@localhost ~]#systemctl stop firewalld.service
[root@localhost ~]#systemctl disable firewalld.service
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
[root@localhost ~]#setenforce 0
【配置elasticsearch環境】
###登錄192.168.200.10 更改主機名 配置域名決議 查看Java環境 ###
[root@node1 ~]# hostnamectl set-hostname node1
[root@node1 ~]# su
[root@node1 ~]# vim /etc/hosts
192.168.200.10 node1
192.168.200.20 node2
[root@node1 ~]# java -version
java version "1.8.0_91"
Java(TM) SE Runtime Environment (build 1.8.0_91-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.91-b14, mixed mode)
##JDK(java環境所需要)#
將jdk-8u91-linux-x64.tar.gz壓縮包上傳到/opt目錄下進行解壓
tar zxvf jdk-8u91-linux-x64.tar.gz -C /usr/local/
vim /etc/profile
#添加在最后一行
export JAVA_HOME=/usr/local/jdk1.8.0_91
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
source /etc/profile

###登錄192.168.200.20 node2 更改主機名 配置域名決議 查看Java環境 ###
[root@node2 ~]# hostnamectl set-hostname node2
[root@node2 ~]# su
[root@node2 ~]# vim /etc/hosts
192.168.200.10 node1
192.168.200.20 node2
[root@node2 ~]# java -version
openjdk version "1.8.0_131"
OpenJDK Runtime Environment (build 1.8.0_131-b12)
OpenJDK 64-Bit Server VM (build 25.131-b12, mixed mode)
【部署elasticsearch軟體】
####登錄192.168.200.10 node1 ####
1、安裝elasticsearch—rpm包
上傳elasticsearch-5.5.0.rpm到/opt目錄下
[root@node1 ~]# cd /opt
[root@node1 opt]# rpm -ivh elasticsearch-5.5.0.rpm
2、加載系統服務
[root@node1 opt]# systemctl daemon-reload
[root@node1 opt]# systemctl enable elasticsearch.service

3、更改elasticsearch主組態檔
[root@node1 opt]# cp /etc/elasticsearch/elasticsearch.yml /etc/elasticsearch/elasticsearch.yml.bak
[root@node1 opt]# vim /etc/elasticsearch/elasticsearch.yml
17/ cluster.name: my-elk-cluster #集群名字
23/ node.name: node1 #節點名字
33/ path.data: /data/elk_data #資料存放路徑
37/ path.logs: /var/log/elasticsearch/ #日志存放路徑
43/ bootstrap.memory_lock: false #不在啟動的時候鎖定記憶體(前端快取,與IOPS-性能測驗方式,每秒讀寫次數相關)
55/ network.host: 0.0.0.0 #提供服務系結的IP地址,0.0.0.0代表所有地址
59/ http.port: 9200 #偵聽埠為9200
68/ discovery.zen.ping.unicast.hosts: ["node1", "node2"] #集群發現通過單播實作
[root@node1 opt]# grep -v "^#" /etc/elasticsearch/elasticsearch.yml #查看資訊
cluster.name: my-elk-cluster
node.name: node1
path.data: /data/elk_data
path.logs: /var/log/elasticsearch/
bootstrap.memory_lock: false
network.host: 0.0.0.0
http.port: 9200
discovery.zen.ping.unicast.hosts: ["node1", "node2"]



4、創建資料存放路徑并授權
[root@node1 opt]# mkdir -p /data/elk_data
[root@node1 opt]# chown elasticsearch:elasticsearch /data/elk_data/
5、啟動elasticsearch是否成功開啟
[root@node1 elasticsearch]# systemctl start elasticsearch.service
[root@node1 elasticsearch]# netstat -antp | grep 9200
tcp6 0 0 :::9200 :::* LISTEN 64463/java
6、查看節點資訊,用Windows的瀏覽器打開 http://192.168.200.10:9200 有檔案打開 下面是節點的資訊
{
"name" : "node1",
"cluster_name" : "my-elk-cluster",
"cluster_uuid" : "kWji5N02SvmMjKRzvKoMrw",
"version" : {
"number" : "5.5.0",
"build_hash" : "260387d",
"build_date" : "2017-06-30T23:16:05.735Z",
"build_snapshot" : false,
"lucene_version" : "6.6.0"
},
"tagline" : "You Know, for Search"
}
####登錄192.168.200.20####
1、安裝elasticsearch—rpm包
上傳elasticsearch-5.5.0.rpm到/opt目錄下
[root@node2 ~]# cd /opt
[root@node2 opt]# rpm -ivh elasticsearch-5.5.0.rpm
2、加載系統服務
[root@node2 opt]# systemctl daemon-reload
[root@node2 opt]# systemctl enable elasticsearch.service
3、更改elasticsearch主組態檔
[root@node2 opt]# cp /etc/elasticsearch/elasticsearch.yml /etc/elasticsearch/elasticsearch.yml.bak
[root@node2 opt]# vim /etc/elasticsearch/elasticsearch.yml
17/ cluster.name: my-elk-cluster #集群名字
23/ node.name: node2 #節點名字
33/ path.data: /data/elk_data #資料存放路徑
37/ path.logs: /var/log/elasticsearch/ #資料存放路徑
43/ bootstrap.memory_lock: false #不在啟動的時候鎖定記憶體
55/ network.host: 0.0.0.0 #提供服務系結的IP地址,0.0.0.0代表所有地址
59/ http.port: 9200 #偵聽埠為9200
68/ discovery.zen.ping.unicast.hosts: ["node1", "node2"] #集群發現通過單播實作
[root@node2 opt]# grep -v "^#" /etc/elasticsearch/elasticsearch.yml
cluster.name: my-elk-cluster
node.name: node2
path.data: /data/elk_data
path.logs: /var/log/elasticsearch/
bootstrap.memory_lock: false
network.host: 0.0.0.0
http.port: 9200
discovery.zen.ping.unicast.hosts: ["node1", "node2"]
4、創建資料存放路徑并授權
[root@node2 opt]# mkdir -p /data/elk_data
[root@node2 opt]# chown elasticsearch:elasticsearch /data/elk_data/
5、啟動elasticsearch是否成功開啟
[root@node2 elasticsearch]# systemctl start elasticsearch.service
[root@node2 elasticsearch]# netstat -antp | grep 9200
tcp6 0 0 :::9200 :::* LISTEN 64463/java
6、查看節點資訊 用windows的瀏覽器打開 http://192.168.200.20:9200 有檔案打開 下面是節點的資訊
{
"name" : "node2",
"cluster_name" : "my-elk-cluster",
"cluster_uuid" : "kWji5N02SvmMjKRzvKoMrw",
"version" : {
"number" : "5.5.0",
"build_hash" : "260387d",
"build_date" : "2017-06-30T23:16:05.735Z",
"build_snapshot" : false,
"lucene_version" : "6.6.0"
},
"tagline" : "You Know, for Search"
}
【集群檢查健康和狀態】
在windows 瀏覽器打開 http://192.168.200.10:9200/_cluster/health?pretty ###檢查群集健康情況
{
"cluster_name" : "my-elk-cluster",
"status" : "green",
"timed_out" : false,
"number_of_nodes" : 2,
"number_of_data_nodes" : 2,
"active_primary_shards" : 0,
"active_shards" : 0,
"relocating_shards" : 0,
"initializing_shards" : 0,
"unassigned_shards" : 0,
"delayed_unassigned_shards" : 0,
"number_of_pending_tasks" : 0,
"number_of_in_flight_fetch" : 0,
"task_max_waiting_in_queue_millis" : 0,
"active_shards_percent_as_number" : 100.0
}
在window 打開 http://192.168.200.10:9200/_cluster/state?pretty ###檢查群集狀態資訊
{
"cluster_name" : "my-elk-cluster",
"version" : 3,
"state_uuid" : "zuaMTDpvSda623YUbT9cug",
"master_node" : "57eKWdF6Q8u5Te0EI70OfA",
"blocks" : { },
"nodes" : {
"copPtNelTvKnHfAd51GXMw" : {
"name" : "node2",
"ephemeral_id" : "kU5iJbKASEScfPSLBuEbpw",
"transport_address" : "192.168.100.42:9300",
"attributes" : { }
},
"57eKWdF6Q8u5Te0EI70OfA" : {
"name" : "node1",
"ephemeral_id" : "I4r9U6oMQRKOBCgxL747-A",
"transport_address" : "192.168.100.41:9300",
"attributes" : { }
}
},
"metadata" : {
"cluster_uuid" : "kWji5N02SvmMjKRzvKoMrw",
"templates" : { },
"indices" : { },
"index-graveyard" : {
"tombstones" : [ ]
}
},
"routing_table" : {
"indices" : { }
},
"routing_nodes" : {
"unassigned" : [ ],
"nodes" : {
"57eKWdF6Q8u5Te0EI70OfA" : [ ],
"copPtNelTvKnHfAd51GXMw" : [ ]
}
}
}
【安裝elasticsearch-head插件】
上述查看集群的方式,及其不方便,我們可以通過安裝elasticsearch-head插件后,來管理集群
####登錄192.168.200.10 node1主機####
上傳node-v8.2.1.tar.gz到/opt
yum install gcc gcc-c++ make -y
###編譯安裝node組件依賴包##耗時比較長
[root@localhost opt]# cd /opt
[root@node1 opt]# tar xzvf node-v8.2.1.tar.gz
[root@node1 opt]# cd node-v8.2.1/
[root@node1 node-v8.2.1]# ./configure
[root@node1 node-v8.2.1]# make -j3
[root@node1 node-v8.2.1]# make install
####安裝phantomjs####前端框架
上傳軟體包到/usr/local/src/
[root@localhost node-v8.2.1]# cd /usr/local/src/
[root@localhost src]# tar xjvf phantomjs-2.1.1-linux-x86_64.tar.bz2
[root@localhost src]# cd phantomjs-2.1.1-linux-x86_64/bin
[root@localhost bin]# cp phantomjs /usr/local/bin
###安裝elasticsearch-head###資料可視化工具
#上傳壓縮包到/usr/local/src/目錄下
[root@localhost bin]# cd /usr/local/src/
[root@localhost src]# tar xzvf elasticsearch-head.tar.gz
[root@localhost src]# cd elasticsearch-head/
[root@localhost elasticsearch-head]# npm install
#####修改主組態檔###
[root@localhost ~]# cd ~
[root@localhost ~]# vim /etc/elasticsearch/elasticsearch.yml #下面組態檔,插末尾##
http.cors.enabled: true #開啟跨域訪問支持,默認為false
http.cors.allow-origin: "*" #跨域訪問允許的域名地址
[root@localhost ~]# systemctl restart elasticsearch
####啟動elasticsearch-head 啟動服務器####
[root@localhost ~]# cd /usr/local/src/elasticsearch-head/
[root@localhost elasticsearch-head]# npm run start & #切換到后臺運行
[1] 114729
[root@localhost elasticsearch-head]#
> elasticsearch-head@0.0.0 start /usr/local/src/elasticsearch-head
> grunt server
Running "connect:server" (connect) task
Waiting forever...
Started connect web server on http://localhost:9100
[root@localhost elasticsearch-head]# netstat -lnupt | grep 9100
tcp 0 0 0.0.0.0:9100 0.0.0.0:* LISTEN 114739/grunt
[root@localhost elasticsearch-head]# netstat -lnupt | grep 9200
tcp6 0 0 :::9200 :::* LISTEN 114626/java
####登錄192.168.200.20 node2主機####
上傳node-v8.2.1.tar.gz到/opt
###編譯安裝node組件依賴包##耗時比較長
yum install gcc gcc-c++ make -y
[root@localhost opt]# cd /opt
[root@node2 opt]# tar xzvf node-v8.2.1.tar.gz
[root@node2 opt]# cd node-v8.2.1/
[root@node2 node-v8.2.1]# ./configure
[root@node2 node-v8.2.1]# make -j3
[root@node2 node-v8.2.1]# make install
####安裝phantomjs####
上傳軟體包到/usr/local/src/
[root@node2 node-v8.2.1]# cd /usr/local/src/
[root@node2 src]# tar xjvf phantomjs-2.1.1-linux-x86_64.tar.bz2
[root@node2 src]# cd phantomjs-2.1.1-linux-x86_64/bin
[root@node2 bin]# cp phantomjs /usr/local/bin
###安裝elasticsearch-head###
[root@node2 bin]# cd /usr/local/src/
[root@node2 src]# tar xzvf elasticsearch-head.tar.gz
[root@node2 src]# cd elasticsearch-head/
[root@node2 elasticsearch-head]# npm install
#####修改主組態檔###
[root@node2 ~]# cd ~
[root@node2 ~]# vim /etc/elasticsearch/elasticsearch.yml #下面組態檔,插末尾##
http.cors.enabled: true #開啟跨域訪問支持,默認為false
http.cors.allow-origin: "*" #跨域訪問允許的域名地址
[root@localhost ~]# systemctl restart elasticsearch
####啟動elasticsearch-head 啟動服務器####
[root@node2 ~]# cd /usr/local/src/elasticsearch-head/
[root@node2 elasticsearch-head]# npm run start & ####切換到后臺運行
[1] 114729
[root@localhost elasticsearch-head]#
> elasticsearch-head@0.0.0 start /usr/local/src/elasticsearch-head
> grunt server
Running "connect:server" (connect) task
Waiting forever...
Started connect web server on http://localhost:9100
[root@node2 elasticsearch-head]# netstat -lnupt |grep 9100
tcp 0 0 0.0.0.0:9100 0.0.0.0:* LISTEN 114739/grunt
[root@node2 elasticsearch-head]# netstat -lnupt |grep 9200
tcp6 0 0 :::9200 :::* LISTEN 114626/java
####真機上打開瀏覽器輸入http://192.168.200.10:9100/ 可以看見群集很健康是綠色#####
在Elasticsearch 后面的欄目中輸入http://192.168.200.10:9200
然后點連接 會發現:集群健康值: green (0 of 0)

####真機上打開瀏覽器輸入http://192.168.200.20:9100/ 可以看見群集很健康是綠色#####
在Elasticsearch 后面的欄目中輸入http://192.168.200.20:9200
然后點連接 會發現:集群健康值: green (0 of 0)

####登錄192.168.200.10 node1主機##### 索引為index-demo,型別為test,可以看到成功創建
[root@node1 ~]# curl -XPUT 'localhost:9200/index-demo/test/1?pretty&pretty' -H 'content-Type: application/json' -d '{"user":"zhangsan","mesg":"hello world"}'
{
"_index" : "index-demo",
"_type" : "test",
"_id" : "1",
"_version" : 1,
"result" : "created",
"_shards" : {
"total" : 2,
"successful" : 2,
"failed" : 0
},
"created" : true
}
####在windows 打開瀏覽器輸入http://192.168.200.10:9100/ 查看索引資訊###
node1資訊動作
node2資訊動作


●上面圖可以看見索引默認被分片5個,并且有一個副本
點擊資料瀏覽------會發現在node1上創建的索引為index-demo,型別為test, 相關的資訊

【安裝logstash并做一些日志搜集輸出到elasticsearch中】
登錄主機192.168.200.30
關閉防火墻關閉核心防護
1、更改主機名
hostnamectl set-hostname apache
su
2、安裝Apahce服務(httpd)
[root@apache ~]# yum -y install httpd
[root@apache ~]# systemctl start httpd
3、安裝Java環境
[root@apache ~]# java -version ###如果沒有裝 安裝yum -y install java
openjdk version "1.8.0_181"
OpenJDK Runtime Environment (build 1.8.0_181-b13)
OpenJDK 64-Bit Server VM (build 25.181-b13, mixed mode)
4、安裝logstash
上傳logstash-5.5.1.rpm到/opt目錄下
[root@apache ~]# cd /opt
[root@apache opt]# rpm -ivh logstash-5.5.1.rpm
##安裝logstash
[root@apache opt]# systemctl start logstash.service
##啟動logstash
[root@apache opt]# systemctl enable logstash.service
[root@apache opt]# ln -s /usr/share/logstash/bin/logstash /usr/local/bin/ ##建立logstash軟連接
5、logstash(Apache)與 elasticsearch(node)功能是否正常,做對接測驗####
Logstash 這個命令測驗
欄位描述解釋:
-f 通過這個選項可以指定logstash的組態檔,根據組態檔配置logstash
-e 后面跟著字串 該字串可以被當做logstash的配置(如果是” ”,則默認使用stdin做為輸入、stdout作為輸出)
-t 測驗組態檔是否正確,然后退出
6、輸入采用標準輸入 輸出采用標準輸出—登錄192.168.200.30 在Apache服務器上
[root@apache opt]# logstash -e 'input { stdin{} } output { stdout{} }'
,,,,,,,,,,省略,,,,,,,,
9:22:43.575 [[main]-pipeline-manager] INFO logstash.pipeline - Pipeline main started
The stdin plugin is now waiting for input:
19:22:43.659 [Api Webserver] INFO logstash.agent - Successfully started Logstash API endpoint {:port=>9600}
www.baidu.com ####需要輸入www.baidu.com
2018-10-12T02:10:11.313Z apache www.baidu.com
www.sina.com.cn ####需要輸入www.sina.com.cn
2018-10-12T02:10:29.778Z apache www.sina.com.cn

7、使用 rubydebug 顯示詳細輸出,codec為一種編解碼器
[root@apache opt]# logstash -e 'input { stdin{} } output { stdout{ codec=>rubydebug } }'
,,,,,,,,省略,,,,,,,,,
19:25:32.542 [[main]-pipeline-manager] INFO logstash.pipeline - Starting pipeline {"id"=>"main", "pipeline.workers"=>2, "pipeline.batch.size"=>125, "pipeline.batch.delay"=>5, "pipeline.max_inflight"=>250}
19:25:32.608 [[main]-pipeline-manager] INFO logstash.pipeline - Pipeline main started
The stdin plugin is now waiting for input:
19:25:32.674 [Api Webserver] INFO logstash.agent - Successfully started Logstash API endpoint {:port=>9600}
www.baidu.com
{
"@timestamp" => 2021-03-03T11:25:59.165Z,
"@version" => "1",
"host" => "apache",
"message" => "www.baidu.com"
}
####使用logstash將資訊寫入elasticsearch中#### 輸入 輸出 對接
[root@apache opt]# logstash -e 'input { stdin{} } output { elasticsearch { hosts=>["192.168.200.10:9200"] } }' #ip為node1的ip
,,,,,,,,省略,,,,,,,
The stdin plugin is now waiting for input:
10:40:06.558 [Api Webserver] INFO logstash.agent - Successfully started Logstash API endpoint {:port=>9600}
www.baidu.com ###輸入內容
www.sina.com.cn ###輸入內容
www.google.com.cn ###輸入內容

8、登錄windows
打開瀏覽器 輸入http://192.168.200.10:9100/ 查看索引資訊###
多出 logstash-2021.03.03

點擊資料瀏覽查看回應的內容

【登錄192.168.200.30 Apache主機 做對接配置】
###logstash組態檔###
Logstash組態檔主要由三部分組成:input、output、filter(根據需要)
[root@apache opt]# chmod o+r /var/log/messages
[root@apache opt]# ll /var/log/messages
-rw----r--. 1 root root 567367 3月 3 19:53 /var/log/messages
#組態檔中定義的是收集系統日志(system)
[root@apache opt]# vim /etc/logstash/conf.d/system.conf
input {
file{
path => "/var/log/messages"
type => "system"
start_position => "beginning"
}
}
output {
elasticsearch {
hosts => ["192.168.200.10:9200"]
index => "system-%{+YYYY.MM.dd}"
}
}
[root@apache opt]# systemctl restart logstash.service
登錄windows
打開瀏覽器 輸入http://192.168.200.10:9100/ 查看索引資訊###
多出 system-2021.03.03

###登錄192.168.200.10 node1主機###
##在node1主機安裝kibana##
上傳kibana-5.5.1-x86_64.rpm 到/usr/local/src目錄
[root@node1 ~]# cd /usr/local/src/
[root@node1 src]# rpm -ivh kibana-5.5.1-x86_64.rpm
[root@node1 src]# cd /etc/kibana/
[root@node1 kibana]# cp kibana.yml kibana.yml.bak
[root@node1 kibana]# vim kibana.yml
2/ server.port: 5601 #### kibana打開的埠
7/ server.host: "0.0.0.0" ####kibana偵聽的地址
21/ elasticsearch.url: "http://192.168.200.10:9200" ###和elasticsearch建立聯系
30/ kibana.index: ".kibana" ####在elasticsearch中添加.kibana索引
[root@node1 kibana]# systemctl start kibana.service ###啟動kibana服務
[root@node1 kibana]# systemctl enable kibana.service ###開機啟動kibana服務
####登錄windows###
使用瀏覽器輸入192.168.200.10:5601
首次登錄創建一個索引 名字:system-* ##這是對接系統日志檔案
Index name or pattern ###下面輸入system-*

然后點最下面的出面的create 按鈕創建

然后點最左上角的Discover按鈕 會發現system-*資訊

然后點下面的host旁邊的add 會發現右面的圖只有 Time 和host 選項了 這個比較友好

#####對接Apache主機的Apache 日志檔案(訪問的、錯誤的)#####
[root@apache opt]# cd /etc/logstash/conf.d/
[root@apache conf.d]# touch apache_log.conf
[root@apache conf.d]# vim apache_log.conf
input {
file{
path => "/etc/httpd/logs/access_log"
type => "access"
start_position => "beginning"
}
file{
path => "/etc/httpd/logs/error_log"
type => "error"
start_position => "beginning"
}
}
output {
if [type] == "access" {
elasticsearch {
hosts => ["192.168.200.10:9200"]
index => "apache_access-%{+YYYY.MM.dd}"
}
}
if [type] == "error" {
elasticsearch {
hosts => ["192.168.200.10:9200"]
index => "apache_error-%{+YYYY.MM.dd}"
}
}
}
[root@apache conf.d]# /usr/share/logstash/bin/logstash -f apache_log.conf
####登錄192.168.200.10 node1主機###
打開瀏覽器 輸入http://192.168.200.10:9100/ 查看索引資訊###
能發現出現了 apache_error 和 .kibana

打開瀏覽器 輸入http://192.168.200.10:5601
點擊左下角有個management選項 —index patterns—create index pattern
----分別創建 apache_error-* 和 apache_access-* 的索引

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/265874.html
標籤:其他
