Ceph 의 웹 관리 화면은 ceph-mgr 데몬 위에서 도는 Dashboard 모듈이다. 별도 제품이 아니라 매니저 모듈이므로 설치할 것은 없고 켜기만 하면 된다. 클러스터 상태, OSD · 풀 · RBD 이미지, CephFS, RGW 사용자와 버킷을 화면에서 다룰 수 있다.
cephadm 으로 부트스트랩한 클러스터는 대시보드가 기본으로 켜진 채 올라오고 부트스트랩 출력에 접속 주소와 초기 비밀번호가 찍힌다. 수동 설치했거나 모듈을 껐던 경우에만 아래 과정이 필요하다.
ceph mgr module ls | grep -i dashboard
ceph mgr module enable dashboard
cephadm 클러스터에서는 대시보드 패키지가 컨테이너 이미지에 들어 있다. 패키지로 설치한 클러스터라면 ceph-mgr-dashboard 패키지가 먼저 있어야 한다.
dnf install -y ceph-mgr-dashboard
ceph mgr services
{
"dashboard": "https://ceph01:8443/"
}
기본 포트는 HTTPS 8443, SSL 을 끈 경우 HTTP 8080 이다. 바인딩 주소와 포트는 설정으로 바꾼다.
ceph config set mgr mgr/dashboard/server_addr 0.0.0.0
ceph config set mgr mgr/dashboard/server_port 8080
ceph config set mgr mgr/dashboard/ssl_server_port 8443
ceph mgr module disable dashboard && ceph mgr module enable dashboard
설정 변경은 모듈을 다시 올려야 반영된다.
매니저가 여러 대여도 대시보드는 active mgr 한 대에서만 뜬다. standby 매니저의 주소로 접속하면 active 쪽으로 리디렉션된다. 리디렉션 대상이 클라이언트가 풀 수 없는 호스트명이면 접속이 끊기므로, 방화벽과 DNS 를 mgr 호스트 전부에 대해 열어 두거나 앞에 리버스 프록시를 둔다.
대시보드는 계정이 하나도 없으면 로그인할 수 없다. 비밀번호는 인자로 주지 말고 파일로 넘긴다. 명령행에 적으면 셸 히스토리와 프로세스 목록에 남는다.
echo -n "${DASHBOARD_PASSWORD}" > /tmp/dashpw
ceph dashboard ac-user-create admin -i /tmp/dashpw administrator
shred -u /tmp/dashpw
역할은 administrator · read-only · block-manager · rgw-manager 등이 있다. 운영 계정은 필요한 역할만 준다.
ceph dashboard ac-user-show
ceph dashboard ac-role-show
ceph dashboard ac-user-set-password admin -i /tmp/dashpw
비밀번호 정책이 켜져 있으면 짧거나 사용자명이 포함된 값은 거부된다.
기본은 자체 서명 인증서라 브라우저 경고가 뜬다. 사내 인증서를 넣는다.
ceph dashboard set-ssl-certificate -i /path/to/dashboard.crt
ceph dashboard set-ssl-certificate-key -i /path/to/dashboard.key
ceph mgr module disable dashboard && ceph mgr module enable dashboard
TLS 종료를 앞단 프록시에서 한다면 대시보드 쪽 SSL 을 꺼도 된다.
ceph config set mgr mgr/dashboard/ssl false
| 확인 | 명령 |
|---|---|
| 모듈이 켜져 있는가 | ceph mgr module ls \| grep dashboard |
| 주소가 무엇인가 | ceph mgr services |
| 계정이 있는가 | ceph dashboard ac-user-show |
| active mgr 이 어디인가 | ceph -s 의 mgr: 줄 |
| 모듈이 죽지 않았는가 | ceph log last 100 cephadm · ceph crash ls |
| 방화벽 | firewall-cmd --permanent --add-port=8443/tcp && firewall-cmd --reload |
server_addr 이 특정 IP 로 고정돼 있는데 active mgr 이 다른 호스트로 넘어가면 그 호스트에는 해당 IP 가 없어 모듈이 기동하지 못한다. 여러 mgr 을 두는 클러스터에서는 0.0.0.0 으로 두거나 호스트별 설정을 따로 준다.
Rook 으로 올린 클러스터는 rook-ceph-mgr-dashboard 서비스로 노출된다. 서비스 노출 방법과 초기 비밀번호 확인은 rook-ceph 문서에 있다.
kubectl -n rook-ceph get svc rook-ceph-mgr-dashboard
kubectl -n rook-ceph get secret rook-ceph-dashboard-password \
-o jsonpath='{.data.password}' | base64 -d