# Fluentd

Copy as Markdown[Open in ChatGPT](https://chatgpt.com/?q=Read%20https%3A%2F%2Fcoralogix.com%2Fdocs%2Fintegrations%2Ffiles%2Ffluentd.md%20and%20help%20me%20with%20my%20question%20about%20this%20Coralogix%20documentation%20page.)[Open in Claude](https://claude.ai/new?q=Read%20https%3A%2F%2Fcoralogix.com%2Fdocs%2Fintegrations%2Ffiles%2Ffluentd.md%20and%20help%20me%20with%20my%20question%20about%20this%20Coralogix%20documentation%20page.)

Coralogix provides seamless integration with Fluentd so you can send your logs from anywhere and parse them according to your needs.

## Prerequisites[​](#prerequisites "Direct link to Prerequisites")

* Fluentd [installed](https://docs.fluentd.org/installation)

## Parameters[​](#parameters "Direct link to Parameters")

Every configuration requires that you supply your Coralogix [Send-Your-Data API key](https://coralogix.com/docs/docs/user-guides/account-management/api-keys/send-your-data-api-key/.md) (`Api_Key`). Choose the <!-- -->https\://ingress./logs/v1/singles<!-- --> endpoint that corresponds to your Coralogix [domain](https://coralogix.com/docs/docs/user-guides/account-management/account-settings/coralogix-domain/.md) using the domain selector at the top of the page.

## Configuration[​](#configuration "Direct link to Configuration")

The following section provides a number of configuration examples.

### Generic Configuration[​](#generic-configuration "Direct link to Generic Configuration")

The example below collects all log files from the /var/log/ path, using the generic HTTP output plugin. We **recommend** this plugin due to its adjustability and exposed metrics. Other collection options can be found [here](https://docs.fluentd.org/input).

```
<system>

	log_level info

</system>



<source>

	@type tail

	@id tail_var_logs

	@label @CORALOGIX

	path /var/log/*.log

	pos_file /var/log/fluent/all.pos

        path_key path

	tag all

	read_from_head true

	<parse>

		@type none

	</parse>

</source>



<label @CORALOGIX>

	<filter **>

	@type record_transformer

	@log_level warn

	enable_ruby true

	auto_typecast true

	renew_record true

	<record>

		applicationName "Example_App"

		subsystemName "Example_Subsystem"

		text ${record.to_json}

	</record>

	</filter>



<match **>

	@type http

	@id http_to_coralogix

	endpoint "https://ingress.eu2.coralogix.com/logs/v1/singles"

	headers {"authorization":"Bearer <Api_Key>"}

	retryable_response_codes 408, 500, 502, 503, 504, 507

	error_response_as_unrecoverable false

	<buffer>

		@type memory

		chunk_limit_size 5MB

		compress gzip

		flush_interval 1s

		retry_max_times 5

		retry_type periodic

		retry_wait 2

	</buffer>

	<secondary>

		#If any messages fail to send they will be send to STDOUT for debug.

		@type stdout

	</secondary>

</match>

</label>
```

### Configuration for Multiple Sources[​](#configuration-for-multiple-sources "Direct link to Configuration for Multiple Sources")

The example below provides a Fluentd configuration that has several log file sources and a unique [subsystem name](https://coralogix.com/docs/docs/user-guides/account-management/account-settings/application-and-subsystem-names/.md) for each source. It uses the "tag" option to specify a unique value in each source and a "tag" variable as subsystem. The result is several different tags depending on the source of the log.

```
<system>

  log_level info

</system>



<source>

  @type tail

  @id tail_path_1

  @label @CORALOGIX

  path /<path number 1>/*/*.log

  pos_file /<path number 1>/all.pos

        path_key path

  tag path_number_1

  read_from_head true

  <parse>

    @type none

  </parse>

</source>



<source>

  @type tail

  @id tail_path_2

  @label @CORALOGIX

  path /<path number 2>/*/*.log

  pos_file /<path number 2>/all.pos

        path_key path

  tag path_number_2

  read_from_head true

  <parse>

    @type none

  </parse>

</source>



<label @CORALOGIX>

  <filter **>

  @type record_transformer

  @log_level warn

  enable_ruby true

  auto_typecast true

  renew_record true

  <record>

    applicationName "<Application Name Here>"

    subsystemName ${tag}

    text ${record.to_json}

  </record>

  </filter>



<match **>

  @type http

  @id http_to_coralogix

  endpoint "https://ingress.eu2.coralogix.com/logs/v1/singles"

  headers {"authorization":"Bearer <Api_Key>"}

  retryable_response_codes 408, 500, 502, 503, 504, 507

  error_response_as_unrecoverable false

  <buffer>

    @type memory

    chunk_limit_size 5MB

    compress gzip

    flush_interval 1s

    retry_max_times 5

    retry_type periodic

    retry_wait 2

  </buffer>

  <secondary>

    #If any messages fail to send they will be send to STDOUT for debug.

    @type stdout

  </secondary>

</match>

</label>
```

## Additional resources[​](#additional-resources "Direct link to Additional resources")

|                     |                                                                                             |
| ------------------- | ------------------------------------------------------------------------------------------- |
| Coralogix Endpoints | [Coralogix Endpoints](https://coralogix.com/docs/docs/integrations/coralogix-endpoints/.md) |
