Elastic Cloud and Elasticsearch
Elastic Cloud and Elasticsearch: Distributed search and analytics engine for real-time log analysis, observability, and data indexing.
To add an Elasticsearch destination to Axoflow, complete the following steps.
Prerequisites
- An Elastic Cloud account for Axoflow, or
- a self-hosted Elasticsearch deployment.
- To configure Axoflow, you’ll need the username, password, and the Elasticsearch index where you want to send your data.
Steps
-
Create a new destination.
- Open the AxoConsole.
- Select Destinations > + Add Destination.
-
Configure the destination.
-
Select Elasticsearch.
-
Select which type of configuration you want to use:
- Simple: Send all data into a single index.
- Dynamic: Send data to an index based on the content or metadata of the incoming messages (or to a default index).
- Advanced: Allows you to specify a custom URL endpoint.
-
Enter a name for the destination.

-
Configure the endpoint of the destination.
- Advanced: Enter your Elasticsearch URL into the URL field, for example,
http://my-elastic-server:9200/_bulk - Simple and Dynamic:
- Select the HTTPS or HTTP protocol to use to access your destination.
- Enter the Hostname and Port of the destination.
- Advanced: Enter your Elasticsearch URL into the URL field, for example,
-
Specify the Elasticsearch index to send the data to.
- Simple: Enter the expression that specifies the Elasticsearch index to use into the Index field, for example:
test-${YEAR}${MONTH}${DAY}. All data will be sent into this index. - Dynamic and Advanced: Enter the expression that specifies the default index. The data will be sent into this index if no other index is set during the processing of the message (for example, by the processing steps of the Flow).
You can use AxoSyslog macros in this field.
- Simple: Enter the expression that specifies the Elasticsearch index to use into the Index field, for example:
-
Enter the username and password for the account you want to use.
-
(Optional)
By default, Axoflow rejects connections to the destination server if the certificate of the server is invalid (for example, it’s expired, signed by an unknown CA, or its CN and the name of the server is mismatched: the
Common Nameor thesubject_alt_nameparameter of the peer’s certificate must contain the hostname or the IP address (as resolved from AxoRouter) of the peer).Warning When validating a certificate, the entire certificate chain must be valid, including the CA certificate. If any certificate of the chain is invalid, Axoflow will reject the connection.If you want to accept invalid certificates (or no certificate) from the destination servers, disable the Verify server certificate option.
-
(Optional) Set other options as needed for your environments.
- Timeout: The number of seconds to wait for a log-forwarding request to complete, and attempt to reconnect the server if exceeded. If the timeout is exceeded, AxoRouter attempts to reconnect the destination. The default (
0) is unlimited. For more details, see the AxoSyslog documentation.
- Batch Bytes: Sets the maximum size of payload in a batch. If the size of the messages reaches this value, AxoRouter sends the batch to the destination even if the number of messages is less than the value of the batch lines option.
- Batch Lines: Number of lines sent to the destination in one batch. AxoRouter waits for this number of lines to accumulate and sends them off in a single batch. Increasing this number increases throughput as more messages are sent in a single batch, but also increases message latency. For more details, see the AxoSyslog documentation.
- Batch Timeout: Maximal time in milliseconds to wait for a batch to be filled before sending it. The default value (
-1) means that the batch should be full before sending, which may result in a long wait if the incoming traffic is low. For more details, see the AxoSyslog documentation. - Number of Workers: Used for scaling the destination in case of high message load. Specifies the number of worker threads AxoRouter uses for sending messages to the destination. The default is 1. If high message throughput is not a concern, leave it on 1. For maximum performance, increase it up to the number of CPU cores available on AxoRouter. For more details, see the AxoSyslog documentation.
- Timeout: The number of seconds to wait for a log-forwarding request to complete, and attempt to reconnect the server if exceeded. If the timeout is exceeded, AxoRouter attempts to reconnect the destination. The default (
-
Select Add.
-
-
Create a flow to connect the new destination to an AxoRouter instance.
-
Select Flows.
-
Select Add Flow.
-
Enter a name for the flow, for example,
my-test-flow.
-
In the Router Selector field, enter an expression that matches the router(s) you want to apply the flow. To select a specific router, use a name selector, for example,
name = my-axorouter-hostname.You can use any labels and metadata of the AxoRouter hosts in the Router selectors, for example, the hostname of the AxoRouter, or any custom labels.
- If you leave the Router Selector field empty, the selector will match every AxoRouter instance.
- To select only a specific AxoRouter instance, set the
namefield to the name of the instance as selector. For example,name = my-axorouter. - If you set multiple fields in the selector, the selector will match only AxoRouter instances that match all elements of the selector. (There in an AND relationship between the fields.)
-
Select the Destination where you want to send your data. If you don’t have any destination configured, you can select + Add in the destination section to create a new destination now. For details on the different destinations, see Destinations.
- If you don’t have any destination configured, see Destinations.
- If you’ve already created a store, it automatically available as a destination. Note that the Router Selector of the flow must match only AxoRouters that have the selected store available, otherwise you’ll get an error message.
- If you want to send data to another AxoRouter, enable the Show all destinations option, and select the connector of the AxoRouter where you want to send the data.

-
(Optional) To process the data transferred in the flow, select Add New Processing Step. For details, see Processing steps. For example:
- Add a Classify, a Parse, and a Reduce step, in that order, to automatically remove redundant and empty fields from your data.
- To select which messages are processed by the flow, add a Select Messages step, and enter a filter into the AQL Expression field. For example, to select only the messages received from Fortinet FortiGate firewalls, use the
meta.vendor = fortinet AND meta.product = fortigatequery. - Save the processing steps.

-
Select Add.
-
The new flow appears in the Flows list.

-
Related message fields
You can use the following message fields to modify messages sent to this destination using processing steps.