-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathsavedata
104 lines (77 loc) · 4.52 KB
/
savedata
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
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
在Promtail的配置文件中,可以使用正则表达式从文件路径中提取出文件名或其他信息,并把它们保存为标签或其他变量,供后续使用。这个功能可以通过使用`__path__`标签中的正则表达式来实现。
假设你的日志文件名的格式为`servicename_yyyymmdd.log`,并且你想要把servicename保存到一个变量中,同时建立一个job标签,并使用这个变量来作为该标签的值。那么可以在`__path__`标签中使用一个正则表达式来匹配文件名,并使用`$1`来在`labels`的定义中提取这个变量。例如:
```
scrape_configs:
- job_name: logs
static_configs:
- targets:
- localhost
labels:
__path__: "/path/to/logs/*/*/servicename_*.log"
job: "{servicename}"
```
在这个例子中,我们使用`$1`来提取`__path__`中的servicename,并把这个变量保存到标签`{servicename}`中。然后,在`job`标签的值中使用占位符`{}`,并将`{servicename}`作为参数来填充这个占位符,从而创建一个新的标签值,以便我们可以识别和查询不同的服务日志。
请注意,这里使用的是Prometheus的模板语法,可以在模板字符串中使用各种占位符来引用不同的变量和标签。在这个例子中,我们使用了`{}`占位符,如果需要更复杂的模板语法,可以参考Prometheus的文档。
对于Rqlite和Etcd这两个服务的ip信息的更改,我们需要修改它们的配置文件,将旧的ip地址替换成新的ip地址。通常来说,这些配置文件都存储在磁盘上,可以使用任何编辑器打开进行修改。下面以Etcd为例,介绍一下具体的操作步骤。
1. 使用命令行工具编辑Etcd的配置文件
使用Vi编辑器打开Etcd的配置文件:
```shell
sudo vi /etc/etcd/etcd.conf
```
在Vi中,使用命令`:%s/old_ip/new_ip/gc`来将旧的ip地址替换成新的ip地址。其中,`old_ip`是旧的ip地址,`new_ip`是新的ip地址,`g`表示全局查找和替换,`c`表示确认每次替换。
2. 重新启动Etcd服务
在完成配置文件的修改后,需要停止并重新启动Etcd服务,以便它们使用新的配置。
```shell
sudo systemctl stop etcd
sudo systemctl start etcd
```
对于Rqlite,操作方法类似,只需要找到Rqlite的配置文件路径,使用类似的命令进行修改即可。
对于迁移集群数据的问题,Etcd和Rqlite都提供了相应的迁移工具和命令。这些工具一般通过命令行来使用。下面以Etcd为例,介绍一下如何使用Etcd提供的数据迁移工具。
1. 在源集群中执行数据备份命令
在源集群中,使用`etcdctl backup`命令来备份Etcd的数据到一个指定的目录中。例如:
```shell
etcdctl --endpoints https://old_ip:2379 \
--ca-file /etc/etcd/ca.pem \
backup \
--data-dir /var/lib/etcd \
--backup-dir /etcd-backup
```
其中,`--endpoints`参数指定Etcd的API地址,`--ca-file`参数指定TLS证书,`--data-dir`参数指定Etcd的数据目录,`--backup-dir`参数指定备份目录。
2. 在新集群中执行数据恢复命令
在新集群中,使用`etcdctl restore`命令来从备份文件中恢复数据。例如:
```shell
etcdctl --endpoints https://new_ip:2379 \
--ca-file /etc/etcd/ca.pem \
snapshot restore /etcd-backup/snapshot.db \
--name etcd0 \
--initial-cluster etcd0=https://new_ip:2380
```
其中,`--endpoints`参数和`--ca-file`参数同样指定集群的地址和证书信息。`snapshot restore`命令指定要从哪个备份文件中恢复数据。`--name`参数指定该节点的名称,`--initial-cluster`参数指定新集群的成员节点和地址信息。
需要注意的是,Rqlite和Etcd的数据迁移操作较为复杂,建议在执行迁移操作之前仔细阅读官方文档,并进行必要的备份和恢复测试。
- job_name: 'zzx'
pipeline_stages:
- multiline:
firstline: "^[\\d-]+\\s{1}[\\d:,]+\\s{1}"
- regex:
expression: "^(?s)(?P<time>[\\d-]+\\s{1}[\\d:,]+) (?P<level>\\S+)\\s* (?P<content>.*)$"
- labels:
level:
static_configs:
- targets:
- 10.40.128.10
labels:
role: jobmanager
host: 10.40.128.10
__path__: /opt/FLINKAPP/*application*
- targets:
- 10.40.128.10
labels:
role: taskmanager
host: 10.40.128.10
__path__: /opt/FLINKAPP/*taskmanager*
relabel_configs:
- source_labels: [__path__]
regex: /opt/FLINKAPP/[\w+]--[\w+]-[\w+]-[\d+]-(.*)-[.*]
replacement: ${1}
target_label: product
action: replace