Icinga 버전 2로 원격“https”를 모니터링하는 방법은 무엇입니까?


9

VirtualBox 내부의 우분투 14.04.3에 icinga 2.3.11이 있습니다. "https"포트 443 (예 : " https://mail.google.com ") 을 모니터링하려고합니다. 아래는 기본 host.conf 파일의 스 니펫입니다.

object Host "mailserver-01" {
    import "generic-host"
    address = "74.125.136.17"    /* ip for mail.google.com */ 
    vars.os = "Linux"
    vars.http_vhosts["http"] = {
        http_uri = "/"
    }
    vars.http_ssl = "1"
    vars.http_warn_time = "5"
    vars.http_critical_time = "10"

    vars.notification["mail"] = {
        groups = [ "icingaadmins" ]
    }
}

아래는 기본 services.conf 파일의 스 니펫입니다.

apply Service "httpS" {
    import "generic-service"
    check_command = "http"
    assign where host.name == "mailserver-01"
}

icingaweb2 대시 보드에 OK / green이 표시되지만 올바른 방법인지 확실하지 않습니다

답변:


10

호스트는 사용자 정의 속성 "http_vhosts"를 사전으로 정의하지만 결코 사용되지 않습니다 (해당 사전을 반복하고 서비스 오브젝트를 거르는 규칙에 대해서는 적용되지 않습니다).

대신 서비스 적용 규칙 (for 루프없이)은 "httpS"서비스 만 적용합니다. 실수로 호스트 사용자 정의 속성 "http_ssl"이 설정 되었습니다. 문자열로 숫자 대신 부울로 true 를 읽어야 합니다 (항상 true 임).

/뿐만 아니라 여러 URI를 확인하고 싶을 것입니다.

내 제안 (2 솔루션) :

1) 서비스 적용 규칙을 수정하고 호스트 오브젝트 정의에서 http_ * 사용자 정의 속성을 제거하십시오. 대신 서비스 적용 규칙에 추가하십시오.

apply Service "httpS" {
  import "generic-service"
  check_command = "http"
  vars.http_uri = "/"
  vars.http_ssl = true
  assign where host.name == "mailserver-01"
}

문서에서 http CheckCommand의 명령 매개 변수로 사용 된 모든 사용자 정의 속성을 찾을 수 있습니다 . http://docs.icinga.org/icinga2/latest/doc/module/icinga2/chapter/plugin-check-commands#plugin-check- command-http

2) 대신 서비스 적용 규칙을 사용하고 호스트에 정의 된 http_vhosts 사전을 반복하십시오.

vars.http_vhosts["https /"] = {
  http_ssl = true
  http_uri = "/"
}

여기서 이름은 "https /"가 생성 된 서비스 이름입니다. http_ssl 및 http_uri는 http CheckCommand의 필수 사용자 정의 속성과 정확히 동일한 이름입니다.

적용 규칙 내에서 마법이 발생합니다. 사전 키는 서비스 이름입니다. 사전 값은 중첩 된 사전이며 http_uri 및 http_ssl을 키로 포함합니다. 이 예에서는 "config"라고합니다. 이 구성 사전은 "vars"속성과 정확히 동일한 구조를 갖기 때문에 정의를 위해 서비스 적용 내에 추가 할 수 있습니다.

apply Service for (servicename => config in host.vars.http_vhosts) {
  import "generic-service"
  check_command = "http"
  vars += config
}

icinga2 daemon -C를 사용하여 구성을 확인한 후 생성 된 서비스 오브젝트를 조사하여 생성 된 사용자 정의 속성을 확인하십시오 (icinga2 오브젝트 목록).

한 가지 좋은 점-http_vhosts 사용자 정의 속성이 정의 된 모든 호스트는 이러한 서비스 객체를 생성하므로 extea "assign where"표현식이 필요하지 않습니다 (예외를 무시할 수 있습니다). 올바른 전략을 사용하면 규칙 적용을 한 번만 작성하고 앞으로는 맞춤 속성 사전이 일치하는 새 호스트 만 추가합니다 :-)

http://docs.icinga.org/icinga2/latest/doc/module/icinga2/chapter/monitoring-basics#using-apply-for

솔루션 2)에는 icinga 2 구성 언어 및 키워드, 값 유형 및 마술에 대한 고급 지식이 필요합니다. 그러나 이러한 방법과 모범 사례는 파일 채택 및 변경으로 장기적인 유지 관리를 줄이는 데 도움이된다고 생각합니다.

더 나아가 호스트 이름을 기반으로 다른 threshokd에 if-else 조건을 사용할 수도 있습니다. 또는 함수를 사용하여 예를 들어 시간 간격을 기준으로 동적 임계 값을 정의하십시오.


2

Google에서 http 명령을 찾았습니다.

/usr/share/icinga2/include/command-plugins.conf

이 예에서는 https://mail.google.com 을 모니터링하려고했습니다. 아래는 /etc/icinga2/conf.d/hosts.conf입니다.

object Host "www.google.com" {
address = "74.125.136.84"
check_command = "http"
vars.http_vhost = "mail.google.com"
vars.http_ssl = "1"
}

icingaweb2 대시 보드에서 보이는 모습 여기에 이미지 설명을 입력하십시오

예 2

object Host "secure.example.com" {
    address = "14.28.83.22"
    check_command = "http"
    vars.http_vhosts["secure.example.com"] = {
    http_uri = "/merchant/login.aspx"    
    }
        vars.notification["mail"] = {
        groups = [ "icingaadmins" ]
        }
    vars.http_ssl="1"
}
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.