ELK日志分析系统(一)

来源:互联网 发布:2016淘宝开店教程 编辑:程序博客网 时间:2024/06/04 22:47
本人java开发菜鸟一枚,这篇博客主要记录小菜学习ELK的历程,希望能帮到想要学习ELK的兄弟们,如果内容中有不对或者不好的地方,请各位批评指正。话不多说,直接上货。

一、资源准备

  1. JDK1.8-linux-x64
  2. Elasticsearch-6.0.0
  3. Logstash-6.0.0
  4. Kibana-6.0.0
  5. FileBeat-linux-x64
  6. node-v8.9.1-linux-x64.tar.xz

二、安装

(一)安装JDK

1.将下载好的jdk包放置到linux服务器,我的是放在/usr/local/src/java下,然后,解压。

   tar -xvf jdk-8u121-linux-x64.tar.gz

2.配置环境变量

    vim /etc/profile

添加如下内容到末尾:

export JAVA_HOME='/usr/local/src/java/jdk1.8.0_121'export JAVA_BIN='/usr/local/src/java/jdk1.8.0_121'export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jarexport PATH=$PATH:$JAVA_HOME/binexport JAVA_HOME JAVA_BIN CLASSPATH PATH

然后保存退出(:wq)

3.刷新环境变量,使之生效

source /etc/profile

4.检验

java -version

提示jdk版本信息如下:

java version "1.8.0_121"Java(TM) SE Runtime Environment (build 1.8.0_121-b13)Java HotSpot(TM) 64-Bit Server VM (build 25.121-b13, mixed mode)

至此,JDK安装完毕!

(二)安装Elasticsearch
1.创建elasticsearch用户(elasticsearch不允许root用户启动)

adduser  elasticsearch

修改密码:

passwd  elasticsearch

2.使用elasticsearch用户安装elasticsearch
①解压elasticsearch,以下将ES的解压目录标记为:ES_HOME

tar -xvf elasticsearch-5.5.1.tar.gz

②修改ES_HOME/config/elasticsearch.yml

vim elasticsearch.yml

修改参数如下,注意该配置顺序分先后:
1.集群名称:cluster.name: elk
2.节点名称:node.name: single-node(集群中的各个节点名称都不能相同)
3.数据目录:path.data: /path/to/data(若没有特殊数据路径,注释掉该参数,默认使用ES_HOME/data)
4.日志目录:#path.logs: /path/to/logs(若没有特殊数据路径,注释掉该参数,默认使用ES_HOME/logs)
5.锁定物理内存设置:bootstrap.memory_lock: false(注释掉该参数,默认使用false)
6.系统过滤器调用设置:bootstrap.system_call_filter: false
7.节点主机IP:network.host: 10.0.1.215
8.节点端口:http.port: 9200
9.数据传输端口:transport.tcp.port: 9300
10.集群节点获取类型:discovery.type: single-node(注意该配置只在单节点集群中使用,多节点集群不能使用,使用默认类型)
11.集群节点列表:discovery.zen.ping.unicast.hosts: [“host1:port1”, “host2: port2”](该配置在多节点集群中使用,单节点不适用该配置。其中,host表示集群中其他节点的ip地址,port表示集群中其他节点的数据传输端口):
12.集群有效节点最小值:discovery.zen.minimum_master_nodes: 3(该配置在多借点集群中使用,单节点不适用。其中,该配置的值不能大于总节点数量,建议使用 [节点数量/2 + 1] 来计算该配置值)
13.是否允许跨源 REST 请求:http.cors.enabled: true(如果不配置该项,head插件连接ES可能会连接不上)
14.允许跨源REST请求的地址:http.cors.allow-origin: “*”
(在开启允许跨源 REST 请求之后,才使用该配置,不然不能使用。其中”*”标识允许所有的跨源访问)
15.最大的http请求长度:http.max_initial_line_length: 10m

3.启动和关闭elasticsearch
以elasticsearch用户登录
启动:

cd $ES_HOME./bin/elasticsearch -d -p pid

关闭:

cd $ES_HOMEkill cat pid`

4.检查elasticsearch安装
http://localhost:9200
返回如下结果,表示安装成功

{  "name" : "node-1",  "cluster_name" : "slinceob",  "cluster_uuid" : "aNf85FB3T9yNMRkyGXcWWQ",  "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"}

至此,elasticsearch安装成功!

(三)安装Logstash

1.将下载好的资源包解压:

tar -xvf logstash-5.5.1.tar.gz

2.logstash的安装比较简单,直接解压,运行即可。不妨做一个简单的测试

cd logstash-5.5.1./bin/logstash -e 'input { stdin { } } output { stdout {} }'

待logstash启动起来后,在控制台输入:

hello elk

你会看到如下信息:

2013-11-21T01:22:14.405+0000 0.0.0.0 hello elk

3.将logstash作为服务启动

(三)安装kibana
1.将下载好的资源包解压:

tar -xvf kibana-5.5.1-linux-x86_64.tar.gz

2.进入kibana解压目录,修改配置文件config/kibana.yml。

kibana服务器端口号:server.port: 5601kibana服务器ip地址:server.host: "10.10.10.102"kibana连接ES地址:elasticsearch.url: "http://10.10.10.102:9200"

3.启动

nohup  bin/kibana &>/dev/null & 

4.查看是否启动
打开浏览器,访问:http://IP:5601即可。

(四)附:安装head插件(依赖与node.js)
1.将下载好的资源包解压

xz -d  node-v8.9.1-linux-x64.tar.xztar -xvf node-v8.9.1-linux-x64.tar

2.做软连接

cd  ./node-v6.11.1-linux-x64/binln -s /home/elasticsearch/node-v8.9.1-linux-x64/bin/node /usr/local/bin/nodeln -s  /home/elasticsearch/node-v8.9.1-linux-x64/lib/node_modules/npm/bin/npm-cli.js    /usr/local/bin/npm

3.安装验证

npm -version

出现版本号后,表示安装成功。

4.安装head插件

git clone git://github.com/mobz/elasticsearch-head.gitcd elasticsearch-headnpm installnpm run start

5.验证head安装
http://localhost:9100/

(五)filebeat安装
1.将下载好的资源包解压
tar -xvf filebeat-6.0.0-x86_64.tar.gz
2.配置fields.yml

至此,安装完成。