写点什么

2021Java 面试总结!再见笨重的 ELK

用户头像
Geek_f90455
关注
发布于: 2 小时前
  • 由于我们把 Loki 和 Promtail 的配置文件挂载到了宿主机上,在运行之前,需要先准备好这两个配置文件;

  • Loki 的配置文件/mydata/loki/loki.yml内容如下,使用的是默认配置(可以先不挂载配置文件运行 Loki 的 Docker 容器,然后从容器中拷贝出来即可);



auth_enabled: false


server:
http_listen_port: 3100


ingester:
lifecycler:
address: 127.0.0.1
ring:
kvstore:
store: inmemory
replication_factor: 1
final_sleep: 0s
chunk_idle_period: 1h # Any chunk not receiving new logs in this time will be flushed
max_chunk_age: 1h # All chunks will be flushed when they hit this age, default is 1h
chunk_target_size: 1048576 # Loki will attempt to build chunks up to 1.5MB, flushing first if chunk_idle_period or max_chunk_age is reached first
chunk_retain_period: 30s # Must be greater than index read cache TTL if using an index cache (Default index read cache TTL is 5m)
max_transfer_retries: 0 # Chunk transfers disabled


schema_config:
configs:
- from: 2020-10-24
store: boltdb-shipper
object_store: filesystem
schema: v11
index:
prefix: index_
period: 24h


storage_config:
boltdb_shipper:
active_index_directory: /loki/boltdb-shipper-active
cache_location: /loki/boltdb-shipper-cache
cache_ttl: 24h # Can be increased for faster performance over longer query periods, uses more disk space
shared_store: filesystem
filesystem:
directory: /loki/chunks


compactor:
working_directory: /loki/boltdb-shipper-compactor
shared_store: filesystem


limits_config:
reject_old_samples: true
reject_old_samples_max_age: 168h


chunk_store_config:
max_look_back_period: 0s


table_manager:
retention_deletes_enabled: false
retention_period: 0s


ruler:
storage:
type: local
local:
directory: /loki/rules
rule_path: /loki/rules-temp
alertmanager_url: http://localhost:9093
ring:
kvstore:
store: inmemory
enable_api: true
复制代码
复制代码


  • Promtail 的配置文件/mydata/loki/promtail.yml内容如下,使用的也是默认配置,这里的clients.url需要注意下,由于我们使用的是docker-compose部署,所以可以将服务名称loki作为域名来访问 Loki 服务;



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
复制代码
复制代码


  • 运行docker-compose.yml脚本安装所有服务,使用如下命令即可;



docker-compose up -d
复制代码
复制代码


  • 运行成功后,可以使用docker ps |grep lpg命令查看服务状态。



[root@local-linux lpg]# docker ps |grep lpg
64761b407423 grafana/loki "/usr/bin/loki -conf…" 3 minutes ago Up 3 minutes 0.0.0.0:3100->3100/tcp lpg-loki
67f0f0912971 grafana/grafana "/run.sh" 3 minutes ago Up 3 minutes 0.0.0.0:3000->3000/tcp lpg-grafana
f2d78eb188d1 grafana/promtail "/usr/bin/promtail -…" 3 minutes ago Up 3 minutes lpg-promtail
复制代码
复制代码


使用


--


接下来我们将使用 LPG 日志收集系统来收集 SpringBoot 应用的日志,SpringBoot 应用基本不用做特殊配置。


  • 首先创建一个 SpringBoot 应用,修改配置文件application.yml,将日志输出到/var/logs目录下;



spring:
application:
name: mall-tiny-loki


logging:
path: /var/logs
level:
com.macro.mall.tiny: debug
复制代码
复制代码


  • 使用如下命令运行 SpringBoot 应用,并把日志目录挂载到宿主机上,这样 Promtail 就可以收集到日志了;



docker run -p 8088:8088 --name mall-tiny-loki \
-v /etc/localtime:/etc/localtime \
-v /mydata/app/mall-tiny-loki/logs:/var/logs \

### 最后
由于篇幅有限,这里就不一一罗列了,**20道常见面试题(含答案)+21条MySQL性能调优经验**小编已整理成Word文档或PDF文档,**[点击这里免费下载](https://gitee.com/vip204888/java-p7)**
![MySQL全家桶笔记](https://static001.geekbang.org/infoq/da/da51038694e1dde5e7a45c28dadd0f12.png)
**还有更多面试复习笔记分享如下**
![Java架构专题面试复习](https://static001.geekbang.org/infoq/df/df4e4f645c7358c43ef1572a4363f3b0.png)

复制代码


用户头像

Geek_f90455

关注

还未添加个人签名 2021.07.06 加入

还未添加个人简介

评论

发布
暂无评论
2021Java面试总结!再见笨重的ELK