热门标签 | 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是如何收集日志的,请继续关注后续更新内容




推荐阅读
  • 为了在Hadoop 2.7.2中实现对Snappy压缩和解压功能的原生支持,本文详细介绍了如何重新编译Hadoop源代码,并优化其Native编译过程。通过这一优化,可以显著提升数据处理的效率和性能。此外,还探讨了编译过程中可能遇到的问题及其解决方案,为用户提供了一套完整的操作指南。 ... [详细]
  • 在ElasticStack日志监控系统中,Logstash编码插件自5.0版本起进行了重大改进。插件被独立拆分为gem包,每个插件可以单独进行更新和维护,无需依赖Logstash的整体升级。这不仅提高了系统的灵活性和可维护性,还简化了插件的管理和部署过程。本文将详细介绍这些编码插件的功能、配置方法,并通过实际生产环境中的应用案例,展示其在日志处理和监控中的高效性和可靠性。 ... [详细]
  • HBase在金融大数据迁移中的应用与挑战
    随着最后一台设备的下线,标志着超过10PB的HBase数据迁移项目顺利完成。目前,新的集群已在新机房稳定运行超过两个月,监控数据显示,新集群的查询响应时间显著降低,系统稳定性大幅提升。此外,数据消费的波动也变得更加平滑,整体性能得到了显著优化。 ... [详细]
  • java电商,java电商项目面试题
    本文目录一览:1、为什么很多商家选择Java商城系统? ... [详细]
  • 微服务应用性能如何?APM监控工具来告诉你
    当微服务系统越来越庞大,各个服务间的调用关系也变得越来越复杂,需要一个工具来帮忙理清请求调用的服务链路。之前使用的是Sleuth+Zipkin的解决方案,最近发现应 ... [详细]
  • 搞懂 ELK 并不是一件特别难的事
    点击下方“民工哥技术之路”,选择“设为星标”回复“1024”获取独家整理的学习资料!本篇文章主要介绍ELK的一些框架组成,原理和实践&#x ... [详细]
  • Python 数据可视化实战指南
    本文详细介绍如何使用 Python 进行数据可视化,涵盖从环境搭建到具体实例的全过程。 ... [详细]
  • PTArchiver工作原理详解与应用分析
    PTArchiver工作原理及其应用分析本文详细解析了PTArchiver的工作机制,探讨了其在数据归档和管理中的应用。PTArchiver通过高效的压缩算法和灵活的存储策略,实现了对大规模数据的高效管理和长期保存。文章还介绍了其在企业级数据备份、历史数据迁移等场景中的实际应用案例,为用户提供了实用的操作建议和技术支持。 ... [详细]
  • 服务器部署中的安全策略实践与优化
    服务器部署中的安全策略实践与优化 ... [详细]
  • 优化后的标题:深入探讨网关安全:将微服务升级为OAuth2资源服务器的最佳实践
    本文深入探讨了如何将微服务升级为OAuth2资源服务器,以订单服务为例,详细介绍了在POM文件中添加 `spring-cloud-starter-oauth2` 依赖,并配置Spring Security以实现对微服务的保护。通过这一过程,不仅增强了系统的安全性,还提高了资源访问的可控性和灵活性。文章还讨论了最佳实践,包括如何配置OAuth2客户端和资源服务器,以及如何处理常见的安全问题和错误。 ... [详细]
  • 本文探讨了利用Python编程语言开发自动化脚本来实现文件的全量和增量备份方法。通过详细分析不同备份策略的特点,文章介绍了如何使用Python标准库中的os和shutil模块来高效地管理和执行备份任务。此外,还提供了示例代码和最佳实践,帮助读者快速掌握自动化备份技术,确保数据的安全性和完整性。 ... [详细]
  • 解读中台架构:微服务与分布式技术的区别及应用
    中心化与去中心化是长期讨论的话题。中心化架构的优势在于部署和维护相对简单,尤其在服务负载较为稳定的情况下,能够提供高效稳定的性能。然而,随着业务规模的扩大和技术需求的多样化,中心化架构的局限性逐渐显现,如扩展性和故障恢复能力较差。相比之下,微服务和分布式技术通过解耦系统组件,提高了系统的灵活性和可扩展性,更适合处理复杂多变的业务场景。本文将深入探讨中台架构中微服务与分布式技术的区别及其应用场景,帮助读者更好地理解和选择适合自身业务的技术方案。 ... [详细]
  • 技术日志:Ansible的安装及模块管理详解 ... [详细]
  • 深入探索Node.js新框架:Nest.js第六篇
    在本文中,我们将深入探讨Node.js的新框架Nest.js,并通过一个完整的示例来展示其强大功能。我们将使用多个装饰器创建一个基本控制器,该控制器提供了多种方法来访问和操作内部数据,涵盖了常见的CRUD操作。此外,我们还将详细介绍Nest.js的核心概念和最佳实践,帮助读者更好地理解和应用这一现代框架。 ... [详细]
  • 人人租机作为国内领先的信用免押租赁平台,为企业和个人提供全方位的新租赁服务。通过接入支付宝小程序功能,该平台实现了从零到百的迅猛增长,成为全国首家推出“新租赁小程序”开发服务的阿里巴巴小程序服务商(ISV)。这一创新举措不仅提升了用户体验,还显著增强了平台的市场竞争力。 ... [详细]
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社区 版权所有