项目需要,最近研究了一下ELK,简单的搭建了一下环境。这里记录ELK环境搭建的基础步骤,后续有深入使用ELK,再继续记录如何深入使用ELK。

这里使用的ELK版本为:6.2.4版。
ELK的作用什么的这里不介绍了,主要记录部署的过程,以及遇到的问题。


文章目录

  • 1. 安装包下载,解压
  • 安装JDK1.8
  • 下载Elasticsearch、kibana、logstash安装包
  • 解压安装包
  • 启动
  • 2. 部署问题,及方案
  • 启动时权限问题
  • 可使用句柄上限太小:
  • 启动内存不够
  • es在同一个目录下启动时
  • elasticsearch启动后只能本地访问
  • Kibana只能本地访问
  • 3、成功示例
  • logstash配置
  • Kibana查看日志


1. 安装包下载,解压

安装JDK1.8

oracle官网下载一个linux版本的jdk1.8的安装包
tar -zxvf jdk-8u131-linux-x64.tar.gz 解压
vim /etc/profile 配置环境变量
重启配置文件: source /etc/profile
java -version 查看JDK版本

文件末尾添加:

export JAVA_HOME=/usr/java/jdk1.8.0_131 (解压路径)
 export JRE_HOME=${JAVA_HOME}/jre
 export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib:$CLASSPATH
 export JAVA_PATH=${JAVA_HOME}/bin:${JRE_HOME}/bin
 export PATH=$PATH:${JAVA_PATH}

下载Elasticsearch、kibana、logstash安装包

[root@server-1 src]# wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.2.4.rpm
[root@server-1 src]# wget https://artifacts.elastic.co/downloads/logstash/logstash-6.2.4.rpm
[root@server-1 src]# wget https://artifacts.elastic.co/downloads/kibana/kibana-6.2.4-x86_64.rpm

解压安装包

rpm -ivh elasticsearch-6.2.4.rpm 
rpm -ivh logstash-6.2.4.rpm 
rpm -ivh kibana-6.2.4-x86_64.rpm

启动

        找到解压路径,进入bin目录夹:nohup ./elasticsearch &启动elasticsearch
        http://ip:9200/ 查看elasticsearch信息

        nohup ./kibana & 启动kibana
        http://ip:5601/访问kibana可视化界面

        logstash快速启动:./bin/logstash -e ‘input { stdin {} } output { stdout {} }’

        如果到这里没出现问题,那么恭喜你,你运气非常好。现实是残酷的

2. 部署问题,及方案

启动时权限问题

can not run elasticsearch as root 不能使用root账号进行启动 (这个报错信息记录得不是很完整)
这里报错是因为Elasticsearch 不允许用root账号,创建一个账号,赋予ES解压路径的权限,在启动ES时,切换到非root账号启动。

adduser xxx		新增非root用户  
 	passwd xxx		更改密码
 	chown -R  用户名  /目录夹  	授权目录权限
 	su xxx 切换用户

可使用句柄上限太小:

[1] bootstrap checks failed
[1]: max file descriptors [65535] for elasticsearch process is too low, increase to at least [65536]
        切换到root用户 。修改文件配置:vim /etc/security/limits.conf
        在文件末尾加上	:
		
启动es的用户 hard nofile 65536
启动es的用户 soft nofile 65536

然后执行 ulimit -Hn 65536
ulimit -Hn查看
重启es

启动内存不够

Java HotSpot(TM) 64-Bit Server VM warning: INFO: os::commit_memory(0x00000000c5330000, 986513408, 0) failed; error='Cannot allocate memory' (errno=12)

 There is insufficient memory for the Java Runtime Environment to continue.
 Native memory allocation (mmap) failed to map 986513408 bytes for committing reserved memory.
An error report file with more information is saved as:
/usr/app/elasticsearch/hs_err_pid4272.log

内存一共就那么大,要么限制,要么腾出空间

减小elasticsearch内存分配:
   	Find / -name jvm.options 找到配置文件 (自动安装解压一般就在etc 的elasticsearch启动夹下)
默认是1g可以改低点 300m
	Vim  jvm.options 
将1g改为300m(根据自己机器内存大小来)
	       -Xms1g
	       -Xmx1g
然后重启

es在同一个目录下启动时

java.lang.IllegalStateException: failed to obtain node locks, tried [[/var/lib/elasticsearch/elasticsearch]] w
ith lock id [0]; maybe these locations are not writable or multiple nodes were started without increasing [node.max_local_storage_nodes] (was [1])?
find / -name elasticsearch.yml 			一般在etc/elasticsearch下
 修改elasticsearch.yml
 在配置文件末尾增加 node.max_local_storage_nodes: 256
 重启

elasticsearch启动后只能本地访问

既:ip:9200访问不了,然后你端口什么都是正常开放的

find / -name elasticsearch.yml
修改network.host : 0.0.0.0
重启

Kibana只能本地访问

etc/kibana/kibana.yml
更改server.host : “0.0.0.0”
重启Kibana

3、成功示例

如果成功熬过第二步解决问题,那么这步将会得到一点点欣慰,因为可以跑起来了。

logstash配置

进入/etc/logstash/conf.d 目录夹下创建elk.conf文件
文件中添加以下内容

input { stdin { } } 
output { elasticsearch { hosts => ["127.0.0.1:9200"] } stdout { codec => rubydebug } }

./logstash -f /usr/logstash/conf.d/elk.conf 配置文件命令重启logstash

随便input些什么东西:

linux搭建es平台 linux部署搭建elk_linux搭建es平台

Kibana查看日志

建索引文本

linux搭建es平台 linux部署搭建elk_安装包_02


linux搭建es平台 linux部署搭建elk_安装包_03


linux搭建es平台 linux部署搭建elk_elasticsearch_04

别问为什么在logstash控制台输出后,什么都没干,就能在kibana可视化界面看到:
       因为logstash配置那一步,配置的output,logstash过滤日志,直推给ES,ES进行存储后,就可以在Kibana中看到了。
       logstash推的时候也有可能不成功,这里需要建一个index什么的,这个后续深入后,再继续更新博客