promtail收集标准输出日志
![promtail收集标准输出日志](http://img.jiangsulong.com/220428/150F45F1-0.jpg)
文章插图
Loki架构:Loki日志系统组成:
- promtail:负责收集日志并将其发送给Loki
- loki:主服务器 , 服务存储日志和处理查询
- Grafana:用于查询和现实日志
数据卷
/etc/loki/local-config.yaml
配置文件loki-config
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: 5m
chunk_retain_period: 30s
max_transfer_retries: 1
schema_config:
configs:
- from: 2020-01-02
store: boltdb
object_store: filesystem
schema: v9
index:
prefix: index_
period: 168h
【promtail收集标准输出日志】chunks:
prefix: chunk_
period: 168h
row_shards: 16
storage_config:
boltdb:
directory: /loki/data/index
filesystem:
directory: /loki/data/chunks
limits_config:
ingestion_rate_mb: 10
enforce_metric_name: false
reject_old_samples: false
reject_old_samples_max_age: 168h
chunk_store_config:
max_look_back_period: 0s
table_manager:
chunk_tables_provisioning:
inactive_read_throughput: 0
inactive_write_throughput: 0
provisioned_read_throughput: 0
provisioned_write_throughput: 0
index_tables_provisioning:
inactive_read_throughput: 0
inactive_write_throughput: 0
provisioned_read_throughput: 0
provisioned_write_throughput: 0
retention_deletes_enabled: false
retention_period: 336h
promtailpromtail搭建采用导入yaml文件方式进行搭建
注意事项:搭建时注意namespace,镜像 , 以及loki服务器地址
promtail采用与promtheus相同的发现机制 , 支持static与kubernetes发现 。romtail可以利用kubernetes API将Pod作为目标发现 , 但是它只能从promtail运行在同一节点上的Pod中读取日志文件 。Promtail _host_在每个目标上查找label , 并验证它是否设置于promtail有相同的主机名 , ($HOSTNAME如果未设置环境变量 , 则使用或由内核报告的主机名)
这意味着任何时候使用kubernetes服务发现 , 都必须有一个从一下位置relabel_config创建中间标签_host_的
_meta_kubernetes_pod_node_name 。
- source_labels:promtail文件这里列举案例进行说明
- __meta_kubernetes_pod_node_name
target_label: __host__
kubernetes_sd_configs: #启动kubernetes发现机制
- role: pod
relabel_configs: #重新定义relabel
- action: replace
source_labels:
-
__meta_kubernetes_pod_host_ip #匹配该kubernetes内置标签
target_label: pod_host_ip #将kubernetes内置标签换为pod_host_ip
# 如果有__address__;自定义标签可以自行添加
__meta_kubernetes_service_annotation_prometheus_io_port , 且正则匹配([^:]+)(?::d+)?;(d+) , 则将__address__修改为$1:$2指定的值
- source_labels: [__address__, __meta_kubernetes_service_annotation_prometheus_io_port]
separator: ;
regex: ([^:]+)(?::d+)?;(d+)
target_label: __address__
replacement: $1:$2
action: replace
#action有replace、drop、labelmap三种动作 , labelmap为映射label 。relabel_configs只会匹配配置中出现的 , 没有出现的则不匹配 。
推荐阅读
- 渗透测试二层主动信息收集
- 智能车联开放联盟,手机和汽车连接的标准?
- Java主要的5个标准注解如何使用?
- 供暖温度标准是多少?
- 力量训练怎么呼吸
- 中国电信科普:晚上睡觉无需关 Wi-Fi 路由器,辐射值远低于标准
- 杠铃卧推标准动作是什么
- 老人健康饮食新标准
- 七岁男孩的生殖器标准
- 如何鉴别和收集汉代漆器的特征