日志三剑客ELK
新的服务器需要搭建ELK三剑客,就是日志分析的工具,整理下步骤,供以后复习用。
说明下,我这里使用的是logstash从redis里获取日志信息的。所以还需要redis,这里就不做redis的介绍了。
下载对应文件,
Java: http://www.oracle.com/technetwork/java/javase/downloads/index.html
Logstash: https://www.elastic.co/downloads/logstash
Elasticsearch: https://www.elastic.co/downloads/elasticsearch
Kibana: https://www.elastic.co/downloads/kibana
Nssm: https://nssm.cc/download
把文件放在服务器上,我这里是放在E:\Tool下了。
第一步,先运行ElasticSearch(命令行方式),正常。
有个问题是,正常步骤解压出来,命令行可以运行,但是在服务器上一定要做成服务才行,不然服务器重启了,或者是被别人不小心关闭了,就比较尴尬了。
做服务的步骤很简单,这个不需要借助NSSM工具,直接在elasticsearch的bin下,运行命令
elasticsearch-service.bat install
刷新下服务列表,这个服务就已经安装好了。
第二步,运行logstash,(本地使用的管道是连接redis的)这个的运行不想用命令行了,想借助nssm来安装服务,可谁曾想,执行了nssm install logstash,可以弹出浏览框框,但是一点浏览,直接就闪退了。
先怀疑是我的nssm版本有问题,然后想着去官网下载一个新的,官网上2014年的,但是也试试下载吧,别我的文件有损坏,结果下载了被360当成病毒处理了,那么我就觉得,可能是这个需要的权限比较大,改了服务,被360当成木马了。
然后抱着试一试的态度,给这个logstash文件夹的权限开放到最大,再试一次,安装成功了。
到bin文件夹下,有个配置文件logstash_default.conf
这里配置关于读取redis的管道。
然后启动即可。
第三步,启动Kibana,启动成功,(这个做服务就需要使用nssm)
path里有值即可,然后继续填写Details
然后点击安装服务即可
直接启动即可。
手动通过客户端往redis里插入一条数据,结果发现并没有任何log显示,因为索引是空的。奇怪的很。
回过头来看一下,logstash的配置文件
这里配置的是list,那就是说,只能读取redis里的rpush的数据。
那么很简单,在客户端执行以下命令
然后再去看一下索引
这下有了,很简单,加入到索引里,这个就是kibana的配置了,必须加一个索引,才能查看log。
这里的配置,再选择时间戳,然后创建,成功后查看
出现这个说明kibana可以使用了。
然后就可以按照条件查看日志了,完美。
可是这个只是在服务器内访问,如果想要在外网下访问,还需要一些改动,就是kibana的yml文件
把这个server.port改成0.0.0.0就代表允许外网访问(或者说就允许IP访问了),当然了,服务器这个5601端口一定要打开,这个是最基本的。
当使用一段时间以后,发现旧的log用不上了。那就想办法给删了吧,找了一下,在文件夹中没有能找到这些个东西,然后试了下查下elastic应该有提供,果然。
在kibana这个可视化界面中,可以直接执行delete命令即可。
当然了,也可以按照查询条件删除的
参考 https://www.elastic.co/guide/en/elasticsearch/reference/5.2/docs-delete-by-query.html
POST dlog-*/_delete_by_query { "query": { "match": { "projectName": "OA" } } }
但是删除有个需要注意的地方,物理文件不是直接删除的。只是做个标记先。