Promtail + Loki + Grafana 构建日志监控告警系统(一)

一、前言
 
日志监控告警系统,我所了解的较为流行的有两种技术栈。
一种是Elasticsearch 、 Logstash和Kibana核心套件构成,简称ELK。另外一种是Promtail + Loki + Grafana核心组件构成,简称PLG。其中,ELK的技术栈方案,久经考验,很多大公司的团队在使用。相比之下,PLG开源不久,是一股新兴的力量,目前较多的小团队在使用。
经过衡量和思考,考虑到Loki轻量(ELK很多复杂的功能项目上没有使用需求)、低成本(容易实现)、操作简单等特性,以及计划使用prometheus体系对监控进行改造,我采用了第二种技术栈方案。
其实也有一丝我对Golang语言的偏爱的原因。
 
二、组件介绍
 
promtail: 日志收集的代理,安装部署在需要收集和分析日志的服务器,promtail会将日志发给Loki服务。
Loki: 主服务器,负责存储日志和处理查询。
Grafana:提供web管理界面,数据展示功能。
 
三、实施
 
本篇文章着重讲一下快速上手,对Loki有一个初体验。
 
为了便于部署,考虑使用docker镜像实施。首先安装一个docker服务,再把设置国内的镜像加速地址。
 
编辑/etc/docker/daemon.json配置文件。我使用了网易的镜像源:
 
{
    "registry-mirrors": ["http://hub-mirror.c.163.com"]
}
 
从镜像源拉取镜像文件:
 
docker pull grafana/grafana
docker pull grafana/loki
docker pull grafana/promtail
 
启动服务:
Grafana:
docker run -d --name=grafana -p 3000:3000 grafana/grafana
 
Loki:
我没有使用定制的配置文件,如果想要自定义配置文件,可参考Loki的Overview( https://hub.docker.com/r/grafana/loki )介绍。
docker run -d --name=loki -p 3100:3100 grafana/loki
 
P romtail:
主要是配置文件、一些label的设置,初次尝试可能相对麻烦一些,熟悉了就比较容易,
我主要是监控freeswitch服务,以此进行配置,编辑一个promtail-docker-config.yaml文件,写入如下内容:
 
server:
  http_listen_port: 9080
  grpc_listen_port: 0
 
 
positions:
  filename: /tmp/positions.yaml
 
 
client:
  url: http://localhost:3100/loki/api/v1/push
 
 
scrape_configs:
- job_name: voip_service
   pipeline_stages:
   - docker:
   static_configs:
   - targets:
      - localhost
     labels:
      job: freeswitch_service
      host: localhost
      __path__: /usr/local/freeswitch/log/freeswitch.log*
 
 
编辑一个docker-compose.yaml文件,写入内容:
version: "3"
 
services:
  promtail:
    image: grafana/promtail
    container_name: promtail
    network_mode: host
    volumes:
      - $PWD:/etc/promtail
      - /usr/local/freeswitch/log:/usr/local/freeswitch/log
    command:
      -config.file=/etc/promtail/promtail-docker-config.yaml
 
 
执行启动命令:
./docker-compose up -d
 
以上步骤完成,那么Loki日志监控告警系统以及搭建完成了!
 
我们看一下容器,所有服务都启起来了。
 
 
下面在浏览器上打开grafana的界面,即本地的3100端口。手动添加一下数据源,数据源即Loki的地址:3000,保存完成并测试连接是否成功,这一步就不赘述了。
打开Explore窗口,选择Loki的数据源,Log lebels里面已经有freeswitch的相关选项了。
 
 
 
简单使用一下选择器,过滤一下某一个通话的日志内容。
 
 
大功告成,我们选择的这个通话的日志内容已经展示出来了。
后续,再展开讲述如何丰富我们的标签,更好的使用选择器和筛选器。
 
  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值