热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

超详细的ELK安装部署

ELK简介ELK,相信都有听说过。ELK到底是什么呢?“ELK”是三个开源项目的首字

ELK简介

ELK,相信都有听说过。ELK 到底是什么呢? “ELK”是三个开源项目的首字母缩写,这三个项目分别是:Elasticsearch、Logstash 和 Kibana。Elasticsearch 是一个搜索和分析引擎。Logstash 是服务器端数据处理管道,能够同时从多个来源采集数据,转换数据,然后将数据发送到诸如 Elasticsearch 等“存储库”中。Kibana 则可以让用户在 Elasticsearch 中使用图形和图表对数据进行可视化。

ELK的应用

elk主要被用来对日志的收集、过滤、分析以及可视化展示。省去了运维人员一台一台主机拉取查找日志的烦恼。经常使用的场景有以下几个

  • 分布式部署项目,使用elk收集日志

  • 微服务部署项目,收集各个服务的日志

  • 大数据行业,可以对大数据做分析,还可以和Hadoop大数据平台整合等

ELK的安装部署

下载地址

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

安装jdk

根据官网的说明,需要安装jdk1.8以上

tar -xvf jdk-8u171-linux-x64.tar.gz
#jdk安装目录
mkdir usr/java
mv jdk1.8.0_171 usr/java/

配置jdk的环境变量

cat << EOF >> etc/profile

#java
JAVA_HOME=/usr/java/jdk1.8.0_171
CLASSPATH=.:\$JAVA_HOME/jre/lib/rt.jar:\$JAVA_HOME/lib/dt.jar:\$JAVA_HOME/lib/tools.jar
PATH=\$PATH:\$JAVA_HOME/bin

export JAVA_HOME CLASSPATH PATH
EOF

使环境变量生效并查看jdk版本确认java安装完成

source etc/profile
java -version
#返回结果
java version "1.8.0_171"
Java(TM) SE Runtime Environment (build 1.8.0_171-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.171-b11, mixed mode)

安装elasticsearch

elasticsearch的安装很简单。只需要解压启动即可

tar -xvf elasticsearch-7.8.0-linux-x86_64.tar.gz
mv elasticsearch-7.8.0 usr/local/
cd usr/local/elasticsearch-7.8.0/bin
./elasticsearch

启动报错,根据提示elasticsearch不能使用root启动

java.lang.RuntimeException: can not run elasticsearch as root

新建用户www并将elasticsearch-7.8.0的属组修改成www,然后进入elasticsearch的bin目录启动elasticsearch

useradd www && chown -R www:www usr/local/elasticsearch-7.8.0 && su - www
#进入elasticsearch的bin目录再一次启动
cd usr/local/elasticsearch-7.8.0/bin
./elasticsearch

访问elasticsearch。由于elasticsearch默认监听的内网的回环IP127.0.0.1,端口9200,所以我们在命令行下执行,会看到有返回结果如下。则表示启动正常

curl 127.0.0.1:9200
{
"name" : "localhost.localdomain",
"cluster_name" : "elasticsearch",
"cluster_uuid" : "5bfDviTEQXiOxXgYzephmQ",
"version" : {
"number" : "7.8.0",
"build_flavor" : "default",
"build_type" : "tar",
"build_hash" : "757314695644ea9a1dc2fecd26d1a43856725e65",
"build_date" : "2020-06-14T19:35:50.234439Z",
"build_snapshot" : false,
"lucene_version" : "8.5.1",
"minimum_wire_compatibility_version" : "6.8.0",
"minimum_index_compatibility_version" : "6.0.0-beta1"
},
"tagline" : "You Know, for Search"
}

上面我们说到elasticsearch默认监听IP127.0.0.1和默认端口9200,我们可以通过修改elasticsearch的配置文件进行自定义修改

elasticsearch的主配置文件是config/elasticsearch.yml

network.host: 172.16.88.217
http.port: 9200

修改上面两个参数,再次启动elasticsearch,发现启动报错了,报错信息如下

报错一

max file descriptors [4096] for elasticsearch process is too low, increase to at least [65535]

解决办法:

此报错是说系统的文件句柄数太小了,只有4096,需要调整到65535。通过修改limits.conf文件就可以解决

修改后需要需要重新登录shell才能生效,’*’可以替换成elasticsearch的启动用户www。我这里添加的是代办所有用户都生效

vim etc/security/limits.conf

* hard nofile 65536
* soft nofile 65536

上面两条命令,hard表示硬限制,soft表示软限制。硬限制是绝对的,系统打开的文件句柄数量不能超过这个值,软限制设置不能超过硬限制。当系统超过软限制的数量会有警告提示。通过以下命令可以查看修改结果

#查看当前用户的软限制
命令:ulimit -n 等价于 ulimit -S -n

#查看当前用户的硬限制
命令:ulimit -H -n

报错二

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

解决办法:

报错信息也很明确,就是内核参数vm.max_map_count的值太小了。需要修改到262144

vim etc/sysctl.conf
#添加内容
vm.max_map_count = 262144

#使修改生效
sysctl -p

报错三

the default discovery settings are unsuitable for production use; at least one of [discovery.seed_hosts, discovery.seed_providers, cluster.initial_master_nodes] must be configured

报错原因,个人猜测是因为修改了network.host后,已不在使用默认值,[discovery.seed_hosts, discovery.seed_providers, cluster.initial_master_nodes]这些参数至少有一项得配置,修改后的elasticsearch.conf配置如下

node.name: elk
network.host: 172.16.88.217
http.port: 9200
discovery.seed_hosts: ["172.16.88.217", "127.0.0.1"]
cluster.initial_master_nodes: ["elk"]

修改后再次启动,启动成功,此时通过浏览器访问http://172.16.88.217:9200,可以正常访问了

安装kibana

kibana的安装和elasticsearch一样简单,解压后就可以直接启动,同样不能用root启动,但可以通过修改配置用root启动,否则会报错”Kibana should not be run as root. Use –allow-root to continue.”

tar zxvf kibana-7.8.0-linux-x86_64.tar.gz
mv kibana-7.8.0-linux-x86_64 usr/local/kibana-7.8.0
chown -R www. usr/local/kibana-7.8.0/

修改kibana的配置文件,主配置文件config/kibana.yml

下面是几个主要配置选项,具体其他配置选项可根据需求具体配置

#kibana的监听IP和端口
server.port: 5601
server.host: "172.16.88.217"
#配置elasticsearch连接地址
elasticsearch.hosts: ["http://172.16.88.217:9200"]

配置完成后启动kibana

su - www
cd usr/local/kibana-7.8.0/bin
./kibana

通过浏览器http://172.16.88.217:5601/访问,能够正常打开表示安装完成

安装logstash

logstash也是解压后就可以直接使用,不需要安装。我们只需要测试一下logstash是否能够正常工作就可以,测试logstash是否能够正常工作。执行下面这条命令,待启动后输入内容,看是否有返回结果就可以

tar zxvf logstash-7.8.0.tar.gz
mv logstash-7.8.0 /usr/local && cd /usr/local/logstash-7.8.0
bin/logstash -e 'input { stdin { } } output { stdout {} }'
#输入测试内容
dfdfdf
#以下是返回结果
{
"host" => "localhost.localdomain",
"message" => "dfdfdf",
"@version" => "1",
"@timestamp" => 2020-07-09T07:54:49.183Z
}


小结

以上就是ELK的具体安装过程了。关于ELK是如何收集日志的,请继续关注后续更新内容




推荐阅读
  • 近年来,大数据成为互联网世界的新宠儿,被列入阿里巴巴、谷歌等公司的战略规划中,也在政府报告中频繁提及。据《大数据人才报告》显示,目前全国大数据人才仅46万,未来3-5年将出现高达150万的人才缺口。根据领英报告,数据剖析人才供应指数最低,且跳槽速度最快。中国商业结合会数据剖析专业委员会统计显示,未来中国基础性数据剖析人才缺口将高达1400万。目前BAT企业中,60%以上的招聘职位都是针对大数据人才的。 ... [详细]
  • Linux如何安装Mongodb的详细步骤和注意事项
    本文介绍了Linux如何安装Mongodb的详细步骤和注意事项,同时介绍了Mongodb的特点和优势。Mongodb是一个开源的数据库,适用于各种规模的企业和各类应用程序。它具有灵活的数据模式和高性能的数据读写操作,能够提高企业的敏捷性和可扩展性。文章还提供了Mongodb的下载安装包地址。 ... [详细]
  • 一次上线事故,30岁+的程序员踩坑经验之谈
    本文主要介绍了一位30岁+的程序员在一次上线事故中踩坑的经验之谈。文章提到了在双十一活动期间,作为一个在线医疗项目,他们进行了优惠折扣活动的升级改造。然而,在上线前的最后一天,由于大量数据请求,导致部分接口出现问题。作者通过部署两台opentsdb来解决问题,但读数据的opentsdb仍然经常假死。作者只能查询最近24小时的数据。这次事故给他带来了很多教训和经验。 ... [详细]
  • ShiftLeft:将静态防护与运行时防护结合的持续性安全防护解决方案
    ShiftLeft公司是一家致力于将应用的静态防护和运行时防护与应用开发自动化工作流相结合以提升软件开发生命周期中的安全性的公司。传统的安全防护方式存在误报率高、人工成本高、耗时长等问题,而ShiftLeft提供的持续性安全防护解决方案能够解决这些问题。通过将下一代静态代码分析与应用开发自动化工作流中涉及的安全工具相结合,ShiftLeft帮助企业实现DevSecOps的安全部分,提供高效、准确的安全能力。 ... [详细]
  • 本文探讨了容器技术在安全方面面临的挑战,并提出了相应的解决方案。多租户保护、用户访问控制、中毒的镜像、验证和加密、容器守护以及容器监控都是容器技术中需要关注的安全问题。通过在虚拟机中运行容器、限制特权升级、使用受信任的镜像库、进行验证和加密、限制容器守护进程的访问以及监控容器栈,可以提高容器技术的安全性。未来,随着容器技术的发展,还需解决诸如硬件支持、软件定义基础设施集成等挑战。 ... [详细]
  • 云原生应用最佳开发实践之十二原则(12factor)
    目录简介一、基准代码二、依赖三、配置四、后端配置五、构建、发布、运行六、进程七、端口绑定八、并发九、易处理十、开发与线上环境等价十一、日志十二、进程管理当 ... [详细]
  • k8s+springboot+Eureka如何平滑上下线服务
    k8s+springboot+Eureka如何平滑上下线服务目录服务平滑上下线-k8s版本目录“上篇介绍了springboot+Euraka服务平滑上下线的方式,有部分小伙伴反馈k ... [详细]
  • 这个问题困扰了我两天,卸载Dr.COM客户端(我们学校上网要装这个客户端登陆服务器,以后只能在网页里输入用户名和密码了),问题解决了。问题的现象:在实验室机台式机上安装openfire和sp ... [详细]
  • 云原生边缘计算之KubeEdge简介及功能特点
    本文介绍了云原生边缘计算中的KubeEdge系统,该系统是一个开源系统,用于将容器化应用程序编排功能扩展到Edge的主机。它基于Kubernetes构建,并为网络应用程序提供基础架构支持。同时,KubeEdge具有离线模式、基于Kubernetes的节点、群集、应用程序和设备管理、资源优化等特点。此外,KubeEdge还支持跨平台工作,在私有、公共和混合云中都可以运行。同时,KubeEdge还提供数据管理和数据分析管道引擎的支持。最后,本文还介绍了KubeEdge系统生成证书的方法。 ... [详细]
  • 本文介绍了adg架构设置在企业数据治理中的应用。随着信息技术的发展,企业IT系统的快速发展使得数据成为企业业务增长的新动力,但同时也带来了数据冗余、数据难发现、效率低下、资源消耗等问题。本文讨论了企业面临的几类尖锐问题,并提出了解决方案,包括确保库表结构与系统测试版本一致、避免数据冗余、快速定位问题等。此外,本文还探讨了adg架构在大版本升级、上云服务和微服务治理方面的应用。通过本文的介绍,读者可以了解到adg架构设置的重要性及其在企业数据治理中的应用。 ... [详细]
  • 职业道路的选择与建议
    职业道路的选择与建议2010-09-2621:31:53标签:职业感悟建议   [推送到技术圈]版权声明:原创作品,允许转载, ... [详细]
  • 本人学习笔记,知识点均摘自于网络,用于学习和交流(如未注明出处,请提醒,将及时更正,谢谢)OS:我学习是为了上 ... [详细]
  • 1、打开etcsysconfiggrub,   #vimetcsysconfiggrub   内容如下: ... [详细]
  • BPM是什么软件?1、BPM是BusinessProcessManagement的简称,译为业务流程管理,它是一种以规范化的构造端到端的卓越业务流程为中心以持续的提高组织业务绩效为 ... [详细]
  • TiDB | TiDB在5A级物流企业核心系统的应用与实践
    TiDB在5A级物流企业核心系统的应用与实践前言一、业务背景科捷物流概况神州金库简介二、现状与挑战神州金库现有技术体系业务挑战应对方案三、TiDB解决方案测试迁移收益问题四、说在最 ... [详细]
author-avatar
mobiledu2502930075
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有