-
Enable Kubernetes (in the Docker for Mac preferences)
-
Deploy the Kubernetes NGINX Ingress Controller
$ kubectl apply -f kube/ingress-nginx/ingress-nginx.yml
-
Add hostnames to /etc/hosts
$ sudo vi /etc/hosts 127.0.0.1 sensu.local webui.sensu.local influxdb.local grafana.local dummy.local
-
Create a Kubernetes Ingress Resource
$ kubectl create -f kube/ingress-nginx/sensu-demo.yml
-
Deploy dummy app pods
$ kubectl apply -f kube/dummy.yml $ kubectl get pods $ curl -i http://dummy.local
-
Deploy Sensu
$ kubectl apply -f kube/sensu.yml $ kubectl get pods
-
Configure
sensuctl
to use the built-in "admin" user$ sensuctl configure
-
Create "demo" namespace, user role, and role binding
$ cat sensu/multitenancy.yml $ sensuctl create -f sensu/multitenancy.yml
-
Create "demo" user that is a member of the "dev" group
$ sensuctl user create demo --interactive
-
Reconfigure
sensuctl
to use the "demo" user and "demo" namespace$ sensuctl configure
-
Deploy dummy app Sensu Agent sidecars
$ kubectl apply -f kube/dummy.sensu.yml $ kubectl get pods $ sensuctl entity list
-
Scale dummy app
$ kubectl scale --replicas=4 deployment/dummy $ sensuctl entity list $ kubectl scale --replicas=2 deployment/dummy $ sensuctl entity list
-
Register a Sensu Asset for check plugins
$ cat sensu/assets/check-plugins.yml $ sensuctl create -f sensu/assets/check-plugins.yml $ sensuctl asset info check-plugins
-
Create a check to monitor dummy app /healthz
$ sensuctl create -f sensu/checks/dummy-app-healthz.yml $ sensuctl check info dummy-app-healthz $ sensuctl event list
-
Toggle the dummy app /healthz status
$ curl -iXPOST http://dummy.local/healthz $ sensuctl event list
-
Create a Kubernetes ConfigMap for InfluxDB configuration
$ kubectl create configmap influxdb-config --from-file kube/configmap/influxdb-config.conf
-
Deploy InfluxDB with a Sensu Agent sidecar
$ kubectl apply -f kube/influxdb.yml $ kubectl get pods $ sensuctl entity list
-
Create "influxdb" event handler for sending metrics to InfluxDB
$ sensuctl create -f sensu/assets/sensu-influxdb-handler-3.1.2-linux-amd64.yml $ cat sensu/handlers/influxdb.yml $ sensuctl create -f sensu/handlers/influxdb.yml $ sensuctl handler info influxdb
-
Register a Sensu Asset for the Prometheus metric collector
$ sensuctl create -f sensu/assets/sensu-prometheus-collector-1.1.5-linux-amd64.yml
-
Create a check to collect dummy app Prometheus metrics
$ sensuctl create -f sensu/checks/dummy-app-prometheus.yml $ sensuctl check info dummy-app-prometheus
-
Query InfluxDB to list the stored series
$ curl -GET 'http://influxdb.local/query' --data-urlencode 'q=SHOW SERIES ON sensu'
-
Deploy Grafana with a Sensu Agent sidecar
$ kubectl create configmap grafana-provisioning-datasources --from-file=./kube/configmap/grafana-provisioning-datasources.yml $ kubectl create -f kube/grafana.yml $ kubectl get pods $ sensuctl entity list