With the advent of the container era, the company's understanding of DevOps and other concepts is becoming more and more profound, business system architecture is constantly adjusting to the micro-service architecture. Business systems are also constantly providing more API interfaces for easy and flexible invocation. In this business context, the sense of the Business System monitoring System (Zabbix, cacti), and so on, slightly cumbersome, in the use of flexibility and feel slightly less.
So is there a new monitoring system that can be used to become more flexible and more convenient to use, based on the need to meet the monitoring requirements?
The answer is yes, there, the individual looked up some information, simple collation, the following simple description:
The monitoring system is generally divided into several blocks:
Data acquisition
Data storage
Data display
Alarm (post-discussion)
The corresponding find service is as follows:
Data collection (TELEGRAF), storage data (InfluxDB), display (Grafana)
The following describes the characteristics of each service:
1:telegraf
Telegraf is a Go-written agent that collects statistics about systems and services and writes them to the InfluxDB database.
The Telegraf features a small footprint that allows developers of plug-in systems to easily add extensions that support other services.
Personal experience:
1: Monitoring plug-in to meet the mainstream monitoring needs;
2: Add monitoring items in a simple and flexible way;
3: Monitoring item modularization, convenient automatic program call;
Website Reference Address
https://docs.influxdata.com/telegraf/v0.11/
2:influxdb
InfluxDB is an open source distributed timing, event, and metrics database. Written in the Go language without external dependencies. Its design goal is to achieve distributed and horizontal scaling expansion.
1, it has three major features:
1. Time series (timeseries): You can use time-related functions (such as Max, Min, sum, etc.)
2. Metrics (Metric): You can calculate large amounts of data in real time
3. Eevents (Event): It supports arbitrary event data
2. Features
Schemaless (unstructured), can be any number of columns
Scalable
Min, max, sum, count, mean, median a series of functions for convenient statistics
Native http API, built-in HTTP support, read and write using HTTP
Powerful Query Language similar to SQL
Built-in Explorer comes with management tools
3. API
InfluxDB supports two API modes
HTTP API
Protobuf API
Personal experience:
1: Data for monitoring and health;
2: Convenient expansion;
3: Management, use is very cool;
3:grafana
Grafana is a purely HTML/JS application that accesses influxdb without the restriction of cross-domain access. As long as you have configured the data source for Influxdb, the rest of the work is to configure the chart. The Grafana feature is very powerful.
Use Elasticssearch to save the dashboard definition file, or Export the JSON file (save->advanced->export Schema) and upload it back to its/app/dashboards directory.
Personal experience:
1:gafana is too strong, display monitoring data is a piece of cake;
2: Rich data source interface, all kinds of data can be connected, display in Gafana;
3: Rich API interface, easy to automate program calls;
4: Monitoring dashboard Import, export, this is very good, do a more satisfactory display panel, export after the main modification of the inside of the IP and other information, through the import, the display of other hosts all done.
The above is only a personal summary of a point, the pros and cons also need everyone's comments, the following is my installation and deployment of some information, provide references, deficiencies please correct me.
TELEGRAF Installation Deployment Detailed
INFLUXDB Installation Configuration Detailed
Grafana Installation Configuration Detailed
This article from "Kang Jianhua" blog, reproduced please contact the author!
Next-generation monitoring platform integrates Telegraf, INFLUXDB, Garafana