当前位置: 首页 > news >正文

ELK日志分析单机系统详解


日志分析ELK平台,由ElasticSearch、Logstash和Kiabana三个开源工具组成。

官方网站: https://www.elastic.co/products

Elasticsearch是个开源分布式搜索引擎,它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等。

Logstash是一个完全开源的工具,他可以对你的日志进行收集、过滤,并将其存储供以后使用(如,搜索)。

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

ELK原理图:

wKioL1jsNbLjc7NOAAExS6LeEAk535.png

如图:Logstash收集AppServer产生的Log,并存放到ElasticSearch集群中,而Kibana则从ES集群中查询数据生成图表,再返回给Browser。

ELK平台搭建

系统环境

System: Centos release 6.7(Final)

ElasticSearch: elasticsearch-5.3.1.tar.gz

Logstash: logstash-5.3.1.tar.gz

Kibana: kibana-5.3.1-linux-x86_64.tar.gz

Java: openjdk version  ”1.8.0_131″



ELK官网下载: https://www.elastic.co/downloads/


wKioL1jsN-ThuU9yAABdBSZzgOc286.png


JAVA环境配置

下载最新版本1.8.0_131

cd /tmp/

wget http://download.oracle.com/otn-pub/java/jdk/8u131-b11/d54c1d3a095b4ff2b6607d096fa80163/jdk-8u131-linux-x64.tar.gz


tar zxf jdk-8u131-linux-x64.tar.gz -C /usr/local/

vim /etc/profile

添加如下内容

  1. JAVA_HOME=/usr/local/jdk1.8.0_131

  2. PATH=$JAVA_HOME/bin:$PATH

  3. CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

  4. export JAVA_HOME PATH CLASSPATH

source /etc/profile


ElasticSearch配置

wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.3.1.tar.gz

  useradd elktest             

tar -zxvf elasticsearch-5.3.1.tar.gz
cd elasticsearch-5.3.1
vi config/elasticsearch.yml


修改以下配置项:

(路径需要先自行创建,并且elktest用户可读写)

cluster.name: elk_cluster
node.name: node0
path.data: /tmp/elasticsearch/data
path.logs: /tmp/elasticsearch/logs
network.host: 192.168.1.5
http.port: 9200


其他的选项保持默认,然后启动ES:

  su elktest             #ES不允许root启动服务 必须是普通用户

./bin/elasticsearch &



配置Logstash

wget https://artifacts.elastic.co/downloads/logstash/logstash-5.3.1.tar.gz

tar -zxvf logstash-5.3.1.tar.gz
cd logstash-5.3.1


vi config/test_es.conf

input {
        file {
        path => "/tmp/test.log"          #测试文件
    }
}
filter {

}
output {
        stdout { codec => rubydebug }
        elasticsearch {
                index => "test_%{+YYYY.MM.dd}"        #索引信息
                hosts => [ "192.168.1.5:9200" ]
        }
}


    ./bin/logstash -f config/test_es.conf  &            #启动服务



配置Kibana:

wget https://artifacts.elastic.co/downloads/kibana/kibana-5.3.1-linux-x86_64.tar.gz

tar -zxvf kibana-5.3.1-linux-x86.tar.gz
cd kibana-5.3.1-linux-x86
vi config/kibana.yml

server.port: 5601
server.host: "192.168.1.5"
elasticsearch.url: http://192.168.1.5:9200
kibana.index: ".kibana.yml"

./bin/kibana


部署中的常见错误及解决方法


1、启动 elasticsearch 如出现异常  can not run elasticsearch as root  

解决方法:创建ES 账户,修改文件夹 文件 所属用户 组


2、启动异常: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


解决方法:在elasticsearch.yml中配置bootstrap.system_call_filter为false,注意要在Memory下面:
bootstrap.memory_lock: false
bootstrap.system_call_filter: false


3、启动后,如果只有本地可以访问,尝试修改配置文件 elasticsearch.yml
中network.host(注意配置文件格式不是以 # 开头的要空一格, : 后要空一格)
为 network.host: 0.0.0.0

默认端口是 9200
注意:关闭防火墙 或者开放9200端口


4、ERROR: bootstrap checks failed
max file descriptors [4096] for elasticsearch process likely too low, increase to at least [65536]
max number of threads [1024] for user [lishang] likely too low, increase to at least [2048]


解决方法:切换到root用户,编辑limits.conf 添加类似如下内容
vi /etc/security/limits.conf 
添加如下内容:
* soft nofile 65536
* hard nofile 131072
* soft nproc 2048
* hard nproc 4096


5、max number of threads [1024] for user [lish] likely too low, increase to at least [2048]

解决方法:切换到root用户,进入limits.d目录下修改配置文件。
vi /etc/security/limits.d/90-nproc.conf 
修改如下内容:
* soft nproc 1024
#修改为
* soft nproc 2048

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

解决方法:切换到root用户修改配置sysctl.conf
vi /etc/sysctl.conf 
添加下面配置:
vm.max_map_count=655360
并执行命令:
sysctl -p
然后,重新启动elasticsearch,即可启动成功。














本文转自super李导51CTO博客,原文链接: http://blog.51cto.com/superleedo/1918771,如需转载请自行联系原作者


相关文章:

  • IDEA Git 配置及使用
  • ssh批量管理分发项目实战介绍与实践
  • Linux防火墙详解(一)
  • Linux内核驱动基础(一)常用宏定义【转】
  • xshell使用xftp传输文件、使用pure-ftpd搭建ftp服务
  • hibernate增删改
  • maven学习:jetty插件与Tomcat插件
  • 聊下 git 多账户问题
  • Datanode Hang with High thread blocked
  • 安装heartbeat
  • .NET Core工程编译事件$(TargetDir)变量为空引发的思考
  • 菜鸟学Linux 第065篇笔记 nfs
  • 更改INSM地址的操作
  • centos 7 yum安装kubernetes cluster 1.0
  • C++字符串string类常用操作详解(一)【初始化、遍历、连接】
  • IE9 : DOM Exception: INVALID_CHARACTER_ERR (5)
  • 【刷算法】从上往下打印二叉树
  • 【跃迁之路】【699天】程序员高效学习方法论探索系列(实验阶段456-2019.1.19)...
  • Android 控件背景颜色处理
  • Git的一些常用操作
  • JavaScript异步流程控制的前世今生
  • Phpstorm怎样批量删除空行?
  • Python中eval与exec的使用及区别
  • ⭐ Unity 开发bug —— 打包后shader失效或者bug (我这里用Shader做两张图片的合并发现了问题)
  • 百度地图API标注+时间轴组件
  • 复杂数据处理
  • 机器人定位导航技术 激光SLAM与视觉SLAM谁更胜一筹?
  • 排序(1):冒泡排序
  • 如何使用 OAuth 2.0 将 LinkedIn 集成入 iOS 应用
  • 入门到放弃node系列之Hello Word篇
  • 使用 @font-face
  • 微信如何实现自动跳转到用其他浏览器打开指定页面下载APP
  • 写代码的正确姿势
  • 由插件封装引出的一丢丢思考
  • 2017年360最后一道编程题
  • # 执行时间 统计mysql_一文说尽 MySQL 优化原理
  • #define 用法
  • #pragma data_seg 共享数据区(转)
  • (2)(2.10) LTM telemetry
  • (5)STL算法之复制
  • (附源码)springboot助农电商系统 毕业设计 081919
  • (三)elasticsearch 源码之启动流程分析
  • (十)DDRC架构组成、效率Efficiency及功能实现
  • (十一)图像的罗伯特梯度锐化
  • (一一四)第九章编程练习
  • (转)es进行聚合操作时提示Fielddata is disabled on text fields by default
  • .Net Core 中间件验签
  • .net wcf memory gates checking failed
  • .NET 反射 Reflect
  • .NET成年了,然后呢?
  • .net的socket示例
  • .Net多线程总结
  • .NET关于 跳过SSL中遇到的问题
  • .net解析传过来的xml_DOM4J解析XML文件
  • .net图片验证码生成、点击刷新及验证输入是否正确