I found a module [smtp_banner], but cannot find it  
blackbox_exporter/example.yml 
at master ยท prometheus/blackbox_exporter (github.com) 
<https://github.com/prometheus/blackbox_exporter/blob/master/example.yml>

May I ask if [smtp_banner] still valid?
On Tuesday, July 5, 2022 at 12:53:46 PM UTC+8 nina guo wrote:

> I tried to change the first expect to ^220 ([^ ]+) ESMTP$. But I'm not 
> sure if the change is acceptable from blackbox's view.
>
> smtp_starttls:
>         prober: tcp
>         timeout: 20s
>         tcp:
>           query_response:
>             #- expect: "^220 ([^ ]+) ESMTP (.+)$"
>             - expect: "^220 ([^ ]+) ESMTP$"
>
>               send: "EHLO prober\r"
>             - expect: "^250-STARTTLS"
>             - expect: "^250 .*$"
>               send: "STARTTLS\r"
>             - expect: "^220"
>               starttls: true
>             - send: "EHLO prober\r"
>             - expect: "^250 .*$"
>               send: "QUIT\r"
>
>
> Curled and got the following error. Does it mean the mail server doesn't 
> contain any IP SANs? And on mail server certificate cannot be validated?
> ts=2022-07-05T04:18:10.539326118Z caller=main.go:130 module=smtp_starttls 
> target=1.1.1.1:25 level=error msg="TLS Handshake (client) failed" 
> err="x509: cannot validate certificate for 1.1.1.1 because it doesn't 
> contain any IP SANs"
>
> curl -g '
> http://0.0.0.0:9115/probe?module=smtp_starttls&target=1.1.1.1:25&debug=true
> '
> Logs for the probe:
> ts=2022-07-05T04:18:10.527958378Z caller=main.go:320 module=smtp_starttls 
> target=1.1.1.1:25 level=info msg="Beginning probe" probe=tcp 
> timeout_seconds=20
> ts=2022-07-05T04:18:10.528040568Z caller=tcp.go:40 module=smtp_starttls 
> target=1.1.1.1:25 level=info msg="Resolving target address" 
> ip_protocol=ip6
> ts=2022-07-05T04:18:10.528063021Z caller=tcp.go:40 module=smtp_starttls 
> target=1.1.1.1:25 level=info msg="Resolving target address" 
> ip_protocol=ip4
> ts=2022-07-05T04:18:10.528076698Z caller=tcp.go:40 module=smtp_starttls 
> target=1.1.1.1:25 level=info msg="Resolved target address" ip=1.1.1.1
> ts=2022-07-05T04:18:10.528115109Z caller=tcp.go:121 module=smtp_starttls 
> target=1.1.1.1:25 level=info msg="Dialing TCP without TLS"
> ts=2022-07-05T04:18:10.529223463Z caller=main.go:130 module=smtp_starttls 
> target=1.1.1.1:25 level=info msg="Successfully dialed"
> ts=2022-07-05T04:18:10.529258037Z caller=main.go:130 module=smtp_starttls 
> target=1.1.1.1:25 level=info msg="Processing query response entry" 
> entry_number=0
> ts=2022-07-05T04:18:10.530236839Z caller=main.go:130 module=smtp_starttls 
> target=1.1.1.1:25 level=debug msg="Read line" line="220 mail.com ESMTP"
> ts=2022-07-05T04:18:10.530278493Z caller=main.go:130 module=smtp_starttls 
> target=1.1.1.1:25 level=info msg="Regexp matched" regexp="^220 ([^ ]+) 
> ESMTP$" line="220 mail.com ESMTP"
> ts=2022-07-05T04:18:10.53030557Z caller=main.go:130 module=smtp_starttls 
> target=1.1.1.1:25 level=debug msg="Sending line" line="EHLO prober\r"
> ts=2022-07-05T04:18:10.530348868Z caller=main.go:130 module=smtp_starttls 
> target=1.1.1.1:25 level=info msg="Processing query response entry" 
> entry_number=1
> ts=2022-07-05T04:18:10.530919204Z caller=main.go:130 module=smtp_starttls 
> target=1.1.1.1:25 level=debug msg="Read line" line=250-mail.com
> ts=2022-07-05T04:18:10.530955761Z caller=main.go:130 module=smtp_starttls 
> target=1.1.1.1:25 level=debug msg="Read line" line=250-PIPELINING
> ts=2022-07-05T04:18:10.530971243Z caller=main.go:130 module=smtp_starttls 
> target=1.1.1.1:25 level=debug msg="Read line" line="250-SIZE 10240000"
> ts=2022-07-05T04:18:10.530985701Z caller=main.go:130 module=smtp_starttls 
> target=1.1.1.1:25 level=debug msg="Read line" line=250-ETRN
> ts=2022-07-05T04:18:10.531006196Z caller=main.go:130 module=smtp_starttls 
> target=1.1.1.1:25 level=debug msg="Read line" line=250-STARTTLS
> ts=2022-07-05T04:18:10.531025088Z caller=main.go:130 module=smtp_starttls 
> target=1.1.1.1:25 level=info msg="Regexp matched" regexp=^250-STARTTLS 
> line=250-STARTTLS
> ts=2022-07-05T04:18:10.531045174Z caller=main.go:130 module=smtp_starttls 
> target=1.1.1.1:25 level=info msg="Processing query response entry" 
> entry_number=2
> ts=2022-07-05T04:18:10.531064549Z caller=main.go:130 module=smtp_starttls 
> target=1.1.1.1:25 level=debug msg="Read line" line="250-AUTH PLAIN LOGIN"
> ts=2022-07-05T04:18:10.531077325Z caller=main.go:130 module=smtp_starttls 
> target=1.1.1.1:25 level=debug msg="Read line" line=250-ENHANCEDSTATUSCODES
> ts=2022-07-05T04:18:10.531088466Z caller=main.go:130 module=smtp_starttls 
> target=1.1.1.1:25 level=debug msg="Read line" line=250-8BITMIME
> ts=2022-07-05T04:18:10.53110099Z caller=main.go:130 module=smtp_starttls 
> target=1.1.1.1:25 level=debug msg="Read line" line="250 DSN"
> ts=2022-07-05T04:18:10.531134286Z caller=main.go:130 module=smtp_starttls 
> target=1.1.1.1:25 level=info msg="Regexp matched" regexp="^250 .*$" 
> line="250 DSN"
> ts=2022-07-05T04:18:10.531186418Z caller=main.go:130 module=smtp_starttls 
> target=1.1.1.1:25 level=debug msg="Sending line" line="STARTTLS\r"
> ts=2022-07-05T04:18:10.531234743Z caller=main.go:130 module=smtp_starttls 
> target=1.1.1.1:25 level=info msg="Processing query response entry" 
> entry_number=3
> ts=2022-07-05T04:18:10.531762621Z caller=main.go:130 module=smtp_starttls 
> target=1.1.1.1:25 level=debug msg="Read line" line="220 2.0.0 Ready to 
> start TLS"
> ts=2022-07-05T04:18:10.531779841Z caller=main.go:130 module=smtp_starttls 
> target=1.1.1.1:25 level=info msg="Regexp matched" regexp=^220 line="220 
> 2.0.0 Ready to start TLS"
> ts=2022-07-05T04:18:10.539326118Z caller=main.go:130 module=smtp_starttls 
> target=1.1.1.1:25 level=error msg="TLS Handshake (client) failed" 
> err="x509: cannot validate certificate for 1.1.1.1 because it doesn't 
> contain any IP SANs"
> ts=2022-07-05T04:18:10.53937693Z caller=main.go:320 module=smtp_starttls 
> target=1.1.1.1:25 level=error msg="Probe failed" 
> duration_seconds=0.011375261
>
> On Tuesday, July 5, 2022 at 12:03:50 PM UTC+8 nina guo wrote:
>
>> I may find the root cause - comparing the output between google's mail 
>> server and my mail server
>>
>> my mail server
>> ts=2022-07-05T02:29:41.608566903Z caller=main.go:130 module=smtp_starttls 
>> target=1.1.1.1:25 level=info msg="Successfully dialed"
>> ts=2022-07-05T02:29:41.608652361Z caller=main.go:130 module=smtp_starttls 
>> target=1.1.1.1:25 level=info msg="Processing query response entry" 
>> entry_number=0
>> ts=2022-07-05T02:29:41.609572861Z caller=main.go:130 module=smtp_starttls 
>> target=1.1.1.1:25 level=debug msg="Read line" line="220 mail.com ESMTP"
>> ts=2022-07-05T02:29:46.607798497Z caller=main.go:130 module=smtp_starttls 
>> target=11.1.1.1:25 level=error msg="Error reading from connection" 
>> err="read tcp4 0.0.0.0:57074->1.1.1.1:25: i/o timeout"
>>
>> google's mail server
>> ts=2022-07-05T02:04:33.385587664Z caller=main.go:130 module=smtp_starttls 
>> target=142.250.102.27:25 level=info msg="Successfully dialed"
>> ts=2022-07-05T02:04:33.385613189Z caller=main.go:130 module=smtp_starttls 
>> target=142.250.102.27:25 level=info msg="Processing query response 
>> entry" entry_number=0
>> ts=2022-07-05T02:04:33.419235886Z caller=main.go:130 module=smtp_starttls 
>> target=142.250.102.27:25 level=debug msg="Read line" line="220 
>> mx.google.com ESMTP 
>> dn22-20020a17090794d600b006dfc3945326si6666807ejc.152 - gsmtp"
>> ts=2022-07-05T02:04:33.419280493Z caller=main.go:130 module=smtp_starttls 
>> target=142.250.102.27:25 level=info msg="Regexp matched" regexp="^220 
>> ([^ ]+) ESMTP (.+)$" line="220 mx.google.com ESMTP 
>> dn22-20020a17090794d600b006dfc3945326si6666807ejc.152 - gsmtp"
>>
>> From the output it shows the regex is not matched for my mail server - 
>> ^220 ([^ ]+) ESMTP (.+)$
>>
>> In config file
>> smtp_starttls:
>>         prober: tcp
>>         timeout: 20s
>>
>>         tcp:
>>           query_response:
>>             - expect: "^220 ([^ ]+) ESMTP (.+)$"
>>               send: "EHLO prober\r"
>>             - expect: "^250-STARTTLS"
>>             - expect: "^250 .*$"
>>               send: "STARTTLS\r"
>>
>>             - expect: "^220"
>>               starttls: true
>>             - send: "EHLO prober\r"
>>             - expect: "^250 .*$"
>>               send: "QUIT\r"
>> On Tuesday, July 5, 2022 at 11:40:06 AM UTC+8 nina guo wrote:
>>
>>> I searched this info  blackbox_exporter for SMTP monitoring w/ TCP 
>>> module : PrometheusMonitoring (reddit.com) 
>>> <https://www.reddit.com/r/PrometheusMonitoring/comments/q60357/blackbox_exporter_for_smtp_monitoring_w_tcp_module/>
>>>  , 
>>> added "\r", but still got the same issue..
>>>
>>> On Tuesday, July 5, 2022 at 11:26:49 AM UTC+8 nina guo wrote:
>>>
>>>> telnet got succeed.
>>>>
>>>> telnet 1.1.1.1 25
>>>> Trying 1.1.1.1...
>>>> Connected to 1.1.1.1.
>>>> Escape character is '^]'.
>>>> 220 ... ESMTP
>>>
>>>
>>>>
>>>> On Tuesday, July 5, 2022 at 11:11:48 AM UTC+8 nina guo wrote:
>>>>
>>>>> Probe failed due to TLS issue...it is not the same issue with my mail 
>>>>> server..
>>>>> There is no "i/o timeout" issue for google's mail server.
>>>>>
>>>>> curl -g '
>>>>> http://0.0.0.0:9115/probe?module=smtp_starttls&target=142.250.102.27:25&debug=true
>>>>>  
>>>>> <http://100.100.3.9:9115/probe?module=smtp_starttls&target=142.250.102.27:25&debug=true>
>>>>> '
>>>>> Logs for the probe:
>>>>> ts=2022-07-05T02:04:33.373763474Z caller=main.go:320 
>>>>> module=smtp_starttls target=142.250.102.27:25 level=info 
>>>>> msg="Beginning probe" probe=tcp timeout_seconds=5
>>>>> ts=2022-07-05T02:04:33.373850167Z caller=tcp.go:40 
>>>>> module=smtp_starttls target=142.250.102.27:25 level=info 
>>>>> msg="Resolving target address" ip_protocol=ip6
>>>>> ts=2022-07-05T02:04:33.373867876Z caller=tcp.go:40 
>>>>> module=smtp_starttls target=142.250.102.27:25 level=info 
>>>>> msg="Resolving target address" ip_protocol=ip4
>>>>> ts=2022-07-05T02:04:33.373882263Z caller=tcp.go:40 
>>>>> module=smtp_starttls target=142.250.102.27:25 level=info 
>>>>> msg="Resolved target address" ip=142.250.102.27
>>>>> ts=2022-07-05T02:04:33.373903614Z caller=tcp.go:121 
>>>>> module=smtp_starttls target=142.250.102.27:25 level=info msg="Dialing 
>>>>> TCP without TLS"
>>>>> ts=2022-07-05T02:04:33.385587664Z caller=main.go:130 
>>>>> module=smtp_starttls target=142.250.102.27:25 level=info 
>>>>> msg="Successfully dialed"
>>>>> ts=2022-07-05T02:04:33.385613189Z caller=main.go:130 
>>>>> module=smtp_starttls target=142.250.102.27:25 level=info 
>>>>> msg="Processing query response entry" entry_number=0
>>>>> ts=2022-07-05T02:04:33.419235886Z caller=main.go:130 
>>>>> module=smtp_starttls target=142.250.102.27:25 level=debug msg="Read 
>>>>> line" line="220 mx.google.com ESMTP 
>>>>> dn22-20020a17090794d600b006dfc3945326si6666807ejc.152 - gsmtp"
>>>>> ts=2022-07-05T02:04:33.419280493Z caller=main.go:130 
>>>>> module=smtp_starttls target=142.250.102.27:25 level=info msg="Regexp 
>>>>> matched" regexp="^220 ([^ ]+) ESMTP (.+)$" line="220 mx.google.com ESMTP 
>>>>> dn22-20020a17090794d600b006dfc3945326si6666807ejc.152 - gsmtp"
>>>>> ts=2022-07-05T02:04:33.419310506Z caller=main.go:130 
>>>>> module=smtp_starttls target=142.250.102.27:25 level=debug 
>>>>> msg="Sending line" line="EHLO prober"
>>>>> ts=2022-07-05T02:04:33.419356415Z caller=main.go:130 
>>>>> module=smtp_starttls target=142.250.102.27:25 level=info 
>>>>> msg="Processing query response entry" entry_number=1
>>>>> ts=2022-07-05T02:04:33.43519464Z caller=main.go:130 
>>>>> module=smtp_starttls target=142.250.102.27:25 level=debug msg="Read 
>>>>> line" line="250-mx.google.com at your service, [130.214.226.41]"
>>>>> ts=2022-07-05T02:04:33.435229899Z caller=main.go:130 
>>>>> module=smtp_starttls target=142.250.102.27:25 level=debug msg="Read 
>>>>> line" line="250-SIZE 157286400"
>>>>> ts=2022-07-05T02:04:33.435242182Z caller=main.go:130 
>>>>> module=smtp_starttls target=142.250.102.27:25 level=debug msg="Read 
>>>>> line" line=250-8BITMIME
>>>>> ts=2022-07-05T02:04:33.435254457Z caller=main.go:130 
>>>>> module=smtp_starttls target=142.250.102.27:25 level=debug msg="Read 
>>>>> line" line=250-STARTTLS
>>>>> ts=2022-07-05T02:04:33.435270364Z caller=main.go:130 
>>>>> module=smtp_starttls target=142.250.102.27:25 level=info msg="Regexp 
>>>>> matched" regexp=^250-STARTTLS line=250-STARTTLS
>>>>> ts=2022-07-05T02:04:33.435285968Z caller=main.go:130 
>>>>> module=smtp_starttls target=142.250.102.27:25 level=info 
>>>>> msg="Processing query response entry" entry_number=2
>>>>> ts=2022-07-05T02:04:33.435310813Z caller=main.go:130 
>>>>> module=smtp_starttls target=142.250.102.27:25 level=debug msg="Read 
>>>>> line" line=250-ENHANCEDSTATUSCODES
>>>>> ts=2022-07-05T02:04:33.435323258Z caller=main.go:130 
>>>>> module=smtp_starttls target=142.250.102.27:25 level=debug msg="Read 
>>>>> line" line=250-PIPELINING
>>>>> ts=2022-07-05T02:04:33.435337373Z caller=main.go:130 
>>>>> module=smtp_starttls target=142.250.102.27:25 level=debug msg="Read 
>>>>> line" line=250-CHUNKING
>>>>> ts=2022-07-05T02:04:33.435373931Z caller=main.go:130 
>>>>> module=smtp_starttls target=142.250.102.27:25 level=debug msg="Read 
>>>>> line" line="250 SMTPUTF8"
>>>>> ts=2022-07-05T02:04:33.435392537Z caller=main.go:130 
>>>>> module=smtp_starttls target=142.250.102.27:25 level=info msg="Regexp 
>>>>> matched" regexp="^250 .*$" line="250 SMTPUTF8"
>>>>> ts=2022-07-05T02:04:33.435409638Z caller=main.go:130 
>>>>> module=smtp_starttls target=142.250.102.27:25 level=debug 
>>>>> msg="Sending line" line=STARTTLS
>>>>> ts=2022-07-05T02:04:33.435451742Z caller=main.go:130 
>>>>> module=smtp_starttls target=142.250.102.27:25 level=info 
>>>>> msg="Processing query response entry" entry_number=3
>>>>> ts=2022-07-05T02:04:33.449015201Z caller=main.go:130 
>>>>> module=smtp_starttls target=142.250.102.27:25 level=debug msg="Read 
>>>>> line" line="220 2.0.0 Ready to start TLS"
>>>>> ts=2022-07-05T02:04:33.449039996Z caller=main.go:130 
>>>>> module=smtp_starttls target=142.250.102.27:25 level=info msg="Regexp 
>>>>> matched" regexp=^220 line="220 2.0.0 Ready to start TLS"
>>>>> ts=2022-07-05T02:04:33.476697731Z caller=main.go:130 
>>>>> module=smtp_starttls target=142.250.102.27:25 level=error msg="TLS 
>>>>> Handshake (client) failed" err="x509: cannot validate certificate for 
>>>>> 142.250.102.27 because it doesn't contain any IP SANs"
>>>>> ts=2022-07-05T02:04:33.47676603Z caller=main.go:320 
>>>>> module=smtp_starttls target=142.250.102.27:25 level=error msg="Probe 
>>>>> failed" duration_seconds=0.102953678
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> Metrics that would have been returned:
>>>>> # HELP probe_dns_lookup_time_seconds Returns the time taken for probe 
>>>>> dns lookup in seconds
>>>>> # TYPE probe_dns_lookup_time_seconds gauge
>>>>> probe_dns_lookup_time_seconds 5.1452e-05
>>>>>
>>>>> # HELP probe_duration_seconds Returns how long the probe took to 
>>>>> complete in seconds
>>>>> # TYPE probe_duration_seconds gauge
>>>>> probe_duration_seconds 0.102953678
>>>>>
>>>>> # HELP probe_failed_due_to_regex Indicates if probe failed due to regex
>>>>> # TYPE probe_failed_due_to_regex gauge
>>>>> probe_failed_due_to_regex 0
>>>>> # HELP probe_ip_addr_hash Specifies the hash of IP address. It's 
>>>>> useful to detect if the IP address changes.
>>>>> # TYPE probe_ip_addr_hash gauge
>>>>> probe_ip_addr_hash 9.60720384e+08
>>>>> # HELP probe_ip_protocol Specifies whether probe ip protocol is IP4 or 
>>>>> IP6
>>>>> # TYPE probe_ip_protocol gauge
>>>>> probe_ip_protocol 4
>>>>> # HELP probe_success Displays whether or not the probe was a success
>>>>> # TYPE probe_success gauge
>>>>> probe_success 0
>>>>>
>>>>> Module configuration:
>>>>> prober: tcp
>>>>> timeout: 5s
>>>>> http:
>>>>>     ip_protocol_fallback: true
>>>>>     follow_redirects: true
>>>>> tcp:
>>>>>     ip_protocol_fallback: true
>>>>>     query_response:
>>>>>         - expect: ^220 ([^ ]+) ESMTP (.+)$
>>>>>           send: EHLO prober
>>>>>         - expect: ^250-STARTTLS
>>>>>         - expect: ^250 .*$
>>>>>           send: STARTTLS
>>>>>         - expect: ^220
>>>>>           starttls: true
>>>>>         - send: EHLO prober
>>>>>         - expect: ^250 .*$
>>>>>           send: QUIT
>>>>> icmp:
>>>>>     ip_protocol_fallback: true
>>>>> dns:
>>>>>     ip_protocol_fallback: true
>>>>>
>>>>>
>>>>> On Monday, July 4, 2022 at 8:44:49 PM UTC+8 Brian Candler wrote:
>>>>>
>>>>>> And if you try it with Google's mail server?
>>>>>> *curl -g 
>>>>>> 'localhost:9115/probe?module=smtp_starttls&target=aspmx.l.google.com:25&debug=true'*
>>>>>>
>>>>>> On Monday, 4 July 2022 at 12:50:47 UTC+1 [email protected] wrote:
>>>>>>
>>>>>>> Still received the same error msg:
>>>>>>>
>>>>>>> curl -g '
>>>>>>> http://0.0.0.0:9115/probe?module=smtp_starttls&target=1.1.1.1:25&debug=true
>>>>>>> '
>>>>>>> Logs for the probe:
>>>>>>> ts=2022-07-04T11:47:59.071097704Z caller=main.go:320 
>>>>>>> module=smtp_starttls target= 1.1.1.1  :25 level=info msg="Beginning 
>>>>>>> probe" 
>>>>>>> probe=tcp timeout_seconds=5
>>>>>>> ts=2022-07-04T11:47:59.071251831Z caller=tcp.go:40 
>>>>>>> module=smtp_starttls target=1 1.1.1.1  :25 level=info msg="Resolving 
>>>>>>> target 
>>>>>>> address" ip_protocol=ip6
>>>>>>> ts=2022-07-04T11:47:59.071292289Z caller=tcp.go:40 
>>>>>>> module=smtp_starttls target= 1.1.1.1  :25 level=info msg="Resolving 
>>>>>>> target 
>>>>>>> address" ip_protocol=ip4
>>>>>>> ts=2022-07-04T11:47:59.071327224Z caller=tcp.go:40 
>>>>>>> module=smtp_starttls target= 1.1.1.1  :25 level=info msg="Resolved 
>>>>>>> target 
>>>>>>> address" ip= 1.1.1.1
>>>>>>> ts=2022-07-04T11:47:59.071354819Z caller=tcp.go:121 
>>>>>>> module=smtp_starttls target= 1.1.1.1  :25 level=info msg="Dialing TCP 
>>>>>>> without TLS"
>>>>>>> ts=2022-07-04T11:47:59.072469713Z caller=main.go:130 
>>>>>>> module=smtp_starttls target= 1.1.1.1  :25 level=info msg="Successfully 
>>>>>>> dialed"
>>>>>>> ts=2022-07-04T11:47:59.072508076Z caller=main.go:130 
>>>>>>> module=smtp_starttls target= 1.1.1.1  :25 level=info msg="Processing 
>>>>>>> query 
>>>>>>> response entry" entry_number=0
>>>>>>> ts=2022-07-04T11:47:59.073453639Z caller=main.go:130 
>>>>>>> module=smtp_starttls target= 1.1.1.1  :25 level=debug msg="Read line" 
>>>>>>> line="220  ESMTP"
>>>>>>> ts=2022-07-04T11:48:04.072081695Z caller=main.go:130 
>>>>>>> module=smtp_starttls target= 1.1.1.1  :25 level=error msg="Error 
>>>>>>> reading 
>>>>>>> from connection" err="read tcp4 0.0.0.0:53872->1.1.1.1:25: i/o 
>>>>>>> timeout"
>>>>>>> ts=2022-07-04T11:48:04.072269643Z caller=main.go:320 
>>>>>>> module=smtp_starttls target= 1.1.1.1  :25 level=error msg="Probe 
>>>>>>> failed" 
>>>>>>> duration_seconds=5.00106792
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> Metrics that would have been returned:
>>>>>>> # HELP probe_dns_lookup_time_seconds Returns the time taken for 
>>>>>>> probe dns lookup in seconds
>>>>>>> # TYPE probe_dns_lookup_time_seconds gauge
>>>>>>> probe_dns_lookup_time_seconds 0.000101683
>>>>>>> # HELP probe_duration_seconds Returns how long the probe took to 
>>>>>>> complete in seconds
>>>>>>> # TYPE probe_duration_seconds gauge
>>>>>>> probe_duration_seconds 5.00106792
>>>>>>> # HELP probe_failed_due_to_regex Indicates if probe failed due to 
>>>>>>> regex
>>>>>>> # TYPE probe_failed_due_to_regex gauge
>>>>>>> probe_failed_due_to_regex 0
>>>>>>> # HELP probe_ip_addr_hash Specifies the hash of IP address. It's 
>>>>>>> useful to detect if the IP address changes.
>>>>>>> # TYPE probe_ip_addr_hash gauge
>>>>>>> probe_ip_addr_hash 2.493392506e+09
>>>>>>> # HELP probe_ip_protocol Specifies whether probe ip protocol is IP4 
>>>>>>> or IP6
>>>>>>> # TYPE probe_ip_protocol gauge
>>>>>>> probe_ip_protocol 4
>>>>>>> # HELP probe_success Displays whether or not the probe was a success
>>>>>>> # TYPE probe_success gauge
>>>>>>> probe_success 0
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> Module configuration:
>>>>>>> prober: tcp
>>>>>>> timeout: 5s
>>>>>>> http:
>>>>>>>     ip_protocol_fallback: true
>>>>>>>     follow_redirects: true
>>>>>>> tcp:
>>>>>>>     ip_protocol_fallback: true
>>>>>>>     query_response:
>>>>>>>         - expect: ^220 ([^ ]+) ESMTP (.+)$
>>>>>>>           send: EHLO prober
>>>>>>>         - expect: ^250-STARTTLS
>>>>>>>         - expect: ^250 .*$
>>>>>>>           send: STARTTLS
>>>>>>>         - expect: ^220
>>>>>>>           starttls: true
>>>>>>>         - send: EHLO prober
>>>>>>>         - expect: ^250 .*$
>>>>>>>           send: QUIT
>>>>>>> icmp:
>>>>>>>     ip_protocol_fallback: true
>>>>>>> dns:
>>>>>>>     ip_protocol_fallback: true
>>>>>>>
>>>>>>> On Monday, July 4, 2022 at 7:22:08 PM UTC+8 Brian Candler wrote:
>>>>>>>
>>>>>>>> Could you first just try copy-pasting the working config I gave 
>>>>>>>> you, and see if it gives a different result to yours?
>>>>>>>>
>>>>>>>> I doubt a mail server would take more than 5 seconds to give a 
>>>>>>>> banner, but it's possible.  Simply doing "telnet x.x.x.x 25" will show 
>>>>>>>> you 
>>>>>>>> how your mail server behaves.
>>>>>>>>
>>>>>>>> On Monday, 4 July 2022 at 11:14:23 UTC+1 [email protected] wrote:
>>>>>>>>
>>>>>>>>>
>>>>>>>>> Yes in my code the first expect is quoted.
>>>>>>>>>
>>>>>>>>> smtp_starttls:
>>>>>>>>>         prober: tcp
>>>>>>>>>         timeout: 5s
>>>>>>>>>         tcp:
>>>>>>>>>           query_response:
>>>>>>>>>             - expect: "^220 ([^ ]+) ESMTP (.+)$"
>>>>>>>>>             - send: "EHLO prober\r"
>>>>>>>>>             - expect: "^250-STARTTLS"
>>>>>>>>>             - send: "STARTTLS\r"
>>>>>>>>>             - expect: "^220"
>>>>>>>>>             - starttls: true
>>>>>>>>>             - send: "EHLO prober\r"
>>>>>>>>>             - expect: "^250-AUTH"
>>>>>>>>>             - send: "QUIT\r"
>>>>>>>>>
>>>>>>>>> Probably due to the "timeout" is too less? Should I adjust 5s to 
>>>>>>>>> 15s or 60s?
>>>>>>>>> On Monday, July 4, 2022 at 5:55:09 PM UTC+8 Brian Candler wrote:
>>>>>>>>>
>>>>>>>>>> The following works for me with blackbox_exporter 0.21.0 (maybe 
>>>>>>>>>> your first 'expect' regexp needs to be quoted?)
>>>>>>>>>>
>>>>>>>>>> modules:
>>>>>>>>>>   smtp_starttls:
>>>>>>>>>>       prober: tcp
>>>>>>>>>>       timeout: 5s
>>>>>>>>>>       tcp:
>>>>>>>>>>         query_response:
>>>>>>>>>>           - expect: "^220 ([^ ]+) ESMTP (.+)$"
>>>>>>>>>>             send: "EHLO prober"
>>>>>>>>>>           - expect: "^250-STARTTLS"
>>>>>>>>>>           - expect: "^250 .*$"
>>>>>>>>>>             send: "STARTTLS"
>>>>>>>>>>           - expect: "^220"
>>>>>>>>>>
>>>>>>>>>>             starttls: true
>>>>>>>>>>           - send: "EHLO prober"
>>>>>>>>>>           - expect: "^250 .*$"
>>>>>>>>>>             send: "QUIT"
>>>>>>>>>>
>>>>>>>>>> Result:
>>>>>>>>>>
>>>>>>>>>> # *curl -g 
>>>>>>>>>> 'localhost:9115/probe?module=smtp_starttls&target=aspmx.l.google.com:25&debug=true'*
>>>>>>>>>> Logs for the probe:
>>>>>>>>>> ts=2022-07-04T09:50:46.764604425Z caller=main.go:351 
>>>>>>>>>> module=smtp_starttls target=aspmx.l.google.com:25 level=info 
>>>>>>>>>> msg="Beginning probe" probe=tcp timeout_seconds=5
>>>>>>>>>> ts=2022-07-04T09:50:46.764875668Z caller=tcp.go:40 
>>>>>>>>>> module=smtp_starttls target=aspmx.l.google.com:25 level=info 
>>>>>>>>>> msg="Resolving target address" target=aspmx.l.google.com 
>>>>>>>>>> ip_protocol=ip6
>>>>>>>>>> ts=2022-07-04T09:50:46.765954096Z caller=tcp.go:40 
>>>>>>>>>> module=smtp_starttls target=aspmx.l.google.com:25 level=info 
>>>>>>>>>> msg="Resolved target address" target=aspmx.l.google.com 
>>>>>>>>>> ip=2a00:1450:400c:c07::1b
>>>>>>>>>> ts=2022-07-04T09:50:46.766011111Z caller=tcp.go:121 
>>>>>>>>>> module=smtp_starttls target=aspmx.l.google.com:25 level=info 
>>>>>>>>>> msg="Dialing TCP without TLS"
>>>>>>>>>> ts=2022-07-04T09:50:46.776962616Z caller=main.go:144 
>>>>>>>>>> module=smtp_starttls target=aspmx.l.google.com:25 level=info 
>>>>>>>>>> msg="Successfully dialed"
>>>>>>>>>> ts=2022-07-04T09:50:46.77708032Z caller=main.go:144 
>>>>>>>>>> module=smtp_starttls target=aspmx.l.google.com:25 level=info 
>>>>>>>>>> msg="Processing query response entry" entry_number=0
>>>>>>>>>> ts=2022-07-04T09:50:46.788075017Z caller=main.go:144 
>>>>>>>>>> module=smtp_starttls target=aspmx.l.google.com:25 level=debug 
>>>>>>>>>> msg="Read line" line="220 mx.google.com ESMTP 
>>>>>>>>>> u1-20020a056000038100b0021bbcef3a69si36572085wrf.542 - gsmtp"
>>>>>>>>>> ts=2022-07-04T09:50:46.788168204Z caller=main.go:144 
>>>>>>>>>> module=smtp_starttls target=aspmx.l.google.com:25 level=info 
>>>>>>>>>> msg="Regexp matched" regexp="^220 ([^ ]+) ESMTP (.+)$" line="220 
>>>>>>>>>> mx.google.com ESMTP 
>>>>>>>>>> u1-20020a056000038100b0021bbcef3a69si36572085wrf.542 - gsmtp"
>>>>>>>>>> ts=2022-07-04T09:50:46.788223914Z caller=main.go:144 
>>>>>>>>>> module=smtp_starttls target=aspmx.l.google.com:25 level=debug 
>>>>>>>>>> msg="Sending line" line="EHLO prober"
>>>>>>>>>> ts=2022-07-04T09:50:46.788362926Z caller=main.go:144 
>>>>>>>>>> module=smtp_starttls target=aspmx.l.google.com:25 level=info 
>>>>>>>>>> msg="Processing query response entry" entry_number=1
>>>>>>>>>> ts=2022-07-04T09:50:46.801755535Z caller=main.go:144 
>>>>>>>>>> module=smtp_starttls target=aspmx.l.google.com:25 level=debug 
>>>>>>>>>> msg="Read line" line="250-mx.google.com at your service, 
>>>>>>>>>> [xx:xx:xx:xx::33]"
>>>>>>>>>> ts=2022-07-04T09:50:46.801856147Z caller=main.go:144 
>>>>>>>>>> module=smtp_starttls target=aspmx.l.google.com:25 level=debug 
>>>>>>>>>> msg="Read line" line="250-SIZE 157286400"
>>>>>>>>>> ts=2022-07-04T09:50:46.801889927Z caller=main.go:144 
>>>>>>>>>> module=smtp_starttls target=aspmx.l.google.com:25 level=debug 
>>>>>>>>>> msg="Read line" line=250-8BITMIME
>>>>>>>>>> ts=2022-07-04T09:50:46.801922312Z caller=main.go:144 
>>>>>>>>>> module=smtp_starttls target=aspmx.l.google.com:25 level=debug 
>>>>>>>>>> msg="Read line" line=250-STARTTLS
>>>>>>>>>> ts=2022-07-04T09:50:46.801955499Z caller=main.go:144 
>>>>>>>>>> module=smtp_starttls target=aspmx.l.google.com:25 level=info 
>>>>>>>>>> msg="Regexp matched" regexp=^250-STARTTLS line=250-STARTTLS
>>>>>>>>>> ts=2022-07-04T09:50:46.801989646Z caller=main.go:144 
>>>>>>>>>> module=smtp_starttls target=aspmx.l.google.com:25 level=info 
>>>>>>>>>> msg="Processing query response entry" entry_number=2
>>>>>>>>>> ts=2022-07-04T09:50:46.802029066Z caller=main.go:144 
>>>>>>>>>> module=smtp_starttls target=aspmx.l.google.com:25 level=debug 
>>>>>>>>>> msg="Read line" line=250-ENHANCEDSTATUSCODES
>>>>>>>>>> ts=2022-07-04T09:50:46.802063318Z caller=main.go:144 
>>>>>>>>>> module=smtp_starttls target=aspmx.l.google.com:25 level=debug 
>>>>>>>>>> msg="Read line" line=250-PIPELINING
>>>>>>>>>> ts=2022-07-04T09:50:46.802094713Z caller=main.go:144 
>>>>>>>>>> module=smtp_starttls target=aspmx.l.google.com:25 level=debug 
>>>>>>>>>> msg="Read line" line=250-CHUNKING
>>>>>>>>>> ts=2022-07-04T09:50:46.802126198Z caller=main.go:144 
>>>>>>>>>> module=smtp_starttls target=aspmx.l.google.com:25 level=debug 
>>>>>>>>>> msg="Read line" line="250 SMTPUTF8"
>>>>>>>>>> ts=2022-07-04T09:50:46.802159858Z caller=main.go:144 
>>>>>>>>>> module=smtp_starttls target=aspmx.l.google.com:25 level=info 
>>>>>>>>>> msg="Regexp matched" regexp="^250 .*$" line="250 SMTPUTF8"
>>>>>>>>>> ts=2022-07-04T09:50:46.802191065Z caller=main.go:144 
>>>>>>>>>> module=smtp_starttls target=aspmx.l.google.com:25 level=debug 
>>>>>>>>>> msg="Sending line" line=STARTTLS
>>>>>>>>>> ts=2022-07-04T09:50:46.802271697Z caller=main.go:144 
>>>>>>>>>> module=smtp_starttls target=aspmx.l.google.com:25 level=info 
>>>>>>>>>> msg="Processing query response entry" entry_number=3
>>>>>>>>>> ts=2022-07-04T09:50:46.812211682Z caller=main.go:144 
>>>>>>>>>> module=smtp_starttls target=aspmx.l.google.com:25 level=debug 
>>>>>>>>>> msg="Read line" line="220 2.0.0 Ready to start TLS"
>>>>>>>>>> ts=2022-07-04T09:50:46.812279339Z caller=main.go:144 
>>>>>>>>>> module=smtp_starttls target=aspmx.l.google.com:25 level=info 
>>>>>>>>>> msg="Regexp matched" regexp=^220 line="220 2.0.0 Ready to start TLS"
>>>>>>>>>> ts=2022-07-04T09:50:46.833573801Z caller=main.go:144 
>>>>>>>>>> module=smtp_starttls target=aspmx.l.google.com:25 level=info 
>>>>>>>>>> msg="TLS Handshake (client) succeeded."
>>>>>>>>>> ts=2022-07-04T09:50:46.833793385Z caller=main.go:144 
>>>>>>>>>> module=smtp_starttls target=aspmx.l.google.com:25 level=info 
>>>>>>>>>> msg="Processing query response entry" entry_number=4
>>>>>>>>>> ts=2022-07-04T09:50:46.833838422Z caller=main.go:144 
>>>>>>>>>> module=smtp_starttls target=aspmx.l.google.com:25 level=debug 
>>>>>>>>>> msg="Sending line" line="EHLO prober"
>>>>>>>>>> ts=2022-07-04T09:50:46.833960852Z caller=main.go:144 
>>>>>>>>>> module=smtp_starttls target=aspmx.l.google.com:25 level=info 
>>>>>>>>>> msg="Processing query response entry" entry_number=5
>>>>>>>>>> ts=2022-07-04T09:50:46.84464181Z caller=main.go:144 
>>>>>>>>>> module=smtp_starttls target=aspmx.l.google.com:25 level=debug 
>>>>>>>>>> msg="Read line" line="250-mx.google.com at your service, 
>>>>>>>>>> [xx:xx:xx:xx::33]"
>>>>>>>>>> ts=2022-07-04T09:50:46.844771942Z caller=main.go:144 
>>>>>>>>>> module=smtp_starttls target=aspmx.l.google.com:25 level=debug 
>>>>>>>>>> msg="Read line" line="250-SIZE 157286400"
>>>>>>>>>> ts=2022-07-04T09:50:46.844839074Z caller=main.go:144 
>>>>>>>>>> module=smtp_starttls target=aspmx.l.google.com:25 level=debug 
>>>>>>>>>> msg="Read line" line=250-8BITMIME
>>>>>>>>>> ts=2022-07-04T09:50:46.844910271Z caller=main.go:144 
>>>>>>>>>> module=smtp_starttls target=aspmx.l.google.com:25 level=debug 
>>>>>>>>>> msg="Read line" line=250-ENHANCEDSTATUSCODES
>>>>>>>>>> ts=2022-07-04T09:50:46.844974538Z caller=main.go:144 
>>>>>>>>>> module=smtp_starttls target=aspmx.l.google.com:25 level=debug 
>>>>>>>>>> msg="Read line" line=250-PIPELINING
>>>>>>>>>> ts=2022-07-04T09:50:46.845061058Z caller=main.go:144 
>>>>>>>>>> module=smtp_starttls target=aspmx.l.google.com:25 level=debug 
>>>>>>>>>> msg="Read line" line=250-CHUNKING
>>>>>>>>>> ts=2022-07-04T09:50:46.84512579Z caller=main.go:144 
>>>>>>>>>> module=smtp_starttls target=aspmx.l.google.com:25 level=debug 
>>>>>>>>>> msg="Read line" line="250 SMTPUTF8"
>>>>>>>>>> ts=2022-07-04T09:50:46.845193403Z caller=main.go:144 
>>>>>>>>>> module=smtp_starttls target=aspmx.l.google.com:25 level=info 
>>>>>>>>>> msg="Regexp matched" regexp="^250 .*$" line="250 SMTPUTF8"
>>>>>>>>>> ts=2022-07-04T09:50:46.84525809Z caller=main.go:144 
>>>>>>>>>> module=smtp_starttls target=aspmx.l.google.com:25 level=debug 
>>>>>>>>>> msg="Sending line" line=QUIT
>>>>>>>>>> ts=2022-07-04T09:50:46.845583228Z caller=main.go:351 
>>>>>>>>>> module=smtp_starttls target=aspmx.l.google.com:25 level=info 
>>>>>>>>>> msg="Probe succeeded" duration_seconds=0.080912196
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> Metrics that would have been returned:
>>>>>>>>>> # HELP probe_dns_lookup_time_seconds Returns the time taken for 
>>>>>>>>>> probe dns lookup in seconds
>>>>>>>>>> # TYPE probe_dns_lookup_time_seconds gauge
>>>>>>>>>> probe_dns_lookup_time_seconds 0.001103057
>>>>>>>>>>
>>>>>>>>>> # HELP probe_duration_seconds Returns how long the probe took to 
>>>>>>>>>> complete in seconds
>>>>>>>>>> # TYPE probe_duration_seconds gauge
>>>>>>>>>> probe_duration_seconds 0.080912196
>>>>>>>>>>
>>>>>>>>>> # HELP probe_failed_due_to_regex Indicates if probe failed due to 
>>>>>>>>>> regex
>>>>>>>>>> # TYPE probe_failed_due_to_regex gauge
>>>>>>>>>> probe_failed_due_to_regex 0
>>>>>>>>>> # HELP probe_ip_addr_hash Specifies the hash of IP address. It's 
>>>>>>>>>> useful to detect if the IP address changes.
>>>>>>>>>> # TYPE probe_ip_addr_hash gauge
>>>>>>>>>> probe_ip_addr_hash 2.766777767e+09
>>>>>>>>>>
>>>>>>>>>> # HELP probe_ip_protocol Specifies whether probe ip protocol is 
>>>>>>>>>> IP4 or IP6
>>>>>>>>>> # TYPE probe_ip_protocol gauge
>>>>>>>>>> probe_ip_protocol 6
>>>>>>>>>> # HELP probe_ssl_earliest_cert_expiry Returns earliest SSL cert 
>>>>>>>>>> expiry date
>>>>>>>>>> # TYPE probe_ssl_earliest_cert_expiry gauge
>>>>>>>>>> probe_ssl_earliest_cert_expiry 1.661764429e+09
>>>>>>>>>> # HELP probe_ssl_last_chain_expiry_timestamp_seconds Returns last 
>>>>>>>>>> SSL chain expiry in unixtime
>>>>>>>>>> # TYPE probe_ssl_last_chain_expiry_timestamp_seconds gauge
>>>>>>>>>> probe_ssl_last_chain_expiry_timestamp_seconds 1.661764429e+09
>>>>>>>>>>
>>>>>>>>>> # HELP probe_success Displays whether or not the probe was a 
>>>>>>>>>> success
>>>>>>>>>> # TYPE probe_success gauge
>>>>>>>>>> probe_success 1
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> Module configuration:
>>>>>>>>>> prober: tcp
>>>>>>>>>> timeout: 5s
>>>>>>>>>> http:
>>>>>>>>>>     ip_protocol_fallback: true
>>>>>>>>>>     follow_redirects: true
>>>>>>>>>>     enable_http2: true
>>>>>>>>>>
>>>>>>>>>> tcp:
>>>>>>>>>>     ip_protocol_fallback: true
>>>>>>>>>>     query_response:
>>>>>>>>>>         - expect: ^220 ([^ ]+) ESMTP (.+)$
>>>>>>>>>>           send: EHLO prober
>>>>>>>>>>         - expect: ^250-STARTTLS
>>>>>>>>>>         - expect: ^250 .*$
>>>>>>>>>>           send: STARTTLS
>>>>>>>>>>         - expect: ^220
>>>>>>>>>>
>>>>>>>>>>           starttls: true
>>>>>>>>>>         - send: EHLO prober
>>>>>>>>>>         - expect: ^250 .*$
>>>>>>>>>>           send: QUIT
>>>>>>>>>>
>>>>>>>>>> icmp:
>>>>>>>>>>     ip_protocol_fallback: true
>>>>>>>>>> dns:
>>>>>>>>>>     ip_protocol_fallback: true
>>>>>>>>>>     recursion_desired: true
>>>>>>>>>>
>>>>>>>>>

-- 
You received this message because you are subscribed to the Google Groups 
"Prometheus Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/prometheus-users/a71feaad-91a4-4a2b-9091-2a95a8f623c1n%40googlegroups.com.

Reply via email to