运维之日志存储简介
日志存储
日志收集就是为了查询、统计分析,这个就涉及到要存储到哪里的问题。
文件存储
文件存储是最简单的存储方式。分析的时候一般就是借助 shell 命令进行过滤、统计。适合日志量比较小的情况,临时统计一下。
SQL 数据库
SQL 语句查询,是最方便统计分析的。
-
MySQL 也可以存储对应的日志。可以直接通过 SQL 语句进行查询,非常方便。上百万的日志量查询起来也还是挺快的。
-
TiDB 是为了兼容 MySQL 数据库,采用分布式,可以容纳更大量的查询。
-
Clickhose 也是分布式,是一个用于联机分析(OLAP:Online Analytical Processing)的列式数据库管理系统(DBMS:Database Management System),简称 CK。ClickHouse 是一个完全的列式数据库管理系统,允许在运行时创建表和数据库,加载数据和运行查询,而无需重新配置和重新启动服务器,支持线性扩展,简单方便,高可靠性,容错。一般 BI 会用到这个。
NoSQL 数据库
Elasticsearch 是提供持久存储、统计等多项功能的现代搜索引擎。查询速度快。
队列
MySQL、Elasticsearch 等数据库虽然查询快,但是高并发写入比较慢,就要使用到队列,作为缓冲一下。
- redis 速度快,但是内存比较贵,如果未及时消费会导致数据丢失。
- kafka 百万级别的并发,支持分布式,支持副本,磁盘持久化,可以防止数据丢失
总结
一般是使用 elasticsearch 来存储日志,因为查询快,而且有前端 kibana 提供快速查询。
- 原文作者:Linux运维菜
- 原文链接:https://www.opcai.top/post/2020/2020-03/op_log_store/
- 版权声明:本作品采用进行许可,非商业转载请注明出处(作者,原文链接),商业转载请联系作者获得授权。