NcStatusCheck
여러 Nextcloud 인스턴스를 위한 중앙 집중식 모니터링
NcStatusCheck는 단일 웹 인터페이스에서 여러 Nextcloud 서버의 상태를 추적할 수 있게 해주는 모니터링 도구입니다: Nextcloud 및 PHP 버전의 보안 기준선 대비 상태, 브랜치 지원 종료, 연결 가능성, 구성 경고, 설치된 앱, Docker 컨테이너 및 알려진 취약점을 확인할 수 있습니다.



🎯 기능
모니터링
- 서버당 세 가지 데이터 수집 모드: Basic (NC 버전만), Extended (serverinfo API를 통한 전체 데이터), Push (원격 인스턴스가 전송하는 데이터)
- 공식 릴리스와 cron이 동기화하는 보안 기준선 대비 Nextcloud 및 PHP의 버전 분석, 유예 기간(
nc_update_grace_days)을 두어 패치 릴리스 후 며칠이 지나야 인스턴스가 표시됨
- 브랜치 수명 주기: 각 Nextcloud 브랜치의 지원 종료(공식 일정), 다음 릴리스 날짜, 각 브랜치를 실행하는 서버 수
- 가동/중단 추적: 현재 연결 가능성과 확인된 전환의 제한된 저널로, **30일 가용성 %**와 장애 목록을 제공
- SSL 인증서 만료, 기존 HTTPS 프로브에서 읽음 (추가 요청 없음)
- 알려진 취약점 (선택 사항): Nextcloud, Collabora 및 OnlyOffice 권고를 플릿이 실제로 실행 중인 버전과 대조
- 설치된 앱 감사:
occ app:list를 Nextcloud 앱 스토어와 교차 확인 (업그레이드를 차단하거나 호환되지 않는 앱, 사용 가능한 업데이트, 성숙도 및 변동성 신호)
- Docker 컨테이너: 중지됨, 재시작 중 또는 비정상 컨테이너, 그리고 레지스트리 태그 카탈로그와 대조한 이미지 업데이트 (브랜치 내 패치, 더 새로운 브랜치). 여러 감시 인스턴스가 한 머신을 공유할 때 컨테이너는 각자의 인스턴스에 귀속됨
- 사전 경고 (webhook 및/또는 이메일): 가동/중단 상태 변경, 그리고 느린 신호 (SSL 만료, 취약한 버전, 오래된 Push 프로브, 심각한 감사 보고서, 차단 앱 발견,
occ 손상). 새로운 조건당 경고 하나, 알림 스팸 없음
- 서버 일시 중지 (마이그레이션, 폐기): 프로브와 경고가 중단되고 행은 계속 표시됨
- 데스크톱 클라이언트 감시: 현재 버전, 진행 중인 릴리스 후보, 측정된 릴리스 속도
대시보드
- 넓은 화면에서 나란히 표시되는 플릿 테이블 (Server | Nextcloud | PHP | Health)과 브랜치 수명 주기 테이블
- "침묵 = 모두 정상"을 따르는 Health 열: 조치할 것이 있을 때만 배지 표시
- 종합 카드: 적용할 업데이트, 취약점, 브랜치 지원 종료, 예정된 릴리스, 활성 경고, 앱, Docker, 데스크톱 클라이언트. 각 카드는 창에서 세부 정보를 엶
- 앱과 Docker 이미지에 대한 플릿 감시, 해야 할 일 순으로 정렬: 검토 필요, 할 일, 계획, 그리고 접힌 컨텍스트 그룹
- Nextcloud 상태, PHP 상태, 전체 상태 (오프라인, 유지보수, 경고, 프로브 오류, Docker 업데이트…), Docker 이미지 및 텍스트 검색으로 필터링
- 각 서버 이름 아래의 태그, 클릭하여 필터링 가능 (여러 태그 = 모두 한 번에): 사용자 정의 태그 (
client:durand, lab…), 그리고 여러 감시 인스턴스가 같은 서버에서 실행될 때 머신을 나타내는 🖥 태그 (Push, 스크립트 v12+에서 감지), 머신당 하나의 색상. type:value로 작성된 태그는 해당 유형의 색상을 가지므로 모든 client:… 태그가 하나의 색상을 공유
- FR / EN / DE 인터페이스
상세 페이지
- 탭 위의 상태 타일: 연결 가능성, 30일 가용성 (창에서 장애 목록), SSL 인증서, 각 프로브의 최신성
- 개요: 버전 판정, 음소거된 경고 (사유와 만료가 있는 확인), 인스턴스 요약 (PHP, 웹 서버, 데이터베이스, 캐시, 배포, 그리고 앱과 컨테이너에서 보이는 오피스 제품군, Talk HPB 또는 화이트보드 같은 부가 도구), 그런 다음 영역별로 그룹화된 이슈
- 탭: 기술 정보, 애플리케이션, Docker 컨테이너, 프로브
- URL 아래의 태그, 즉석에서 편집 가능, 같은 머신에서 실행 중인 다른 인스턴스와 함께
- 모든 경고는 확인 가능 (사유 + 선택적 만료)
- 인스턴스가 월간
nc-audit.sh 보고서를 푸시할 때 서버 감사 보고서
관리
- 서버: URL로 서버 추가 (
https:// 선택 사항), 그런 다음 카드에서 프로브 구성 (serverinfo 토큰과 Test 버튼, Push 토큰 및 바로 사용 가능한 스크립트 생성기), 태그 지정, 일시 중지 또는 제거
- 공유 호스트: 여러 감시 Nextcloud가 머신을 공유할 때 어떤 Docker compose 스택이 어떤 인스턴스에 속하는지 지정
- NC / PHP 버전: 보안 기준선, 상태 규칙, 공식 릴리스에서 재동기화
- 앱 경고: 수동 알려진 버그 목록
- 알림: 유효한 경고 구성 (
config.php에서 설정, 읽기 전용으로 표시) 및 테스트 버튼
- IP 필터링: nginx / Apache / ufw 허용 목록 규칙 생성
- 음소거: 플릿 전체의 모든 확인 감사, 그리고 여전히 무언가를 숨기고 있는 것들
- 수집 모드: 세 가지 프로브에 대한 도움말
- 대시보드의 "Trigger Push" 버튼: 모든 Push 서버에 다음 cron 실행 시 데이터를 전송하도록 요청
🏗️ 아키텍처