61 lines
1.1 KiB
Go
61 lines
1.1 KiB
Go
// xymon.go
|
|
package main
|
|
|
|
import (
|
|
"fmt"
|
|
"log"
|
|
"net"
|
|
"strings"
|
|
"time"
|
|
)
|
|
|
|
func sendStatus() {
|
|
|
|
var msg string
|
|
|
|
host := strings.Replace(opts.Hostname, ".", ",", -1)
|
|
|
|
if count.GetErr() > 0 {
|
|
msg = fmt.Sprintf("status %s.llmongo %s %s \n\r%s: %d", host, "yellow", time.Now(), "errors", count.GetErr())
|
|
} else {
|
|
msg = fmt.Sprintf("status %s.llmongo %s %s \n\r%s: %d", host, "green", time.Now(), "logins", count.GetLog())
|
|
}
|
|
|
|
if opts.Debug {
|
|
fmt.Println("Sending: ", msg)
|
|
}
|
|
|
|
xymonSend([]byte(msg))
|
|
}
|
|
|
|
func xymonSend(msg []byte) error {
|
|
|
|
var server string
|
|
|
|
if strings.Contains(opts.Xymon, ":") {
|
|
server = opts.Xymon
|
|
} else {
|
|
server = opts.Xymon + ":1984"
|
|
}
|
|
|
|
cl, err := net.Dial("tcp", server)
|
|
if err != nil {
|
|
fmt.Printf("xymon connect error: ", err)
|
|
log.Printf("xymon connect error: ", err)
|
|
return err
|
|
}
|
|
defer cl.Close()
|
|
|
|
// fmt.Printf("xymon: %s - localhost: %s\n", cl.RemoteAddr(), cl.LocalAddr())
|
|
|
|
_, err = cl.Write(msg)
|
|
if err != nil {
|
|
fmt.Printf("xymon write error: ", err)
|
|
log.Printf("xymon write error: ", err)
|
|
return err
|
|
}
|
|
|
|
// fmt.Printf("written: %d\n", tot)
|
|
|
|
return nil
|
|
}
|