Jimliu


一只刚上路的前端程序猿


服务器安装ELK

一.安装java环境

由于Elasticsearch和Logstash的要求,在服务器首先安装jdk 1.8

1.下载

Linux环境下的jdk1.8,请去(官网)中下载你服务器对应jdk的安装文件

2.创建目录

创建/usr/java目录 将jdk文件粘贴至该目录下,并且在该目录下解压。

3.配置java环境变量

编辑 /etc/profile 文件 添加java环境变量

1
2
3
export JAVA_HOME=/usr/java/jdk1.8.0_25 
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin
注意jdk必须是你下载的版本。

二.安装并运行ELasticsearch

1.下载

Elastic官网下载tar安装包

2.解压

1
tar -xzvf elasticsearch-5.5.1.tar.gz

3.运行

1
2
3
cd elasticsearch-5.5.1

./bin/elasticsearch

4.验证

1
crul http://localhost:9200

得到

1
2
3
4
5
6
7
8
9
10
11
12
13
{
name: "oN3cxGg",
cluster_name: "elasticsearch",
cluster_uuid: "VMLohqVCQNClek3iPa000A",
version: {
number: "5.5.1",
build_hash: "19c13d0",
build_date: "2017-07-18T20:44:24.823Z",
build_snapshot: false,
lucene_version: "6.6.0"
},
tagline: "You Know, for Search"
}

这样表明已经安装和启动成功了!

5.问题

a.启动后无法通过服务器所在ip访问:

修改config/elasticsearch.yml 中network.host: '你的服务器ip'

b.修改成ip后无法启动:

1
2
3
4
5
6
7
8
9
$ ./elasticsearch
...
ERROR: bootstrap checks failed
max file descriptors [4096] for elasticsearch process likely too low, increase to at least [65536]
max virtual memory areas vm.max_map_count [65530] likely too low, increase to at least [262144]
[2016-10-31T04:55:45,240][INFO ][o.e.n.Node ] [vJDcSkt] stopping ...
[2016-10-31T04:55:45,249][INFO ][o.e.n.Node ] [vJDcSkt] stopped
[2016-10-31T04:55:45,249][INFO ][o.e.n.Node ] [vJDcSkt] closing ...
[2016-10-31T04:55:45,257][INFO ][o.e.n.Node ] [vJDcSkt] closed

问题1:

1
max file descriptors [4096] for elasticsearch process likely too low, increase to at least [65536]

解决办法: 修改/etc/security/limits.conf文件,添加或修改如下行:

1
2
3
4
* soft nofile 65536
* hard nofile 131072
* soft nproc 2048
* hard nproc 4096

问题2:

1
max virtual memory areas vm.max_map_count [65530] likely too low, increase to at least [262144]

解决办法:修改 /etc/sysctl.conf 文件,添加 “vm.max_map_count”设置

1
vm.max_map_count = 262144

这样就可以成功启动了。

安装logstash

安装步骤与Elasticsearch 基本相同,下载软件包,解压.

1. 启动

a. 新建配置文件 yourname.conf

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
input {
file {
path => "你的日志文件"
start_position => end
}
}
filter {
if ([message] =~ "^debug") {
drop {}
}
}
output {
stdout { codec => json}
elasticsearch { hosts =>["http://127.0.0.1:9200"] }
}

b. 执行命令

1
./bin/logstash -f yourname.conf

最近的文章

logstash解析nginx日志

配置好ELK后,使用logstash读取nginx日志,但是logstash没有默认的nginx日志格式解析插件,需要自己使用正则匹配。这里有一个简便的配置方案: 1.配置nginx日志log format12345678910111213log_format json '{"@times …

于  ELK, linux 继续阅读
更早的文章

JavaScript错误类型

1.Error对象JavaScript解析或执行时,一旦发生错误,引擎就会抛出一个错误对象。JavaScript原生提供一个Error构造函数,所有抛出的错误都是这个构造函数的实例。12var err = new Error('出错了');err.message // "出错了" Error构造函数 …

于  js 继续阅读