之前搭建过elk,用于分析日志,无奈服务器资源不足,开了多个Logstash之后发现占用内存过高,于是现在改为Filebeat做日志收集,记录一下搭建过程和遇到问题的解决方案。
第一步 , 安装jdk8 。
tar -zxvf jdk-8u112-linux-x64.tar.gz
设置环境变量
vi /etc/profile
在profile文件下,添加
#set java environment JAVA_HOME=/usr/local/java/jdk1.8.0_112 JRE_HOME=$JAVA_HOME/jre CLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin export JAVA_HOME JRE_HOME CLASS_PATH PATH
添加之后,执行
source /etc/profile
使配置生效。 然后输入
java -version
检验是否成功。
成功进入第二步安装Elasticsearch:
下载 Elasticsearch 5.1.1 的安装包, https://www.elastic.co/downloads/past-releases/elasticsearch-5-1-1
执行
rpm -ivh elasticsearch-5.1.1.rpm
然后看到
[root@localhost elk]# rpm -ivh elasticsearch-5.1.1.rpm warning: elasticsearch-5.1.1.rpm: Header V4 RSA/SHA512 Signature, key ID d88e42b4: NOKEY Preparing... ########################################### [100%] Creating elasticsearch group... OK Creating elasticsearch user... OK 1:elasticsearch ########################################### [100%] ### NOT starting on installation, please execute the following statements to configure elasticsearch service to start automatically using chkconfig sudo chkconfig --add elasticsearch ### You can start elasticsearch service by executing
说明安装成功。 然后我们来执行一下, service elasticsearch start 。
安装后各个目录说明
#/usr/share/elasticsearch/ 主目录
#/var/log/elasticsearch log日志
#/etc/sysconfig/elasticsearch 配置elasticsearch环境变量
#/etc/elasticsearch/elasticsearch.yml 配置elasticsearch集群
#/etc/elasticsearch/jvm.options 配置elasticsearch的jvm参数
#/etc/elasticsearch/log4j2.properties 配置elasticsearch日志参数
可能出现各种报错,解决方案参考 : http://blog.csdn.net/cardinalzbk/article/details/54924511
sudo vim /etc/sysctl.conf 添加 vm.max_map_count=262144 sudo sysctl -p
sudo vim /etc/security/limits.conf * soft nofile 65536 * hard nofile 65536
然后,我们对Elasticsearch集群配置文件进行配置 。
vi /etc/elasticsearch/elasticsearch.yml
解开注释
# ---------------------------------- Network ----------------------------------- # # Set the bind address to a specific IP (IPv4 or IPv6): # network.host: 0.0.0.0 # # Set a custom port for HTTP: # http.port: 9200
重启服务 : service elasticsearch restart ,这时来看一下Elasticsearch用了我们多少内存,毕竟这次就是为了解决资源不足的问题的,top一下
嗯。。。 只剩几十M内存了,什么情况? 来,看一下jvm配置。
/etc/elasticsearch/jvm.options
好,看到了,默认
-Xms2g
-Xmx2g
我们先测试测试,设个500m试试。 重启,ok,正常启动~
Elasticsearch设置ok。
第三步,下载logstash-5.1.1 , 也是下载rpm,然后安装.
然后依旧,主体在 /etc/logstash下, 我们先进去bin, 执行
./logstash -e 'input { stdin { } } output { stdout {} }'
然后再随便输点东西,就能看到,我们输入啥,它就输出啥~
[root@localhost bin]# ./logstash -e 'input { stdin { } } output { stdout {} }' 112 WARNING: Could not find logstash.yml which is typically located in $LS_HOME/config or /etc/logstash. You can specify the path using --path.settings. Continuing using the defaults Could not find log4j2 configuration at path /usr/share/l