侧边栏壁纸
博主头像
程彬彬博主等级

业精于勤 荒于嬉 行成于思 毁于随

  • 累计撰写 101 篇文章
  • 累计创建 26 个标签
  • 累计收到 20 条评论

目 录CONTENT

文章目录
ELK

ELK-7.3安装部署

程彬彬
2019-08-08 / 0 评论 / 0 点赞 / 5,409 阅读 / 0 字 / 正在检测是否收录...
温馨提示:
本文最后更新于 2019-10-28,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。
广告 广告

助力产业智慧升级,云服务器首年88元起,更有千元代金券礼包免费领! 560.300版本B

前沿

1.什么是ELK?

ELK是由Elasticsearch、Logstash、Kibana 三个开源软件的组成的一个组合体 不懂自行查阅 https://www.elastic.co/

2.服务器

1

3.软件环境

centOS7版本 42

由于Elasticsearch、Kibana均不能以root账号运行。 否则报错 17

一.环境配置

1.修改文件限制

vi /etc/security/limits.conf

增加的内容
* hard nofile 65536
* soft nproc 2048
* hard nproc 4096
* soft memlock unlimited
* hard memlock unlimited

1

2.调整进程数

vi /etc/security/limits.d/20-nproc.conf

调整成以下配置
* soft nproc 4096
root soft nproc unlimited

2

3.调整虚拟内存&最大并发连接

vi /etc/sysctl.conf
增加的内容
vm.max_map_count=655360
fs.file-max=655360

3

4.重启系统后生效

reboot

5.开放端口

firewall-cmd --add-port=9200/tcp --permanent
firewall-cmd --add-port=9300/tcp --permanent

重新加载防火墙规则

firewall-cmd --reload

4

6.创建ELK专用用户

创建用户
useradd elk

创建ELK APP目录
mkdir /ext/elasticsearch

创建ELK data目录
mkdir /ext/elasticsearch/data

创建ELK logs目录
mkdir /ext/elasticsearch/logs

5

赋权
chown -R elk:elk /ext/elasticsearch

二.jdk安装

选择最新版本,所以jdk也要是高版本 6

1.下载

https://download.oracle.com/otn/java/jdk/11.0.4+10/cf1bbcbf431a474eb9fc550051f4ee78/jdk-11.0.4_linux-x64_bin.tar.gz 

2.创建文件夹

mkdir /ext/java

3.解压到 /ext/java

sudo tar zvxf jdk-11.0.4_linux-x64_bin.tar.gz -C /ext/java

7

4.进入java文件夹

cd /ext/java

5.编辑配置文件

vi /etc/profile

6.配置环境变量

export JAVA_HOME=/ext/java/jdk-11.0.4
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

8

7.使环境变量生效

source /etc/profile

8.检查是否配置成功

java -version

9

三.Elasticsearch 部署

1.下载

https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.3.0-linux-x86_64.tar.gz

2.解压到 /ext/elasticsearch

sudo tar zvxf elasticsearch-7.3.0-linux-x86_64.tar.gz -C /ext/elasticsearch

3.Elasticsearch节点配置

打开目录
cd /ext/elasticsearch/elasticsearch-7.3.0

10 修改配置 vi config/elasticsearch.yml

主节点配置(192.168.0.201)

#ES集群名称,同一个集群内的所有节点集群名称必须保持一致 cluster.name: ES-Cluster #ES集群内的节点名称,同一个集群内的节点名称要具备唯一性 node.name: ES-master-192.168.0.201 #允许节点是否可以成为一个master节点,ES是默认集群中的第一台机器成为master,如果这台机器停止就会重新选举 node.master: true #允许该节点存储索引数据(默认开启) node.data: false #path可以指定多个存储位置 path.data: /ext/elasticsearch/data #elasticsearch专门的日志存储位置,生产环境中建议elasticsearch配置文件与elasticsearch日志分开存储 path.logs: /ext/elasticsearch/logs #在ES运行起来后锁定ES所能使用的堆内存大小,锁定内存大小一般为可用内存的一半左右;锁定内存后就不会使用交换分区 #如果不打开此项,当系统物理内存空间不足,ES将使用交换分区,ES如果使用交换分区,那么ES的性能将会变得很差 bootstrap.memory_lock: true #es绑定地址,支持IPv4及IPv6,默认绑定127.0.0.1;es的HTTP端口和集群通信端口就会监听在此地址上 network.host: 192.168.0.201 #是否启用tcp无延迟,true为启用tcp不延迟,默认为false启用tcp延迟 network.tcp.no_delay: true #是否启用TCP保持活动状态,默认为true network.tcp.keep_alive: true #是否应该重复使用地址。默认true,在Windows机器上默认为false network.tcp.reuse_address: true #tcp发送缓冲区大小,默认不设置 network.tcp.send_buffer_size: 128mb #tcp接收缓冲区大小,默认不设置 network.tcp.receive_buffer_size: 128mb #设置集群节点通信的TCP端口,默认就是9300 transport.tcp.port: 9300 #设置是否压缩TCP传输时的数据,默认为false transport.tcp.compress: true #设置http请求内容的最大容量,默认是100mb http.max_content_length: 200mb #是否开启跨域访问 http.cors.enabled: true #开启跨域访问后的地址限制,表示无限制 http.cors.allow-origin: "" #定义ES对外调用的http端口,默认是9200 http.port: 9200 #Elasticsearch7新增参数,写入候选主节点的设备地址,来开启服务时就可以被选为主节点,由discovery.zen.ping.unicast.hosts:参数改变而来 discovery.seed_hosts: ["192.168.0.201:9300"] #Elasticsearch7新增参数,写入候选主节点的设备地址,来开启服务时就可以被选为主节点 cluster.initial_master_nodes: ["192.168.0.201:9300"] #Elasticsearch7新增参数,设置每个节点在选中的主节点的检查之间等待的时间。默认为1秒 cluster.fault_detection.leader_check.interval: 15s #Elasticsearch7新增参数,启动后30秒内,如果集群未形成,那么将会记录一条警告信息,警告信息未master not fount开始,默认为10秒 discovery.cluster_formation_warning_timeout: 30s #Elasticsearch7新增参数,节点发送请求加入集群后,在认为请求失败后,再次发送请求的等待时间,默认为60秒 cluster.join.timeout: 120s #Elasticsearch7新增参数,设置主节点等待每个集群状态完全更新后发布到所有节点的时间,默认为30秒 cluster.publish.timeout: 90s #集群内同时启动的数据任务个数,默认是2个 cluster.routing.allocation.cluster_concurrent_rebalance: 32 #添加或删除节点及负载均衡时并发恢复的线程个数,默认4个 cluster.routing.allocation.node_concurrent_recoveries: 32 #初始化数据恢复时,并发恢复线程的个数,默认4个 cluster.routing.allocation.node_initial_primaries_recoveries: 32

11 从节点配置(192.168.0.202)

#ES集群名称,同一个集群内的所有节点集群名称必须保持一致
cluster.name: ES-Cluster
#ES集群内的节点名称,同一个集群内的节点名称要具备唯一性
node.name: ES-Data-192.168.0.202
#允许节点是否可以成为一个master节点,ES是默认集群中的第一台机器成为master,如果这台机器停止就会重新选举
node.master: false
#允许该节点存储索引数据(默认开启)
node.data: true
#path可以指定多个存储位置
path.data: /ext/elasticsearch/data
#elasticsearch专门的日志存储位置,生产环境中建议elasticsearch配置文件与elasticsearch日志分开存储
path.logs: /ext/elasticsearch/logs
#在ES运行起来后锁定ES所能使用的堆内存大小,锁定内存大小一般为可用内存的一半左右;锁定内存后就不会使用交换分区
#如果不打开此项,当系统物理内存空间不足,ES将使用交换分区,ES如果使用交换分区,那么ES的性能将会变得很差
bootstrap.memory_lock: true
#es绑定地址,支持IPv4及IPv6,默认绑定127.0.0.1;es的HTTP端口和集群通信端口就会监听在此地址上
network.host: 192.168.0.202
#是否启用tcp无延迟,true为启用tcp不延迟,默认为false启用tcp延迟
network.tcp.no_delay: true
#是否启用TCP保持活动状态,默认为true
network.tcp.keep_alive: true
#是否应该重复使用地址。默认true,在Windows机器上默认为false
network.tcp.reuse_address: true
#tcp发送缓冲区大小,默认不设置
network.tcp.send_buffer_size: 128mb
#tcp接收缓冲区大小,默认不设置
network.tcp.receive_buffer_size: 128mb
#设置集群节点通信的TCP端口,默认就是9300
transport.tcp.port: 9300
#设置是否压缩TCP传输时的数据,默认为false
transport.tcp.compress: true
#设置http请求内容的最大容量,默认是100mb
http.max_content_length: 200mb
#是否开启跨域访问
http.cors.enabled: true
#开启跨域访问后的地址限制,*表示无限制
http.cors.allow-origin: "*"
#定义ES对外调用的http端口,默认是9200
http.port: 9200
#Elasticsearch7新增参数,写入候选主节点的设备地址,来开启服务时就可以被选为主节点,由discovery.zen.ping.unicast.hosts:参数改变而来
discovery.seed_hosts: ["192.168.0.201:9300"]
#Elasticsearch7新增参数,写入候选主节点的设备地址,来开启服务时就可以被选为主节点
cluster.initial_master_nodes: ["192.168.0.201:9300"]
#Elasticsearch7新增参数,设置每个节点在选中的主节点的检查之间等待的时间。默认为1秒
cluster.fault_detection.leader_check.interval: 15s
#Elasticsearch7新增参数,启动后30秒内,如果集群未形成,那么将会记录一条警告信息,警告信息未master not fount开始,默认为10秒
discovery.cluster_formation_warning_timeout: 30s
#Elasticsearch7新增参数,节点发送请求加入集群后,在认为请求失败后,再次发送请求的等待时间,默认为60秒
cluster.join.timeout: 120s
#Elasticsearch7新增参数,设置主节点等待每个集群状态完全更新后发布到所有节点的时间,默认为30秒
cluster.publish.timeout: 90s
#集群内同时启动的数据任务个数,默认是2个
cluster.routing.allocation.cluster_concurrent_rebalance: 32
#添加或删除节点及负载均衡时并发恢复的线程个数,默认4个
cluster.routing.allocation.node_concurrent_recoveries: 32
#初始化数据恢复时,并发恢复线程的个数,默认4个
cluster.routing.allocation.node_initial_primaries_recoveries: 32

12

注意:主从集群名要一致
cluster.name: es
否则会报错

13 40

4.配置jvm.options

 打开目录
cd /ext/elasticsearch/elasticsearch-7.3.0

修改配置
vi config/jvm.options

把
-Xms1g
-Xmx1g

14 改小 -Xms512m -Xmx512m 15

5.切换用户

切换之前先用root授权
 赋权
chown -R elk:elk /ext/elasticsearch

否则启动报没有权限

16

su elk
一定要切换用户否则启动报错

17

6.Elasticsearch启动

进入elasticsearch根目录
cd /ext/elasticsearch/elasticsearch-7.3.0

启动
./bin/elasticsearch
 ./bin/elasticsearch -d 后台启动

18

7.检查

浏览器访问
 http://192.168.0.201:9200/
出现下面信息说明部署成功

19

四.redis部署

1.下载

http://download.redis.io/releases/redis-5.0.5.tar.gz

2.创建文件夹

mkdir /ext/elk/

3.解压到 /ext/elk

sudo tar zvxf redis-5.0.5.tar.gz -C /ext/elk

4.安装依赖

sudo yum install -y gcc gcc-c++ make jemalloc-devel epel-release

或者离线下载安装

20

rpm -Uvh cpp-4.8.5-36.el7_6.2.x86_64.rpm epel-release-7-11.noarch.rpm gcc-4.8.5-36.el7_6.2.x86_64.rpm gcc-c++-4.8.5-36.el7_6.2.x86_64.rpm glibc-2.17-260.el7_6.6.x86_64.rpm glibc-common-2.17-260.el7_6.6.x86_64.rpm glibc-devel-2.17-260.el7_6.6.x86_64.rpm glibc-headers-2.17-260.el7_6.6.x86_64.rpm kernel-headers-3.10.0-957.27.2.el7.x86_64.rpm libgcc-4.8.5-36.el7_6.2.x86_64.rpm libgomp-4.8.5-36.el7_6.2.x86_64.rpm libmpc-1.0.1-3.el7.x86_64.rpm libstdc++-devel-4.8.5-36.el7_6.2.x86_64.rpm mpfr-3.1.1-4.el7.x86_64.rpm libstdc++-4.8.5-36.el7_6.2.x86_64.rpm

否则报错

21

5.编译&安装

进入目录
cd /ext/elk/redis-5.0.5
编译&安装
sudo make & make install

22

6. 修改redis.conf配置文件

进入
cd /ext/elk/redis-5.0.5
编辑
vi redis.conf


protected-mode no # 关闭保护模式

daemonize yes     # 守护进程模式开启

bind 127.0.0.1 修改为 # bind 127.0.0.1 # 远程访问需要把bind注释掉

23

7.开发端口

firewall-cmd --add-port=6379/tcp --permanent
firewall-cmd --reload

24

8.启动

进入
cd /ext/elk/redis-5.0.5/src/

./redis-server /ext/elk/redis-5.0.5/redis.conf

25

# 9.检测
通过第三方可视化工具连接测试

26

五.Logstash部署

1.下载

https://artifacts.elastic.co/downloads/logstash/logstash-7.3.0.tar.gz

2.创建文件夹

mkdir /ext/elk/logstash
mkdir /ext/elk/logstash/data
mkdir /ext/elk/logstash/logs

3.解压到 /ext/elk

sudo tar zvxf logstash-7.3.0.tar.gz -C /ext/elk

4.移动

mv logstash-7.3.0/ logstash

27

5.修改logstash.yml配置

进入 
cd /ext/elk/logstash/logstash-7.3.0

编辑配置文件
vi config/logstash.yml

增加以下内容
path.data: /ext/elk/logstash/data
path.logs: /ext/elk/logstash/logs

28 其他默认

6.修改input-output.conf配置

进入
cd /ext/elk/logstash/logstash-7.3.0

编辑配置文件
vi config/input-output.conf

增加以下内容
input {
  redis {
    data_type => "list"
    key => "logstash"
    host => "192.168.0.203"
    port => 6379
    threads => 5
   codec => "json"
  }
}
filter {
}
output {
  elasticsearch {
   hosts => ["192.168.0.201:9200","192.168.0.202:9200"]
    index => "logstash-%{type}-%{+YYYY.MM.dd}"
    document_type => "%{type}"
  }
  stdout {
  }
}

29

7.修改jvm.options配置

进入
cd /ext/elk/logstash/logstash-7.3.0

编辑配置文件
vi config/jvm.options
 把
-Xms1g
-Xmx1g

14 改小 -Xms512m -Xmx512m 15

41

8.启动

 进入
cd /ext/elk/logstash/logstash-7.3.0

执行
./bin/logstash -f config/input-output.conf

后台启动 
nohup ./bin/logstash -f config/input-output.conf &

tail -f nohup.out 可查看启动日志

出现下面信息说明启动成功

32

六.Kibana 部署

1.下载

https://artifacts.elastic.co/downloads/kibana/kibana-7.3.0-linux-x86_64.tar.gz

2.创建文件夹

mkdir /ext/elk/kibana

3.解压到 /ext/elk

sudo tar zvxf kibana-7.3.0-linux-x86_64.tar.gz -C /ext/elk
重命名
mv kibana-7.3.0-linux-x86_64 kibana

4.开放端口

firewall-cmd --add-port=5601/tcp --permanent
firewall-cmd --reload

33

5.修改kibana.yml配置

进入
cd /ext/elk/kibana
修改文件
vi config/kibana.yml

增加以下内容
server.port: 5601
server.host: "0.0.0.0" #必须为0.0.0.0 否则浏览器无法访问到
elasticsearch.hosts: ["http://192.168.0.201:9200","http://192.168.0.202:9200"]
![34](https://www.chengbinbin.cn/upload/2019/8/34-22df7042adae440e96f4654a643ec3b9.png)

6.创建用户

创建用户
useradd elk

赋权
chown -R elk:elk /ext/elk

不能使用root ,否则报错

35

7. 启动

进入
cd /ext/elk/kibana

切换用户
su elk
./bin/kibana

36 37

8.问题

    UnhandledPromiseRejectionWarning: Error: Request Timeout after 30000ms
    
    解决:

38
去掉# 时间改大90000 39

0
广告 广告

评论区