日志分析系統(tǒng)的搭建與使用
日志分析系統(tǒng)一般有ELK
和EFK
兩種,區(qū)別在于使用日志搜集的組件不同L
—logstash
敦冬,F
—FileBeat
,剩下的兩種分別是_E
—Elasticsearch
和K
—Kibana
。
過程中所有不懂的地方叠赦,請及時查看Elasticsearch官方文檔流妻,這個文檔目前是業(yè)內(nèi)好評做多的文檔牲蜀,很全!很全绅这!很全涣达!
版本介紹: ElasticSearch
、Kibana
证薇、FileBeat
均使用7.12.0
版本度苔。
各種組件的搭建
Elasticsearch
的搭建過程
Docker
方式安裝搭建(可以連接外網(wǎng)并有訪問權(quán)限)
1、104服務(wù)器拉取ElasticSearch
鏡像
注意:直接從docker hub
搜索到的鏡像版本可能比較低浑度,這里以官方文檔中給出的鏡像為準(zhǔn):
docker pull docker.elastic.co/elasticsearch/elasticsearch:7.10.1
嘗試執(zhí)行寇窑,發(fā)現(xiàn)找不到資源,不清楚什么鬼箩张,若無法拉取甩骏,可以改成這樣(后面的一些操作照葫蘆畫瓢):
docker pull elasticsearch:7.10.1
2窗市、創(chuàng)建并啟動elasticsearch
因?yàn)槭潜镜亻_發(fā)用,所以部署為單機(jī)模式饮笛,若以集群模式部署可以參考這里
discovery.type=single-node
表示單節(jié)點(diǎn)(單機(jī)模式)咨察。
/home/dockerapps/elasticsearch/data:/usr/share/elasticsearch/data
將物理機(jī)dockerapp
下的目錄映射到容器以進(jìn)行持久化。
另外可以不映射9300
端口福青,這里的9300
是集群用的摄狱。
docker run -p 9200:9200 -p 9300:9300
-v /home/dockerapps/elasticsearch/data:/usr/share/elasticsearch/data
-e "discovery.type=single-node"
--name elasticsearch docker.elastic.co/elasticsearch/elasticsearch:7.10.1
執(zhí)行后出現(xiàn)AccessDeniedException
,修改物理機(jī)目錄對應(yīng)權(quán)限
chmod -R 777 /home/dockerapps/elasticsearch/data
重新啟動容器,問題解決无午。測試訪問http://192.168.3.104:9200/
得到es基本信息
{
"name" : "XX-XX-XX",
"cluster_name" : "elasticsearch-application",
"cluster_uuid" : "HLt04VgUTkisbTgIGXrQ",
"version" : {
"number" : "7.12.0",
"build_flavor" : "default",
"build_type" : "tar",
"build_hash" : "78722783c38caa25a70982b5b042074cde5d3b3a",
"build_date" : "2021-03-18T06:17:15.410153305Z",
"build_snapshot" : false,
"lucene_version" : "8.8.0",
"minimum_wire_compatibility_version" : "6.8.0",
"minimum_index_compatibility_version" : "6.0.0-beta1"
},
"tagline" : "You Know, for Search"
}
有以上信息表示成功部署媒役,若沒有請查看日志,根據(jù)報錯去找百度指厌。
至此es
的docker
部署完畢查牌。
離線安裝搭建
1纲爸、創(chuàng)建用戶和組
Elasticsearch 5
版本開始群井,出于系統(tǒng)安全考慮設(shè)置赴恨,不再允許直接使用 root
用戶啟動了,會報 can not run elasticsearch as root
異常信息箕憾,所以需要將 Elasticsearch
啟動在普通用戶下牡借,且為了環(huán)境隔離,最好為 Elasticsearch
單獨(dú)創(chuàng)建一個獨(dú)立的用戶袭异,譬如 elsearch
钠龙,用戶名可自定義。
useradd elsearch # 新建 elsearch 用戶
passwd elsearch # 修改 elsearch 用戶的密碼御铃, 這一步不設(shè)置就是沒密碼
請使用 root 用戶執(zhí)行上述命令碴里,以創(chuàng)建 elsearch 用戶及修改密碼。
2上真、環(huán)境變量
為 elsearch
用戶配置 Elasticsearch
配置環(huán)境變量咬腋。切換到 elsearch
用戶下,編輯打開用戶環(huán)境變量文件:
vim /home/elsearch/.bash_profile
將如下信息追加到文件中末尾的新行中:(我安裝是提示此處需要JDK環(huán)境我就把JDK也放下去了,這里應(yīng)該是不需要的睡互,因?yàn)镋S自己有Java類庫和環(huán)境根竿。在根目錄下bin/elasticsearch-env中有對于Java環(huán)境的判斷)
export JAVA_HOME=${你的Java的安裝路徑}
export ES_HOME=/usr/local/elasticsearch
export PATH=$PATH:$ES_HOME/bin:$JAVA_HOME/bin
再通過鍵入 :wq
保存且退出后,一定要再通過 source ~/.bash_profile
命令使變更生效就珠。
3寇壳、資源限制
3.1 最大線程數(shù)
?一般在 Linux
系統(tǒng)的默認(rèn)情況下,系統(tǒng)普通用戶可以創(chuàng)建的線程數(shù)是 1024
個妻怎,此處應(yīng)確保 elsearch
用戶可以創(chuàng)建的線程數(shù)至少為 2048
個壳炎。可用如下方式設(shè)置:
vim /etc/security/limits.d/90-nproc.conf
在打開的文件新行中追加如下內(nèi)容:
elsearch soft nproc 4096
如果未修改該配置逼侦,啟動時將會報形如下述內(nèi)容的異常信息:
max number of threads [1024] for user [elsearch] likely too low, increase to at least [4096]
3.2 打開的文件數(shù)與線程數(shù)
vim /etc/security/limits.conf
在打開的文件新行中追加如下內(nèi)容:
elsearch soft nofile 65536
elsearch hard nofile 131072
elsearch soft nproc 4096
elsearch hard nproc 4096
注意:此處的 elsearch
與上述創(chuàng)建的用戶名elsearch
對應(yīng)冕广。
?如果未修改該配置疏日,啟動時將會報形如下述內(nèi)容的異常信息: node validation exception bootstrap checks failed
3.3 系統(tǒng)控制文件
Elasticsearch
默認(rèn)使用 mmapfs
目錄存儲索引,而 Linux
默認(rèn)對 mmap
計數(shù)限制可能太低撒汉,會導(dǎo)致內(nèi)存異常。系統(tǒng)控制文件是管理系統(tǒng)中的各種資源控制的配置文件涕滋,ES
需要開辟一個 65536
字節(jié)以上空間的虛擬內(nèi)存睬辐,但 Linux
又不允許任何用戶直接開辟虛擬內(nèi)存,所以通過如下方式修改:
vim /etc/sysctl.conf
在打開的文件新行中增加如下內(nèi)容:
vm.max_map_count=655360
再執(zhí)行 sysctl -p
命令使其生效宾肺。
如果未修改該配置溯饵,啟動時將會報形如下述內(nèi)容的異常信息: max virtual memory areas vm.max_map_count [65530] likely too low, increase to at least [262144]
4、下載安裝配置
官方下載壓縮包地址:https://www.elastic.co/cn/start
找對應(yīng)的機(jī)器版本下載锨用,這里我使用最新版本Linux 7.12.0
4.1丰刊、啟動
將下載好的安裝包 elasticsearch-7.12.0-linux-x86_64.tar.gz
上傳至 elsearch
用戶的主目錄下,解壓并移動到 /usr/local/
目錄下(不一定是/usr/local
目錄增拥, 也可以是別的目錄啄巧, 只是我比較喜歡把程序文件夾放到這個目錄下, 把數(shù)據(jù)文件夾放到 /data
目錄下而已) 掌栅。
tar -zxf elasticsearch-7.12.0-linux-x86_64.tar.gz #解壓安裝包
mv elasticsearch-7.12.0-linux-x86_64 /usr/local/elasticsearch #移動到指定目錄秩仆,并更名
chown -R elsearch:elsearch /usr/local/elasticsearch #變更程序所屬用戶組
注意:使用root用戶執(zhí)行上述命令。
ElasticSearch
目錄結(jié)構(gòu):
目錄 | 配置文件 | 備注 |
---|---|---|
bin | 二進(jìn)制腳本文件猾封。 啟動 elasticsearch澄耍、安裝插件、運(yùn)行統(tǒng)計數(shù)據(jù)等 |
|
config | elasticsearch.yml晌缘,jvm.options | 集群配置文件齐莲。user、role based 相關(guān)配置磷箕。 jvm配置文件可以配置jvm啟動參數(shù) -Xms 和-Xmx 等參數(shù)选酗,一般設(shè)置為RAM的50%就可以了。 |
jdk | Java 運(yùn)行環(huán)境 | |
data | path.data | 數(shù)據(jù)文件 |
lib | Java 類庫 | |
logs | path.log | 日志默認(rèn)存放目錄 |
modules | 所有 Elasticsearch 模塊 | |
plugins | 已安裝的插件 |
JVM其他配置
Elasticsearch
為 JVM
的配置專門準(zhǔn)備了一個 config/jvm.options
配置文件搀捷,7.12.0
版本的默認(rèn)設(shè)置 JVM
啟動時占用內(nèi)存與運(yùn)行時的最大占用內(nèi)存皆為 1 GB
星掰,即 -Xms1g -Xmx1g。在實(shí)際使用環(huán)境中嫩舟,可能存在需調(diào)整的情況氢烘,下面給出三條調(diào)整建議:
· Xmx 和 Xms 設(shè)置成一樣。
· 不要超過機(jī)器總內(nèi)存的 50%家厌。
· 不要超過 30 GB播玖。
ElasticSearch的配置
Elasticsearch
的配置同樣遵循“約定大于配置”的設(shè)計原則。Elasticsearch
具有極好的默認(rèn)值設(shè)置饭于,用戶僅需很少的配置既可使用 Elasticsearch
蜀踏。用戶既可以使用集群更新設(shè)置 API
在在正在運(yùn)行的集群上更改大多數(shù)設(shè)置维蒙,也可以通過配置文件對 Elasticsearch
進(jìn)行配置。Elasticsearch
服務(wù)的主配置文件為 config/elasticsearch.yml
果覆。
注意:下述配置中多處使用了 hostname 作為地址信息颅痊,請留意配置相關(guān) hosts 映射關(guān)系。
1局待、集群名稱
?默認(rèn)的集群名稱為 elasticsearch
斑响,如果存在多個集群,或需要為該集群起一個具有義務(wù)含義的名稱钳榨,則需要為其重定義名稱舰罚。
cluster.name: elasticsearch-application
注意:elasticsearch-application
的日志文件名皆以集群名為前綴。
2薛耻、節(jié)點(diǎn)名稱
?默認(rèn)情況下营罢,Elasticsearch
將使用隨機(jī)生成的 UUID
的前七個字符作為節(jié)點(diǎn) ID
,該節(jié)點(diǎn)名稱一經(jīng)生成后饼齿,即使重啟服務(wù)亦不會變更饲漾,所以建議配置一個更有意義的名稱,一般直接使用主機(jī)名(hostname)作為節(jié)點(diǎn)名候醒。
node.name: ${HOSTNAME}
一般情況下能颁,直接使用上述表達(dá)式即可,服務(wù)啟動時會自動通過執(zhí)行hostname
命令獲取節(jié)點(diǎn)名倒淫。如若將其變更為具體的節(jié)點(diǎn)名伙菊,且是直接將此配置拷貝到其他節(jié)點(diǎn)上,以形成集群時敌土,則需要另單獨(dú)修改之镜硕,因?yàn)樾纬杉旱谋匾獥l件是集群名相同,節(jié)點(diǎn)名不同返干。
3兴枯、logs
和 data
路徑配置
?Elasticsearch
是會像數(shù)據(jù)庫一樣存儲大量數(shù)據(jù)的,且有時還會根據(jù)日志信息排查問題矩欠,所以數(shù)據(jù)和日志的存放目錄都會另外指定到有較大存儲空間的磁盤上保存财剖。
path.data: /home/ellison/elasticsearch-7.12.0/data
path.logs: /home/ellison/elasticsearch-7.12.0/logs
若不存在上述目錄,Elasticsearch
在啟動時是不會去自動創(chuàng)建癌淮,所以需自行創(chuàng)建躺坟,且需保證 elsearch
用戶擁有讀寫權(quán)限,最好將該目錄所屬用戶及用戶組修改為 elsearch
乳蓄。下面提供相關(guān)命令咪橙,以供參考。
mkdir -p /home/ellison/elasticsearch-7.12.0/data #遞歸創(chuàng)建目錄
chown -R elsearch:elsearch /home/ellison/elasticsearch-7.12.0 #變更目錄所屬用戶及用戶組
data
目錄是可以設(shè)多個路徑。
path:
data:
- /data/elasticsearch/data_1
- /data/elasticsearch/data_2
- /data/elasticsearch/data_3
在生產(chǎn)環(huán)境中一定要為path.data
指定多個路徑美侦,如果有條件的話产舞,最好保證這些目錄掛載到不同的物理磁盤上。這樣做有兩個好處:
提升讀寫性能:比起單塊磁盤菠剩,多塊物理磁盤同時讀寫數(shù)據(jù)有更高的吞吐量易猫。
能夠?qū)崿F(xiàn)故障轉(zhuǎn)移:即 Failover。
4赠叼、network.host
?默認(rèn)情況下擦囊,此 elasticsearch
服務(wù)綁定到回環(huán)地址上,例如 127.0.0.1``(::1)
嘴办,因?yàn)閹缀趺颗_機(jī)器的回環(huán)地址都是 127.0.0.1
,在其他機(jī)器上通過回環(huán)地址訪問的肯定只能也是其本地環(huán)境买鸽,所以如此配置涧郊,意味著只有本機(jī)才能訪問此服務(wù)。要想其他節(jié)點(diǎn)也能訪問到此服務(wù)眼五,則需要綁定到一個非回環(huán)地址妆艘。
network.host: 10.251.74.113
請將上述 IP 地址(IPv4 或 IPv6)修改為當(dāng)前節(jié)點(diǎn)的對外 IP 地址。
5看幼、discovery.seed_hosts
?集群中擁有被選舉成 Master 節(jié)點(diǎn)資格的地址列表批旺。可以是以逗號分隔的單個字符串诵姜,每個節(jié)點(diǎn)的格式為:host:port 或 host汽煮,若并沒有明確指定端口,則默認(rèn)使用 9300棚唆。
discovery.seed_hosts: ["node1", "node2", "node3"]
上述表示 node1暇赤、node2 和 node3 三個節(jié)點(diǎn)皆有資格被選舉成 Master 節(jié)點(diǎn)。
cluster.initial_master_nodes
在一個新集群初始化時宵凌,符合 Master 節(jié)點(diǎn)資格的節(jié)點(diǎn)集鞋囊。
cluster.initial_master_nodes: ["slave09", "slave10"]
在完成環(huán)境變量和參數(shù)配置的前提下,使用 elsearch
用戶執(zhí)行以下命令即可啟動 elasticsearch
[elsearch@JV-PRD-MD elasticsearch-7.12.0] ./bin/elasticsearch -d
參數(shù)-d表示在后臺以守護(hù)進(jìn)程模式運(yùn)行瞎惫×锔或者使用nohup后臺啟動也可以。
執(zhí)行完啟動命令后瓜喇,可通過查看/home/ellison/elasticsearch-7.12.0/logs
目錄下的 elasticsearch-application-xxxxx.log
(若在配置過程中修改了集群名稱挺益,則此文件名應(yīng)為"集群名.log")文件,來檢測啟動過程中是否存在問題欠橘。
?在確認(rèn)啟動日志中無異常信息后矩肩,在瀏覽器中輸入地址訪問即可:出現(xiàn)一堆json數(shù)據(jù)則表示安裝成功。
4.2、單節(jié)點(diǎn)多實(shí)例啟動
在同一個節(jié)點(diǎn)上啟動多個 elasticsearch 實(shí)例:
bin/elasticsearch -E node.name=node1 -E cluster.name=my_cluster -E path.data=/data/es/node1 -d
bin/elasticsearch -E node.name=node2 -E cluster.name=my_cluster -E path.data=/data/es/node2 -d
bin/elasticsearch -E node.name=node3 -E cluster.name=my_cluster -E path.data=/data/es/node3 -d
執(zhí)行完上述命令后黍檩,可在終端執(zhí)行下述命令查看集群的節(jié)點(diǎn)信息:
curl -X GET http://localhost:9200/_cat/nodes
得到的節(jié)點(diǎn)信息為:
10.251.74,113 26 64 0 0.00 0.01 0.05 dilmrt - node1
10.251.74,113 25 64 0 0.00 0.01 0.05 dilmrt * node2
10.251.74,113 27 64 0 0.00 0.01 0.05 dilmrt - node3
4.3叉袍、停止
簡單粗暴,使用jps
查詢Java
進(jìn)程刽酱,然后直接kill -9
干死喳逛。
或者網(wǎng)上有一些會封裝一些腳本操作,可以學(xué)習(xí)(下面封裝是copy其他博客):
# 方式一:組合命令
ps -ef|grep Elasticsearch|grep -v grep|awk '{print $2}'|xargs kill -SIGTERM
# 方式二:封裝腳本棵里,整理成一個stop.sh 腳本润文,存放于 你安裝的es的根目錄的/bin/ 目錄下,要記得為該腳本賦可執(zhí)行權(quán)限:chmod +x stop.sh
#!/bin/sh
SIGNAL=${SIGNAL:-TERM}
case "`uname`" in
Linux)
bin_abs_path=$(readlink -f $(dirname $0))
;;
*)
bin_abs_path=`cd $(dirname $0); pwd`
;;
esac
base_dir=`cd $bin_abs_path/..; pwd`
PIDS=$(ps ax|grep Elasticsearch|grep java|grep "$base_dir"|grep -v grep|awk '{print $1}')
if [ -z "$PIDS" ]; then
echo "No elasticsearch server to stop"
exit 1
else
kill -s $SIGNAL $PIDS
while true
do
PID=$(ps ax|grep Elasticsearch|grep java|grep "$base_dir"|grep -v grep)
if [ -z "$PID" ]; then
echo " stopped"
break
fi
echo -n "."
sleep 1
done
fi
Kibana
的搭建過程
Docker
方式安裝搭建
docker run -p 5601:5601 --name kibana docker.elastic.co/kibana/kibana:7.10.1
此時通過日志發(fā)現(xiàn)無法連接到elasticsearch殿怜,因此做一個容器和物理機(jī)的路徑映射典蝌,并修改一些配置
docker cp kibana:/usr/share/kibana /home/dockerapps
docker stop kibana
docker rm kibana
docker run -p 5601:5601 -v /home/dockerapps/kibana:/usr/share/kibana --name kibana docker.elastic.co/kibana/kibana:7.10.1
修改kibana/config/kibana.yml,指定elasticsearch.hosts的正確地址并重啟容器头谜。
訪問http://192.168.3.104:5601 進(jìn)入kibana管理頁面骏掀,有界面顯示表示成功,否則請查看日志具體排查問題柱告。
kibana 安裝完畢首次訪問截驮。
離線安裝搭建
先參考官方教程:https://www.elastic.co/guide/en/kibana/6.5/rpm.html
跟 es步驟一樣,下載际度、安裝葵袭、配置、啟動乖菱、停止
這里列一下配置坡锡、啟動和停止:
配置
[ellison@JV-PROD-MD Kibana-7.12.0]# vi /home/ellison/Kibana-7.12.0/kibana.yml
填寫如下配置:
server.port: 5601 // 監(jiān)聽端口
server.host: "10.251.74.113" // 監(jiān)聽IP地址,建議內(nèi)網(wǎng)ip
elasticsearch.url: "http://10.251.74.113:9200" // elasticsearch連接kibana的URL块请,也可以填寫10.251.74.*娜氏,因?yàn)樗鼈兪且粋€集群
啟動
[ellison@JV-PROD-MD Kibana-7.12.0]# ./bin/kibana
后臺進(jìn)程啟動
[ellison@JV-PROD-MD Kibana-7.12.0]# nohup ./bin/kibana &
啟動無報錯后.
驗(yàn)證服務(wù)看到有TCP進(jìn)程后,去瀏覽器地址訪問 10.251.74.113:5601
會有界面出現(xiàn)墩新。
驗(yàn)證服務(wù)命令:
[root@JV-PROD-MD Kibana-7.12.0]# ss -antlup | grep 5601
停止
[root@JV-PROD-MD Kibana-7.12.0]# netstat -tunlp | grep 5601
查到進(jìn)程后直接kill -9
FileBeat
的搭建過程
Docker
方式安裝搭建
**1贸弥、啟動FileBeat容器 **
注意映射spring boot的日志存放路徑和elasticsearch地址。
docker run -d \
--name=filebeat \
--user=root \
--volume="/var/lib/docker/containers:/var/lib/docker/containers:ro" \
--volume="/var/run/docker.sock:/var/run/docker.sock:ro" \
--volume="/root/dockerapps/services/logs:/data/logs" \
docker.elastic.co/beats/filebeat:7.10.1 filebeat -e -strict.perms=false \
-E output.elasticsearch.hosts=["192.168.3.104:9200"]
2海渊、配置FileBeat
讀取日志文件的路徑及規(guī)則
我這里是不同的服務(wù)部署在了多個服務(wù)器绵疲,所以我在相應(yīng)的機(jī)器均部署一個FileBeat組件進(jìn)行日志讀取傳輸。
全部屬性配置臣疑,官網(wǎng)想當(dāng)全也很白話盔憨,建議查看官網(wǎng)
或者參考CSDN博客:https://blog.csdn.net/qq_27818541/category_10299800.html
<<112機(jī)器配置文件>>:
下面是測試通過的最終配置文件:
# ============================== Filebeat inputs ===============================
filebeat.inputs:
# 業(yè)務(wù)系統(tǒng)日志抓取
- type: log
enabled: true
paths:
- "/root/applog/boe-wms/*"
tags: ["wms"]
multiline:
pattern: ^[0-9]{4}
negate: true
match: after
timeout: 3s
# 接口日志抓取
- type: log
enabled: true
paths:
- "/root/applog/boe-wms-interface/*"
tags: ["interface"]
multiline:
pattern: ^[0-9]{4}
negate: true
match: after
timeout: 3s
# 工作流服務(wù)日志抓取
- type: log
enabled: true
paths:
- "/root/applog/boe-wms-workflow/*"
tags: ["workflow"]
multiline:
pattern: ^[0-9]{4}
negate: true
match: after
timeout: 3s
# 讀取 FileBeat 軟件的日志,并配置標(biāo)簽便于檢索
- type: filestream
enabled: true
paths:
- "/usr/local/filebeat-data/logs/*"
# ============================== Filebeat modules ==============================
filebeat.config.modules:
path: ${path.config}/modules.d/*.yml
reload.enabled: false
# ======================= Elasticsearch template setting =======================
setup.template.settings:
index.number_of_shards: 1
# =================================== Kibana ===================================
setup.kibana:
host: "10.251.74.113:5601"
# ---------------------------- Elasticsearch Output ----------------------------
output.elasticsearch:
hosts: ["10.251.74.113:9200"]
# ================================= Processors =================================
processors:
- script:
lang: javascript
id: my_filter
tag: enable
source: >
function process(event){
var str = event.Get("message");
var time = str.splict(" ").slice(0,2).join(" ");
event.Put("_time",time);
}
- timestamp:
field: log_time
timezone: Asia/Shanghai
layouts:
- '2006-01-02 15:04:05'
- '2006-01-02 15:04:05.999'
test:
- '2021-04-13 14:57:51'
- add_host_metadata:
when.not.contains.tags: forwarded
- add_cloud_metadata: ~
- add_docker_metadata: ~
- add_kubernetes_metadata: ~
# ================================== Logging ===================================
logging.level: info
logging.to_files: true
logging.files:
path: /usr/local/filebeat-data/logs
name: filebeat
keepfiles: 7
permissions: 0644
重啟filebeat
容器讯沈,進(jìn)入[kibana
>Stack Management
>Index patterns
] 添加filebeat
索引并查看日志郁岩。
<<111服務(wù)器配置>>:
下面是測試通過的最終配置文件:
# ============================== Filebeat inputs ===============================
filebeat.inputs:
# 讀取 admin 服務(wù)的日志,并配置標(biāo)簽便于檢索
- type: log
enabled: true
paths:
- "/root/applog/savor-admin/*"
tags: ["admin","savor-admin"]
mutiline:
pattern: ^[0-9]{4}
negate: true
match: after
timeout: 3s
# 讀取 auth 服務(wù)的日志,并配置標(biāo)簽便于檢索
- type: log
enabled: true
paths:
- "/root/applog/savor-auth/*"
tags: ["auth","savor-auth"]
mutiline:
pattern: ^[0-9]{4}
negate: true
match: after
timeout: 3s
# 讀取 dict 服務(wù)的日志问慎,并配置標(biāo)簽便于檢索
- type: log
enabled: true
paths:
- "/root/applog/savor-dict/*"
tags: ["dict","savor-dict"]
mutiline:
pattern: ^[0-9]{4}
negate: true
match: after
timeout: 3s
# 讀取 gate 服務(wù)的日志萍摊,并配置標(biāo)簽便于檢索
- type: log
enabled: true
paths:
- "/root/applog/savor-gate/*"
tags: ["gate","savor-gate"]
mutiline:
pattern: ^[0-9]{4}
negate: true
match: after
timeout: 3s
# 讀取 general 服務(wù)的日志,并配置標(biāo)簽便于檢索
- type: log
enabled: true
paths:
- "/root/applog/savor-general/*"
tags: ["general","savor-general"]
mutiline:
pattern: ^[0-9]{4}
negate: true
match: after
timeout: 3s
# 讀取 FileBeat 軟件的日志如叼,并配置標(biāo)簽便于檢索
- type: filestream
enabled: true
paths:
- "/usr/local/filebeat-data/logs/*"
# ============================== Filebeat modules ==============================
filebeat.config.modules:
path: ${path.config}/modules.d/*.yml
reload.enabled: false
# ======================= Elasticsearch template setting =======================
setup.template.settings:
index.number_of_shards: 1
# =================================== Kibana ===================================
setup.kibana:
host: "10.251.74.113:5601"
# ---------------------------- Elasticsearch Output ----------------------------
output.elasticsearch:
hosts: ["10.251.74.113:9200"]
# ================================= Processors =================================
processors:
- script:
lang: javascript
id: my_filter
tag: enable
source: >
function process(event){
var str = event.Get("message");
var time = str.splict(" ").slice(0,2).join(" ");
event.Put("_time",time);
}
- timestamp:
field: log_time
timezone: Asia/Shanghai
layouts:
- '2006-01-02 15:04:05'
- '2006-01-02 15:04:05.999'
test:
- '2021-04-13 14:57:51'
- add_host_metadata:
when.not.contains.tags: forwarded
- add_cloud_metadata: ~
- add_docker_metadata: ~
- add_kubernetes_metadata: ~
# ================================== Logging ===================================
logging.level: info
logging.to_files: true
logging.files:
path: /usr/local/filebeat-data/logs
name: filebeat
keepfiles: 7
permissions: 0644
離線安裝搭建
這里離線安裝是傻瓜式的冰木,直接tar
后,上面的配置信息寫到filebeat.yml
文件啟動即可笼恰。
啟動
保守一點(diǎn)踊沸,啟動新進(jìn)行測試啟動,會驗(yàn)證yaml
的配置文件是否正確社证,正常啟動后 ctrl+c
,然后利用后臺啟動即可逼龟。
非后臺啟動服務(wù)方式:
[ellison@JV-PROD-MD ~]# cd filebeat-7.12.0-linux-x86_64
[ellison@JV-PROD-MD filebeat-7.12.0-linux-x86_64]# ./filebeat -e -c filebeat.yml
后臺啟動服務(wù)方式:
[ellison@JV-PROD-MD filebeat-7.12.0-linux-x86_64]# nohup ./filebeat -e -c filebeat.yml &
LogStash
的搭建過程
Docker
方式安裝搭建
離線安裝搭建
啟動
各種組件的使用
Kibana 使用
Kibana
在搭建結(jié)束后,界面配置教程追葡,參考官方使用手冊Kibana使用手冊
ElasticSearch
+Kibana
+filebeat
設(shè)置用戶名密碼登陸
修改ES
配置
首先修改ES
的配置文件:elasticsearch.yml
审轮, 添加如下配置
xpack.security.enabled: true
xpack.license.self_generated.type: basic
xpack.security.transport.ssl.enabled: true
配置完后,重啟ES
辽俗。然后去ES
的bin
目錄下,執(zhí)行設(shè)置用戶名和密碼的命令篡诽,然后一次逐個設(shè)置密碼:
./elasticsearch-setup-passwords interactive
這里會設(shè)置六個賬號的密碼:
- elastic
- apm_system
- kibana
- kibana_system
- logstash_system
- beats_system
- remote_monitoring_user
修改kibana
配置
設(shè)置完畢后崖飘,去設(shè)置kibana
的配置文件:
elasticsearch.username: "elastic"
elasticsearch.password: "boe123456"
修改保存后,重啟Kibana
杈女。
這時候 需要認(rèn)證才可登陸朱浴,登陸賬號密碼為elastic
/boe123456
。
修改fileBeat
配置
在安裝FileBeat服務(wù)的每臺機(jī)器上都修改下配置文件达椰。
filebeat.yml
配置文件中添加ES
的訪問用戶名和密碼翰蠢。
注意:Kibana設(shè)置中也要添加用戶名密碼,均為ES的密碼:
# =================================== Kibana ===================================
setup.kibana:
host: "10.251.74.113:5601"
username: "elastic" # ES 服務(wù)用戶名
password: "你的es服務(wù)密碼" # ES 服務(wù)密碼
# ---------------------------- Elasticsearch Output ----------------------------
output.elasticsearch:
hosts: ["10.251.74.113:9200"] # ES 服務(wù)地址
username: "elastic" # ES 服務(wù)用戶名
password: "你的es服務(wù)密碼" # ES 服務(wù)密碼
在修改完配置后啰劲,記得要重啟FileBeat服務(wù)梁沧。