Elastic 5.0实践—远程日志查看工具watchlog

本帖已被设为精华帖!,

0. 背景

日常测试中,有些测试提案需要查看日志进行校验,日志往往在开发部署的机器上,而测试人员没有开发机器的登入权限,经常是要求开发给token登上开发的机器去查看日志,如果测试时间较长,中途通道机断了,经常要开发重新给token;效率较低,从而有了远程日志查看工具watchlog。

watchlog是基于Elastic Stack中三个组件: Filebeat、Elasticsearch、Kibana;1年之前曾介绍过ELK 2.0基本使用:http://blog.csdn.net/neven7/article/details/49998215,现在Elastic版本由之前2.0升级到了5.0,功能更细化和强大,新增了三个组件:Beats、XPack、Cloud。

Elastic Stack现在有六个组件组成:
Elastic 5.0实践---远程日志查看工具watchlog

1. 组件安装

1-1. Elasticsearch

Elasticsearch是Elastic Stack中最核心的组件,它是分布式、支持RESTful搜索和分析的引擎;并集中存储了你的数据。详情:https://www.elastic.co/products/elasticsearch

1.下载安装包
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.0.0.zip

2.更改服务端口
./config/elasticsearch.yml
network.host: ${ip}
http.port: ${port}

3.启动服务(root用户)
./elasticsearch -d

查看日志,服务是否启成功:

问题1
max virtual memory areas vm.max_map_count [65530] likely too low, increase to at least [26214]

解决办法:
https://github.com/docker-library/elasticsearch/issues/98

sysctl -w vm.max_map_count=262144

问题2
无权限,写日志

解决办法:
先用root账号,改文件属性777;再切回非root用户,启动脚本


查看服务:

curl -u "elastic:changeme" http://${ip}:${port}

1-2. kibana

Kibana可视化你的Elasticsearch数据。详情:https://www.elastic.co/products/kibana

1.下载安装包
wget https://artifacts.elastic.co/downloads/kibana/kibana-5.0.0-linux-x86_64.tar.gz

2.改配置文件
vim kibana.yml
#server.port: 5601
server.host: "${ip}"
elasticsearch.url: "http://${1-1配置的ip:port}"

3.启动服务
./kibana &

4.访问前端服务
http://${ip}:5601

Username: elastic Password: changeme

1-3. X-Pack

X-Pack对Elastic Stack提供了安全、警报、监控、报表、图表于一身的扩展包。详情:https://www.elastic.co/products/x-pack

1.Elasticserach中安装
bin/elasticsearch-plugin install x-pack

启动
bin/elasticsearch &

2.Kibana中安装
bin/kibana-plugin install x-pack

启动
bin/kibana &

1-4. Beats

Beats是传输数据的平台,作为一个轻量级代理从成千上万台机器上发送数据给Logstash或Elasticsearch。

Beats按照类型细化成四类:FILEBEAT(Log Files)、METRICBEAT(Metrics)、PACKETBEAT(Network Data)、WINLOGBEAT(Windows Event Logs)。

详情:https://www.elastic.co/products/beats

本文使用FILEBEAT传输日志文件:

1.安装
wget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-5.0.1-linux-x86_64.tar.gz

2.更改配置
vim filebeat.yml

配置Elasticsearch服务地址

修改日志路径:
默认为/var/log/*.log,改成自己的需监控的日志路径


3.启动服务
sudo ./filebeat -e -c filebeat.yml

具体参数:https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-command-line.html

1-5. Logstash和CLOUD

Logstash是数据处理的pipeline(INPUTS->FILTERS->OUTPUTS)。
本次未用到该组件;

详情:https://www.elastic.co/products/logstash

Elastic CLOUD是将Elasticsearch & kibana部署到AWS的服务;

详情:https://www.elastic.co/cloud

2.watchlog使用

watchlog利用了FILEBEAT、Elasticsearch和Kibana三个组件,通过在远程主机安装FILEBEAT,通过Elasticsearch,在前端Kibana查看日志内容。

2-1.获取脚本

在远程机器上新建个目录,执行如下命令:

curl -sSO http://${ip:port}/watchlog.sh

2-2.执行脚本

执行脚本watchlog.sh, -f:标识是谁查看日志(自定义), -p:查看日志的绝对路径。

sh watchlog.sh -f hugang_test1 -p /root/.ngrinder/logs/ngrinder.log 

2-3.前端查看

http://${Kibana服务地址}/

Elastic 5.0实践---远程日志查看工具watchlog

2-4.终止watchlog进程

测试完成后,需要将watchlog进程kill掉,在2-2步,会将后台进程号写到watchlog.pid中,执行如下命名终止传送日志。

kill -9 `cat watchlog.pid`

* 注:本文来自网络投稿,不代表本站立场,如若侵犯版权,请及时知会删除