泉州公司网站建设,建站平台做的网站google,免费网站建设itcask,欧派全屋整装价格表一、简介
日志监控告警系统#xff0c;较为主流的是ELK#xff08;Elasticsearch 、 Logstash和Kibana核心套件构成#xff09;#xff0c;虽然优点是功能丰富#xff0c;允许复杂的操作。但是#xff0c;这些方案往往规模复杂#xff0c;资源占用高#xff0c;操作苦…一、简介
日志监控告警系统较为主流的是ELKElasticsearch 、 Logstash和Kibana核心套件构成虽然优点是功能丰富允许复杂的操作。但是这些方案往往规模复杂资源占用高操作苦难。很多功能往往用不上大多数查询只关注一定时间范围和一些简单的参数如host、service等使用这些解决方案就有点杀鸡用牛刀的感觉了。
所以寻找更轻量级的日志监控系统所以也就有了EFKelasticsearchkibanafilebeat
搭建参考EFK轻量级日志系统搭建
另外一种是Promtail Loki Grafana核心组件构成简称PLG这种是更轻量级的配置要求也不高功能简单但是目的明确就是日志采集。
Loki的架构也非常简单使用了和prometheus一样的标签来作为索引Loki 是受Prometheus启发的水平可扩展、高可用、多租户日志聚合系统。
组件 promtail 日志收集的代理安装部署在需要收集和分析日志的服务器promtail会将日志发给Loki服务。 Loki 主服务器负责存储日志和处理查询。 Grafana提供web管理界面数据展示功能。
二、服务器安装及配置
1.基础安装启动
安装方式大概有这么几种二进制安装yum安装、docker安装、helm安装。 因为是服务器端我这里用docker安装简单方便。
官方网站也提供了docker-compose文件供下载。 参考地址
#下载docker-compose文件
wget https://raw.githubusercontent.com/grafana/loki/v2.5.0/production/docker-compose.yaml -O docker-compose.yaml下载的docker-compose文件如下也是最简单基本的。
version: 3networks:loki:services:loki:image: grafana/loki:2.5.0ports:- 3100:3100command: -config.file/etc/loki/local-config.yamlnetworks:- lokipromtail:image: grafana/promtail:2.5.0volumes:- /var/log:/var/logcommand: -config.file/etc/promtail/config.ymlnetworks:- lokigrafana:image: grafana/grafana:latestports:- 3000:3000networks:- 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: 3networks:loki:services:loki:image: grafana/loki:2.5.0restart: unless-stoppedports:- 3100:3100volumes:- ./config/loki/:/etc/loki/command: -config.file/etc/loki/local-config.yamlnetworks:- lokipromtail:image: grafana/promtail:2.5.0volumes:- /var/log:/var/log- ./config/promtail/:/etc/promtail/command: -config.file/etc/promtail/config.ymlnetworks:- lokigrafana:image: grafana/grafana-enterprise:8.5.2-ubunturestart: unless-stoppedports:- 3030:3000volumes:- ./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: falseserver:http_listen_port: 3100common:path_prefix: /lokistorage:filesystem:chunks_directory: /loki/chunksrules_directory: /loki/rulesreplication_factor: 1ring:kvstore:store: inmemoryschema_config:configs:- from: 2020-10-24store: boltdb-shipperobject_store: filesystemschema: v11index:prefix: index_period: 24hruler: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 whats 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: falsepromtail的config.yml配置文件
server:http_listen_port: 9080grpc_listen_port: 0positions:filename: /tmp/positions.yamlclients:- url: http://loki:3100/loki/api/v1/pushscrape_configs:
- job_name: systemstatic_configs:- targets:- localhostlabels:job: varlogs__path__: /var/log/*loggrafana的配置文件太长就不复制了自己拷贝出来即可。 拷贝完配置文件夹后更改完后直接启动即可。
sudo docker-compose up -d浏览器输入ip端口即可访问我这里配置为ip:3030端口访问。
3.grafana的反向代理nginx配置域名访问
grafana配置完后默认是IP:端口的方式访问如果需要域名访问则需要用到nginx方向代理。
官方文档配置参考官网地址
需要更改的配置文件为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 truegrafana配置完成下面就是配置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如下图 原因是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。
rootweb:/loki# ls
config.yaml promtail-linux-amd64还需要创建一个config.yaml文件用于启动promtail。
sudo vim config.yaml如果有多路径及目录则添加多个job_name即可。 注意clients中的url为你服务器的地址。
server:http_listen_port: 9080grpc_listen_port: 0positions:filename: /tmp/positions.yamlclients:- url: http://192.168.152.100:3100/loki/api/v1/push#服务器端loki的IP地址scrape_configs:
- job_name: webstatic_configs:- targets:- localhostlabels:job: web-varlogs__path__: /var/log/*log- job_name: webstatic_configs:- targets:- localhostlabels:job: nginx-logs__path__: /home/ubuntu/laradock/logs/nginx/*log- job_name: webstatic_configs:- targets:- localhostlabels: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 21
#不需要日志输入直接为空。
nohup ./promtail-linux-amd64 -config.file./config.yaml /dev/null 21 启动后用ps可查看进程是否启动
rootweb:/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 --colorauto promtail四、grafana使用添加loki
在浏览器输入域名访问默认账号密码为admin/admin
然后在data sources点击添加add data source选择loki即可。 然后添加服务器loki的地址即可地址为IP:3100loki的默认端口为3100。 添加完成没有报错说明添加成功。 在explore在 log browser中选择即可查看刚才添加的日志这里以job分类。 选择一个show logs即可查看右上角为实时流查看日志。 这里loki、promtail、Grafana日志系统就配置完了。