范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

Linux搭建promtaillokigrafana轻量日志监控系统

  一:简介
  日志监控告警系统,较为主流的是ELK(Elasticsearch 、 Logstash和Kibana核心套件构成),虽然优点是功能丰富,允许复杂的操作。但是,这些方案往往规模复杂,资源占用高,操作苦难。很多功能往往用不上,大多数查询只关注一定时间范围和一些简单的参数(如host、service等),使用这些解决方案就有点杀鸡用牛刀的感觉了。
  所以寻找更轻量级的日志监控系统,所以也就有了EFK(elasticsearch+kibana+filebeat),
  搭建参考:EFK轻量级日志系统搭建
  另外一种是Promtail + Loki + Grafana核心组件构成,简称PLG,这种是更轻量级的,配置要求也不高,功能简单,但是目的明确,就是日志采集。
  Loki的架构也非常简单,使用了和prometheus一样的标签来作为索引,Loki 是受Prometheus启发的水平可扩展、高可用、多租户日志聚合系统。
  组件: promtail: 日志收集的代理,安装部署在需要收集和分析日志的服务器,promtail会将日志发给Loki服务。Loki: 主服务器,负责存储日志和处理查询。Grafana:提供web管理界面,数据展示功能。
  二:服务器安装及配置
  1:基础安装启动
  安装方式大概有这么几种,二进制安装,yum安装、docker安装、helm安装。
  因为是服务器端,我这里用docker安装,简单方便。
  官方网站也提供了docker-compose文件供下载。
  参考地址:https://grafana.com/docs/loki/latest/installation/docker/#下载docker-compose文件 wget https://raw.githubusercontent.com/grafana/loki/v2.5.0/production/docker-compose.yaml -O docker-compose.yaml
  下载的docker-compose文件如下,也是最简单基本的。version: "3"  networks:   loki:  services:   loki:     image: grafana/loki:2.5.0     ports:       - "3100:3100"     command: -config.file=/etc/loki/local-config.yaml     networks:       - loki    promtail:     image: grafana/promtail:2.5.0     volumes:       - /var/log:/var/log     command: -config.file=/etc/promtail/config.yml     networks:       - loki    grafana:     image: grafana/grafana:latest     ports:       - "3000:3000"     networks:       - loki
  这时也可以正常启动即可,默认日志为/var/log的位置。docker-compose -f docker-compose.yaml up
  这时,基本的安装就完成了,但是有时候需要更改配置文件,如后续nginx反向代理访问,这时这个配置文件满足不了需求,所以需要自己改动grafana。还有就是docker-compose down掉,数据也是没了,需要重新添加。
  2:升级配置启动
  更改也很简单,无非就是启动后,把docker的配置文件夹拷贝出来本地,然后挂载上去即可。
  以下就是我自己改的docker-compose文件,可以参考:
  本人机器3000端口被占用,所以改用3030端口映射,按需设置。还有本人数据文件夹/var/lib/grafana/挂载后,账号进不去,所以先注释掉了,后续在慢慢测试。version: "3"  networks:   loki:  services:   loki:     image: grafana/loki:2.5.0     restart: unless-stopped     ports:       - "3100:3100"     volumes:       - ./config/loki/:/etc/loki/     command: -config.file=/etc/loki/local-config.yaml     networks:       - loki    promtail:     image: grafana/promtail:2.5.0     volumes:       - /var/log:/var/log       - ./config/promtail/:/etc/promtail/     command: -config.file=/etc/promtail/config.yml     networks:       - loki    grafana:     image: grafana/grafana-enterprise:8.5.2-ubuntu     restart: unless-stopped     ports:       - "3030:3000"     volumes:       - ./config/grafana/:/etc/grafana/ #      - ./grafana-data:/var/lib/grafana/ #这行是数据挂载在本地,需要将数据拷贝出来     networks:       - loki
  最后文件结构如下:除了grafana配置文件夹比较多文件,其他都只有一个。grafana我整个文件夹复制出来就行了。  config       grafana           grafana.ini           ldap.toml           provisioning               access-control               dashboards               datasources               notifiers               plugins       loki           local-config.yaml       promtail           config.yml   docker-compose.yaml   grafana-data       alerting [error opening dir]       csv [error opening dir]       grafana.db       plugins       png [error opening dir]
  loki的local-config.yaml参考配置文件:auth_enabled: false  server:   http_listen_port: 3100  common:   path_prefix: /loki   storage:     filesystem:       chunks_directory: /loki/chunks       rules_directory: /loki/rules   replication_factor: 1   ring:     kvstore:       store: inmemory  schema_config:   configs:     - from: 2020-10-24       store: boltdb-shipper       object_store: filesystem       schema: v11       index:         prefix: index_         period: 24h  ruler:   alertmanager_url: http://localhost:9093  # By default, Loki will send anonymous, but uniquely-identifiable usage and configuration # analytics to Grafana Labs. These statistics are sent to https://stats.grafana.org/ # # Statistics help us better understand how Loki is used, and they show us performance # levels for most users. This helps us prioritize features and documentation. # For more information on what"s sent, look at # https://github.com/grafana/loki/blob/main/pkg/usagestats/stats.go # Refer to the buildReport method to see what goes into a report. # # If you would like to disable reporting, uncomment the following lines: #analytics: #  reporting_enabled: false
  promtail的config.yml配置文件:server:   http_listen_port: 9080   grpc_listen_port: 0  positions:   filename: /tmp/positions.yaml  clients:   - url: http://loki:3100/loki/api/v1/push  scrape_configs: - job_name: system   static_configs:   - targets:       - localhost     labels:       job: varlogs       __path__: /var/log/*log
  grafana的配置文件太长,就不复制了,自己拷贝出来即可。
  拷贝完配置文件夹后,更改完后,直接启动即可。sudo docker-compose up -d
  浏览器输入ip端口即可访问,我这里配置为ip:3030端口访问。
  2:grafana的反向代理nginx配置,域名访问
  grafana配置完后,默认是IP:端口的方式访问,如果需要域名访问,则需要用到nginx方向代理。
  官方文档配置参考:https://grafana.com/tutorials/run-grafana-behind-a-proxy/
  需要更改的配置文件为grafana.ini,去掉下面三个前面的注释。domain:你的域名,我这里为grafana.ywbj.ccroot_url:访问链接,官方文档是后面加了grafana/,默认是没有的,也可以不加,区别是,不加直接访问网址即可,加了就需要访问域名/grafana才能访问,如:grafana.ywbj.cc/grafana/ 才能访问。我这里配置就没有加。serve_from_sub_path:去掉注释,将false改成true即可。[server] domain = grafana.ywbj.cc root_url = %(protocol)s://%(domain)s:%(http_port)s/ serve_from_sub_path = true
  grafana配置完成,下面就是配置nginx了。官方nginx配置文件:
  注:如果上面root_url 后面加了grafana/,则location / 改为location /grafana/ 。# this is required to proxy Grafana Live WebSocket connections. map $http_upgrade $connection_upgrade {   default upgrade;   "" close; }  server {   listen 80;   server_name  grafana.initcapp.com;   root /usr/share/nginx/html;   index index.html index.htm;    location / {     proxy_set_header Host $http_host;     proxy_pass http://localhost:3000/;   }    # Proxy Grafana Live WebSocket connections.   location /api/live {     rewrite  ^/(.*)  /$1 break;     proxy_http_version 1.1;     proxy_set_header Upgrade $http_upgrade;     proxy_set_header Connection $connection_upgrade;     proxy_set_header Host $http_host;     proxy_pass http://localhost:3000/;   } }
  上面配置好了,然后启动,虽然可以访问,也可以添加资源,但是在实时查看日志流,会出现错误。
  Query error Live tailing was stopped due to following error: undefined,如下图:
  原因是nginx websocket出错,即配置文件中location /api/live 这个区域。
  根据另一篇官方文档:https://grafana.com/docs/grafana/latest/live/configure-grafana-live/
  修改nginx配置文件,最后nginx配置文件为:map $http_upgrade $connection_upgrade {   default upgrade;   "" close; }  server {   listen 80;   server_name  	grafana.ywbj.cc;   #root /usr/share/nginx/html;   #index index.html index.htm;      error_log  /var/log/nginx/nginx.localhost.error.log  warn;      location / {     proxy_http_version 1.1;     proxy_set_header Upgrade $http_upgrade;     proxy_set_header Connection $connection_upgrade;     proxy_set_header Host $http_host;     proxy_pass http://localhost:3030/;     #默认为3000端口,我配置为3030,所以是3030.   }
  这样启动后,功能一切正常了。
  三:客户端安装及配置
  loki客户端,及需要收集日志的另一台机器,只需要安装promtail,也可以docker启动安装,也可以二进制安装。
  由于本人收集日志有其他目录,如果用docker,需要配置挂载很多路径到docker,所以我在客户端直接用二进制启动即可,配置文件比较容易。
  二进制官方下载地址:https://github.com/grafana/loki/releases
  找到自己合适的版本promtail,我这里是这个。
  下载后,解压即可,得到一个可执行文件promtail-linux-amd64。root@web:/loki# ls config.yaml promtail-linux-amd64
  还需要创建一个config.yaml文件,用于启动promtail。sudo vim config.yaml
  如果有多路径及目录,则添加多个job_name即可。
  注意:clients中的url为你服务器的地址。server:   http_listen_port: 9080   grpc_listen_port: 0  positions:   filename: /tmp/positions.yaml  clients:   - url: http://192.168.152.100:3100/loki/api/v1/push   #服务器端loki的IP地址  scrape_configs: - job_name: web   static_configs:   - targets:       - localhost     labels:       job: web-varlogs       __path__: /var/log/*log  - job_name: web   static_configs:   - targets:       - localhost     labels:       job: nginx-logs       __path__: /home/ubuntu/laradock/logs/nginx/*log  - job_name: web   static_configs:   - targets:       - localhost     labels:       job: api-logs       __path__: /home/ubuntu/api/storage/logs/*log
  上面配置文件,后续发现多个job_name 也只生效最后一个job_name。然后修改配置多个labels测试,修改配置文件如下,后续添加启动后,查看也只有两个路径,看日志又都有收集,不知道是啥原因[捂脸],有时间后续在查查。server:   http_listen_port: 9080   grpc_listen_port: 0  positions:   filename: /tmp/positions.yaml  clients:   - url: http://192.168.152.100:3100/loki/api/v1/push   #服务器端loki的IP地址  scrape_configs: - job_name: web   static_configs:   - targets:       - localhost     labels:       job: web-varlogs       __path__: /var/log/*log    - targets:       - localhost     labels:       job: nginx-logs       __path__: /home/ubuntu/laradock/logs/nginx/*log    - targets:       - localhost     labels:       job: api-logs       __path__: /home/ubuntu/api/storage/logs/*log
  创建完配置文件,启动即可。./promtail-linux-amd64 -config.file=./config.yaml
  后台启动,如果需要查看日志,那输入日志。#输入日志到指定位置 nohup ./promtail-linux-amd64 -config.file=./config.yaml > /var/log/promtail.log 2>&1 & #不需要查看日志输入,直接为空。 nohup ./promtail-linux-amd64 -config.file=./config.yaml > /dev/null 2>&1 &
  启动后,用ps可查看进程是否启动root@web:/loki# ps -ef|grep promtail root     1466400 1450430  7 10:41 pts/0    00:00:00 ./promtail-linux-amd64 -config.file=./config.yaml root     1466415 1450430  0 10:41 pts/0    00:00:00 grep --color=auto promtail
  四:grafana使用添加loki
  在浏览器输入域名访问,默认账号密码为admin,admin
  然后在data sources,点击添加add data source,选择loki即可。
  然后添加服务器loki的地址即可,地址为IP:3100,loki的默认端口为3100。
  添加完成,没有报错,说明添加成功。
  在explore,在 log browser中选择,即可查看刚才添加的日志,这里以job分类。
  选择一个,show logs即可查看,右上角为实时流查看日志。
  这里loki、promtail、Grafana日志系统就配置完了。

40岁,在五线城市是选择当律师还是老师,请大家帮忙分析一下?做自己擅长的事,不要跟风,五线城市应该节奏不是太快,这两种职业应该都有好市场。在五线城市没有一定的资源千万不要当律师,律师都跟法院法官有千丝万缕的联系的。首先,五线城市空间比较小,联想的柳传志可以倒但是联想集团不能倒岭南之锋202201201220搞笑,一波一波的自媒体,跟着莫莫男老师打着爱国旗号,割着流量的韭菜,非要把联想整死,然后让戴尔,让东芝,索尼乘虚而入,都以为我们是爱国呢?其实最后我支付宝今年怎么还没有集五福啊?有没有没注意,但是我对它兴趣不大,折腾来折腾去,到手的钱不够买两个包子。因为现在马云自己要集五福了。这个问题很有趣,说明你对新闻不关注。1,阿里巴巴创始人马云11月2日被中国人民银非常规作业商业尽调员在投资业一个真实而矛盾的商业世界。采访丨陈晶实习生张梓清文丨陈晶编辑丨宋玮1000种骗局一家管理规模超过25亿美元的头部美元基金,合伙人每年要看超过250个项目,看了十年,让他觉得最匪夷所2025年的智慧课堂,也许就是这个模样人类正在步入智能时代,智能技术引发的课堂革命既是历史的选择,也是历史的必然。智能技术作为一种具有自适应自进化双向互动等特征的新技术形态,其影响是多方面的,将其融入课堂教学的各个环节瑞风新能源与长城华冠在新碳纤维物料电动车电池管理等方面建立全面合作关系瑞风新能源1月19日晚间在港交所公告,公司与长城华冠订立了战略合作协议,在新碳纤维物料电动车电池管理智能汽车控制系统新能源储备新能源设备制造及相关业务范围的业务发展潜在股本投资及集58同城招聘业务再梳理赶集网品牌重塑为赶集直招新京报贝壳财经讯(记者陈维城)1月20日,58同城宣布,旗下赶集网正式重塑为专注招聘市场的赶集直招,以企业直招为核心特点,依托于企业直播企业实勘短视频探店AI面试间等智能化技术,连iPhone14Pro渲染图摩斯密码屏4800万,依然是库克创收的杀手锏iPhone14系列的相关新闻也是越来越多,同时很多的设计信息也得到了曝光。作为四款机型中的高配版本,iPhone14Pro的热度也是居高不下。毕竟iPhone14Pro是次顶配机难怪成本年年涨!怒,外媒爆Google和Facebook操控线上广告业务据华盛顿消息称,由美国各州政府发起的反垄断诉讼中,Google与Meta(原名Facebook)被指控联手操纵线上广告销售业务。起诉书中指出,两家公司的首席执行官均知晓此项交易,并15。3RC发布!苹果快升级iOS15修补安全漏洞在苹果看来,iOS15更新大家应该赶快升级了(符合条件),这也是为什么关闭iOS14的原因之一吧。苹果公司在发布iOS15时修补了两个重要的安全漏洞,这些漏洞有可能将用户的私人Ap企业微信发送企业群告警发送告警消息funcQYWechatSendMessage(accessTokenstring,reqSendMessageReq)(rspSendMessageRsp,errer
白话NBA雄鹿即便不夺冠也值得尊敬,热火已经名存实亡文大白大家好,我是大白。欢迎来到我的白话频道。今天聊一下雄鹿和热火这组季后赛对决。昨天这场球,雄鹿出人意料地屠杀热火,把季后赛总比分强势打成2比0。对于这组对决,我先表达两个基本观白话NBA快船战胜太阳,隆多的到来让快船真正有实力抗衡湖人文大白大家好,我是大白。欢迎来到我的白话频道。今天说一下快船和太阳这个球,顺便也说一下湖人和热火这个球。昨天晚上,我去外地给人做辅导,我的一个客户是一个上市公司的CEO,他要去争取白话NBA篮网输热火错不在纳什,主要责任在欧文文大白大家好,我是大白。欢迎来到我的白话频道。今天说一下篮网和热火这个球。今天这个球,是一场很好看的绝杀球,制胜功臣就是阿德巴约。阿德巴约最近几场打得不是特别好,上一场输给森林狼,凛冽寒风中有什么保暖好看的衣物呢?从头到脚一整套实穿推荐随着天气一夜入冬,很多人都自己从短袖T恤换成了保暖棉服,朋友圈里甚至有人把羽绒衣和保暖睡衣都翻出来了。很多人又开始在各大APP上在找秋冬季服饰了吧,正好我最近新入手了几件衣服,穿起湿气,大概是南方人一生的敌人吧,我家的抗湿干燥电器小盘点大家都知道南方梅雨季节的可怕,但谁又能想到,浙江89月的天气居然是这样的。在89号台风的影响下,又热又闷。衣服晒不干鞋子要长毛被褥黏糊糊,潮湿的空气我感觉已经无法忍受了。面对这连天100万元起新款宝马X7上市取消无线充电功能10月22日,宝马旗下的新款X7车型正式上市,推出6款车型可选,官方指导价区间为100万元164。8万元。作为小改款车型,新车在外形方面并没有明确调整,前脸依然是家族化的双肾型进气虾拍档跨境电商功能大全,可定制开发贴牌虾拍档是一款专业服务于跨境电商Shopee平台的软件系统,功能强大且齐全,那么就为大家介绍虾拍档几个主要的功能吧!一一键采集,精品编辑全网主流平台提供支持,编辑功能更加优化商品编辑跨境电商ERP功能大全,免费注册虾拍档虾拍档ERP主要用那些功能,第一前端铺货,系统可以批量采集,批量上传产品,批量修改价格,批量建好产品属性模板,批量修改标题,描述,关键词,图片翻译,文本翻译,订单同步,订单发货,订跨境虾皮ERP系统功能介绍,管理店铺更省心今天介绍一款致力于东南亚市场的虾皮ERP辅助工具,上架产品更快,店铺管理更简单,更有货代仓储系统,贴单解决方案,存仓,商品管理,订单同步等,ERP支持独立数据私有化部署。此款软件在老主机换新颜酷冷至尊MB320L机箱带你进入光污染行列前言从我入手的第一台品牌电脑起,已经有15年了,之后又更新换代了笔记本,对电子产品来说,配置不错的电脑的使用寿命是一般在58年,之后会随时电子元件的老化和一些系统更新不支持等而被淘碰瓷克星双录出彩70迈记录仪魔方A400随着社会的发展,私家车也是越来越多,但难免不了遇到交通事故,当双方产生纠纷时,行车记录仪就显得尤为重要。如今不光有前视录像,现在还有后视录像停车录像,这些都能起到不小的作用。最近笔