日誌系統
場景
- 一般常見我們需要進行日誌分析場景是:直接在日誌文件中grep、awk就可以獲得自己想要的信息。但在規模較大的場景中,此方法效率低下,面臨問題包括日誌量太大如何歸檔、文本搜索太慢怎麼辦、如何多維度查詢。需要集中化的日誌管理,所有服務器上的日誌收集彙總。常見解決思路是建立集中式日誌收集系統,將所有節點上的日誌統一收集,管理,訪問。
- 大型系統是一個分佈式部署的架構,不同的服務模塊部署在不同的服務器上,問題出現時,大部分情況需要根據問題暴露的關鍵信息,定位到具體的服務器和服務模塊,構建一套集中式日誌系統,可以提高定位問題的效率。
- 對大量的日誌業務數據進行分析,如平臺PV、UV、IP、PageTOP等維度進行分析查詢等。另外安全審計、數據挖掘、行爲分析等都少不了日誌對其作爲支撐。
作用
- 信息查找:通過檢索日誌信息,定位相應的bug,找出解決方案。
- 服務診斷:通過對日誌信息進行統計、分析,瞭解服務器的負荷和服務運行狀態,找出耗時請求進行優化等等。
- 數據分析:如果是格式化的log,可以做進一步的數據分析,統計、聚合出有意義的信息,比如根據請求中的商品id,找出TOP10用戶感興趣商品
架構
日誌系統三個基本組件:
- 採集端:agent(採集日誌源數據,封裝數據源,將數據源中的數據發送給collector)
- 聚合端:collector(按一定規則進行數據處理、接收多個agent的數據,並進行彙總後導入後端的store中)
- 存儲端:store(日誌存儲系統,應該具有可擴 展性和可靠性,如HDFS ES等)
常見方案
ELF/EFK
graylog
流式分析
ELK方案
組件
- Elasticsearch日誌存儲和搜索引擎,它的特點有:分佈式,零配置,自動發現,索引自動分片,索引副本機制,restful風格接口,多數據源,自動搜索負載等。
- Logstash是一個完全開源的工具,他可以對你的日誌進行收集、過濾,並將其存儲供以後使用(支持動態的從各種數據源蒐集數據,並對數據進行過濾、分析、豐富、統一格式等操作。)。
- Kibana 也是一個開源和免費的工具,Kibana可以爲 Logstash 和 ElasticSearch 提供的日誌分析友好的 Web 界面,可以幫助您彙總、分析和搜索重要數據日誌。
- Filebeat:和Logstash一樣屬於日誌收集處理工具,基於原先 Logstash-fowarder 的源碼改造出來的。與Logstash相比,filebeat更加輕量,佔用資源更少
流程
應用程序(AppServer)–>Logstash–>ElasticSearch–>Kibana–>瀏覽器(Browser)
Logstash收集AppServer產生的Log,並存放到ElasticSearch集羣中,而Kibana則從ElasticSearch集羣中查詢數據生成圖表,再返回給Browser。
考慮到聚合端(日誌處理、清洗等)負載問題和採集端傳輸效率,一般在日誌量比較大的時候在採集端和聚合端增加隊列,以用來實現日誌消峯。
ELK日誌流程可以有多種方案(不同組件可自由組合,根據自身業務配置),常見有以下:
- Logstash(採集、處理)—> ElasticSearch (存儲)—>Kibana (展示)
- Logstash(採集)—> Logstash(聚合、處理)—> ElasticSearch (存儲)—>Kibana (展示)
- Filebeat(採集、處理)—> ElasticSearch (存儲)—>Kibana (展示)
- Filebeat(採集)—> Logstash(聚合、處理)—> ElasticSearch (存儲)—>Kibana (展示)
- Filebeat(採集)—> Kafka/Redis(消峯) —> Logstash(聚合、處理)—> ElasticSearch (存儲)—>Kibana (展示)
部署
服務器整體規劃
主機 | 角色 |
---|---|
主機1 | elasticsearch |
主機2 | kibana、zookeeper、kafka |
主機3 | logstash |
主機4 | nginx、filebeat |
jdk配置
[root@localhost ~]# tar -zxf jdk-8u201-linux-x64.tar.gz -C /usr/local/
[root@localhost ~]# ls /usr/local/
bin etc games include jdk1.8.0_201 lib lib64 libexec sbin share src
[root@localhost ~]# vim /etc/profile 末尾追加內容
export JAVA_HOME=/usr/local/jdk1.8.0_201
export JRE_HOME=/usr/local/jdk1.8.0_201/jre
export CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
[root@localhost ~]# source /etc/profile
[root@localhost ~]# java -version
java version "1.8.0_201"
Java(TM) SE Runtime Environment (build 1.8.0_201-b09)
Java HotSpot(TM) 64-Bit Server VM (build 25.201-b09, mixed mode)
elasticsearch部署
[root@localhost ~]# wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.3.2.tar.gz
[root@localhost ~]# tar -zxf elasticsearch-6.3.2.tar.gz -C /usr/local/
[root@localhost ~]# ln -s /usr/local/elasticsearch-6.3.2/ /usr/local/es
[root@localhost ~]# chown -R es:es /usr/local/es/
mkdir -p /es/{data,log}
groupadd es
useradd es -g es -p es
chown -R es:es /es/data
chown -R es:es /es/log
修改系統參數
echo '* soft nofile 819200' >> /etc/security/limits.conf
echo '* hard nofile 819200' >> /etc/security/limits.conf
echo '* soft nproc 2048' >> /etc/security/limits.conf
echo '* hard nproc 4096' >> /etc/security/limits.conf
echo '* soft memlock unlimited' >> /etc/security/limits.conf
echo '* hard memlock unlimited' >> /etc/security/limits.conf
echo 'vm.max_map_count=655360' >> /etc/sysctl.conf
sysctl -p
es參數設置
vim /usr/local/es/config/elasticsearch.yml
cluster.name: bdqn
node.name: es
node.master: true
node.data: true
path.data: /es/data
path.logs: /es/log
network.host: 0.0.0.0
http.port: 9200
discovery.zen.minimum_master_nodes: 1
bootstrap.memory_lock: false
bootstrap.system_call_filter: false #這兩行寫在一起
配置文件中,除了上邊的修改項,其他的均爲註釋項。最後一項如果爲true,則限制es的某些系統調用,可能會導致es啓動失敗
seccomp(全稱securecomputing mode)是linuxkernel從2.6.23版本開始所支持的一種安全機制。在Linux系統裏,大量的系統調用(systemcall)直接暴露給用戶態程序。但是,並不是所有的系統調用都被需要,而且不安全的代碼濫用系統調用會對系統造成安全威脅。通過seccomp,我們限制程序使用某些系統調用,這樣可以減少系統的暴露面,同時是程序進入一種“安全”的狀態。
#根據機器配置,合理修改jvm參數
vim /usr/local/es/config/jvm.options
-Xms1g
-Xmx1g
es控制
[root@es1 ~]# su es
[es@es1 root]$ /usr/local/es/bin/elasticsearch -d
[es@es1 root]$ curl 192.168.43.249:9200
{
"name" : "es",
"cluster_name" : "bdqn",
"cluster_uuid" : "KvsP1lh5Re2cxdgfNbk_eA",
"version" : {
"number" : "6.3.2",
"build_flavor" : "default",
"build_type" : "tar",
"build_hash" : "053779d",
"build_date" : "2018-07-20T05:20:23.451332Z",
"build_snapshot" : false,
"lucene_version" : "7.3.1",
"minimum_wire_compatibility_version" : "5.6.0",
"minimum_index_compatibility_version" : "5.0.0"
},
"tagline" : "You Know, for Search"
}
[root@es1 ~]# iptables -F
kibana部署
# 下載和安裝
wget https://artifacts.elastic.co/downloads/kibana/kibana-6.3.2-linux-x86_64.tar.gz
tar zxvf kibana-6.3.2-linux-x86_64.tar.gz -C /usr/local/
ln -s /usr/local/kibana-6.3.2-linux-x86_64/ /usr/local/kibana
# 配置kibana
vim /usr/local/kibana/config/kibana.yml
server.port: 5601
server.host: "0.0.0.0"
elasticsearch.url: "http://192.168.43.249:9200"
#啓動kibana
/usr/local/kibana/bin/kibana
kafka部署
部署zookeeper
wget http://archive.apache.org/dist/zookeeper/zookeeper-3.4.12/zookeeper-3.4.12.tar.gz
tar zxvf zookeeper-3.4.12.tar.gz -C /usr/local
cd /usr/local/zookeeper-3.4.12
cp conf/zoo_sample.cfg conf/zoo.cfg
# 編輯zoo.cfg文件
vim /usr/local/zookeeper-3.4.12/conf/zoo.cfg
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/data/zookeeper/zkdata
dataLogDir=/data/zookeeper/zkdatalog
clientPort=2181
#創建目錄
mkdir -p /data/zookeeper/{zkdata,zkdatalog}
#配置ZK節點ID
echo 1 > /data/zookeeper/zkdata/myid
#啓動
/usr/local/zookeeper-3.4.12/bin/zkServer.sh start
#停止
/usr/local/zookeeper-3.4.12/bin/zkServer.sh stop
#查看狀態
/usr/local/zookeeper-3.4.12/bin/zkServer.sh status
kafka部署
#下載最新的2.12-2.1版本
wget http://mirrors.hust.edu.cn/apache/kafka/2.1.0/kafka_2.12-2.1.0.tgz
#解壓應用至指定位置
tar zxvf kafka_2.12-2.1.0.tgz -C /usr/local/
ln -s /usr/local/kafka_2.12-2.1.0/ /usr/local/kafka
# vim /usr/local/kafka/config/server.properties
broker.id=2
listeners = PLAINTEXT://192.168.43.74:9092 #本機
num.network.threads=5
num.io.threads=8
socket.send.buffer.bytes=102400
socket.receive.buffer.bytes=102400
socket.request.max.bytes=104857600
log.dirs=/data/kafka/kfdata
delete.topic.enable=true #新增
num.partitions=2
num.recovery.threads.per.data.dir=1
offsets.topic.replication.factor=1
transaction.state.log.replication.factor=1
transaction.state.log.min.isr=1
log.flush.interval.messages=10000 #取消註釋
log.flush.interval.ms=1000 #取消註釋
log.retention.hours=72
log.segment.bytes=1073741824
log.retention.check.interval.ms=300000
zookeeper.connect=192.168.43.74:2181
zookeeper.connection.timeout.ms=6000
group.initial.rebalance.delay.ms=0
kafka管理
#啓動服務:
/usr/local/kafka/bin/kafka-server-start.sh -daemon /usr/local/kafka/config/server.properties
#停止服務:
/usr/local/kafka/bin/kafka-server-stop.sh
kafka隊列
創建topic
/usr/local/kafka/bin/kafka-topics.sh --create \
--zookeeper 192.168.43.74:2181 \
--replication-factor 1 --partitions 2 \
--topic elktest
查看kafka隊列
/usr/local/kafka/bin/kafka-topics.sh --zookeeper 192.168.43.74:2181 --topic "elktest" --describe
kafka通信驗證
生產消息
/usr/local/kafka/bin/kafka-console-producer.sh --broker-list 192.168.43.74:9092 --topic elktest
在命令提示符裏輸入hello,回車
消費消息
/usr/local/kafka_2.12-2.1.0/bin/kafka-console-consumer.sh --bootstrap-server 192.168.43.74:9092 --topic elktest --from-beginning
輸入命令後可以看到剛纔輸入的信息,具體情況如下圖
驗證之後可以退出兩個終端了
filebeat部署
工作原理
在任何環境下,應用程序都有停機的可能性。 Filebeat 讀取並轉發日誌行,如果中斷,則會記住所有事件恢復聯機狀態時所在位置。
Filebeat帶有內部模塊(auditd,Apache,Nginx,System和MySQL),可通過一個指定命令來簡化通用日誌格式的收集,解析和可視化。
FileBeat 不會讓你的管道超負荷。FileBeat 如果是向 Logstash 傳輸數據,當 Logstash 忙於處理數據,會通知 FileBeat 放慢讀取速度。一旦擁塞得到解決,FileBeat將恢復到原來的速度並繼續傳播。
Filebeat保持每個文件的狀態,並經常刷新註冊表文件中的磁盤狀態。狀態用於記住harvester正在讀取的最後偏移量,並確保發送所有日誌行。Filebeat將每個事件的傳遞狀態存儲在註冊表文件中。所以它能保證事件至少傳遞一次到配置的輸出,沒有數據丟失。
Filebeat 有兩個主要組件:
-
harvester:一個harvester負責讀取一個單個文件的內容。harvester逐行讀取每個文件,並把這些內容發送到輸出。每個文件啓動一個harvester。harvester負責打開和關閉這個文件,這就意味着在harvester運行時文件描述符保持打開狀態。在harvester正在讀取文件內容的時候,文件被刪除或者重命名了,那麼Filebeat會續讀這個文件。這就有一個問題了,就是隻要負責這個文件的harvester沒有關閉,那麼磁盤空間就不會釋放。默認情況下,Filebeat保存文件打開直到close_inactive到達。
-
Input:一個input負責管理harvesters,並找到所有要讀取的源。如果input類型是log,則input查找驅動器上與已定義的glob路徑匹配的所有文件,併爲每個文件啓動一個harvester。
安裝配置
https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-6.3.2-linux-x86_64.tar.gz
tar zxvf filebeat-6.3.2-linux-x86_64.tar.gz -C /usr/local/
ln -s /usr/local/filebeat-6.3.2-linux-x86_64/ /usr/local/filebeat
啓動之前需要配置,現在先不做配置,下邊的啓動命令也先不執行
啓動
/usr/local/filebeat/filebeat -c /usr/local/filebeat/filebeat.yml
傳輸方案
- output.elasticsearch
如果你希望使用 filebeat 直接向 elasticsearch 輸出數據,需要配置 output.elasticsearch
output.elasticsearch:
hosts: ["192.168.43.249:9200"]
- output.logstash
如果使用filebeat向 logstash輸出數據,然後由 logstash 再向elasticsearch 輸出數據,需要配置 output.logstash。 logstash 和 filebeat 一起工作時,如果 logstash 忙於處理數據,會通知FileBeat放慢讀取速度。一旦擁塞得到解決,FileBeat 將恢復到原來的速度並繼續傳播。這樣,可以減少管道超負荷的情況。
output.logstash:
hosts: ["192.168.199.5:5044"] #logstaship
- output.kafka
如果使用filebeat向kafka輸出數據,然後由 logstash 作爲消費者拉取kafka中的日誌,並再向elasticsearch 輸出數據,需要配置 output.logstash
output.kafka:
enabled: true
hosts: ["192.168.43.74:9092"]
topic: elktest
logstash部署
工作原理
Logstash 有兩個必要元素:input 和 output ,一個可選元素:filter。 這三個元素,分別代表 Logstash 事件處理的三個階段:輸入 > 過濾器 > 輸出
- 負責從數據源採集數據。
- filter 將數據修改爲你指定的格式或內容。
- output 將數據傳輸到目的地。
在實際應用場景中,通常輸入、輸出、過濾器不止一個。Logstash 的這三個元素都使用插件式管理方式,可以根據應用需要,靈活的選用各階段需要的插件,並組合使用。
配置文件
- logstash.yml:logstash 的默認配置文件,配置如node.name、path.data、pipeline.workers、queue.type等,這其中的配置可以被命令行參數中的相關參數覆蓋
- jvm.options:logstash 的 JVM 配置文件。
- startup.options (Linux):包含系統安裝腳本在 /usr/share/logstash/bin 中使用的選項爲您的系統構建適當的啓動腳本。安裝 Logstash 軟件包時,系統安裝腳本將在安裝過程結束時執行,並使用 startup.options 中指定的設置來設置用戶,組,服務名稱和服務描述等選項。
- pipelines.yml: 定義數據處理流程的文件
input 常用模塊
Logstash 支持各種輸入選擇 ,可以在同一時間從衆多常用來源捕捉事件。能夠以連續的流式傳輸方式,可從日誌、指標、Web 應用、數據存儲以及各種 AWS 服務採集數據。
- file:從文件系統上的文件讀取
- syslog:在衆所周知的端口514上偵聽系統日誌消息,並根據RFC3164格式進行解析
- redis:從redis服務器讀取,使用redis通道和redis列表。 Redis經常用作集中式Logstash安裝中的“代理”,它將接收來自遠程Logstash“託運人”的Logstash事件排隊。
- beats:處理由Filebeat發送的事件。
常用的filter模塊
過濾器是Logstash管道中的中間處理設備。可以將條件過濾器組合在一起,對事件執行操作。
- grok:解析和結構任意文本。 Grok目前是Logstash中將非結構化日誌數據解析爲結構化和可查詢的最佳方法。
- mutate:對事件字段執行一般轉換。您可以重命名,刪除,替換和修改事件中的字段。
- drop:完全放棄一個事件,例如調試事件。
- clone:製作一個事件的副本,可能會添加或刪除字段。
- geoip:添加有關IP地址的地理位置的信息
常用output
- elasticsearch:將事件數據發送給 Elasticsearch(推薦模式)。
- file:將事件數據寫入文件或磁盤。
- graphite:將事件數據發送給 graphite(一個流行的開源工具,存儲和繪製指標, http://graphite.readthedocs.io/en/latest/)。
- statsd:將事件數據發送到 statsd (這是一種偵聽統計數據的服務,如計數器和定時器,通過UDP發送並將聚合發送到一個或多個可插入的後端服務)。
常用code插件
- json:以JSON格式對數據進行編碼或解碼。
- multiline:將多行文本事件(如java異常和堆棧跟蹤消息)合併爲單個事件。
傳輸方案
- 使用beats傳輸至ES:
input {
beats {
port => 5044 # 此端口需要與 filebeat.yml 中的端口相同
}
}
output {
elasticsearch {
hosts => "192.168.199.4:9200"
manage_template => false
index => "%{[@metadata][beat]}-%{[@metadata][version]}-%{+YYYY.MM.dd}"
document_type => "%{[@metadata][type]}"
}
}
- 從Kafka讀取傳輸至ES:
input {
kafka {
bootstrap_servers => "192.168.199.6:9092"
auto_offset_reset => "latest"
consumer_threads => 5
decorate_events => true
topics => ["elktest"]
}
}
output {
elasticsearch {
hosts => ["192.168.199.4:9200"]
index => "elktest-%{+YYYY.MM.dd}"
}
}
安裝測試
# 下載安裝
wget https://artifacts.elastic.co/downloads/logstash/logstash-6.3.2.tar.gz
tar zxvf logstash-6.3.2.tar.gz -C /usr/local/
ln -s /usr/local/logstash-6.3.2/ /usr/local/logstash
vim /usr/local/logstash/config/logstash.yml
#開啓配置文件自動加載
config.reload.automatic: true
#定義配置文件重載時間週期
config.reload.interval: 10
#定義訪問主機名,一般爲域名或IP
http.host: "192.168.199.5"
#配置文件目錄
path.config: /usr/local/logstash/config/*.conf #注意:和/之間有空格
#日誌輸出路徑
path.logs: /var/log/logstash
#測試(敲入命令後,輸入任意消息) #目前還沒有conf文件,暫時不可以敲這個命令
/usr/local/logstash/bin/logstash -e 'input{stdin{}}output{stdout{}}'
使用
ELK方案一
實驗重點在於理解各組件協調流程,學習beats(filebeat)的使用
NginxLog ----> Filebeat —> Logstash —> ES —>Kibana
節點說明
主機名 | 地址 | 角色 | 作用 | 版本 |
---|---|---|---|---|
es | 192.168.43.249 | Elasticsearch | 日誌存儲 | elasticsearch-6.3.2 |
logstash | 192.168.43.147 | Logstash | 日誌處理 | Logstatsh-6.3.2 |
zkk | 192.168.199.43.74 | Kibana | 日誌展示 | kibana-6.3.2 |
app1 | 192.168.43.253 | Nginx、FileBeat | 日誌生產、日誌採集 | filebeat-6.3.2 |
實驗前提
- ES安裝配置並啓動
- Filebeat安裝完成
- Logstash安裝完成
- Kibana安裝配置完成
- 防火牆開放相關端口
- 禁用selinux
服務配置
- filebeat配置
[root@es3 ~]# vim /usr/local/filebeat/filebeat.yml
#=========================== Filebeat inputs =============================
#filebeat.inputs:
# Each - is an input. Most options can be set at the input level, so
# you can use different inputs for various configurations.
# Below are the input specific configurations.
filebeat:
prospectors:
- type: log
paths:
- /usr/local/nginx/logs/access.log
tags: ["nginx"]
# Change to true to enable this input configuration.
enabled: true
#----------------------------- Logstash output --------------------------------
output.logstash:
hosts: ["192.168.43.147:5044"]
在logstas output上邊有一個elasticsearch output 需要註釋掉
#運行
/usr/local/filebeat/filebeat -c /usr/local/filebeat/filebeat.yml
- filebeat主機安裝nginx並啓動
過程略
- logstash配置
[root@localhost ~]# vim /usr/local/logstash/config/nginx-access.conf
input {
beats {
port => 5044
}
}
output {
elasticsearch {
hosts => "192.168.43.249:9200"
index => "nginx-%{+YYYY.MM.dd}"
}
}
#運行
/usr/local/logstash/bin/logstash -f /usr/local/logstash/config/nginx-access.conf
- kibana展示
在kibana主機上訪問本機5601端口
firefox 192.168.43.74:5601
點擊左側菜單的discover 在新頁面的輸入框內輸入nginx-* 作爲索引樣式,然後點擊下一步
添加完索引之後,點擊左側菜單的可視化,創建一個可視化圖表,在新頁面裏選擇vertical bar
選擇我們已經創建的索引樣式,即可看到數據,如果不明顯,去nginx那自己訪問自己幾次
查看es上的索引列表進行驗證
[root@es1 ~]# curl 192.168.43.249:9200/_cat/indices?v
health status index uuid pri rep docs.count docs.deleted store.size pri.store.size
green open .kibana kT2cHcPUQEuRZ4bNr4bhZQ 1 0 2 0 10.6kb 10.6kb
red open index WgQXJcVDSf6BiVAogsKk5g 5 1 1 0 3.6kb 3.6kb
yellow open nginx-2019.02.08 qKww-bo7SOqGSjEb3wAj8A 5 1 26 0 229.2kb 229.2kb
red open bdqntest BnAC8m91TzKWGPsxwj23nA 5 1 0 0 781b 781b
實驗二
實驗重點在於理解各組件協調流程,理解加入消息隊列後的架構
NginxLog —> Filebeat —> Kafka —> Logstash —> ES —>Kibana
節點說明
主機名 | 地址 | 角色 | 作用 | 版本 |
---|---|---|---|---|
es | 192.168.43.249 | Elasticsearch | 日誌存儲 | elasticsearch-6.3.2 |
logstash | 192.168.43.147 | Logstash | 日誌處理 | Logstatsh-6.3.2 |
zkk | 192.168.199.43.74 | Kibana、kafka、zookeeper | 日誌展示 | kibana-6.3.2 |
app1 | 192.168.43.253 | Nginx、FileBeat | 日誌生產、日誌採集 | filebeat-6.3.2 |
實驗前提
1、 ES安裝配置並啓動
2、 Filebeat安裝完成
3、 Logstash安裝完成
4、 Kibana安裝配置完成
5、 防火牆開放相關端口
6、 禁用selinux
7、 Zookeeper運行啓動
8、 Kafka已配置運行
服務配置
- kafka配置
#創建topic 並測試消費者正常 (前邊已經創建過)
/usr/local/kafka_2.12-2.1.0/bin/kafka-topics.sh --create \
--zookeeper 192.168.43.74:2181 \
--replication-factor 1 --partitions 2 \
--topic elktest1
- filebeat配置
[root@es3 nginx-1.15.4]# vim /usr/local/filebeat/filebeat.yml
在上邊實驗的基礎上,把logstash output註釋掉 在它下邊自己寫對kafka的output
output.kafka:
enabled: true
hosts: ["192.168.43.74:9092"]
topic: "elktest1"
#運行filebeat
/usr/local/filebeat/filebeat -c /usr/local/filebeat/filebeat.yml
- logstash配置
[root@localhost ~]# vim /usr/local/logstash/config/nginx-access.conf
input{
kafka{
bootstrap_servers => "192.168.43.74:9092"
topics => "elktest"
consumer_threads => 1
decorate_events => true
auto_offset_reset => "latest"
}
}
output {
elasticsearch {
hosts => ["192.168.43.249:9200"]
index => "nginx-kafka-%{+YYYY-MM-dd}"
}
}
#運行
/usr/local/logstash/bin/logstash -f /usr/local/logstash/config/nginx-access.conf
- kibana展示
kibana主機啓動kafka(如果之前啓動過,這不忽略)
#啓動zookeeper
/usr/local/zookeeper-3.4.12/bin/zkServer.sh start
#啓動kafka
/usr/local/kafka/bin/kafka-server-start.sh -daemon /usr/local/kafka/config/server.properties
在kibana主機上訪問本機5601端口
firefox 192.168.43.74:5601