问题:
E婶儿今天提的一个问题,如何对Nginx的Error日志进行存储。这种情况下Ningx作为业务服务Web Server或者网关Gate Way,一般都不只是一台服务器。Nginx访问日志是高并发量,一些集群Nginx的日志存储量基本排在总存储量排行的TOP 10以内,这种怎么操作?
Z婶和DK都说了, GROK解析没有JSON解析好,为啥?
但是说的存的不是Access日志,是Error日志,这种输出Debug信息到Error日志量是不确定, 日志可能频繁也可能就不几条日志。
这种日志集中,最后都是查,放在ES中进行保存。日志落地后的采集工具看情况选 。
如果有ES怎么设计索引存储,如果是开源方案,有的基本是默认20个索引一个周期。
为什么默认管理要留20个索引,按设定的生命周管理,为什么要分的这么碎。虽然是20个,在3个分片的时候效率可能维护起来麻烦。但20个分片,其实活动的分片就一个,那些不活动,增删改如何操作都可以。如果都放到一个活动的索引里,看着省事,数据丟了恢复也困难。
集群的度量问题,一个是网络基础设施度量, 别一个是聚合服务本身的度量。
存储集群的网络、cpu、IO、端口流量等情况的统计对比。
要比较集群间,集群服务结点的网卡瞬时流量、IO负载、还有CPU的占用状态。要么就装netdata全可视看一下,太麻烦,就直接输入如下命令:
dstat -tnf -r 1 10
这种, 一秒一个统计,走10个数据包,可以看出数据接受量和转发量,还是IO读写的情况。但这是针对网卡的统计,而不是针对端口的统计。端口统计用iptables,但是实时效果,不太友好。
比如说我们想监控本地的UDP端口12345 , 监控输入和输出。
1.sudo iptables -A INPUT -p udp --dport 12345
2.sudo iptables -A OUTPUT -p udp --dport 12345
3.sudo iptables -L -v -n -x
因为iptables统计的结果是bytes,转成Mb就用awk处理一下。
sudo iptables -L -v -n -x | grep 1538 | awk '{print $2/1024/1024}'
就可以看12345端口的流量大小了。
取消统计
1.iptables -D INPUT -p tcp --dport 12345
2.iptables -D OUTPUT -p tcp --sport 12345