10-28质量监控ELK
监控业务范围
- app崩溃监控(Bugly)
- 应用性能监控(APM)
- 业务监控(TalkingData、友盟)
- 质量监控(缺位)
质量监控平台ELK
- 数据构造
- 线上错误状态分布
- 故障影响范围
- 异常接口列表和影响用户采样
- 测试进展分析
- 漏测分析
- 关联图建模分析
- 插桩技术:
- 基于编译插桩,需要植入sdk, NewRelic
- 基于dex插桩:Appetizer
- Hook: Xposed、Frida
elk层级图
https://www.elastic.co/guide/cn/elasticsearch/guide/current/intro.html
## 1.安装方法:
* ELK镜像 [https://store.docker.com/community/images/sebp/elk](https://store.docker.com/community/images/sebp/elk)
* 文档:[https://elk-docker.readthedocs.io/](https://elk-docker.readthedocs.io/)
* 方法1: docker pull sebp/elk
* 方法2: docker pull registry.docker-cn.com/sebp/elk
2.开始运行elk
2.1准备条件
https://elk-docker.readthedocs.io/
注意:
A minimum of 4GB RAM assigned to Docker dokcer需要4G内存,
Elasticsearch alone needs at least 2GB of RAM to run. Elasticsearch至少需要2G
Mac只需要修改docker配置项即可
Linux需要更改虚拟内存配置项vm.max_map_count。
- 1.临时更改:sysctl -w vm.max_map_count=262144
- 2.永久更改:修改配置文件/etc/sysctl.conf
2.2 启动
docker run -p 5601:5601 -p 9200:9200 -p 5044:5044 -d --name elk sebp/elk
3通过交互页面直接输入
此时会将input的内容,当作日志输出
方法1:进入elk终端,进入日志输入命令行
docker exec -it e4d3aa4921b6 /bin/bash
/opt/logstash/bin/logstash --path.data /tmp/logstash/data -e 'input { stdin { } } output { elasticsearch { hosts => ["localhost"] } }'
此时输入任意文字
<img src="https://img2018.cnblogs.com/blog/1418970/201810/1418970-20181028123636737-2098688558.png" width="600" />
<font color=458000>在Kibana中进入DIscover,然后Create index pattern,写入他所发现的索引,设置时间字段就可以创建了</font>
<img src="https://img2018.cnblogs.com/blog/1418970/201810/1418970-20181030200757330-910062420.png" width="300"/>
<img src="https://img2018.cnblogs.com/blog/1418970/201810/1418970-20181030200831307-2104612055.png" width="300" />
输入文字后,会有新的log打印。查看任意一条log,详细信息如下。
<img src="https://img2018.cnblogs.com/blog/1418970/201811/1418970-20181101071729414-2055597684.png" width="600" />
检索
<img src="https://img2018.cnblogs.com/blog/1418970/201810/1418970-20181028123804494-2054031295.png" width="600" />
### 方法2:不进入终端,直接进入日志输入命令行
docker run -it --name logstash --rm logstash --path.data /tmp/logstash/data -e 'input { stdin { type=> "doc"} } output { elasticsearch { hosts => ["172.16.40.200"] } }'
<font color=458B00>注意:此处一定要填写IP,不能填写localhost或者127.0.0.1,否则错误如下</font>
<img src="https://img2018.cnblogs.com/blog/1418970/201810/1418970-20181028132653562-1416624336.png" width="600" />
## 4.批量传入本地数据
https://www.elastic.co/guide/en/logstash/current/dir-layout.html
https://www.elastic.co/guide/en/logstash/current/running-logstash-command-line.html
从命令行启动
-e, 使用文本代替配置文件,如3中交互输入
-f,配置文件 bin/logstash -f mypipeline.conf
[配置文件格式](https://www.elastic.co/guide/en/logstash/current/configuration-file-structure.html)
input:输入数据来自什么地方
filter:对输入数据做什么处理
output:输出的数据存储到什么地方去
### 4.1新建配置文件conf/csv.conf,注意IP地址:ifconfig en0
```#conf
input {
file {
path => "/data/*.csv"
start_position => beginning #从头开始读
}
}
filter {
csv{
columns =>[ "log_time", "user", "api", "status", "version"] #给文件中的每一列指定标题
}
date {
match => ["log_time", "yyyy-MM-dd HH:mm:ss"]
timezone => "Asia/Shanghai"
}
}
output {
elasticsearch {
hosts => ["172.16.40.200:9200"]
index => "logstash-chenshanju-%{+YYYY.MM.dd}"
}
}
4.2创建数据:data/demo.csv
2018-10-28 11:29:00,chenshanju,topics.json,200,7.4
2018-10-28 11:29:01,chenshanju,topics.json,200,7.4
2018-10-28 11:29:02,chenshanju,topics/3.json,200,7.4
2018-10-28 11:30:01,chenshanju,topics/4.json,200,7.4
2018-10-28 11:30:20,chenshanju,topics/1.json,200,7.4
2018-10-28 11:40:20,chenshanju,topics/5.json,200,7.4
4.3 执行
docker run -it --name logstash --rm -v $PWD/conf:/conf -v /Users/chenshanju/Desktop/docker/data/:/data logstash -f /conf/csv.conf
4.4注意
data和conf在同意目录下,命令也在该目录下执行
4.4持续日志
另开终端,执行以下脚本
#注意:此脚本不要忘记传入user
while true
do
version=$([ $((RANDOM%5)) -ge 1 ] && echo debug || echo test)
version=${version}_3.$((RANDOM%3))
userList=(chenshanju chenyi csj java python)
user=${userList[$((RANDOM%5))]}
api=api/$((RANDOM%5)).json
status=$((RANDOM%5))00
ip=192.168.0.1$((RANDOM%5))$((RANDOM%5))
echo $(date +"%Y-%m-%d %H:%M:%S"),${user},${ip},${api},${status},${version} | tee -a $(
date +%Y%m%d%H%M).csv
sleep 0.$((RANDOM%5))
done
5.生成索引
在Managerment中可以管理索引,例如查看、增加、删除
- 5.1.Management-Elasticsearch-index Mangerment管理索引
- 5.2.Management-Create Index Pattern
FAQ:
1.elk启动成功,但传入data时失败。因为elk需要4G内存,但我给docker只提供了2G。将内存调整为4G即可
### 2.有数据的情况下,kibana-discover没有内容
只要调整下时间即可
10-28质量监控ELK的更多相关文章
- 测试右移:线上质量监控 ELK 实战
目录 [测试右移]介绍 ELK Stack 介绍 ELK 监控体系搭建 ES & Kibana 搭建 Nginx 日志自动采集 Nginx Agent 安装 Nginx 服务器 数据分析 Lo ...
- Linux系统性能10条命令监控
Linux系统性能10条命令监控 概述 通过执行以下命令,可以在1分钟内对系统资源使用情况有个大致的了解. uptime dmesg | tail vmstat 1 mpstat -P ALL 1 p ...
- TOP100summit:【分享实录-Microsoft】基于Kafka与Spark的实时大数据质量监控平台
本篇文章内容来自2016年TOP100summit Microsoft资深产品经理邢国冬的案例分享.编辑:Cynthia 邢国冬(Tony Xing):Microsoft资深产品经理.负责微软应用与服 ...
- 2016 10 28考试 dp 乱搞 树状数组
2016 10 28 考试 时间 7:50 AM to 11:15 AM 下载链接: 试题 考试包 这次考试对自己的表现非常不满意!! T1看出来是dp题目,但是在考试过程中并没有推出转移方程,考虑了 ...
- 背水一战 Windows 10 (28) - 控件(文本类): TextBox, PasswordBox
[源码下载] 背水一战 Windows 10 (28) - 控件(文本类): TextBox, PasswordBox 作者:webabcd 介绍背水一战 Windows 10 之 控件(文本类) T ...
- CentOS6.5升级内核到3.10.28 --已验证
本文适用于CentOS 6.4, CentOS 6.5,估计也适用于其他Linux发行版. 1. 准备工作 确认内核及版本信息 [root@hostname ~]# uname -r 2.6.32-2 ...
- 使用yum快速升级CentOS 6.5内核到 3.10.28
网上有不少升级CentOS内核的文章,如<CentOS 6.5 升级内核到 3.10.28>,大部分都是下载源码编译,有点麻烦. 在yum的ELRepo源中,有mainline(3.13. ...
- 第16次Scrum会议(10/28)【欢迎来怼】
一.小组信息 队名:欢迎来怼小组成员队长:田继平成员:李圆圆,葛美义,王伟东,姜珊,邵朔,冉华小组照片 二.开会信息 时间:2017/10/28 17:20~17:32,总计12min.地点:东北师范 ...
- CentOS 6.5 升级内核到 3.10.28
本文适用于CentOS 6.4, CentOS 6.5,亲测可行,估计也适用于其他Linux发行版. 1. 准备工作 1.1 下载源码包 Linux内核版本有两种:稳定版和开发版 ,Linux内核版本 ...
随机推荐
- SharePoint研究之表单登录配置
本文将演示SharePoint怎样配置表单(Form)登录,后续文章将研究 无密码登录.编程添加用户组.编程添加用户.编程添加文件夹.编程分享文件夹(权限分配)等. 知识点:SharePoint.Sq ...
- SDN原理 OpenFlow协议 -4
通道 Channel 在前面的OpenFlow的内容中,我们提到了在交换层所采用的流表是控制层的Controller下发的,那么Controller是如何下发流表的呢?中间经过了哪些的流程和步骤?控制 ...
- 使用IDEA2017创建java web +maven项目
1.首先,提前准备的东西:我使用的是IDEA2017,tomcat7,jdk1.:请将这些软件安装完成,环境变量配置完成,如何配置以及安装我就不复述了,百度上一堆一堆的,比我知道的详细多了. 2.下面 ...
- eclipse中导入maven项目:org.apache.maven.archiver.MavenArchiver.getManifest(org.apache.maven.project.Maven
org.codehaus.plexus.archiver.jar.Manifest.write(java.io.PrintWriter) 解决方法为:更新eclipse中的maven插件 1.help ...
- Docker常用命令汇总,和常用操作举例
Docker命令 docker 常用命令如下 管理命令: container 管理容器 image 管理镜像 network 管理网络 node 管理Swarm节点 plugin 管理插件 secre ...
- 浅谈Android Studio3.0更新之路(遇坑必入)
>可以参考官网设置-> 1 2 >> Fantasy_Lin_网友评论原文地址是:简书24K纯帅豆写的我也更新一下出处[删除]Fa 转自脚本之家 浅谈Android Studi ...
- arcgis api for silverlight开发系列之二:缓存图层与动态图层及图层总结 .
本文摘自:http://blog.csdn.net/leesmn/article/details/6916458(很优秀的博客) 作为ESRI的平台的一份子arcgis api for silve ...
- Sql Server 开放4399端口命令行
netsh advfirewall firewall add rule name="Open Port 80" dir=in action=allow protocol=TCP l ...
- poj3436网络流之最大流拆点
这题看了半天看不懂题意...还是看的网上题意写的 加一个源点一个汇点,把每个点拆成两个,这两个点的流量是v,其他联通的边都设为无穷大 输入没有1的点就与源点连接,输出只有1的点就与汇点连接 还有这个输 ...
- BZOJ3239 Discrete Logging
一道裸的BSGS题目(叫baby step, giant step) 从爱酱的blog里学来的,是一个很神的根号算法. 如果我们有hash的工具的话,就是O(sqrt(p))的,这里又用了一个map所 ...