ELK日志(4)

本文涉及的产品
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
云数据库 Tair(兼容Redis),内存型 2GB
日志服务 SLS,月写入数据量 50GB 1个月
简介: ELK日志(4)

搭建filebeat+redis+logstash+es+kibana架构,拓扑图参考ELK(3)

  1. 安装redis,并启动

(1)准备安装和数据目录

[root@es ~]# mkdir -p /opt/redis_cluster/redis_6379/{conf,logs,pid}

(2)下载redis安装包

这里我已经提前下载好了,所以直接跳过此步。如没有安装包执行下面命名下载。

wget http://download.redis.io/releases/redis-5.0.7.tar.gz

(3)解压redis到/opt/redis_cluster/

1. [root@es ~]# tar zxf /media/redis-5.0.7.tar.gz -C /opt/redis_cluster/
2. [root@es ~]# ln -s /opt/redis_cluster/redis-5.0.7  /opt/redis_cluster/redis

(4)切换目录安装redis

1. [root@es ~]# cd /opt/redis_cluster/redis
2. [root@es redis]# make && make install

(5)编写配置文件

1. [root@es redis]# vim /opt/redis_cluster/redis_6379/conf/6379.conf
2. 添加:
3. bind 127.0.0.1 192.168.8.1
4. port 6379
5. daemonize yes
6. pidfile /opt/redis_cluster/redis_6379/pid/redis_6379.pid
7. logfile /opt/redis_cluster/redis_6379/logs/redis_6379.log
8. databases 16
9. dbfilename redis.rdb
10. dir /opt/redis_cluster/redis_6379

(6)启动当前redis服务

[root@es redis]# redis-server /opt/redis_cluster/redis_6379/conf/6379.conf
  1. web主机修改filebeat配置文件,output给redis

(参考文档:https://www.elastic.co/guide/en/beats/filebeat/6.6/index.html

(1)修改filebeat配置output指向redis,重启

1. [root@web ~]# vim /etc/filebeat/filebeat.yml
2. filebeat.inputs:
3. - type: log
4.   enabled: true
5.   paths:
6.     - /var/log/nginx/access.log
7.   json.keys_under_root: true
8.   json.overwrite_keys: true
9.   tags: ["access"]
10. 
11. - type: log
12.   enabled: true
13.   paths:
14.     - /var/log/nginx/error.log
15.   tags: ["error"]
16. 
17. setup.template.settings:
18.   index.number_of_shards: 3
19. 
20. setup.kibana:
21. 
22. output.redis:
23.   hosts: ["192.168.8.1"]        //指向redis地址
24.   key: "filebeat"
25.   db: 0
26. timeout: 5
27. [root@web ~]# systemctl restart filebeat

(2)es主机测试访问网站,登录redis,查看键值

测试前需要先用client主机ab工具发出请求,而后使用redis命令查看。

[root@client ~]# ab -n 100 -c 20 http://192.168.8.2/index.html
redis-cli #登录keys * #列出所有键type filebeat #filebeat为键值名LLEN filebeat #查看list长度LRANGE filebeat 0 -1 #查看list所有内容

  1. 安装logstash,收集redis的日志,提交给es

(1)安装logstash

[root@es ~]# rpm -ivh /media/elk-6.6/logstash-6.6.0.rpm

(2)配置logstash

1. [root@es ~]# vim /etc/logstash/conf.d/redis.conf
2. 添加:
3. input {
4.   redis {
5.     host => "192.168.8.1"
6.     port => "6379"
7.     db => "0"
8.     key => "filebeat"
9.     data_type => "list"
10.   }
11. }
12. 
13. filter {
14.   mutate {
15.     convert => ["upstream_time","float"]
16.     convert => ["request_time","float"]
17.   }
18. }
19. 
20. output {
21.   stdout {}
22.   elasticsearch {
23.     hosts => ["http://192.168.8.1:9200"]
24.     index => "nginx_access-%{+YYYY.MM.dd}"
25.     manage_template => false
26.   }
27. }

(3)启动logstash

执行下面命令后,redis中的数据将会被取走。

[root@es ~]# /usr/share/logstash/bin/logstash -f /etc/logstash/conf.d/redis.conf &

下图中看到先执行llen命令,可以看到数据还存在,稍等片刻等待被取走,出现红框中的内容后,再次查看,数据已经被取走了。

(4)修改logstash配置文件,实现access和error日志分离

1. [root@es ~]# vim /etc/logstash/conf.d/redis.conf
2. 添加:
3. input {
4.   redis {
5.     host => "192.168.8.1"
6.     port => "6379"
7.     db => "0"
8.     key => "filebeat"
9.     data_type => "list"
10.   }
11. }
12. 
13. filter {
14.   mutate {
15.     convert => ["upstream_time","float"]
16.     convert => ["request_time","float"]
17.   }
18. }
19. 
20. output {
21.   stdout {}
22. if "access" in [tags] {
23.     elasticsearch {
24.       hosts => ["http://192.168.8.1:9200"]
25.       index => "nginx_access-%{+YYYY.MM.dd}"
26.       manage_template => false
27.     }
28.    }
29. if "error" in [tags] {
30.     elasticsearch {
31.       hosts => ["http://192.168.8.1:9200"]
32.       index => "nginx_error-%{+YYYY.MM.dd}"
33.       manage_template => false
34.     }
35.    }
36. }
37. [root@es ~]# /usr/share/logstash/bin/logstash -f /etc/logstash/conf.d/redis.conf &

启动后在client主机创建多个连接数测试,刷新elasticsearch查看请求数量(数量较多,稍等片刻)。

[root@client ~]# ab -n 10000 -c 1000 http://192.168.8.2/index.html


相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
5月前
|
存储 消息中间件 网络协议
日志平台-ELK实操系列(一)
日志平台-ELK实操系列(一)
|
3月前
|
存储 监控 安全
|
6月前
|
消息中间件 Kafka 开发工具
rsyslog+ELK收集Cisco日志
rsyslog+ELK收集Cisco日志
|
6月前
|
存储 消息中间件 监控
Java日志详解:日志级别,优先级、配置文件、常见日志管理系统ELK、日志收集分析
Java日志详解:日志级别,优先级、配置文件、常见日志管理系统、日志收集分析。日志级别从小到大的关系(优先级从低到高): ALL < TRACE < DEBUG < INFO < WARN < ERROR < FATAL < OFF 低级别的会输出高级别的信息,高级别的不会输出低级别的信息
|
6月前
|
存储 数据可视化 Linux
在Linux中,如何使用ELK进行日志管理和分析?
在Linux中,如何使用ELK进行日志管理和分析?
|
6月前
|
数据可视化 Java API
如何在项目中快速引入Logback日志并搭配ELK使用
如何在项目中快速引入Logback日志并搭配ELK使用
|
6月前
|
存储 监控 Ubuntu
一键搞定:用脚本轻松部署ELK,让日志分析变得简单又高效
【8月更文挑战第13天】ELK栈由Elasticsearch、Logstash和Kibana组成,用于日志存储、解析及展示,是大数据领域广泛采用的日志解决方案。鉴于其安装配置复杂,本文提供了一个适用于Ubuntu 16.04的ELK自动安装Shell脚本示例。脚本首先确保Java环境安装,接着添加Elastic.co的APT仓库并安装ELK组件,最后启动所有服务。通过自动化流程,简化部署工作,减少人为错误,提升效率。实际应用中还需根据具体需求调整配置和服务设置。
148 0
|
6天前
|
存储 缓存 关系型数据库
图解MySQL【日志】——Redo Log
Redo Log(重做日志)是数据库中用于记录数据页修改的物理日志,确保事务的持久性和一致性。其主要作用包括崩溃恢复、提高性能和保证事务一致性。Redo Log 通过先写日志的方式,在内存中缓存修改操作,并在适当时候刷入磁盘,减少随机写入带来的性能损耗。WAL(Write-Ahead Logging)技术的核心思想是先将修改操作记录到日志文件中,再择机写入磁盘,从而实现高效且安全的数据持久化。Redo Log 的持久化过程涉及 Redo Log Buffer 和不同刷盘时机的控制参数(如 `innodb_flush_log_at_trx_commit`),以平衡性能与数据安全性。
21 5
图解MySQL【日志】——Redo Log
|
3月前
|
XML 安全 Java
【日志框架整合】Slf4j、Log4j、Log4j2、Logback配置模板
本文介绍了Java日志框架的基本概念和使用方法,重点讨论了SLF4J、Log4j、Logback和Log4j2之间的关系及其性能对比。SLF4J作为一个日志抽象层,允许开发者使用统一的日志接口,而Log4j、Logback和Log4j2则是具体的日志实现框架。Log4j2在性能上优于Logback,推荐在新项目中使用。文章还详细说明了如何在Spring Boot项目中配置Log4j2和Logback,以及如何使用Lombok简化日志记录。最后,提供了一些日志配置的最佳实践,包括滚动日志、统一日志格式和提高日志性能的方法。
1043 31
【日志框架整合】Slf4j、Log4j、Log4j2、Logback配置模板
|
2月前
|
监控 安全 Apache
什么是Apache日志?为什么Apache日志分析很重要?
Apache是全球广泛使用的Web服务器软件,支持超过30%的活跃网站。它通过接收和处理HTTP请求,与后端服务器通信,返回响应并记录日志,确保网页请求的快速准确处理。Apache日志分为访问日志和错误日志,对提升用户体验、保障安全及优化性能至关重要。EventLog Analyzer等工具可有效管理和分析这些日志,增强Web服务的安全性和可靠性。