elasticsearch 401未授权错误

cig3rfwq  于 2022-11-02  发布在  ElasticSearch
关注(0)|答案(3)|浏览(723)

Official logstash elastic cloud module
Official doc for starting with
我的logstash.yml看起来像:

cloud.id: "Test:testkey"
  cloud.auth: "elastic:password"

前面2个空格,后面没有空格,""以内
这是我在logstash.yml中的全部内容,没有其他内容,
而我得到的是:
[2018-08-29T12:33:52,112][WARN ][logstash.outputs.elasticsearch] Attempted to resurrect connection to dead ES instance, but got an error. {:url=>"https://myserverurl:12345/", :error_type=>LogStash::Outputs::ElasticSearch::HttpClient::Pool::BadResponseCodeError, :error=>"Got response code '401' contacting Elasticsearch at URL 'https://myserverurl:12345/'"}
my_config_file_name.conf看起来像这样:

input{jdbc{...jdbc here... This works, as I see data in windows console}}
output {
    stdout { codec => json_lines }
    elasticsearch {
    hosts => ["myserverurl:12345"]
    index => "my_index"
    # document_id => "%{brand}"
    }

我正在做的是在windows cmd上点击bin/logstash
它从数据库中加载数据,我已经在配置文件的输入配置,然后显示我的错误,我想索引我的数据从MySQLelasticsearch上云,我花了14天的试验,并创建了一个测试索引,为学习的目的,因为我以后必须部署它。我的管道看起来像:

- pipeline.id: my_id
    path.config: "./config/conf_file_name.conf"
    pipeline.workers: 1

如果日志不包含敏感数据,我也可以提供。
基本上,我不想将我的MYSQL数据与云上的ElasticSearch(即AWS)同步(计划检查)

fxnxkyjh

fxnxkyjh1#

输出应为:

elasticsearch {
    hosts => ["https://yourhost:yourport/"]
    user => "elastic"
    password => "password"
    # protocol => https
    # port => "yourport"
    index => "test_index"
    # document_id => "%{table_id}"

#-表示注解
如以下网址所述:Configuring logstash with elastic cloud docs
部署应用程序时提供的文档未提供jdbc的配置,即使在设置文件(即logstash.yml)中定义了用户和密码,jdbc也需要用户和密码

ax6ht2ek

ax6ht2ek2#

我在我的开发环境中添加了同样的问题。在谷歌上搜索了几个小时后,我了解到默认情况下,当你安装Logstash时,X-Pack也会安装。在文档https://www.elastic.co/guide/en/logstash/current/setup-xpack.html中,它声明
块引用
X-Pack是一种弹性堆栈扩展,可提供安全性、警报、监控、机器学习、管道管理和许多其他功能
块引用
当我在流Elasticsearch时,我不需要在我的dev中运行x-pack,我不得不在我的索引文件配置的输出中将ilm_enabled设置为false来禁用它。

output {
     elasticsearch { 
        hosts =>  [.. ]
        ilm_enabled => false
      }
    }

下面的链接可能会有所帮助

h22fl7wq

h22fl7wq3#

此外,如果您在Web UI中创建了API密钥,则无法获取配置Logstash所需的值。您必须使用/app/dev_tools#/console中的devtool控制台,如下所示:

POST /_security/api_key
{
  "name": "logstash"
}

其输出类似于:

{
  "id": "<id value>",
  "name": "logstash",
  "api_key": "<api key>",
  "encoded": "<encoded api key>"
}

在您的logstash管道配置中,您可以使用如下所示的值:

output {
  elasticsearch {
    cloud_id => "<cloud id>"
    api_key => "<id value>:<api key>"
    data_stream => true
    ssl => true
  }
  stdout { codec => rubydebug }
}

请注意,组合的“api_key”值由“:“分隔。此外,您可以在“部署”菜单选项下找到“云ID”。

相关问题