【开源系列】Loki 与 Promtail 实现轻量级日志管理系统

news/2024/11/14 11:25:25/文章来源:https://www.cnblogs.com/o-O-oO/p/18537516

1、简介

Grafana Loki 是一个用于日志聚合和分析的开源工具,专为云原生环境设计,与 Grafana 无缝集成,能够高效地收集、存储和查询日志。以下是如何使用 Grafana Loki 收集日志的详细步骤。

2、环境准备

确保你已经安装了以下组件:

Docker(用于容器化部署)Grafana(用于可视化日志数据)Loki(存储日志)Promtail(收集日志)

3、安装 Loki

可以通过 Docker 轻松安装 Loki。运行以下命令:

[root@mast01 istio]# vim /etc/loki/local-config.yamlauth_enabled: falseserver:
http_port: 3100distributor:
ring:kvstore:store: inmemoryingester:
chunk_idle_period: 5m
chunk_block_size: 720kb
max_chunk_age: 1h
lifecycler:heartbeat_timeout: 1mstorage_config:
boltdb:directory: /loki/indexschema_config:
configs:- from: 2020-10-22store: boltdbschema: v11index:prefix: loki_index_period: 168hcompactor:
working_directory: /loki/compactor
[root@mast01 istio]# docker run -d --name=loki -p 3100:3100 grafana/loki:latest -config.file=/etc/loki/local-config.yaml

4、安装 Promtail

[root@mast01 istio]# vim /etc/promtail/config.yamlserver:
http_listen_port: 9080positions:
filename: /tmp/positions.yamlclients:- url: http://192.168.58.116:3100/loki/api/v1/pushscrape_configs:- job_name: varlogsstatic_configs:- targets:- localhostlabels:job: varlogs__path__: /var/log/*.log
[root@mast01 istio]# docker run -d --name=promtail -v /var/log:/var/log -v $(pwd)/promtail-config.yaml:/etc/promtail/config.yaml grafana/promtail:latest -config.file=/etc/promtail/config.yaml

5、安装 Grafana

[root@mast01 ~]# vim grafana.yamlapiVersion: v1
kind: ConfigMap
metadata:
name: grafana-config
data:
grafana.ini: |[server]root_url = %(protocol)s://%(domain)s:%(http_port)s/serve_from_sub_path = true[auth]disable_login_form = falsedisable_signout_menu = false[users]allow_sign_up = true---
apiVersion: apps/v1
kind: Deployment
metadata:
name: grafana
spec:
replicas: 1
selector:matchLabels:app: grafana
template:metadata:labels:app: grafanaspec:containers:- name: grafanaimage: registry.cn-shanghai.aliyuncs.com/study-03/grafana:9.0.1ports:- containerPort: 3000env:- name: GF_SECURITY_ADMIN_PASSWORDvalue: "123456"  # 设置管理员密码volumeMounts:- name: grafana-config-volumemountPath: /etc/grafana/grafana.inisubPath: grafana.inivolumes:- name: grafana-config-volumeconfigMap:name: grafana-config---
apiVersion: v1
kind: Service
metadata:
labels:# For use as a Cluster add-on (https://github.com/kubernetes/kubernetes/tree/master/cluster/addons)# If you are NOT using this as an addon, you should comment out this line.kubernetes.io/cluster-service: 'true'kubernetes.io/name: monitoring-grafana
name: monitoring-grafana
spec:# In a production setup, we recommend accessing Grafana through an external Loadbalancer# or through a public IP.# type: LoadBalancer# You could also use NodePort to expose the service at a randomly-generated port# type: NodePort
ports:- port: 80targetPort: 3000
selector:app: grafana
type: NodePort
[root@mast01 ~]# kubectl apply -f gra.yaml
configmap/grafana-config created
deployment.apps/grafana created
service/monitoring-grafana created
[root@mast01 ~]# kubectl get pod
NAME                       READY   STATUS   RESTARTS   AGE
grafana-5f996b9995-skg9n   1/1     Running   0         22s

6、在 Grafana 中配置 Loki 数据源

登录 Grafana 控制台。进入 “Configuration” > “Data Sources”。点击 “Add data source” 并选择 “Loki”。在 URL 中输入 Loki 的地址(例如 http://192.168.58.116:3100)。点击 “Save & Test” 以确认连接成功。

7、验证效果

点击左侧工具栏,选择Explore在查询框中输入日志查询,例如:
#使用 Grafana 提供的强大查询语言,可以进行更复杂的日志查询。例如,你可以使用 `|~` 进行正则匹配,或使用 `|=` 进行字符串过滤,构建适合你的查询。
{job="varlogs"} |= "error"

[root@mast01 log]# cat vmware-vmsvc-root.log |grep 2024-11-07|grep error
[2024-11-07T07:22:37.812Z] [ warning] [vmsvc] SimpleSock: failed to connect (1023 => 976), error 110: 连接超时

8、总结

通过以上步骤,你可以成功搭建一个基于 Grafana Loki 的日志收集和监控系统。Loki 提供高效的日志存储和查询能力,与 Grafana 的结合让用户能够轻松分析和可视化日志数据。这一组合非常适合于云原生环境和微服务架构,能够帮助团队快速定位和解决

原创 IT运维大爆炸

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/829583.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【学习软件】【疯狂地理Beta1.0.0】

【前言】 近期,使用Unity开发了一款有关中国地理知识的App,目前仅支持Android,用于自己学习。知识要活学活用才行。【软件截图】 【下载地址】 https://rere.lanzoue.com/iiblf2eochmh密码:5jvy【敬畏能量 敬畏自然】

Groove Intermediate pg walkthrough

80端口web站点 dirsearch 没发现啥有用信息 感觉就是让我们突破登录框进后台的 https://github.com/ChurchCRM/CRM/issues/137 上网查到默认密码 登录后台跟具cms查exp发现有个SQL注入 payload找半天找到一个 可以直接sql注入 http://192.168.167.44/EventAttendance.php?Act…

easyre 1

easyre 1 下载文件解压发现是个exe文件直接丢进IDA分析flag{this_Is_a_EaSyRe}本文来自博客园,作者:TazmiDev,转载请注明原文链接:https://www.cnblogs.com/tazmi/p/18537488

AtCoder Beginner Contest 379

A - Cyclic 题意输入\(3\)个连续字符\(a,b,c\),输出另外两种顺序。思路模拟。代码点击查看代码 #include<bits/stdc++.h> using namespace std; #define int long long typedef pair<int, int> pii;const int mxn = 1e6 + 5;void solve() {char a, b, c;cin >&…

[NPUCTF2020]ReadlezPHP

打开靶机,看看情况右键想看源代码没反应,关掉设置里的JavaScript即可查看源代码 点进去看看发现源码<?php #error_reporting(0); class HelloPhp {public $a;public $b;public function __construct(){$this->a = "Y-m-d h:i:s";$this->b = "date&q…

gigapath部署以及微调全过程

0.0 什么是gigapathgigapath是一个由微软开发的数字病理学全玻片基础模型,用于从高分辨率图像(如病理切片图像)中提取和处理信息的深度学习模型架构。 图中分为abc三个部分 a 首先输入一张高清的病理图像,我们将它拆分成256*256的图像切片,从而可以逐块处理。 每个图像块会…

【剑侠情缘2网络版单机安装教程】算是完美吧大多数开服用得端+附GM

为了学习和研究软件内含的设计思想和原理,本人花心血和汗水带来了搭建教程!!! 教程不适于服架设,严禁服架设!!!请牢记!!! 教程仅限学习使用,禁止商用,一切后果与本人无关,此声明具有法律效应!!!! 教程是本人亲自搭建成功的,绝对是完整可运行的,踩过的坑都给…

Playwright使用Typescript实现在测试case文件中调用另一个文件中的方法

前提: (1)安装了nodejs (2)创建了测试目录 (3)使用Vscode安装了Playwright插件 可以参考官方文档:https://playwright.dev/docs/getting-started-vscode在vscode界面最左侧的按钮选择Explorer, 创建一个与tests目录同级的目录methods,并在methods目录下创建文件method…

#2024-2025-1学号20241309《计算机基础与程序设计》第七周学习总结

作业信息这个作业属于哪个课程 2024-2025-1-计算机基础与程序设计这个作业要求在哪里 2024-2025-1计算机基础与程序设计第七周作业这个作业的目标作业正文 2024-2025-1学号20241309《计算机基础与程序设计》第七周学习总结教材学习内容总结 《计算机科学概论》第八章: 抽象数据…

八、Spring Boot集成Spring Security之前后分离认证最佳实现对接测试

本文介绍前后分离认证最佳实现的对接测试,使用postman或者其他熟悉的测试工具,配合最佳流程介绍和实现效果更佳!!!前言 本文介绍前后分离认证最佳实现的对接测试,使用postman或者其他熟悉的测试工具,配合以下内容观看效果更佳!!!什么是前后分离认证流程最佳方案,为什…

考研打卡

开局(12) 开始时间 2024-11-09 20:49:42 结束时间 2024-11-09 22:43:03睡了一整天,好难受数据结构已知有向图G=(V,E),其中V={a,b,c,d,e,f,g}, E={<a,b>,<a,c>,<a,d>,<b,e>,<c,e>,<c,f>,<d,f>,<e,g>…

【算法】状态压缩DP

基本内容入门例子 USACO06NOV] Corn Fields G - 洛谷 | 计算机科学教育新生态题目简述:在一个\(N\times M\)的玉米田中种玉米,有一些坏掉的土地是不能种玉米的,另外相邻的两个田也不可以种,一共有多少种种植方案(荒地也算一种),如图所示,由于相邻的土地不能种植,此时…