rpm包部署elk7.3

ELK-7.3本地部署

一、简介

1、logstash

   logstash是一个数据分析软件,主要目的是分析log日志。整一套软件可以当作一个MVC模型,logstash是controller层,Elasticsearch是一个model层,kibana是view层。首先将数据传给logstash,它将数据进行过滤和格式化(转成JSON格式),然后传给Elasticsearch进行存储、建搜索的索引,kibana提供前端的页面再进行搜索和图表可视化,它是调用Elasticsearch的接口返回的数据进行可视化。logstash和Elasticsearch是用Java写的,kibana使用node.js框架。

   logstash架构

二、logstash原理和使用

  ogstash工作时,主要设置3个部分的工作属性。
  input:设置数据来源
  filter:可以对数据进行一定的加工处理过滤,但是不建议做复杂的处理逻辑。这个步骤不是必须的
  output:设置输出目标

2、elasticsearch

  Elasticsearch 是一个分布式、高扩展、高实时的搜索与数据分析引擎。它能很方便的使大量数据具有搜索、分析和探索的能力。充分利用Elasticsearch的水平伸缩性,能使数据在生产环境变得更有价值。Elasticsearch 的实现原理主要分为以下几个步骤,首先用户将数据提交到Elasticsearch 数据库中,再通过分词控制器去将对应的语句分词,将其权重和分词结果一并存入数据,当用户搜索数据时候,再根据权重将结果排名,打分,再将返回结果呈现给用户。

3、kibana

  Kibana是一个针对Elasticsearch的开源分析及可视化平台,用来搜索、查看交互存储在Elasticsearch索引中的数据。使用Kibana,可以通过各种图表进行高级数据分析及展示。

  Kibana让海量数据更容易理解。它操作简单,基于浏览器的用户界面可以快速创建仪表板(dashboard)实时显示Elasticsearch查询动态。

二、环境部署

1、部署规划

应用 版本 节点
logstash 7.3 192.168.11.11
elasticsearch 7.3 192.168.11.11、192.168.11.12、192.168.11.13
kibana 7.3 192.168.11.13

安装包下载地址:链接:https://pan.baidu.com/s/17BeXEOIAWCTcr-qCI_1cpA 提取码:9uk4

2、环境准备

(1)修改文件限制
vi /etc/security/limits.conf

增加的内容
root soft nofile 65535
root hard nofile 65535
* soft nofile 65535
* hard nofile 65535
* soft nproc 65535
* hard nproc 65535
* soft memlock unlimited
* hard memlock unlimited
(2)调整进程数
vi /etc/security/limits.d/20-nproc.conf

调整成以下配置
*          soft    nproc     65535
root       soft    nproc     unlimited
(3)调整虚拟内存&最大并发连接
vi /etc/sysctl.conf
增加的内容
vm.max_map_count=655360
fs.file-max=655360
(4)重启系统后生效
reboot
(5)开放端口
firewall-cmd --add-port=9200/tcp --permanent
firewall-cmd --add-port=9300/tcp --permanent
重新加载防火墙规则
firewall-cmd --reload
或
systemctl stop firewalld
systemctl enable firewalld
(6)开放创建存储目录
mkdir /data01/elk/

3、java环境部署

yum -y install  jdk-8u162-linux-x64.rpm
#查看java版本
java -version

4、logstash部署

#1、rpm包安装
yum -y install logstash-7.3.0.rpm

#2、修改配置文件
cp logstash.yml{,.bak}
#改后 logstash.yml
path.data: /data01/elk/logstash/data
pipeline.workers: 4
pipeline.batch.size: 1024
path.config: /data01/elk/logstash/config/conf.d
path.logs: /data01/elk/logstash/logs
http.host: "0.0.0.0"
http.port: 9600

#改后 startup.options文件  可选择不改
LS_PIDFILE=/data01/elk/logstash/logstash.pid
LS_GC_LOG_FILE=/data01/elk/logstash/logs/gc.log

#、可根据主机内存大小,适当调整一下参数
vim   jvm.options
-Xms1g
-Xmx1g

  创建对应的路径

mkidr  -pv /data01/elk/logstash/{data,logs,config}
chown -R 1000:1000 /data01/elk/logstash

  启动logstash

systemctl start logstash
systemctl enable logstash

5、elasticsearch部署

  本次是3master3节点的部署

安装elasticsearch

yum -y install elasticsearch

配置elasticsearch

#elasticsearch.yml
cluster.name: elk
node.name: elk02
# 自定义属性添加到节点上
node.attr.rack: r1

node.master: true
#node.voting_only: true
node.data: true
#node.ingest: true
#node.ml: false
#开启监控xpack
xpack.monitoring.enabled: true
#机器学习关闭
xpack.ml.enabled: false
# 是否使用http协议对外提供服务,默认为true,开启
#http.enabled: true

cluster.remote.connect: false
path.data: /data01/elasticsearch/lib,/data02/elasticsearch/lib
path.logs: /data01/elasticsearch/logs
#锁定物理内存地址,防止es内存被交换出去,也就是避免es使用swap交换分区,频繁的交换,会导致IOPS变高
bootstrap.memory_lock: true
network.host: 192.168.11.12
http.port: 9200
##discovery.zen.ping.unicast.hosts旧版配置
discovery.seed_hosts: ["192.168.11.11","192.168.11.12","192.168.11.13"]
#Elasticsearch7新增参数,写入候选主节点的设备地址,来开启服务时就可以被选为主节点
cluster.initial_master_nodes: ["192.168.11.11","192.168.11.12","192.168.11.13"]
# 设置集群中N个节点启动时进行数据恢复,默认为1。
gateway.recover_after_nodes: 2
#设置是否可以通过正则或者_all删除或者关闭索引
action.destructive_requires_name: true

network.tcp.no_delay: true
network.tcp.keep_alive: true
network.tcp.reuse_address: true
network.tcp.send_buffer_size: 128mb
network.tcp.receive_buffer_size: 128mb
#transport.tcp.port: 9301
transport.tcp.compress: true
http.max_content_length: 200mb
#开启跨域访问
http.cors.enabled: true
http.cors.allow-origin: "*"

cluster.fault_detection.leader_check.interval: 15s
discovery.cluster_formation_warning_timeout: 30s
cluster.join.timeout: 120s
cluster.publish.timeout: 90s
cluster.routing.allocation.cluster_concurrent_rebalance: 16
cluster.routing.allocation.node_concurrent_recoveries: 16
cluster.routing.allocation.node_initial_primaries_recoveries: 16

  另外两个只需要修改node.name ,network.host为相应的节点

让init启动的程序解除限制,和系统limit一致

sed -i  39c\LimitMEMLOCK=infinity   /usr/lib/systemd/system/elasticsearch.service

创建相应目录

mkdir -pv /data01/elk/elasticsearch/{lib,logs}
chown -R elasticsearch:elasticsearch /data01/elk/elasticsearch

启动elasticsearch服务

#重载系统服务
systemctl daemon-reload
systemctl start elasticsearch
systemctl enable elasticsearch

6、kibana部署

安装kibana

yum -y install  kibana-7.3.0-x86_64.rpm

配置kibana

  注:修改配置最好先备份后修改

#vim kibana.yml
server.port: 5601
server.host: "192.168.11.13"
elasticsearch.hosts: ["http://192.168.11.12:9200"]
i18n.locale: "zh-CN"

启动kibana

systemctl start kibana
systemctl enable kibana

排错可通过以下方式排查

journalctl -u elasticsearch -f
tail -500f /data01/elk/elasticsearch/logs/elk.log

猜你喜欢

转载自blog.51cto.com/14268442/2497389