目录

一、简介

1.Elasticsearch:

2.Filebeat:

3.Kibana:

二、工作流程

三、部署

1.创建docker网络

2.启动 elasticsearch 容器

3.创建 kibana 容器

4.客户端安装日志采集器filebeat

(1)docker安装

(2)rpm安装

四、访问测试

一、简介

1.Elasticsearch:

是一个高度可扩展的开源全文搜索和分析引擎,能够快速近乎实时地存储、搜索、分析大量数据。常用于全文搜索、结构化搜索、分析以及复合查询。以其分布式本质而闻名,易于水平扩展,支持多租户。提供了丰富的 REST API,使得与其他应用交互变得容易。

2.Filebeat:

是轻量级的日志文件数据船(shipper),用于捕获来自服务器上文件的日志数据,并将其转发到 Elasticsearch 或 Logstash 进行索引。能够监控日志文件或位置,收集日志并将其发送到配置的输出。支持自动多行事件组合,并能够处理文件旋转、文件截断等情况。是 Elastic Beats 平台的一部分,旨在轻量级数据采集。

3.Kibana:

提供了 Elasticsearch 数据的可视化界面,允许用户创建基于搜索的交互式图表和报告。可以用于探索、可视化并及时了解 Elasticsearch 中的数据。提供了各种图形(如柱状图、线图、散点图、饼图等)和仪表板(Dashboards)。支持机器学习、地图、Canvas、工作流等高级功能。

二、工作流程

数据收集:Filebeat 安装在服务器上,监视指定的日志文件或目录,捕获日志数据。 数据处理和存储:Filebeat 将捕获的数据发送到 Elasticsearch。Elasticsearch 负责数据的索引、存储和搜索。 数据分析和可视化:Kibana 连接到 Elasticsearch,用户通过 Kibana 可以分析和可视化数据,创建仪表板,以便轻松地提取数据的洞察和价值。

三、部署

1.创建docker网络

docker network create logging

2.启动 elasticsearch 容器

# 创建容器

docker run -d \

--name=elasticsearch \

--net=logging \

-v=elasticsearch-data:/usr/share/elasticsearch/data \

-e "discovery.type=single-node" \

-e "xpack.security.enabled=false" \

-e "ES_JAVA_OPTS=-Xms512m -Xmx1g" \

-p 9200:9200 \

docker.elastic.co/elasticsearch/elasticsearch:8.10.2

# 查看创建的容器

docker ps

# 测试访问

curl http://127.0.0.1:9200/_cat/health

3.创建 kibana 容器

# 创建容器

docker run -d \

--name=kibana \

--net=logging \

-e ELASTICSEARCH_HOSTS=http://elasticsearch:9200 \

-e I18N_LOCALE=zh-CN \

-p 5601:5601 \

docker.elastic.co/kibana/kibana:8.10.2

# 查看容器

docker ps | grep kibana

# 测试访问

浏览器访问 IP:5601

4.客户端安装日志采集器filebeat

(1)docker安装

启动容器

docker run -d \

--name=filebeat \

-v /etc/filebeat/filebeat.yml:/usr/share/filebeat \

-v /var/log/:/var/log/ \

--user=root \

--network=host \

harbor.daboluo.com/elk/filebeat:8.10.2

 修改配置

vim /etc/filebeat/filebeat.yml

filebeat.inputs:

- type: log

enabled: true

paths:

- /var/log/nginx/access.log

- /var/log/nginx/error.log

fields:

project: filebeat

app: nginx

- type: log

enabled: true

paths:

- /var/log/messages

fields:

project: filebeat

app: messages

setup.template.name: "filebeat"

setup.template.pattern: "filebeat-*"

output.elasticsearch:

hosts: ["http://10.88.62.182:9200"]

index: "%{[fields.project]}-%{[fields.app]}-%{+yyyy.MM.dd}"

重启容器,使配置生效

docker restart filebeat

(2)rpm安装

# rpm包下载地址:

https://www.elastic.co/cn/downloads/past-releases

# 安装

rpm -ivh filebeat-8.10.2-x86_64.rpm

修改配置:

vim /etc/filebeat/filebeat.yml

filebeat.inputs:

- type: log

enabled: true

paths:

- /var/log/nginx/access.log

- /var/log/nginx/error.log

fields:

project: ms

app: nginx

- type: log

enabled: true

paths:

- /var/log/messages

fields:

project: cu

app: messages

setup.template.name: "filebeat"

setup.template.pattern: "filebeat-*"

output.elasticsearch:

hosts: ["http://$elasticsearchIP:9200"]

index: "%{[fields.project]}-%{[fields.app]}-%{+yyyy.MM.dd}"

启动服务设置开机自启

systemctl start filebeat && systemctl enable filebeat

四、访问测试

浏览器访问kibana容器物理机的 ip:端口

相关链接

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: