> 技术文档 > 如何搭建 ELK【elasticsearch+logstash+kibana】日志分析系统_elk日志平台搭建

如何搭建 ELK【elasticsearch+logstash+kibana】日志分析系统_elk日志平台搭建


文章目录

  • 一、为什么需要日志分析系统?
  • 二、什么是 ELK
  • 三、搭建 ELK
    • 1.安装 elasticsearch
    • 2.安装kibana
    • 3.安装logstash
      • 1.拉取 logstash镜像
      • 2.创建并运行容器
      • 3.配置
      • 4.停止、删除容器
      • 5.重新挂载文件启动容器
      • 6.检查可用性
  • 四、springboot项目集成
    • 1.添加logstash依赖
    • 2.准备logback-spring.xml文件
    • 3.进行测试
  • 五、查看日志
    • 使用Kibana的开发者工具
    • 使用 Kibana 的 Discover 功能
  • 六、添加es动态模板

一、为什么需要日志分析系统?

日志主要包括系统日志、应用程序日志和安全日志。系统运维和开发人员可以通过日志了解服务器软硬件信息、检查配置过程中的错误及错误发生的原因。经常分析日志可以了解服务器的负荷,性能安全性,从而及时采取措施纠正错误

往往单台机器的日志我们使用 grep、awk 等工具就能基本实现简单分析,但是当日志被分散的储存不同的设备上。如果你管理数十上百台服务器,你还在使用依次登录每台机器的传统方法查阅日志。这样是不是感觉很繁琐和效率低下。

如果:

• 你有很多台机器
• 你有各种各样的Log

只要满足这两个条件其中之一,那么一套日志系统是很有必要的。优秀的日志系统可以让你及时发现问题,轻松追查故障原因,进而提高生产力。

二、什么是 ELK

ELKelasticsearch + logstash + kibanaELK 平台是一套完整的日志集中处理解决方案,将 ElasticSearchLogstashKiabana 三个开源工具配合使用, 完成更强大的用户对日志的查询、排序、统计需求。

如何搭建 ELK【elasticsearch+logstash+kibana】日志分析系统_elk日志平台搭建

  • Logstash:用于收集并处理日志,将日志信息存储到 Elasticsearch 里面
  • Elasticsearch:用于存储收集到的日志信息
  • Kibana :通过Web端的可视化界面来查看日志(数据可视化)

ELK 的工作原理

  1. 在所有需要收集日志的服务器上部署 Logstash;或者先将日志进行集中化管理在日志服务器上,在日志服务器上部署 Logstash
  2. Logstash 收集日志,将日志格式化并输出到 Elasticsearch 中。
  3. Elasticsearch 对格式化后的数据进行索引和存储。
  4. Kibana 从 ES 群集中查询数据生成图表,并进行前端数据的展示。

三、搭建 ELK

1.安装 elasticsearch

https://blog.csdn.net/ShockChen7/article/details/142760578

2.安装kibana

https://blog.csdn.net/ShockChen7/article/details/142760578

3.安装logstash

1.拉取 logstash镜像

docker pull logstash:8.8.1 

2.创建并运行容器

使用以下命令创建一个新的 logstash 容器并将其启动:

docker run --name some-logstash \\ -e ES_JAVA_OPTS=\"-Xms1g -Xmx2g\" \\ -e TZ=Asia/Shanghai \\ -p 5044:5044 \\ -p 5000:5000 \\ -d logstash:8.8.1 

创建挂载目录、复制数据卷

mkdir -vp /root/my-logstash#赋于权限sudo chown -R 1000:1000 /root/my-logstash#复制数据卷docker cp some-logstash:/usr/share/logstash/config /root/my-logstash/docker cp some-logstash:/usr/share/logstash/pipeline /root/my-logstash/

注:下载的包一定要和 ElasticSearch 的版本一致,我这边选择的版本是8.8.1

3.配置

LogstashSettings 配置文件通常是 logstash.yml,这是 Logstash 的全局配置文件,用于设置 Logstash 运行的一些基本参数。

在本地编辑文件

vim /root/my-logstash/config/logstash.yml

logstash.yml 末尾加上以下配置,文件的作用是为 Logstash 配置全局参数,比如日志级别、管道线程数、队列类型等。

http.host: \"0.0.0.0\"xpack.monitoring.enabled: true# xpack.monitoring.elasticsearch.username: logstash_system #es xpack账号密码# xpack.monitoring.elasticsearch.password: \"123456\"xpack.monitoring.elasticsearch.hosts: [\"http://127.0.0.1:9200\"]

修改 logstash.conf 为以下配置,默认的基础上,将 inputbeat 改为 tcp 端口 5044

vim /root/my-logstash/pipeline/logstash.conf
input {  tcp {  port => 5044 ##格式json 否则中文会变成unicode编码codec => json_lines }}output {  elasticsearch {  hosts => [\"http://localhost:9200\"] index => \"my_log-%{+YYYY.MM.dd}\" #user => \"elastic\" #es xpack账号密码 #password => \"changeme\" }}

注意:如果你的 es 运行在 docker 中,这里的配置中包括上面的,不能是 loc