🚸 improve: 优化SSL证书提醒 close #67
This commit is contained in:
parent
88f09a69a8
commit
b245497c4c
@ -199,7 +199,7 @@ URL 里面也可放置占位符,请求时会进行简单的字符串替换。
|
||||
|
||||
## 变更日志
|
||||
|
||||
最新:`dashboard 0.2.4` `agent 0.2.3`,只记录最后一次更新导致必须更新面板的说明。
|
||||
最新:`dashboard 0.2.5` `agent 0.2.4`,只记录最后一次更新导致必须更新面板的说明。
|
||||
|
||||
- `dashboard 0.2.0` `agent 0.2.0` **重大更新**
|
||||
|
||||
|
@ -77,6 +77,10 @@ func doSelfUpdate() {
|
||||
}
|
||||
}
|
||||
|
||||
func init() {
|
||||
cert.TimeoutSeconds = 30
|
||||
}
|
||||
|
||||
func main() {
|
||||
// 来自于 GoReleaser 的版本号
|
||||
dao.Version = version
|
||||
@ -183,11 +187,7 @@ func doTask(task *pb.Task) {
|
||||
if strings.HasPrefix(task.GetData(), "https://") {
|
||||
c := cert.NewCert(task.GetData()[8:])
|
||||
if c.Error != "" {
|
||||
if strings.Contains(c.Error, "expired") {
|
||||
result.Data = "SSL证书错误:证书已过期"
|
||||
} else {
|
||||
result.Data = "SSL证书错误:" + c.Error
|
||||
}
|
||||
result.Data = "SSL证书错误:" + c.Error
|
||||
} else {
|
||||
result.Data = c.Issuer + "|" + c.NotAfter
|
||||
result.Successful = true
|
||||
|
@ -23,20 +23,19 @@ func (s *NezhaHandler) ReportTask(c context.Context, r *pb.TaskResult) (*pb.Rece
|
||||
}
|
||||
if r.GetType() == model.MonitorTypeHTTPGET {
|
||||
// SSL 证书报警
|
||||
var last model.MonitorHistory
|
||||
if err := dao.DB.Where("monitor_id = ?", r.GetId()).Order("id DESC").First(&last).Error; err == nil {
|
||||
var errMsg string
|
||||
if strings.HasPrefix(r.GetData(), "SSL证书错误:") {
|
||||
// 证书错误提醒
|
||||
errMsg = r.GetData()
|
||||
} else {
|
||||
var oldSSLCert = strings.Split(last.Data, "|")
|
||||
var errMsg string
|
||||
if strings.HasPrefix(r.GetData(), "SSL证书错误:") {
|
||||
// 证书错误提醒
|
||||
errMsg = r.GetData()
|
||||
} else {
|
||||
var last model.MonitorHistory
|
||||
if err := dao.DB.Where("monitor_id = ? AND data NOT LIKE ?", r.GetId(), "SSL证书错误:%").Order("id DESC").First(&last).Error; err == nil {
|
||||
var splits = strings.Split(r.GetData(), "|")
|
||||
// 证书变更提醒
|
||||
if last.Data != "" && oldSSLCert[0] != splits[0] {
|
||||
if last.Data != "" && last.Data != r.GetData() {
|
||||
errMsg = fmt.Sprintf(
|
||||
"SSL证书变更,旧:%s,新:%s。",
|
||||
last.Data, splits[0])
|
||||
"SSL证书变更,旧:%s 过期,新:%s 过期。",
|
||||
last.Data, r.GetData())
|
||||
}
|
||||
expires, err := time.Parse("2006-01-02 15:04:05 -0700 MST", splits[1])
|
||||
// 证书过期提醒
|
||||
@ -46,11 +45,11 @@ func (s *NezhaHandler) ReportTask(c context.Context, r *pb.TaskResult) (*pb.Rece
|
||||
expires.Format("2006-01-02 15:04:05"))
|
||||
}
|
||||
}
|
||||
if errMsg != "" {
|
||||
var monitor model.Monitor
|
||||
dao.DB.First(&monitor, "id = ?", last.MonitorID)
|
||||
alertmanager.SendNotification(fmt.Sprintf("服务监控:%s %s", monitor.Name, errMsg))
|
||||
}
|
||||
}
|
||||
if errMsg != "" {
|
||||
var monitor model.Monitor
|
||||
dao.DB.First(&monitor, "id = ?", r.GetId())
|
||||
alertmanager.SendNotification(fmt.Sprintf("服务监控:%s %s", monitor.Name, errMsg))
|
||||
}
|
||||
}
|
||||
// 存入历史记录
|
||||
|
Loading…
x
Reference in New Issue
Block a user