Home avatar

蜷缩的蜗牛

专注云原生运维

Grafana Sqlite3 Migrations to PostgreSQL

准备环境

  • pgloader
  • PostgreSQL
  • Grafana

初始化数据库

启动 PostgreSQL 和 Grafana

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
version: '3.8'
services:
  postgres:
    image: postgres:15
    network_mode: host
    environment:
      POSTGRES_DB: grafana
      POSTGRES_USER: grafana
      POSTGRES_PASSWORD: grafana
    volumes:
      - postgres_data:/var/lib/postgresql/data
      - ./postgresql.conf:/etc/postgresql/postgresql.conf
    command: postgres -c config_file=/etc/postgresql/postgresql.conf
  grafana:
    image: grafana/grafana:12.0.2
    container_name: grafana
    network_mode: host
    environment:
      - GF_DATABASE_TYPE=postgres
      - GF_DATABASE_HOST=localhost:5432
      - GF_DATABASE_NAME=grafana
      - GF_DATABASE_USER=grafana
      - GF_DATABASE_PASSWORD=grafana
      - GF_DATABASE_SSL_MODE=disable
    depends_on:
      - postgres
volumes:
  postgres_data:
    driver: local
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72

# PostgreSQL 配置文件 - 针对 Grafana 高可用部署优化

# 连接设置
listen_addresses = '*'
port = 5432
max_connections = 200
superuser_reserved_connections = 3

# 内存设置
shared_buffers = 256MB
effective_cache_size = 1GB
maintenance_work_mem = 64MB
work_mem = 4MB

# WAL 设置(用于复制)
wal_level = replica
max_wal_senders = 3
max_replication_slots = 3
wal_keep_size = 1GB
archive_mode = on
archive_command = 'cp %p /var/lib/postgresql/archive/%f'

# 检查点设置
checkpoint_completion_target = 0.9
checkpoint_timeout = 15min
max_wal_size = 2GB
min_wal_size = 80MB

# 日志设置
logging_collector = on
log_directory = 'log'
log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log'
log_rotation_age = 1d
log_rotation_size = 100MB
log_min_duration_statement = 1000
log_line_prefix = '%t [%p]: [%l-1] user=%u,db=%d,app=%a,client=%h '
log_statement = 'ddl'
log_temp_files = 0

# 性能优化
random_page_cost = 1.1
effective_io_concurrency = 200
default_statistics_target = 100

# 安全设置
ssl = off


# 复制设置
hot_standby = on
hot_standby_feedback = on
max_standby_streaming_delay = 30s
wal_receiver_timeout = 60s

# 自动清理
autovacuum = on
autovacuum_max_workers = 3
autovacuum_naptime = 1min
autovacuum_vacuum_threshold = 50
autovacuum_analyze_threshold = 50

# 时区设置
timezone = 'UTC'
log_timezone = 'UTC'

# 区域设置
lc_messages = 'en_US.UTF-8'
lc_monetary = 'en_US.UTF-8'
lc_numeric = 'en_US.UTF-8'
lc_time = 'en_US.UTF-8'
default_text_search_config = 'pg_catalog.english'

导出 grafana 表结构

1
2
docker compose up -d
docker exec -ti postgres pg_dump --schema-only  -U grafana grafana > grafana-schema.sql

清理 postgres 数据库

停止 postgresgrafana,并删除 postgres 数据库

Karmada声明式配置详细指引

1. 作用与应用场景

Karmada 的 ResourceInterpreterCustomization 允许用户通过 Lua 脚本自定义多集群资源的状态聚合、保留、健康判定等逻辑,解决如 CRD 状态同步、混沌实验等多集群一致性与差异性场景。

Alloy 指标详解

Alloy 常用 Prometheus 指标详解

Alloy 作为现代日志采集与处理引擎,内置丰富的 Prometheus 指标,便于对采集链路、资源消耗、进程健康等进行全方位监控。本文详细解析 Alloy 典型监控指标,助力 K8s 日志链路运维和性能分析。

利用lima替换MacOS Docker Desktop

背景

Mac 本地空间有限,Docker Desktop 在运行时会预分配大量空间,导致 Mac 本地空间被占用。经常出现Mac 本地空间不足,需要清理 Mac 本地空间。 Lima 是一个轻量级的虚拟机管理工具,可以在 Mac 上运行 Linux 虚拟机,并且可以运行 Docker 容器并将Docker socket映射到 Mac 本地直接用Docker访问。

Kubernetes故障排查实战手册

Kubernetes故障排查实战手册

本文档适用于生产环境下Kubernetes集群常见故障的排查与优化,涵盖APIServer接口延时、etcd性能、Token失效、cacher超时、资源竞争等典型问题。建议结合实际监控与日志,按步骤定位和解决。 持续更新ing

0%