Checkmk RAW 2.3 new http check error

I have upgraded to 2.3 raw (from 2.2) and am trying the new http checks. I have a number of sites that I check and are working properly, and 2 sites that are giving me this error. I can go to the site in the url and it works properly, and I have tried pretty much every option I can think of to troubleshoot this (http version, tls version, redirect follow). I tried running it manually from command line, but I don’t see anything relating to this check, all other checks give success.

Can anyone please help me?

CMK version: 2.3
OS version: ubuntu server 22.04

Error message:
error sending request for url (xxxx): http2 error: stream error received: unexpected internal error encountered

Output of “cmk --debug -vvn hostname”: (If it is a problem with checks or plugins)
-No errors or information related to this check.

I just noticed this in nagios.log related to the check, but have no idea what that means.

livestatus: Timeperiod cache not updated, there are no timeperiods (yet)
livestatus: Timeperiod cache not updated, there are no timeperiods (yet)

Well, that is an internal error no one expected. :sunglasses:

I just forwarded it to the colleague who oversees development of the check. Could you – if properly advised in details – run the check in CLI? Maybe with strace or the like. My colleague will have more details on debugging.

Thank you for reporting!

I’d be happy to run manually, but would need help with syntax…

Creating the command line is basically the second step and the beginning of the third step taken from this article. Debugging old and new checks is the same:

Okay, that livestatus error may not be related, looks like its an existing issue (from another support thread).

You can see the exact command in the “Service check command” of the service check. You can also paste the entire command here and that should be sufficient as well

This is the service check command as listed…

check_mk_active-httpv2!–url https://www.xxxx.com

On a side note, I don’t know that this is a TLS issue. I forced the old http check to use tls1.2 and it still works, but when I do the same on the new check, it still fails.

The rest of the linked blog is irrelevant. In your case, the command to run is

$HOME/lib/nagios/plugins/check_httpv2 --url https://www.xxxx.com

Give it a try!

error sending request for url (https://xxxx.com): http2 error: stream error received: unexpected internal error encountered (?)
error sending request for url (https://xxxx.com): http2 error: stream error received: unexpected internal error encountered (?)

Thank for for the quick attention by the way!

1 Like

Could you please provide me with

echo $?

immediately after calling check_httpv2?

3

I can send you the url if there is a way to do it privately.

The “3” suffices for now. One of us will contact you tomorrow, thanks! I assume, we need the URL, but do so privately and only if inevitable.

Update: @chauhan_sudhir just pointed me on adding --debug-content -vv to give more information at what point the call fails.

Here you go, hope this helps:

2024-04-29T19:17:43.006416Z DEBUG send_request: reqwest::connect: starting new connection: https://www.xxxx.com/    
2024-04-29T19:17:43.006650Z DEBUG hyper::client::connect::dns: resolving host="www.xxxx.com"
2024-04-29T19:17:43.121296Z DEBUG send_request: hyper::client::connect::http: connecting to 1.2.3.4:443
2024-04-29T19:17:43.161035Z DEBUG send_request: hyper::client::connect::http: connected to 1.2.3.4:443
2024-04-29T19:17:43.161099Z DEBUG send_request: rustls::client::hs: No cached session for DnsName("www.xxxx.com")    
2024-04-29T19:17:43.161336Z DEBUG send_request: rustls::client::hs: Not resuming any session    
2024-04-29T19:17:43.201267Z DEBUG send_request: rustls::client::hs: Using ciphersuite TLS13_AES_256_GCM_SHA384    
2024-04-29T19:17:43.201335Z DEBUG send_request: rustls::client::tls13: Not resuming    
2024-04-29T19:17:43.201562Z DEBUG send_request: rustls::client::tls13: TLS1.3 encrypted extensions: [ServerNameAck, Unknown(UnknownExtension { typ: EllipticCurves, payload: 00040017001d }), Protocols([ProtocolName(6832)])]    
2024-04-29T19:17:43.201605Z DEBUG send_request: rustls::client::hs: ALPN protocol is Some(b"h2")    
2024-04-29T19:17:43.202335Z DEBUG send_request: h2::client: binding client connection
2024-04-29T19:17:43.202398Z DEBUG send_request: h2::client: client connection bound
2024-04-29T19:17:43.202479Z DEBUG send_request: h2::codec::framed_write: send frame=Settings { flags: (0x0), enable_push: 0, initial_window_size: 2097152, max_frame_size: 16384 }
2024-04-29T19:17:43.202820Z DEBUG send_request: hyper::client::pool: pooling idle connection for ("https", www.xxxx.com)
2024-04-29T19:17:43.202833Z DEBUG send_request:Connection{peer=Client}: h2::codec::framed_write: send frame=WindowUpdate { stream_id: StreamId(0), size_increment: 5177345 }
2024-04-29T19:17:43.203200Z DEBUG send_request:Connection{peer=Client}: h2::codec::framed_write: send frame=Headers { stream_id: StreamId(1), flags: (0x5: END_HEADERS | END_STREAM) }
2024-04-29T19:17:43.221560Z DEBUG send_request:Connection{peer=Client}: h2::codec::framed_read: received frame=Settings { flags: (0x0), header_table_size: 4096, max_concurrent_streams: 100, initial_window_size: 65535, max_frame_size: 16384, max_header_list_size: 32768 }
2024-04-29T19:17:43.221640Z DEBUG send_request:Connection{peer=Client}: h2::codec::framed_write: send frame=Settings { flags: (0x1: ACK) }
2024-04-29T19:17:43.222120Z DEBUG send_request:Connection{peer=Client}: h2::codec::framed_read: received frame=Settings { flags: (0x1: ACK) }
2024-04-29T19:17:43.222162Z DEBUG send_request:Connection{peer=Client}: h2::proto::settings: received settings ACK; applying Settings { flags: (0x0), enable_push: 0, initial_window_size: 2097152, max_frame_size: 16384 }
2024-04-29T19:17:43.270791Z DEBUG send_request:Connection{peer=Client}: h2::codec::framed_read: received frame=Reset { stream_id: StreamId(1), error_code: INTERNAL_ERROR }
2024-04-29T19:17:43.270901Z DEBUG hyper::proto::h2::client: client response error: stream error received: unexpected internal error encountered
error sending request for url (https://www.xxxx.com): http2 error: stream error received: unexpected internal error encountered (?)
error sending request for url (https://www.xxxx.com): http2 error: stream error received: unexpected internal error encountered (?)
2024-04-29T19:17:43.271197Z DEBUG send_request:Connection{peer=Client}: h2::codec::framed_write: send frame=GoAway { error_code: NO_ERROR, last_stream_id: StreamId(0) }
2024-04-29T19:17:43.271247Z DEBUG send_request:Connection{peer=Client}: h2::proto::connection: Connection::poll; connection error error=GoAway(b"", NO_ERROR, Library)

This was resolved by changing the user agent string to “check_http”