diff --git a/app/vlinsert/elasticsearch/elasticsearch.go b/app/vlinsert/elasticsearch/elasticsearch.go index c11d8b398f..60ae8ddeb6 100644 --- a/app/vlinsert/elasticsearch/elasticsearch.go +++ b/app/vlinsert/elasticsearch/elasticsearch.go @@ -3,6 +3,7 @@ package elasticsearch import ( "bufio" "errors" + "flag" "fmt" "io" "math" @@ -24,6 +25,10 @@ import ( "github.com/VictoriaMetrics/metrics" ) +var ( + elasticsearchVersion = flag.String("elasticsearch.version", "8.9.0", "Elasticsearch version to report to client") +) + // RequestHandler processes Elasticsearch insert requests func RequestHandler(path string, w http.ResponseWriter, r *http.Request) bool { w.Header().Add("Content-Type", "application/json") @@ -60,9 +65,9 @@ func RequestHandler(path string, w http.ResponseWriter, r *http.Request) bool { // See the latest available version for Elasticsearch at https://github.com/elastic/elasticsearch/releases fmt.Fprintf(w, `{ "version": { - "number": "8.8.0" + "number": %q } - }`) + }`, *elasticsearchVersion) case http.MethodHead: // Return empty response for Logstash ping request. } diff --git a/docs/VictoriaLogs/CHANGELOG.md b/docs/VictoriaLogs/CHANGELOG.md index be91f975c6..137f80d760 100644 --- a/docs/VictoriaLogs/CHANGELOG.md +++ b/docs/VictoriaLogs/CHANGELOG.md @@ -5,6 +5,7 @@ according to [these docs](https://docs.victoriametrics.com/VictoriaLogs/QuickSta ## tip +* FEATURE: add `-elasticsearch.version` command-line flag, which can be used for specifying Elasticsearch version returned by VictoriaLogs to Filebeat at [elasticsearch bulk API](https://docs.victoriametrics.com/VictoriaLogs/data-ingestion/#elasticsearch-bulk-api). This helps resolving [this issue](https://github.com/VictoriaMetrics/VictoriaMetrics/issues/4777). * FEATURE: expose the following metrics at [/metrics](monitoring) page: * `vl_data_size_bytes{type="storage"}` - on-disk size for data excluding [log stream](https://docs.victoriametrics.com/VictoriaLogs/keyConcepts.html#stream-fields) indexes. * `vl_data_size_bytes{type="indexdb"}` - on-disk size for [log stream](https://docs.victoriametrics.com/VictoriaLogs/keyConcepts.html#stream-fields) indexes. diff --git a/docs/VictoriaLogs/data-ingestion/Filebeat.md b/docs/VictoriaLogs/data-ingestion/Filebeat.md index 8bdd243cae..3464aeb8bc 100644 --- a/docs/VictoriaLogs/data-ingestion/Filebeat.md +++ b/docs/VictoriaLogs/data-ingestion/Filebeat.md @@ -100,6 +100,22 @@ output.elasticsearch: _stream_fields: "host.name,log.file.path" ``` +Filebeat checks a version of ElasticSearch on startup and refuses to start sending logs if the version is not compatible. +In order to bypass this check please add `allow_older_versions: true` into `output.elasticsearch` section: + +```yml +output.elasticsearch: + hosts: [ "http://localhost:9428/insert/elasticsearch/" ] + parameters: + _msg_field: "message" + _time_field: "@timestamp" + _stream_fields: "host.name,log.file.path" + allow_older_versions: true +``` + +Alternatively, is also possible to change version which VictoriaLogs reports to Filebeat by using `-elasticsearch.version` +command-line flag. + See also: - [Data ingestion troubleshooting](https://docs.victoriametrics.com/VictoriaLogs/data-ingestion/#troubleshooting).