ELK+SpringBoot+Logback離線安裝及配置

ELK+SpringBoot+Logback

離線安裝及配置

 

 

版本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

 

 

 

 

 

 

 

 

 

1、ELK介紹

Elasticsearch是個開源分佈式搜索引擎,它的特色有:分佈式,零配置,自動發現,索引自動分片,索引副本機制,restful風格接口,多數據源,自動搜索負載等。

Logstash是一個徹底開源的工具,他能夠對你的日誌進行收集、過濾,並將其存儲供之後使用(如,搜索)。

Kibana 也是一個開源和免費的工具,它Kibana能夠爲 Logstash ElasticSearch 提供的日誌分析友好的 Web 界面,能夠幫助您彙總、分析和搜索重要數據日誌。

 

Logstash收集AppServer產生的Log,並存放到ElasticSearch集羣中,而Kibana則從ES集羣中查詢數據生成圖表,再返回給Browser

2、安裝環境

系統: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

3、Elasticsearch安裝

3.1 解壓

tar -xzvf elasticsearch-6.2.4.tar.gz

3.2 配置

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

3.3 建立帳戶

不能用root啓動

#新建elsearch

groupadd elsearch

#新建一個elsearch用戶

useradd elsearch -g elsearch -p elasticsearch  

#指定elasticsearch-6.2.4目錄所屬elsearch

chown -R elsearch:elsearch  ./elasticsearch-6.2.4

3.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

3.5 異常處理

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

  1. max file descriptors [65535] for elasticsearch process likely too low, increase to at least [65536]

解決方案:ulimit -n 65536

4、SpringBoot配置

4.1 添加依賴pom.xml

<dependency>

<groupId>net.logstash.logback</groupId>

<artifactId>logstash-logback-encoder</artifactId>

<version>4.9</version>

</dependency>

4.2 配置logback.xml

<!-- 配置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>

5、Logstash安裝

5.1 解壓

tar -xzvf logstash-6.2.4.tar.gz

5.2 配置

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和端口必須和springbootlogback.xml中的配置徹底同樣,不能一個配ip一個localhost

2.output.elasticsearch: 配置elasticsearch服務器的ip

3.%{[appname]}: 引用springbootlogback.xml中配置的變量

4.output.stdout: 在終端顯示輸出信息(能夠不配置)

5.若是修改logstash.conf後自動加載,須要配置:

vim config/logstash.yml

config.reload.automatic: true

5.3 啓動

nohup ./bin/logstash -f ./config/logstash.conf &

看到Successfully started Logstash API endpoin啓動成功

6、Kibana安裝

6.1 解壓

tar -xzvf kibana-6.2.4-linux-x86_64.tar.gz

6.2 配置

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」

6.3 啓動

nohup ./bin/kibana &

6.4 訪問http://localhost:5601

1. 建立index Pattern

當服務器,項目啓動,會生成index,名稱爲logstash配置的%{[appname]}-52.200-log-%{+YYYY.MM.dd}

點擊Management----Index Patterns----CreateIndexPattern

在列表中能看到index名稱

Step1中填寫匹配模式:如*appname*

Step2中配置過濾字段@timestamp或其餘

  1. 點擊Discover,在索引框中選擇剛配置的匹配模式,就能夠查看日誌

7、總結

7.1流程

springboot項目啓動,日誌經過logback記錄,而且根據配置將日誌流發送給logstashlogstash過濾,存儲,elasticsearch負責索引搜索,kibana負責頁面展現。

注意若是幾個服務放在不一樣的服務器,注意端口的開放。

7.2用到的命令

  1. tar -xvzf xxx.tar.gz 解壓
  2. tar -cvf 壓縮
  3. nohup 命令 & 後臺啓動命令
  4. jobs -l 查看後臺啓動
  5. tail -f 文件 查看文件最後幾行
  6. head -n行數 文件 查看文件前幾行
  7. ps -ef|grep 8181 查看進程
  8. kill pid 殺進程
  9. grep -v aaa 過濾不包含aaa
  10. systemctl stop firewalld 臨時關閉防火牆
  11. systemctl disabled firewalld 禁止開機啓動
  12. firewall-cmd --zone=public --add-port=80/tcp --permanent 開啓端口80
  13. firewall-cmd --reload 重啓防火牆

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    ##查看幫助

相關文章
相關標籤/搜索