腾讯云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使用之我见

因为某些人的原因,本文从新改名发布一遍。

原名称:tp5 -- 腾讯云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的主要内容,如果未能解决你的问题,请参考以下文章

腾讯云Logstash实战4-使用Logstash消费kafka数据并写入到Elasticsearch

使用ELK分析腾讯云CLB日志

使用ELK分析腾讯云CLB日志

实战接入腾讯云日志服务

实战接入腾讯云日志服务

MySql 5.7.40备份到腾讯云cos+从cos恢复