轻量级日志收集比ELK好用-Loki

日志分析

微服务产生log,promtail搜集Log,Loki保存log,grafana展示log。

Promtail

负责搜集服务器的日志,部署到每台服务器上。

//promtail 启动后负责的监听端口 server:   http_listen_port: 9080   grpc_listen_port: 0  //position 保存收集log日志的文件目录和行数 positions:   filename: /tmp/positions.yaml  //promtail 将收集到的日志推送给loki的路径 clients:   - url: http://192.168.1.1:3100/loki/api/v1/push  //收集日志的配置 scrape_configs: - job_name: jobName //配置job名字,可以搜索的时候使用   static_configs:   - targets:       - localhost                                                                                      labels:       job: jobName    //labels job 名字       __path__: /data/logs/***.log //日志文件位置

部署方式采用docker-compose

docker-compose.yml

version: "3" networks:   loki: services:   promtail:     image: grafana/promtail:2.4.1     volumes:       - /data/logs:/data/logs       - /data/app/monitor:/etc/promtail     command: -config.file=/etc/promtail/config.yml     restart: always     networks:       - loki

Loki

负责保存收集上来的日志,可部署单独一台服务器。也可以部署与grafana一台服务器

//开启认证 auth_enabled: false //loki服务监听端口配置 server:   http_listen_port: 3100 common:   path_prefix: /loki                     //定义loki保存路径前缀   storage:     filesystem:       chunks_directory: /loki/chunks     //用于保存日志文件路径       rules_directory: /loki/rules      // 保存日志规则       replication_factor: 1									//备份系数   ring:     instance_addr: 127.0.0.1     kvstore:       store: inmemory //配置文件系统 schema_config:   configs:     - from: 2020-10-24       store: boltdb-shipper       object_store: filesystem       schema: v11       index:         prefix: index_         period: 24h //配置保存周期 talbe_manager:   retention_deletes_enabled: true   retention_period: 48h //告警规则 ruler:   alertmanager_url: http://localhost:9093

部署方式采用docker-compose

version: "3" services:   loki:     image: grafana/loki:2.4.1     command: -config.file=/etc/loki/local-config.yaml     restart: always     network_mode: host     volumes:      - "/loki:/etc/loki"

Grafana

负责数据展示

(1)先配置数据源 将loki的url配置完成

(2)查询数据

先选择explore,选择loki

在log browser:填写查询条件{job="dpc"} 按住 shift+enter 即可查询所有条件

(3)查询语法

按job查询

{job="name"} 

按条件查询: 查询job等于“name”,在name的job中含有“condition”的日志

{job="name"} |="condition"

按多条件查询: 查询job等于“name”,在name的job中含有 “condition” 和 “condition2”

{job="name"} |="condition" |= "condition2"

版权声明:

作者: freeclashnode

链接: https://www.freeclashnode.com/news/article-2178.htm

来源: FreeClashNode

文章版权归作者所有,未经允许请勿转载。

免费节点实时更新

热门文章

最新文章

归档