The scrape interval of 10m is too long. 2m is the maximum recommended; this is because Prometheus considers timeseries which have not been updated for 5m to be stale. However, that would make the timeseries vanish, not report a status of 0.
I suggest you take Prometheus out of the loop entirely, and just test blackbox_exporter by itself:
Does it return probe_success 0 or 1? If 0, then look at tcpdump in another window:
tcpdump -i <devname> -nn -s0 -X host 10.23.45.223
This is a long shot, but are you running blackbox_exporter or the target host in a KVM virtual machine by any chance? There are some cases where the virtual NIC doesn't do UDP or ICMP checksums properly, I think when connected to a virtual bridge.
Also, check these issues:
https://github.com/prometheus/blackbox_exporter/issues/360
BTW, it's perfectly OK to replace the "instance" label in cases like this, e.g.
relabel_configs:
- source_labels: [__address__]
target_label: __param_target
- source_labels: [__address__]
target_label: instance
- target_label: __address__
replacement: localhost:9115
If you don't set the instance label then it gets set to __address__, which is always localhost:9115 (hence not very interesting)