스프링 부트 액추에이터 상태 복귀 DOWN
/health스프링 부츠RELEASE).DOWN:
{
status: "DOWN"
}
상태를 덮어쓰는 스타터 프로젝트 또는 라이브러리가 있습니까?( 것 에) ?DOWN
에서 Spring을 합니다.endpoints.health.sensitive = false . 。/health그러면 엔드포인트는 다양한 상태 표시기 목록을 반환하고 여기서 디버깅할 수 있습니다.
가동 에서는, 하게 할 가 있습니다./health엔드 포인트
편집
가 아래에한 바와 ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★management.security.enabled = false상태 끝점이 보호되어 있는 경우, 이것이 최신 버전의 스프링 부트에서는 기본값인 것 같습니다.
수 있는 는 Solr이 없는 Spring Boot가 Solr이 입니다./health이 엔드포인트 Solr임을 .DOWN할 수 있는 자동 은 다음과 같습니다.「 」 「 」 「 」 「 」 「 」 「 」 「 」 「 」 「 」 「 」 「 」입니다.java 서 Solr java java java java java java java java java java java java java 。 @SpringBootApplication(exclude={SolrAutoConfiguration.class})
상태 URL에 "DOWN" 또는 HTTP 503 - Service Unavailable 오류가 표시되면 application.properties에서 다음 속성을 추가해 보십시오.
URL - http://localhost:8080/actuator/health
management.endpoint.health.show-details=always
이제 URL은 DOWN뿐만 아니라 더 많이 표시됩니다.Solr 호스트에 연결할 수 없는 경우 다음 제외를 사용하여 Solr 체크를 무시하십시오.
@SpringBootApplication(exclude = { SolrAutoConfiguration.class })
이제 건강이 좋아져야 합니다.으로 사전에 - 헬헬 check check check intern((((((((((((((((((((((((((((((((((((((((((((((( the the the the 。DataSourceHealthIndicator, DiskSpaceHealthIndicator, CassandraHealthIndicator★★★
상태 표시기 중 하나가 다운되면 상태가 다운되고 위의 속성을 application.properties에 추가한 후 응답으로 오류가 표시됩니다.
제 경우, 더 자세한 정보를 얻으려면 다음 두 가지 속성이 모두 필요했습니다.
endpoints.health.sensitive: false
management.security.enabled: false
그렇지 않으면 DOWN 상태만 표시됩니다.
래빗과 문제가 있었어MQ 연결: 응용 프로그램이 아직 사용하지 않고 있지만 관련 코드를 배선하기 시작했습니다.어플리케이션은 정상적으로 동작하고 있습니다만, DOWN 상태가 되어 버렸습니다.이것은 매우 곤혹스러웠습니다.Spring Boot는 기동시에 에러가 표시되지 않기 때문에 로그에 놀랄 정도로 무음입니다(아마 설정을 변경하여 상세하게 할 필요가 있습니다).
.1 Springboot 2.1.0이 /로 반환되었습니다.{ status: "DOWN" }플리어" " " management.health.defaults.enabled=false.properties가 되었습니다.
아마 1.0 영사를 쓰시겠죠?Spring Could Permister 1.1.0 또는 그 정도에 영사 1.0과 관련된 알려진 문제가 있습니다.https://github.com/spring-cloud/spring-cloud-consul/issues/365 와 https://github.com/hashicorp/consul/issues/3635 를 참조해 주세요.
스프링 캔 집정관 1.3.0으로 업그레이드해야 합니다.풀어주다.
https://github.com/indrabasak/spring-consul-example/blob/master/client/README.md, 링크에 따라 아래 속성을 엄격하게 사용하여 아래 오류를 방지해야 합니다.
management.security.enabled=false
management.health.consul.enabled=false
엔드포인트를 추가한 지 얼마 안 되어 다운 체크가 되어 있는 경우는, 디폴트 체크가 다운하고 있을 가능성이 있습니다.기본 체크가 되어 있는 경우는, 링크를 참조해 주세요.제 경우, Elastic을 실행하는 것을 잊었습니다.그래서 헬스 체크는 Rashmi가 지적한 것처럼 "down"으로 보고되었습니다.management.health.defaults.enabled=false이 좋습니다.
management.displaces를 클릭합니다.health.show-display=는 항상 Health가 다운된 이유를 디버깅하는 데 도움이 되며 문제를 해결하는 데 도움이 됩니다.
Spring Boot 2.3.2 이상에서는 추가만 하면 됩니다.
management.health.defaults.enabled=false을 사용하다- ""와 같은 API를
/management/health"를 반환합니다.
아래 코드로 수정했습니다.
"/private/health" 매핑을 허용하는 컨트롤러를 작성했습니다(대신 /health를 사용할 수 있습니다).
import io.swagger.annotations.Api;
import org.springframework.http.HttpStatus;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseStatus;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping
@Api(value = "Heath Service Health", description = "Heath Service Health")
public class HeathController {
@GetMapping(value = "/private/health")
@ResponseStatus(HttpStatus.OK)
HealthStatusDto healthCheck() {
return HealthStatusDto.builder().status("UP").build();
}
}
아래 클래스는 옵션입니다.위의 컨트롤러에서 HealthStatusDto를 반환하는 대신 다른 모든 메시지를 문자열로 반환할 수 있습니다.
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
@Data
@AllArgsConstructor
@Builder
public final class HealthStatusDto {
private final String status;
}
application.yml에 다음 구성을 추가합니다.
# actuator
# Disable Spring security
management:
security:
enabled: false
# Disable actuators
endpoints:
actuator:
enabled: false
enabled: false
도움이 되었으면 좋겠다
장애 발생 시 상태 응답을 기록하는 필터를 구축했습니다.
package br.gov.go.sspj.k9.util;
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.actuate.endpoint.mvc.HealthMvcEndpoint;
import org.springframework.stereotype.Component;
import lombok.extern.slf4j.Slf4j;
@Slf4j
@Component
public class BadHealthCheckLogFilter implements Filter {
private @Autowired HealthMvcEndpoint hme;
@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
chain.doFilter(request, response);
HttpServletRequest req = (HttpServletRequest) request;
HttpServletResponse res = (HttpServletResponse) response;
if (req.getRequestURI().endsWith("/health") && res.getStatus() != 200)
log.error(hme.invoke(req, null).toString());
}
@Override
public void init(FilterConfig filterConfig) {
}
@Override
public void destroy() {
}
}
Spring Boot 1.5에서 2.3.5로 어플리케이션을 업그레이드 했을 때도 같은 문제가 발생하였습니다.풀어주다.
" " " endpoints.health.sensitive 기타 (「」의 ).application.properties나한테는 통하지 않았어
제외하여 문제를 해결했습니다.RabbitAutoConfiguration.
@EnableAutoConfiguration(exclude = { RabbitAutoConfiguration.class })
제 경우는 스프링(v2.1.5)입니다.릴리스)
endpoints.syslog.enabled=true 관리.health.http.enabled=false
위의 속성을 추가하는 것은 나의 문제를 해결했습니다.
상태 "UP" 표시
다음의 설정을 실시하면, 문제의 트러블 슈팅에 도움이 됩니다.
management.endpoint.health.show-details=always
내 경우 안티바이러스 응용 프로그램이 메일 서버에 대한 연결을 차단하고 있습니다.해결된 문제 끄기
언급URL : https://stackoverflow.com/questions/30736514/spring-boot-actuator-health-returning-down
'programing' 카테고리의 다른 글
| Woocommerce:폐지된 "woocommerce_add_order_item_meta"를 대체할 후크 (0) | 2023.02.26 |
|---|---|
| JSON에서의 역직렬화 및 시리얼화란 무엇입니까? (0) | 2023.02.21 |
| Django를 사용한 React JS - 실제 사용 (0) | 2023.02.21 |
| Woocommerce 3의 주문 항목 보호 데이터 액세스 (0) | 2023.02.21 |
| Ajax(fetch, XHR 등) 요청에 대한 응답으로 리다이렉트 반환 (0) | 2023.02.21 |
