腾讯云Logstash实战5-读取COS中的日志文件并写入到Elasticsearch
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了腾讯云Logstash实战5-读取COS中的日志文件并写入到Elasticsearch相关的知识,希望对你有一定的参考价值。
参考技术A 在某些业务场景中,业务服务端的日志或者是云上组件的日志会归档存储到对象存储COS中,在需要进行查询的时候需要从COS中获取并查询日志,此时可以借助于 腾讯云Logstash 自动地读取COS中指定bucket的日志文件,然后写入到Elasticsearch中,再使用Kibana可视化组件进行查询和分析。在“管道管理”页面,点击“新建管道”按钮,创建一个管道:
进入管道配置页面,点击“引用模板”按钮,同时引用“input-s3”和“output-elasticsearch”两个模板:
在管道配置中,分别针对“input-s3”和“output-elasticsearch”进行配置,一些关键的配置参数说明如下:
查看更多参数,可以参考 input-s3
查看更多参数,可以参考 output-elasticsearch
在配置完管道后,点击“保存并部署”创建一个管道并自动部署:
在控制台查看Logstash的运行日志,如果没有ERROR级别的日志,则说明管道运行正常:
进入到output-elasticsearch中定义的输出端的ES集群对应的kibana页面,在Dev tools工具栏里查看索引是否存在,以及索引的文档数量是否正确:
PHP 腾讯云cos使用之我见
因为某些人的原因,本文从新改名发布一遍。
原文链接:https://www.cnblogs.com/YFYQ/p/10840050.html
因项目需要,本来是需要对接阿里云oss,但因客户错误将云存储买成腾讯云cos,因此简单做了个对象上传使用
首先下载cos的sdk:
三种方式在文档上面都有介绍
SDK 安装有三种方式:Composer 方式、Phar 方式 和 源码方式。
本渣用的是最low 的源码方式
下载完成后解压放至TP5的第三方类库extend/下(感觉文件名太长本渣将解压后的sdk文件名改为了sdk):
然后说下腾讯云cos的配置参数:
其中SecretId和SecretKey参数在腾讯云-》对象存储-》秘钥管理获得
bucket 参数可直接请求接口,也可同样在腾讯云-》对象存储-》存储桶列表直接创建
return [ ‘QCLOUD‘ => [ ‘appId‘ => ‘******‘, //账户中心的 APPid ‘SecretId‘ => ‘******‘, //开发者拥有的项目身份识别 ID ‘SecretKey‘ => ‘******‘, //开发者拥有的项目身份密钥 ‘region‘ => ‘bj‘, //你的Bucket所有地域 例如上海 (sh)写简称就可以 ‘bucket‘ => ‘******‘ //COS中用于存储桶名称 ], ];
其中region 地区在文档上也有介绍:
以下是对应的地区简称(了解就行):
//地域缩写 ‘cn-east‘=>‘ap-shanghai‘, ‘cn-sorth‘=>‘ap-guangzhou‘, ‘cn-north‘=>‘ap-beijing-1‘, ‘cn-south-2‘=>‘ap-guangzhou-2‘, ‘cn-southwest‘=>‘ap-chengdu‘, ‘sg‘=>‘ap-singapore‘, ‘tj‘=>‘ap-beijing-1‘, ‘bj‘=>‘ap-beijing‘, ‘sh‘=>‘ap-shanghai‘, ‘gz‘=>‘ap-guangzhou‘, ‘cd‘=>‘ap-chengdu‘, ‘sgp‘=>‘ap-singapore‘
最后就是简单的对象上传请求了
SDK 放在 根目录下/extend/
我的路径/extend/sdk
其中
saveName 是你文件上传的文件名称 注意路径 "/" window下的是 "\\" 这样的话上传上去不会自动创建文件夹。
pathname 你要上传的本地文件地址
/** * 腾讯云Cos -- 上传对象 */ function qcloudCosUpload($file = ‘‘ , $info = array() , $fileInfo) if( !$file || !$info ) return json_error(‘缺失参数 ‘); //引用COS sdk \\think\\Loader::import(‘sdk.vendor.autoload‘); $cosClient = new \\Qcloud\\Cos\\Client( array( ‘region‘ => config(‘QCLOUD.region‘), ‘credentials‘ => array( ‘appId‘ => config(‘QCLOUD.appId‘), ‘secretId‘ => config(‘QCLOUD.SecretId‘), ‘secretKey‘ => config(‘QCLOUD.SecretKey‘) ) ) ); $file = $info[‘pathname‘]; try $data = array( ‘Bucket‘ => config(‘QCLOUD.bucket‘), ‘Key‘ => $info[‘saveName‘], ‘Body‘ => fopen($file, ‘rb‘) ); //判断文件大小 大于5M就分块上传 $result = $cosClient->Upload( $data[‘Bucket‘] , $data[‘Key‘] , $data[‘Body‘] ); if( $result ) return $result; catch (\\Exception $e) return json_error(‘上传失败 ‘);
至此,简单的上传对象即已完成。
感谢您的查看。
本文主要借鉴于:https://www.cnblogs.com/inkwhite/p/9057339.html
再次感谢墨白`Blog 大大的博客分享。
转载需要告知本人
2019年06月22日
以上是关于腾讯云Logstash实战5-读取COS中的日志文件并写入到Elasticsearch的主要内容,如果未能解决你的问题,请参考以下文章