Prometheus中的黑盒监控blackbox
生活随笔
收集整理的這篇文章主要介紹了
Prometheus中的黑盒监控blackbox
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一、安裝blackbox-exporter
地址:https://github.com/prometheus/blackbox_exporter
創建configmap
blackbox.yaml
modules:
http_2xx:
prober: http
http_post_2xx:
prober: http
http:
method: POST
tcp_connect:
prober: tcp
pop3s_banner:
prober: tcp
tcp:
query_response:
- expect: "^+OK"
tls: true
tls_config:
insecure_skip_verify: false
ssh_banner:
prober: tcp
tcp:
query_response:
- expect: "^SSH-2.0-"
irc_banner:
prober: tcp
tcp:
query_response:
- send: "NICK prober"
- send: "USER prober prober prober :prober"
- expect: "PING :([^ ]+)"
send: "PONG ${1}"
- expect: "^:[^ ]+ 001"
icmp:
prober: icmp
創建
# kubectl create cm blackbox-config --from-file=blackbox.yaml -n monitoring configmap/blackbox-config created
創建blackcbox-exporter
blackbox-exporter.yaml
apiVersion: v1
kind: Service
metadata:
name: blackbox
namespace: monitoring
labels:
k8s-app: blackbox
spec:
selector:
k8s-app: blackbox
ports:
- name: blackbox
port: 9115
protocol: TCP
type: ClusterIP
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: blackbox
namespace: monitoring
labels:
k8s-app: blackbox
spec:
selector:
matchLabels:
k8s-app: blackbox
replicas: 1
template:
metadata:
labels:
k8s-app: blackbox
spec:
containers:
- name: blackbox
image: prom/blackbox-exporter:master
imagePullPolicy: IfNotPresent
args: ["--config.file=/etc/blackbox/blackbox.yaml"]
resources:
requests:
memory: 100M
volumeMounts:
- name: tz-config
mountPath: /etc/localtime
readOnly: true
- name: blackbox-config
mountPath: /etc/blackbox
readOnly: true
nodeSelector:
monitor: "true"
volumes:
- name: tz-config
hostPath:
path: /usr/share/zoneinfo/Asia/Shanghai
- name: blackbox-config
configMap:
name: blackbox-config
創建
kubectl create -f blackbox-exporter.yaml
查看
# kubectl get svc,pod -n monitoring -l k8s-app=blackbox NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE service/blackbox ClusterIP 10.108.47.141 <none> 9115/TCP 10m NAME READY STATUS RESTARTS AGE pod/blackbox-86b7486879-w6n22 1/1 Running 0 5m9s
測試
# curl "http://10.108.47.141:9115/probe?target=baidu.com&module=http_2xx"
# HELP probe_dns_lookup_time_seconds Returns the time taken for probe dns lookup in seconds
# TYPE probe_dns_lookup_time_seconds gauge
probe_dns_lookup_time_seconds 0.017669272
# HELP probe_duration_seconds Returns how long the probe took to complete in seconds
# TYPE probe_duration_seconds gauge
probe_duration_seconds 0.079658423
# HELP probe_failed_due_to_regex Indicates if probe failed due to regex
# TYPE probe_failed_due_to_regex gauge
probe_failed_due_to_regex 0
# HELP probe_http_content_length Length of http content response
# TYPE probe_http_content_length gauge
probe_http_content_length 81
# HELP probe_http_duration_seconds Duration of http request by phase, summed over all redirects
# TYPE probe_http_duration_seconds gauge
probe_http_duration_seconds{phase="connect"} 0.031100739
probe_http_duration_seconds{phase="processing"} 0.030203142
probe_http_duration_seconds{phase="resolve"} 0.017669272
probe_http_duration_seconds{phase="tls"} 0
probe_http_duration_seconds{phase="transfer"} 0.0002315
# HELP probe_http_last_modified_timestamp_seconds Returns the Last-Modified HTTP response header in unixtime
# TYPE probe_http_last_modified_timestamp_seconds gauge
probe_http_last_modified_timestamp_seconds 1.26330408e+09
# HELP probe_http_redirects The number of redirects
# TYPE probe_http_redirects gauge
probe_http_redirects 0
# HELP probe_http_ssl Indicates if SSL was used for the final redirect
# TYPE probe_http_ssl gauge
probe_http_ssl 0
# HELP probe_http_status_code Response HTTP status code
# TYPE probe_http_status_code gauge
probe_http_status_code 200
# HELP probe_http_uncompressed_body_length Length of uncompressed response body
# TYPE probe_http_uncompressed_body_length gauge
probe_http_uncompressed_body_length 81
# HELP probe_http_version Returns the version of HTTP of the probe response
# TYPE probe_http_version gauge
probe_http_version 1.1
# HELP probe_ip_addr_hash Specifies the hash of IP address. It's useful to detect if the IP address changes.
# TYPE probe_ip_addr_hash gauge
probe_ip_addr_hash 2.752187856e+09
# HELP probe_ip_protocol Specifies whether probe ip protocol is IP4 or IP6
# TYPE probe_ip_protocol gauge
probe_ip_protocol 4
# HELP probe_success Displays whether or not the probe was a success
# TYPE probe_success gauge
probe_success 1
二、Blacakbox-exporter應用
使用prometheus addition 功能,添加blackbox功能應用
地址:https://github.com/prometheus-operator/prometheus-operator/blob/master/Documentation/additional-scrape-config.md
先創建一個secret
prometheus-additional.yaml
- job_name: 'blackbox'
metrics_path: /probe
params:
module: [http_2xx] # Look for a HTTP 200 response.
static_configs:
- targets:
#- http://prometheus.io # Target to probe with http.
#- https://prometheus.io # Target to probe with https.
- https://www.baidu.com # Target to probe with http on port 8080.
relabel_configs:
- source_labels: [__address__]
target_label: __param_target
- source_labels: [__param_target]
target_label: instance
- target_label: __address__
replacement: blackbox:9115 # The blackbox exporter's real hostname:port.
替換ip地址為blackbox的service名稱
創建
kubectl create secret generic additional-scrape-configs --from-file=prometheus-additional.yaml --dry-run -oyaml > additional-scrape-configs.yaml
# kubectl create -f additional-scrape-configs.yaml -n monitoring secret/additional-scrape-configs created
查看
# kubectl get secret -n monitoring NAME TYPE DATA AGE additional-scrape-configs Opaque
修改Prometheus的CRD
$path/prometheus/kube-prometheus/manifests/prometheus-prometheus.yaml
serviceAccountName: prometheus-k8s
additionalScrapeConfigs:
name: additional-scrape-configs
key: prometheus-additional.yaml
serviceMonitorNamespaceSelector: {}
serviceMonitorSelector: {}
新增additionalScrapeConfigs配置項
# kubectl replace -f prometheus-prometheus.yaml
重啟Prometheus,不能自動啟動,就先刪除Prometheus的pod
查看prometheus中status/configuration
導入grafana的dashboard,可以在grafana官網上尋找
總結
以上是生活随笔為你收集整理的Prometheus中的黑盒监控blackbox的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 房贷还完贷款如何解除抵押,在房管局办理解
- 下一篇: 信用卡临时额度害死人!谨防这四个常见陷阱