使用ELK(Logstash+ElasticSearch+Kibana)搭建统一日志分析平台
一、背景分析
为了应付我们日益复杂的业务需求,系统设计趋近模块化,每个模块各司其职由不同人员开发,打印的日志格式也大都不一样,有些面向用户的接口模块还可能会多台一起做负载,这样就给运维带来了很大的工作量,定位一个问题需要四处翻日志,现有ELK这三个开源的部件(从日志的收集,统一存储,多维度展现等多个方面)为我们提供了一整套的日志分析解决方案。
二、关系流程图
三、工具准备
工具当然要从官网获取!地址如下:https://www.elastic.co/cn/products
附上我自己的版本列表注意:jdk需要1.8版本
四、ElasticSearch部署
解压安装包:
[root@wuhan-216 local]# unzip elasticsearch-6.2.4.zip
修改配置文件
[root@wuhan-216 elasticsearch-6.2.4]# vim config/elasticsearch.yml
这里只列出我简单修改的单机配置
#es名称
cluster.name: my-elasticsearch
#节点名称
node.name: node-1
#索引数据存放地址
path.data: /path/to/data
#es日志存放地址
path.logs: /path/to/logs
#绑定的ip(一般为本机ip)配置这个才能让别人访问到
network.host: *.*.*.*
#绑定的端口
http.port: 9200
#部分操作系统启动报错,增加如下设置
bootstrap.memory_lock: false
bootstrap.system_call_filter: false
由于es的安全策略,不允许从root启动,这里我们要创建一个用户
#添加用户
groupadd
useradd es -g es
passwd es
#给该用户分配操作权限
chown -R es:es elasticsearch-6.2.4
#给该用户分配日志和数据操作的权限
chown -R es:es path
启动服务
[root@wuhan-216 bin]# ./elasticsearch
Exception in thread "main" java.lang.UnsupportedClassVersionError: org/elasticsearch/tools/launchers/JavaVersionChecker : Unsupported major.minor version 51.0
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClassCond(ClassLoader.java:632)
at java.lang.ClassLoader.defineClass(ClassLoader.java:616)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:283)
at java.net.URLClassLoader.access$000(URLClassLoader.java:58)
at java.net.URLClassLoader$1.run(URLClassLoader.java:197)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
Could not find the main class: org.elasticsearch.tools.launchers.JavaVersionChecker. Program will exit.
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClassCond(ClassLoader.java:632)
at java.lang.ClassLoader.defineClass(ClassLoader.java:616)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:283)
at java.net.URLClassLoader.access$000(URLClassLoader.java:58)
at java.net.URLClassLoader$1.run(URLClassLoader.java:197)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
Could not find the main class: org.elasticsearch.tools.launchers.JavaVersionChecker. Program will exit.
看到如下错误提示:有经验的同学应该对此不陌生,报这个错一般都是