ELK实例----使用filebeat收集tomcat日志到ES并利用kibana展示

这篇具有很好参考价值的文章主要介绍了ELK实例----使用filebeat收集tomcat日志到ES并利用kibana展示。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1.0 环境拓扑图

ELK实例----使用filebeat收集tomcat日志到ES并利用kibana展示


1.1 环境准备

节点名称 节点名称 ip地址
kibana kibana 10.0.0.100
elasticsearch elasticsearch 10.0.0.101
filebeat filebeat 10.0.0.102

1.2 安装

  • elasticsearch、Kibana、metricbeat、filebeat版本要一致,如都是7.17.5版本

1.2.1 安装elasticsearch

  • CPU 2C 内存4G或更多
10.0.0.101机器上
安装jdk8
apt update;apt -y install openjdk-8-jdk

安装elasticsearch
wget https://mirrors.tuna.tsinghua.edu.cn/elasticstack/7.x/apt/pool/main/e/elasticsearch/elasticsearch-7.17.5-amd64.deb
dpkg -i elasticsearch-7.17.5-amd64

修改配置文件,单节点配置
cat >> /etc/elasticsearch/elasticsearch.yml  <<EOF
node.name: node-1
network.host: 0.0.0.0
discovery.seed_hosts: ["$LOCAL_IP"]
cluster.initial_master_nodes: ["node-1"]
EOF

mkdir -p /etc/systemd/system/elasticsearch.service.d/
cat > /etc/systemd/system/elasticsearch.service.d/override.conf <<EOF
[Service]
LimitMEMLOCK=infinity
EOF

加载配置
systemctl daemon-reload
systemctl enable  elasticsearch.service

修改内核参数
echo "vm.max_map_count = 262144" >> /etc/sysctl.conf
sysctl  -p

启动elasticsearch服务
systemctl start elasticsearch

1.2.2 安装 Kibana

10.0.0.100机器上
下载kibana
wget https://mirrors.tuna.tsinghua.edu.cn/elasticstack/7.x/apt/pool/main/k/kibana/kibana-7.17.5-amd64.deb
安装kibana
dpkg -i kibana-7.17.5-amd64.deb

修改下面几行就行
root@es-node1:~# grep "^[a-Z]" /etc/kibana/kibana.yml
server.port: 5601
server.host: "0.0.0.0"
elasticsearch.hosts: ["http://10.0.0.101:9200"]
i18n.locale: "zh-CN"

启动kibana服务
systemctl enable --now kibana

1.2.3 安装metricbeat

10.0.0.102机器上
下载
wget https://mirrors.tuna.tsinghua.edu.cn/elasticstack/7.x/apt/pool/main/m/metricbeat/metricbeat-7.17.5-amd64.deb
安装
dpkg -i metricbeat-7.17.5-amd64.deb

修改配置文件,修改kibana和elasticsearch的配置
root@es-node2:~# grep -Ev "#|^$" /etc/metricbeat/metricbeat.yml
metricbeat.config.modules:
  path: ${path.config}/modules.d/*.yml
  reload.enabled: false
setup.template.settings:
  index.number_of_shards: 1
  index.codec: best_compression
setup.kibana:
  host: "10.0.0.100:5601"	#kibana的ip
output.elasticsearch:
  hosts: ["10.0.0.101:9200"]	#elasticsearch的ip,可以多个用逗号分开,如["10.0.0.101:9200","10.0.0.111:9200"]
processors:
  - add_host_metadata: ~
  - add_cloud_metadata: ~
  - add_docker_metadata: ~
  - add_kubernetes_metadata: ~

启动metricbeat服务
systemctl enable --now metricbeat.service

1.2.3 安装filebeat

10.0.0.102机器上
下载
wget https://mirrors.tuna.tsinghua.edu.cn/elasticstack/7.x/apt/pool/main/f/filebeat/filebeat-7.17.5-amd64.deb
安装
dpkg -i filebeat-7.17.5-amd64.deb

创建配置
vim /etc/filebeat/stdin.yml

1.2.4 安装Nginx

apt update
apt -y install nginx

默认开启nginx的错误日志,但如果是ubuntu,还需要修改下面行才能记录错误日志
[root@elk-web1 ~]#vim /etc/nginx/sites-available/default 
   location / {
        # First attempt to serve request as file, then
        # as directory, then fall back to displaying a 404.
        #try_files $uri $uri/ =404; #将此行注释

重启nginx服务
systemctl restart nginx

1.2.5 安装tomcat

apt update
apt -y install tomcat9

修改 Tomcat 的访问日志为Json格式
vim /etc/tomcat9/server.xml

        <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
               prefix="tomcat_access_log" suffix=".txt"
pattern="{&quot;clientip&quot;:&quot;%h&quot;,&quot;ClientUser&quot;:&quot;%l&quot;,&quot;authenticated&quot;:&quot;%u&quot;,&quot;AccessTime&quot;:&quot;%t&quot;,&quot;method&quot;:&quot;%r&quot;,&quot;status&quot;:&quot;%s&quot;,&quot;SendBytes&quot;:&quot;%b&quot;,&quot;Query?string&quot;:&quot;%q&quot;,&quot;partner&quot;:&quot;%{Referer}i&quot;,&quot;AgentVersion&quot;:&quot;%{User-Agent}i&quot;}"/>


重启服务
systemctl restart tomcat9

tomcat成功的日志
ll /var/log/tomcat9/tomcat_access_log.2022-12-29.txt

ELK实例----使用filebeat收集tomcat日志到ES并利用kibana展示


1.3 修改 Filebeat 配置文件

yaml格式检查 https://www.bejson.com/validators/yaml_editor/

  • yaml格式不正确,Filebeat启动会报错
10.0.0.102机器上
-------------------------tomcat---
[root@logsj ~]# vim /etc/filebeat/filebeat.yml 
filebeat.inputs:
- type: log
  enable: true
  paths:
    - /var/log/tomcat9/tomcat_access_log.*
  json.keys_under_root: true
  json.overwrite_keys: true
  tags: ["tomcat-access"]
- type: log
  enable: true
  paths:
    - /var/log/tomcat9/catalina.*.log
  tags: ["tomcat-error"]
output.elasticsearch:
  hosts: ["10.0.0.101:9200"]
  indices:
    - index: "tomcat-access_%{+YYYY-MM-dd}"
      when.contains:
        tags: "tomcat-access"
    - index: "tomcat-error_%{+YYYY-MM-dd}"
      when.contains:
        tags: "tomcat-error"
setup.template.enabled: false
setup.template.name: "tomcat"
setup.template.pattern: "tomcat-*"
setup.template.overwrite: true

-------------------
重启服务
systemctl restart filebeat.service
查看服务
root@es-node2:~# systemctl status filebeat.service
● filebeat.service - Filebeat sends log files to Logstash or directly to Elasticsearch.
     Loaded: loaded (/lib/systemd/system/filebeat.service; disabled; vendor preset: enabled)
     Active: active (running) since Thu 2022-12-29 11:29:49 UTC; 2s ago
       Docs: https://www.elastic.co/beats/filebeat
   Main PID: 17799 (filebeat)
      Tasks: 8 (limit: 4575)


1.4 测试

web浏览器访问http://10.0.0.102:8080/

1.4.1 head插件查看

ELK实例----使用filebeat收集tomcat日志到ES并利用kibana展示

1.4.2 Kibana插件查看

创建索引
ELK实例----使用filebeat收集tomcat日志到ES并利用kibana展示
ELK实例----使用filebeat收集tomcat日志到ES并利用kibana展示
ELK实例----使用filebeat收集tomcat日志到ES并利用kibana展示
ELK实例----使用filebeat收集tomcat日志到ES并利用kibana展示

discover查看
ELK实例----使用filebeat收集tomcat日志到ES并利用kibana展示
ELK实例----使用filebeat收集tomcat日志到ES并利用kibana展示

1.4.2.1 手动将模拟的成功数据插入tomcat日志中
echo tomcat-2022-12-29-access   >>  /var/log/tomcat9/tomcat_access_log.*

Kibana插件查看
ELK实例----使用filebeat收集tomcat日志到ES并利用kibana展示

1.4.2.1 手动将模拟的失败数据插入tomcat日志中
 echo tomcat-2022-12-29-error   >>  /var/log/tomcat9/catalina.*.log

Kibana插件查看
ELK实例----使用filebeat收集tomcat日志到ES并利用kibana展示

1.5 收集nginx日志到ES并利用kibana展示

root@es-node2:/etc/filebeat# cat filebeat.yml.nginx.bak
filebeat.inputs:
- type: log
  enable: true
  paths:
    - /var/log/nginx/access.log
  json.keys_under_root: true
  json.overwrite_keys: true
  tags: ["nginx-access"]
- type: log
  enable: true
  paths:
    - /var/log/nginx/error.log
  tags: ["nginx-error"]
output.elasticsearch:
  hosts: ["10.0.0.101:9200"]
  indices:
    - index: "nginx-access_%{+YYYY-MM-dd}"
      when.contains:
        tags: "nginx-access"
    - index: "nginx-error_%{+YYYY-MM-dd}"
      when.contains:
        tags: "nginx-error"
setup.template.enabled: false
setup.template.name: "nginx"
setup.template.pattern: "nginx-*"
setup.template.overwrite: true

Kibana插件查看

ELK实例----使用filebeat收集tomcat日志到ES并利用kibana展示

1.6 收集nginx日志到Redis

1.6.1 redis安装和配置

10.0.0.100机器上安装
apt update
apt -y install redis

修改redis配置
sed -i.bak '/^bind.*/c bind 0.0.0.0' /etc/redis/redis.conf

vi /etc/redis/redis.conf
requirepass 123456

重启服务
systemctl restart redis

ELK实例----使用filebeat收集tomcat日志到ES并利用kibana展示

1.6.2 修改 Filebeat 配置文件

-------------------------redis---
[root@logsj ~]# vim /etc/filebeat/filebeat.yml 
filebeat.inputs:
- type: log
  enable: true
  paths:
    - /var/log/nginx/access.log
  json.keys_under_root: true
  json.overwrite_keys: true
  tags: ["nginx-access"]
- type: log
  enable: true
  paths:
    - /var/log/nginx/error.log
  tags: ["nginx-error"]
output.redis:
  hosts: ["10.0.0.100:6379"]
  key: "filebeat"
  password: "123456"
  #db: 0

1.6.3 测试

1.6.3.1 插入数据到nginx日志
echo access,lec,2022-12-29 >> /var/log/nginx/access.log
1.6.3.2 登录redis查看
root@es-docker:~# redis-cli -a 123456
Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.

127.0.0.1:6379> llen filebeat
(integer) 1
127.0.0.1:6379> type filebeat
list
127.0.0.1:6379> lpop filebeat
"{\"@timestamp\":\"2022-12-29T13:21:26.761Z\",\"@metadata\":{\"beat\":\"filebeat\",\"type\":\"_doc\",\"version\":\"7.17.5\"},\"log\":{\"offset\":2793,\"file\":{\"path\":\"/var/log/nginx/access.log\"}},\"json\":{},\"message\":\"access,lec,2022-12-29\",\"tags\":[\"nginx-access\"],\"input\":{\"type\":\"log\"},\"ecs\":{\"version\":\"1.12.0\"},\"host\":{\"name\":\"es-node2\"},\"agent\":{\"ephemeral_id\":\"5760374c-4ec8-469f-b94d-8b6744d0b12f\",\"id\":\"8511b925-05e6-4f07-9559-f7f02dc23c8c\",\"name\":\"es-node2\",\"type\":\"filebeat\",\"version\":\"7.17.5\",\"hostname\":\"es-node2\"}}"

ELK实例----使用filebeat收集tomcat日志到ES并利用kibana展示文章来源地址https://www.toymoban.com/news/detail-490273.html

到了这里,关于ELK实例----使用filebeat收集tomcat日志到ES并利用kibana展示的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • docker搭建Elk+Kafka+Filebeat分布式日志收集系统

    目录 一、介绍 二、集群环境 三、ES集群 四、Kibana  五、Logstash 六、Zookeeper 七、Kafka 八、Filebeat 八、Nginx (一)架构图  (二)组件介绍 1.Elasticsearch 是一个基于Lucene的搜索服务器。提供搜集、分析、存储数据三大功能。它提供了一个分布式多用户能力的全文搜索引擎,基于

    2024年02月04日
    浏览(51)
  • 【Elastic (ELK) Stack 实战教程】06、Filebeat 日志收集实践(下)

    目录 一、Filebeat 收集 Nginx 日志实践 1.1 为什么收集 Nginx 日志 1.2 Nginx 日志收集架构图 1.3 Nginx 日志收集实践 1.3.1 安装 Nginx  1.3.2 配置 filebeat 1.3.3 kibana 展示 1.4 Nginx json 日志收集实践 1.4.1 收集问题 1.4.2 解决方案 1.4.3 配置 json 1.4.4 配置 Filebeat 1.4.5 Kibana 展示 1.5 Nginx 多个日志收

    2024年02月01日
    浏览(43)
  • Linux搭建ELK日志收集系统构建:Filebeat+Redis+Logstash+Elasticse

    一、ELK概述: ELK是一组开源软件的简称,其包括Elasticsearch、Logstash 和 Kibana。ELK最近几年发展迅速,已经成为目前最流行的集中式日志解决方案。 Elasticsearch: 能对大容量的数据进行接近实时的存储,搜索和分析操作。 本项目中主要通过Elasticsearch存储所有获取的日志。 Logst

    2024年02月12日
    浏览(56)
  • ZooKeeper+Kafka+ELK+Filebeat集群搭建实现大批量日志收集和展示

    大致流程:将nginx 服务器(web-filebeat)的日志通过filebeat收集之后,存储到缓存服务器kafka,之后logstash到kafka服务器上取出相应日志,经过处理后写入到elasticsearch服务器并在kibana上展示。 一、集群环境准备 二、搭建zookeeper集群 前提条件:三台机器分别修改时区、关闭防火墙

    2024年02月04日
    浏览(47)
  • 基于Filebeat+Kafka+ELK实现Nginx日志收集并采用Elastalert2实现钉钉告警

           先准备3台Nginx服务器,用做后端服务器,(由于机器有限,也直接用这三台机器来部署ES集群),然后准备2台服务器做负载均衡器(Nginx实现负载均衡具体实现操作有机会在介绍),如果是简单学习测试,可以先使用3台Nginx服务器就可以,先告一段落。 3台Nginx服务

    2024年02月15日
    浏览(36)
  • SpringBoot利用ELK实现日志收集

    ELK是Elasticsearch、Logstash、Kibana他们三个组合起来可以搭建日志系统,本文主要记录使 用ELK收集SoringBoot应用产生的日志 Elasticsearch:存储日志信息 Logstash: 日志收集,springboot利用Logstash把日志发送个Logstash,然后Logstash将日志传递 给Elasticsearch。 Kibana:通过web端对日志进行可视化操

    2023年04月08日
    浏览(38)
  • k8s部署elk+filebeat;springCloud集成elk+filebeat+kafka+zipkin实现多个服务日志链路追踪聚合到es

    如今2023了,大多数javaweb架构都是springboot微服务,一个前端功能请求后台可能是多个不同的服务共同协做完成的。例如用户下单功能,js转发到后台 网关gateway服务 ,然后到 鉴权spring-sercurity服务 ,然后到 业务订单服务 ,然后到 支付服务 ,后续还有发货、客户标签等等服务

    2024年02月16日
    浏览(46)
  • 5、Elasticsearch7.6.1 filebeat介绍及收集kafka日志到es示例

    1、介绍lucene的功能以及建立索引、搜索单词、搜索词语和搜索句子四个示例实现 2、Elasticsearch7.6.1基本介绍、2种部署方式及验证、head插件安装、分词器安装及验证 3、Elasticsearch7.6.1信息搜索示例(索引操作、数据操作-添加、删除、导入等、数据搜索及分页) 4、Elasticsearch7

    2024年02月16日
    浏览(50)
  • 使用Filebeat收集并分析nginx的访问日志

    之前我们已经搞定了nginx+keepalived双机,花了一个多星期时间把业务都迁移过来之后,基本稳定,中间还遇到一次意外宕机,keepalived也顺利做了主备切换,接下来就要做日志分析了。 日志分析,本身从等保的要求就是需要日志第三方存储的,另外就是日志也是分析访问量的一

    2024年02月02日
    浏览(69)
  • 【ELK 使用指南 1】ELK + Filebeat 分布式日志管理平台部署

    在运维中, 日志是非常重要的工具 ,用于记录系统、应用程序或设备的运行状态、事件和异常情况。 1)故障排除和问题诊断 日志是排查故障和诊断问题的关键信息源。 通过分析日志文件,可以查找和定位系统故障、错误和异常,帮助运维人员迅速找出问题的根本原因,并

    2024年02月07日
    浏览(53)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包