背景:
某黄牛性质的网站。最近开始倒腾自己的错误码了。
错误码如何定义,开发爷爷们已经商定了?接下来就是该怎么收集统计问题。
之前他们的日志会向日志文件和 graylog 两个地方输出。
现在我手里有两种方案:
1,利用现成的 graylog,就是他们的错误码直接和日志文件一起向 graylog 输出,我再通过 api 查询一段时间内(比如说一个月)错误码出现的次数和时间,错误码出现次数增加则报警。然后统计给开发爷爷们看(做个图形化界面什么的),或着利用 graylog 的图形来做。
2,redis。这个是我自己想的。我的设想是:利用 redis 的列表(集合)。用错误码来做 key,然后把错误码发生的时间戳做为 value,push ( add )到列表(集合)中去,还要写怎么删除超过一个月的 value。 这样也可以做到监控错误码的出现次数和时间。
其他的技术我就不太了解了,还希望爷爷们不吝赐教。
1
linxiaoziruo 2018-11-29 11:25:06 +08:00
你这描述云里雾里的。啥叫‘定义’,‘定义如何收集错误码’是啥意思?
|
2
xi2008wang 2018-11-29 11:27:58 +08:00
运维定错误码大类,具体的项那肯定还是要开发去搞
入库统计展示直接 ELK 一把梭 |
3
wutiantong 2018-11-29 11:30:25 +08:00
现有方案的优缺点是啥先讲清楚
|
4
hcymk2 2018-11-29 11:32:39 +08:00
graylog 有现成的的功能吧。generate chart , quick values ,statistics。
|
5
wangking OP @linxiaoziruo 错误码开发大爷们已经定了,现在就讨论如何收集,emm,我的标题确实有歧义
|
6
wangking OP @xi2008wang 错误码已经定好了,现在就是如何收集问题,graylog 其实跟 elk 工作原理是一样的
|
8
wangking OP @wutiantong 现在没有方案,这不是让运维想收集方案了吗
|
9
CivAx 2018-11-29 11:42:03 +08:00
单纯收集 grep 都行。。。。所以你这个描述很不清楚
弄个 logstash 呗,大不了再来个 elasticSearch 做查询 |
10
xi2008wang 2018-11-29 11:43:57 +08:00
没明白,错误码定好了,也有现成的 graylog,那还要啥方案,对照 http://docs.graylog.org/en/2.4/ 配置。。。
|
11
wccc 2018-11-29 11:53:02 +08:00
日志错误的收集与统计 ??? 需求是啥
|
12
wutiantong 2018-11-29 11:53:47 +08:00
@wangking 现在没有方案? 那你主题里写的 1 跟 2 是啥?
|
15
wangking OP @xi2008wang 谢谢大佬,我去看看
|
16
iphoneXr 2018-11-29 12:00:09 +08:00 via iPhone
elkelk 收集展示,结贴。
|
17
wangking OP @wutiantong 1 和 2 是我自己想的,希望你们有生产中现有的方案
|
19
reus 2018-11-29 12:12:05 +08:00
不就个监控,不懂开发的运维,迟早被淘汰
|
20
shihty5 2018-11-29 12:49:52 +08:00 4
这阴阳怪气的论调真让人不舒服
|
21
0ZXYDDu796nVCFxq 2018-11-29 13:01:13 +08:00 via Android
这样说话,在办公室不会被打吗?
|
22
lfzyx 2018-11-29 14:19:05 +08:00
这个工作内容当然算是运维的工作内容,不然运维是修电脑搞网络扛服务器的?
|
23
tourist2018 2018-11-29 14:27:30 +08:00
啥意思 统计错误出现的次数么 ? 最简单的 shell 就可以
|
25
qilishasha 2018-11-29 17:01:49 +08:00
所以……团队一定要培训好中文环节
|
26
LeungV2 2018-11-29 17:15:07 +08:00
让 V 站里的运维小改改看到了 肯定挨打
|
27
305835227fadf 2018-11-29 17:21:07 +08:00
开发者在代码里嵌入 Prometheus SDK 暴露监控端点,然后服务端 Prometheus 来采集,集合 Grafana 来展示图表;另外看你提到 Graylog,推测你线上环境基于 Docker 部署?如果是那更好办了,Docker 原生就支持 Prometheus 来监控,很便利。
|
28
8355 2018-11-29 17:31:42 +08:00
戾气太重了小兄弟
|
29
Raymon111111 2018-11-29 17:33:06 +08:00
这么好提升自己的机会
怎么抱怨? |
30
hotsymbol 2018-11-30 00:43:07 +08:00
Prometheus 当然是最好的方案。但是自定义程度不高。PromQL 限制还是很多。不能像 Pyhon 或者 Golang 那样想怎么弄就怎么弄。
自建日志监控。从捞错误信息开始。一般情况下使用 Push 的方法。只有 prometheus 使用捞数据的方法。Docker 和 Kubernets 原声支持 Prom。但是 Kubernest 内建的 dashboard 也可以完美支持系统负载运维。并且捞出日志。 如果业务的实时性不是很高。用 Go 或者。Net core 足以。如果需要实时性特别特别强。建议还是用 C。毕竟 F22 的系统都有 C 的代码(据说) |