Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Windows Server 2012R2 端口检测返回的Value总为0 #10

Open
lgs3137 opened this issue Mar 19, 2018 · 12 comments
Open

Windows Server 2012R2 端口检测返回的Value总为0 #10

lgs3137 opened this issue Mar 19, 2018 · 12 comments

Comments

@lgs3137
Copy link

lgs3137 commented Mar 19, 2018

tim 20180319152341

防火墙规则已经配置,本地浏览器可以正常访问 http://127.0.0.1:8080 但是agent监控返回的值总是为0即使关闭进程端口,CMD下执行netstat也能看到8080端口再监听中,这个是什么原因导致的呢?

@lgs3137
Copy link
Author

lgs3137 commented Mar 19, 2018

另外,falcon的告警策略里配置有多个端口检测的时候,貌似agent日志只会获取第一条策略监听信息打印出来如图,另外的端口在falcon下有读数0,但在agent日志文件里没有打印监听记录信息

@freedomkk-qfeng
Copy link
Owner

看下是 1.0.3 版本吗?应该已经修复了这个问题

日志实际上只打印了的每个定时任务组全部 metrci 中的第一条,只不过端口排在前面而已。

@freedomkk-qfeng
Copy link
Owner

很奇怪誒,按道理这段代码应该生效的才对

func CheckTCPPortUsed(port int64) bool {
	if IsTCPPortUsed("0.0.0.0:", port) {
		return true
	}
	if IsTCPPortUsed("127.0.0.1:", port) {
		return true
	}
	if IsTCPPortUsed("[::1]:", port) {
		return true
	}
	if IsTCPPortUsed("[::]:", port) {
		return true
	}
	return false
}

如果有 go 环境的话,在 funcs/func_test.go 里跑下测试看看?

func Test_IsTCPPortUsed(t *testing.T) {
	res := CheckTCPPortUsed(1988)
	t.Log(res)
}

看这个的测试结果

@lgs3137
Copy link
Author

lgs3137 commented Mar 19, 2018

@freedomkk-qfeng 额。。。我go还没入门。。。只会简单的编译及go run,这个真不会需要怎么才能单独跑

@lgs3137
Copy link
Author

lgs3137 commented Mar 19, 2018

tim 20180319163729

@freedomkk-qfeng 我不会执行你说的那个test,但是我在portstat.go里面加入了几个g.Logger().Println()编译出来丢到测试环境去跑,发现没有日志打印出来???

@lgs3137
Copy link
Author

lgs3137 commented Mar 19, 2018

tim 20180319164910

tim 20180319164756

@freedomkk-qfeng 那几个if判断应该的确没有进去。。。直接进else了,这里打印了两次应该是我监听了两个端口,所以打印了两次

@lgs3137
Copy link
Author

lgs3137 commented Mar 20, 2018

@freedomkk-qfeng 我发现并不是所有端口检测都有问题,1988、3389这类的端口是没有问题的,但是像一些java的http应用或shadowsocks本地代理端口1080这类型的都不能识别,也属于TCP的

@leoiceo
Copy link

leoiceo commented Aug 20, 2018

端口监控确实有问题, 我这边随便写了几个不存在端口,值也为1

@ctck1995
Copy link

在windows server 2008上测试也有同样的问题哦~ 版本1.0.3

@wdl0809
Copy link

wdl0809 commented Apr 18, 2019

为什么我们在2012安装,能运行,运行一段时间就报错
image

@yangding39
Copy link

似乎端口没有bind ipv6地址就无法监控到

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

6 participants