在目前小程序为主的大背景下,有客户大部分业务在腾讯云,使用的大部分为容器服务,在大规模的使用容器下,需要对容器内业务的日志采集及分析,在腾讯云对应容器服务的日志提供了两种消费方式:Kafka、日志服务CLS。
但是对应业务线众多,在腾讯云容器服务只能指定十条日志收集规则,完全满足不了大规模日志收集场景,客户已经指定分业务两种消费方式均使用了起来,Kafka&日志服务,但是在Ckafka查看日志发现最高每分钟20W条消息,尽管已经最大程度的提升了消费端的能力(消费端使用Logstash,然后重新将数据导入ELK集群中使用),但是在每分钟20w条的大数据下,查看CKafka内部有大量未消费条目存在,长此以往,CKafka性能及存量均无法满足,咨询技术人员发现目前该地域Ckafka已经售完,需要一周时间来底层扩容。
针对大量日志在Ckafka未消费,且腾讯无法开出Ckafka的背景下,先为客户提出三种解决方案:
先进行简单容器服务创建测试应用
例如日志格式:
__CONTENT__: {"docker":{"container_id":"894905ad526dd90f548bf35ece4b81f4d68359722d7ec719f3b81628da32fe20"},"kubernetes":{"container_name":"nginx","host":"172.16.9.11","labels":{"pod-template-hash":"1074266372","qcloud-app":"nginx"},"log":"default_nginx","master_url":"https://192.168.255.1:443","namespace_name":"default","pod_id":"5d4ae59f-9f6c-11e8-89c8-5254000e53ff","pod_name":"nginx-54c86bb7c6-wvm6z"},"log":"192.168.1.1 - - [25/Aug/2018:13:17:14 +0000] \"GET / HTTP/1.1\" 200 612 \"-\" \"Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.89 Safari/537.36\" \"-\"\n","stream":"stdout","time":"2018-08-25T13:17:14.310411833Z"}
根据container_name来进行正则日志过滤:.*\"container_name\":\"([^\"]+)\".*
注意:这里根据腾讯云官网给的仅有的一个实例进行测试无法通过,经过多次测试均为已经投递但是数据没有从cls到cos内部,经过后面自己测试结果如下:
__CONTENT__
详细操作方法可参考:COSFS操作
sudo yum install automake gcc-c++ git libcurl-devel libxml2-devel fuse-devel make openssl-devel
git clone https://github.com/tencentyun/cosfs /usr/cosfs
cd /usr/cosfs
./autogen.sh
./configure
make
sudo make install
写入配置文件:
echo <bucketname>:<SecretId>:<SecretKey> > /etc/passwd-cosfs
chmod 640 /etc/passwd-cosfs
input {
file {
path => "/cosdata/access-log2018/08/*"
}
}
output {
elasticsearch {
hosts => "127.0.0.1:9200"
}
stdout { codec => rubydebug }
}
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。