У меня есть внешний экземпляр ElasticSearch, который я бы хотел, чтобы Fluentd и Kibana соответственно использовали в OSE 3.11. Экземпляр ES в настоящий момент небезопасен, так как это просто внутренний пилот. Основываясь на документации по OSE здесь (https://docs.openshift.com/container-platform/3.11/install_config/aggregate_logging.html#sending-logs-to-an-external-elasticsearch-instance),, я должен иметь возможность обновить количество переменных ES_ * соответственно в конфигурации развертывания ElasticSearch. Первая проблема заключается в том, что переменные, на которые ссылаются документы, не не существует в конфигурации развертывания ElasticSearch.
Во-вторых, я попытался обновить эти значения с помощью файла инвентаризации. Например, для свойства openshift_logging_es_host в описании указано: Имя службы Elasticsearch, куда Fluentd должен отправлять журналы.
Это были значения из моего инвентарного файла:
openshift_logging_install_logging=true
openshift_logging_es_ops_nodeselector={'node-role.kubernetes.io/infra':'true'}
openshift_logging_es_nodeselector={'node-role.kubernetes.io/infra':'true'}
openshift_logging_es_host='169.xx.xxx.xx'
openshift_logging_es_port='9200'
openshift_logging_es_ops_host='169.xx.xxx.xx'
openshift_logging_es_ops_port='9200'
openshift_logging_kibana_env_vars={'ELASTICSEARCH_URL':'http://169.xx.xxx.xx:9200'}
openshift_logging_es_ca=none
openshift_logging_es_client_cert=none
openshift_logging_es_client_key=none
openshift_logging_es_ops_ca=none
openshift_logging_es_ops_client_cert=none
openshift_logging_es_ops_client_key=none
Единственная вышеупомянутая переменная, которая, кажется, залипает после удаления / установки ведения журнала, - это openshift_logging_kibana_env_vars. Я не уверен, почему другие не были соблюдены - возможно, я упускаю тот, который вызывает использование этих переменных.
В любом случае, после того, как эти попытки потерпели неудачу, я в конце концов нашел значения, установленные в наборе демонов logging-fluentd. Я могу редактировать через CLI или консоль, чтобы установить хост, порт, ключи клиента, сертификаты и т. Д. Я также установил эквиваленты операций. Журналы fluentd подтверждают, что эти значения установлены, однако он пытается использовать https в сочетании со стандартной комбинацией fluentd / changeme id / pwd.
2019-03-08 11:49:00 -0600 [warn]: temporarily failed to flush the buffer. next_retry=2019-03-08 11:54:00 -0600 error_class="Fluent::ElasticsearchOutput::ConnectionFailure" error="Can not reach Elasticsearch cluster ({:host=>\"169.xx.xxx.xx\", :port=>9200, :scheme=>\"https\", :user=>\"fluentd\", :password=>\"obfuscated\"})!" plugin_id="elasticsearch-apps"
Итак, в идеале, я бы хотел установить их в качестве переменных инвентаря, и все просто работает. Если у кого-нибудь есть предложение, чтобы решить эту проблему, пожалуйста, дайте мне знать.
Менее чем идеально, я могу изменить конфигурацию развертывания ES или Fluentd Dameon Set после установки и установить требуемые значения, предполагая, что кто-то знает, как избежать https?
Спасибо за любой вклад, который у вас может быть.
Обновление:
Мне удалось заставить это работать, но не с помощью задокументированных свойств или предоставленного предложения. В итоге я просмотрел различные сборники пьес, чтобы определить используемые переменные. Мне также пришлось настроить взаимный TLS, поскольку, когда я указывал расположение файлов сертификатов как none / undefined, в журналах указывалось «Файл не найден». По сути, ни один или неопределенный не переводится в "", который он пытается открыть в виде файла. Итак, это была волшебная комбинация свойств, которая поможет вам на 99,9% пути.
openshift_logging_es_host=169.xx.xxx.xxx
openshift_logging_fluentd_app_host=169.xx.xxx.xxx
openshift_logging_fluentd_ops_host=169.xx.xxx.xxx
openshift_logging_fluentd_ca_path='/tmp/keys/client-ca.cer'
openshift_logging_fluentd_key_path='/tmp/keys/client.key'
openshift_logging_fluentd_cert_path='/tmp/keys/client.cer'
openshift_logging_fluentd_ops_ca_path='/tmp/keys/client-ca.cer'
openshift_logging_fluentd_ops_key_path='/tmp/keys/client.key'
openshift_logging_fluentd_ops_cert_path='/tmp/keys/client.cer'
Примечания:
- Вам необходимо скопировать ключи в
/tmp/keys
до.
- По завершении вы заметите, что OPS_HOST не будет установлен в наборе демонов. Я оставил это в свойствах выше, так как считаю, что это просто ошибка, и, возможно, она будет исправлена после 3.11, что я и использую. Чтобы настроить это просто
oc edit ds/logging-fluentd
и измените соответственно.
С этими изменениями данные журнала отправляются моему внешнему экземпляру ES.