在Linux环境下配置ELK(elasticsearch+Kibana)-含网盘下载文件
- 1.下载kibana和ES
- 2.将需要的tar文件上传到Linux服务器
- 3.安装ES和修改配置文件
- 3.1 解压ES
- 3.2 解压JDK
- 3.3 配置JDK的环境变量
- 3.4 使用文件立即生效
- 3.5 测试
- 3.6 修改ES配置文件
- 3.7 启动ES
- 3.8 ES在启动遇到的问题以及解决方案
- 4.安装kibana
- 4.1 解压kibana
- 4.2 进入解压后的kibana中的config
- 4.3 配置kibana的端口号
- 4.4 配置kibana的IP地址
- 4.5 配置ES的IP地址
- 4.6 运行kibana
- 4.7 测试
- 4.8 kibana的三种状态
1.下载kibana和ES
jdk下载 提取码:saya
es下载 提取码:hqmy
kibana下载 提取码:g35b
2.将需要的tar文件上传到Linux服务器
在这里我使用的是xshell的Xftp,至于上传到linux服务器的那个文件夹,可以随意。我上传的是:
/usr/local/apps
- 上传kibana和JDK
PS:因为kibana和ES都是基于java开发的,所以二者都需要JDK环境 - 上传ES和JDK同上
注意: 如果出现上传文件错误的情况时,说明你的目标文件夹也就是apps文件夹的权限不够,解决:
命令:chmod 777 目标文件夹
3.安装ES和修改配置文件
3.1 解压ES
tar -zxvf elasticsearch-6.4.0.tar.gz
3.2 解压JDK
tar -zxvf jdk-8u231-linux-x64.tar.gz
3.3 配置JDK的环境变量
vim /etc/profile
跳转到最后一行,添加以下内容:
export JAVA_HOME=JDK解压的全路径
export PATH=$PATH:$JAVA_HOME/bin
3.4 使用文件立即生效
source /etc/profile
3.5 测试
javac
-g Generate all debugging info
-g:none Generate no debugging info
-g:{lines,vars,source} Generate only some debugging info
-nowarn Generate no warnings
-verbose Output messages about what the compiler is doing
-deprecation Output source locations where deprecated APIs are used
出现上述内容代表JDK配置成功!
3.6 修改ES配置文件
进入ES解压后的文件夹,进入config目录
vim elasticsearch.yml
修改以下配置:
- 修改集群的名称,此处没有具体的限制
cluster.name: my-cluster
- 修改ES的节点名称(节点就是在整个ES集群中某一台服务器)
node.name: node-1
- 配置ES缓存库来存放数据的文件夹(推荐修改到ES的根目录下创建文件夹data)
path.data: /usr/local/apps/elasticsearch-6.4.0/data
- 配置ES所存放的日志的目录(推荐放到ES根目录的logs目录)
path.logs: /usr/local/apps/elasticsearch-6.4.0/logs
- 因为ES中的数据是在内存中,并且内存和硬盘是需要进行交互的,所以ES非常消耗内存,有时候或造成内存跑满的情况,使用配置一个内存机制(内存锁)对计算机的内存进行保护,确保JVM内存不会被跑满。我们不需要这个机制,所以设置成false
bootstrap.memory_lock: false
- 配置ES所绑定服务器的IP地址
network.host:主机IP
- 配置ES的端口号,推荐默认9200端口号,如果想改也可以更改(如果配置的是伪集群,ES的端口必须更改)
http.port:9200
- 配置集群节点
此例子只配置一台ES
discovery.zen.ping.unicast.hosts: ["主机IP"]
如果是一个ES集群
discovery.zen.ping.unicast.hosts: ["主机01IP","主机02IP",....]
3.7 启动ES
启动ES的时候,不能使用root用户,因为root的用户的权限太大,ES防止root用户篡改ES配置文件。所以需要重新创建一个用户:例如:esuser(名字随便)
- 添加用户
useradd 用户名
- 设置密码
passwd 用户名
- 给新用户授权
chown -R 用户名 /ES解压的目录
- 切换到新用户来启动ES
在ES的bin目录下启动
./elasticsearch
看到以下信息表示启动成功
[2020-03-20T09:22:39,716][INFO ][o.e.l.LicenseService ] [node-1] license
[1b33a55a-6017-47e3-ab94-4f44e460f3bc] mode [basic] - valid
- 验证
打开浏览器输入:
主机IP:9200
显示上述图片中的内容代表启动成功!
3.8 ES在启动遇到的问题以及解决方案
问题一:
org.elasticsearch.bootstrap.StartupException: java.lang.RuntimeException:
can not run elasticsearch as root
解决方案:同上,新创建一个用户
问题二:
java.lang.UnsupportedOperationException: seccomp unavailable:
CONFIG_SECCOMP not compiled into kernel, CONFIG_SECCOMP and
CONFIG_SECCOMP_FILTER are needed
在ES运行期间,需要去加载CONFIG_SECCOMP和CONFIG_SECCOMP_FILTER,去加载这些
配置的时候发现CentOs6.X默认没有。
解决方案:
不让ES去加载CONFIG_SECCOMP,此时我们需要修改elasticsearch.yml配置文件
在config文件夹中
vim elasticsearch.yml
在最后一行添加:
bootstrap.system_call_filter: false
问题三:
max file descriptors [4096] for elasticsearch process is too low,
increase to at least [65536]
系统默认给所有程序配置文件描述器(java是一个解释性语言)默认给了4096,但是对ES来说 不够用,ES至少需要65536
解决方案:
去修改linux为文件所提供的最大线程数
vim /etc/security/limits.conf
* soft nproc 655350
* soft nofile 655350
* hard nproc 655350
* hard nofile 655350
问题四:
max number of threads [1024] for user [esuser] is too low,
increase to at least [4096]
linux默认给所有用户所提供的,可操作最大线程数是1024,但是esuser这个用户是需要操作ES的对于ES来说就不够,ES最低需要4096
解决方案:
vim /etc/security/limits.d/90-nproc.conf
* soft nproc 4096
root soft nproc unlimited
问题五:
max virtual memory areas vm.max_map_count [65530] is too low,
increase to at least [262144]
Linux系统所默认分配的虚拟内存是65530,ES不够用,至少要增加到262144
解决方案:
vim /etc/sysctl.conf
使用大写G跳转到文本的末尾,添加:
vm.max_map_count = 262144
让配置立即生效
sysctl -p
问题六:
.Exception in thread "main" java.nio.file.AccessDeniedException:
/home/apps/elasticsearch-6.4.0/config/jvm.options
这个异常之所以会出现,是因为之前使用root运行过一次。ES就会在data目录中生 成节点的数据信息。
解决方案:
切换root用户将node中的信息删除。如果在之前没有使用过root用户启动ES,此问题不会出现。
4.安装kibana
4.1 解压kibana
tar -zxvf kibana-6.4.0-linux-x86_64.tar.gz
4.2 进入解压后的kibana中的config
vim kibana.yml
4.3 配置kibana的端口号
**注意:**一定不要和ES的端口号一致,默认为5601
server.port:5601
4.4 配置kibana的IP地址
**注意:**必须要带上双引号,否则不生效
server.host: "主机IP"
4.5 配置ES的IP地址
**注意:**一定要带双引号和http://
elasticsearch.url: "http://ES主机IP:9200"
4.6 运行kibana
在bin目录下运行
./kibana
4.7 测试
在浏览器地址栏中输入:
主机IP:5601
显示上述图片,代表启动成功!
4.8 kibana的三种状态
红色:报错状态,程序已经不能正常运行了
绿色:一切正常
黄色:有些配置违反了kibana的规定,可能会出现问题,但是目前不影响kibana的正常运行。