해결된 질문
작성
·
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
입니다.
감사합니다.! 늦은시간까지..
늦은시간 까지 감사합니다.
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같은 것들이 존재할 수 있음 )
prometheus-stack 이 error가 나는것을 확인하였고 monitoring 폴더를 찾을 수 없다는 에러로그를 발견
그래서 monitoring 폴더를 생성
재배포 위와 같은 에러 발생
helm uninstall 로 다시지우고 다시 재배포
계속 에러 발생
대충 이런 과정이였습니다.
늦은시간까지 감사합니다~!!
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자체가 용량이 큰게 아니라서 사양에 따른 문제일수도 있습니다.
혹시 추가로 어떤 사항을 체크해볼 수 있을까요??
빠르게 답변 주셔서 감사합니다.
전달 주신 내용을 토대로 원인을 확인해보도록 하겠습니다.
번거로우시겠지만 위와 같이
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
로 배포가 가능하신지 확인 부탁드려도 괜찮을까요.늦은 밤에 번거로운 요청을 드려서 죄송합니다.
문성주 드림