Несколько демонов Telegraf пытаются записать в одну и ту же БД в InfluxDB

У меня работают два демона телеграфа.

Демон 1: Input = kafka topic: sample_topic, Output = InfluxDb: DB = telegraf, MEASUREMENT = KI1
Демон 2: Input = kafka topic: sample_topic2, Output = InfluxDb: DB = telegraf, MEASUREMENT = KI2

Два демона читают разные темы кафки и записывают в два разных измерения в базе данных InfluxDB "telegraf".

Я заметил, что оба измерения KI1 и KI2 не создаются одновременно. Создается только одно измерение. Когда я убиваю демона, который уже создал измерение, другое измерение создается в базе данных другим демоном.

Разрешена ли одновременная запись в разные измерения в InfluxDb?

Я даже попробовал то же самое, написав в две разные базы данных InfluxDb, telegraf и telegraf2. Я наблюдал такое же поведение.

Кроме того, можно ли все это сделать, используя только один демон? Где у меня есть несколько плагинов ввода для чтения разных тем о кафке и разные плагины вывода для написания там, где это необходимо.

Демон 1:

[tags]
    topic = "sample_topic"


# OUTPUTS
[outputs]
[outputs.influxdb]
    # The full HTTP endpoint URL for your InfluxDB instance
    url = "http://localhost:8086" # EDIT THIS LINE
    # The target database for metrics. This database must already exist
    database = "telegraf" # required.
    skip_database_creation = true
    database_tag = "KI1"

#INPUTS
# Read metrics from Kafka topic(s)
[[inputs.kafka_consumer_legacy]]

    name_override = "KI1"
    ## topic(s) to consume
    topics = ["sample_topic"]
    ## an array of Zookeeper connection strings
    zookeeper_peers = ["localhost:2181"]
    ## Zookeeper Chroot
    zookeeper_chroot = ""
    ## the name of the consumer group
    consumer_group = "sample"
    ## Offset (must be either "oldest" or "newest")
    offset = "oldest"
    ## Data format to consume.
    ## Each data format has its own unique set of configuration options, read
    ## more about them here:
    ## https://github.com/influxdata/telegraf/blob/master/docs/DATA_FORMATS_INPUT.md
    data_format = "value"
    data_type = "string"
    ## Maximum length of a message to consume, in bytes (default 0/unlimited);
    ## larger messages are dropped
    max_message_len = 65536

Демон 2:

[tags]
    topic = "sample_topic2"

# OUTPUTS
[outputs]
[outputs.influxdb]
    # The full HTTP endpoint URL for your InfluxDB instance
    url = "http://localhost:8086" # EDIT THIS LINE
    # The target database for metrics. This database must already exist
    database = "telegraf" # required.
    skip_database_creation = true
    database_tag = "KI2"


#INPUTS
# Read metrics from Kafka topic(s)
[[inputs.kafka_consumer_legacy]]

    name_override = "KI2"
    ## topic(s) to consume
    topics = ["sample_topic2"]
    ## an array of Zookeeper connection strings
    zookeeper_peers = ["localhost:2181"]
    ## Zookeeper Chroot
    zookeeper_chroot = ""
    ## the name of the consumer group
    consumer_group = "sample"
    ## Offset (must be either "oldest" or "newest")
    offset = "oldest"
    ## Data format to consume.
    ## Each data format has its own unique set of configuration options, read
    ## more about them here:
    ## https://github.com/influxdata/telegraf/blob/master/docs/DATA_FORMATS_INPUT.md
    data_format = "value"
    data_type = "string"
    ## Maximum length of a message to consume, in bytes (default 0/unlimited);
    ## larger messages are dropped
    max_message_len = 65536



Ответы (1)


Я заметил, что оба измерения KI1 и KI2 не создаются одновременно. Создается только одно измерение. Когда я убиваю демона, который уже создал измерение, другое измерение создается в базе данных другим демоном.

Не знаю, как вы это проверили. Но шансы на такую ​​аномалию редки.

Допускается ли одновременная запись в разные измерения в InfluxDb?

да.

person darkDragon    schedule 18.06.2019
comment
Я запустил оба демона и публикую данные по обеим темам. Я ожидал, что запись произойдет одновременно. Но было создано только одно измерение, а другое - нет. Когда я убил одного демона (того, который уже записал данные в Influxdb), другое измерение было создано. Я понял, почему это происходит. Это причина устаревшего плагина. С устаревшим плагином оба демона одновременно пытаются подключиться к zookeeper. Подключено к [:: 1]: 2181 - это то, что есть у обоих демонов. Таким образом, пока один демон не будет убит, другой не подключится к zookeeper. - person R10; 18.06.2019
comment
Эта проблема не наблюдается в новом пользовательском плагине kafka. Поэтому я перешел на новый плагин. - person R10; 18.06.2019