版本html |
v1.0node |
編寫時間linux |
2018/6/11spring |
編寫人json |
xxxvim |
1、 ELK介紹2springboot
2、 安裝環境2ruby
3、 Elasticsearch安裝2服務器
3.1 解壓 2restful
3.2 配置 2
3.3 建立帳戶 3
3.4 啓動 3
3.5 異常處理 3
4、 SpringBoot配置3
4.1 添加依賴pom.xml 3
4.2 配置logback.xml 4
5、 Logstash安裝4
5.1 解壓 4
5.2 配置 4
5.3 啓動 5
6、 Kibana安裝5
6.1 解壓 5
6.2 配置 5
6.3 啓動 5
6.4 訪問http://localhost:5601 5
7、 總結5
7.1流程 5
7.2用到的命令 6
Elasticsearch是個開源分佈式搜索引擎,它的特色有:分佈式,零配置,自動發現,索引自動分片,索引副本機制,restful風格接口,多數據源,自動搜索負載等。
Logstash是一個徹底開源的工具,他能夠對你的日誌進行收集、過濾,並將其存儲供之後使用(如,搜索)。
Kibana 也是一個開源和免費的工具,它Kibana能夠爲 Logstash 和 ElasticSearch 提供的日誌分析友好的 Web 界面,能夠幫助您彙總、分析和搜索重要數據日誌。
Logstash收集AppServer產生的Log,並存放到ElasticSearch集羣中,而Kibana則從ES集羣中查詢數據生成圖表,再返回給Browser。
系統:Centos7
JDK:1.8
Elasticsearch:6.2.4
Logstash:6.2.4
Kibana :6.2.4
ELK下載地址:https://www.elastic.co/cn/products
安裝參考地址:http://www.javashuo.com/article/p-arflapah-dh.html
tar -xzvf elasticsearch-6.2.4.tar.gz
cd elasticsearch-6.2.4
vim config/elasticsearch.yml
# 集羣名稱
cluster.name: es_cluster
# 節點名稱
node.name: node-0
# 數據存儲目錄(多個路徑用逗號分隔)
path.data: /tmp/elasticsearch/data
# 日誌目錄
path.logs: /tmp/elasticsearch/logs
# 本機IP
network.host: 192.168.53.11
# 監聽端口(默認)
http.port: 9200
不能用root啓動
#新建elsearch組
groupadd elsearch
#新建一個elsearch用戶
useradd elsearch -g elsearch -p elasticsearch
#指定elasticsearch-6.2.4目錄所屬elsearch組
chown -R elsearch:elsearch ./elasticsearch-6.2.4
用elsearch登陸,而後啓動
nohup ./bin/elasticsearch &
注意:[nohup 命令 &]:後臺啓動,啓動日誌輸出到當前目錄下的nohup.out,使用tail -f nohup.out查看啓動狀況,看到如下字樣,則啓動成功:
publish_address {192.168.53.11:9300}
publish_address {192.168.53.11:9200}
started
訪問192.168.53.11:9200能夠看到node,cluster_name
1. Ubuntu elasticsearch max virtual memory areas vm.max_map_count [65530] is too low, increase to at le
解決方案:vim /etc/sysctl.conf
添加vm.max_map.count=655360
執行:sysctl -p
解決方案:ulimit -n 65536
<dependency>
<groupId>net.logstash.logback</groupId>
<artifactId>logstash-logback-encoder</artifactId>
<version>4.9</version>
</dependency>
<!-- 配置appender -->
<appender name=」LOGSTASH」
class=」net.lgostash.logback.appender.logstashTcpSocketAppender」>
<!-- 本機地址及端口,用於將項目log日誌輸出到logstash -->
<destination>localhost:9601</destination>
<encoder charset=」UTF-8」
class=」net.logstash.logback.encoder.LogstashEncoder」>
<!-- 自定義變量,能夠在kibana查看,如項目名稱 -->
<customFields>{「appname」:」uem-smgr-service」}</customFields>
</encoder>
</appender>
<!--- 配置logger -->
須要將日誌輸出到logstash的地方都須要配置<appender-ref ref=」LOGSTASH」/>
<logger name=」包名或類名」 level=」debug」 additivity=」true|false 是否繼承父類logger」>
<appender-ref ref=」LOGSTASH」/>
</logger>
tar -xzvf logstash-6.2.4.tar.gz
cd logstash-6.2.4
logstash.conf名字自定義的
vim config/logstash.conf
input {
tcp {
host => 「localhost」
port => 9601
mode => 「server」
tags => [「tags」]
codec => json_lines
}
}
output {
elasticsearch {
action => 「index」
hosts => 「192.168.53.11」
index => 「%{[appname]}-52.200-log-%{+YYYY.MM.dd}」
}
stdout {
codec => rubydebug { }
}
}
注意:
1.input.tcp: 中配置的是本機地址,ip和端口必須和springboot的logback.xml中的配置徹底同樣,不能一個配ip一個localhost
2.output.elasticsearch: 配置elasticsearch服務器的ip
3.%{[appname]}: 引用springboot的logback.xml中配置的變量
4.output.stdout: 在終端顯示輸出信息(能夠不配置)
5.若是修改logstash.conf後自動加載,須要配置:
vim config/logstash.yml
config.reload.automatic: true
nohup ./bin/logstash -f ./config/logstash.conf &
看到Successfully started Logstash API endpoin啓動成功
tar -xzvf kibana-6.2.4-linux-x86_64.tar.gz
cd kibana-6.2.4-linux-x86_64
vim config/kibana.yml
server.host: 「0.0.0.0」
elasticsearch.url: 「http://192.168.53.11:9200」
nohup ./bin/kibana &
1. 建立index Pattern
當服務器,項目啓動,會生成index,名稱爲logstash配置的%{[appname]}-52.200-log-%{+YYYY.MM.dd}
點擊Management----Index Patterns----CreateIndexPattern
在列表中能看到index名稱
在Step1中填寫匹配模式:如*,appname值*
在Step2中配置過濾字段@timestamp或其餘
springboot項目啓動,日誌經過logback記錄,而且根據配置將日誌流發送給logstash,logstash過濾,存儲,elasticsearch負責索引搜索,kibana負責頁面展現。
注意若是幾個服務放在不一樣的服務器,注意端口的開放。
firewall-cmd --state ##查看防火牆狀態,是不是running
firewall-cmd --reload ##從新載入配置,好比添加規則以後,須要執行此命令
firewall-cmd --get-zones ##列出支持的zone
firewall-cmd --get-services ##列出支持的服務,在列表中的服務是放行的
firewall-cmd --query-service ftp ##查看ftp服務是否支持,返回yes或者no
firewall-cmd --add-service=ftp ##臨時開放ftp服務
firewall-cmd --add-service=ftp --permanent ##永久開放ftp服務
firewall-cmd --remove-service=ftp --permanent ##永久移除ftp服務
firewall-cmd --add-port=80/tcp --permanent ##永久添加80端口
iptables -L -n ##查看規則,這個命令是和iptables的相同的
man firewall-cmd ##查看幫助