說明: elasticsearch、kibana、logstash、filebeat 版本要一致,elasticsearch-head 方便通過瀏覽器查看elasticsearch 的狀態(tài)和索引數(shù)據(jù)。
工作原理: 通過 filebeat(輕量級數(shù)據(jù)收集引擎)收集日志后,推送給 Logstash (數(shù)據(jù)收集處理引擎)進(jìn)行過濾、分析、豐富、統(tǒng)一格式等操作,將處理后的日志存儲在 Elasticsearch (分布式搜索引擎)的索引中,最后由 Kibana(可視化化平臺)搜索、展示存儲在 Elasticsearch 中索引數(shù)據(jù)。
環(huán)境說明:
應(yīng)用 | 版本 |
---|---|
docker | 19.03.9 |
elasticsearch | 7.17.2 |
kibana | 7.17.2 |
logstash | 7.17.2 |
filebeat | 7.17.2 |
elasticsearch-head | 5.0 |
1. 鏡像拉取
docker pull docker.elastic.co/elasticsearch/elasticsearch:7.17.2
docker pull mobz/elasticsearch-head:5
docker pull docker.elastic.co/kibana/kibana:7.17.2
docker pull docker.elastic.co/logstash/logstash:7.17.2
docker pull docker.elastic.co/beats/filebeat:7.17.2
2. elasticsearch 安裝
- 準(zhǔn)備 elasticsearch.yml 文件
# 創(chuàng)建文件夾
mkdir /home/southgisdata/elasticsearch
# 創(chuàng)建 elasticsearch.yml 文件
vi /home/southgisdata/elasticsearch/elasticsearch.yml
------------------------寫入---------------------------
network.host: 0.0.0.0
cluster.name: "docker-cluster"
http.cors.enabled: true
http.cors.allow-origin: "*"
#cluster.initial_master_nodes: ["node-1"]
xpack:
ml.enabled: false
monitoring.enabled: false
security.enabled: false
watcher.enabled: false
#去除以下兩項(xiàng)的注釋,則開啟身份認(rèn)證
#xpack.security.enabled: true
#xpack.security.transport.ssl.enabled: true
------------------------結(jié)束---------------------------
- 運(yùn)行 elasticsearch 容器
docker run -d --restart=always -p 9200:9200 -p 9300:9300 \
-e "discovery.type=single-node" \
-v /home/southgisdata/elasticsearch/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \
--name elasticsearch docker.elastic.co/elasticsearch/elasticsearch:7.17.2
- 驗(yàn)證
瀏覽器驗(yàn)證: 訪問 192.168.1.100:9200
命令行驗(yàn)證: curl http://localhost:9200/_nodes/http?pretty
注意: 如果出現(xiàn)以下報(bào)錯(cuò)?。。?br>
處理方法如下:
- 修改內(nèi)存:
在/etc/sysctl.conf文件,最后添加以下內(nèi)容:
vm.max_map_count=262144
- 開啟配置文件elasticsearch.yml 的以下配置:
cluster.initial_master_nodes: ["node-1"]
3. elasticsearch-head 安裝
- 運(yùn)行 elasticsearch-head 容器
docker run -d --restart=always -p 9100:9100 --name elasticsearch-head mobz/elasticsearch-head:5
- 修改 vendor.js 主要是能讓數(shù)據(jù)瀏覽右邊顯示索引數(shù)據(jù)
# 創(chuàng)建文件夾
mkdir -p /home/southgisdata/elasticsearch-head
# 進(jìn)入文件夾下
cd /home/southgisdata/elasticsearch-head
# 拷貝 vendor.js 文件到宿主機(jī)上
docker cp elasticsearch-head:/usr/src/app/_site/vendor.js ./
# 修改 vendor.js 文件內(nèi)容
sed -i '/contentType:/s/application\/x-www-form-urlencoded/application\/json;charset=UTF-8/' vendor.js
sed -i '/var inspectData = s.contentType/s/application\/x-www-form-urlencoded/application\/json;charset=UTF-8/' vendor.js
- 再次運(yùn)行 elasticsearch-head 容器
# 刪除容器
docker rm -f elasticsearch-head
# 運(yùn)行容器
docker run -d --restart=always -p 9100:9100 -v /home/southgisdata/elasticsearch-head/vendor.js:/usr/src/app/_site/vendor.js --name elasticsearch-head mobz/elasticsearch-head:5
- 驗(yàn)證
**瀏覽器驗(yàn)證:**訪問 192.168.1.100:9100
4. logstash 安裝
- 準(zhǔn)備 logstash.yml、pipelines.yml 配置文件
# 創(chuàng)建文件夾
mkdir -p /home/southgisdata/logstash/config
# 創(chuàng)建 logstash.yml 文件
vi /home/southgisdata/logstash/config/logstash.yml
------------------------寫入---------------------------
config:
reload:
automatic: true
interval: 3s
xpack:
management.enabled: false
monitoring.enabled: false
------------------------結(jié)束---------------------------
# 創(chuàng)建 pipelines.yml 文件
vi /home/southgisdata/logstash/config/pipelines.yml
------------------------寫入---------------------------
- pipeline.id: test
path.config: "/usr/share/logstash/pipeline/logstash-filebeat.conf"
------------------------結(jié)束---------------------------
- 準(zhǔn)備 logstash-filebeat.conf 配置文件
# 創(chuàng)建文件夾
mkdir -p /home/southgisdata/logstash/pipeline
# 創(chuàng)建 logstash.yml 文件
vi /home/southgisdata/logstash/pipeline/logstash-filebeat.conf
------------------------寫入---------------------------
# 訪問端口配置
input {
beats {
port => 5044
}
}
# 過濾條件配置
#filter{
# grok{
# match => {
# "message" => "%{COMBINEDAPACHELOG}"
# }
# }
#}
# 輸出到ES配置
output {
elasticsearch {
hosts => ["http://192.168.1.100:9200"]
index => "nginx_log"
}
}
------------------------結(jié)束---------------------------
- 運(yùn)行 logstash 容器
docker run -d -p 5044:5044 \
-v /home/southgisdata/logstash/pipeline:/usr/share/logstash/pipeline \
-v /home/southgisdata/logstash/config:/usr/share/logstash/config \
--name logstash docker.elastic.co/logstash/logstash:7.17.2
- 驗(yàn)證
啟動時(shí)間要兩分鐘左右,之后試著訪問web,即可在es-head的web界面看到nginx_log的索引
5. kibana 安裝
- 準(zhǔn)備 kibana.yml 配置文件
# 創(chuàng)建文件夾
mkdir -p /home/southgisdata/kibana
# 創(chuàng)建 kibana.yml 配置文件
vi /home/southgisdata/kibana/kibana.yml
------------------------寫入---------------------------
server.name: kibana
# 允許所有地址訪問
server.host: "0.0.0.0"
# elasticsearch的地址
elasticsearch.hosts: ["http://192.168.1.100:9200/"]
xpack.monitoring.ui.container.elasticsearch.enabled: true
------------------------寫入---------------------------
- 運(yùn)行 kibana 容器
docker run -d --restart=always -p 5601:5601 \
-v /home/southgisdata/kibana/kibana.yml:/usr/share/kibana/config/kibana.yml \
--name kibana docker.elastic.co/kibana/kibana:7.17.2
- 驗(yàn)證
查看 elasticsearch-head 會發(fā)現(xiàn)多了幾個(gè)索引,這幾個(gè)索引是 kibanna 生成的。
6. filebeat 安裝
- 準(zhǔn)備 filebeat.yml 配置文件
# 創(chuàng)建文件夾
mkdir -p /home/southgisdata/filebeat
# 創(chuàng)建 kibana.yml 配置文件
vi /home/southgisdata/filebeat/filebeat.yml
------------------------寫入---------------------------
filebeat.inputs:
- type: log
enabled: true
paths:
- /var/log/access.log #日志文件路徑
output.logstash:
hosts: ["192.168.1.100:5044"] #logstash訪問地址
------------------------寫入---------------------------
- 運(yùn)行 filebeat 容器
映射了 filebeat 配置文件和 nginx 日志,這樣 nginx 日志有變化時(shí)映射過去的文件也會隨之同步。
docker run -d --restart=always --name filebeat \
-v /home/southgisdata/filebeat/filebeat.yml:/usr/share/filebeat/filebeat.yml \
-v /usr/local/nginx/logs/access.log:/var/log/access.log \
-d docker.elastic.co/beats/filebeat:7.17.2
- 驗(yàn)證
查看 nginx_log 的索引,可以看到 nginx 的日志數(shù)據(jù)。
7. 通過 kibana 展示收集的數(shù)據(jù)
文章來源:http://www.zghlxwxcb.cn/news/detail-410536.html
文章來源地址http://www.zghlxwxcb.cn/news/detail-410536.html
到了這里,關(guān)于ELK 部署手冊(docker版本)的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!