IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> ELK浅入浅出之环境搭建 -> 正文阅读

[大数据]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"
  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-02-27 11:00:44  更:2022-02-27 11:01:14 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 11:42:03-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码