Browse Source

配置:api smtp 二选一 告警

apple 4 years ago
parent
commit
353014fb0c

+ 7 - 3
data_monitoring/vpn_server/src/config.json

@@ -1,11 +1,11 @@
 {
   "port": "7811",
   "ids" : [
-    "测试标识1",
-    "测试标识2"
+    "id标识1111",
+    "id标识2222"
   ],
   "during": 1,
-  "isErr" : 6,
+  "isErr" : 0,
   "smtpMail": {
     "from": "zhengkun@topnet.net.cn",
     "to": "zhengkun@topnet.net.cn",
@@ -13,5 +13,9 @@
     "smtpPort": "465",
     "user":     "920032221@qq.com",
     "pwd":      "xomkphsjsamybdbj"
+  },
+  "jkmail": {
+    "to": "zhengkun@topnet.net.cn",
+    "api": "http://172.17.145.179:19281/_send/_mail"
   }
 }

+ 5 - 1
data_monitoring/vpn_server/src/main.go

@@ -39,6 +39,7 @@ func init()  {
 }
 
 func main() {
+
 	//http://monitor.spdata.jianyu360.com/,程序端口7811
 	addr := ":"+port
 	http.HandleFunc("/", handler)
@@ -108,7 +109,10 @@ func taskFinishing()  {
 
 	if isMailContent!=""{
 		log.Println("发邮件... ...",isMailContent)
-		sendErrMail("vpn异常",isMailContent)
+
+		//任选其一皆可
+		//sendErrMailSmtp("vpn异常",isMailContent)
+		sendErrMailApi("vpn异常",isMailContent)
 		//os.Exit(1)
 	}
 

+ 27 - 4
data_monitoring/vpn_server/src/sendmail.go

@@ -1,18 +1,21 @@
 package main
 
 import (
+	"fmt"
+	"io/ioutil"
 	"log"
+	"net/http"
 	qu "qfw/util"
 	"qfw/util/mail"
 )
 
 var from,to, smtpHost,user,pwd string
 var smtpPort int
+var tomail string
+var api string
 
-
-func sendErrMail(title,body string) {
-
-
+//smtp模式  二选一 皆可
+func sendErrMailSmtp(title,body string) {
 	smtpMail, _ := sysconfig["smtpMail"].(map[string]interface{})
 
 	if smtpMail != nil {
@@ -23,6 +26,7 @@ func sendErrMail(title,body string) {
 		user, _ = smtpMail["user"].(string)
 		pwd, _ = smtpMail["pwd"].(string)
 	}
+
 	ok := mail.GSendMail_B(user, from, from, from, title, body, "", nil, &mail.GmailAuth{
 		SmtpHost: smtpHost,
 		SmtpPort: smtpPort,
@@ -37,3 +41,22 @@ func sendErrMail(title,body string) {
 
 }
 
+
+
+//api模式 二选一皆可
+func sendErrMailApi(title,body string)  {
+	jkmail, _ := sysconfig["jkmail"].(map[string]interface{})
+	if jkmail != nil {
+		tomail, _ = jkmail["to"].(string)
+		api, _ = jkmail["api"].(string)
+	}
+	log.Println(tomail,api)
+	res, err := http.Get(fmt.Sprintf("%s?to=%s&title=%s&body=%s", api, tomail, "title", "body"))
+	if err == nil {
+		defer res.Body.Close()
+		read, err := ioutil.ReadAll(res.Body)
+		log.Println("邮件发送成功:", string(read), err)
+	}else {
+		log.Println("邮件发送失败:", err)
+	}
+}