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

手机网站建设可信赖seo推广营销公司

手机网站建设可信赖,seo推广营销公司,怎么看网站空间多大,seo技术培训教程前面两篇讲了有关爬虫系统的搭建以及爬虫中需要的代理ip池的搭建的全过程#xff0c;接下来我将写一个爬虫系统以及代理ip池异常监控的程序#xff0c;主要功能就是监控是否发生异常#xff0c;及时通过邮件提醒管理员排查故障#xff0c;这样整体的一套流程就全部清晰了接下来我将写一个爬虫系统以及代理ip池异常监控的程序主要功能就是监控是否发生异常及时通过邮件提醒管理员排查故障这样整体的一套流程就全部清晰了能够完美适配任何项目。 在Linux系统上监控爬虫运行状态并实现异常邮件通知可以通过以下方案实现 一、监控爬虫运行状态的核心方法 1、进程存活监控 # 检查爬虫进程是否存在 pgrep -f spider.py /dev/null if [ $? -eq 0 ]; thenecho 爬虫进程运行中 elseecho 爬虫进程已停止需要告警 fi2、心跳检测机制 在爬虫代码中添加心跳记录 # spider.py import time import jsondef record_heartbeat():heartbeat {timestamp: time.time(),status: running,items_scraped: 1000 # 实际抓取数量}with open(/var/log/spider_heartbeat.json, w) as f:json.dump(heartbeat, f)# 在爬虫主循环中定期调用 while True:# ...爬虫工作...record_heartbeat()time.sleep(60) # 每分钟记录一次3、日志关键词监控 # 检查日志中是否包含成功标记 tail -n 100 /var/log/spider.log | grep Scraped 100 items /dev/null if [ $? -ne 0 ]; thenecho 日志无更新需要告警 fi4、数据产出监控 # 检查数据库最新数据时间 last_data_time$(mysql -uuser -ppass -e SELECT MAX(created_at) FROM items spider_db) current_time$(date %s) if [ $(($current_time - $(date -d $last_data_time %s))) -gt 3600 ]; thenecho 数据超过1小时未更新需要告警 fi二、邮件告警系统实现 1、安装邮件发送工具 sudo apt install mailutils -y2、配置邮件发送脚本 send_alert.sh #!/bin/bash # send_alert.shALERT_SUBJECT爬虫系统异常告警 ALERT_CONTENT$(cat EOF 服务器: $(hostname) 时间: $(date) 异常类型: $1 详细信息: $2 EOF )echo $ALERT_CONTENT | mail -s $ALERT_SUBJECT adminexample.com3、完整监控脚本 spider_monitor.sh #!/bin/bash # spider_monitor.sh# 1. 进程检查 if ! pgrep -f spider.py /dev/null; then./send_alert.sh 进程停止 爬虫进程未运行exit 1 fi# 2. 心跳检查 HEARTBEAT_FILE/var/log/spider_heartbeat.json if [ ! -f $HEARTBEAT_FILE ]; then./send_alert.sh 心跳丢失 心跳文件不存在exit 1 fitimestamp$(jq -r .timestamp $HEARTBEAT_FILE 2/dev/null) current_time$(date %s) if [ -z $timestamp ] || [ $(($current_time - $timestamp)) -gt 1200 ]; then./send_alert.sh 心跳超时 心跳超过20分钟未更新最后时间: $(date -d $timestamp)exit 1 fi# 3. 日志检查 if ! tail -n 100 /var/log/spider.log | grep Scraped [0-9]\ items /dev/null; then./send_alert.sh 日志异常 最近100行日志未发现抓取记录exit 1 fi# 4. 数据产出检查 last_data_time$(mysql -uuser -ppass -e SELECT MAX(created_at) FROM items -NB spider_db 2/dev/null) if [ -z $last_data_time ]; then./send_alert.sh 数据库错误 无法获取最新数据时间exit 1 fidb_time$(date -d $last_data_time %s) if [ $(($current_time - $db_time)) -gt 7200 ]; then./send_alert.sh 数据异常 数据超过2小时未更新最后数据时间: $last_data_timeexit 1 fiecho $(date) - 爬虫运行正常4、设置定时任务 # 每5分钟执行一次监控 crontab -e */5 * * * * /path/to/spider_monitor.sh /var/log/spider_monitor.log 21三、高级监控方案使用Prometheus Grafana Alertmanager 1、在爬虫中暴露监控指标 # metrics.py from prometheus_client import start_http_server, Counter, Gauge# 定义指标 PAGES_SCRAPED Counter(spider_pages_scraped, 已抓取页面数) ITEMS_SCRAPED Counter(spider_items_scraped, 已抓取数据项) LAST_SUCCESS Gauge(spider_last_success, 最后成功时间戳)# 在爬虫中更新指标 def record_success(items):ITEMS_SCRAPED.inc(len(items))LAST_SUCCESS.set_to_current_time()# 启动指标服务器在8888端口 start_http_server(8888)2、Prometheus配置 # prometheus.yml scrape_configs:- job_name: spiderstatic_configs:- targets: [spider-server:8888]3、Alertmanager邮件配置 # alertmanager.yml route:receiver: email-alertsreceivers: - name: email-alertsemail_configs:- to: adminexample.comfrom: alertmanagerexample.comsmarthost: smtp.example.com:587auth_username: userauth_password: passsend_resolved: true4、告警规则 # spider_alerts.yml groups: - name: spiderrules:- alert: SpiderDownexpr: up{jobspider} 0for: 5mlabels:severity: criticalannotations:summary: 爬虫服务下线description: 爬虫服务 {{ $labels.instance }} 已停止运行超过5分钟- alert: NoRecentDataexpr: time() - spider_last_success 3600for: 15mlabels:severity: warningannotations:summary: 爬虫数据停止更新description: 爬虫服务 {{ $labels.instance }} 已超过1小时未产生新数据四、异常自动恢复机制 # 在监控脚本中添加重启逻辑 if ! pgrep -f spider.py /dev/null; then./send_alert.sh 进程停止 尝试重启爬虫...cd /path/to/spidersource .venv/bin/activatenohup python spider.py /var/log/spider.log 21 sleep 10if pgrep -f spider.py; then./send_alert.sh 重启成功 爬虫进程已恢复else./send_alert.sh 重启失败 爬虫重启失败需要人工干预fi fi五、增强型监控建议 1、多维度监控 系统资源CPU/内存/磁盘使用率网络状态代理IP可用性、请求成功率业务指标抓取速率、数据质量 2、分级告警 轻微异常发送邮件通知严重故障增加短信/钉钉通知灾难性故障电话通知 3、告警收敛 # 避免重复告警 if [ -f /tmp/last_alert ] [ $(($(date %s) - $(stat -c %Y /tmp/last_alert)) -lt 3600 ]; thenecho 1小时内已发送过告警跳过exit 0 fi touch /tmp/last_alert4、可视化看板 #mermaid-svg-3E2IcACgOCPe8Aqg {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-3E2IcACgOCPe8Aqg .error-icon{fill:#552222;}#mermaid-svg-3E2IcACgOCPe8Aqg .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-3E2IcACgOCPe8Aqg .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-3E2IcACgOCPe8Aqg .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-3E2IcACgOCPe8Aqg .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-3E2IcACgOCPe8Aqg .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-3E2IcACgOCPe8Aqg .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-3E2IcACgOCPe8Aqg .marker{fill:#333333;stroke:#333333;}#mermaid-svg-3E2IcACgOCPe8Aqg .marker.cross{stroke:#333333;}#mermaid-svg-3E2IcACgOCPe8Aqg svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-3E2IcACgOCPe8Aqg .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-3E2IcACgOCPe8Aqg .cluster-label text{fill:#333;}#mermaid-svg-3E2IcACgOCPe8Aqg .cluster-label span{color:#333;}#mermaid-svg-3E2IcACgOCPe8Aqg .label text,#mermaid-svg-3E2IcACgOCPe8Aqg span{fill:#333;color:#333;}#mermaid-svg-3E2IcACgOCPe8Aqg .node rect,#mermaid-svg-3E2IcACgOCPe8Aqg .node circle,#mermaid-svg-3E2IcACgOCPe8Aqg .node ellipse,#mermaid-svg-3E2IcACgOCPe8Aqg .node polygon,#mermaid-svg-3E2IcACgOCPe8Aqg .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-3E2IcACgOCPe8Aqg .node .label{text-align:center;}#mermaid-svg-3E2IcACgOCPe8Aqg .node.clickable{cursor:pointer;}#mermaid-svg-3E2IcACgOCPe8Aqg .arrowheadPath{fill:#333333;}#mermaid-svg-3E2IcACgOCPe8Aqg .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-3E2IcACgOCPe8Aqg .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-3E2IcACgOCPe8Aqg .edgeLabel{background-color:#e8e8e8;text-align:center;}#mermaid-svg-3E2IcACgOCPe8Aqg .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#mermaid-svg-3E2IcACgOCPe8Aqg .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-3E2IcACgOCPe8Aqg .cluster text{fill:#333;}#mermaid-svg-3E2IcACgOCPe8Aqg .cluster span{color:#333;}#mermaid-svg-3E2IcACgOCPe8Aqg div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-3E2IcACgOCPe8Aqg :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 抓取指标 Prometheus Grafana 实时监控看板 请求速率 数据产出 错误率 通过以上方案可以实现对爬虫系统的全面监控在出现异常时及时通知管理员确保爬虫服务的稳定运行。生产环境推荐使用PrometheusGrafanaAlertmanager的组合方案它提供了更强大的监控能力和可视化效果。
http://www.dnsts.com.cn/news/244301.html

相关文章:

  • 做网站用什么代码永城网站建设
  • 可以做众筹的网站有哪些建设企业网站哪家有实力
  • c 语言能开发做网站吗开源官网
  • 小企业网站建设的小知识扬州网站开发公司电话
  • 中文免费网站模板礼品网站模板
  • 网站功能说明书网站图片描述怎么写
  • 网站开发技术支持与保障培训机构需要哪些证件
  • win7电脑做网站免费推广app平台有哪些
  • 海南建设银行分行网站恒华大厦做网站公司
  • 国外有哪些网站可以做电商手机登录微信网页版
  • 网页搜索一个网站全包六年级做网站的软件
  • 做网站背景步骤东昌府做网站推广
  • 做平台的网站wordpress 子页面列表
  • 提供网站制作价格商品网站建设设计思路
  • 网站搭建与生成技术教材网站小图标怎么做
  • 婚纱网站目录优化商城网站建设策划方案
  • 网站建设做账购买备案域名
  • 有哪些做统计销量的网站服装公司介绍
  • wordpress模板图片不显示上海网站优化加盟
  • 网站服务器迁移步骤怎样让公司网站更吸引人
  • 移动网站设计上机考试网站建设优化seo
  • 专门做app网站重庆市建设工程信息网施工许可证查询
  • 网站设计成功案例建网站logo怎么做
  • 筑梦网站建设青岛网站建设在哪
  • 定制产品网站青海省网站建设平台
  • 网站开发教程 视频wordpress 分类目录 导航
  • 太平洋建设21局网站重庆建站模板展示
  • 北京平台网站建设多少钱东莞市网站建设公司哪家好
  • 免费销售网站模板下载安装如何在iis下建设网站
  • 专业平台建设网站关了吗电子邮箱怎么申请