基于Docker在CentOS7部署ELK
ELK是Elasticsearch、Logstash、Kibana三个组件首字母
Elasticsearch: 全文检索工具
Kibana:页面管理工具,可以通过Kibana的管理界面操作Elasticsearch
Logstash:日志收集的工具,通过此工具可以实现日志内容收集及格式转换
为Elasticsearch提供系统配置
Elasticsearch在CentOS7中安装部署的时候,需要系统为其提供若干系统配置。如:应用可启动的线程数、应用可以在系统中划分的虚拟内存、应用可以最多创建多少文件等
修改限制信息
vim /etc/security/limits.conf
Linux默认来说,一般限制应用最多创建的文件是65535个。但是Elasticsearch至少需要65536的文件创建权限。修改后的内容为:
* soft nofile 65536
* hard nofile 65536
*代表任意用户,soft表示内存中虚拟文件(软文件),hard表示落地到磁盘的具体文件(硬文件), nofile表示权限,65536表示个数
修改线程开启限制
vim /etc/security/limits.conf
默认的Linux限制root用户开启的进程可以开启任意数量的线程,其他用户开启的进程可以开启1024个线程。必须修改限制数为4096+。因为Elasticsearch至少需要4096的线程池预备。Elasticsearch在5.x版本之后,强制要求在Linux中不能使用root用户启动Elasticsearch进程。所以必须使用其他用户启动Elasticsearch进程才可以
* soft nproc 4096
root soft nproc unlimited
Linux低版本内核为线程分配的内存是128K。4.x版本的内核分配的内存更大。如果虚拟机的内存是1G,最多只能开启3000+个线程数。至少为虚拟机分配1.5G以上的内存,建议2G以上
修改完成后如下图所示:
修改系统控制权限
vim /etc/sysctl.d/99-sysctl.conf
系统控制文件是管理系统中的各种资源控制的配置文件。Elasticsearch需要开辟一个65536字节以上空间的虚拟内存。Linux默认不允许任何用户和应用直接开辟虚拟内存,新增内容为:
vm.max_map_count=655360
使用以下命令,让系统控制权