日志简介
在运维过程中,日志是必不可少的东西,通过日志可以快速发现问题所在。
日志分类
日志分类,对不同的日志进行不同维度的分析。
操作系统日志
- 操作系统是基础,应用都是在其之上;
- 操作系统日志的分析,可以反馈出应用的一些问题;
- 登录操作系统,可以对应用进行直接操作,因此登录日志可以反馈出一些安全问题;
- 操作系统的自我保护机制,例如 OOM,会杀死异常应用,这些异常应用有可能是病毒、木马,也可能仅仅只是配置异常导致的;
- 硬件问题,操作系统是驱动硬件做事情的,硬件出现问题,操作系统一般会给出对应的反馈信息,也会记录在日志里面。
应用日志
- 基础应用的日志,比如:docker、k8s、redis、nginx 等等应用的错误日志;
- Web 日志,一般对外开发最多的就是 web 日志,web 日志可以分析出很多东西,比如:QPS、DUA、点击率等等统计信息;同时,也可以分析出是否有 web 攻击;
- 数据库慢日志,统计收集可用于性能分析。
日志收集
- Linux 系统自带有 rsyslog 应用,可以将系统日志同步到远程机器,统一收集
- 其他应用日志,也可以通过配置 rsyslog 进行收集;
- rsyslog 配置过滤相对比较负载,而且日志量大就容易出现内存占用过高的问题;这时候可以使用其他工具代替,比如:flume、logstash、filebeat 等日志收集应用进行收集。
- 如果程序支持,也可以让应用程序直接写到对应的日志存储里面。
- 日志量过大,直接写入数据库会导致数据库压力过大,这时候就可以使用队列应用进行缓存,例如:redis、kakfa 等。
日志展示
- 目前比较流行的就是 elasticsearch kibana。数据存储到 elasticsearch,kibana 作为快速查询展示。
- 如果只是统计指标,也可以使用 grafana 进行展示。
日志告警
- grafana 可以根据统计数据进行告警,但是有很多限制,功能比较弱。
- 通过 elasticsearch 查询,规则过滤进行告警。
- 自研告警系统,可以实现环比和同比等更详细的统计分析,来及时发现异常。
总结
个人愚见,欢迎一起讨论!
,