目录
一、简介
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:端口