Two months ago, a monitoring system based on the Elasticsearch + xpack (watch) was tested, and a problem was found: Elasticsearch performance was poor when used as a timing database, in my current hardware configuration (es host memory 8G), using Grafana When displaying data for more than two months, there is a noticeable lag in reading the data, and ES has a resource occupancy rate of almost 100%. So I tried the Influxdb+kapacitor-based monitoring system.
1. Data Search Performance
Initial impression: Influxdb performance is better than ES when searching for large amounts of time series data. May be ES and influxdb positioning is different, one is full-text search engine, one is a time series database, the operation has specialized.
2. Resource occupancy rate
The INFLUXDB resource occupancy rate is significantly lower than ES, and may be related to it in the Go language
3. Alarm function
The Kapacitor function of influx is similar to the ES watch (in the X-pack package) and can be used as an alarm, influx also provides a UI system Chronograf to manage Kapacitor, with Chronograf can be accessible Write Alarm monitoring tasks. This is much more convenient than es watch.
Kapacitor supports HTTP POST to send alarm information, data is in JSON format, where the value of the "message" key can be customized. In order to be able to send SMS alarm via HTTP POST, I have also written a restful SMS sending server, can receive JSON data containing "message" Key value, ("message" value includes mobile phone number and text message content, with | Separate) and send SMS:
{"Message": "138000000,156000000 | SMS Alert Content "}
Attached: Create Kapacitor monitor alarm task via Chronograf
* Select time Series data
* Set Alarm conditions
* Set ALARM Information
[Experience exchange] try the Influxdb+kapacitor based monitoring system