인프런 커뮤니티 질문&답변

Hyeonghwan Kwon님의 프로필 이미지
Hyeonghwan Kwon

작성한 질문수

실습으로 배우는 프로메테우스 - {{ x86-64, arm64 }}

8.2.헬름으로 프로메테우스 오퍼레이터와 관련된 익스포터들을 한번에 구성하기

prometheus stack이 설치가 안되네요..

해결된 질문

작성

·

713

0

 

prometheus stack 의 Status가 crashLoopBackOff에서 fail처리 되네요..

 

describe는 crash난 상태로밖에 안보여서

logs로 봤는데요.

n="(version=2.37.0, branch=HEAD, revision=b41e0750abf5cc18d8233161560731de05199330)"
ts=2023-09-11T14:52:47.219Z caller=main.go:540 level=info build_context="(go=go1.18.4, user=root@0ebb6827e27f, date=20220714-15:13:18)"
ts=2023-09-11T14:52:47.219Z caller=main.go:541 level=info host_details="(Linux 3.10.0-1160.90.1.el7.x86_64 #1 SMP Thu May 4 15:21:22 UTC 2023 x86_64 prometheus-prometheus-stack-kube-prom-prometheus-0 (none))"
ts=2023-09-11T14:52:47.219Z caller=main.go:542 level=info fd_limits="(soft=1048576, hard=1048576)"
ts=2023-09-11T14:52:47.219Z caller=main.go:543 level=info vm_limits="(soft=unlimited, hard=unlimited)"
ts=2023-09-11T14:52:47.229Z caller=query_logger.go:90 level=error component=activeQueryTracker msg="Error opening query log file" file=/prometheus/queries.active err="open /prometheus/queries.active: permission denied"
panic: Unable to create mmap-ed active query log

goroutine 1 [running]:
github.com/prometheus/prometheus/promql.NewActiveQueryTracker({0x7ffc61beb568, 0xb}, 0x14, {0x3959980, 0xc000a65950})
        /app/promql/query_logger.go:120 +0x3d5
main.main()
        /app/cmd/prometheus/main.go:597 +0x64df

이런형태의 에러가 나옵니다..

 

답변 3

1

문성주님의 프로필 이미지
문성주
지식공유자

안녕하세요 Hyeonghwan Kwon 님

해당 로그의 내용을 보았을 때, 프로메테우스 서버가 익스포터 메트릭 정보를 로컬 스토리지 기록하는 과정에서 리눅스 파일 시스템의 권한이 맞지 않아서 발생하는 문제임을 확인했습니다.

저희 랩의 경우 PVC를 사용하여 NFS에 프로메테우스 메트릭을 기록하고 있습니다.
따라서 위 로그의 현상은 리눅스 시스템에 파일 권한이 문제인 것으로 보여집니다.

추가적으로 원인을 찾기 위해 nfs-directory에 설정되어 있는 파일시스템 접근 권한을 확인해야 합니다.
그래서 첫 번째로는 현재 실습 환경에서의 ls -rlth /nfs_shared/monitoring 명령 결과가 필요합니다.
그리고 두 번째로는 현재 실습 환경에 적용되어 있는 storageclass 확인하기 위해서 kubectl get storageclass managed-nfs-storage -o yaml 명령어 결과가 필요합니다.

위 문제를 빠르게 처리할 수 있는 방법을 찾아서 후속 답변으로 조치 상황을 업데이트 하도록 하겠습니다.

감사합니다.

문성주 드림

0


apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  annotations:
    kubectl.kubernetes.io/last-applied-configuration: |
      {"apiVersion":"storage.k8s.io/v1","kind":"StorageClass","metadata":{"annotations":{},"name":"managed-nfs-storage"},"parameters":{"onDelete":"delete","pathPattern":"${.PVC.namespace}/${.PVC.annotations.nfs.io/storage-path}"},"provisioner":"k8s-sigs.io/nfs-subdir-external-provisioner"}
    storageclass.kubernetes.io/is-default-class: "true"
  creationTimestamp: "2023-09-07T14:19:40Z"
  name: managed-nfs-storage
  resourceVersion: "749"
  uid: 44aef83c-bac4-4fcf-86f9-16b7a1446fa8
parameters:
  onDelete: delete
  pathPattern: ${.PVC.namespace}/${.PVC.annotations.nfs.io/storage-path}
provisioner: k8s-sigs.io/nfs-subdir-external-provisioner
reclaimPolicy: Delete
volumeBindingMode: Immediate

위의 결과는 storage 결과 파일입니다.

 

그리고 nfs_shared/monitoring의 결과가 없어서 새로만들었습니다. (왜 없는지는 여러번 지우고 껏다키고해서 지워진거 같습니다.)

ls -rlth /nfs_shared/monitoring

의 결과는 total 0 입니다.

 추가로

ls -rlth /nfs_shared 의 결과는

drwxr-xr-x. 3 root root 24 Sep 11 23:32 dynamic-vol
drwxr-xr-x. 2 root root  6 Sep 12 00:50 monitoring

입니다.

감사합니다.! 늦은시간까지..

문성주님의 프로필 이미지
문성주
지식공유자

빠르게 답변 주셔서 감사합니다.

전달 주신 내용을 토대로 원인을 확인해보도록 하겠습니다.
번거로우시겠지만 위와 같이 ls -rlth /nfs_shared/monitoring 값이 0이라면, 다시 배포를 시도했을 때 동일한 오류가 나타나지 않을 것 같습니다.

번거로우시겠지만, _Lecture_prom_learning.kit/ch8/8.2/prometheus-stack-installer-15s.sh로 다시 배포가 가능한지 확인 부탁드려도 괜찮을까요?
만약 위와 같은 스크립트로 배포에 실패하실 경우에는 _Lecture_prom_learning.kit/A/A.001/prometheus-stack-force-installer.sh로 배포가 가능하신지 확인 부탁드려도 괜찮을까요.

늦은 밤에 번거로운 요청을 드려서 죄송합니다.
문성주 드림

늦은시간 까지 감사합니다.

Lectureprom_learning.kit/ch8/8.2/prometheus-stack-installer-15s.sh

로 설치하였을때는 똑같은 에러가 발생하였고,

Lectureprom_learning.kit/A/A.001/prometheus-stack-force-installer.sh

로 설치하였을때는 정상동작 하였습니다.

 

상황을 생각해보면,

0. VirtualBox의 모든 인스턴스를 전원을 껏다가 다시 켠 상태. ( 이전 실습에서 설치하다가 안지운 pod같은 것들이 존재할 수 있음 )

  1. prometheus-stack 이 error가 나는것을 확인하였고 monitoring 폴더를 찾을 수 없다는 에러로그를 발견

  2. 그래서 monitoring 폴더를 생성

  3. 재배포 위와 같은 에러 발생

  4. helm uninstall 로 다시지우고 다시 재배포

  5. 계속 에러 발생
    대충 이런 과정이였습니다.

 

늦은시간까지 감사합니다~!!

 

문성주님의 프로필 이미지
문성주
지식공유자

프로메테우스 스택 배포가 진행 완료되었다니 다행입니다.
주신 정보 토대로 재현해보고 실습 환경을 개선할 수 있도록 하겠습니다.

문성주 드림

0

질문에 어떤 강의 부분인지를 못 적었습니다.

8.2 강의 부분입니다!!.

pod 출력 결과입니다.


prometheus-prometheus-stack-kube-prom-prometheus-0     1/2     CrashLoopBackOff   6 (3m50s ago)   9m49s
prometheus-stack-kube-prom-operator-6c94f66664-tkjhq   1/1     Running            0               10m
prometheus-stack-kube-state-metrics-75dd467dd7-x798z   1/1     Running            0               10m
prometheus-stack-prometheus-node-exporter-mdllw        1/1     Running            0               10m
prometheus-stack-prometheus-node-exporter-vxvkq        1/1     Running            0               10m
prometheus-stack-prometheus-node-exporter-x7ctn        1/1     Running            0               10m

 

제 PC자체가 용량이 큰게 아니라서 사양에 따른 문제일수도 있습니다.

 

혹시 추가로 어떤 사항을 체크해볼 수 있을까요??

Hyeonghwan Kwon님의 프로필 이미지
Hyeonghwan Kwon

작성한 질문수

질문하기