journald
이는 Loki 인스턴스에 대한 로그 항목을 수집하기 위해 다양한 호스트에서 Promtail 스크래핑 구성의 일부입니다 .
- job_name: journald
journal:
labels:
job: journald
relabel_configs:
- source_labels:
- __journal__systemd_unit
target_label: unit
pipeline_stages:
- match:
selector: '{unit=~"session-\\d+\\.scope"}'
stages:
- regex:
source: unit
expression: "^session-(?P<session_id>\\d+)\\.scope$"
- template:
source: message
template: "id={{ .session_id }} {{ .Entry }}"
- output:
source: message
- labels:
unit: session.scope
목표는 등과 같은 레이블로 캡처된 모든 항목에 공통 레이블을 다시 unit
지정 하고 처음에 할당된 레이블에서 추출된 항목을 항목 텍스트 앞에 추가하는 것입니다. 접두사를 추가하는 후자의 측면이 작동하므로 대부분의 구성이 작동하고 있음을 의미하지만 정의된 마지막 단계인 정적 리터럴을 레이블에 할당하는 것은 작동하지 않습니다. 올바르게 선택되고 변경된 모든 항목에는 여전히 고유한 라벨 등이 있습니다 .session-1.scope
session-10.scope
session.scope
session_id
unit
session-1.scope
session-10.scope
마지막 부분이 예상대로 작동하도록 하기 위해 내가 무엇을 놓치고 있는지 힌트를 줄 수 있는 사람이 있나요?
답변1
커뮤니티 포럼의 지원을 통해 저는 다음 솔루션을 찾았습니다.
pipeline_stages:
- match:
selector: '{service=~"session-\\d+\\.scope"}'
stages:
- regex:
source: service
expression: "^session-(?P<session_id>\\d+)\\.scope$"
- template:
source: message
template: "{% raw %}id={{ .session_id }} {{ .Entry }}{% endraw %}"
- output:
source: message
- template:
source: label
template: session.scope
- labels:
service: label
@jnauska가 언급한 작업을 수행하고 있습니다.
답변2
레이블 섹션에서 일부 실제 값을 참조했지만 session.scope
존재하지 않으므로 값을 변경할 수 없습니다.
템플릿을 사용하여 다음과 같은 값을 생성할 수 있습니다.
- template:
source: session.scope
template: 'session.scope'
- labels:
unit: session.scope