ELK平台是一套完整的日志集中处理解决方案,将 ElasticSearch、Logstash 和 Kiabana 三个开源工具配合使用, 完成更强大的用户对日志的查询、排序、统计需求。
安装顺序
1.安装es 7.17.12
2.安装kibana 7.17.12
3.安装x-pack
保证以上调试成功后开始下面的安装
4.安装kafka( 1.1.0 版本,对应的是 kafka_2.11-1.1.0.tgz)
5.安装logstash 7.17.12
6.安装filebeat 7.17.12
具体安装
1. es安装(单节点部署)
前提
1.环境准备
#设置Java环境
#如果没有安装,yum -y install java
java -version
openjdk version "1.8.0_131"
OpenJDK Runtime Environment (build 1.8.0_131-b12)
OpenJDK 64-Bit Server VM (build 25.131-b12, mixed mode)
安装
#1.下载es二进制包
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.17.12-linux-x86_64.tar.gz#2.解压安装
tar -xf elasticsearch-7.17.12-linux-x86_64.tar.gz#3.修改elasticsearch主配置文件
cp /elasticsearch-7.17.12/config/elasticsearch.yml /elasticsearch-7.17.12/configelasticsearch.yml.bak
########################################
[root@master config]# grep -Ev '^#' elasticsearch.yml
cluster.name: my-application #--17--取消注释,指定集群名字
node.name: node-1 #--23--取消注释,指定节点名
path.data: /data/es/data #--33--取消注释,指定数据存放路径
path.logs: /data/es/logs #--37--取消注释,指定日志存放路径
bootstrap.memory_lock: false #--43--取消注释,避免es使用swap交换分区
network.host: 0.0.0.0 #--55--取消注释,设置监听地址,0.0.0.0代表所有地址
http.port: 9200 #--59--取消注释,ES 服务的默认监听端口为9200
transport.tcp.port: 9300 #指定es集群内部通信接口
cluster.initial_master_nodes: ["node-1"] # 设置master节点,单机情况设置和上面node-1 名称一致即可#------------------------------------------------
#node.master: true #是否master节点,false为否
#node.data: true #是否数据节点,false为否
#######4.es 性能调优参数
#优化最大内存大小和最大文件描述符的数量
vim /etc/security/limits.conf
......
* soft nofile 65536
* hard nofile 65536
* soft nproc 32000
* hard nproc 32000
* soft memlock unlimited
* hard memlock unlimitedvim /etc/systemd/system.conf
DefaultLimitNOFILE=65536
DefaultLimitNPROC=32000
DefaultLimitMEMLOCK=infinity#5.
#优化elasticsearch用户拥有的内存权限
由于ES构建基于lucene, 而lucene设计强大之处在于lucene能够很好的利用操作系统内存来缓存索引数据,以提供快速的查询性能。
lucene的索引文件segements是存储在单文件中的,并且不可变,对于OS来说,能够很友好地将索引文件保持在cache中,以便快速访问;
因此,我们很有必要将一半的物理内存留给lucene ; 另一半的物理内存留给ES(JVM heap )。
所以, 在ES内存设置方面,可以遵循以下原则:
1.当机器内存小于64G时,遵循通用的原则,50%给ES,50%留给操作系统,供lucene使用
2.当机器内存大于64G时,遵循原则:建议分配给ES分配 4~32G 的内存即可,其它内存留给操作系统,供lucene使用#6.修改一个进程可以拥有的虚拟内存区域的数量
vim /etc/sysctl.conf
#一个进程可以拥有的最大内存映射区域数,参考数据(分配 2g/262144,4g/4194304,8g/8388608)
vm.max_map_count=262144
#使之生效
sysctl -p#7.启动elasticsearch
#前提:es需要非root用户启动
useradd es
su es
#启动:
/elasticsearch-7.17.12/bin/elasticsearch#注:
1. es /config目录下jvm.options文件内可以调整jvm内存分配等其他参数
-Xms256m
-Xmx256m
2. 需要修改es目录为es用户权限
chown -R es.es /elasticsearch-7.17.12
chown -R es.es /data/es/
2.es web 查看
浏览器访问 http://esIP:9200 或者本地访问curl ‘http://localhost:9200/?pretty’
[root@localhost elasticsearch-7.17.12]# curl localhost:9200
{"name" : "node-1","cluster_name" : "my-application","cluster_uuid" : "23xYBSDTR9ahrLoNVYeBQw","version" : {"number" : "7.17.12","build_flavor" : "default","build_type" : "tar","build_hash" : "a813d015ef1826148d9d389bd1c0d781c6e349f0","build_date" : "2023-08-10T05:02:32.517455352Z","build_snapshot" : false,"lucene_version" : "9.7.0","minimum_wire_compatibility_version" : "7.17.0","minimum_index_compatibility_version" : "7.0.0"},"tagline" : "You Know, for Search"
}