If you deploy the TiKV cluster using TiUP, the monitoring and alert services are automatically deployed, and no manual deployment is needed.

Assume that the TiKV cluster topology is as follows:

  1. # Extracts the package.
  2. tar -xzf prometheus-2.8.1.linux-amd64.tar.gz
  3. tar -xzf node_exporter-0.17.0.linux-amd64.tar.gz
  4. tar -xzf grafana-6.1.6.linux-amd64.tar.gz

Step 2: Start node_exporter on all nodes

  1. cd node_exporter-0.17.0.linux-amd64
  2. # Starts the node_exporter service.
  3. $ ./node_exporter --web.listen-address=":9100" \
  4. --log.level="info" &

Edit the Prometheus configuration file:

  1. ...
  2. global:
  3. scrape_interval: 15s # By default, scrape targets every 15 seconds.
  4. evaluation_interval: 15s # By default, scrape targets every 15 seconds.
  5. # scrape_timeout is set to the global default value (10s).
  6. external_labels:
  7. cluster: 'test-cluster'
  8. monitor: "prometheus"
  9. scrape_configs:
  10. - job_name: 'overwritten-nodes'
  11. honor_labels: true # Do not overwrite job & instance labels.
  12. static_configs:
  13. - targets:
  14. - '192.168.199.113:9100'
  15. - '192.168.199.114:9100'
  16. - '192.168.199.115:9100'
  17. - '192.168.199.116:9100'
  18. - '192.168.199.117:9100'
  19. - '192.168.199.118:9100'
  20. static_configs:
  21. - targets:
  22. - '192.168.199.113:2379'
  23. - '192.168.199.114:2379'
  24. - '192.168.199.115:2379'
  25. - job_name: 'tikv'
  26. honor_labels: true # Do not overwrite job & instance labels.
  27. static_configs:
  28. - targets:
  29. - '192.168.199.116:20180'
  30. - '192.168.199.117:20180'
  31. - '192.168.199.118:20180'
  32. ...

Start the Prometheus service:

  1. $ ./prometheus \
  2. --config.file="./prometheus.yml" \
  3. --web.listen-address=":9090" \
  4. --web.external-url="http://192.168.199.113:9090/" \
  5. --web.enable-admin-api \
  6. --log.level="info" \
  7. --storage.tsdb.path="./data.metrics" \
  8. --storage.tsdb.retention="15d" &

Step 4: Start Grafana on Node1

Edit the Grafana configuration file:

  1. ...
  2. [paths]
  3. data = ./data
  4. logs = ./data/log
  5. plugins = ./data/plugins
  6. [server]
  7. http_port = 3000
  8. [database]
  9. [session]
  10. [analytics]
  11. check_for_updates = true
  12. [security]
  13. admin_user = admin
  14. admin_password = admin
  15. [snapshots]
  16. [auth.anonymous]
  17. [auth.basic]
  18. [auth.ldap]
  19. [smtp]
  20. [emails]
  21. [log]
  22. mode = file
  23. [log.console]
  24. [log.file]
  25. level = info
  26. format = text
  27. [log.syslog]
  28. [event_publisher]
  29. [dashboards.json]
  30. enabled = false
  31. path = ./data/dashboards
  32. [metrics]
  33. [grafana_net]
  34. url = https://grafana.net
  35. ...

Start the Grafana service:

  1. $ ./bin/grafana-server \
  2. --config="./conf/grafana.ini" &
  1. Log in to the Grafana Web interface.

    For the Change Password step, you can choose Skip.

  2. In the Grafana sidebar menu, click Data Source within the Configuration.

  3. Click Add data source.

  4. Specify the data source information.

    • Specify a Name for the data source.
    • For Type, select Prometheus.
    • For URL, specify the Prometheus address.
    • Specify other fields as needed.
  5. Click Add to save the new data source.

Step 2: Import a Grafana dashboard

To import a Grafana dashboard for the PD server and the TiKV server, take the following steps respectively:

  1. In the sidebar menu, click Dashboards -> Import to open the Import Dashboard window.

  2. Click Upload .json File to upload a JSON file (Download TiKV Grafana configuration file and ).

  3. Click Load.

  4. Select a Prometheus data source.

Click New dashboard in the top menu and choose the dashboard you want to view.