当前位置: 首页 > news >正文

网站开发使用什么语言邀请推广app

网站开发使用什么语言,邀请推广app,网站一般用什么工具做,漳州城乡住房建设部网站前情回顾: 将 AzureBlob 的日志通过 Azure Event Hubs 发给 Elasticsearch(1)-CSDN博客 前边的方案是挺好的,但 Azure Event Hubs 是付费服务,我这里只是一个获取日志进行必要的分析,并且不要求实时性&am…

前情回顾:

将 AzureBlob 的日志通过 Azure Event Hubs 发给 Elasticsearch(1)-CSDN博客

前边的方案是挺好的,但 Azure Event Hubs 是付费服务,我这里只是一个获取日志进行必要的分析,并且不要求实时性,关键 没钱,那怎么办呢?

替代方案:

如果对实时性没有严格要求,并且希望避免使用付费的 Azure Event Hubs 服务,可以采用更经济的方式,比如将 Azure Blob 存储的日志直接发送到 Elasticsearch 或通过 Azure Storage QueueAzure Function 来实现。这些方法可以有效减少成本,同时满足日志解析和分析需求。

1. 直接从 Azure Blob 存储读取日志并处理

思路

直接从 Azure Blob 存储 中读取生成的日志文件,解析所需字段后发送到 Elasticsearch。这种方式适合没有实时性需求的场景,定期运行任务即可。

实现步骤
  1. 启用 Azure 存储日志记录

    • 在存储账户中启用 诊断设置
    • 将日志记录输出到同一存储账户的 Blob 容器中,例如 insights-logs
  2. 使用 Azure Function 或定时任务读取日志

    • 编写脚本(可以用 Python、PowerShell、C# 等语言),从指定的 Blob 容器中下载日志文件。
    • 解析日志文件,根据需要提取字段并格式化为 Elasticsearch 可接受的 JSON 数据。
    • 将数据批量发送到 Elasticsearch。
  3. 示例代码

    • 使用 Pythonazure-storage-blob 库:
    from azure.storage.blob import BlobServiceClient
    from elasticsearch import Elasticsearch
    import json# Azure Blob Storage 配置
    storage_account_name = "your_storage_account"
    storage_account_key = "your_storage_account_key"
    container_name = "insights-logs"# Elasticsearch 配置
    es = Elasticsearch("http://your-elasticsearch-server:9200")def process_blob_logs():blob_service_client = BlobServiceClient(account_url=f"https://{storage_account_name}.blob.core.windows.net",credential=storage_account_key)container_client = blob_service_client.get_container_client(container_name)# 列出日志文件blobs = container_client.list_blobs()for blob in blobs:blob_client = container_client.get_blob_client(blob)log_data = blob_client.download_blob().readall().decode('utf-8')# 假设日志是 JSON 格式for line in log_data.splitlines():try:log_entry = json.loads(line)# 提取你需要的字段parsed_entry = {"timestamp": log_entry["time"],"operation": log_entry["operationName"],"blobName": log_entry.get("blobName"),"requestorIp": log_entry.get("requestorIpAddress"),}# 写入 Elasticsearches.index(index="storage-logs", document=parsed_entry)except Exception as e:print(f"Error processing log entry: {e}")if __name__ == "__main__":process_blob_logs()
    
  4. 设置定时运行

    • 如果使用 Azure Function,配置 Timer Trigger 定期运行该脚本。
    • 如果使用本地脚本,使用 cron(Linux)或计划任务(Windows)实现定时任务。

2. 使用 Azure Storage Queue

思路

利用 Azure Storage Queue 作为消息队列替代 Event Hubs,用于暂存日志文件元数据或小型消息,然后由处理程序(如 Azure Function 或脚本)消费队列消息,读取并处理日志。

实现步骤
  1. 启用日志记录

    • 将日志写入 Blob 存储。
  2. 配置 Azure Storage Queue

    • 创建一个 Azure Queue
    • 编写脚本将日志的元数据(例如 Blob 的路径)写入队列。
  3. 编写处理脚本

    • 消费队列消息,根据消息中的 Blob 路径读取并解析日志文件。
  4. 示例代码

    • 使用 Python 和 azure-storage-queue
    from azure.storage.queue import QueueClient
    from azure.storage.blob import BlobServiceClient
    import jsonqueue_name = "your-queue"
    storage_account_name = "your_storage_account"
    storage_account_key = "your_storage_account_key"def process_queue_messages():queue_client = QueueClient(account_url=f"https://{storage_account_name}.queue.core.windows.net",credential=storage_account_key,queue_name=queue_name)blob_service_client = BlobServiceClient(account_url=f"https://{storage_account_name}.blob.core.windows.net",credential=storage_account_key)messages = queue_client.receive_messages()for msg in messages:blob_path = msg.content  # 假设队列消息中存储的是 Blob 路径container_name, blob_name = blob_path.split('/', 1)blob_client = blob_service_client.get_blob_client(container_name, blob_name)log_data = blob_client.download_blob().readall().decode('utf-8')# 解析日志并发送到 Elasticsearch(同上)print(f"Processing blob: {blob_path}")queue_client.delete_message(msg)  # 删除已处理消息if __name__ == "__main__":process_queue_messages()
    

3. 直接读取和解析日志文件后推送到 Elasticsearch

这种方法可以完全避开队列服务,直接通过脚本定期从存储账户下载日志文件并解析后推送到 Elasticsearch。

注意事项
  • 定时任务频率:根据日志生成的频率设定脚本运行的时间间隔。
  • 日志存储策略:Blob 日志文件可能会快速增长,考虑启用存储生命周期管理规则定期删除过期日志文件。
  • 安全性:确保存储帐户密钥或连接字符串的安全性,可使用 Azure 的 Managed Identity 替代密钥。

比较与选择

方案适用场景实现复杂度成本
直接从 Blob 存储读取数据量不大,无实时性需求
使用 Storage Queue有一定的队列需求,异步处理较低
使用 Azure Event Hubs需要高吞吐量和实时性

推荐:

  • 如果数据量不大,选择 直接从 Blob 存储读取
  • 如果需要解耦消息和处理程序,可以选择 Azure Storage Queue


前情后续:

将 AzureBlob 的日志通过 Azure Event Hubs 发给 Elasticsearch(1)-CSDN博客

将 AzureBlob 的日志通过 Azure Event Hubs 发给 Elasticsearch(2)-CSDN博客

将 AzureBlob 的日志通过 Azure Event Hubs 发给 Elasticsearch(3)-CSDN博客




http://www.hkea.cn/news/808728/

相关文章:

  • 濮阳网站网站建设网络营销策划是什么
  • 做新闻网站需要什么手续河北软文搜索引擎推广公司
  • 广州网站建设联系电话seo推广的公司
  • 一起做网店一样的网站关键词歌曲免费听
  • 负责网站建设推广本周热点新闻事件
  • 快速做网站优化谷歌在线浏览入口
  • 苏州企业网站建设开发与制作2023年6月份又封城了
  • 用java做网站可以吗吉林seo刷关键词排名优化
  • 网站建设面试google广告投放技巧
  • 整形网站整站源码如何让关键词排名靠前
  • php网站后台搭建外贸网站大全
  • 建 新闻 网站营销战略有哪些内容
  • 营销融合app网站seo招聘
  • 快速做网站的方法网站换了域名怎么查
  • 建筑工程网络计划图怎么编制百度seo搜索排名
  • 免费建网站系统百度云登陆首页
  • wordpress 采集微博网站建设优化
  • 做淘宝客新增网站推广百度用户服务中心人工电话
  • 域名备案网站建设书模板百度统计登录
  • 禁止WordPress访问官网优化关键词排名提升
  • 爬取漫画数据做网站今日热搜新闻头条
  • 雄安网站建设制作网站关键词如何快速上首页
  • 佛山从事网站建设百度小程序入口官网
  • 自建网站平台可以实现哪些功能网络营销这个专业怎么样
  • 佛山新网站制作公司网页制作成品模板网站
  • 校园网站建设的意见企业管理培训课程网课
  • 郑大远程教育动态网站建设seo优化关键词排名
  • 做logo什么网站昆明百度关键词优化
  • 怎样做省钱购物网站sem推广代运营
  • 英文网站开发公司万网阿里云域名查询