모니터링 5.25.2
다음은 자격 증명 설정입니다.
set httpd port 2812
allow localhost
allow guest:guest read-only
allow @wheel
allow cleartext /opt/monit/htpasswd
이유:
- 로컬 호스트~할 수 있게 하다모니터 상태
- 손님: 손님모든 사람의 네트워크 액세스 활성화(읽기 전용)손님
- @바퀴로컬 사용자 그룹에 대한 전체 웹 액세스 활성화바퀴
- 일반 텍스트호스트에 없는 사용자 쌍에 대해 전체 웹 액세스를 활성화합니다.
문서를 읽고 설정을 "셔플링"해 보았지만(한숨) 일반적인 문제를 해결하는 방법을 이해할 수 없습니다. 다음 두 가지 사용법 중 하나만 작동합니다.
- 명령줄에서 상태 모니터링
- 클라이언트 컴퓨터에서 네트워크 액세스(IP 주소는 호스트 자체가 아님)
고쳐 쓰다
나는 두 가지 문제를 우연히 발견했습니다.
- 로컬호스트 허용
이것이 없으면 모든 클라이언트 컴퓨터가 액세스할 수 있지만모니터 상태작동하지 않습니다.
"Allow localhost"를 사용하면 클라이언트가 차단되므로 다음 사항도 지정해야 합니다.
10.0.0.0/8 허용
IMHO 이것은 문서에서 명확하지 않습니다.
- 클라이언트 컴퓨터에서 테스트 중... 자격 증명을 기록해 두세요.
컴퓨터에서 모니터링에 액세스하면 브라우저가 자격 증명을 캐시하므로 이러한 테스트는 오해의 소지가 있습니다.
고쳐 쓰다
문제를 발견했습니다.
strace -s 512 -e connect,write /opt/monit/bin/monit status 2>&1 |more
connect(4, {sa_family=AF_INET, sin_port=htons(2812), sin_addr=inet_addr("127.0.0.1")}, 16) = -1 EINPROGRESS (Operation now in progress)
write(4, "POST /_status HTTP/1.0\r\nContent-Type: application/x-www-form-urlencoded\r\nCookie: securitytoken=88521284dfbc7acea0521e16e11356d1\r\nContent-Length: 58\r\n\
r\nformat=text&securitytoken=88521284dfbc7acea0521e16e11356d1", 209) = 209
write(2, "You are not authorized to access monit..."
쿠키를 보내는 이유는 무엇입니까: securitytoken=?
우리가 정의한 구성에서
손님 허용: 손님은 읽기 전용
다음을 사용하여 HTTP 요청을 하면손님자격 증명, 작동 방식:
"GET /_status?format=text HTTP/1.0\r\nAuthorization:Basic Z3Vlc3Q6Z3Vlc3Q=\r\n\r\n"
답변1
티켓을 열었고 개발자들은 그것이 버그라는 것을 알아냈습니다.
그들은 열심히 일하고 있습니다.
https://bitbucket.org/tildeslash/monit/issues/769/monit-status-doesnt-work