发布网友 发布时间:2024-09-08 16:00
共1个回答
热心网友 时间:2024-09-15 07:14
前言众所周知,对于一道程序来说,能有详细的日志输出是十分重要的。一方面,日志便于代码出错后的调试,另一方面,在没有事先埋点的情况下,详细的日志对日后的数据统计也会有极大的帮助。
但是,but,由于我们的程序往往会部署在不同服务器的不同地方,因此查看不同的日志往往需要在不同的服务器不同的文件夹中跑来跑去非常麻烦。那么,有没有一个东西,可以让我们可以便捷的直接在一台主机上的一个地方上查看所有程序的日志呢?接下来,我将向大家介绍如何使用Loki以实现这一功能
原理准备工作以下我们称,输出日志的程序,所在的主机为主机A,查看日志的主机为主机B。
在主机A安装并部署Loki移动至任一想要让Loki运行的目录下cd<path_to_loki_to_run>
下载二进制文件(Linux)或exe可执行文件(Windows)二进制文件
exe可执行文件
下载完成后记得要解压到当前目录哦
编辑Loki配置文件#loki-config.yamlauth_enabled:falseserver:http_listen_port:3100ingester:lifecycler:address:127.0.0.1ring:kvstore:store:inmemoryreplication_factor:1final_sleep:0schunk_idle_period:5mchunk_retain_period:30smax_transfer_retries:0schema_config:configs:-from:2018-04-15store:boltdbobject_store:filesystemschema:v11index:prefix:index_period:168hstorage_config:boltdb:directory:/tmp/loki/indexfilesystem:directory:/tmp/loki/chunkslimits_config:enforce_metric_name:falsereject_old_samples:truereject_old_samples_max_age:168hchunk_store_config:max_look_back_period:0stable_manager:retention_deletes_enabled:falseretention_period:0s配置文件中较为重要的参数说明
server.http_listen_port:Loki服务运行的端口。之后配置Promtail和Grafana时需要用到。其他参数对我们目前的需求来说,可以直接忽视。
部署LokiLinux./loki-linux-amd64-config.file=loki_config.yaml
Windows./loki-windows-amd64.exe-config.file=loki_config.yaml
在主机A安装并部署Promtail移动至任一想要让Promtail运行的目录下cd<path_to_promtail_to_run>
下载二进制文件(Linux)或exe可执行文件(Windows)二进制文件
exe可执行文件
编辑Promtail配置文件#promtail-config.yamlserver:http_listen_port:9080grpc_listen_port:0positions:filename:/tmp/positions.yamlclients:-url:http://127.0.0.1:3100/loki/api/v1/pushscrape_configs:-job_name:systemstatic_configs:-targets:-localhostlabels:job:varlogs__path__:<path_to_log_file>配置文件中较为重要的参数说明
clients.url:Loki服务的日志推送接口的url,一般为http://<ip_of_loki>:<port_of_loki>/loki/api/v1/push,在本文中,由于Loki与Promtail是在一台主机上,故ip为127.0.0.1,且上文Loki配置文件中,是将Loki部署在3100端口,故端口为3100,所以该参数的值为http://127.0.0.1:3100/loki/api/v1/push
scrape_config:日志爬虫配置,这里以最简单的文件爬虫为例。jon_name即为爬虫名称,没啥大用。targets为爬虫目的主机,本文中设为localhost即可。labels即为爬虫的标签,到时候可以使用标签过滤查看日志。labels.__path__即为日志文件所在路径,promtail会自动将该文件的日志推送至Loki服务。
在主机B安装并部署Grafana下载安装Grafana下载链接
运行Grafana并配置Loki服务在HTTP.URL中输入http://<ip_of_host_A>:<prot_of_Loki_of_host_A>并保存配置即可。
配置完成后即可在Grafana的explor中查看我们的日志
结语本文只是简单地介绍了如何将一台主机的日志发送至另一台主机查看,若想将多台主机的日志发送至至一台主机查看,按照相同的操作配置即可。
本次并未深入介绍Promtail与Loki的原理。Promtail除了可以将日志文件中的日志推送至Loki外,还可以将其他一些服务如Docker容器或者系统服务的日志也推送到Loki。且他除了可以直接推送日志外,还可以将日志进行一定规则的过滤筛选更改之后,再推送出去。感兴趣的朋友可以自行去深入了解一下Promtail与Loki。