用新浪微博做网站,看课学校网站建设,简单网站制作实验报告,wordpress 图像描述背景 日志系统主要包括系统日志#xff0c;应用程序日志和安全日志。系统运维和开发人员可以通过日志了解服务器的软件#xff0c;硬件信息#xff0c;检查配置过程中的错误以及错误发生的原因。通常分析日志可以了解服务器的负荷#xff0c;性能安全性#xff0c;从而及时…背景 日志系统主要包括系统日志应用程序日志和安全日志。系统运维和开发人员可以通过日志了解服务器的软件硬件信息检查配置过程中的错误以及错误发生的原因。通常分析日志可以了解服务器的负荷性能安全性从而及时采取措施纠正错误。 难点一通常日志被分散在不同设备上如果你管理数十台上百台服务器你开在使用一次登录每一台机器的传统方法查询日志效率明显低下。我们应该使用集中化的日志管理例如开源的syslog将所有服务器上的日志收集汇总。 难点二集中化管理后日志系统的统计检索又成为一件比较麻烦的事情一般我们使用grep awk wc等linux命令能实现检索和统计但是对于要求更高的查询排序和统计等要求和庞大的机器数量依然使用这样的方法难免会有点力不从心。 解决方法开源实时的日志分析ELK平台能够王梅的解决我们上述的问题ELK由ElasticSearchLogstash和Kibana三个开源工具组成官网https://www.elastic.co/cn/products/ Elasticsearch是一个开源分布式搜索引擎他的特点是分布式零配置自动发现索引自动分片索引副本机制restful风格的接口多数据源自动搜索负载等。Logstash是一个完全开源的工具他可以对你的日志进行收集过滤并将其存储以后使用比如搜索Kibana也是一个开源和免费的工具Kibana可以为Logstash和ElasticSearch提供日志分析友好的Web界面可以帮助汇总分析和搜索重要数据日志。 以下ELK工作原理图
安装环境
Windows10ElasticSearch7.3.2Logstash7.3.2Kibana7.3.2JDK1.8NSSM2.24
安装配置Java环境
在Oracle官网获取最新版本的JAVA版本运行按提示下一步就可以完成安装后配置环境变量如图 CMD窗口下运行java -version命令如果如下结果表示安装成功
$ java -version
java version 1.8.0_171
Java(TM) SE Runtime Environment (build 1.8.0_171-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.171-b11, mixed mode)安装ELK
由于Logstash服务依赖ES服务Kibana服务依赖LogStash和ES所以ELK服务启动顺序为ES—LogStash—Kibana为了配合服务启动顺序我们安装顺序也按启动顺序首先准备所需要软件如下地址 elasticsearch国内镜像kibana国内镜像logstash国内镜像NSSM下载地址 三个软件尽量用同一个版本的否则可能出现不兼容的情况
Elasticsearch安装
下载解压进入bin目录下直接双击执行elasticsearch.bat可以看到如下 我们测试一下是否启动成功 安装ElasticSearch-head插件此处直接在Chrom浏览器中搜索ElasticSearch-head插件安装即可。如下效果输入localhost:9200点击链接就可以通过插件浏览es中现有的数据并且支持查询操作 以上启动方式是直接通过bat脚本我们现在利用nssm软件对ES进行管理将ES添加到系统进程中进行启动更加方便如下流程下载nssm加压缩得到如下 找到自己系统对应的win32或者win64系统将里面nssm.ext复制到ElasticSearch的bin目录中CMD到es的bin目录下执行nssm install elasticsearch回车后会弹出一个安装设置界面 如上图所示填好对应的目录地址applicationPath选es的bin目录下 elasticsearch.bat文件startup directory会自动填充点击install service提示安装成功在CMD中输入services.msc打开windows服务管理界面找到elasticsearch右键启动按上步骤测试即可。
Logstash安装
先来一个常规非nssm方式的安装下载解压进入到logstash将config目录下logstash-sample.conf 文件负责到bin目录并且修改如下,重命名logstash.conf 首先来一个最简单配置
input {stdin{ }
}
output {elasticsearch {hosts [http://localhost:9200]}
}配置如上input指定日志来源是为空设置表示日志来自控制台output配置日志输出位置指定位es地址允许多个CMD到logstash的bin目录下执行启动命令logstash -f stdin.conf 当看到如上日志表示已经成功启动并且连接到es我们在控制台上输入任意字符多试几次日志推送到es中有一定延迟接着到es-head中查看在elasticsearch中会自动创建一个内容分配用来存储logstash推送过来的信息如下图所示 我们可以通过基本查询来查询到我们刚才在控制台输入的信息。接着我们来指定文件的形式来指定输入参数毕竟我们实际运行的时候一定是读取日志文件中的内容我们修改刚才复制到bin目录中的logstash.config文件如下
input {file {path [E:/myCode/springcloud-learn/microservice-simple-provider-user-trace-elk/build/build/microservice-provider-user.json]}
}
output {elasticsearch {hosts [http://localhost:9200]}
}如上图所示file指定了是文件输入类型path指定文件地址是数组类型可以指定多个此处我们用一个springboot项目的json日志格式来进行测试。再次启动并启动springboot项目多次请求再次查询ES。
logstash 常用命令
-f:指定logstash的配置文件
-e:格式是后面跟字符串,这个字符串就被当做是logstash的配置;如果,那么默认使用stdin作为输出,stdout作为输出;
-t:测试配置文件是否正确
logstash -f stdin.conf -t以上是通过bat脚本直接运行接着我们还是用nssm的方式来进行配置还是和刚才一样的流程将nssm.exe文件拷贝到logstash的bin目录下在bin目录下创建run.bat并且编辑填入如下信息
logstash.bat agent -f logstash.confcmd到bin目录下执行 nssm install logstash选择刚才创建的run.bat点击install service提示安装成功。
安装kibana服务
下载解压这次直接用nssm的方式还是将nssm目录下对应本系统的nssm.exe复制到kibana的bin目录下cmd到kibana的bin目录下执行nssm install kibana选择bin目录下kibana.bat点击install service 完成安装
启动项目
CMD找那个运行services.msc打开windiws服务依次启动如下服务ElasticsearchLogstashKibana在浏览器中输入http://localhost:5601/可以看到如下界面 上截图界面来配置一个对应es中分配的查询点击左侧的index patterns选择es中的分片我们可以得到如下查询界面 如上图所示我们将日志文件中的信息通过kibana来进行查询。至此所有服务安装完成平台搭建完成本次只是一个单机单节点的测试项目后续的机去部署需要每个软件进行集群配置安装。