前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >一次失败的ELK安装配置指南

一次失败的ELK安装配置指南

作者头像
机器学习之禅
发布2022-07-11 14:54:05
5950
发布2022-07-11 14:54:05
举报
文章被收录于专栏:机器学习之禅机器学习之禅

系统现在分为好多部分,面对不同的服务,又接受不同的服务。

bug联查确实很有难度,几乎除了负责统一的我以外没人能找到真正的原因了。所以,想着能把日志监控做起来,恰好最近不是很忙,就折腾了一下ELK这个日志监测系统,结果弄了两天还没有成功。

什么,不知道什么是ELK?那就百度一下吧,哦不,谷歌一下,程序猿说百度显得不专业。

其实我之前也不知道什么是ELK,只是最近找日志系统才知道有这么个东西。

看着网上充斥着各种五分钟配置ELK,十分钟配置ELK,我真是感觉大神无处不在,为什么我就弄不成功呢?

好了,不多说了,开始讲具体实施的过程吧。

看起来这个工程更新迭代还挺快,2015年的帖子介绍的还是1.x.x,现在都已经5.x.x版本了,有很多功能和特性都发生了变化,配置起来也不一样了。

kibana 和 elasticsearch下载地址

https://www.elastic.co/products

logstash下载地址

https://www.elastic.co/downloads/logstash

服务测试机:

126.32.22.94

日志采集机器:

126.32.24.195

JDK版本1.7(这是个坑,5.x.x版本都只能用1.8的JDK)

版本:

kibana-5.0.0 x86_64

logstash-5.2.2

elasticsearch-5.0.0

redis地址:

126.32.24.194 db11

安装elasticsearch

1.下载tar.gz到目录/data/xxx/logMonitor/elasticsearch

解压:tar -zxvf -----.tar.gz

进入bin目录,尝试安装head,结果遇到jdk版本问题,暂时跳过

./elasticsearch-plugin -install mobz/elasticsearch-head

Exception in thread "main" java.lang.UnsupportedClassVersionError: org/elasticsearch/plugins/PluginCli : Unsupported major.minor version 52.0

启动,依然是在bin目录下

nohup ./elasticsearch -Des.insecure.allow.root=true >/data/xxx/logMonitor/elasticsearch/nohup.log 2>&1 &

得到进程号3745,ps看一下,结果没找到,看来启动不成功。check了一下log,看来还是jdk问题

下载了1.8版本的jdk

jdk-8u121-linux-x64.rpm

上传到/usr/local/src

安装rpm rpm -ivh jdk-8u121-linux-x64.rpm

安装完成后在/usr/java/目录下面会有jdk。。。。

配置环境变量

vim /etc/profile

在末尾增加下面内容

export JAVA_HOME=/usr/java/jdk1.8.0_121

export JRE_HOME=$JAVA_HOME/jre

export CLASSPATH=$JAVA_HOME/lib:$CLASSPATH

export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH

保存后执行 source /etc/profile让配置生效

重新试试安装head plugin

这时候成功了 ,启动elasticsearch

输出有这么一个错误,然后退出了

ERROR: D is not a recognized option

这个命令已经不能用了吗?

只好退出root,用我的用户twoeggs(二蛋)来操作

还得重新加载一下jdk

使用root chown -R twoeggs /data/xxx/logMonitor 给用户twoeggs赋权限

然后切换到用户twoeggs

启动 nohup ./bin/elasticsearch > nohup.log &

看日志还有个警告

[WARN ][o.e.b.JNANatives ] unable to install syscall filter:

java.lang.UnsupportedOperationException: seccomp unavailable: requires kernel 3.5+ with CONFIG_SECCOMP and CONFIG_SECCOMP_FILTER compiled in

但是输入测试,是有结果的,所以那个警告先放一放

curl -X GET http://localhost:9200/

{

"name" : "uCelUQO",

"cluster_name" : "elasticsearch",

"cluster_uuid" : "aDfiyryqQbaYs68VJza74Q",

"version" : {

"number" : "5.0.0",

"build_hash" : "253032b",

"build_date" : "2016-10-26T04:37:51.531Z",

"build_snapshot" : false,

"lucene_version" : "6.2.0"

},

"tagline" : "You Know, for Search"

}

好了,下一步。开始安装kibana

进入目录logMonitor/kibana

解压

tar -zxvf kibana-5.0.0-linux-x86_64.tar.gz

在config/kibana.yml 中配置 search的地址,增加下面一行

elasticsearch.url:"http://localhost:9200"

启动kibana

nohup bin/kibana > ../nohup.log &

测试一下,服务确实启动了,有返回结果。但是在浏览器里却不能访问?

可能是网络问题?

curl -X GET http://localhost:5601/

<script>var hashRoute = '/app/kibana';

var defaultRoute = '/app/kibana';

var hash = window.location.hash;

if (hash.length) {

window.location = hashRoute + hash;

} else {

window.location = defaultRoute;

}</script>

经过检查,发现时配置文件的问题,它会自动绑定到IPV6上面,需要手动改一下配置文件。

elasticsearch和kibana都需要改。

先改了elasticsearch的,在这一行改为 network.host:0.0.0.0

但是没法重新启动了,遇到了问题

ERROR: bootstrap checks failed

max virtual memory areas vm.max_map_count [65530] likely too low, increase to at least [262144],

在网上查了一下 需要配置一下,使用命令

sudo sysctl -w vm.max_map_count=262144

上面这些配置都是临时性的,如果下次需要还要重新配置

然后重启,这次终于好了,在浏览器输入126.32.22.94:9200 可以收到显示信息

强势插入:

安装x-pack插件

1.安装elasticsearch的插件

sudo bin/elasticsearch-plugin install x-pack

2.安装kibana的插件

sudo bin/kibana-plugin install x-pack

ElasticSearch:

用户名:elastic

密码:changeme

登录到Kibana会发现 elastic是一个最高级别的user,拥有所有权限,其角色是superuser。

下面继续搞kibana

在配置文件中加入host:"0.0.0.0"好像不太好用,又删掉

仔细查看了kibana的配置文件,有这样一条,简单翻译一下

# Specifies the address to which the Kibana server will bind. IP addresses and host names are both valid values.

#指定Kibana服务要绑定的地址。IP地址跟主机名都可以。

# The default is 'localhost', which usually means remote machines will not be able to connect.

#默认值是“localhost”本机,这就意味着远程机器通常情况下是不能连接的。

# To allow connections from remote users, set this parameter to a non-loopback address.

#要想允许远程用户访问,就把该参数设置成非回送地址。

#server.host: "localhost"

尝试了改成0.0.0.0,和改为我的主机ip都不好使。。。再继续研究

先暂停上面的工作,先来安装logstash

把logstash上传到生产日志的服务器上响应目录

/data/xxx/logstash

解压tar -zxvf logstash...

启动,看来这个也有jdk版本问题,都需要jdk1.8

切换了jdk版本之后看起来是成功启动了

然后呢,输入下面的语句启动logstash,再输入hello world!进行测试

bin/logstash -e 'input { stdin { } } output { stdout {} }'

hello world!

启动logstash输出正常

Sending Logstash's logs to /data/hexl/logstash/logstash-5.2.2/logs which is now configured via log4j2.properties

[2017-03-14T16:25:52,665][INFO ][logstash.setting.writabledirectory] Creating directory {:setting=>"path.queue", :path=>"/data/hexl/logstash/logstash-5.2.2/data/queue"}

[2017-03-14T16:25:52,688][INFO ][logstash.agent ] No persistent UUID file found. Generating new UUID {:uuid=>"02674bd2-2d46-43fd-868d-b71108947a7d", :path=>"/data/hexl/logstash/logstash-5.2.2/data/uuid"}

[2017-03-14T16:25:52,820][INFO ][logstash.pipeline ] Starting pipeline {"id"=>"main", "pipeline.workers"=>24, "pipeline.batch.size"=>125, "pipeline.batch.delay"=>5, "pipeline.max_inflight"=>3000}

[2017-03-14T16:25:52,856][INFO ][logstash.pipeline ] Pipeline main started

对输入进行了格式化输出:

The stdin plugin is now waiting for input:

2017-03-14T08:25:52.889Z recommend_dataparse_web195v24_sjs hello world!

[2017-03-14T16:25:52,912][INFO ][logstash.agent ] Successfully started Logstash API endpoint {:port=>9600}

hi

2017-03-14T08:25:58.339Z recommend_dataparse_web195v24_sjs hi

但是配置elasticsearch的连接怎么都不好使,真是要疯。

安装logstash的插件

bin/logstash-plugin install x-pack

所以,搞来搞去,还是没有成功。

我准备去读一下项目文档啦,希望能有所帮助吧。

或者谁有成功经验可以指导一下我嘛。。。

等我研究明白搭建成功了,再来重新写一篇吧~~~加油

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2017-03-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 机器学习之禅 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
Elasticsearch Service
腾讯云 Elasticsearch Service(ES)是云端全托管海量数据检索分析服务,拥有高性能自研内核,集成X-Pack。ES 支持通过自治索引、存算分离、集群巡检等特性轻松管理集群,也支持免运维、自动弹性、按需使用的 Serverless 模式。使用 ES 您可以高效构建信息检索、日志分析、运维监控等服务,它独特的向量检索还可助您构建基于语义、图像的AI深度应用。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档