前言:
日志监控告警系统,较为流行的有两种技术栈。
一种是Elasticsearch 、 Logstash和Kibana核心套件构成,简称ELK。另外一种是Promtail + Loki + Grafana核心组件构成,简称PLG。
其中,ELK的技术栈方案,久经考验,很多大公司的团队在使用。相比之下,PLG开源不久,是一股新兴的力量,目前较多的小团队在使用。
经过衡量和思考,考虑到Loki轻量(ELK很多复杂的功能项目上没有使用需求)、低成本(容易实现)、操作简单等特性,以及计划使用prometheus体系对监控进行改造,我采用了第二种技术栈方案。
组件:
promtail: 日志收集的代理,安装部署在需要收集和分析日志的服务器,promtail会将日志发给Loki服务。
Loki: 主服务器,负责存储日志和处理查询。
Grafana:提供web管理界面,数据展示功能。
部署:
安装docker:
yum update -y
#安装国内阿里源
wget -P /etc/yum.repos.d/ http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum install docker-ce -y
#docker -v 查看docker版本
systemctl start docker #启动
systemctl enable docker #开机自启
##########################
安装docker-compose:
yum install epel-release -y
yum install -y python-pip
pip install docker-compose #报错
pip install --upgrade pip
pip install docker-compose
docker-compose -v
######################################
#docker镜像地址选择版本下载:https://hub.docker.com/r/grafana/promtail/tags
1、拉取镜像文件:
- docker pull grafana/loki:master
- docker pull grafana/grafana:master
###或者导入镜像 docker load <镜像文件
创建loki配置文件:(配置文件放在/etc)
vim /etc/loki/local-config.yaml
| auth_enabled: false server: ingester: schema_config: storage_config: filesystem: limits_config: #chunk_store_config: |
2、编辑docker-compose文件启动Loki/grafana:
vim docker-compose.yml #注意后面每行有个空格
| version: "3" services: loki: image: grafana/loki:master container_name: loki restart: always ports: - "3100:3100" command: -config.file=/etc/loki/local-config.yaml #配置文件存放路径 grafana: image: grafana/grafana:master container_name: grafana restart: always ports: - "3000:3000" |
docker-compose up -d #运行启动loki/grafana
docker ps -a #查看容器是否正常启动
3、运行promtail
下载 promtail (解压为执行文件)
curl -O -L "https://github.com/grafana/loki/releases/download/v1.5.0/promtail-linux-amd64.zip"
unzip -q promtail-linux-amd64.zip
### 创建 promtail 配置文件
| vim promtail-local-config.yaml
positions: clients: scrape_configs: |
nohup /software/promtail/promtail-linux-amd64 -config.file=/software/promtail/promtail-local-config.yaml >>./promtail.log 2>&1 & #路径根据自己配置的实际路径
##########容器端口正常,浏览器输入IP+端口,登录grafana页面,默认密码admin+admin(第二次为修改密码)
###################################### Welcome to Grafana ##################
在设置-->数据源列表中选择Loki,配置 Loki 源地址:
源地址配置http://loki:3100即可,保存。
保存完成后,切换到 grafana 左侧区域的Explore,即可进入到Loki的页面,点击Log labels就可以把当前系统采集的日志标签给显示出来,可以根据这些标签进行日志的过滤查询: