refactor(agent): output 命令合并端口发现——一行 ports.discovery[*] 输出 LLD JSON
- 去掉 discover 子命令,全部合并到 output - 新增 ports.discovery[*] 行(Zabbix LLD JSON) - 新增 system.hostname(同 agent.hostname) - 一次采集,全部输出
This commit is contained in:
1 parent
2c170589c6
commit
c515f6ed03
1 file changed
+16
-27
+16
-27
@@ -82,9 +82,6 @@ func main() {
|
|||||||
case "output":
|
case "output":
|
||||||
runOutput(cfg)
|
runOutput(cfg)
|
||||||
return
|
return
|
||||||
case "discover":
|
|
||||||
runDiscover()
|
|
||||||
return
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// ── 正常采集上报模式 ──
|
// ── 正常采集上报模式 ──
|
||||||
@@ -394,6 +391,7 @@ func runOutput(cfg Config) {
|
|||||||
|
|
||||||
// Agent 身份
|
// Agent 身份
|
||||||
ps("agent.hostname", report.Hostname)
|
ps("agent.hostname", report.Hostname)
|
||||||
|
ps("system.hostname", report.Hostname)
|
||||||
ps("agent.version", report.AgentVersion)
|
ps("agent.version", report.AgentVersion)
|
||||||
ps("agent.ip", report.IP)
|
ps("agent.ip", report.IP)
|
||||||
|
|
||||||
@@ -439,6 +437,21 @@ func runOutput(cfg Config) {
|
|||||||
}
|
}
|
||||||
pu("net.listen.count", len(report.Ports))
|
pu("net.listen.count", len(report.Ports))
|
||||||
|
|
||||||
|
// 端口发现 Zabbix LLD JSON(合并为一行)
|
||||||
|
if len(report.Ports) > 0 {
|
||||||
|
type lldItem struct {
|
||||||
|
PName string `json:"{#PNAME}"`
|
||||||
|
PPort string `json:"{#PPORT}"`
|
||||||
|
}
|
||||||
|
items := make([]lldItem, 0, len(report.Ports))
|
||||||
|
for _, pt := range report.Ports {
|
||||||
|
items = append(items, lldItem{PName: pt.Process, PPort: strconv.Itoa(pt.Port)})
|
||||||
|
}
|
||||||
|
if jsonBytes, err := json.Marshal(map[string]interface{}{"data": items}); err == nil {
|
||||||
|
ps("ports.discovery[*]", string(jsonBytes))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// 网络 TCP
|
// 网络 TCP
|
||||||
pu("net.tcp.established", report.Network.TCPEstablished)
|
pu("net.tcp.established", report.Network.TCPEstablished)
|
||||||
pu("net.tcp.time_wait", report.Network.TCPTimeWait)
|
pu("net.tcp.time_wait", report.Network.TCPTimeWait)
|
||||||
@@ -489,30 +502,6 @@ func runOutput(cfg Config) {
|
|||||||
pu64("agent.heartbeat.report_seq", int64(report.Heartbeat.ReportSeq))
|
pu64("agent.heartbeat.report_seq", int64(report.Heartbeat.ReportSeq))
|
||||||
}
|
}
|
||||||
|
|
||||||
// ── runDiscover: Zabbix LLD 端口发现 ──
|
|
||||||
|
|
||||||
func runDiscover() {
|
|
||||||
port := collector.NewPortCollector()
|
|
||||||
ports, err := port.Collect()
|
|
||||||
if err != nil {
|
|
||||||
fmt.Println(`{"data":[]}`)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
type lldItem struct {
|
|
||||||
PName string `json:"{#PNAME}"`
|
|
||||||
PPort string `json:"{#PPORT}"`
|
|
||||||
}
|
|
||||||
items := make([]lldItem, 0, len(ports))
|
|
||||||
for _, p := range ports {
|
|
||||||
items = append(items, lldItem{
|
|
||||||
PName: p.Process,
|
|
||||||
PPort: strconv.Itoa(p.Port),
|
|
||||||
})
|
|
||||||
}
|
|
||||||
out, _ := json.Marshal(map[string]interface{}{"data": items})
|
|
||||||
fmt.Println(string(out))
|
|
||||||
}
|
|
||||||
|
|
||||||
// detectLocalIP 探测本机主 IP
|
// detectLocalIP 探测本机主 IP
|
||||||
func detectLocalIP() string {
|
func detectLocalIP() string {
|
||||||
conn, err := net.Dial("udp", "8.8.8.8:53")
|
conn, err := net.Dial("udp", "8.8.8.8:53")
|
||||||
|
|||||||
Reference in new issue
Block a user