Add input plugin for monit (#6850)
This commit is contained in:
		
							parent
							
								
									9747fa7f07
								
							
						
					
					
						commit
						9fd400c9ac
					
				|  | @ -91,6 +91,7 @@ import ( | ||||||
| 	_ "github.com/influxdata/telegraf/plugins/inputs/mesos" | 	_ "github.com/influxdata/telegraf/plugins/inputs/mesos" | ||||||
| 	_ "github.com/influxdata/telegraf/plugins/inputs/minecraft" | 	_ "github.com/influxdata/telegraf/plugins/inputs/minecraft" | ||||||
| 	_ "github.com/influxdata/telegraf/plugins/inputs/mongodb" | 	_ "github.com/influxdata/telegraf/plugins/inputs/mongodb" | ||||||
|  | 	_ "github.com/influxdata/telegraf/plugins/inputs/monit" | ||||||
| 	_ "github.com/influxdata/telegraf/plugins/inputs/mqtt_consumer" | 	_ "github.com/influxdata/telegraf/plugins/inputs/mqtt_consumer" | ||||||
| 	_ "github.com/influxdata/telegraf/plugins/inputs/multifile" | 	_ "github.com/influxdata/telegraf/plugins/inputs/multifile" | ||||||
| 	_ "github.com/influxdata/telegraf/plugins/inputs/mysql" | 	_ "github.com/influxdata/telegraf/plugins/inputs/mysql" | ||||||
|  |  | ||||||
|  | @ -0,0 +1,148 @@ | ||||||
|  | # Monit Plugin | ||||||
|  | 
 | ||||||
|  | The monit plugin gathers metrics and status information about local processes,  | ||||||
|  | remote hosts, file, file systems, directories and network interfaces managed and watched over by Monit. | ||||||
|  | 
 | ||||||
|  | To install Monit agent on the host please refer to the link https://mmonit.com/wiki/Monit/Installation | ||||||
|  | 
 | ||||||
|  | Minimum Version of Monit tested with is 5.16 | ||||||
|  | 
 | ||||||
|  | ### Configuration: | ||||||
|  | 
 | ||||||
|  | ```toml | ||||||
|  | # Read metrics and status information about processes managed by Monit | ||||||
|  |  [[inputs.monit]] | ||||||
|  |    #SampleConfig | ||||||
|  |    address = "http://127.0.0.1:2812" | ||||||
|  |    basic_auth_username = "test" | ||||||
|  |    basic_auth_password = "test" | ||||||
|  | ``` | ||||||
|  | 
 | ||||||
|  | ### Tags: | ||||||
|  | All measurements have the following tags: | ||||||
|  | - address | ||||||
|  | - version | ||||||
|  | - service | ||||||
|  | - paltform_name | ||||||
|  | - status | ||||||
|  | - monitoring_status | ||||||
|  | - monitoring_mode | ||||||
|  | 
 | ||||||
|  | ### Measurements & Fields: | ||||||
|  | 
 | ||||||
|  | <optional description> | ||||||
|  | 
 | ||||||
|  | ### Fields: | ||||||
|  | Fields for all Monit service types: | ||||||
|  | - status_code | ||||||
|  | - monitoring_status_code | ||||||
|  | - monitoring_mode_code  | ||||||
|  | 
 | ||||||
|  | ### Measurement & Fields: | ||||||
|  | Fields for Monit service type Filesystem: | ||||||
|  | - Measurement: | ||||||
|  |   - monit_filesystem | ||||||
|  | - Fields: | ||||||
|  |   - mode | ||||||
|  |   - block_percent | ||||||
|  |   - block_usage | ||||||
|  |   - block_total | ||||||
|  |   - inode_percent | ||||||
|  |   - inode_usage | ||||||
|  |   - inode_total | ||||||
|  | 
 | ||||||
|  | Fields for Monit service type directory: | ||||||
|  | - Measurement: | ||||||
|  |   - monit_directory | ||||||
|  | - Fields: | ||||||
|  |   - permissions | ||||||
|  | 
 | ||||||
|  | Fields for Monit service type file: | ||||||
|  | - Measurement: | ||||||
|  |   - monit_file | ||||||
|  | - Fields: | ||||||
|  |   - size | ||||||
|  |   - permissions | ||||||
|  | 
 | ||||||
|  | Fields for Monit service type process: | ||||||
|  | - Measurement: | ||||||
|  |   - monit_process | ||||||
|  | - Fields: | ||||||
|  |   - cpu_percent | ||||||
|  |   - cpu_percent_total | ||||||
|  |   - mem_kb | ||||||
|  |   - mem_kb_total | ||||||
|  |   - mem_percent | ||||||
|  |   - mem_percent_total | ||||||
|  |   - pid | ||||||
|  |   - parent_pid | ||||||
|  |   - threads | ||||||
|  |   - children | ||||||
|  | 
 | ||||||
|  | Fields for Monit service type remote host: | ||||||
|  | - Measurement: | ||||||
|  |   - monit_remote_host | ||||||
|  | - Fields: | ||||||
|  |   - hostname | ||||||
|  |   - port_number | ||||||
|  |   - request | ||||||
|  |   - protocol | ||||||
|  |   - type | ||||||
|  | 
 | ||||||
|  | Fields for Monit service type system: | ||||||
|  | - Measurement: | ||||||
|  |   - monit_system | ||||||
|  | - Fields: | ||||||
|  |   - cpu_system | ||||||
|  |   - cpu_user | ||||||
|  |   - cpu_wait | ||||||
|  |   - cpu_load_avg_1m | ||||||
|  |   - cpu_load_avg_5m | ||||||
|  |   - cpu_load_avg_15m | ||||||
|  |   - mem_kb | ||||||
|  |   - mem_percent | ||||||
|  |   - swap_kb | ||||||
|  |   - swap_percent | ||||||
|  | 
 | ||||||
|  | Fields for Monit service type fifo: | ||||||
|  | - Measurement: | ||||||
|  |   - monit_fifo | ||||||
|  | - Fields: | ||||||
|  |   - permissions | ||||||
|  | 
 | ||||||
|  | Fields for Monit service type program: | ||||||
|  | - Measurement: | ||||||
|  |   - monit_program | ||||||
|  | - Fields: | ||||||
|  |   - last_started_time | ||||||
|  |   - program_status | ||||||
|  | 
 | ||||||
|  | Fields for Monit service type network: | ||||||
|  | - Measurement: | ||||||
|  |   - monit_network | ||||||
|  | - Fields: | ||||||
|  |   - link_state | ||||||
|  |   - link_mode | ||||||
|  |   - link_speed | ||||||
|  |   - download_packets_now | ||||||
|  |   - download_packets_total | ||||||
|  |   - download_bytes_now | ||||||
|  |   - download_bytes_total | ||||||
|  |   - download_errors_now | ||||||
|  |   - download_errors_total | ||||||
|  |   - upload_packets_now | ||||||
|  |   - upload_packets_total | ||||||
|  |   - upload_bytes_now | ||||||
|  |   - upload_bytes_total | ||||||
|  |   - upload_errors_now | ||||||
|  |   - upload_errors_total | ||||||
|  | 
 | ||||||
|  | ### Example Output: | ||||||
|  | ``` | ||||||
|  | $ ./telegraf -config telegraf.conf -input-filter monit -test | ||||||
|  | monit_system,address=http://localhost:2812,host=verizon-onap,hostname=verizon-onap,monitoring_mode=Monitoring\ mode:\ \ active,monitoring_status=Monitoring\ status:\ \ Monitored,platform_name=Linux,service=verizon-onap,status=Running,version=5.16 status_code=0i,cpu_system=1.9,cpu_user=4.7,cpu_wait=1.5,cpu_load_avg_1m=1.24,cpu_load_avg_5m=1.68,mem_percent=67.1,monitoring_status_code=1i,monitoring_mode_code=0i,cpu_load_avg_15m=1.64,mem_kb=10961012i,swap_kb=2322688,swap_percent=13.9 1578636430000000000 | ||||||
|  | monit_remote_host,address=http://localhost:2812,host=verizon-onap,hostname=verizon-onap,monitoring_mode=Monitoring\ mode:\ \ passive,monitoring_status=Monitoring\ status:\ \ Monitored,platform_name=Linux,service=testing,status=Failure,version=5.16 status_code=32i,monitoring_status_code=1i,monitoring_mode_code=1i,remote_hostname="192.168.10.49",port_number=2220i,request="",protocol="DEFAULT",type="TCP" 1578636430000000000 | ||||||
|  | monit_fifo,address=http://localhost:2812,host=verizon-onap,hostname=verizon-onap,monitoring_mode=Monitoring\ mode:\ \ active,monitoring_status=Monitoring\ status:\ \ Monitored,platform_name=Linux,service=test2,status=Running,version=5.16 status_code=0i,monitoring_status_code=1i,monitoring_mode_code=0i,permissions=664i 1578636430000000000 | ||||||
|  | monit_network,address=http://localhost:2812,host=verizon-onap,hostname=verizon-onap,monitoring_mode=Monitoring\ mode:\ \ active,monitoring_status=Monitoring\ status:\ \ Monitored,platform_name=Linux,service=test1,status=Failure,version=5.16 monitoring_status_code=1i,monitoring_mode_code=0i,download_packets_total=0i,upload_bytes_now=0i,download_errors_total=0i,status_code=8388608i,link_speed=-1i,link_mode="Unknown Mode",download_bytes_now=0i,download_bytes_total=0i,download_errors_now=0i,upload_packets_total=0i,upload_bytes_total=0i,upload_errors_now=0i,upload_errors_total=0i,link_state=0i,download_packets_now=0i,upload_packets_now=0i 1578636430000000000 | ||||||
|  | monit_directory,address=http://localhost:2812,host=verizon-onap,hostname=verizon-onap,monitoring_mode=Monitoring\ mode:\ \ passive,monitoring_status=Monitoring\ status:\ \ Monitored,platform_name=Linux,service=test,status=Running,version=5.16 status_code=0i,monitoring_status_code=1i,monitoring_mode_code=1i,permissions=755i 1578636430000000000 | ||||||
|  | ``` | ||||||
|  | @ -0,0 +1,434 @@ | ||||||
|  | package monit | ||||||
|  | 
 | ||||||
|  | import ( | ||||||
|  | 	"encoding/xml" | ||||||
|  | 	"fmt" | ||||||
|  | 	"github.com/influxdata/telegraf" | ||||||
|  | 	"github.com/influxdata/telegraf/internal" | ||||||
|  | 	"github.com/influxdata/telegraf/internal/tls" | ||||||
|  | 	"github.com/influxdata/telegraf/plugins/inputs" | ||||||
|  | 	"golang.org/x/net/html/charset" | ||||||
|  | 	"net/http" | ||||||
|  | ) | ||||||
|  | 
 | ||||||
|  | const ( | ||||||
|  | 	fileSystem string = "0" | ||||||
|  | 	directory         = "1" | ||||||
|  | 	file              = "2" | ||||||
|  | 	process           = "3" | ||||||
|  | 	remoteHost        = "4" | ||||||
|  | 	system            = "5" | ||||||
|  | 	fifo              = "6" | ||||||
|  | 	program           = "7" | ||||||
|  | 	network           = "8" | ||||||
|  | ) | ||||||
|  | 
 | ||||||
|  | var pendingActions = []string{"ignore", "alert", "restart", "stop", "exec", "unmonitor", "start", "monitor"} | ||||||
|  | 
 | ||||||
|  | type Status struct { | ||||||
|  | 	Server   Server    `xml:"server"` | ||||||
|  | 	Platform Platform  `xml:"platform"` | ||||||
|  | 	Services []Service `xml:"service"` | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | type Server struct { | ||||||
|  | 	ID            string `xml:"id"` | ||||||
|  | 	Version       string `xml:"version"` | ||||||
|  | 	Uptime        int64  `xml:"uptime"` | ||||||
|  | 	Poll          int    `xml:"poll"` | ||||||
|  | 	LocalHostname string `xml:"localhostname"` | ||||||
|  | 	StartDelay    int    `xml:"startdelay"` | ||||||
|  | 	ControlFile   string `xml:"controlfile"` | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | type Platform struct { | ||||||
|  | 	Name    string `xml:"name"` | ||||||
|  | 	Release string `xml:"release"` | ||||||
|  | 	Version string `xml:"version"` | ||||||
|  | 	Machine string `xml:"machine"` | ||||||
|  | 	CPU     int    `xml:"cpu"` | ||||||
|  | 	Memory  int    `xml:"memory"` | ||||||
|  | 	Swap    int    `xml:"swap"` | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | type Service struct { | ||||||
|  | 	Type             string  `xml:"type,attr"` | ||||||
|  | 	Name             string  `xml:"name"` | ||||||
|  | 	Status           int     `xml:"status"` | ||||||
|  | 	MonitoringStatus int     `xml:"monitor"` | ||||||
|  | 	MonitorMode      int     `xml:"monitormode"` | ||||||
|  | 	PendingAction    int     `xml:"pendingaction"` | ||||||
|  | 	Memory           Memory  `xml:"memory"` | ||||||
|  | 	CPU              CPU     `xml:"cpu"` | ||||||
|  | 	System           System  `xml:"system"` | ||||||
|  | 	Size             int64   `xml:"size"` | ||||||
|  | 	Mode             int     `xml:"mode"` | ||||||
|  | 	Program          Program `xml:"program"` | ||||||
|  | 	Block            Block   `xml:"block"` | ||||||
|  | 	Inode            Inode   `xml:"inode"` | ||||||
|  | 	Pid              int64   `xml:"pid"` | ||||||
|  | 	ParentPid        int64   `xml:"ppid"` | ||||||
|  | 	Threads          int     `xml:"threads"` | ||||||
|  | 	Children         int     `xml:"children"` | ||||||
|  | 	Port             Port    `xml:"port"` | ||||||
|  | 	Link             Link    `xml:"link"` | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | type Link struct { | ||||||
|  | 	State    int      `xml:"state"` | ||||||
|  | 	Speed    int64    `xml:"speed"` | ||||||
|  | 	Duplex   int      `xml:"duplex"` | ||||||
|  | 	Download Download `xml:"download"` | ||||||
|  | 	Upload   Upload   `xml:"upload"` | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | type Download struct { | ||||||
|  | 	Packets struct { | ||||||
|  | 		Now   int64 `xml:"now"` | ||||||
|  | 		Total int64 `xml:"total"` | ||||||
|  | 	} `xml:"packets"` | ||||||
|  | 	Bytes struct { | ||||||
|  | 		Now   int64 `xml:"now"` | ||||||
|  | 		Total int64 `xml:"total"` | ||||||
|  | 	} `xml:"bytes"` | ||||||
|  | 	Errors struct { | ||||||
|  | 		Now   int64 `xml:"now"` | ||||||
|  | 		Total int64 `xml:"total"` | ||||||
|  | 	} `xml:"errors"` | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | type Upload struct { | ||||||
|  | 	Packets struct { | ||||||
|  | 		Now   int64 `xml:"now"` | ||||||
|  | 		Total int64 `xml:"total"` | ||||||
|  | 	} `xml:"packets"` | ||||||
|  | 	Bytes struct { | ||||||
|  | 		Now   int64 `xml:"now"` | ||||||
|  | 		Total int64 `xml:"total"` | ||||||
|  | 	} `xml:"bytes"` | ||||||
|  | 	Errors struct { | ||||||
|  | 		Now   int64 `xml:"now"` | ||||||
|  | 		Total int64 `xml:"total"` | ||||||
|  | 	} `xml:"errors"` | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | type Port struct { | ||||||
|  | 	Hostname   string `xml:"hostname"` | ||||||
|  | 	PortNumber int64  `xml:"portnumber"` | ||||||
|  | 	Request    string `xml:"request"` | ||||||
|  | 	Protocol   string `xml:"protocol"` | ||||||
|  | 	Type       string `xml:"type"` | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | type Block struct { | ||||||
|  | 	Percent float64 `xml:"percent"` | ||||||
|  | 	Usage   float64 `xml:"usage"` | ||||||
|  | 	Total   float64 `xml:"total"` | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | type Inode struct { | ||||||
|  | 	Percent float64 `xml:"percent"` | ||||||
|  | 	Usage   float64 `xml:"usage"` | ||||||
|  | 	Total   float64 `xml:"total"` | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | type Program struct { | ||||||
|  | 	Started int64 `xml:"started"` | ||||||
|  | 	Status  int   `xml:"status"` | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | type Memory struct { | ||||||
|  | 	Percent       float64 `xml:"percent"` | ||||||
|  | 	PercentTotal  float64 `xml:"percenttotal"` | ||||||
|  | 	Kilobyte      int64   `xml:"kilobyte"` | ||||||
|  | 	KilobyteTotal int64   `xml:"kilobytetotal"` | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | type CPU struct { | ||||||
|  | 	Percent      float64 `xml:"percent"` | ||||||
|  | 	PercentTotal float64 `xml:"percenttotal"` | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | type System struct { | ||||||
|  | 	Load struct { | ||||||
|  | 		Avg01 float64 `xml:"avg01"` | ||||||
|  | 		Avg05 float64 `xml:"avg05"` | ||||||
|  | 		Avg15 float64 `xml:"avg15"` | ||||||
|  | 	} `xml:"load"` | ||||||
|  | 	CPU struct { | ||||||
|  | 		User   float64 `xml:"user"` | ||||||
|  | 		System float64 `xml:"system"` | ||||||
|  | 		Wait   float64 `xml:"wait"` | ||||||
|  | 	} `xml:"cpu"` | ||||||
|  | 	Memory struct { | ||||||
|  | 		Percent  float64 `xml:"percent"` | ||||||
|  | 		Kilobyte int64   `xml:"kilobyte"` | ||||||
|  | 	} `xml:"memory"` | ||||||
|  | 	Swap struct { | ||||||
|  | 		Percent  float64 `xml:"percent"` | ||||||
|  | 		Kilobyte float64 `xml:"kilobyte"` | ||||||
|  | 	} `xml:"swap"` | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | type Monit struct { | ||||||
|  | 	Address  string `toml:"address"` | ||||||
|  | 	Username string `toml:"username"` | ||||||
|  | 	Password string `toml:"password"` | ||||||
|  | 	client   HTTPClient | ||||||
|  | 	tls.ClientConfig | ||||||
|  | 	Timeout internal.Duration `toml:"timeout"` | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | type HTTPClient interface { | ||||||
|  | 	MakeRequest(req *http.Request) (*http.Response, error) | ||||||
|  | 
 | ||||||
|  | 	SetHTTPClient(client *http.Client) | ||||||
|  | 	HTTPClient() *http.Client | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | type Messagebody struct { | ||||||
|  | 	Metrics []string `json:"metrics"` | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | type RealHTTPClient struct { | ||||||
|  | 	client *http.Client | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | func (c *RealHTTPClient) MakeRequest(req *http.Request) (*http.Response, error) { | ||||||
|  | 	return c.client.Do(req) | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | func (c *RealHTTPClient) SetHTTPClient(client *http.Client) { | ||||||
|  | 	c.client = client | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | func (c *RealHTTPClient) HTTPClient() *http.Client { | ||||||
|  | 	return c.client | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | func (m *Monit) Description() string { | ||||||
|  | 	return "Read metrics and status information about processes managed by Monit" | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | var sampleConfig = ` | ||||||
|  |   ## Monit | ||||||
|  |   address = "http://127.0.0.1:2812" | ||||||
|  | 
 | ||||||
|  |   ## Username and Password for Monit | ||||||
|  |   username = "" | ||||||
|  |   password = "" | ||||||
|  | 
 | ||||||
|  |   ## Amount of time allowed to complete the HTTP request | ||||||
|  |   # timeout = "5s" | ||||||
|  | 
 | ||||||
|  |   ## Optional TLS Config | ||||||
|  |   # tls_ca = "/etc/telegraf/ca.pem" | ||||||
|  |   # tls_cert = "/etc/telegraf/cert.pem" | ||||||
|  |   # tls_key = "/etc/telegraf/key.pem" | ||||||
|  |   ## Use TLS but skip chain & host verification | ||||||
|  |   # insecure_skip_verify = false | ||||||
|  | ` | ||||||
|  | 
 | ||||||
|  | func (m *Monit) SampleConfig() string { | ||||||
|  | 	return sampleConfig | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | func (m *Monit) Init() error { | ||||||
|  | 	tlsCfg, err := m.ClientConfig.TLSConfig() | ||||||
|  | 	if err != nil { | ||||||
|  | 		return err | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	client := &http.Client{ | ||||||
|  | 		Transport: &http.Transport{ | ||||||
|  | 			TLSClientConfig: tlsCfg, | ||||||
|  | 			Proxy:           http.ProxyFromEnvironment, | ||||||
|  | 		}, | ||||||
|  | 		Timeout: m.Timeout.Duration, | ||||||
|  | 	} | ||||||
|  | 	m.client.SetHTTPClient(client) | ||||||
|  | 	return nil | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | func (m *Monit) Gather(acc telegraf.Accumulator) error { | ||||||
|  | 
 | ||||||
|  | 	req, err := http.NewRequest("GET", fmt.Sprintf("%s/_status?format=xml", m.Address), nil) | ||||||
|  | 	if err != nil { | ||||||
|  | 		return err | ||||||
|  | 	} | ||||||
|  | 	if len(m.Username) > 0 || len(m.Password) > 0 { | ||||||
|  | 		req.SetBasicAuth(m.Username, m.Password) | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	resp, err := m.client.MakeRequest(req) | ||||||
|  | 	if err != nil { | ||||||
|  | 		return err | ||||||
|  | 	} | ||||||
|  | 	defer resp.Body.Close() | ||||||
|  | 
 | ||||||
|  | 	if resp.StatusCode == 200 { | ||||||
|  | 
 | ||||||
|  | 		var status Status | ||||||
|  | 		decoder := xml.NewDecoder(resp.Body) | ||||||
|  | 		decoder.CharsetReader = charset.NewReaderLabel | ||||||
|  | 		if err := decoder.Decode(&status); err != nil { | ||||||
|  | 			return fmt.Errorf("error parsing input: %v", err) | ||||||
|  | 		} | ||||||
|  | 
 | ||||||
|  | 		tags := map[string]string{ | ||||||
|  | 			"version":       status.Server.Version, | ||||||
|  | 			"source":        status.Server.LocalHostname, | ||||||
|  | 			"platform_name": status.Platform.Name, | ||||||
|  | 		} | ||||||
|  | 
 | ||||||
|  | 		for _, service := range status.Services { | ||||||
|  | 			fields := make(map[string]interface{}) | ||||||
|  | 			tags["status"] = serviceStatus(service) | ||||||
|  | 			fields["status_code"] = service.Status | ||||||
|  | 			tags["pending_action"] = pendingAction(service) | ||||||
|  | 			fields["pending_action_code"] = service.PendingAction | ||||||
|  | 			tags["monitoring_status"] = monitoringStatus(service) | ||||||
|  | 			fields["monitoring_status_code"] = service.MonitoringStatus | ||||||
|  | 			tags["monitoring_mode"] = monitoringMode(service) | ||||||
|  | 			fields["monitoring_mode_code"] = service.MonitorMode | ||||||
|  | 			tags["service"] = service.Name | ||||||
|  | 			if service.Type == fileSystem { | ||||||
|  | 				fields["mode"] = service.Mode | ||||||
|  | 				fields["block_percent"] = service.Block.Percent | ||||||
|  | 				fields["block_usage"] = service.Block.Usage | ||||||
|  | 				fields["block_total"] = service.Block.Total | ||||||
|  | 				fields["inode_percent"] = service.Inode.Percent | ||||||
|  | 				fields["inode_usage"] = service.Inode.Usage | ||||||
|  | 				fields["inode_total"] = service.Inode.Total | ||||||
|  | 				acc.AddFields("monit_filesystem", fields, tags) | ||||||
|  | 			} else if service.Type == directory { | ||||||
|  | 				fields["mode"] = service.Mode | ||||||
|  | 				acc.AddFields("monit_directory", fields, tags) | ||||||
|  | 			} else if service.Type == file { | ||||||
|  | 				fields["size"] = service.Size | ||||||
|  | 				fields["mode"] = service.Mode | ||||||
|  | 				acc.AddFields("monit_file", fields, tags) | ||||||
|  | 			} else if service.Type == process { | ||||||
|  | 				fields["cpu_percent"] = service.CPU.Percent | ||||||
|  | 				fields["cpu_percent_total"] = service.CPU.PercentTotal | ||||||
|  | 				fields["mem_kb"] = service.Memory.Kilobyte | ||||||
|  | 				fields["mem_kb_total"] = service.Memory.KilobyteTotal | ||||||
|  | 				fields["mem_percent"] = service.Memory.Percent | ||||||
|  | 				fields["mem_percent_total"] = service.Memory.PercentTotal | ||||||
|  | 				fields["pid"] = service.Pid | ||||||
|  | 				fields["parent_pid"] = service.ParentPid | ||||||
|  | 				fields["threads"] = service.Threads | ||||||
|  | 				fields["children"] = service.Children | ||||||
|  | 				acc.AddFields("monit_process", fields, tags) | ||||||
|  | 			} else if service.Type == remoteHost { | ||||||
|  | 				fields["remote_hostname"] = service.Port.Hostname | ||||||
|  | 				fields["port_number"] = service.Port.PortNumber | ||||||
|  | 				fields["request"] = service.Port.Request | ||||||
|  | 				fields["protocol"] = service.Port.Protocol | ||||||
|  | 				fields["type"] = service.Port.Type | ||||||
|  | 				acc.AddFields("monit_remote_host", fields, tags) | ||||||
|  | 			} else if service.Type == system { | ||||||
|  | 				fields["cpu_system"] = service.System.CPU.System | ||||||
|  | 				fields["cpu_user"] = service.System.CPU.User | ||||||
|  | 				fields["cpu_wait"] = service.System.CPU.Wait | ||||||
|  | 				fields["cpu_load_avg_1m"] = service.System.Load.Avg01 | ||||||
|  | 				fields["cpu_load_avg_5m"] = service.System.Load.Avg05 | ||||||
|  | 				fields["cpu_load_avg_15m"] = service.System.Load.Avg15 | ||||||
|  | 				fields["mem_kb"] = service.System.Memory.Kilobyte | ||||||
|  | 				fields["mem_percent"] = service.System.Memory.Percent | ||||||
|  | 				fields["swap_kb"] = service.System.Swap.Kilobyte | ||||||
|  | 				fields["swap_percent"] = service.System.Swap.Percent | ||||||
|  | 				acc.AddFields("monit_system", fields, tags) | ||||||
|  | 			} else if service.Type == fifo { | ||||||
|  | 				fields["mode"] = service.Mode | ||||||
|  | 				acc.AddFields("monit_fifo", fields, tags) | ||||||
|  | 			} else if service.Type == program { | ||||||
|  | 				fields["program_started"] = service.Program.Started * 10000000 | ||||||
|  | 				fields["program_status"] = service.Program.Status | ||||||
|  | 				acc.AddFields("monit_program", fields, tags) | ||||||
|  | 			} else if service.Type == network { | ||||||
|  | 				fields["link_state"] = service.Link.State | ||||||
|  | 				fields["link_speed"] = service.Link.Speed | ||||||
|  | 				fields["link_mode"] = linkMode(service) | ||||||
|  | 				fields["download_packets_now"] = service.Link.Download.Packets.Now | ||||||
|  | 				fields["download_packets_total"] = service.Link.Download.Packets.Total | ||||||
|  | 				fields["download_bytes_now"] = service.Link.Download.Bytes.Now | ||||||
|  | 				fields["download_bytes_total"] = service.Link.Download.Bytes.Total | ||||||
|  | 				fields["download_errors_now"] = service.Link.Download.Errors.Now | ||||||
|  | 				fields["download_errors_total"] = service.Link.Download.Errors.Total | ||||||
|  | 				fields["upload_packets_now"] = service.Link.Upload.Packets.Now | ||||||
|  | 				fields["upload_packets_total"] = service.Link.Upload.Packets.Total | ||||||
|  | 				fields["upload_bytes_now"] = service.Link.Upload.Bytes.Now | ||||||
|  | 				fields["upload_bytes_total"] = service.Link.Upload.Bytes.Total | ||||||
|  | 				fields["upload_errors_now"] = service.Link.Upload.Errors.Now | ||||||
|  | 				fields["upload_errors_total"] = service.Link.Upload.Errors.Total | ||||||
|  | 				acc.AddFields("monit_network", fields, tags) | ||||||
|  | 			} | ||||||
|  | 		} | ||||||
|  | 	} else { | ||||||
|  | 		return fmt.Errorf("received status code %d (%s), expected 200", | ||||||
|  | 			resp.StatusCode, | ||||||
|  | 			http.StatusText(resp.StatusCode)) | ||||||
|  | 
 | ||||||
|  | 	} | ||||||
|  | 	return nil | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | func linkMode(s Service) string { | ||||||
|  | 	if s.Link.Duplex == 1 { | ||||||
|  | 		return "duplex" | ||||||
|  | 	} else if s.Link.Duplex == 0 { | ||||||
|  | 		return "simplex" | ||||||
|  | 	} else { | ||||||
|  | 		return "unknown" | ||||||
|  | 	} | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | func serviceStatus(s Service) string { | ||||||
|  | 	if s.Status == 0 { | ||||||
|  | 		return "running" | ||||||
|  | 	} else { | ||||||
|  | 		return "failure" | ||||||
|  | 	} | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | func pendingAction(s Service) string { | ||||||
|  | 	if s.PendingAction > 0 { | ||||||
|  | 		if s.PendingAction >= len(pendingActions) { | ||||||
|  | 			return "unknown" | ||||||
|  | 		} | ||||||
|  | 		return pendingActions[s.PendingAction-1] | ||||||
|  | 	} else { | ||||||
|  | 		return "none" | ||||||
|  | 	} | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | func monitoringMode(s Service) string { | ||||||
|  | 	switch s.MonitorMode { | ||||||
|  | 	case 0: | ||||||
|  | 		return "active" | ||||||
|  | 	case 1: | ||||||
|  | 		return "passive" | ||||||
|  | 	} | ||||||
|  | 	return "unknown" | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | func monitoringStatus(s Service) string { | ||||||
|  | 	switch s.MonitoringStatus { | ||||||
|  | 	case 1: | ||||||
|  | 		return "monitored" | ||||||
|  | 	case 2: | ||||||
|  | 		return "initializing" | ||||||
|  | 	case 4: | ||||||
|  | 		return "waiting" | ||||||
|  | 	} | ||||||
|  | 	return "not_monitored" | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | func init() { | ||||||
|  | 	inputs.Add("monit", func() telegraf.Input { | ||||||
|  | 		return &Monit{ | ||||||
|  | 			client: &RealHTTPClient{}, | ||||||
|  | 		} | ||||||
|  | 	}) | ||||||
|  | } | ||||||
|  | @ -0,0 +1,719 @@ | ||||||
|  | package monit | ||||||
|  | 
 | ||||||
|  | import ( | ||||||
|  | 	"errors" | ||||||
|  | 	"net/http" | ||||||
|  | 	"net/http/httptest" | ||||||
|  | 	"testing" | ||||||
|  | 	"time" | ||||||
|  | 
 | ||||||
|  | 	"github.com/influxdata/telegraf" | ||||||
|  | 	"github.com/influxdata/telegraf/testutil" | ||||||
|  | 	"github.com/stretchr/testify/assert" | ||||||
|  | 	"github.com/stretchr/testify/require" | ||||||
|  | ) | ||||||
|  | 
 | ||||||
|  | type MockHTTPClient struct { | ||||||
|  | 	networkError string | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | func (c *MockHTTPClient) MakeRequest(req *http.Request) (*http.Response, error) { | ||||||
|  | 	return nil, errors.New(c.networkError) | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | func (c *MockHTTPClient) SetHTTPClient(client *http.Client) { | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | func (c *MockHTTPClient) HTTPClient() *http.Client { | ||||||
|  | 	return nil | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | func TestServiceType(t *testing.T) { | ||||||
|  | 	tests := []struct { | ||||||
|  | 		name     string | ||||||
|  | 		filename string | ||||||
|  | 		expected []telegraf.Metric | ||||||
|  | 	}{ | ||||||
|  | 		{ | ||||||
|  | 			name:     "check filesystem service type", | ||||||
|  | 			filename: "testdata/response_servicetype_0.xml", | ||||||
|  | 			expected: []telegraf.Metric{ | ||||||
|  | 				testutil.MustMetric( | ||||||
|  | 					"monit_filesystem", | ||||||
|  | 					map[string]string{ | ||||||
|  | 						"version":           "5.17.1", | ||||||
|  | 						"source":            "localhost", | ||||||
|  | 						"platform_name":     "Linux", | ||||||
|  | 						"service":           "test", | ||||||
|  | 						"status":            "running", | ||||||
|  | 						"monitoring_status": "monitored", | ||||||
|  | 						"monitoring_mode":   "active", | ||||||
|  | 						"pending_action":    "none", | ||||||
|  | 					}, | ||||||
|  | 					map[string]interface{}{ | ||||||
|  | 						"status_code":            0, | ||||||
|  | 						"monitoring_status_code": 1, | ||||||
|  | 						"monitoring_mode_code":   0, | ||||||
|  | 						"pending_action_code":    0, | ||||||
|  | 						"mode":                   555, | ||||||
|  | 						"block_percent":          29.5, | ||||||
|  | 						"block_usage":            4424.0, | ||||||
|  | 						"block_total":            14990.0, | ||||||
|  | 						"inode_percent":          0.8, | ||||||
|  | 						"inode_usage":            59674.0, | ||||||
|  | 						"inode_total":            7680000.0, | ||||||
|  | 					}, | ||||||
|  | 					time.Unix(0, 0), | ||||||
|  | 				), | ||||||
|  | 			}, | ||||||
|  | 		}, | ||||||
|  | 		{ | ||||||
|  | 			name:     "check directory service type", | ||||||
|  | 			filename: "testdata/response_servicetype_1.xml", | ||||||
|  | 			expected: []telegraf.Metric{ | ||||||
|  | 				testutil.MustMetric( | ||||||
|  | 					"monit_directory", | ||||||
|  | 					map[string]string{ | ||||||
|  | 						"version":           "5.17.1", | ||||||
|  | 						"source":            "localhost", | ||||||
|  | 						"platform_name":     "Linux", | ||||||
|  | 						"service":           "test", | ||||||
|  | 						"status":            "running", | ||||||
|  | 						"monitoring_status": "monitored", | ||||||
|  | 						"monitoring_mode":   "active", | ||||||
|  | 						"pending_action":    "none", | ||||||
|  | 					}, | ||||||
|  | 					map[string]interface{}{ | ||||||
|  | 						"status_code":            0, | ||||||
|  | 						"monitoring_status_code": 1, | ||||||
|  | 						"monitoring_mode_code":   0, | ||||||
|  | 						"pending_action_code":    0, | ||||||
|  | 						"mode":                   755, | ||||||
|  | 					}, | ||||||
|  | 					time.Unix(0, 0), | ||||||
|  | 				), | ||||||
|  | 			}, | ||||||
|  | 		}, | ||||||
|  | 		{ | ||||||
|  | 			name:     "check file service type", | ||||||
|  | 			filename: "testdata/response_servicetype_2.xml", | ||||||
|  | 			expected: []telegraf.Metric{ | ||||||
|  | 				testutil.MustMetric( | ||||||
|  | 					"monit_file", | ||||||
|  | 					map[string]string{ | ||||||
|  | 						"version":           "5.17.1", | ||||||
|  | 						"source":            "localhost", | ||||||
|  | 						"platform_name":     "Linux", | ||||||
|  | 						"service":           "test", | ||||||
|  | 						"status":            "running", | ||||||
|  | 						"monitoring_status": "monitored", | ||||||
|  | 						"monitoring_mode":   "active", | ||||||
|  | 						"pending_action":    "none", | ||||||
|  | 					}, | ||||||
|  | 					map[string]interface{}{ | ||||||
|  | 						"status_code":            0, | ||||||
|  | 						"monitoring_status_code": 1, | ||||||
|  | 						"monitoring_mode_code":   0, | ||||||
|  | 						"pending_action_code":    0, | ||||||
|  | 						"mode":                   644, | ||||||
|  | 						"size":                   1565, | ||||||
|  | 					}, | ||||||
|  | 					time.Unix(0, 0), | ||||||
|  | 				), | ||||||
|  | 			}, | ||||||
|  | 		}, | ||||||
|  | 		{ | ||||||
|  | 			name:     "check process service type", | ||||||
|  | 			filename: "testdata/response_servicetype_3.xml", | ||||||
|  | 			expected: []telegraf.Metric{ | ||||||
|  | 				testutil.MustMetric( | ||||||
|  | 					"monit_process", | ||||||
|  | 					map[string]string{ | ||||||
|  | 						"version":           "5.17.1", | ||||||
|  | 						"source":            "localhost", | ||||||
|  | 						"platform_name":     "Linux", | ||||||
|  | 						"service":           "test", | ||||||
|  | 						"status":            "running", | ||||||
|  | 						"monitoring_status": "monitored", | ||||||
|  | 						"monitoring_mode":   "active", | ||||||
|  | 						"pending_action":    "none", | ||||||
|  | 					}, | ||||||
|  | 					map[string]interface{}{ | ||||||
|  | 						"status_code":            0, | ||||||
|  | 						"monitoring_status_code": 1, | ||||||
|  | 						"monitoring_mode_code":   0, | ||||||
|  | 						"pending_action_code":    0, | ||||||
|  | 						"cpu_percent":            0.0, | ||||||
|  | 						"cpu_percent_total":      0.0, | ||||||
|  | 						"mem_kb":                 22892, | ||||||
|  | 						"mem_kb_total":           22892, | ||||||
|  | 						"mem_percent":            0.1, | ||||||
|  | 						"mem_percent_total":      0.1, | ||||||
|  | 						"pid":                    5959, | ||||||
|  | 						"parent_pid":             1, | ||||||
|  | 						"threads":                31, | ||||||
|  | 						"children":               0, | ||||||
|  | 					}, | ||||||
|  | 					time.Unix(0, 0), | ||||||
|  | 				), | ||||||
|  | 			}, | ||||||
|  | 		}, | ||||||
|  | 		{ | ||||||
|  | 			name:     "check remote host service type", | ||||||
|  | 			filename: "testdata/response_servicetype_4.xml", | ||||||
|  | 			expected: []telegraf.Metric{ | ||||||
|  | 				testutil.MustMetric( | ||||||
|  | 					"monit_remote_host", | ||||||
|  | 					map[string]string{ | ||||||
|  | 						"version":           "5.17.1", | ||||||
|  | 						"source":            "localhost", | ||||||
|  | 						"platform_name":     "Linux", | ||||||
|  | 						"service":           "test", | ||||||
|  | 						"status":            "running", | ||||||
|  | 						"monitoring_status": "monitored", | ||||||
|  | 						"monitoring_mode":   "active", | ||||||
|  | 						"pending_action":    "none", | ||||||
|  | 					}, | ||||||
|  | 					map[string]interface{}{ | ||||||
|  | 						"status_code":            0, | ||||||
|  | 						"monitoring_status_code": 1, | ||||||
|  | 						"monitoring_mode_code":   0, | ||||||
|  | 						"pending_action_code":    0, | ||||||
|  | 						"remote_hostname":        "192.168.1.10", | ||||||
|  | 						"port_number":            2812, | ||||||
|  | 						"request":                "", | ||||||
|  | 						"protocol":               "DEFAULT", | ||||||
|  | 						"type":                   "TCP", | ||||||
|  | 					}, | ||||||
|  | 					time.Unix(0, 0), | ||||||
|  | 				), | ||||||
|  | 			}, | ||||||
|  | 		}, | ||||||
|  | 		{ | ||||||
|  | 			name:     "check system service type", | ||||||
|  | 			filename: "testdata/response_servicetype_5.xml", | ||||||
|  | 			expected: []telegraf.Metric{ | ||||||
|  | 				testutil.MustMetric( | ||||||
|  | 					"monit_system", | ||||||
|  | 					map[string]string{ | ||||||
|  | 						"version":           "5.17.1", | ||||||
|  | 						"source":            "localhost", | ||||||
|  | 						"platform_name":     "Linux", | ||||||
|  | 						"service":           "test", | ||||||
|  | 						"status":            "running", | ||||||
|  | 						"monitoring_status": "monitored", | ||||||
|  | 						"monitoring_mode":   "active", | ||||||
|  | 						"pending_action":    "none", | ||||||
|  | 					}, | ||||||
|  | 					map[string]interface{}{ | ||||||
|  | 						"status_code":            0, | ||||||
|  | 						"monitoring_status_code": 1, | ||||||
|  | 						"monitoring_mode_code":   0, | ||||||
|  | 						"pending_action_code":    0, | ||||||
|  | 						"cpu_system":             0.1, | ||||||
|  | 						"cpu_user":               0.0, | ||||||
|  | 						"cpu_wait":               0.0, | ||||||
|  | 						"cpu_load_avg_1m":        0.00, | ||||||
|  | 						"cpu_load_avg_5m":        0.00, | ||||||
|  | 						"cpu_load_avg_15m":       0.00, | ||||||
|  | 						"mem_kb":                 259668, | ||||||
|  | 						"mem_percent":            1.5, | ||||||
|  | 						"swap_kb":                0.0, | ||||||
|  | 						"swap_percent":           0.0, | ||||||
|  | 					}, | ||||||
|  | 					time.Unix(0, 0), | ||||||
|  | 				), | ||||||
|  | 			}, | ||||||
|  | 		}, | ||||||
|  | 		{ | ||||||
|  | 			name:     "check fifo service type", | ||||||
|  | 			filename: "testdata/response_servicetype_6.xml", | ||||||
|  | 			expected: []telegraf.Metric{ | ||||||
|  | 				testutil.MustMetric( | ||||||
|  | 					"monit_fifo", | ||||||
|  | 					map[string]string{ | ||||||
|  | 						"version":           "5.17.1", | ||||||
|  | 						"source":            "localhost", | ||||||
|  | 						"platform_name":     "Linux", | ||||||
|  | 						"service":           "test", | ||||||
|  | 						"status":            "running", | ||||||
|  | 						"monitoring_status": "monitored", | ||||||
|  | 						"monitoring_mode":   "active", | ||||||
|  | 						"pending_action":    "none", | ||||||
|  | 					}, | ||||||
|  | 					map[string]interface{}{ | ||||||
|  | 						"status_code":            0, | ||||||
|  | 						"monitoring_status_code": 1, | ||||||
|  | 						"monitoring_mode_code":   0, | ||||||
|  | 						"pending_action_code":    0, | ||||||
|  | 						"mode":                   664, | ||||||
|  | 					}, | ||||||
|  | 					time.Unix(0, 0), | ||||||
|  | 				), | ||||||
|  | 			}, | ||||||
|  | 		}, | ||||||
|  | 		{ | ||||||
|  | 			name:     "check program service type", | ||||||
|  | 			filename: "testdata/response_servicetype_7.xml", | ||||||
|  | 			expected: []telegraf.Metric{ | ||||||
|  | 				testutil.MustMetric( | ||||||
|  | 					"monit_program", | ||||||
|  | 					map[string]string{ | ||||||
|  | 						"version":           "5.17.1", | ||||||
|  | 						"source":            "localhost", | ||||||
|  | 						"platform_name":     "Linux", | ||||||
|  | 						"service":           "test", | ||||||
|  | 						"status":            "running", | ||||||
|  | 						"monitoring_status": "monitored", | ||||||
|  | 						"monitoring_mode":   "active", | ||||||
|  | 						"pending_action":    "none", | ||||||
|  | 					}, | ||||||
|  | 					map[string]interface{}{ | ||||||
|  | 						"status_code":            0, | ||||||
|  | 						"monitoring_status_code": 1, | ||||||
|  | 						"monitoring_mode_code":   0, | ||||||
|  | 						"pending_action_code":    0, | ||||||
|  | 						"program_status":         0, | ||||||
|  | 						"program_started":        int64(15728504980000000), | ||||||
|  | 					}, | ||||||
|  | 					time.Unix(0, 0), | ||||||
|  | 				), | ||||||
|  | 			}, | ||||||
|  | 		}, | ||||||
|  | 		{ | ||||||
|  | 			name:     "check network service type", | ||||||
|  | 			filename: "testdata/response_servicetype_8.xml", | ||||||
|  | 			expected: []telegraf.Metric{ | ||||||
|  | 				testutil.MustMetric( | ||||||
|  | 					"monit_network", | ||||||
|  | 					map[string]string{ | ||||||
|  | 						"version":           "5.17.1", | ||||||
|  | 						"source":            "localhost", | ||||||
|  | 						"platform_name":     "Linux", | ||||||
|  | 						"service":           "test", | ||||||
|  | 						"status":            "running", | ||||||
|  | 						"monitoring_status": "monitored", | ||||||
|  | 						"monitoring_mode":   "active", | ||||||
|  | 						"pending_action":    "none", | ||||||
|  | 					}, | ||||||
|  | 					map[string]interface{}{ | ||||||
|  | 						"status_code":            0, | ||||||
|  | 						"monitoring_status_code": 1, | ||||||
|  | 						"monitoring_mode_code":   0, | ||||||
|  | 						"pending_action_code":    0, | ||||||
|  | 						"link_speed":             1000000000, | ||||||
|  | 						"link_mode":              "duplex", | ||||||
|  | 						"link_state":             1, | ||||||
|  | 						"download_packets_now":   0, | ||||||
|  | 						"download_packets_total": 15243, | ||||||
|  | 						"download_bytes_now":     0, | ||||||
|  | 						"download_bytes_total":   5506778, | ||||||
|  | 						"download_errors_now":    0, | ||||||
|  | 						"download_errors_total":  0, | ||||||
|  | 						"upload_packets_now":     0, | ||||||
|  | 						"upload_packets_total":   8822, | ||||||
|  | 						"upload_bytes_now":       0, | ||||||
|  | 						"upload_bytes_total":     1287240, | ||||||
|  | 						"upload_errors_now":      0, | ||||||
|  | 						"upload_errors_total":    0, | ||||||
|  | 					}, | ||||||
|  | 					time.Unix(0, 0), | ||||||
|  | 				), | ||||||
|  | 			}, | ||||||
|  | 		}, | ||||||
|  | 	} | ||||||
|  | 	for _, tt := range tests { | ||||||
|  | 		t.Run(tt.name, func(t *testing.T) { | ||||||
|  | 			ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { | ||||||
|  | 				switch r.URL.Path { | ||||||
|  | 				case "/_status": | ||||||
|  | 					http.ServeFile(w, r, tt.filename) | ||||||
|  | 				default: | ||||||
|  | 					w.WriteHeader(http.StatusNotFound) | ||||||
|  | 				} | ||||||
|  | 			})) | ||||||
|  | 			defer ts.Close() | ||||||
|  | 
 | ||||||
|  | 			plugin := &Monit{ | ||||||
|  | 				Address: ts.URL, | ||||||
|  | 				client:  &RealHTTPClient{}, | ||||||
|  | 			} | ||||||
|  | 
 | ||||||
|  | 			plugin.Init() | ||||||
|  | 
 | ||||||
|  | 			var acc testutil.Accumulator | ||||||
|  | 			err := plugin.Gather(&acc) | ||||||
|  | 			require.NoError(t, err) | ||||||
|  | 
 | ||||||
|  | 			testutil.RequireMetricsEqual(t, tt.expected, acc.GetTelegrafMetrics(), | ||||||
|  | 				testutil.IgnoreTime()) | ||||||
|  | 		}) | ||||||
|  | 	} | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | func TestMonitFailure(t *testing.T) { | ||||||
|  | 	tests := []struct { | ||||||
|  | 		name     string | ||||||
|  | 		filename string | ||||||
|  | 		expected []telegraf.Metric | ||||||
|  | 	}{ | ||||||
|  | 		{ | ||||||
|  | 			name:     "check monit failure status", | ||||||
|  | 			filename: "testdata/response_servicetype_8_failure.xml", | ||||||
|  | 			expected: []telegraf.Metric{ | ||||||
|  | 				testutil.MustMetric( | ||||||
|  | 					"monit_network", | ||||||
|  | 					map[string]string{ | ||||||
|  | 						"version":           "5.17.1", | ||||||
|  | 						"source":            "localhost", | ||||||
|  | 						"platform_name":     "Linux", | ||||||
|  | 						"service":           "test", | ||||||
|  | 						"status":            "failure", | ||||||
|  | 						"monitoring_status": "monitored", | ||||||
|  | 						"monitoring_mode":   "active", | ||||||
|  | 						"pending_action":    "none", | ||||||
|  | 					}, | ||||||
|  | 					map[string]interface{}{ | ||||||
|  | 						"status_code":            8388608, | ||||||
|  | 						"monitoring_status_code": 1, | ||||||
|  | 						"monitoring_mode_code":   0, | ||||||
|  | 						"pending_action_code":    0, | ||||||
|  | 						"link_speed":             -1, | ||||||
|  | 						"link_mode":              "unknown", | ||||||
|  | 						"link_state":             0, | ||||||
|  | 						"download_packets_now":   0, | ||||||
|  | 						"download_packets_total": 0, | ||||||
|  | 						"download_bytes_now":     0, | ||||||
|  | 						"download_bytes_total":   0, | ||||||
|  | 						"download_errors_now":    0, | ||||||
|  | 						"download_errors_total":  0, | ||||||
|  | 						"upload_packets_now":     0, | ||||||
|  | 						"upload_packets_total":   0, | ||||||
|  | 						"upload_bytes_now":       0, | ||||||
|  | 						"upload_bytes_total":     0, | ||||||
|  | 						"upload_errors_now":      0, | ||||||
|  | 						"upload_errors_total":    0, | ||||||
|  | 					}, | ||||||
|  | 					time.Unix(0, 0), | ||||||
|  | 				), | ||||||
|  | 			}, | ||||||
|  | 		}, | ||||||
|  | 		{ | ||||||
|  | 			name:     "check passive mode", | ||||||
|  | 			filename: "testdata/response_servicetype_8_passivemode.xml", | ||||||
|  | 			expected: []telegraf.Metric{ | ||||||
|  | 				testutil.MustMetric( | ||||||
|  | 					"monit_network", | ||||||
|  | 					map[string]string{ | ||||||
|  | 						"version":           "5.17.1", | ||||||
|  | 						"source":            "localhost", | ||||||
|  | 						"platform_name":     "Linux", | ||||||
|  | 						"service":           "test", | ||||||
|  | 						"status":            "running", | ||||||
|  | 						"monitoring_status": "monitored", | ||||||
|  | 						"monitoring_mode":   "passive", | ||||||
|  | 						"pending_action":    "none", | ||||||
|  | 					}, | ||||||
|  | 					map[string]interface{}{ | ||||||
|  | 						"status_code":            0, | ||||||
|  | 						"monitoring_status_code": 1, | ||||||
|  | 						"monitoring_mode_code":   1, | ||||||
|  | 						"pending_action_code":    0, | ||||||
|  | 						"link_speed":             1000000000, | ||||||
|  | 						"link_mode":              "duplex", | ||||||
|  | 						"link_state":             1, | ||||||
|  | 						"download_packets_now":   0, | ||||||
|  | 						"download_packets_total": 15243, | ||||||
|  | 						"download_bytes_now":     0, | ||||||
|  | 						"download_bytes_total":   5506778, | ||||||
|  | 						"download_errors_now":    0, | ||||||
|  | 						"download_errors_total":  0, | ||||||
|  | 						"upload_packets_now":     0, | ||||||
|  | 						"upload_packets_total":   8822, | ||||||
|  | 						"upload_bytes_now":       0, | ||||||
|  | 						"upload_bytes_total":     1287240, | ||||||
|  | 						"upload_errors_now":      0, | ||||||
|  | 						"upload_errors_total":    0, | ||||||
|  | 					}, | ||||||
|  | 					time.Unix(0, 0), | ||||||
|  | 				), | ||||||
|  | 			}, | ||||||
|  | 		}, | ||||||
|  | 		{ | ||||||
|  | 			name:     "check initializing status", | ||||||
|  | 			filename: "testdata/response_servicetype_8_initializingmode.xml", | ||||||
|  | 			expected: []telegraf.Metric{ | ||||||
|  | 				testutil.MustMetric( | ||||||
|  | 					"monit_network", | ||||||
|  | 					map[string]string{ | ||||||
|  | 						"version":           "5.17.1", | ||||||
|  | 						"source":            "localhost", | ||||||
|  | 						"platform_name":     "Linux", | ||||||
|  | 						"service":           "test", | ||||||
|  | 						"status":            "running", | ||||||
|  | 						"monitoring_status": "initializing", | ||||||
|  | 						"monitoring_mode":   "active", | ||||||
|  | 						"pending_action":    "none", | ||||||
|  | 					}, | ||||||
|  | 					map[string]interface{}{ | ||||||
|  | 						"status_code":            0, | ||||||
|  | 						"monitoring_status_code": 2, | ||||||
|  | 						"monitoring_mode_code":   0, | ||||||
|  | 						"pending_action_code":    0, | ||||||
|  | 						"link_speed":             1000000000, | ||||||
|  | 						"link_mode":              "duplex", | ||||||
|  | 						"link_state":             1, | ||||||
|  | 						"download_packets_now":   0, | ||||||
|  | 						"download_packets_total": 15243, | ||||||
|  | 						"download_bytes_now":     0, | ||||||
|  | 						"download_bytes_total":   5506778, | ||||||
|  | 						"download_errors_now":    0, | ||||||
|  | 						"download_errors_total":  0, | ||||||
|  | 						"upload_packets_now":     0, | ||||||
|  | 						"upload_packets_total":   8822, | ||||||
|  | 						"upload_bytes_now":       0, | ||||||
|  | 						"upload_bytes_total":     1287240, | ||||||
|  | 						"upload_errors_now":      0, | ||||||
|  | 						"upload_errors_total":    0, | ||||||
|  | 					}, | ||||||
|  | 					time.Unix(0, 0), | ||||||
|  | 				), | ||||||
|  | 			}, | ||||||
|  | 		}, | ||||||
|  | 		{ | ||||||
|  | 			name:     "check pending action", | ||||||
|  | 			filename: "testdata/response_servicetype_8_pendingaction.xml", | ||||||
|  | 			expected: []telegraf.Metric{ | ||||||
|  | 				testutil.MustMetric( | ||||||
|  | 					"monit_network", | ||||||
|  | 					map[string]string{ | ||||||
|  | 						"version":           "5.17.1", | ||||||
|  | 						"source":            "localhost", | ||||||
|  | 						"platform_name":     "Linux", | ||||||
|  | 						"service":           "test", | ||||||
|  | 						"status":            "running", | ||||||
|  | 						"monitoring_status": "monitored", | ||||||
|  | 						"monitoring_mode":   "active", | ||||||
|  | 						"pending_action":    "exec", | ||||||
|  | 					}, | ||||||
|  | 					map[string]interface{}{ | ||||||
|  | 						"status_code":            0, | ||||||
|  | 						"monitoring_status_code": 1, | ||||||
|  | 						"monitoring_mode_code":   0, | ||||||
|  | 						"pending_action_code":    5, | ||||||
|  | 						"link_speed":             1000000000, | ||||||
|  | 						"link_mode":              "duplex", | ||||||
|  | 						"link_state":             1, | ||||||
|  | 						"download_packets_now":   0, | ||||||
|  | 						"download_packets_total": 15243, | ||||||
|  | 						"download_bytes_now":     0, | ||||||
|  | 						"download_bytes_total":   5506778, | ||||||
|  | 						"download_errors_now":    0, | ||||||
|  | 						"download_errors_total":  0, | ||||||
|  | 						"upload_packets_now":     0, | ||||||
|  | 						"upload_packets_total":   8822, | ||||||
|  | 						"upload_bytes_now":       0, | ||||||
|  | 						"upload_bytes_total":     1287240, | ||||||
|  | 						"upload_errors_now":      0, | ||||||
|  | 						"upload_errors_total":    0, | ||||||
|  | 					}, | ||||||
|  | 					time.Unix(0, 0), | ||||||
|  | 				), | ||||||
|  | 			}, | ||||||
|  | 		}, | ||||||
|  | 	} | ||||||
|  | 	for _, tt := range tests { | ||||||
|  | 		t.Run(tt.name, func(t *testing.T) { | ||||||
|  | 			ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { | ||||||
|  | 				switch r.URL.Path { | ||||||
|  | 				case "/_status": | ||||||
|  | 					http.ServeFile(w, r, tt.filename) | ||||||
|  | 				default: | ||||||
|  | 					w.WriteHeader(http.StatusNotFound) | ||||||
|  | 				} | ||||||
|  | 			})) | ||||||
|  | 			defer ts.Close() | ||||||
|  | 
 | ||||||
|  | 			plugin := &Monit{ | ||||||
|  | 				Address: ts.URL, | ||||||
|  | 				client:  &RealHTTPClient{}, | ||||||
|  | 			} | ||||||
|  | 
 | ||||||
|  | 			plugin.Init() | ||||||
|  | 
 | ||||||
|  | 			var acc testutil.Accumulator | ||||||
|  | 			err := plugin.Gather(&acc) | ||||||
|  | 			require.NoError(t, err) | ||||||
|  | 
 | ||||||
|  | 			testutil.RequireMetricsEqual(t, tt.expected, acc.GetTelegrafMetrics(), | ||||||
|  | 				testutil.IgnoreTime()) | ||||||
|  | 		}) | ||||||
|  | 	} | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | func checkAuth(r *http.Request, username, password string) bool { | ||||||
|  | 	user, pass, ok := r.BasicAuth() | ||||||
|  | 	if !ok { | ||||||
|  | 		return false | ||||||
|  | 	} | ||||||
|  | 	return user == username && pass == password | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | func TestAllowHosts(t *testing.T) { | ||||||
|  | 
 | ||||||
|  | 	networkError := "Get http://127.0.0.1:2812/_status?format=xml: " + | ||||||
|  | 		"read tcp 192.168.10.2:55610->127.0.0.1:2812: " + | ||||||
|  | 		"read: connection reset by peer" | ||||||
|  | 	r := &Monit{ | ||||||
|  | 		Address:  "http://127.0.0.1:2812", | ||||||
|  | 		Username: "test", | ||||||
|  | 		Password: "test", | ||||||
|  | 		client:   &MockHTTPClient{networkError}, | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	var acc testutil.Accumulator | ||||||
|  | 
 | ||||||
|  | 	r.Init() | ||||||
|  | 
 | ||||||
|  | 	err := r.Gather(&acc) | ||||||
|  | 
 | ||||||
|  | 	if assert.Error(t, err) { | ||||||
|  | 		assert.Contains(t, err.Error(), "read: connection reset by peer") | ||||||
|  | 	} | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | func TestConnection(t *testing.T) { | ||||||
|  | 
 | ||||||
|  | 	r := &Monit{ | ||||||
|  | 		Address:  "http://127.0.0.1:2812", | ||||||
|  | 		Username: "test", | ||||||
|  | 		Password: "test", | ||||||
|  | 		client:   &RealHTTPClient{}, | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	var acc testutil.Accumulator | ||||||
|  | 
 | ||||||
|  | 	r.Init() | ||||||
|  | 
 | ||||||
|  | 	err := r.Gather(&acc) | ||||||
|  | 
 | ||||||
|  | 	if assert.Error(t, err) { | ||||||
|  | 		assert.Contains(t, err.Error(), "connect: connection refused") | ||||||
|  | 	} | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | func TestInvalidUsernameorPassword(t *testing.T) { | ||||||
|  | 
 | ||||||
|  | 	ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { | ||||||
|  | 
 | ||||||
|  | 		if !checkAuth(r, "testing", "testing") { | ||||||
|  | 			http.Error(w, "Unauthorized.", 401) | ||||||
|  | 			return | ||||||
|  | 		} | ||||||
|  | 
 | ||||||
|  | 		switch r.URL.Path { | ||||||
|  | 		case "/_status": | ||||||
|  | 			http.ServeFile(w, r, "testdata/response_servicetype_0.xml") | ||||||
|  | 		default: | ||||||
|  | 			panic("Cannot handle request") | ||||||
|  | 		} | ||||||
|  | 	})) | ||||||
|  | 
 | ||||||
|  | 	defer ts.Close() | ||||||
|  | 
 | ||||||
|  | 	r := &Monit{ | ||||||
|  | 		Address:  ts.URL, | ||||||
|  | 		Username: "test", | ||||||
|  | 		Password: "test", | ||||||
|  | 		client:   &RealHTTPClient{}, | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	var acc testutil.Accumulator | ||||||
|  | 
 | ||||||
|  | 	r.Init() | ||||||
|  | 
 | ||||||
|  | 	err := r.Gather(&acc) | ||||||
|  | 
 | ||||||
|  | 	assert.EqualError(t, err, "received status code 401 (Unauthorized), expected 200") | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | func TestNoUsernameorPasswordConfiguration(t *testing.T) { | ||||||
|  | 
 | ||||||
|  | 	ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { | ||||||
|  | 
 | ||||||
|  | 		if !checkAuth(r, "testing", "testing") { | ||||||
|  | 			http.Error(w, "Unauthorized.", 401) | ||||||
|  | 			return | ||||||
|  | 		} | ||||||
|  | 
 | ||||||
|  | 		switch r.URL.Path { | ||||||
|  | 		case "/_status": | ||||||
|  | 			http.ServeFile(w, r, "testdata/response_servicetype_0.xml") | ||||||
|  | 		default: | ||||||
|  | 			panic("Cannot handle request") | ||||||
|  | 		} | ||||||
|  | 	})) | ||||||
|  | 
 | ||||||
|  | 	defer ts.Close() | ||||||
|  | 
 | ||||||
|  | 	r := &Monit{ | ||||||
|  | 		Address: ts.URL, | ||||||
|  | 		client:  &RealHTTPClient{}, | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	var acc testutil.Accumulator | ||||||
|  | 
 | ||||||
|  | 	r.Init() | ||||||
|  | 
 | ||||||
|  | 	err := r.Gather(&acc) | ||||||
|  | 
 | ||||||
|  | 	assert.EqualError(t, err, "received status code 401 (Unauthorized), expected 200") | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | func TestInvalidXMLAndInvalidTypes(t *testing.T) { | ||||||
|  | 
 | ||||||
|  | 	tests := []struct { | ||||||
|  | 		name     string | ||||||
|  | 		filename string | ||||||
|  | 	}{ | ||||||
|  | 		{ | ||||||
|  | 			name:     "check filesystem service type", | ||||||
|  | 			filename: "testdata/response_invalidxml_1.xml", | ||||||
|  | 		}, | ||||||
|  | 		{ | ||||||
|  | 			name:     "check filesystem service type", | ||||||
|  | 			filename: "testdata/response_invalidxml_2.xml", | ||||||
|  | 		}, | ||||||
|  | 		{ | ||||||
|  | 			name:     "check filesystem service type", | ||||||
|  | 			filename: "testdata/response_invalidxml_3.xml", | ||||||
|  | 		}, | ||||||
|  | 	} | ||||||
|  | 	for _, tt := range tests { | ||||||
|  | 		t.Run(tt.name, func(t *testing.T) { | ||||||
|  | 			ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { | ||||||
|  | 				switch r.URL.Path { | ||||||
|  | 				case "/_status": | ||||||
|  | 					http.ServeFile(w, r, tt.filename) | ||||||
|  | 				default: | ||||||
|  | 					w.WriteHeader(http.StatusNotFound) | ||||||
|  | 				} | ||||||
|  | 			})) | ||||||
|  | 			defer ts.Close() | ||||||
|  | 
 | ||||||
|  | 			plugin := &Monit{ | ||||||
|  | 				Address: ts.URL, | ||||||
|  | 				client:  &RealHTTPClient{}, | ||||||
|  | 			} | ||||||
|  | 
 | ||||||
|  | 			plugin.Init() | ||||||
|  | 
 | ||||||
|  | 			var acc testutil.Accumulator | ||||||
|  | 			err := plugin.Gather(&acc) | ||||||
|  | 
 | ||||||
|  | 			if assert.Error(t, err) { | ||||||
|  | 				assert.Contains(t, err.Error(), "error parsing input:") | ||||||
|  | 			} | ||||||
|  | 		}) | ||||||
|  | 	} | ||||||
|  | } | ||||||
|  | @ -0,0 +1,51 @@ | ||||||
|  | <!--Missing element <block> closed--> | ||||||
|  | <?xml version="1.0" encoding="UTF-8"?> | ||||||
|  | <monit> | ||||||
|  |     <server> | ||||||
|  |         <id>0ed39c522be4c3971541412c43141613</id> | ||||||
|  |         <incarnation>1476518435</incarnation> | ||||||
|  |         <version>5.17.1</version> | ||||||
|  |         <uptime>109878</uptime> | ||||||
|  |         <poll>10</poll> | ||||||
|  |         <startdelay>0</startdelay> | ||||||
|  |         <localhostname>localhost</localhostname> | ||||||
|  |         <controlfile>/var/vcap/bosh/etc/monitrc</controlfile> | ||||||
|  |         <httpd> | ||||||
|  |             <address>127.0.0.1</address> | ||||||
|  |             <port>2822</port> | ||||||
|  |             <ssl>0</ssl> | ||||||
|  |         </httpd> | ||||||
|  |     </server> | ||||||
|  |     <platform> | ||||||
|  |         <name>Linux</name> | ||||||
|  |         <release>4.15.0-65-generic</release> | ||||||
|  |         <version>#74~16.04.1-Ubuntu SMP Wed Sep 18 09:51:44 UTC 2019</version> | ||||||
|  |         <machine>x86_64</machine> | ||||||
|  |         <cpu>8</cpu> | ||||||
|  |         <memory>16432272</memory> | ||||||
|  |         <swap>16432268</swap> | ||||||
|  |     </platform> | ||||||
|  |     <service type="0"> | ||||||
|  |         <name>test</name> | ||||||
|  |         <collected_sec>1572850498</collected_sec> | ||||||
|  |         <collected_usec>709694</collected_usec> | ||||||
|  |         <status>0</status> | ||||||
|  |         <status_hint>0</status_hint> | ||||||
|  |         <monitor>1</monitor> | ||||||
|  |         <monitormode>0</monitormode> | ||||||
|  |         <pendingaction>0</pendingaction> | ||||||
|  |         <mode>555</mode> | ||||||
|  |         <uid>0</uid> | ||||||
|  |         <gid>0</gid> | ||||||
|  |         <flags>4096</flags> | ||||||
|  |         <block> | ||||||
|  |             <percent>29.5</percent> | ||||||
|  |             <usage>4424.0</usage> | ||||||
|  |             <total>14990.0</total> | ||||||
|  |         <inode> | ||||||
|  |             <percent>0.8</percent> | ||||||
|  |             <usage>59674</usage> | ||||||
|  |             <total>7680000</total> | ||||||
|  |         </inode> | ||||||
|  |     </service> | ||||||
|  | </monit> | ||||||
|  | @ -0,0 +1,52 @@ | ||||||
|  | <!--Wrong status type--> | ||||||
|  | <?xml version="1.0" encoding="UTF-8"?> | ||||||
|  | <monit> | ||||||
|  |     <server> | ||||||
|  |         <id>0ed39c522be4c3971541412c43141613</id> | ||||||
|  |         <incarnation>1476518435</incarnation> | ||||||
|  |         <version>5.17.1</version> | ||||||
|  |         <uptime>109878</uptime> | ||||||
|  |         <poll>10</poll> | ||||||
|  |         <startdelay>0</startdelay> | ||||||
|  |         <localhostname>localhost</localhostname> | ||||||
|  |         <controlfile>/var/vcap/bosh/etc/monitrc</controlfile> | ||||||
|  |         <httpd> | ||||||
|  |             <address>127.0.0.1</address> | ||||||
|  |             <port>2822</port> | ||||||
|  |             <ssl>0</ssl> | ||||||
|  |         </httpd> | ||||||
|  |     </server> | ||||||
|  |     <platform> | ||||||
|  |         <name>Linux</name> | ||||||
|  |         <release>4.15.0-65-generic</release> | ||||||
|  |         <version>#74~16.04.1-Ubuntu SMP Wed Sep 18 09:51:44 UTC 2019</version> | ||||||
|  |         <machine>x86_64</machine> | ||||||
|  |         <cpu>8</cpu> | ||||||
|  |         <memory>16432272</memory> | ||||||
|  |         <swap>16432268</swap> | ||||||
|  |     </platform> | ||||||
|  |     <service type="0"> | ||||||
|  |         <name>test</name> | ||||||
|  |         <collected_sec>1572850498</collected_sec> | ||||||
|  |         <collected_usec>709694</collected_usec> | ||||||
|  |         <status>0.0</status> | ||||||
|  |         <status_hint>0</status_hint> | ||||||
|  |         <monitor>1</monitor> | ||||||
|  |         <monitormode>0</monitormode> | ||||||
|  |         <pendingaction>0</pendingaction> | ||||||
|  |         <mode>555</mode> | ||||||
|  |         <uid>0</uid> | ||||||
|  |         <gid>0</gid> | ||||||
|  |         <flags>4096</flags> | ||||||
|  |         <block> | ||||||
|  |             <percent>29.5</percent> | ||||||
|  |             <usage>4424.0</usage> | ||||||
|  |             <total>14990.0</total> | ||||||
|  |         </block> | ||||||
|  |         <inode> | ||||||
|  |             <percent>0.8</percent> | ||||||
|  |             <usage>59674</usage> | ||||||
|  |             <total>7680000</total> | ||||||
|  |         </inode> | ||||||
|  |     </service> | ||||||
|  | </monit> | ||||||
|  | @ -0,0 +1,52 @@ | ||||||
|  | <!--Unsupported encoding type--> | ||||||
|  | <?xml version="1.0" encoding="UTF-16"?> | ||||||
|  | <monit> | ||||||
|  |     <server> | ||||||
|  |         <id>0ed39c522be4c3971541412c43141613</id> | ||||||
|  |         <incarnation>1476518435</incarnation> | ||||||
|  |         <version>5.17.1</version> | ||||||
|  |         <uptime>109878</uptime> | ||||||
|  |         <poll>10</poll> | ||||||
|  |         <startdelay>0</startdelay> | ||||||
|  |         <localhostname>localhost</localhostname> | ||||||
|  |         <controlfile>/var/vcap/bosh/etc/monitrc</controlfile> | ||||||
|  |         <httpd> | ||||||
|  |             <address>127.0.0.1</address> | ||||||
|  |             <port>2822</port> | ||||||
|  |             <ssl>0</ssl> | ||||||
|  |         </httpd> | ||||||
|  |     </server> | ||||||
|  |     <platform> | ||||||
|  |         <name>Linux</name> | ||||||
|  |         <release>4.15.0-65-generic</release> | ||||||
|  |         <version>#74~16.04.1-Ubuntu SMP Wed Sep 18 09:51:44 UTC 2019</version> | ||||||
|  |         <machine>x86_64</machine> | ||||||
|  |         <cpu>8</cpu> | ||||||
|  |         <memory>16432272</memory> | ||||||
|  |         <swap>16432268</swap> | ||||||
|  |     </platform> | ||||||
|  |     <service type="0"> | ||||||
|  |         <name>test</name> | ||||||
|  |         <collected_sec>1572850498</collected_sec> | ||||||
|  |         <collected_usec>709694</collected_usec> | ||||||
|  |         <status>0</status> | ||||||
|  |         <status_hint>0</status_hint> | ||||||
|  |         <monitor>1</monitor> | ||||||
|  |         <monitormode>0</monitormode> | ||||||
|  |         <pendingaction>0</pendingaction> | ||||||
|  |         <mode>555</mode> | ||||||
|  |         <uid>0</uid> | ||||||
|  |         <gid>0</gid> | ||||||
|  |         <flags>4096</flags> | ||||||
|  |         <block> | ||||||
|  |             <percent>29.5</percent> | ||||||
|  |             <usage>4424.0</usage> | ||||||
|  |             <total>14990.0</total> | ||||||
|  |         </block> | ||||||
|  |         <inode> | ||||||
|  |             <percent>0.8</percent> | ||||||
|  |             <usage>59674</usage> | ||||||
|  |             <total>7680000</total> | ||||||
|  |         </inode> | ||||||
|  |     </service> | ||||||
|  | </monit> | ||||||
|  | @ -0,0 +1,51 @@ | ||||||
|  | <?xml version="1.0" encoding="UTF-8"?> | ||||||
|  | <monit> | ||||||
|  |     <server> | ||||||
|  |         <id>0ed39c522be4c3971541412c43141613</id> | ||||||
|  |         <incarnation>1476518435</incarnation> | ||||||
|  |         <version>5.17.1</version> | ||||||
|  |         <uptime>109878</uptime> | ||||||
|  |         <poll>10</poll> | ||||||
|  |         <startdelay>0</startdelay> | ||||||
|  |         <localhostname>localhost</localhostname> | ||||||
|  |         <controlfile>/var/vcap/bosh/etc/monitrc</controlfile> | ||||||
|  |         <httpd> | ||||||
|  |             <address>127.0.0.1</address> | ||||||
|  |             <port>2822</port> | ||||||
|  |             <ssl>0</ssl> | ||||||
|  |         </httpd> | ||||||
|  |     </server> | ||||||
|  |     <platform> | ||||||
|  |         <name>Linux</name> | ||||||
|  |         <release>4.15.0-65-generic</release> | ||||||
|  |         <version>#74~16.04.1-Ubuntu SMP Wed Sep 18 09:51:44 UTC 2019</version> | ||||||
|  |         <machine>x86_64</machine> | ||||||
|  |         <cpu>8</cpu> | ||||||
|  |         <memory>16432272</memory> | ||||||
|  |         <swap>16432268</swap> | ||||||
|  |     </platform> | ||||||
|  |     <service type="0"> | ||||||
|  |         <name>test</name> | ||||||
|  |         <collected_sec>1572850498</collected_sec> | ||||||
|  |         <collected_usec>709694</collected_usec> | ||||||
|  |         <status>0</status> | ||||||
|  |         <status_hint>0</status_hint> | ||||||
|  |         <monitor>1</monitor> | ||||||
|  |         <monitormode>0</monitormode> | ||||||
|  |         <pendingaction>0</pendingaction> | ||||||
|  |         <mode>555</mode> | ||||||
|  |         <uid>0</uid> | ||||||
|  |         <gid>0</gid> | ||||||
|  |         <flags>4096</flags> | ||||||
|  |         <block> | ||||||
|  |             <percent>29.5</percent> | ||||||
|  |             <usage>4424.0</usage> | ||||||
|  |             <total>14990.0</total> | ||||||
|  |         </block> | ||||||
|  |         <inode> | ||||||
|  |             <percent>0.8</percent> | ||||||
|  |             <usage>59674</usage> | ||||||
|  |             <total>7680000</total> | ||||||
|  |         </inode> | ||||||
|  |     </service> | ||||||
|  | </monit> | ||||||
|  | @ -0,0 +1,41 @@ | ||||||
|  | <?xml version="1.0" encoding="UTF-8"?> | ||||||
|  | <monit> | ||||||
|  |     <server> | ||||||
|  |         <id>0ed39c522be4c3971541412c43141613</id> | ||||||
|  |         <incarnation>1476518435</incarnation> | ||||||
|  |         <version>5.17.1</version> | ||||||
|  |         <uptime>109878</uptime> | ||||||
|  |         <poll>10</poll> | ||||||
|  |         <startdelay>0</startdelay> | ||||||
|  |         <localhostname>localhost</localhostname> | ||||||
|  |         <controlfile>/var/vcap/bosh/etc/monitrc</controlfile> | ||||||
|  |         <httpd> | ||||||
|  |             <address>127.0.0.1</address> | ||||||
|  |             <port>2822</port> | ||||||
|  |             <ssl>0</ssl> | ||||||
|  |         </httpd> | ||||||
|  |     </server> | ||||||
|  |     <platform> | ||||||
|  |         <name>Linux</name> | ||||||
|  |         <release>4.15.0-65-generic</release> | ||||||
|  |         <version>#74~16.04.1-Ubuntu SMP Wed Sep 18 09:51:44 UTC 2019</version> | ||||||
|  |         <machine>x86_64</machine> | ||||||
|  |         <cpu>8</cpu> | ||||||
|  |         <memory>16432272</memory> | ||||||
|  |         <swap>16432268</swap> | ||||||
|  |     </platform> | ||||||
|  |     <service type="1"> | ||||||
|  |         <name>test</name> | ||||||
|  |         <collected_sec>1572850342</collected_sec> | ||||||
|  |         <collected_usec>546082</collected_usec> | ||||||
|  |         <status>0</status> | ||||||
|  |         <status_hint>0</status_hint> | ||||||
|  |         <monitor>1</monitor> | ||||||
|  |         <monitormode>0</monitormode> | ||||||
|  |         <pendingaction>0</pendingaction> | ||||||
|  |         <mode>755</mode> | ||||||
|  |         <uid>0</uid> | ||||||
|  |         <gid>0</gid> | ||||||
|  |         <timestamp>1572272434</timestamp> | ||||||
|  |     </service> | ||||||
|  | </monit> | ||||||
|  | @ -0,0 +1,42 @@ | ||||||
|  | <?xml version="1.0" encoding="UTF-8"?> | ||||||
|  | <monit> | ||||||
|  |     <server> | ||||||
|  |         <id>0ed39c522be4c3971541412c43141613</id> | ||||||
|  |         <incarnation>1476518435</incarnation> | ||||||
|  |         <version>5.17.1</version> | ||||||
|  |         <uptime>109878</uptime> | ||||||
|  |         <poll>10</poll> | ||||||
|  |         <startdelay>0</startdelay> | ||||||
|  |         <localhostname>localhost</localhostname> | ||||||
|  |         <controlfile>/var/vcap/bosh/etc/monitrc</controlfile> | ||||||
|  |         <httpd> | ||||||
|  |             <address>127.0.0.1</address> | ||||||
|  |             <port>2822</port> | ||||||
|  |             <ssl>0</ssl> | ||||||
|  |         </httpd> | ||||||
|  |     </server> | ||||||
|  |     <platform> | ||||||
|  |         <name>Linux</name> | ||||||
|  |         <release>4.15.0-65-generic</release> | ||||||
|  |         <version>#74~16.04.1-Ubuntu SMP Wed Sep 18 09:51:44 UTC 2019</version> | ||||||
|  |         <machine>x86_64</machine> | ||||||
|  |         <cpu>8</cpu> | ||||||
|  |         <memory>16432272</memory> | ||||||
|  |         <swap>16432268</swap> | ||||||
|  |     </platform> | ||||||
|  |     <service type="2"> | ||||||
|  |         <name>test</name> | ||||||
|  |         <collected_sec>1476628305</collected_sec> | ||||||
|  |         <collected_usec>302669</collected_usec> | ||||||
|  |         <status>0</status> | ||||||
|  |         <status_hint>0</status_hint> | ||||||
|  |         <monitor>1</monitor> | ||||||
|  |         <monitormode>0</monitormode> | ||||||
|  |         <pendingaction>0</pendingaction> | ||||||
|  |         <mode>644</mode> | ||||||
|  |         <uid>1000</uid> | ||||||
|  |         <gid>1000</gid> | ||||||
|  |         <timestamp>1476518441</timestamp> | ||||||
|  |         <size>1565</size> | ||||||
|  |     </service> | ||||||
|  | </monit> | ||||||
|  | @ -0,0 +1,52 @@ | ||||||
|  | <?xml version="1.0" encoding="UTF-8"?> | ||||||
|  | <monit> | ||||||
|  |     <server> | ||||||
|  |         <id>0ed39c522be4c3971541412c43141613</id> | ||||||
|  |         <incarnation>1476518435</incarnation> | ||||||
|  |         <version>5.17.1</version> | ||||||
|  |         <uptime>109878</uptime> | ||||||
|  |         <poll>10</poll> | ||||||
|  |         <startdelay>0</startdelay> | ||||||
|  |         <localhostname>localhost</localhostname> | ||||||
|  |         <controlfile>/var/vcap/bosh/etc/monitrc</controlfile> | ||||||
|  |         <httpd> | ||||||
|  |             <address>127.0.0.1</address> | ||||||
|  |             <port>2822</port> | ||||||
|  |             <ssl>0</ssl> | ||||||
|  |         </httpd> | ||||||
|  |     </server> | ||||||
|  |     <platform> | ||||||
|  |         <name>Linux</name> | ||||||
|  |         <release>4.15.0-65-generic</release> | ||||||
|  |         <version>#74~16.04.1-Ubuntu SMP Wed Sep 18 09:51:44 UTC 2019</version> | ||||||
|  |         <machine>x86_64</machine> | ||||||
|  |         <cpu>8</cpu> | ||||||
|  |         <memory>16432272</memory> | ||||||
|  |         <swap>16432268</swap> | ||||||
|  |     </platform> | ||||||
|  |     <service type="3"> | ||||||
|  |         <name>test</name> | ||||||
|  |         <collected_sec>1476628305</collected_sec> | ||||||
|  |         <collected_usec>302552</collected_usec> | ||||||
|  |         <status>0</status> | ||||||
|  |         <status_hint>0</status_hint> | ||||||
|  |         <monitor>1</monitor> | ||||||
|  |         <monitormode>0</monitormode> | ||||||
|  |         <pendingaction>0</pendingaction> | ||||||
|  |         <pid>5959</pid> | ||||||
|  |         <ppid>1</ppid> | ||||||
|  |         <uptime>109870</uptime> | ||||||
|  |         <children>0</children> | ||||||
|  |         <threads>31</threads> | ||||||
|  |         <memory> | ||||||
|  |             <percent>0.1</percent> | ||||||
|  |             <percenttotal>0.1</percenttotal> | ||||||
|  |             <kilobyte>22892</kilobyte> | ||||||
|  |             <kilobytetotal>22892</kilobytetotal> | ||||||
|  |         </memory> | ||||||
|  |         <cpu> | ||||||
|  |             <percent>0.0</percent> | ||||||
|  |             <percenttotal>0.0</percenttotal> | ||||||
|  |         </cpu> | ||||||
|  |     </service> | ||||||
|  | </monit> | ||||||
|  | @ -0,0 +1,45 @@ | ||||||
|  | <?xml version="1.0" encoding="UTF-8"?> | ||||||
|  | <monit> | ||||||
|  |     <server> | ||||||
|  |         <id>0ed39c522be4c3971541412c43141613</id> | ||||||
|  |         <incarnation>1476518435</incarnation> | ||||||
|  |         <version>5.17.1</version> | ||||||
|  |         <uptime>109878</uptime> | ||||||
|  |         <poll>10</poll> | ||||||
|  |         <startdelay>0</startdelay> | ||||||
|  |         <localhostname>localhost</localhostname> | ||||||
|  |         <controlfile>/var/vcap/bosh/etc/monitrc</controlfile> | ||||||
|  |         <httpd> | ||||||
|  |             <address>127.0.0.1</address> | ||||||
|  |             <port>2822</port> | ||||||
|  |             <ssl>0</ssl> | ||||||
|  |         </httpd> | ||||||
|  |     </server> | ||||||
|  |     <platform> | ||||||
|  |         <name>Linux</name> | ||||||
|  |         <release>4.15.0-65-generic</release> | ||||||
|  |         <version>#74~16.04.1-Ubuntu SMP Wed Sep 18 09:51:44 UTC 2019</version> | ||||||
|  |         <machine>x86_64</machine> | ||||||
|  |         <cpu>8</cpu> | ||||||
|  |         <memory>16432272</memory> | ||||||
|  |         <swap>16432268</swap> | ||||||
|  |     </platform> | ||||||
|  |     <service type="4"> | ||||||
|  |         <name>test</name> | ||||||
|  |         <collected_sec>1572862451</collected_sec> | ||||||
|  |         <collected_usec>947671</collected_usec> | ||||||
|  |         <status>0</status> | ||||||
|  |         <status_hint>0</status_hint> | ||||||
|  |         <monitor>1</monitor> | ||||||
|  |         <monitormode>0</monitormode> | ||||||
|  |         <pendingaction>0</pendingaction> | ||||||
|  |         <port> | ||||||
|  |             <hostname>192.168.1.10</hostname> | ||||||
|  |             <portnumber>2812</portnumber> | ||||||
|  |             <request></request> | ||||||
|  |             <protocol>DEFAULT</protocol> | ||||||
|  |             <type>TCP</type> | ||||||
|  |             <responsetime>0.000145</responsetime> | ||||||
|  |         </port> | ||||||
|  |     </service> | ||||||
|  | </monit> | ||||||
|  | @ -0,0 +1,57 @@ | ||||||
|  | <?xml version="1.0" encoding="UTF-8"?> | ||||||
|  | <monit> | ||||||
|  |     <server> | ||||||
|  |         <id>0ed39c522be4c3971541412c43141613</id> | ||||||
|  |         <incarnation>1476518435</incarnation> | ||||||
|  |         <version>5.17.1</version> | ||||||
|  |         <uptime>109878</uptime> | ||||||
|  |         <poll>10</poll> | ||||||
|  |         <startdelay>0</startdelay> | ||||||
|  |         <localhostname>localhost</localhostname> | ||||||
|  |         <controlfile>/var/vcap/bosh/etc/monitrc</controlfile> | ||||||
|  |         <httpd> | ||||||
|  |             <address>127.0.0.1</address> | ||||||
|  |             <port>2822</port> | ||||||
|  |             <ssl>0</ssl> | ||||||
|  |         </httpd> | ||||||
|  |     </server> | ||||||
|  |     <platform> | ||||||
|  |         <name>Linux</name> | ||||||
|  |         <release>4.15.0-65-generic</release> | ||||||
|  |         <version>#74~16.04.1-Ubuntu SMP Wed Sep 18 09:51:44 UTC 2019</version> | ||||||
|  |         <machine>x86_64</machine> | ||||||
|  |         <cpu>8</cpu> | ||||||
|  |         <memory>16432272</memory> | ||||||
|  |         <swap>16432268</swap> | ||||||
|  |     </platform> | ||||||
|  |     <service type="5"> | ||||||
|  |         <name>test</name> | ||||||
|  |         <collected_sec>1476628305</collected_sec> | ||||||
|  |         <collected_usec>302682</collected_usec> | ||||||
|  |         <status>0</status> | ||||||
|  |         <status_hint>0</status_hint> | ||||||
|  |         <monitor>1</monitor> | ||||||
|  |         <monitormode>0</monitormode> | ||||||
|  |         <pendingaction>0</pendingaction> | ||||||
|  |         <system> | ||||||
|  |             <load> | ||||||
|  |                 <avg01>0.00</avg01> | ||||||
|  |                 <avg05>0.00</avg05> | ||||||
|  |                 <avg15>0.00</avg15> | ||||||
|  |             </load> | ||||||
|  |             <cpu> | ||||||
|  |                 <user>0.0</user> | ||||||
|  |                 <system>0.1</system> | ||||||
|  |                 <wait>0.0</wait> | ||||||
|  |             </cpu> | ||||||
|  |             <memory> | ||||||
|  |                 <percent>1.5</percent> | ||||||
|  |                 <kilobyte>259668</kilobyte> | ||||||
|  |             </memory> | ||||||
|  |             <swap> | ||||||
|  |                 <percent>0.0</percent> | ||||||
|  |                 <kilobyte>0</kilobyte> | ||||||
|  |             </swap> | ||||||
|  |         </system> | ||||||
|  |     </service> | ||||||
|  | </monit> | ||||||
|  | @ -0,0 +1,41 @@ | ||||||
|  | <?xml version="1.0" encoding="UTF-8"?> | ||||||
|  | <monit> | ||||||
|  |     <server> | ||||||
|  |         <id>0ed39c522be4c3971541412c43141613</id> | ||||||
|  |         <incarnation>1476518435</incarnation> | ||||||
|  |         <version>5.17.1</version> | ||||||
|  |         <uptime>109878</uptime> | ||||||
|  |         <poll>10</poll> | ||||||
|  |         <startdelay>0</startdelay> | ||||||
|  |         <localhostname>localhost</localhostname> | ||||||
|  |         <controlfile>/var/vcap/bosh/etc/monitrc</controlfile> | ||||||
|  |         <httpd> | ||||||
|  |             <address>127.0.0.1</address> | ||||||
|  |             <port>2822</port> | ||||||
|  |             <ssl>0</ssl> | ||||||
|  |         </httpd> | ||||||
|  |     </server> | ||||||
|  |     <platform> | ||||||
|  |         <name>Linux</name> | ||||||
|  |         <release>4.15.0-65-generic</release> | ||||||
|  |         <version>#74~16.04.1-Ubuntu SMP Wed Sep 18 09:51:44 UTC 2019</version> | ||||||
|  |         <machine>x86_64</machine> | ||||||
|  |         <cpu>8</cpu> | ||||||
|  |         <memory>16432272</memory> | ||||||
|  |         <swap>16432268</swap> | ||||||
|  |     </platform> | ||||||
|  |     <service type="6"> | ||||||
|  |         <name>test</name> | ||||||
|  |         <collected_sec>1572862451</collected_sec> | ||||||
|  |         <collected_usec>947495</collected_usec> | ||||||
|  |         <status>0</status> | ||||||
|  |         <status_hint>0</status_hint> | ||||||
|  |         <monitor>1</monitor> | ||||||
|  |         <monitormode>0</monitormode> | ||||||
|  |         <pendingaction>0</pendingaction> | ||||||
|  |         <mode>664</mode> | ||||||
|  |         <uid>1000</uid> | ||||||
|  |         <gid>1000</gid> | ||||||
|  |         <timestamp>1572271731</timestamp> | ||||||
|  |     </service> | ||||||
|  | </monit> | ||||||
|  | @ -0,0 +1,42 @@ | ||||||
|  | <?xml version="1.0" encoding="UTF-8"?> | ||||||
|  | <monit> | ||||||
|  |     <server> | ||||||
|  |         <id>0ed39c522be4c3971541412c43141613</id> | ||||||
|  |         <incarnation>1476518435</incarnation> | ||||||
|  |         <version>5.17.1</version> | ||||||
|  |         <uptime>109878</uptime> | ||||||
|  |         <poll>10</poll> | ||||||
|  |         <startdelay>0</startdelay> | ||||||
|  |         <localhostname>localhost</localhostname> | ||||||
|  |         <controlfile>/var/vcap/bosh/etc/monitrc</controlfile> | ||||||
|  |         <httpd> | ||||||
|  |             <address>127.0.0.1</address> | ||||||
|  |             <port>2822</port> | ||||||
|  |             <ssl>0</ssl> | ||||||
|  |         </httpd> | ||||||
|  |     </server> | ||||||
|  |     <platform> | ||||||
|  |         <name>Linux</name> | ||||||
|  |         <release>4.15.0-65-generic</release> | ||||||
|  |         <version>#74~16.04.1-Ubuntu SMP Wed Sep 18 09:51:44 UTC 2019</version> | ||||||
|  |         <machine>x86_64</machine> | ||||||
|  |         <cpu>8</cpu> | ||||||
|  |         <memory>16432272</memory> | ||||||
|  |         <swap>16432268</swap> | ||||||
|  |     </platform> | ||||||
|  |     <service type="7"> | ||||||
|  |         <name>test</name> | ||||||
|  |         <collected_sec>1572850498</collected_sec> | ||||||
|  |         <collected_usec>710675</collected_usec> | ||||||
|  |         <status>0</status> | ||||||
|  |         <status_hint>0</status_hint> | ||||||
|  |         <monitor>1</monitor> | ||||||
|  |         <monitormode>0</monitormode> | ||||||
|  |         <pendingaction>0</pendingaction> | ||||||
|  |         <program> | ||||||
|  |             <started>1572850498</started> | ||||||
|  |             <status>0</status> | ||||||
|  |             <output>Stats health check successful.</output> | ||||||
|  |         </program> | ||||||
|  |     </service> | ||||||
|  | </monit> | ||||||
|  | @ -0,0 +1,70 @@ | ||||||
|  | <?xml version="1.0" encoding="UTF-8"?> | ||||||
|  | <monit> | ||||||
|  |     <server> | ||||||
|  |         <id>0ed39c522be4c3971541412c43141613</id> | ||||||
|  |         <incarnation>1476518435</incarnation> | ||||||
|  |         <version>5.17.1</version> | ||||||
|  |         <uptime>109878</uptime> | ||||||
|  |         <poll>10</poll> | ||||||
|  |         <startdelay>0</startdelay> | ||||||
|  |         <localhostname>localhost</localhostname> | ||||||
|  |         <controlfile>/var/vcap/bosh/etc/monitrc</controlfile> | ||||||
|  |         <httpd> | ||||||
|  |             <address>127.0.0.1</address> | ||||||
|  |             <port>2822</port> | ||||||
|  |             <ssl>0</ssl> | ||||||
|  |         </httpd> | ||||||
|  |     </server> | ||||||
|  |     <platform> | ||||||
|  |         <name>Linux</name> | ||||||
|  |         <release>4.15.0-65-generic</release> | ||||||
|  |         <version>#74~16.04.1-Ubuntu SMP Wed Sep 18 09:51:44 UTC 2019</version> | ||||||
|  |         <machine>x86_64</machine> | ||||||
|  |         <cpu>8</cpu> | ||||||
|  |         <memory>16432272</memory> | ||||||
|  |         <swap>16432268</swap> | ||||||
|  |     </platform> | ||||||
|  |     <service type="8"> | ||||||
|  |         <name>test</name> | ||||||
|  |         <collected_sec>1572869770</collected_sec> | ||||||
|  |         <collected_usec>807562</collected_usec> | ||||||
|  |         <status>0</status> | ||||||
|  |         <status_hint>0</status_hint> | ||||||
|  |         <monitor>1</monitor> | ||||||
|  |         <monitormode>0</monitormode> | ||||||
|  |         <pendingaction>0</pendingaction> | ||||||
|  |         <link> | ||||||
|  |             <state>1</state> | ||||||
|  |             <speed>1000000000</speed> | ||||||
|  |             <duplex>1</duplex> | ||||||
|  |             <download> | ||||||
|  |                 <packets> | ||||||
|  |                     <now>0</now> | ||||||
|  |                     <total>15243</total> | ||||||
|  |                 </packets> | ||||||
|  |                 <bytes> | ||||||
|  |                     <now>0</now> | ||||||
|  |                     <total>5506778</total> | ||||||
|  |                 </bytes> | ||||||
|  |                 <errors> | ||||||
|  |                     <now>0</now> | ||||||
|  |                     <total>0</total> | ||||||
|  |                 </errors> | ||||||
|  |             </download> | ||||||
|  |             <upload> | ||||||
|  |                 <packets> | ||||||
|  |                     <now>0</now> | ||||||
|  |                     <total>8822</total> | ||||||
|  |                 </packets> | ||||||
|  |                 <bytes> | ||||||
|  |                     <now>0</now> | ||||||
|  |                     <total>1287240</total> | ||||||
|  |                 </bytes> | ||||||
|  |                 <errors> | ||||||
|  |                     <now>0</now> | ||||||
|  |                     <total>0</total> | ||||||
|  |                 </errors> | ||||||
|  |             </upload> | ||||||
|  |         </link> | ||||||
|  |     </service> | ||||||
|  | </monit> | ||||||
|  | @ -0,0 +1,70 @@ | ||||||
|  | <?xml version="1.0" encoding="UTF-8"?> | ||||||
|  | <monit> | ||||||
|  |     <server> | ||||||
|  |         <id>0ed39c522be4c3971541412c43141613</id> | ||||||
|  |         <incarnation>1476518435</incarnation> | ||||||
|  |         <version>5.17.1</version> | ||||||
|  |         <uptime>109878</uptime> | ||||||
|  |         <poll>10</poll> | ||||||
|  |         <startdelay>0</startdelay> | ||||||
|  |         <localhostname>localhost</localhostname> | ||||||
|  |         <controlfile>/var/vcap/bosh/etc/monitrc</controlfile> | ||||||
|  |         <httpd> | ||||||
|  |             <address>127.0.0.1</address> | ||||||
|  |             <port>2822</port> | ||||||
|  |             <ssl>0</ssl> | ||||||
|  |         </httpd> | ||||||
|  |     </server> | ||||||
|  |     <platform> | ||||||
|  |         <name>Linux</name> | ||||||
|  |         <release>4.15.0-65-generic</release> | ||||||
|  |         <version>#74~16.04.1-Ubuntu SMP Wed Sep 18 09:51:44 UTC 2019</version> | ||||||
|  |         <machine>x86_64</machine> | ||||||
|  |         <cpu>8</cpu> | ||||||
|  |         <memory>16432272</memory> | ||||||
|  |         <swap>16432268</swap> | ||||||
|  |     </platform> | ||||||
|  |     <service type="8"> | ||||||
|  |         <name>test</name> | ||||||
|  |         <collected_sec>1572869770</collected_sec> | ||||||
|  |         <collected_usec>807562</collected_usec> | ||||||
|  |         <status>8388608</status> | ||||||
|  |         <status_hint>0</status_hint> | ||||||
|  |         <monitor>1</monitor> | ||||||
|  |         <monitormode>0</monitormode> | ||||||
|  |         <pendingaction>0</pendingaction> | ||||||
|  |         <link> | ||||||
|  |             <state>0</state> | ||||||
|  |             <speed>-1</speed> | ||||||
|  |             <duplex>-1</duplex> | ||||||
|  |             <download> | ||||||
|  |                 <packets> | ||||||
|  |                     <now>0</now> | ||||||
|  |                     <total>0</total> | ||||||
|  |                 </packets> | ||||||
|  |                 <bytes> | ||||||
|  |                     <now>0</now> | ||||||
|  |                     <total>0</total> | ||||||
|  |                 </bytes> | ||||||
|  |                 <errors> | ||||||
|  |                     <now>0</now> | ||||||
|  |                     <total>0</total> | ||||||
|  |                 </errors> | ||||||
|  |             </download> | ||||||
|  |             <upload> | ||||||
|  |                 <packets> | ||||||
|  |                     <now>0</now> | ||||||
|  |                     <total>0</total> | ||||||
|  |                 </packets> | ||||||
|  |                 <bytes> | ||||||
|  |                     <now>0</now> | ||||||
|  |                     <total>0</total> | ||||||
|  |                 </bytes> | ||||||
|  |                 <errors> | ||||||
|  |                     <now>0</now> | ||||||
|  |                     <total>0</total> | ||||||
|  |                 </errors> | ||||||
|  |             </upload> | ||||||
|  |         </link> | ||||||
|  |     </service> | ||||||
|  | </monit> | ||||||
|  | @ -0,0 +1,70 @@ | ||||||
|  | <?xml version="1.0" encoding="UTF-8"?> | ||||||
|  | <monit> | ||||||
|  |     <server> | ||||||
|  |         <id>0ed39c522be4c3971541412c43141613</id> | ||||||
|  |         <incarnation>1476518435</incarnation> | ||||||
|  |         <version>5.17.1</version> | ||||||
|  |         <uptime>109878</uptime> | ||||||
|  |         <poll>10</poll> | ||||||
|  |         <startdelay>0</startdelay> | ||||||
|  |         <localhostname>localhost</localhostname> | ||||||
|  |         <controlfile>/var/vcap/bosh/etc/monitrc</controlfile> | ||||||
|  |         <httpd> | ||||||
|  |             <address>127.0.0.1</address> | ||||||
|  |             <port>2822</port> | ||||||
|  |             <ssl>0</ssl> | ||||||
|  |         </httpd> | ||||||
|  |     </server> | ||||||
|  |     <platform> | ||||||
|  |         <name>Linux</name> | ||||||
|  |         <release>4.15.0-65-generic</release> | ||||||
|  |         <version>#74~16.04.1-Ubuntu SMP Wed Sep 18 09:51:44 UTC 2019</version> | ||||||
|  |         <machine>x86_64</machine> | ||||||
|  |         <cpu>8</cpu> | ||||||
|  |         <memory>16432272</memory> | ||||||
|  |         <swap>16432268</swap> | ||||||
|  |     </platform> | ||||||
|  |     <service type="8"> | ||||||
|  |         <name>test</name> | ||||||
|  |         <collected_sec>1572869770</collected_sec> | ||||||
|  |         <collected_usec>807562</collected_usec> | ||||||
|  |         <status>0</status> | ||||||
|  |         <status_hint>0</status_hint> | ||||||
|  |         <monitor>2</monitor> | ||||||
|  |         <monitormode>0</monitormode> | ||||||
|  |         <pendingaction>0</pendingaction> | ||||||
|  |         <link> | ||||||
|  |             <state>1</state> | ||||||
|  |             <speed>1000000000</speed> | ||||||
|  |             <duplex>1</duplex> | ||||||
|  |             <download> | ||||||
|  |                 <packets> | ||||||
|  |                     <now>0</now> | ||||||
|  |                     <total>15243</total> | ||||||
|  |                 </packets> | ||||||
|  |                 <bytes> | ||||||
|  |                     <now>0</now> | ||||||
|  |                     <total>5506778</total> | ||||||
|  |                 </bytes> | ||||||
|  |                 <errors> | ||||||
|  |                     <now>0</now> | ||||||
|  |                     <total>0</total> | ||||||
|  |                 </errors> | ||||||
|  |             </download> | ||||||
|  |             <upload> | ||||||
|  |                 <packets> | ||||||
|  |                     <now>0</now> | ||||||
|  |                     <total>8822</total> | ||||||
|  |                 </packets> | ||||||
|  |                 <bytes> | ||||||
|  |                     <now>0</now> | ||||||
|  |                     <total>1287240</total> | ||||||
|  |                 </bytes> | ||||||
|  |                 <errors> | ||||||
|  |                     <now>0</now> | ||||||
|  |                     <total>0</total> | ||||||
|  |                 </errors> | ||||||
|  |             </upload> | ||||||
|  |         </link> | ||||||
|  |     </service> | ||||||
|  | </monit> | ||||||
|  | @ -0,0 +1,70 @@ | ||||||
|  | <?xml version="1.0" encoding="UTF-8"?> | ||||||
|  | <monit> | ||||||
|  |     <server> | ||||||
|  |         <id>0ed39c522be4c3971541412c43141613</id> | ||||||
|  |         <incarnation>1476518435</incarnation> | ||||||
|  |         <version>5.17.1</version> | ||||||
|  |         <uptime>109878</uptime> | ||||||
|  |         <poll>10</poll> | ||||||
|  |         <startdelay>0</startdelay> | ||||||
|  |         <localhostname>localhost</localhostname> | ||||||
|  |         <controlfile>/var/vcap/bosh/etc/monitrc</controlfile> | ||||||
|  |         <httpd> | ||||||
|  |             <address>127.0.0.1</address> | ||||||
|  |             <port>2822</port> | ||||||
|  |             <ssl>0</ssl> | ||||||
|  |         </httpd> | ||||||
|  |     </server> | ||||||
|  |     <platform> | ||||||
|  |         <name>Linux</name> | ||||||
|  |         <release>4.15.0-65-generic</release> | ||||||
|  |         <version>#74~16.04.1-Ubuntu SMP Wed Sep 18 09:51:44 UTC 2019</version> | ||||||
|  |         <machine>x86_64</machine> | ||||||
|  |         <cpu>8</cpu> | ||||||
|  |         <memory>16432272</memory> | ||||||
|  |         <swap>16432268</swap> | ||||||
|  |     </platform> | ||||||
|  |     <service type="8"> | ||||||
|  |         <name>test</name> | ||||||
|  |         <collected_sec>1572869770</collected_sec> | ||||||
|  |         <collected_usec>807562</collected_usec> | ||||||
|  |         <status>0</status> | ||||||
|  |         <status_hint>0</status_hint> | ||||||
|  |         <monitor>1</monitor> | ||||||
|  |         <monitormode>1</monitormode> | ||||||
|  |         <pendingaction>0</pendingaction> | ||||||
|  |         <link> | ||||||
|  |             <state>1</state> | ||||||
|  |             <speed>1000000000</speed> | ||||||
|  |             <duplex>1</duplex> | ||||||
|  |             <download> | ||||||
|  |                 <packets> | ||||||
|  |                     <now>0</now> | ||||||
|  |                     <total>15243</total> | ||||||
|  |                 </packets> | ||||||
|  |                 <bytes> | ||||||
|  |                     <now>0</now> | ||||||
|  |                     <total>5506778</total> | ||||||
|  |                 </bytes> | ||||||
|  |                 <errors> | ||||||
|  |                     <now>0</now> | ||||||
|  |                     <total>0</total> | ||||||
|  |                 </errors> | ||||||
|  |             </download> | ||||||
|  |             <upload> | ||||||
|  |                 <packets> | ||||||
|  |                     <now>0</now> | ||||||
|  |                     <total>8822</total> | ||||||
|  |                 </packets> | ||||||
|  |                 <bytes> | ||||||
|  |                     <now>0</now> | ||||||
|  |                     <total>1287240</total> | ||||||
|  |                 </bytes> | ||||||
|  |                 <errors> | ||||||
|  |                     <now>0</now> | ||||||
|  |                     <total>0</total> | ||||||
|  |                 </errors> | ||||||
|  |             </upload> | ||||||
|  |         </link> | ||||||
|  |     </service> | ||||||
|  | </monit> | ||||||
|  | @ -0,0 +1,70 @@ | ||||||
|  | <?xml version="1.0" encoding="UTF-8"?> | ||||||
|  | <monit> | ||||||
|  |     <server> | ||||||
|  |         <id>0ed39c522be4c3971541412c43141613</id> | ||||||
|  |         <incarnation>1476518435</incarnation> | ||||||
|  |         <version>5.17.1</version> | ||||||
|  |         <uptime>109878</uptime> | ||||||
|  |         <poll>10</poll> | ||||||
|  |         <startdelay>0</startdelay> | ||||||
|  |         <localhostname>localhost</localhostname> | ||||||
|  |         <controlfile>/var/vcap/bosh/etc/monitrc</controlfile> | ||||||
|  |         <httpd> | ||||||
|  |             <address>127.0.0.1</address> | ||||||
|  |             <port>2822</port> | ||||||
|  |             <ssl>0</ssl> | ||||||
|  |         </httpd> | ||||||
|  |     </server> | ||||||
|  |     <platform> | ||||||
|  |         <name>Linux</name> | ||||||
|  |         <release>4.15.0-65-generic</release> | ||||||
|  |         <version>#74~16.04.1-Ubuntu SMP Wed Sep 18 09:51:44 UTC 2019</version> | ||||||
|  |         <machine>x86_64</machine> | ||||||
|  |         <cpu>8</cpu> | ||||||
|  |         <memory>16432272</memory> | ||||||
|  |         <swap>16432268</swap> | ||||||
|  |     </platform> | ||||||
|  |     <service type="8"> | ||||||
|  |         <name>test</name> | ||||||
|  |         <collected_sec>1572869770</collected_sec> | ||||||
|  |         <collected_usec>807562</collected_usec> | ||||||
|  |         <status>0</status> | ||||||
|  |         <status_hint>0</status_hint> | ||||||
|  |         <monitor>1</monitor> | ||||||
|  |         <monitormode>0</monitormode> | ||||||
|  |         <pendingaction>5</pendingaction> | ||||||
|  |         <link> | ||||||
|  |             <state>1</state> | ||||||
|  |             <speed>1000000000</speed> | ||||||
|  |             <duplex>1</duplex> | ||||||
|  |             <download> | ||||||
|  |                 <packets> | ||||||
|  |                     <now>0</now> | ||||||
|  |                     <total>15243</total> | ||||||
|  |                 </packets> | ||||||
|  |                 <bytes> | ||||||
|  |                     <now>0</now> | ||||||
|  |                     <total>5506778</total> | ||||||
|  |                 </bytes> | ||||||
|  |                 <errors> | ||||||
|  |                     <now>0</now> | ||||||
|  |                     <total>0</total> | ||||||
|  |                 </errors> | ||||||
|  |             </download> | ||||||
|  |             <upload> | ||||||
|  |                 <packets> | ||||||
|  |                     <now>0</now> | ||||||
|  |                     <total>8822</total> | ||||||
|  |                 </packets> | ||||||
|  |                 <bytes> | ||||||
|  |                     <now>0</now> | ||||||
|  |                     <total>1287240</total> | ||||||
|  |                 </bytes> | ||||||
|  |                 <errors> | ||||||
|  |                     <now>0</now> | ||||||
|  |                     <total>0</total> | ||||||
|  |                 </errors> | ||||||
|  |             </upload> | ||||||
|  |         </link> | ||||||
|  |     </service> | ||||||
|  | </monit> | ||||||
		Loading…
	
		Reference in New Issue