ELK浅入浅出之环境搭建

历时2天,搞出了ELK的环境搭建,特此记录一下避免后来人踩坑。

1.前置操作

yum install -y wget
yum install -y java-11-openjdk.x86_64

2.安装elasticsearch

# 切换到opt目录
cd /opt
# 下载elasticsearch安装包
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-8.0.0-linux-x86_64.tar.gz
# 解压缩安装包
tar -zxvf elasticsearch-8.0.0-linux-x86_64.tar.gz
# 启动elasticsearch
./elasticsearch-8.0.0/bin/elasticsearch

这时我还使用的root账号在操作,启动会报错,说elasticsearch不能以root权限来运行。

行吧,我们来创建一个用于elk的用户

# 创建elk组
group add elk
# 为elk组创建一个elk用户
useradd elk -g elk
# 重置用户密码
passwd elk
#将opt目录的权限授权给elk用户
chown -R elk:elk /opt

 不能用root那咱就用elk用户启动吧

# 切换成elk用户
su elk
# 再次启动elasticsearch
./elasticsearch-8.0.0/bin/elasticsearch

 嗯嗯,这次启动成功了。

3.部署logstash

# 下载logstash安装包
wget https://artifacts.elastic.co/downloads/logstash/logstash-8.0.0-linux-x86_64.tar.gz
# 解压缩安装包
tar -zxvf logstash-8.0.0-linux-x86_64.tar.gz
# 改改logstash-sample.conf
vim logstash-8.0.0/config/logstash-sample.conf
# 测试启动logstash
./logstash-8.0.0/bin/logstash -f logstash-8.0.0/config/logstash-sample.conf

改过的logstash-sample.conf

input {
  beats {
    port => 5044
  }
  tcp {
    mode => "server"
    port => 4567
    codec => json_lines
  }
}

output {
  elasticsearch {
    hosts => ["http://localhost:9200"]
    index => "%{[@metadata][beat]}-%{[@metadata][version]}-%{+YYYY.MM.dd}"
    #user => "elastic"
    #password => "changeme"
  }
}

 出现了报错:Attempted to resurrect connection to dead ES instance, but got an error {:url=>"http://localhost:9200/", :exception=>LogStash::Outputs::ElasticSearch::HttpClient::Pool::HostUnreachableError, :message

=>"Elasticsearch Unreachable: [http://localhost:9200/][Manticore::ClientProtocolException] localhost:9200 failed to respond"}。我心想我es服务还正常呢,咋就dead ES instance了。

咱也不能听信logstah的一面之词,看看es的日志

received plaintext http traffic on an https channel, closing connection Netty4HttpChannel

再查查这是什么原因导致的,已经有朋友给出了解决方案

改完再重启。嗯,虽然依然报错,但是变成了另外一种错误。

Attempted to resurrect connection to dead ES instance, but got an error {:url=>"http://localhost:9200/", :exception=>LogStash::Outputs::ElasticSearch::HttpClient::Pool::BadResponseCodeError, :message

=>"Got response code '401' contacting Elasticsearch at URL 'http://localhost:9200/'"}

显示我401,原来8.0.0版本的elasticsearch默认是需要认证了,好吧。加上认证信息,修改完

input {
  beats {
    port => 5044
  }
  tcp {
    mode => "server"
    port => 4567
    codec => json_lines
  }
}

output {
  elasticsearch {
    hosts => ["http://localhost:9200"]
    index => "%{[@metadata][beat]}-%{[@metadata][version]}-%{+YYYY.MM.dd}"
    user => "elastic"
    password => "mjQgmfQlMuxmGlYI5F1H"
  }
}

ok,这次启动成功了。

或者跳过认证

4.部署kibana

# 下载kibana安装包
wget https://artifacts.elastic.co/downloads/kibana/kibana-8.0.0-linux-x86_64.tar.gz
# 解压缩安装包
tar -zxvf kibana-8.0.0-linux-x86_64.tar.gz
# 修改kibana配置文件
vim kibana-8.0.0/config/kibana.yml
# 启动kibana
./kibana-8.0.0/bin/kibana

 出现了问题Kibana should not be run as root. Use --allow-root to continue。kibana默认也不以root身份启动,还好我们早先创建了elk用户。

# 切换成elk用户
su elk
# 再次启动kibana
./kibana-8.0.0/bin/kibana

出现了错误。Error: Unable to write to UUID file at /opt/kibana-8.0.0/data/uuid. Ensure Kibana has sufficient permissions to read / write to this file. Error was: EACCES

小问题,使用root身份重新给elk用户授权一下,搞定!

又来了一个小问题

Unable to retrieve version information from Elasticsearch nodes. security_exception: [security_exception] Reason: missing authentication credentials for REST request [/_nodes?filter_path=nodes.*.version%2Cnod
es.*.http.publish_address%2Cnodes.*.ip]

 因为elasticsearch开启的安全认证,导致kibana必须配置账号密码才能连接elasticsearch。

这个过程可太痛苦了,网上一群人在胡说,提议关闭安全认证,堪称天才。

那我就想使用elastic用户的账号和密码,发现行不通。系统不让用,那就翻翻官网吧。能咋办呢

 终于功夫不负有心人,在官网找到了关于elasticsearch的内置角色的解释,为我们通向成功提供了一把钥匙。

 提到了一个内置用户kibana_system用于kibana连接elasticsearch使用。此时,我知道我们离真相不远了。

但是我们还不知道kibana_system的密码,不过没关系,没有密码咱就重置密码

# 重置kibana_system密码
bin/elasticsearch-reset-password --username kibana_system

 再度配置kibana.yml,成了!

 最终的kibana.yml

server.port: 5601
server.host: "0.0.0.0"
elasticsearch.hosts: ["http://localhost:9200"]
elasticsearch.username: "kibana_system"
elasticsearch.password: "ebblH2rFclzqlNdwC5Ou"

文章标签:

原文连接:https://blog.csdn.net/qq_22156459/article/details/123144237

相关推荐