Ping: stop logging every no-reply by default; opt-in NETTOPO_LOG_PING_FAILURES.
Made-with: Cursor
This commit is contained in:
@@ -4,3 +4,4 @@ STORE_BACKEND=memory
|
|||||||
RUN_MIGRATIONS=true
|
RUN_MIGRATIONS=true
|
||||||
SNMP_ENABLED=true
|
SNMP_ENABLED=true
|
||||||
SNMP_COMMUNITY=public
|
SNMP_COMMUNITY=public
|
||||||
|
# NETTOPO_LOG_PING_FAILURES=true # логировать каждый неответивший ping (по умолчанию выключено — иначе засоряет journal)
|
||||||
|
|||||||
@@ -5,10 +5,11 @@ import (
|
|||||||
"log"
|
"log"
|
||||||
"net"
|
"net"
|
||||||
"net/netip"
|
"net/netip"
|
||||||
|
"os"
|
||||||
"os/exec"
|
"os/exec"
|
||||||
"runtime"
|
"runtime"
|
||||||
"strings"
|
|
||||||
"strconv"
|
"strconv"
|
||||||
|
"strings"
|
||||||
"sync"
|
"sync"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
@@ -336,7 +337,11 @@ func probeHost(ip string, timeoutMS int) bool {
|
|||||||
cmd = exec.Command("ping", "-c", "1", "-W", timeoutSec, ip)
|
cmd = exec.Command("ping", "-c", "1", "-W", timeoutSec, ip)
|
||||||
}
|
}
|
||||||
if err := cmd.Run(); err != nil {
|
if err := cmd.Run(); err != nil {
|
||||||
log.Printf("probe failed for %s: %v", ip, err)
|
// На Linux/macOS ping с -c 1 даёт exit 1 при отсутствии ответа — это ожидаемо для большинства
|
||||||
|
// адресов в CIDR, не ошибка приложения. Логировать каждый такой случай бессмысленно засоряет journal.
|
||||||
|
if os.Getenv("NETTOPO_LOG_PING_FAILURES") == "true" {
|
||||||
|
log.Printf("ping: нет ответа от %s: %v", ip, err)
|
||||||
|
}
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
return true
|
return true
|
||||||
|
|||||||
Reference in New Issue
Block a user