summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorshizhendong <[email protected]>2021-04-20 10:38:30 +0800
committershizhendong <[email protected]>2021-04-20 10:38:30 +0800
commite30b44caea62f50eeda05408c2419fdafecc8f6e (patch)
tree34ce0304029f0f53121db2df1711c3ecc8420211 /src
parent52a77effdca74542a72ce6b356735c60b8910e26 (diff)
NEZ-562 fix: agent 修改 snmp_exporter/blackbox_exporter 更新配置后缺少调用 reload 接口
Diffstat (limited to 'src')
-rw-r--r--src/main/java/net/geedge/confagent/controller/BaseController.java24
-rw-r--r--src/main/java/net/geedge/confagent/controller/BlackBoxController.java10
-rw-r--r--src/main/java/net/geedge/confagent/controller/SNMPController.java10
-rw-r--r--src/main/java/net/geedge/confagent/util/RCode.java2
4 files changed, 46 insertions, 0 deletions
diff --git a/src/main/java/net/geedge/confagent/controller/BaseController.java b/src/main/java/net/geedge/confagent/controller/BaseController.java
index 65bebdc..b9d8370 100644
--- a/src/main/java/net/geedge/confagent/controller/BaseController.java
+++ b/src/main/java/net/geedge/confagent/controller/BaseController.java
@@ -1,6 +1,11 @@
package net.geedge.confagent.controller;
+import cn.hutool.core.net.url.UrlBuilder;
+import cn.hutool.http.HttpRequest;
+import cn.hutool.http.HttpResponse;
import cn.hutool.log.Log;
+import net.geedge.confagent.util.ConfagentUtil;
+import net.geedge.confagent.util.Tool;
import org.springframework.beans.factory.annotation.Value;
public abstract class BaseController {
@@ -46,4 +51,23 @@ public abstract class BaseController {
@Value("${confagent.prometheus.rule}")
protected String rulePath;
+ /**
+ * 调用 /-/reload 接口,热加载 server 配置文件,
+ *
+ * @param cmdLinePath
+ * @param serverListenAddr
+ * @param defaultServerPort
+ * @param defaultServerIP
+ * @return
+ */
+ public boolean reloadServerConfiguration(String cmdLinePath, String serverListenAddr, int defaultServerPort, String defaultServerIP) {
+ UrlBuilder serverReloadUrl = new UrlBuilder();
+ int serverPort = ConfagentUtil.getConfFilePort(cmdLinePath, serverListenAddr, defaultServerPort);
+ serverReloadUrl.setScheme("http").setHost(defaultServerIP).setPort(serverPort).addPath("/-/reload");
+
+ String url = serverReloadUrl.toString();
+ HttpRequest post = Tool.HttpUtil.createPost(url);
+ HttpResponse response = post.execute();
+ return 200 == response.getStatus();
+ }
}
diff --git a/src/main/java/net/geedge/confagent/controller/BlackBoxController.java b/src/main/java/net/geedge/confagent/controller/BlackBoxController.java
index 05cdf8a..440b10c 100644
--- a/src/main/java/net/geedge/confagent/controller/BlackBoxController.java
+++ b/src/main/java/net/geedge/confagent/controller/BlackBoxController.java
@@ -1,6 +1,8 @@
package net.geedge.confagent.controller;
+import cn.hutool.log.Log;
import net.geedge.confagent.util.R;
+import net.geedge.confagent.util.RCode;
import net.geedge.confagent.util.Tool;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.PostMapping;
@@ -14,6 +16,8 @@ import java.util.Map;
@RequestMapping("/blackboxExporter")
public class BlackBoxController extends BaseController{
+ private Log log = Log.get();
+
@Value("${confagent.blackBoxExport.config}")
private String blackboxConfPath;
@@ -22,6 +26,12 @@ public class BlackBoxController extends BaseController{
Tool.YamlUtil.writeAsMap(configs, blackboxConfPath);
+ log.info("reload blackbox_exporter");
+ boolean success = reloadServerConfiguration(blackboxExporterCmdLinePath, BLACKBOXEXPORTER_LISTEN_ADDR, DEFAULT_BLACKBOXEXPORTER_PORT, defaultBlackboxExporterIP);
+ if (!success) {
+ return R.error(RCode.CONFIG_BLAVKBOX_RELOAD_FAILED);
+ }
+
return R.ok();
}
}
diff --git a/src/main/java/net/geedge/confagent/controller/SNMPController.java b/src/main/java/net/geedge/confagent/controller/SNMPController.java
index fe75a0f..6a75a5b 100644
--- a/src/main/java/net/geedge/confagent/controller/SNMPController.java
+++ b/src/main/java/net/geedge/confagent/controller/SNMPController.java
@@ -1,6 +1,8 @@
package net.geedge.confagent.controller;
+import cn.hutool.log.Log;
import net.geedge.confagent.util.R;
+import net.geedge.confagent.util.RCode;
import net.geedge.confagent.util.Tool;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.PostMapping;
@@ -14,6 +16,8 @@ import java.util.Map;
@RequestMapping("/snmpExporter")
public class SNMPController extends BaseController{
+ private Log log = Log.get();
+
@Value("${confagent.snmpExporter.config}")
private String snmpConfPath;
@@ -22,6 +26,12 @@ public class SNMPController extends BaseController{
Tool.YamlUtil.writeAsMap(configs,snmpConfPath);
+ log.info("reload snmp_exporter");
+ boolean success = reloadServerConfiguration(snmpExporterCmdLinePath, SNMPEXPORTER_LISTEN_ADDR, DEFAULT_SNMPEXPORTER_PORT, defaultSNMPExporterIP);
+ if (!success) {
+ return R.error(RCode.CONFIG_SNMP_EXPORTER_RELOAD_FAILED);
+ }
+
return R.ok();
}
diff --git a/src/main/java/net/geedge/confagent/util/RCode.java b/src/main/java/net/geedge/confagent/util/RCode.java
index 48d6654..a853521 100644
--- a/src/main/java/net/geedge/confagent/util/RCode.java
+++ b/src/main/java/net/geedge/confagent/util/RCode.java
@@ -10,6 +10,8 @@ public enum RCode {
AUTH_READ_TOKEN_FAILD(10004,"Read token failed"),
CONFIG_PROMETHEUS_RELOAD_FAILED(10005,"Reload prometheus failed"),
+ CONFIG_BLAVKBOX_RELOAD_FAILED(10006,"Reload blackbox_exporter failed"),
+ CONFIG_SNMP_EXPORTER_RELOAD_FAILED(10007,"Reload snmp_exporter failed"),
ERROR(999, "error"); //通用错误/未知错误
private RCode(Integer code, String msg) {