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

智能手表网站wordpress修改源代码

智能手表网站,wordpress修改源代码,成都代做网站,地方网站 域名选择前面两篇讲了有关爬虫系统的搭建以及爬虫中需要的代理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/193824.html

相关文章:

  • 十大免费网站免费下载软件有口碑的南昌网站建设
  • 潍坊网站建设咨询广东省建设工程交易中心网站
  • 网站开发课设报告书wordpress接入对象存储
  • qq直接登录网站无需下载百度网页版官网
  • 如何用VS2017做网站哈尔滨网站建设价格
  • 网站开发专业优势门户网站综合型门户
  • 江苏电商网站开发wordpress数据查询主题
  • 专门做网站需要敲代码么手机网页打不开是什么原因
  • 电商购物网站开发需求分析网络管理系统中驻留在被管对象
  • 苏州网站建设自学苏州知名网站建设公司排名
  • 网络营销型网站建设的内容招网站建设销售
  • wordpress接入短信网站的内部优化公司
  • 有后台的网站怎么做黄山网络推广公司
  • 乐都网站建设哪家好肥城网站建设价格
  • 以下哪一项不属于seo对网站推广的作用上海公司章程在哪里可以查询打印
  • 微网站建设比较全面的是赣州网站推广公司电话
  • 知乎网站建设入门书2019年安徽省第23批二级建造师公示
  • 灯光照明网站建设铁盒 东莞网站建设
  • 做网站网页多少钱建设一个大型网站需要多少钱
  • 合肥专业做网站公司有哪些佛山全网营销推广
  • 体育用品东莞网站建设网站建设的技术可行性
  • 织梦网站登录网络游戏开发培训
  • 站外引流推广渠道网站建设与管理试卷A
  • jsp网站开发四库广告公司怎么宣传自己
  • 有域名后怎么建网站做牙工作网站
  • 网站优化效果怎么样定制营销的推广方式
  • 企业高端网站建设网站的后缀名怎么建设
  • 外贸做的社交网站有哪些网页制作公司介绍图片
  • s吗网站虚拟主机犀牛云网站建设费用
  • 常用的设计师网站恩施网页设计