A monitor system that collect host information(e.g.:cpu usage, memory, network etc.) and application information which reported by the application itself over UDP, then send to backend services, such as influxdb, mongodb, nsq and so on periodically. And if the data is send to influxdb, the server will supply web and server to show all the information.
There are two parts, agent and server. The agent will work fine without server. The server only works with influxdb and supply a couple of http interfaces for web pages. If influxdb is used as one of the output, Grafana could also used to show the information.
A golang version 1.8 and above is needed.
git clone git@github.com:DarkMetrix/monitor.git
$cd DarkMetrix/monitor/agent/src
$go build -o ../bin/dm_monitor_agent
$cd DarkMetrix/monitor/agent/plugin/input
$go build -buildmode=plugin node.go
$go build -buildmode=plugin cpu.go
$go build -buildmode=plugin filesystem.go
$go build -buildmode=plugin interfaces.go
$go build -buildmode=plugin memory.go
$go build -buildmode=plugin net.go
$go build -buildmode=plugin process.go
$go build -buildmode=plugin page.go
$go build -buildmode=plugin application.go
$cd DarkMetrix/monitor/agent/plugin/output
$go build -buildmode=plugin console.go
$go build -buildmode=plugin nsq.go
$go build -buildmode=plugin mongodb.go
$go build -buildmode=plugin influxdb.go
$../../admin/start.sh
$cd DarkMetrix/monitor/server/src
$go build -o ../bin/dm_log_server
$../admin/start.sh
All configuration file is in json.
See DarkMetrix/monitor/agent to get more information.
See DarkMetrix/monitor/server to get more information.
- Monitor server's web
- Alarm system
- Some other monitor agent plugin, such as nginx, mysql etc.
MIT license
- github.com/cihub/seelog BSD License
- github.com/akhenakh/statgo MIT License
- github.com/influxdata/influxdb/client/v2 BSD License
- gopkg.in/mgo.v2 MIT License
- github.com/nsqio/go-nsq MIT License
- github.com/gin-gonic/gin MIT License
- github.com/spf13/viper MIT License