docker swarm结合loki搭建轻量级日志监控系统
目录
一、安装使用简介
1 docker安装loki
|
|
2 docker安装grafana
|
|
3 docker安装promtail(可选)
需要收集nginx或者其他单体容器日志时可安装,修改配置文件来收集日志;而dockers swarm可在docker中安装loki插件,暂不需要安装。
|
|
4 添加端口
|
|
5 swarm管理节点上,安装loki-docker-driver插件
|
|
6 集群stack部署时的yaml配置文件修改,添加logging配置参数,loki-url指定loki服务地址
|
|
7 浏览器访问测试
7.1 安装完成后,访问节点的 3000 端口访问 grafana,默认情况下使用(admin:admin)访问

7.2 设置>添加数据源,在数据源列表中选择Loki,配置 Loki 源地址:http://10.5.76.54:3100

7.3 保存完成后,切换到 grafana 左侧区域的Explore,即可进入到Loki的页面,点击Log labels就可以把当前系统采集的日志标签给显示出来,可以根据这些标签进行日志的过滤查询

8.日志过滤
编写日志流选择器后,可以通过编写搜索表达式来进一步过滤结果。搜索表达式可以只是文本或正则表达式。 查询示例:
|
|
过滤已实现以下过滤器类型:
- |= 行包含字符串。
- != 行不包含字符串。
- |~ 行匹配正则表达式。
- !~ 行与正则表达式不匹配。 regex表达式接受RE2语法。默认情况下,匹配项区分大小写,并且可以将regex切换为不区分大小写的前缀(?i)。
更多内容可参考官方说明
二、 个人总结
Loki是一个水平可扩展,高可用性,多租户的日志聚合系统,受到Prometheus的启发。它的设计非常经济高效且易于操作,因为它不会为日志内容编制索引,而是为每个日志流编制一组标签。官方介绍说到:Like Prometheus, but for logs. 个人觉得,相比elk/efk,loki更加适合中小团队。
参考文档:
https://www.cnblogs.com/ssgeek/p/11584870.html https://github.com/grafana/loki/blob/master/docs/README.md https://www.bookstack.cn/read/loki/clients-docker-driver-README.md https://www.cnblogs.com/fsckzy/p/13231696.html