Linux 搭建ELK日志采集記錄
架構
? Logback ->Logstash ->elasticsearch -> kibana
? 分布式環境,通過logback發送日志到logstash,再由logstash將采集到的日志發送到Elasticsearch,使用kibana進行查詢采集到的日志,
安裝

安裝選用版本為最新的7.14.0版本
elasticsearch安裝
? 官網下載地址
? https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.14.0-linux-x86_64.tar.gz
? 1.解壓
? 解壓完成為上圖檔案夾,進入config檔案夾,打開jvm.options檔案,如果服務器記憶體不足,需要修改以下欄位,修改成合適的值,
? 
打開elasticsearch.yml檔案,在檔案末尾增加如下配置
# 節點配置
cluster.name: myelasticsearch
node.name: node-1
# data檔案和日志檔案路徑 如果沒有檔案夾 手動創建檔案夾
path.data: /usr/local/elk/elasticsearch-7.14.0/data
path.logs: /usr/local/elk/elasticsearch-7.14.0/logs
bootstrap.memory_lock: false
#ip 埠
network.host: 0.0.0.0
http.port: 9203
cluster.initial_master_nodes: ["node-1"]
由于elasticsearch不能用root用戶啟動, 創建elasticsearch用戶,
# 添加elk組
groupadd elk
# 添加用戶elasticsearch 密碼為elasticsearch
useradd elasticsearch -g elk -p elasticsearch
# 將檔案所有權修改為elasticsearch
chown -R elasticsearch:elk elasticsearch-7.14.0
# 切換用戶 后臺啟動elasticsearch
su elasticsearch
nohup sh elasticsearch &
檢驗啟動情況 因為本機9200埠沖突 故使用9203埠 如下啟動成功

運行中可能出現記憶體不足的情況 max_map_count過小導致
# 執行命令:
sysctl -w vm.max_map_count=262144
# 查看結果:
sysctl -a|grep vm.max_map_count
# 顯示:
vm.max_map_count = 262144
# /etc/sysctl.conf檔案最后添加一行 永久生效
vm.max_map_count=262144
logstash安裝配置 + logback配置
? 官網下載地址
? https://artifacts.elastic.co/downloads/logstash/logstash-7.14.0-linux-x86_64.tar.gz
?
logback.xml配置
根據tcp協議傳遞到對應的埠, logstash監聽對應埠, 接收日志資訊,
<springProperty scope="context" name="serviceName" source="spring.application.name"/>
<springProperty scope="context" name="profileActive" source="spring.profiles.active"/>
<property name="SERVICE_NAME" value="${serviceName}" />
<property name="PROFILE_ACTIVE" value="${profileActive}" />
<appender name="LOGSTASH" class="net.logstash.logback.appender.LogstashTcpSocketAppender">
<!-- 發送到本機7777埠 -->
<destination>127.0.0.1:7777</destination>
<encoder charset="UTF-8" class="net.logstash.logback.encoder.LoggingEventCompositeJsonEncoder">
<providers>
<pattern>
<pattern>
<!--輸出日志可自定義,可根據自己需要配置-->
{
<!--es索引名稱 -->
"indexname":"${SERVICE_NAME} + %d{yyyy-MM-dd}",
<!--應用名稱 -->
"appname":"${SERVICE_NAME}",
<!--服務器ip -->
<!-- "host": "%ip",-->
<!--應用埠 -->
<!-- "port": "${PORT}",-->
<!--列印時間 -->
"timestamp": "%d{yyyy-MM-dd HH:mm:ss.SSS}",
<!--執行緒名稱 -->
"thread": "%thread",
<!--日志級別 -->
"level": "%level",
<!--日志名稱 -->
"logger_name": "%logger",
<!--日志資訊 -->
"message": "%msg",
<!--日志堆疊 -->
"stack_trace": "%exception",
<!-- ENV -->
"env": "${PROFILE_ACTIVE}"
}
</pattern>
</pattern>
</providers>
</encoder>
<keepAliveDuration>5 minutes</keepAliveDuration>
</appender>
logstash配置
進入config檔案夾
修改logstash-sample.yml檔案
input {
# 監聽7777埠,json型別接收
tcp {
port => 7777
codec => "json"
}
}
output {
# 輸出為elasticsearch 索引名稱為appname + 時間年月日型別
elasticsearch {
action => "index"
hosts => ["http://localhost:9203"]
index => "%{[appname]}-%{+YYYY.MM.dd}"
#user => "elastic"
#password => "changeme"
}
}
進入bin檔案夾, 啟動logstash
nohup sh logstash -f ../config/logstash-sample.yml &
kibana下載地址
? 官網下載地址
? https://artifacts.elastic.co/downloads/kibana/kibana-7.14.0-linux-x86_64.tar.gz
? 1.解壓
? 2.進入config檔案夾, 修改kibana.yml檔案
server.port: 5601
server.host: "0.0.0.0"
elasticsearch.hosts: ["http://localhost:9203"]
kibana.index: ".kibana"
配置完成,啟動kibana
nohup sh kibana &
訪問5601埠即可看見kibana運行界面

選擇左側選單欄->discover 進入篩選界面,通過添加添加filter進行搜索相應的值,
ana.index: “.kibana”
配置完成,啟動kibana
```shell
nohup sh kibana &
訪問5601埠即可看見kibana運行界面

選擇左側選單欄->discover 進入篩選界面,通過添加添加filter進行搜索相應的值,

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/295125.html
標籤:其他
上一篇:ZooKeeper官方檔案學習筆記05-ZooKeeper的屏障(Barrier)和佇列(Queue)教程
下一篇:RabbitMQ基礎總結
