Hello, I have a question. When I tried using Kumo with a load balancer, it didn’t work. Does Kumo not support load balancers?, or i miss the configuration. I use haproxy for load balancer
Hey there @funny-coyote, thanks for posting. Please read the “Troubleshooting” and “How to Ask for Help” buttons below. If you would like a 1:1 support session from the KumoMTA team, details are at the “Book a Support Session” button below.
You will need to clarify your question. KumoMTA works fine with load balancers. It would help to know why you think it “didn’t work”. What was your configuration? Topology? what did you expect to happen and what actually happened?
I tried the test to achieve high QPS using the HAProxy load balancer. For the topology, I used 2 KumoMTA servers, 1 HAProxy server, and 1 server for the Bomberman test tool.
Here’s the HAProxy configuration I used:
listen port-webmail
bind 0.0.0.0:25
mode tcp
balance leastconn
server KumoMTA1 192.168.1.20
server KumoMTA2 192.168.1.21
what happend is when i try test it with bomberman i got error like this “TOUCH: EOF” and mostly half email that send is error
If I understand you correctly, you are using HA PROXY as an inbound load balancer to balance injection from bomberman? My guess is that you have not added the load balancer IP to the relay hosts. It is impossible to tell without actually seeing your configs
I already added ip to relay hosts but half the email is sending but the rest got error. When i see the usage in cpu of both kumo server is just use 10% of cpu
Here’s my config in Kumo on both server
kumo.on(‘init’, function()
kumo.start_esmtp_listener {
listen = ‘0.0.0.0:25’,
hostname = ‘mail.afatyo.com’,
relay_hosts = { ‘127.0.0.1’, ‘192.168.1.0/24’, ‘192.168.70.0/24’, ‘192.168.1.12’ },
line_length_hard_limit = 100000,
}
kumo.start_http_listener {
listen = ‘127.0.0.1:8000’,
}
kumo.define_spool {
name = ‘data’,
path = ‘/var/spool/kumomta/data’,
}
kumo.define_spool {
name = ‘meta’,
path = ‘/var/spool/kumomta/meta’,
}
kumo.configure_local_logs {
log_dir = ‘/var/log/kumomta’,
– Flush logs every 10 seconds.
– You may wish to set a larger value in your production
– configuration; this lower value makes it quicker to see
– logs while you are first getting set up.
max_segment_duration = ‘10s’,
}
end)
Have you tried injecting a single message from localhost to see the flow manually? Ie: telnet localhost 25?
Ya i already did that, its totaly normal
Have you tried bomerman directly with one server, bypassing the ha proxy?
i dont try this, wait im goanna test it
i got test it but its still same, it got the same error
Heres the error:
1000: TOUCH: EOF
1000: TOUCH: EOF
1000: TOUCH: EOF
1000: TOUCH: EOF
1000: TOUCH: EOF
1000: TOUCH: EOF
1000: TOUCH: EOF
1000: TOUCH: EOF
1000: TOUCH: EOF
1000: TOUCH: EOF
1000: TOUCH: EOF
1000: TOUCH: EOF
Bomberman - SMTP Performance Test Tool
Count : 1000
Error : 536
Size : 30K
Start : 2024-08-20 06:14:21.670996029 +0000 UTC m=+0.000135899
End : 2024-08-20 06:14:41.889869917 +0000 UTC m=+20.219009783
Time : 20.218873884s
Destination IP Stats:
192.168.1.12:25 : 1000
SMTP Commands:
DATA (462) : min. 2.088539ms , max. 137.236686ms , med. 52.03203ms
DIAL (998) : min. 5.973085ms , max. 68.682623ms , med. 29.730454ms
HELO (462) : min. 495.424µs , max. 54.892948ms , med. 10.539425ms
MAIL (462) : min. 471.507µs , max. 57.768753ms , med. 9.338136ms
RCPT (462) : min. 533.519µs , max. 57.183584ms , med. 8.545306ms
SUCCESS (462) : min. 176.12588ms , max. 375.002619ms , med. 259.158191ms
TOUCH (998) : min. 3.896µs , max. 20.155625291s , med. 10.362017897s
That is a weird error. Based on the EOF, it may be that bomerman is Either sending a body that is not properly terminated or is sending out of sync with the conversation.
Does bomerman generate a messageID with the injection?
Idk, i cant see log bomberman because thats a tool build with Golang
and the documentations just installation method
and how to use the tool
You may want to add the conformance fix and some debugging lines. To see what is going on. You can trace it in the journal.