diff --git a/deps/wazuh_testing/wazuh_testing/scripts/syslog_simulator.py b/deps/wazuh_testing/wazuh_testing/scripts/syslog_simulator.py index b1d11c7579..c1e180781e 100644 --- a/deps/wazuh_testing/wazuh_testing/scripts/syslog_simulator.py +++ b/deps/wazuh_testing/wazuh_testing/scripts/syslog_simulator.py @@ -7,9 +7,10 @@ TCP = 'tcp' UDP = 'udp' -DEFAULT_MESSAGE = 'Login failed: admin, test' +DEFAULT_MESSAGE = 'Login failed: admin, test\n' +DEFAULT_MESSAGE_SIZE = len(DEFAULT_MESSAGE.encode('utf-8')) LOGGER = logging.getLogger('syslog_simulator') -TCP_LIMIT = 1000 +TCP_LIMIT = 5000 UDP_LIMIT = 200 @@ -25,11 +26,11 @@ def validate_parameters(parameters): if parameters.messages_number <= 0: LOGGER.error(f"The number of messages parameter has to be greater than 0") - return sys.exit(1) + sys.exit(1) if parameters.eps > 0 and parameters.eps > protocol_limit: LOGGER.error(f"You can't select eps greather than {protocol_limit}") - return sys.exit(1) + sys.exit(1) def get_parameters(): @@ -55,6 +56,10 @@ def get_parameters(): help='Sender protocol', required=False, default='tcp', choices=['tcp', 'udp'], dest='protocol') + arg_parser.add_argument('--numbered-messages', metavar='', required=False, type=int, + help='Add number of message at the end of its content starting with the indicated number ' + 'and increasing by 1 for each of them', dest='numbered_messages', default=-1) + arg_parser.add_argument('-e', '--eps', metavar='', type=int, help='Event per second', required=False, default=-1, dest='eps') @@ -63,7 +68,7 @@ def get_parameters(): return arg_parser.parse_args() -def send_messages(message, num_messages, eps, address='locahost', port=514, protocol=TCP): +def send_messages(message, num_messages, eps, numbered_messages=-1, address='locahost', port=514, protocol=TCP): sent_messages = 0 custom_message = f"{message}\n" if message[-1] != '\n' not in message else message protocol_limit = TCP_LIMIT if protocol == TCP else UDP_LIMIT @@ -83,10 +88,14 @@ def send_messages(message, num_messages, eps, address='locahost', port=514, prot # Send the specified number messages while sent_messages < num_messages: + # Update the message according to the parameters + final_message = f"{custom_message[:-1]} - {sent_messages + numbered_messages}\n" \ + if numbered_messages != -1 else custom_message + if protocol == TCP: - sock.send(custom_message.encode()) + sock.send(final_message.encode()) else: - sock.sendto(custom_message.encode(), (address, port)) + sock.sendto(final_message.encode(), (address, port)) sent_messages += 1 # Wait until next batch @@ -104,8 +113,8 @@ def main(): set_logging(parameters.debug) validate_parameters(parameters) - send_messages(parameters.message, parameters.messages_number, parameters.eps, parameters.address, parameters.port, - parameters.protocol) + send_messages(parameters.message, parameters.messages_number, parameters.eps, parameters.numbered_messages, + parameters.address, parameters.port, parameters.protocol) if __name__ == "__main__": diff --git a/deps/wazuh_testing/wazuh_testing/tools/run_simulator.py b/deps/wazuh_testing/wazuh_testing/tools/run_simulator.py index fc6b010fcd..95284bca80 100644 --- a/deps/wazuh_testing/wazuh_testing/tools/run_simulator.py +++ b/deps/wazuh_testing/wazuh_testing/tools/run_simulator.py @@ -35,7 +35,9 @@ def syslog_simulator(parameters): run_parameters += f"-e {parameters['eps']} " if 'eps' in parameters else '' run_parameters += f"--protocol {parameters['protocol']} " if 'protocol' in parameters else '' run_parameters += f"-n {parameters['messages_number']} " if 'messages_number' in parameters else '' - run_parameters += f"-m {parameters['message']} " if 'message' in parameters else '' + run_parameters += f"-m '{parameters['message']}' " if 'message' in parameters else '' + run_parameters += f"--numbered-messages {parameters['numbered_messages']} " if 'numbered_messages' in parameters \ + else '' run_parameters = run_parameters.strip() # Run the syslog simulator tool with custom parameters