zdz / ServerStatus-Rust

✨ Rust 版 ServerStatus 探针、威力加强版
https://ssr.rs
Apache License 2.0
1.8k stars 324 forks source link

快速部署如何自定义ping #112

Closed blackshot-zard closed 1 year ago

blackshot-zard commented 1 year ago

虽然看到了相关话题还是想问,因为我比较懒 试过在快速部署上追加--cm --ct --cu好像不行

zdz commented 1 year ago

快速部署还没有支持这三个参数,后面加上

blackshot-zard commented 1 year ago

好的谢谢大哥 部署完后我用命令操作也会卡在 get_network (ipv4, ipv6) => (true, false) ./stat_client -a "域名" -u h1 -p p1 --cm=cm.tz.cloudcpp.com:80

zdz commented 1 year ago

界面看没上报成功?看看你机器能不能ping 通 cm.tz.cloudcpp.com 和贴贴输出日志

export RUST_BACKTRACE=1
export RUST_LOG=trace
./stat_client xxx
blackshot-zard commented 1 year ago

ping 不通 但是tcping 80是通的

blackshot-zard commented 1 year ago

TRACE h2::proto::streams::counts > transition_after; stream=StreamId(1); state=State { inner: HalfClosedLocal(AwaitingHeaders) }; is_closed=false; pending_send_empty=false; buffered_send_data=272; num_recv=0; num_send=1 TRACE want > signal: Want TRACE tracing::span::active > -> Connection; TRACE tracing::span > poll; TRACE tracing::span::active > -> poll; TRACE h2::proto::connection > connection.state=Open TRACE tracing::span::active > -> Connection; TRACE tracing::span > poll_ready; TRACE tracing::span::active > -> poll_ready; TRACE tracing::span::active > <- poll_ready; TRACE tracing::span > -- poll_ready; TRACE tracing::span::active > <- Connection; TRACE tracing::span > FramedRead::poll_next; TRACE tracing::span::active > -> FramedRead::poll_next; TRACE h2::codec::framed_read > poll TRACE tracing::span::active > <- FramedRead::poll_next; TRACE tracing::span > -- FramedRead::poll_next; TRACE h2::codec::framed_write > FramedWrite::buffer; frame=WindowUpdate { stream_id: StreamId(0), size_increment: 5177345 } TRACE tracing::span::active > -> FramedWrite::buffer; DEBUG h2::codec::framed_write > send frame=WindowUpdate { stream_id: StreamId(0), size_increment: 5177345 } TRACE h2::frame::window_update > encoding WINDOW_UPDATE; id=StreamId(0) TRACE h2::codec::framed_write > encoded window_update rem=40 TRACE tracing::span::active > <- FramedWrite::buffer; TRACE tracing::span > -- FramedWrite::buffer; TRACE h2::proto::streams::flow_control > inc_window; sz=5177345; old=65535; new=5242880 TRACE tracing::span > try_reclaim_frame; TRACE tracing::span::active > -> try_reclaim_frame; TRACE tracing::span::active > <- try_reclaim_frame; TRACE tracing::span > -- try_reclaim_frame; TRACE h2::proto::streams::prioritize > poll_complete TRACE h2::proto::streams::prioritize > schedule_pending_open TRACE tracing::span > pop_frame; TRACE tracing::span::active > -> pop_frame; TRACE h2::proto::streams::prioritize > popped; stream.id=StreamId(1) stream.state=State { inner: HalfClosedLocal(AwaitingHeaders) } TRACE tracing::span::active > -> popped; TRACE h2::proto::streams::prioritize > is_pending_reset=false TRACE h2::proto::streams::prioritize > pop_frame; frame=Headers { stream_id: StreamId(1), flags: (0x4: END_HEADERS) } TRACE h2::proto::streams::store > Queue::push TRACE h2::proto::streams::store > -> first entry TRACE h2::proto::streams::counts > transition_after; stream=StreamId(1); state=State { inner: HalfClosedLocal(AwaitingHeaders) }; is_closed=false; pending_send_empty=false; buffered_send_data=272; num_recv=0; num_send=1 TRACE tracing::span::active > <- popped; TRACE tracing::span > -- popped; TRACE tracing::span::active > <- pop_frame; TRACE tracing::span > -- pop_frame; TRACE h2::proto::streams::prioritize > writing frame=Headers { stream_id: StreamId(1), flags: (0x4: END_HEADERS) } TRACE h2::codec::framed_write > FramedWrite::buffer; frame=Headers { stream_id: StreamId(1), flags: (0x4: END_HEADERS) } TRACE tracing::span::active > -> FramedWrite::buffer; DEBUG h2::codec::framed_write > send frame=Headers { stream_id: StreamId(1), flags: (0x4: END_HEADERS) } TRACE tracing::span > hpack::encode; TRACE tracing::span::active > -> hpack::encode; TRACE tracing::span::active > <- hpack::encode; TRACE tracing::span > -- hpack::encode; TRACE tracing::span::active > <- FramedWrite::buffer; TRACE tracing::span > -- FramedWrite::buffer; TRACE tracing::span > try_reclaim_frame; TRACE tracing::span::active > -> try_reclaim_frame; TRACE tracing::span::active > <- try_reclaim_frame; TRACE tracing::span > -- try_reclaim_frame; TRACE h2::proto::streams::prioritize > schedule_pending_open TRACE tracing::span > pop_frame; TRACE tracing::span::active > -> pop_frame; TRACE h2::proto::streams::prioritize > popped; stream.id=StreamId(1) stream.state=State { inner: HalfClosedLocal(AwaitingHeaders) } TRACE tracing::span::active > -> popped; TRACE h2::proto::streams::prioritize > is_pending_reset=false TRACE h2::proto::streams::prioritize > data frame sz=272 eos=true window=272 available=272 requested=272 buffered=272 TRACE h2::proto::streams::prioritize > sending data frame len=272 TRACE tracing::span > updating stream flow; TRACE tracing::span::active > -> updating stream flow; TRACE h2::proto::streams::flow_control > send_data; sz=272; window=65535; available=272 TRACE tracing::span::active > <- updating stream flow; TRACE tracing::span > -- updating stream flow; TRACE tracing::span > updating connection flow; TRACE tracing::span::active > -> updating connection flow; TRACE h2::proto::streams::flow_control > send_data; sz=272; window=65535; available=65535 TRACE tracing::span::active > <- updating connection flow; TRACE tracing::span > -- updating connection flow; TRACE h2::proto::streams::prioritize > pop_frame; frame=Data { stream_id: StreamId(1), flags: (0x1: END_STREAM) } TRACE h2::proto::streams::counts > transition_after; stream=StreamId(1); state=State { inner: HalfClosedLocal(AwaitingHeaders) }; is_closed=false; pending_send_empty=true; buffered_send_data=0; num_recv=0; num_send=1 TRACE tracing::span::active > <- popped; TRACE tracing::span > -- popped; TRACE tracing::span::active > <- pop_frame; TRACE tracing::span > -- pop_frame; TRACE h2::proto::streams::prioritize > writing frame=Data { stream_id: StreamId(1), flags: (0x1: END_STREAM) } TRACE h2::codec::framed_write > FramedWrite::buffer; frame=Data { stream_id: StreamId(1), flags: (0x1: END_STREAM) } TRACE tracing::span::active > -> FramedWrite::buffer; DEBUG h2::codec::framed_write > send frame=Data { stream_id: StreamId(1), flags: (0x1: END_STREAM) } TRACE tracing::span::active > <- FramedWrite::buffer; TRACE tracing::span > -- FramedWrite::buffer; TRACE tracing::span > FramedWrite::flush; TRACE tracing::span::active > -> FramedWrite::flush; TRACE h2::codec::framed_write > queued_data_frame=true TRACE h2::codec::framed_write > queued_data_frame=true TRACE h2::codec::framed_write > flushing buffer TRACE tracing::span::active > <- FramedWrite::flush; TRACE tracing::span > -- FramedWrite::flush; TRACE tracing::span > try_reclaim_frame; TRACE tracing::span::active > -> try_reclaim_frame; TRACE h2::proto::streams::prioritize > reclaimed frame=Data { stream_id: StreamId(1), flags: (0x1: END_STREAM) } sz=0 TRACE tracing::span::active > <- try_reclaim_frame; TRACE tracing::span > -- try_reclaim_frame; TRACE h2::proto::streams::prioritize > schedule_pending_open TRACE tracing::span > pop_frame; TRACE tracing::span::active > -> pop_frame; TRACE tracing::span::active > <- pop_frame; TRACE tracing::span > -- pop_frame; TRACE tracing::span > FramedWrite::flush; TRACE tracing::span::active > -> FramedWrite::flush; TRACE h2::codec::framed_write > flushing buffer TRACE tracing::span::active > <- FramedWrite::flush; TRACE tracing::span > -- FramedWrite::flush; TRACE tracing::span > try_reclaim_frame; TRACE tracing::span::active > -> try_reclaim_frame; TRACE tracing::span::active > <- try_reclaim_frame; TRACE tracing::span > -- try_reclaim_frame; TRACE tracing::span::active > <- poll; TRACE tracing::span > -- poll; TRACE tracing::span::active > <- Connection; TRACE tracing::span > -- Connection; TRACE hyper::client::pool > idle interval checking for expired DEBUG hyper::client::connect::http > connected to 208.95.112.1:80 TRACE hyper::client::conn > client handshake Http1 TRACE hyper::client::client > handshake complete, spawning background dispatcher task TRACE want > signal: Want TRACE want > signal found waiting giver, notifying TRACE hyper::proto::h1::conn > flushed({role=client}): State { reading: Init, writing: Init, keep_alive: Busy } TRACE want > poll_want: taker wants! TRACE hyper::client::pool > checkout dropped for ("http", ip-api.com) TRACE tracing::span > encode_headers; TRACE tracing::span::active > -> encode_headers; TRACE hyper::proto::h1::role > Client::encode method=GET, body=None TRACE tracing::span::active > <- encode_headers; TRACE tracing::span > -- encode_headers; DEBUG hyper::proto::h1::io > flushed 377 bytes TRACE hyper::proto::h1::conn > flushed({role=client}): State { reading: Init, writing: KeepAlive, keep_alive: Busy } TRACE hyper::proto::h1::conn > Conn::read_head TRACE hyper::proto::h1::io > received 617 bytes TRACE tracing::span > parse_headers; TRACE tracing::span::active > -> parse_headers; TRACE hyper::proto::h1::role > Response.parse bytes=617 TRACE hyper::proto::h1::role > Response.parse Complete(177) TRACE tracing::span::active > <- parse_headers; TRACE tracing::span > -- parse_headers; DEBUG hyper::proto::h1::io > parsed 6 headers DEBUG hyper::proto::h1::conn > incoming body is content-length (440 bytes) TRACE hyper::proto::h1::decode > decode; state=Length(440) DEBUG hyper::proto::h1::conn > incoming body completed TRACE hyper::proto::h1::conn > maybe_notify; read_from_io blocked TRACE want > signal: Want TRACE hyper::proto::h1::conn > flushed({role=client}): State { reading: Init, writing: Init, keep_alive: Idle } TRACE want > signal: Want TRACE hyper::proto::h1::conn > flushed({role=client}): State { reading: Init, writing: Init, keep_alive: Idle } TRACE hyper::client::pool > put; add idle connection for ("http", ip-api.com) DEBUG hyper::client::pool > pooling idle connection for ("http", ip-api.com) INFO stat_client > refresh_ip_info succ => IpInfo { query: "ip", source: "ip-api.com", continent: "亚洲", country: "香港", region_name: "中西區", city: "中環", isp: "UCLOUD INFORMATION TECHNOLOGY (HK) LIMITED", org: "Ucloud Information Technology", r#as: "AS135377 UCLOUD INFORMATION TECHNOLOGY (HK) LIMITED", asname: "UCLOUD-HK-AS-AP", lat: 22.2908, lon: 114.1501 } TRACE hyper::proto::h1::dispatch > client tx closed TRACE hyper::proto::h1::conn > State::close_read() TRACE hyper::proto::h1::conn > State::close_write() TRACE hyper::proto::h1::conn > flushed({role=client}): State { reading: Closed, writing: Closed, keep_alive: Disabled } TRACE hyper::proto::h1::conn > shut down IO complete TRACE mio::poll > deregistering event source from poller TRACE want > signal: Closed TRACE hyper::client::pool > pool closed, canceling idle interval

blackshot-zard commented 1 year ago

实际上我的参数是 --cm=10.13.31.105:10000

zdz commented 1 year ago

ping不通不会影响整体上报

blackshot-zard commented 1 year ago

ping不通不会影响整体上报 嗯嗯 实际上我是这么设置的 但是看日志还是走默认的域名 ./stat_client -a "https://domain/report" -u g1 -p p1--alias=Ucloud --cm=10.13.31.105:10000 --ct=10.13.31.105:10000 --cu=10.13.31.105:10000

blackshot-zard commented 1 year ago

ys info: {"name":"g1","version":"1.6.0","os_name":"linux","os_arch":"x86_64","os_family":"unix","os_release":"Linux 11 Debian GNU/Linux","kernel_version":"5.10.0-18-amd64","cpu_num":1,"cpu_brand":"Intel Core Processor (Broadwell, no TSX)","cpu_vender_id":"GenuineIntel","host_name":"debian"} enable feature native INFO stat_client::status > 10.13.31.105:10000 => 10.13.31.105:10000 INFO stat_client::status > 10.13.31.105:10000 => 10.13.31.105:10000 INFO stat_client::status > 10.13.31.105:10000 => 10.13.31.105:10000 INFO stat_client::status > ipv4.google.com:80 => 142.250.207.78:80 INFO stat_client::status > Ok(Ok(())) INFO stat_client::status > ipv6.google.com:80 => [2404:6800:4005:807::200e]:80 INFO stat_client::status > Err(Os { code: 101, kind: NetworkUnreachable, message: "Network unreachable" }) get_network (ipv4, ipv6) => (true, false) INFO stat_client > get ip info from ip-api.com TRACE hyper::client::pool > checkout waiting for idle connection: ("http", ip-api.com) DEBUG reqwest::connect > starting new connection: http://ip-api.com/ TRACE hyper::client::connect::http > Http::connect; scheme=Some("http"), host=Some("ip-api.com"), port=None DEBUG hyper::client::connect::dns > resolving host="ip-api.com" TRACE hyper::client::pool > checkout waiting for idle connection: ("https", tz.iepl.one) DEBUG reqwest::connect > starting new connection: https://tz.iepl.one/ TRACE hyper::client::connect::http > Http::connect; scheme=Some("https"), host=Some("tz.iepl.one"), port=None DEBUG hyper::client::connect::dns > resolving host="tz.iepl.one" DEBUG hyper::client::connect::http > connecting to 104.196.232.237:443 TRACE mio::poll > registering event source with poller: token=Token(0), interests=READABLE | WRITABLE DEBUG hyper::client::connect::http > connecting to 208.95.112.1:80 TRACE mio::poll > registering event source with poller: token=Token(1), interests=READABLE | WRITABLE DEBUG hyper::client::connect::http > connected to 208.95.112.1:80 TRACE hyper::client::conn > client handshake Http1 TRACE hyper::client::client > handshake complete, spawning background dispatcher task TRACE want > signal: Want TRACE want > signal found waiting giver, notifying TRACE hyper::proto::h1::conn > flushed({role=client}): State { reading: Init, writing: Init, keep_alive: Busy } TRACE want > poll_want: taker wants! TRACE hyper::client::pool > checkout dropped for ("http", ip-api.com) TRACE tracing::span > encode_headers; TRACE tracing::span::active > -> encode_headers; TRACE hyper::proto::h1::role > Client::encode method=GET, body=None TRACE tracing::span::active > <- encode_headers; TRACE tracing::span > -- encode_headers; DEBUG hyper::proto::h1::io > flushed 377 bytes TRACE hyper::proto::h1::conn > flushed({role=client}): State { reading: Init, writing: KeepAlive, keep_alive: Busy } DEBUG hyper::client::connect::http > connected to 104.196.232.237:443 DEBUG rustls::client::hs > No cached session for DnsName(DnsName(DnsName("tz.iepl.one"))) DEBUG rustls::client::hs > Not resuming any session TRACE rustls::client::hs > Sending ClientHello Message {

zdz commented 1 year ago

界面看到那个主机不?你这 ip ping也不通,telnet 端口也不行

blackshot-zard commented 1 year ago

界面看到那个主机不?你这 ip ping也不通,telnet 端口也不行

同机器之前快速部署的主机一直在线,新参数顶替不掉原来的在线,这是内网ip 因为是iepl 只需监控内网在不在线就行 root@debian:/opt/ServerStatus# tcping 10.13.31.105 10000 seq 0: tcp response from 10.13.31.105 [open] 11.631 ms seq 1: tcp response from 10.13.31.105 [open] 11.883 ms seq 2: tcp response from 10.13.31.105 [open] 11.934 ms

root@debian:/opt/ServerStatus# ping 10.13.31.105 PING 10.13.31.105 (10.13.31.105) 56(84) bytes of data. 64 bytes from 10.13.31.105: icmp_seq=1 ttl=62 time=6.48 ms 64 bytes from 10.13.31.105: icmp_seq=2 ttl=62 time=6.01 ms 64 bytes from 10.13.31.105: icmp_seq=3 ttl=62 time=6.06 ms

blackshot-zard commented 1 year ago

加上自定义参数后 sys info: {"name":"g1","version":"1.6.0","os_name":"linux","os_arch":"x86_64","os_family":"unix","os_release":"Linux 11 Debian GNU/Linux","kernel_version":"5.10.0-18-amd64","cpu_num":1,"cpu_brand":"Intel Core Processor (Broadwell, no TSX)","cpu_vender_id":"GenuineIntel","host_name":"debian"} enable feature native get_network (ipv4, ipv6) => (true, false) 到这里就停了

zdz commented 1 year ago

加上自定义参数后 sys info: {"name":"g1","version":"1.6.0","os_name":"linux","os_arch":"x86_64","os_family":"unix","os_release":"Linux 11 Debian GNU/Linux","kernel_version":"5.10.0-18-amd64","cpu_num":1,"cpu_brand":"Intel Core Processor (Broadwell, no TSX)","cpu_vender_id":"GenuineIntel","host_name":"debian"} enable feature native get_network (ipv4, ipv6) => (true, false) 到这里就停了

正常到这里没异常就不输出日志了,没问题

blackshot-zard commented 1 year ago

加上自定义参数后 sys info: {"name":"g1","version":"1.6.0","os_name":"linux","os_arch":"x86_64","os_family":"unix","os_release":"Linux 11 Debian GNU/Linux","kernel_version":"5.10.0-18-amd64","cpu_num":1,"cpu_brand":"Intel Core Processor (Broadwell, no TSX)","cpu_vender_id":"GenuineIntel","host_name":"debian"} enable feature native get_network (ipv4, ipv6) => (true, false) 到这里就停了

正常到这里没异常就不输出日志了,没问题

哦哦 但是顶替不了之前在线的主机 ping数值也不正常 探针界面依然是我之前test-hk的在线节点,没有debian出现 如果成功的话他应该变成了debian

blackshot-zard commented 1 year ago

加上自定义参数后 sys info: {"name":"g1","version":"1.6.0","os_name":"linux","os_arch":"x86_64","os_family":"unix","os_release":"Linux 11 Debian GNU/Linux","kernel_version":"5.10.0-18-amd64","cpu_num":1,"cpu_brand":"Intel Core Processor (Broadwell, no TSX)","cpu_vender_id":"GenuineIntel","host_name":"debian"} enable feature native get_network (ipv4, ipv6) => (true, false) 到这里就停了

正常到这里没异常就不输出日志了,没问题

对了是我在Railway 部署的 Server

zdz commented 1 year ago

用的是默认配置测试?

blackshot-zard commented 1 year ago

用的是默认配置测试?

是的 curl -sSLf "https://domain/i?pass=p1&gid=g1&alias=test-HK" | bash

zdz commented 1 year ago

-u g1 -p p1 ? -g g1 -p pp

./stat_client -a "https://domain/report" -u g1 -p p1 --alias=Ucloud --cm=10.13.31.105:10000 --ct=10.13.31.105:10000 --cu=10.13.31.105:10000
blackshot-zard commented 1 year ago

是的 我的指令和你的一模一样 root@debian:/opt/ServerStatus# ./stat_client -a "https://domain/report" -u g1 -p p1--alias=Ucloud --cm=10.13.31.105:10000 --ct=10.13.31.105:10000 --cu=10.13.31.105:10000 sys id: b1d7e9141ce442f2924f55363ebae87a sys info: {"name":"g1","version":"1.6.0","os_name":"linux","os_arch":"x86_64","os_family":"unix","os_release":"Linux 11 Debian GNU/Linux","kernel_version":"5.10.0-18-amd64","cpu_num":1,"cpu_brand":"Intel Core Processor (Broadwell, no TSX)","cpu_vender_id":"GenuineIntel","host_name":"debian"} enable feature native get_network (ipv4, ipv6) => (true, false)

此时此刻 探针面板

test-HK |   | 00:56:53 |   | kvm | 0.00 | 8.6M\|11.9M | 4.1K\|3.7K | 14.7M\|15.3M | 5% | 14% | 13% | 10%13%15% -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- 负载:0/0.01/0内存:125.94M/878.86M交换分区:0.00B/975.00M硬盘:2.40G/18.58GTCP/UDP/进/线:7/0/65/87联通/电信/移动:41ms/25ms/77ms#5g1
zdz commented 1 year ago

你url 拼错了啊。。默认配置没有 gid g1 密码 p1 -p p1--alias=Ucloud 密码还跟 alias连在一起了

blackshot-zard commented 1 year ago

我知道哇 我做了脱敏处理嘛 完整的我发上来

root@debian:/opt/ServerStatus# ./stat_client -a "https://domain/report" -u g1 -p 800420 --alias=Ucloud --cm=10.13.31.105:10000 --ct=10.13.31.105:10000 --cu=10.13.31.105:10000 sys id: b1d7e9141ce442f2924f55363ebae87a sys info: {"name":"g1","version":"1.6.0","os_name":"linux","os_arch":"x86_64","os_family":"unix","os_release":"Linux 11 Debian GNU/Linux","kernel_version":"5.10.0-18-amd64","cpu_num":1,"cpu_brand":"Intel Core Processor (Broadwell, no TSX)","cpu_vender_id":"GenuineIntel","host_name":"debian"} enable feature native get_network (ipv4, ipv6) => (true, false)

blackshot-zard commented 1 year ago

你url 拼错了啊。。默认配置没有 gid g1 密码 p1

哦我好像理解了 我用的是自动配置 应该选择上面的手动配置参数

不行 我用hosts 组的参数也无法顶掉原来的test-hk hosts_group也不行

zdz commented 1 year ago

你用一键部署部署成功后,直接把 --cm=10.13.31.105:10000 --ct=10.13.31.105:10000 --cu=10.13.31.105:10000 参数加在后面就行,重启一下服务就行了,先把基本步骤弄对

blackshot-zard commented 1 year ago

你用一键部署部署成功后,直接把 --cm=10.13.31.105:10000 --ct=10.13.31.105:10000 --cu=10.13.31.105:10000 参数加在后面就行,重启一下服务就行了,先把基本步骤弄对

嗯嗯 我尝试了 即使不加仍和参数也无法顶替掉test-hk 直接 ./stat_client -a "域名" -u h1 -p p1 也无法顶替 但是快速部署可以把快速部署顶掉

blackshot-zard commented 1 year ago

你用一键部署部署成功后,直接把 --cm=10.13.31.105:10000 --ct=10.13.31.105:10000 --cu=10.13.31.105:10000 参数加在后面就行,重启一下服务就行了,先把基本步骤弄对

好了 解决了 需要systemcal stop stat_client 自定义参数才能顶掉 快速部署的配置 而且只能用hosts 组 g组并不能成功运行 谢谢大哥耐心指导

blackshot-zard commented 1 year ago

大哥牛逼 这么快就更新了 给你打666