Loki配置

Grafana Loki 配置参数 |Grafana Loki 文档

Loki 的配置文件

  • YAML格式,默认为loki.yaml文件
  • 可在启动Loki server时由“-config.file”选项指定
  • 关键的配置字段
    • server:指定监听的地址、端口等
    • common:公共配置段
    • distributor:Distributor相关的配置
    • querier:Querier的配置段
    • query_range:配置Loki query-frontend上切分和缓存查询的方式
    • ruler:Ruler相关的配置
    • ingester:Ingester相关的配置
    • client_config:客户端配置段
    • schema_config:Chunk索引方案及存储位置
    • storage_config:存储配置段
    • chunk_store_config:chunk的缓存方式及存入对象存储前的缓存时长
    • memberlist:成员列表,至少应该存在一个成员
    • compactor:Compactor相关的配置
    • limits_config:全局及租户限额相关的配置
    • query_scheduler:查询调度器配置

server部分

# Loki监听的地址,也可以通过命令行选项“-server.http-listen-address”指定
[http_listen_address: <string> | default = ""]
# Loki Server 监听的端口,也可通过命令行选项“-server.http-listen-port”指定
[http_listen_port: <int> | default = 3100]
# 最大并发连接数, 0表示不限制,也可通过命令行选项“-server.http-conn-limit”指定
[http_listen_conn_limit: <int> | default = 0]
# 日志格式,仅支持logfmt和json两种,命令行选项为“-log.format”
[log_format: <string> | default = "logfmt"]
#日志级别,可用值有debug、info、warn和error,命令行选项为“-log.level”
[log_level: <string> | default = "info"]
# gRPC server监听地地下,命令行选项为“-server.grpc-listen-address”
[grpc_listen_address: <string> | default = ""]
# gRPC server 监听的端口,命令行选项为“-server.grpc-listen-port”
[grpc_listen_port: <int> | default = 9095]
# gRPC server的最大并发连接数,命令行选项为“-server.grpc-conn-limit”
[grpc_listen_conn_limit: <int> | default = 0]

common部分

# common配置段的可用参数
[path_prefix: <string> | default = ""] # Loki API path的路径前缀,例如“/loki”,默认为空
[replication_factor: <int>] # 复制因子
[compactor_address: <string> | default = ""] # compactor的访问入口,通常要关联至backend组之上,格式为http://host:port
[compactor_grpc_address: <string> | default = ""] # compactor的grpc入口
storage: # 存储配置段,配置要使用的存储后端,例如s3、gcs、azure、filesystem等存储服务
  ...
  filesystem: # 使用filesystem存储时的专用配置参数
    [chunks_directory: <string> | default = ""] # chunks文件的存储目录
    [rules_directory: <string> | default = ""] # rules文件的存储目录
ring:
  kvstore: # 配置使用的KV存储,支持consul、etcd、inmemory、memberlist和multi几种
    [store: <string> | default = "consul"]
    ...
    [tokens_file_path: <string> | default = ""] # token的存储路径
    [num_tokens: <int> | default = 128] # ring上的token的数量
    [replication_factor: <int> | default = 3] # 复制因子

ingester部分

# 配置生命周期管理器
lifecycler:
  ring:
    kvstore: # 配置使用的KV存储,支持consul、etcd、inmemory、memberlist和multi几种
      [store: <string> | default = "consul"]
      ...
    [replication_factor: <int> | default = 3] # ingester的复制因子
    [zone_awareness_enabled: <boolean> | default = false] # 是否在复制功能上启动区域感知功能
    [join_after: <duration> | default = 0s] # 等待其它member加进来的时长
    [observe_period: <duration> | default = 0s] # 为解决冲突而等待token时长

[chunk_idle_period: <duration> | default = 30m] # 达到存储上限前,未更新的chunk可存储于内存中的时长
[chunk_retain_period: <duration> | default = 0s] # chunk被刷写后,仍可驻留在内存中的时长
[chunk_block_size: <int> | default = 262144] # 未压缩状态的chunk存储上限,单位是字节
[chunk_target_size: <int> | default = 1572864] # 压缩状态的chunk存储上限,单位是字节
[max_chunk_age: <duration> | default = 2h] # chunk中可存储的日志时长跨度
[chunk_encoding: <string> | default = "gzip"] # chunk的压缩算法,支持none, gzip, lz4-64k, snappy, lz4-256k, lz4-1M, lz4, flate和zstd
[flush_op_timeout: <duration> | default = 10m] # 等待flush的超时时长
[concurrent_flushes: <int> | default = 32] # 可并行执行flush的chunk数量

[sync_period: <duration> | default = 1h] # 执行chunk同步的时长,这可能会触发chunk滚动,但chunk空间利用率较低时,也可能不执行同步操作
[sync_min_utilization: <float> | default = 0.1] # 执行chunk同步时,其利用率的最低要求,低于该利用率的chunk不会执行同步操作

wal: # WAL (Write Ahead Log)机制,将接收到的日志存储于本地文件系统,以支持能够在进程崩溃时完成数据恢复
  [enabled: <boolean> | default = true]
  [dir: <string> | default = "wal"]

ruler部分

[enable_api: <boolean> | default = true] # 是否启用ruler的API
evaluation:
  [mode: <string> | default = "local"] # ruler进行规则评估的模式,支持local和remote两种
  query_frontend:
    [address: <string> | default = ""] # Query Frontend的地址,必须是一个DNS地址,形如“dns:///”

[rule_path: <string> | default = "/rules"] # 保存临时规则文件的路径
[alertmanager_url: <string> | default = ""] # AlertManager进程的地址

[enable_sharding: <boolean> | default = false] # 是否基于ring backend,将评估规则的操作分布于多个ruler上执行
[sharding_algo: <string> | default = "by-group"] # 将rule和group进行切片的算法,支持两种取值by-rule和by-group

ring:
  kvstore: # 配置使用的KV存储,支持consul、etcd、inmemory、memberlist和multi几种
    [store: <string> | default = "consul"]
    ...

[enabled_tenants: <string> | default = ""] # 当前ruler实例可为哪些tenant进行rule评估,默认为所有

wal:
  [dir: <string> | default = "ruler-wal"] # 用于保存各tenant的WAL文件的目录,每个tenant在该目录下使用一个专用的子目录
  [truncate_frequency: <duration> | default = 1h] # 执行WAL truncation的频率
  [min_age: <duration> | default = 5m] # 样本的最小存活时长,低于该时长的样本不能执行truncate
  [max_age: <duration> | default = 4h] # 样本的最大存活时长

remote_write: # 定义规则评估的结果样本的存储位置
  [enabled: <boolean> | default = false] # 是否启用样本的远程存储,若启用,其目标地址应该是一个指标数据的时间序列存储服务,例如Prometheus
  [clients: <map of string to RemoteWriteConfig>]

memberlist部分

[join_members: <list> | default = []] #集群中的节点列表 可以是主机ip,也可以是主机+端口
[node_name: <string> | default = ""] # memberlist集群的节点名称列表
[randomize_node_name: <boolean> | default = true] # 是否为节点名称添加随机后缀
[bind_port: <int> | default = 7946] # gossip协议监听的端口
[bind_addr: <list of strings> | default = []] # gossip协议监听地IP地址,默认为0.0.0.0

[gossip_interval: <duration> | default = 200ms] # 发送gossip的时间间隔
[gossip_to_dead_nodes_time: <duration> | default = 30s] # 向故障节点发送gossip的时长
[dead_node_reclaim_time: <duration> | default = 0s] # 故障节点名称可由一个新地址注册使用的等待时长,0表示禁用
[left_ingesters_timeout: <duration> | default = 5m] # 将LEFT状态的Ingester保存在ring中的时长

limits_config部分

[ingestion_rate_mb: <float> | default = 4] # 每用户每秒可抓取的日志样本的大小(平均速率),单位为MB
[ingestion_burst_size_mb: <float> | default = 6] #每用户每秒可抓取的日志样本的峰值大小(峰值速率),单位为MB
[reject_old_samples: <boolean> | default = true] # 是否拒绝接收较旧的样本
[reject_old_samples_max_age: <duration> | default = 1w] # 新旧样本的时间间隔点,默认为1周前的即为旧样本
[max_line_size: <int> | default = 256KB] # 样本行大小的上限
[max_line_size_truncate: <boolean> | default = false] # 是否自动修剪超时样本行上限的行
[max_streams_per_user: <int> | default = 0] # 每用户可持有的日志流数量上限
[per_stream_rate_limit: <int> | default = 3MB] # 每个日志流每秒钟的速率上限
[per_stream_rate_limit_burst: <int> | default = 15MB] # 每个日志流的海秒钟的峰值速率上限
[max_query_parallelism: <int> | default = 32] # 最大查询并发数
[max_cache_freshness_per_query: <duration> | default = 10m] # 每租户可缓存的查询结果时长上限
[max_entries_limit_per_query: <int> | default = 5000] # 每个查询允许返回的日志行数上限
[max_query_range: <duration> | default = 0s] # 基于时间范围查询时,所允许的时间范围上限

querier部分

[query_store_only: <boolean> | default = false] # 是否只从存储中进行查询,而不查询Ingester
[query_ingester_only: <boolean> | default = false] # 是否只从Ingester中查询,而不查询存储
[query_ingesters_within: <duration> | default = 3h] # 发往Ingester的查询的时长上限,即过去多长时间范围内的查询可发给Ingester
[per_request_limits_enabled: <boolean> | default = false]
[max_concurrent: <int> | default = 4] # querier支持的并发查询数上限

frontend部分

# frontend配置段的可用配置参数
[log_queries_longer_than: <duration> | default = 0s] # 查询执行时长超过多久时将被记入日志,0表示禁用,负数表示记录查询
[compress_responses: <boolean> | default = true] # 是否压缩HTTP响应报文
[max_outstanding_per_tenant: <int> | default = 2048] # 每个tenant可在每个frontend上支持的独立请求数量上限

query_range部分

# query_range配置段的可用配置参数,用于配置query frontend切分和缓存查询的方式
[cache_results: <boolean> | default = false] # 是否可缓存查询结果
[max_retries: <int> | default = 5] # 每个查询请求的最大重试次数
[parallelise_shardable_queries: <boolean> | default = true] # 是否可并行执行切片的查询,仅chunk storage engine支持该功能
[cache_index_stats_results: <boolean> | default = true] # 是否缓存索引统计的结果
[cache_instant_metric_results: <boolean> | default = false] # 是否缓存即时向量的查询结果
[instant_metric_query_split_align: <boolean> | default = false] # 是否合并切分的即时向量指标查询结果
[cache_label_results: <boolean> | default = true] # 是否缓存标签查询的结果
posted @   厚礼蝎  阅读(685)  评论(0编辑  收藏  举报
阅读排行:
· 清华大学推出第四讲使用 DeepSeek + DeepResearch 让科研像聊天一样简单!
· 推荐几款开源且免费的 .NET MAUI 组件库
· 实操Deepseek接入个人知识库
· 易语言 —— 开山篇
· Trae初体验
点击右上角即可分享
微信分享提示