生產(chǎn)環(huán)境搭建EFK日志分析系統(tǒng)

日志分析系統(tǒng)的搭建與使用

日志分析系統(tǒng)一般有ELKEFK兩種,區(qū)別在于使用日志搜集的組件不同Llogstash敦冬,FFileBeat,剩下的兩種分別是_EElasticsearchKKibana
過程中所有不懂的地方叠赦,請及時查看Elasticsearch官方文檔流妻,這個文檔目前是業(yè)內(nèi)好評做多的文檔牲蜀,很全!很全绅这!很全涣达!

版本介紹: ElasticSearchKibana证薇、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ù)報錯去找百度指厌。
至此esdocker部署完畢查牌。

離線安裝搭建

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其他配置

ElasticsearchJVM 的配置專門準(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兴枯、logsdata 路徑配置
?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辽俗。然后去ESbin目錄下,執(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ù)梁沧。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市蝇裤,隨后出現(xiàn)的幾起案子廷支,更是在濱河造成了極大的恐慌,老刑警劉巖栓辜,帶你破解...
    沈念sama閱讀 207,248評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件恋拍,死亡現(xiàn)場離奇詭異,居然都是意外死亡藕甩,警方通過查閱死者的電腦和手機(jī)施敢,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,681評論 2 381
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人僵娃,你說我怎么就攤上這事概作。” “怎么了悯许?”我有些...
    開封第一講書人閱讀 153,443評論 0 344
  • 文/不壞的土叔 我叫張陵仆嗦,是天一觀的道長。 經(jīng)常有香客問我先壕,道長瘩扼,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,475評論 1 279
  • 正文 為了忘掉前任垃僚,我火速辦了婚禮集绰,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘谆棺。我一直安慰自己栽燕,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,458評論 5 374
  • 文/花漫 我一把揭開白布改淑。 她就那樣靜靜地躺著碍岔,像睡著了一般。 火紅的嫁衣襯著肌膚如雪朵夏。 梳的紋絲不亂的頭發(fā)上蔼啦,一...
    開封第一講書人閱讀 49,185評論 1 284
  • 那天,我揣著相機(jī)與錄音仰猖,去河邊找鬼捏肢。 笑死,一個胖子當(dāng)著我的面吹牛饥侵,可吹牛的內(nèi)容都是我干的鸵赫。 我是一名探鬼主播,決...
    沈念sama閱讀 38,451評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼躏升,長吁一口氣:“原來是場噩夢啊……” “哼辩棒!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起煮甥,我...
    開封第一講書人閱讀 37,112評論 0 261
  • 序言:老撾萬榮一對情侶失蹤盗温,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后成肘,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體卖局,經(jīng)...
    沈念sama閱讀 43,609評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,083評論 2 325
  • 正文 我和宋清朗相戀三年双霍,在試婚紗的時候發(fā)現(xiàn)自己被綠了砚偶。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片批销。...
    茶點(diǎn)故事閱讀 38,163評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖染坯,靈堂內(nèi)的尸體忽然破棺而出均芽,到底是詐尸還是另有隱情,我是刑警寧澤单鹿,帶...
    沈念sama閱讀 33,803評論 4 323
  • 正文 年R本政府宣布掀宋,位于F島的核電站,受9級特大地震影響仲锄,放射性物質(zhì)發(fā)生泄漏劲妙。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,357評論 3 307
  • 文/蒙蒙 一儒喊、第九天 我趴在偏房一處隱蔽的房頂上張望镣奋。 院中可真熱鬧,春花似錦怀愧、人聲如沸侨颈。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,357評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽哈垢。三九已至,卻和暖如春扛拨,著一層夾襖步出監(jiān)牢的瞬間温赔,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,590評論 1 261
  • 我被黑心中介騙來泰國打工鬼癣, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人啤贩。 一個月前我還...
    沈念sama閱讀 45,636評論 2 355
  • 正文 我出身青樓待秃,卻偏偏與公主長得像,于是被迫代替她去往敵國和親痹屹。 傳聞我的和親對象是個殘疾皇子章郁,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,925評論 2 344

推薦閱讀更多精彩內(nèi)容