ELK日志分析系统

LK是三个开源软件的缩写,分别表示:Elasticsearch , Logstash, Kibana 。

Elasticsearch是个开源分布式搜索引擎,提供搜集、分析、存储数据三大功能。它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等。

Logstash 主要是用来日志的搜集、分析、过滤日志的工具,支持大量的数据获取方式。一般工作方式为c/s架构,client端安装在需要收集日志的主机上,server端负责将收到的各节点日志进行过滤、修改等操作在一并发往elasticsearch上去。

Kibana 也是一个开源和免费的工具,Kibana可以为 Logstash 和 ElasticSearch 提供的日志分析友好的 Web 界面,可以帮助汇总、分析和搜索重要数据日志。

Filebeat隶属于Beats。目前Beats包含四种工具:

    1. Packetbeat(搜集网络流量数据)
    2. Topbeat(搜集系统、进程和文件系统级别的 CPU 和内存使用情况等数据)
    3. Filebeat(搜集文件数据)
    4. Winlogbeat(搜集 Windows 事件日志数据)

参考内容:https://www.extlight.com/2017/09/27/Elasticsearch-%E5%9F%BA%E7%A1%80%E5%85%A5%E9%97%A8/

1.安装elasticsearch

登陆 elasticSearch 官网下载文件:

elasticsearch-6.3.2

因为 Elasticsearch 可以执行脚本文件,为了安全性,默认不允许通过 root 用户启动服务。我们需要新创建用户名和用户组启动服务:

 

#增加 es 组
groupadd es

#增加 es 用户并附加到 es 组
useradd es -g es -p es

#给目录权限
chown -R es:es elasticsearch-5.6.1

#使用es用户
su es

Elasticsearch 只允许本机访问,如果需要远程访问,需要修改其配置文件

vim config/elasticsearch.yml

# 去掉 network.host 前边的注释,将它的值改成0.0.0.0
network.host: 0.0.0.0

 

启动报错:max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]

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

ERROR: bootstrap checks failed
system call filters failed to install; check the logs and fix your configuration or disable system call filters at your own risk
解决方法:

在文件中修改配置:

/etc/security/limits.conf

* soft nofile 10240
* hard nofile 10240

 

修改/etc/sysctl.conf

vim /etc/sysctl.conf
vm.max_map_count=262144

保存,并执行 sysctl -p

在elasticsearch.yml中配置bootstrap.system_call_filter为false,注意要在Memory下面:

bootstrap.memory_lock: false
bootstrap.system_call_filter: false

修改配置后就能正常启动项目了:

 访问地址: http://localhost:9200

安装插件

访问 http://localhost:9200 查看内容显示效果不友好,因此,我们需要安装一个名为 elasticsearch-head 的插件,让内容显示效果比较舒适。

从GitHub 网站下载mobz/elasticsearch-head :

wget https://github.com/mobz/elasticsearch-head/archive/master.zip

unzip master.zip

cd elasticsearch-head-master

安装 node、npm、grunt

#node 下载地址 nodejs.org/ (版本最好不低于 4.5)#解压到安装目录,执行以下命令
ln -s /usr/install/node/node-v6.11.3-linux-x64/bin/node /usr/local/bin/node
#执行完毕后, node –v 查看版本号
ln -s /usr/install/node/node-v6.11.3-linux-x64/bin/npm /usr/local/bin/npm
#执行完毕后, npm –v 查看版本

 

 设置 npm 代理镜像

#执行
npm config set registry https://registry.npm.taobao.org
npm info underscore( 查看某个模块最新发布版本信息,验证是否设置成功)

修改 Elasticsearch 配置文件

#编辑 elasticsearch-5.1.1/config/elasticsearch.yml,
#加入以下内容:
http.cors.enabled: true
http.cors.allow-origin: "*"

 

 修改 Gruntfile.js

进入master目录:

#打开 elasticsearch-head-master/Gruntfile.js,找到
#下面的 connect 属性,新增hostname:‘172.18.210.50’:

connect: {
    server: {
        options: {
            hostname: '172.18.210.50',
            port: 9100,
            base: '.',
            keepalive: true
            }
        }
    }

 执行 npm install

npm install --unsafe-perm

 

 安装 grunt

#安装
npm install –g grunt
#创建软链
ln -s /usr/install/node/node-v6.11.3-linux-x64/bin/grunt /usr/local/bin/grunt

 

执行命令启动 head

grunt server

 

后台启动命令

nohup grunt server &

 

浏览器访问

 

posted @ 2018-08-02 15:46  kangjie  阅读(310)  评论(0编辑  收藏  举报