ELK安装-1-Elasticsearch

本文详细介绍了在CentOS7.6环境下,如何安装和配置ELK Stack(Elasticsearch、Logstash、Kibana)7.7.1版本。包括解压安装步骤、创建非root用户、配置文件修改、启动服务以及解决启动异常问题。文章还提到了三种关闭Elasticsearch的方法,并列举了两个可能遇到的异常情况及其解决方案,如不能以root用户启动和内存限制问题。
摘要由CSDN通过智能技术生成

前言

日志主要包括系统日志和应用程序日志,运维和开发人员可以通过日志了解服务器中软硬件的信息,检查应用程序或系统的故障,了解故障出现的原因,以便解决问题。分析日志可以更清楚的了解服务器的状态和系统安全状况,从而可以维护服务器稳定运行。

系统配置:CentOS7.6
ELK版本:7.7.1
elastic官网地址:https://www.elastic.co/cn/
elastic产品地址:https://www.elastic.co/cn/elastic-stack
yum源地址:https://mirrors.tuna.tsinghua.edu.cn/elasticstack/yum

版本说明:

Elasticsearch、Logstash、Kibana、Filebeat安装的版本号必须全部一致,不然会出现kibana无法显示web页面。

ELK常见的几种架构:

  • 1 Elasticsearch + Logstash + Kibana
    这是一种最简单的架构。这种架构,通过logstash收集日志,Elasticsearch分析日志,然后在Kibana(web界面)中展示。这种架构虽然是官网介绍里的方式,但是往往在生产中很少使用。

  • 2 Elasticsearch + Logstash + filebeat + Kibana
    与上一种架构相比,这种架构增加了一个filebeat模块。filebeat是一个轻量的日志收集代理,用来部署在客户端,优势是消耗非常少的资源(较logstash), 所以生产中,往往会采取这种架构方式,但是这种架构有一个缺点,当logstash出现故障, 会造成日志的丢失。

  • 3 Elasticsearch + Logstash + filebeat + redis(也可以是其他中间件,比如RabbitMQ) + Kibana
    这种架构是上面那个架构的完善版,通过增加中间件,来避免数据的丢失。当Logstash出现故障,日志还是存在中间件中,当Logstash再次启动,则会读取中间件中积压的日志。

一、解压并安装

ELK安装需要以非root用户安装。

1.配置JDK环境

自行下载jdk-11.0.7_linux-x64_bin.rpm
JKD下载地址:https://www.oracle.com/java/technologies/javase-downloads.html

# 解压 & 安装
$ tar -xvf jdk-8u131-linux-x64.tar.gz 
 
$ mv jdk1.8.0_301/ /usr/local/
 
$ ln -s jdk1.8.0_301 jdk1.8
 
# 设置环境变量
 
$ vim /etc/profile
 
export JAVA_HOME=/usr/local/jdk1.8
export CLASSPATH=.:${JAVA_HOME}/jre/lib/rt.jar:${JAVA_HOME}/lib/dt.jar:${JAVA_HOME}/lib/tools.jar
export PATH=$PATH:${JAVA_HOME}/bin
 
 
$ 生效变量
 
$ source /etc/profile

(1)将下载的文件放在服务器如下目录:/usr/elasticsearch/

(2)解压

mkdir /usr/elasticsearch
tar -zxvf elasticsearch-7.13.4-linux-x86.tar.gz -C /usr/elasticsearch/

(3)创建日志文件夹

mkdir -p /data/logs/elasticsearch
mkdir -p /data/elasticsearch/{data,work,plugins,scripts}

(4)创建一个非root用户

ElasticSearch有个比较特殊的地方就是不能用root权限来运行,所以我们这边需要新建一个用户以及赋予对应权限。

a.新建一个elsearch用户组
b.新建用户elsearch,并让他加入elsearch组
c.赋予新用户对elasticsearch-7.13.4和/data/*的操作权限
d.切换用户

groupadd elsearch

useradd elsearch -g elsearch -p elsearch

chown -R elsearch:elsearch elasticsearch-7.13.4
chown -R elsearch:elsearch /data/*

su elsearch

(5)修改配置文件(暂时可以不修改)
因为上面准备独立出日志等相关数据了,所以这边需要修改配置文件

usr/elasticsearch/elasticsearch-7.13.4/config/elasticsearch.yml
添加如下配置:

network.host: 自己ip  //监听访问地址为任意网段,也可以按自己的要求要设置对应的网段
usr/elasticsearch/elasticsearch-7.13.4/config/elasticsearch.yml

cluster.name: tims_es_cluster
node.name: es74_node1
path.data: /data/elasticsearch/data
path.logs: /data/logs/elasticsearch
bootstrap.memory_lock: true
network.host: 自己ip
network.tcp.no_delay: true
network.tcp.keep_alive: true
network.tcp.reuse_address: true
network.tcp.send_buffer_size: 256mb
network.tcp.receive_buffer_size: 256mb
transport.tcp.port: 9300
transport.tcp.compress: true
http.max_content_length: 200mb
http.cors.enabled: true
http.cors.allow-origin: "*"
http.port: 9200
cluster.initial_master_nodes: ["自己ip:9300"]
开启认证登录
#TSL Safety Certification
xpack.security.enabled: true
xpack.license.self_generated.type: basic
xpack.security.transport.ssl.enabled: true
xpack.monitoring.collection.enabled: true
 
#如果没有对应的插件,那么下面两个就不用配置,否则会报错
#path.plugins: /data/elasticsearch/plugins
#path.scripts: /data/elasticsearch/scripts/usr/elasticsearch/elasticsearch-7.13.4/bin 下看到了一堆的可执行文件,其中有一个elasticsearch-env

vim elasticsearch-env
新增:ES_JAVA_HOME="/usr/elasticsearch/elasticsearch-7.13.4/jdk"

设置登录密码

./elasticsearch-setup-passwords interactive   pvoHthEB5tA&Yo82 ###interactive后面跟密码

后续出现十几个 输入项,可输入相同密码
用户名:
elastic
密码:
pvoHthEB5tA&Yo82

(6)启动任务

cd /usr/elasticsearch/elasticsearch-6.4.0/bin/   

sh elasticsearch 或者用sh elasticsearch -d来后台启动

(7)验证是否运行

下面两者需同时满足
a. 输入如下命令,有对应服务出现

ps -ef|grep elasticsearch 

b.在网页输入http//:ip:9200出现下图所示

curl http://192.168.19.13:9200

{
  "name" : "F6U_sFR",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "dTfp6ypnTQW-45WbwqSGTQ",
  "version" : {
    "number" : "6.4.0",
    "build_flavor" : "default",
    "build_type" : "tar",
    "build_hash" : "595516e",
    "build_date" : "2018-08-17T23:18:47.308994Z",
    "build_snapshot" : false,
    "lucene_version" : "7.4.0",
    "minimum_wire_compatibility_version" : "5.6.0",
    "minimum_index_compatibility_version" : "5.0.0"
  },
  "tagline" : "You Know, for Search"
}

二、关闭elasticsearch

需要对ES节点进行重新启动或正常关机的时候,有三种方法可以关闭ES:

1.在控制台中,使用CTRL+C组合键.
2.通过发送TERM信号终止服务器进程.
3.使用REST APIcurl -XPOST ‘http://localhost:9200/_shutdown’
在这里插入图片描述

三、可能异常

问题1:

org.elasticsearch.bootstrap.StartupException: java.lang.RuntimeException: can not run elasticsearch as root
    at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:140) ~[elasticsearch-6.4.0.jar:6.4.0]
    at org.elasticsearch.bootstrap.Elasticsearch.execute(Elasticsearch.java:127) ~[elasticsearch-6.4.0.jar:6.4.0]
    at org.elasticsearch.cli.EnvironmentAwareCommand.execute(EnvironmentAwareCommand.java:86) ~[elasticsearch-6.4.0.jar:6.4.0]
    at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:124) ~[elasticsearch-cli-6.4.0.jar:6.4.0]
    at org.elasticsearch.cli.Command.main(Command.java:90) ~[elasticsearch-cli-6.4.0.jar:6.4.0]
    at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:93) ~[elasticsearch-6.4.0.jar:6.4.0]
    at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:86) ~[elasticsearch-6.4.0.jar:6.4.0]
Caused by: java.lang.RuntimeException: can not run elasticsearch as root
    at org.elasticsearch.bootstrap.Bootstrap.initializeNatives(Bootstrap.java:104) ~[elasticsearch-6.4.0.jar:6.4.0]
    at org.elasticsearch.bootstrap.Bootstrap.setup(Bootstrap.java:171) ~[elasticsearch-6.4.0.jar:6.4.0]
    at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:326) ~[elasticsearch-6.4.0.jar:6.4.0]
    at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:136) ~[elasticsearch-6.4.0.jar:6.4.0]
    ... 6 more

解决方案:按照上面所述,新增用户,不要用root用户启动服务即可
问题2:

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

解决方案:


vi /etc/sysctl.conf 

b.添加如下配置文件
vm.max_map_count=655360

c.执行如下脚本后,重启elasticsearch即可
sysctl -p
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值