Skip to content

Monitore your websites availability, http status code (current and history), certificate, redirects and more with Grafana and Prometheus blackbox exporter.

Notifications You must be signed in to change notification settings

cloudpilot-ai/website-monitoring

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

54 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

website-monitoring

web-1

Monitore your websites availability, http status code (current and history), certificate, redirects and more with

Deploying

With Kubernetes

  • Dependencies

  • Usage

    • git clone https://github.com/cloudpilot-ai/website-monitoring.git && cd website-monitoring

    • Edit sample/prometheus-targets-cm.yaml (see targets.yml.example) modify or add baidu.com as your desired service address

    • Create Namespace kubectl create namespace prometheus

    • Starting services kubectl apply -n prometheus -f sample

    • Visualize dashboards

      • Temporary access

      • Long-term access

        kubectl -n prometheus get svc grafana get request address http://192.168.49.2:3000/

        # kubectl -n prometheus get svc grafana
        NAME      TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)    AGE
        grafana   ClusterIP   10.105.212.73   192.168.49.2  3000/TCP   9m51s

With Docker compose

  • Dependencies

  • Usage

    • git clone https://github.com/cloudpilot-ai/website-monitoring.git && cd website-monitoring
    • Edit config/prometheus/targets.yml (see targets.yml.example) or use ./gen_target.sh website-1.tld website-2.tld ...
    • Create and start containers docker-compose up -d
    • Visualize dashboards

If you already have Prometheus and Prometheus blackbox exporter up and running just import the dashboards (website-monitoring or overview) and use the right datasource and jobs (http_job and icmp_job)

Dashboards

Website monitoring

  • HTTP status code
  • HTTP redirects
  • HTTP version
  • TLS version
  • Certificate validity
  • ICMP
  • DNS lookup time
  • Availability over the last 24 hours, 3 days and 7 days
  • Probe duration and status code history

web-2 web-3

Overview

  • Total number of targets
  • Percentage of HTTP 200 status code
  • Percentage of targets using SSL
  • Global invalid status code history

overview

Tips and tricks

PromQL

Some useful PromQL queries

  • Number of days till certificate expiration
    • (probe_ssl_earliest_cert_expiry{instance=~"$target",job="$http_job"} - time()) / (60*60*24)
  • Display bad HTTP status code
    • probe_http_status_code{job="$http_job",instance=~"$target"} != 200
  • Count the number of each status code
    • count_values("code", probe_http_status_code)
  • Percentage of HTTP 200
    • ((count(count by (instance) (probe_http_status_code == 200))) / (count(count by (instance) (probe_http_status_code)))) * 100

Misc

  • Deployed with kuberneres

    • Request blackbox exporter

      • Temporary access

        • kubectl -n prometheus port-forward service/blackbox-exporter 9115:9115
        • curl -s "localhost:9115/probe?module=http_2xx&target=target.tld"
      • Long-term access

        • kubectl -n prometheus get svc blackbox-exporter get request address
          # kubectl -n prometheus get svc blackbox-exporter
          NAME                TYPE        CLUSTER-IP     EXTERNAL-IP   PORT(S)    AGE
          blackbox-exporter   ClusterIP   10.97.216.40   192.168.49.2  9115/TCP   6m20s
        • curl -s "192.168.49.2:9115/probe?module=http_2xx&target=target.tld"
  • Deployed with docker compose

    • Request blackbox exporter
      • curl -s "localhost:9115/probe?module=http_2xx&target=target.tld"

About

Monitore your websites availability, http status code (current and history), certificate, redirects and more with Grafana and Prometheus blackbox exporter.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Shell 100.0%