部署DeepSeek模型,进群交流最in玩法!
立即加群
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Zabbix告警分析新革命:DeepSeek四大创新场景助力智能运维

Zabbix告警分析新革命:DeepSeek四大创新场景助力智能运维

原创
作者头像
Zabbix
修改于 2025-03-11 06:31:41
修改于 2025-03-11 06:31:41
5090
举报
文章被收录于专栏:Zabbix中国官方Zabbix中国官方

【导读】⾯对⽇益复杂的IT环境,如何⾼效分析监控数据并快速响应已成为运维工作中的关键挑战。本文深入探讨了DeepSeek与Zabbix结合的创新性应用,包括一键式智能告警分析、Zabbix文档知识库助手功能以及钉钉告警增强功能。通过详尽的部署指南和实用脚本,展示了DeepSeek如何助力提升故障排查效率,为运维工程师与系统管理员提供高效解决方案。

【作者】程哲,Zabbix开源社区代表,2024Zabbix中国峰会演讲嘉宾,Zabbix7.0中文手册译者

1 前置准备(部署zabbix7.0及准备DeepSeek模型API

关于Zabbix的详尽安装步骤,本文不再展开讨论。笔者所构建的运行环境基于Zabbix 7.0、Nginx以及MySQL 8.0版本,且文中提及的所有应用场景均已在该特定配置环境下通过了实际验证。

1.1 私有化采用Ollama工具部署DeepSeek-R1模型(物理资源满足需求时参考)

Ollama是一款强大的私有化部署大模型工具,专为简化AI模型的部署和管理而设计,在满足物理资源需求的前提下私有化部署DeepSeek-R1模型时可采用ollama部署,在Linux环境中部署流程参考如下:

① 下载一键安装Ollama脚本并执行:

curl -fsSL http://113.141.80.105:9999/install.sh | sh

② 下载并运行deepseek-r1,按照自己硬件环境选择不同参数量的模型下载并运行即可

ollama run deepseek-r1:14b

DeepSeekR1各版本使用场景及参考硬件配置如下:

1.2 申请DeepSeek-R1官网API(建议)

官方API申请地址:https://platform.deepseek.com/sign_in

推荐大家使用DeepSeek官方API,不仅能提供稳定可靠的服务,而且成本极低,每百万tokens仅需8元。实际测试显示,调用API 30次仅消耗约20,000 tokens,费用约为0.1元,性价比非常高。申请后,请务必妥善保管您的API密钥。

2 场景一:Zabbix前端一键调用DeepSeek-API智能分析告警

通过在Zabbix前端集成DeepSeek分析功能,用户可以实现一键智能分析告警,快速生成详细的故障解析和解决方案建议。这一功能可以大幅提升故障排查的效率,还降低了运维人员的工作负担,确保系统稳定运行的同时,节省宝贵的时间和资源。

2.1 Zabbix 前端创建全局脚本

① 进入Zabbix首页路径:导航至 “ 告警 > 脚本 > 创建脚本”。

② 配置脚本信息:

名称:可自定义设置。

范围:选择 “手动执行事件操作”。

菜单路径:自定义菜单路径,便于快速找到。

类型:选择 “脚本”。

执行位置:选择 “zabbix proxy或server”。

③ 命令栏内输入:

/etc/zabbix/scripts/send_alert_to_ai.sh "{TRIGGER.NAME}" "{TRIGGER.SUBJECT}" "{HOST.NAME}" "{HOST.IP}" "{EVENT.TIME}" "{TRIGGER.SEVERITY}"

2.2 zabbix - server 服务器内新建调取 API 脚本

① 修改 zabbix - server 配置文件,打开全局脚本

vi /etc/zabbix/zabbix_server.conf

将 EnableGlobalscripts 设置为 1 以启用全局脚本:

EnableGlobalscripts=1

然后重启zabbix服务

systemctl restart zabbix-server

② 在zebbix-server上创建本地脚本

mkdir /etc/zabbix/scripts && cd /etc/zabbix/scripts,注意,如前端提示无法找到脚本文件,请尝试将脚本移至nginx代理的目录下。

vi send_alert_to_ai.sh

③ 调用deepseek官方api脚本如下,注意DeepSeek KEY请替换为您的API_KEY

#!/bin/bash

DeepSeek API配置

API_URL="https://api.deepseek.com/chat/completions"

API_KEY="xxxxxxxxxxxxxxxxxxxx"

获取传递的参数作为告警信息

TRIGGER_NAME="$1"

ALERT_SUBJECT="$2"

HOSTNAME="$3"

HOST_IP="$4"

EVENT_TIME="$5"

TRIGGER_SEVERITY="$6"

构建更简洁的告警信息JSON格式

alert_info=$(cat <<EOF

{

代码语言:json
AI代码解释
复制
"model": "deepseek-chat",
代码语言:json
AI代码解释
复制
"messages": [
代码语言:json
AI代码解释
复制
    {"role": "system", "content": "你是一个专注于快速响应系统告警的助手。"},
代码语言:json
AI代码解释
复制
    {"role": "user", "content": "收到以下告警信息:\n\n触发名称: $TRIGGER_NAME\n告警主题: $ALERT_SUBJECT\n告警主机: $HOSTNAME\n主机IP: $HOST_IP\n告警时间: $EVENT_TIME\n警报等级: $TRIGGER_SEVERITY\n\n请以简短专业的语言告诉我发生告警的原因和处理措施,字数控制在300字以内。"}
代码语言:json
AI代码解释
复制
],
代码语言:json
AI代码解释
复制
"stream": false

}

EOF

)

发送POST请求并捕获响应和HTTP状态码

response=$(curl -s -w "\n%{http_code}" -X POST "$API_URL" \

代码语言:json
AI代码解释
复制
-H "Content-Type: application/json" \
代码语言:json
AI代码解释
复制
-H "Authorization: Bearer $API_KEY" \
代码语言:json
AI代码解释
复制
-d "$alert_info")

分离HTTP状态码和响应体

http_code=$(echo "$response" | tail -n1)

response_body=$(echo "$response" | sed '$d')

解析并提取content字段

if "$http_code" -eq 200 ; then

代码语言:json
AI代码解释
复制
# 使用jq工具解析JSON
代码语言:json
AI代码解释
复制
if ! command -v jq &> /dev/null; then
代码语言:json
AI代码解释
复制
    echo "jq could not be found, please install it first."
代码语言:json
AI代码解释
复制
    exit 1
代码语言:json
AI代码解释
复制
fi
代码语言:json
AI代码解释
复制
# 提取content字段并格式化输出
代码语言:json
AI代码解释
复制
content=$(echo "$response_body" | jq -r '.choices[0].message.content')
代码语言:json
AI代码解释
复制
echo -e "分析结果:\n$content"

else

代码语言:json
AI代码解释
复制
echo "错误: HTTP 状态码 $http_code, 响应: $response_body"

fi

④ 调用私有化ollama部署的api脚本如下,注意脚本内api地址请替换为您的地址,model类型请更换为您运行的deepseek模型版本

#!/bin/bash

Ollama API配置

API_URL="http://xxx.xxx.xxx.xxx:11434/api/chat"

使用函数来转义特殊字符

escape_json() {

代码语言:json
AI代码解释
复制
if [ -z "$1" ]; then
代码语言:json
AI代码解释
复制
    echo '""'
代码语言:json
AI代码解释
复制
else
代码语言:json
AI代码解释
复制
    python3 -c "import json, sys; print(json.dumps(sys.argv[1]))" "$1"
代码语言:json
AI代码解释
复制
fi

}

获取传递的参数作为告警信息

TRIGGER_NAME=$(escape_json "$1")

ALERT_SUBJECT=$(escape_json "$2")

HOSTNAME=$(escape_json "$3")

HOST_IP=$(escape_json "$4")

EVENT_TIME=$(escape_json "$5")

TRIGGER_SEVERITY=$(escape_json "$6")

构建更简洁的告警信息JSON格式

alert_info=$(jq -n \

代码语言:json
AI代码解释
复制
--arg model "deepseek-r1:14b" \
代码语言:json
AI代码解释
复制
--arg role "user" \
代码语言:json
AI代码解释
复制
--arg content "$(printf '收到以下告警信息:\n\n触发名称: %s\n告警主题: %s\n告警主机: %s\n主机IP: %s\n告警时间: %s\n警报等级: %s\n\n请以简短专业的语言告诉我发生告警的原因和处理措施,字数控制在300字以内。\n' "$TRIGGER_NAME" "$ALERT_SUBJECT" "$HOSTNAME" "$HOST_IP" "$EVENT_TIME" "$TRIGGER_SEVERITY")" \
代码语言:json
AI代码解释
复制
'{
代码语言:json
AI代码解释
复制
    "model": $model,
代码语言:json
AI代码解释
复制
    "messages": [{
代码语言:json
AI代码解释
复制
        "role": $role,
代码语言:json
AI代码解释
复制
        "content": $content
代码语言:json
AI代码解释
复制
    }]
代码语言:json
AI代码解释
复制
}')

发送POST请求并捕获响应和HTTP状态码

response=$(curl -s -w "\n%{http_code}" -X POST "$API_URL" \

代码语言:json
AI代码解释
复制
-H "Content-Type: application/json" \
代码语言:json
AI代码解释
复制
-d "$alert_info")

分离HTTP状态码和响应体

http_code=$(echo "$response" | awk 'END{print $NF}')

response_body=$(echo "$response" | sed '$d')

if "$http_code" -eq 200 ; then

代码语言:json
AI代码解释
复制
# 使用jq工具解析JSON
代码语言:json
AI代码解释
复制
if ! command -v jq &> /dev/null; then
代码语言:json
AI代码解释
复制
    echo "jq could not be found, please install it first."
代码语言:json
AI代码解释
复制
    exit 1
代码语言:json
AI代码解释
复制
fi
代码语言:json
AI代码解释
复制
content=$(echo "$response_body" | jq -r '.message.content // empty')
代码语言:json
AI代码解释
复制
# 删除分析结果前的文字(如果有)
代码语言:json
AI代码解释
复制
clean_content=$(echo "$content" | sed '/^<think>/,/^<\/think>$/d' | tr -d '\n' | sed 's/^\s*//;s/\s*$//')
代码语言:json
AI代码解释
复制
if [ -z "$clean_content" ]; then
代码语言:json
AI代码解释
复制
    echo "无法从响应中提取内容"
代码语言:json
AI代码解释
复制
else
代码语言:json
AI代码解释
复制
    echo -e "分析结果:\n$clean_content"
代码语言:json
AI代码解释
复制
fi

else

代码语言:json
AI代码解释
复制
echo "错误: HTTP 状态码 $http_code, 响应: $response_body"

fi

赋予脚本执行权限:

chmod +x /etc/zabbix/scripts/send_alert_to_ai.sh

注意:脚本依赖jq处理和解析 JSON 数据,用来过滤、映射、聚合以及格式化 JSON 数据。如果您的系统上没有安装 jq,可以通过以下命令进行安装:

对于 Debian/Ubuntu 系统:

apt-get update

apt-get install jq

对于 CentOS/RHEL 系统:

yum install epel-release

yum install jq

2.3 Zabbix 仪表盘进行调用效果展示

完成上述步骤后,就可以在 Zabbix 仪表盘的当前问题小组件中直接调用展示,直观地查看告警分析结果。

执行后效果如下:

2.4 可选优化项目

① 执行后发现输出框较小,浏览不方便,我们可以通过修改前端css文件实现优化:

cd /usr/share/nginx/html/assets/styles/ && cp blue-theme.css blue-theme.css.bak

vi /usr/share/nginx/html/assets/styles/blue-theme.css

然后,在文件末尾添加:

#execution-output {

代码语言:json
AI代码解释
复制
height: 500px; /* 调整为你希望的高度 */
代码语言:json
AI代码解释
复制
width: 540px; /* 可选:根据需求调整宽度 */
代码语言:json
AI代码解释
复制
overflow-y: auto; /* 当内容超出设定高度时显示滚动条 */

}

保存退出编辑器后,清除浏览器缓存,重新加载页面,最终显示如下:

② 执行一键分析脚本后输出反应慢如何优化?

在实测中,预计返回300字结果的时间约为20~30秒。您也可以通过调整脚本中的预置提示词来提高响应速度,但这会降低分析内容的丰富度。因此,建议根据实际需求调整脚本提示词中的回复字数,以平衡速度与内容深度。

3 场景二:基于DeepSeek构建Zabbix官方文档知识库问答系统

通过集成Zabbix+Maxkb+DeepSeek,可以轻松构建一个Zabbix官方文档的知识库问答系统。该系统能够自动解析和理解Zabbix官方文档内容,并为用户提供精准的问答服务。无论是查找特定配置指南、故障排查步骤,还是获取最佳实践建议,用户只需输入问题,系统即可快速返回准确答案。不仅可以提升信息检索的效率,还大幅减少了运维人员查阅文档的时间,确保问题得以迅速解决,提升整体工作效率。

3.1 系统架构

Zabbix:需提前部署完Zabbix,建议5.0以上版本。

Maxkb:一款基于大语言模型的开源知识库问答系统,支持快速上传文档、自动爬取在线文档,并能无缝嵌入第三方业务系统,为企业提供智能问答和信息管理的高效解决方案。

Deepseek:建议调用deepseek官方api,也可本地采用ollama工具私有部署。

图片 8

3.2 安装并配置Maxkb

部署环境选用Linux系统,安装Maxkb前请提前安装好Docker,Docker安装Maxkb命令如下:

docker run -d --name=maxkb -p 8080:8080 -v ~/.max

通过浏览器访问 MaxKB:

http://目标服务器 IP 地址:8080

默认登录信息

用户名:admin

默认密码:MaxKB@123..

3.3 配置模型参考一(DeepSeek官方-API)

进入系统管理-模型设置-添加模型列表中,列出了所有可调用模型,选择添加deepseek模型,模型名称填写deepseek-api,模型类型选择大语言模型,基础模型选择“deepseek-chat”,最后将申请到的API Key填入即可。

图片 9

3.4 配置模型参考二(基于Ollama私有化部署的deepseek)

进入系统管理-模型设置-添加模型列表中,选择添加Ollama模型,名称可填写deepseek-api,模型类型选择大语言模型,基础模型手动输入“deepseek-r1:7b”(以实际部署模型版本为准),API域名填写部署ollama的服务器ip+11434端口号,API Key未设置的话可输入任意字符,点击确定即可。

图片 10

3.5 新建知识库并配置

点击创建知识库,按需填入知识库名称及描述等必填。

注意创建知识库时您可以选择两种类型:通用型和Web站点型。

通用型允许您上传或手动录入文档。例如,您可以上传本地的Zabbix 7.0手册PDF文件。

Web站点型则可以直接同步网站文本数据。对于Zabbix官方文档,您可以使用以下网址进行同步:https://www.zabbix.com/documentation/7.0/zh/manual

无论选择哪种方式,上传完成后系统将自动进行索引并进行向量化处理。只需等待索引完成即可。

图片 11

3.6 新建应用并配置

随后,选择“应用”并创建新应用。输入自定义名称和描述后,选择“简单配置”即可快速完成设置。如果需要更复杂的流程,您也可以进行高级编排,但本文不再展开讨论这部分内容。

图片 12

在设置中,根据实际需求修改AI模型和自定义开场白,并关联已上传的知识库。您可以在参数设置中调整检索模式和召回分段,通过测试不断优化,直至达到满意的效果。

图片 13

3.7 嵌入至Zabbix前端

您还可以将助手添加到Zabbix前端,以便在页面上随时调用。具体步骤为:进入“应用” -> “Zabbix知识库小助手” -> “概览” -> “嵌入第三方”。

图片 14

找到浮窗模式,复制所有代码,编辑Zabbix前端文件,根据zabbix安装路径查找,需要编辑page_footer.php和layout.htmlpage.php两个前端文件,具体行数可能因版本不同有所差异,此处仅以笔者环境为例:

vi /usr/share/zabbix/include/page_footer.php +62

在第62行加入

echo ' ***(此处为maxkb中复制的代码)';

vi /usr/share/zabbix/app/views/layout.htmlpage.php +96

在第96行加入

echo ' ***(此处为maxkb中复制的代码)';

最后重启zabbix即可

systemctl restart zabbix-server

3.8 效果展示

图片 15

4 场景三:为钉钉告警添加DeepSeek深度分析

通过集成DeepSeek深度分析功能,钉钉推送告警信息时能自动解析告警,提供精准故障诊断和解决方案,助力运维人员快速定位并解决问题,提高系统维护效率。

4.1 钉钉告警群添加机器人

在钉钉群中创建机器人,并在安全设置中勾选关键词“告警”。然后获取 webhook 地址并妥善保存。

图片 16

4.2 编辑告警脚本

脚本使用Python3解释器执行,需要确保系统上已安装Python 3以及对应的python库、工具

对于Ubuntu/Debian系统

apt update

apt install python3 python3-pip

pip3 install requests

对于CentOS/RHEL系统

dnf install python3

pip3 install requests

然后编辑脚本:

vi /usr/lib/zabbix/alertscripts/deepseekdingding.py

脚本内容如下,请将脚本中的钉钉 Webhook 地址和 DeepSeek API 密钥替换为您的实际值:

#!/usr/bin/env python3

#coding:utf-8

import requests

import sys

import json

class DingTalkBot(object):

代码语言:json
AI代码解释
复制
# 发送消息
代码语言:json
AI代码解释
复制
def send_news_message(self, webhook_url, subject, content, ai_response):
代码语言:json
AI代码解释
复制
    url = webhook_url
代码语言:json
AI代码解释
复制
    data = {
代码语言:json
AI代码解释
复制
        "msgtype": "markdown",
代码语言:json
AI代码解释
复制
        "markdown": {
代码语言:json
AI代码解释
复制
            "title": subject,
代码语言:json
AI代码解释
复制
            "text": f"{subject}\n{content}\n\n【DeepSeek分析】:\n\n{ai_response}"  
代码语言:json
AI代码解释
复制
        }
代码语言:json
AI代码解释
复制
    }
代码语言:json
AI代码解释
复制
    headers = {'Content-Type': 'application/json'}
代码语言:json
AI代码解释
复制
    response = requests.post(url, headers=headers, data=json.dumps(data))
代码语言:json
AI代码解释
复制
    return response

if name == 'main':

代码语言:json
AI代码解释
复制
WEBHOOK_URL = 'https://oapi.dingtalk.com/robot/send?access_token=xxxxxxxx'  # 钉钉Webhook地址
代码语言:json
AI代码解释
复制
API_URL = 'https://api.deepseek.com/chat/completions'
代码语言:json
AI代码解释
复制
API_KEY = 'sk-xxxxxxxxxxxxxx'  # DeepSeek API密钥
代码语言:json
AI代码解释
复制
if len(sys.argv) < 3:
代码语言:json
AI代码解释
复制
    print("Error: Not enough arguments provided.")
代码语言:json
AI代码解释
复制
    sys.exit(1)
代码语言:json
AI代码解释
复制
subject = str(sys.argv[1])  
代码语言:json
AI代码解释
复制
content = str(sys.argv[2])  
代码语言:json
AI代码解释
复制
print(f"Received subject: {subject}")
代码语言:json
AI代码解释
复制
print(f"Received content: {content}")
代码语言:json
AI代码解释
复制
try:
代码语言:json
AI代码解释
复制
    headers = {
代码语言:json
AI代码解释
复制
        'Authorization': f'Bearer {API_KEY}',
代码语言:json
AI代码解释
复制
        'Content-Type': 'application/json',
代码语言:json
AI代码解释
复制
    }
代码语言:json
AI代码解释
复制
    payload = {
代码语言:json
AI代码解释
复制
        "model": "deepseek-chat",  # 使用指定的DeepSeek模型
代码语言:json
AI代码解释
复制
        "messages": [
代码语言:json
AI代码解释
复制
            {"role": "user", "content": f"你是一个专业的IT运维专家,请使用简洁且专业的语言告诉我发生这些告警的原因和处理建议,字数控制在100字以内{content}"}
代码语言:json
AI代码解释
复制
        ]
代码语言:json
AI代码解释
复制
    }
代码语言:json
AI代码解释
复制
    ai_response = requests.post(API_URL, headers=headers, json=payload)
代码语言:json
AI代码解释
复制
    ai_response.raise_for_status()  # 确保请求成功
代码语言:json
AI代码解释
复制
    ai_response_content = ai_response.json().get('choices', [{}])[0].get('message', {}).get('content', '')
代码语言:json
AI代码解释
复制
except Exception as e:
代码语言:json
AI代码解释
复制
    ai_response_content = "\n接口调用超时或出错,请检查配置后重试"
代码语言:json
AI代码解释
复制
bot = DingTalkBot()
代码语言:json
AI代码解释
复制
response = bot.send_news_message(WEBHOOK_URL, subject, content, ai_response_content)
代码语言:json
AI代码解释
复制
if response.status_code == 200:
代码语言:json
AI代码解释
复制
    print("消息发送成功")
代码语言:json
AI代码解释
复制
else:
代码语言:json
AI代码解释
复制
    print(f"消息发送失败: {response.text}")

保存退出后给脚本赋予执行权限

chmod +x deepseekdingding.py

4.3 编辑Zabbix前端

① 新建告警媒介并添加消息模板

进入告警-媒介-创建媒介类型,填写内容如下:

名称 ai-钉钉

类型 脚本

脚本名称 deepseekdingding.py

脚本参数

{ALERT.MESSAGE}

{ALERT.SUBJECT}

图片 17

图片 18

② 新建告警动作

进入告警-动作-触发器动作-创建动作,名称可填写钉钉告警-deepseek,条件按需要勾选

图片 19

在动作中的操作选项,编辑如下:

Send to media type ai-钉钉

主题 故障告警: {EVENT.NAME}

消息

【Zabbix告警通知】

告警组:{TRIGGER.HOSTGROUP.NAME}

告警主机:{HOSTNAME1}

主机IP:{HOST.IP}

告警时间:{EVENT.DATE} {EVENT.TIME}

警报等级:{TRIGGER.SEVERITY}

问题信息:{TRIGGER.NAME}

事件ID: {EVENT.ID}

图片 20

图片 21

更新确认即可。

③ 给用户配置通知权限

进入用户-用户-告警媒介中新增一条如下:

图片 22

添加后,点击更新即可。

4.4 效果展示

图片 23

5 场景四:一键进行系统服务深度分析

通过结合Zabbix前端一键脚本调用系统服务状态、配置文件、日志文件,可以实现针对某项特定服务的深度巡检分析,效果展示如下:

6 后记:DeepSeek与Zabbix结合的实践与感想

通过整合DeepSeek的智能分析能力与Zabbix的强大监控功能,我们成功实现Zabbix前端一键智能告警分析、构建高效的知识库问答系统,增强钉钉告警机制,并探讨了一键进行系统服务深度分析。这些应用场景的集成不仅可以提高故障诊断的速度与准确性,还能有效缓解运维团队的工作压力。智能化监控与分析的应用,使我们在面对复杂且多变的IT环境时能够迅速响应并解决问题,从而确保系统的高可用性和稳定性。

预告:该场景笔者将在3月29日的zabbix meetup郑州站上与各位共同研讨,后续将在优化后提供详细的部署流程,敬请期待!

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
2019年搜索引擎蜘蛛爬虫名称最新整理总汇
一般我们的网站能在百度等搜索引擎上搜到,说明该搜索引擎的爬虫爬到了我们的网站并且被搜索引擎收录。
德顺
2019/11/13
6.1K0
2019年搜索引擎蜘蛛爬虫名称最新整理总汇
常用User Agent整理
采集什么的喜欢这个了。 OLD N97 Mozilla/5.0 (SymbianOS/9.4; Series60/5.0 NokiaN97-1/20.0.019; Profile/MIDP-2.1 Configuration/CLDC-1.1) AppleWebKit/525 (KHTML, like Gecko) BrowserNG/7.1.18124 BlackBerry - Playbook 2.1 Mozilla/5.0 (PlayBook; U; RIM Tablet OS 2.1.0; en-U
老高的技术博客
2022/12/27
8140
百度蜘蛛的 User Agent
移动UA: Mozilla/5.0 (Linux;u;Android 4.2.2;zh-cn;) AppleWebKit/534.46 (KHTML,likeGecko) Version/5.1 Mobile Safari/10600.6.3 (compatible; Baiduspider/2.0;+http://www.baidu.com/search/spider.html) PC UA: Mozilla/5.0 (compatible; Baiduspider/2.0;+http://www.bai
Denis
2023/04/15
4380
如何通过 User-Agent 识别百度蜘蛛
如果有大量的百度蜘蛛抓取网站就需要注意了:有可能是其他爬虫伪造百度蜘蛛恶意抓取网站。
太后
2021/10/12
2K0
如何通过 User-Agent 识别百度蜘蛛
PHP判断来访者是否是搜索引擎的爬虫
我们可以通过HTTP_USER_AGENT来判断是否是蜘蛛,搜索引擎的蜘蛛都有自己的独特标志,下面列取了一部分。
程序猿的栖息地
2022/04/29
7540
最全网站日志分析攻略,全面解析百度蜘蛛!
大家进行网站日志分析的时候,常见到很多不同IP段的百度蜘蛛,为了方便大家更好的进行日志分析,下面列举了百度不同IP段常见蜘蛛的一些详情情况,及所谓的降权蜘蛛,沙盒蜘蛛,高权重蜘蛛等等。
用户9229846
2021/12/08
3.7K0
最全网站日志分析攻略,全面解析百度蜘蛛!
如何辨别真伪百度蜘蛛Baiduspider
我们在根据网站日志分析搜索引擎蜘蛛抓取网页的记录时,实际上很多站点都是有一些伪装称baiduspider的到访者的。这些数据会严重影响我们对日志分析后的判断。
晨曦云
2021/11/25
1.5K0
Robots.txt – 禁止爬虫
robots.txt用于禁止网络爬虫访问网站指定目录。robots.txt的格式采用面向行的语法:空行、注释行(以#打头)、规则行。规则行的格式为:Field: value。常见的规则行:User-Agent、Disallow、Allow行。
全栈程序员站长
2022/07/07
2.2K0
get,post请求实例
/** * Describe:Curl post函数 * @param $url * @param array $data * @param bool $isPost * @param int $coding * @param bool $isForge * @return bool|string * Created by zhangzq at 2021/4/26 17:22 */ function curlPost($url, $data = array(), $isPost =
OwenZhang
2021/12/08
1.1K0
get,post请求实例
尝试百度Spider抓取异常问题
介于网络环境不同,很多人有需求在保留国内域名 DNS 服务器不改变的情况下,还能接入国外服务商比如 CloudFl...
吴蛋蛋
2023/03/14
1.3K1
尝试百度Spider抓取异常问题
服务器屏蔽爬虫的方案
进服务器后进入这个路径 nginx/conf 新建一个文件,文件名可以为:agent_deny.conf 复制以下代码到此文件:
学派客
2023/04/06
1.6K1
php记录搜索引擎爬行记录的实现代码
//记录搜索引擎爬行记录 $searchbot = get_naps_bot();
用户8832582
2021/07/13
5660
服务器反爬虫攻略:Apache/Nginx/PHP禁止某些User Agent抓取网站
我们都知道网络上的爬虫非常多,有对网站收录有益的,比如百度蜘蛛(Baiduspider),也有不但不遵守 robots 规则对服务器造成压力,还不能为网站带来流量的无用爬虫,比如宜搜蜘蛛(YisouSpider)(最新补充:宜搜蜘蛛已被 UC 神马搜索收购!所以本文已去掉宜搜蜘蛛的禁封!==>相关文章)。最近张戈发现 nginx 日志中出现了好多宜搜等垃圾的抓取记录,于是整理收集了网络上各种禁止垃圾蜘蛛爬站的方法,在给自己网做设置的同时,也给各位站长提供参考。 一、Apache ①、通过修改 .htacce
张戈
2018/03/23
2.5K0
利用nginx来屏蔽指定的user_agent的访问以及根据user_agent做跳转
对于做国内站的我来说,我不希望国外蜘蛛来访问我的网站,特别是个别垃圾蜘蛛,它们访问特别频繁。这些垃圾流量多了之后,严重浪费服务器的带宽和资源。通过判断user agent,在nginx中禁用这些蜘蛛可以节省一些流量,也可以防止一些恶意的访问。
用户1349575
2022/02/22
6.2K0
利用Nginx反向代理来简单镜像HTTP(S)网站的方法
然后访问你的域名看一看是否成功镜像,需要注意的一点是,如果被镜像的网站设置了防盗链,那么静态文件(js/css/图片)可能无法显示,这就没办法了。
用户4988085
2021/09/17
8.1K0
全站启用SSL之后,如何兼容不支持https抓取的搜索引擎?
还是在今年 5 月份,百度就跳出来,宣布成为国内首个支持 https 的搜索引擎,结果呢?呵呵... 一、案例 ①、抓取诊断 全站开启并强制 https 之后,在百度站长平台使用抓取诊断发现,其实百度
张戈
2018/03/21
2.1K0
全站启用SSL之后,如何兼容不支持https抓取的搜索引擎?
[技术向] 用Docker自建 Vaultwarden (Bitwarden_rs)
Bitwarden是一个免费、自由且开源的的密码管理器,服务端也完全开源,可以自己搭建。 本文将咱自建bitwarden的过程记录下来。
Nyarime
2021/12/14
13.1K3
[技术向] 用Docker自建 Vaultwarden (Bitwarden_rs)
Python爬取哔哩哔哩(bilibili)视频
本篇文章主要给大家讲解下如实使用python 爬取哔哩哔哩中的视频,首先我是一名大数据开发工程师,爬虫只是我的一个业余爱好,喜欢爬虫的小伙伴可以一起交流。好了多了就不多说了喜欢的朋有可以收藏,转发请复原文链接谢谢。
大数据老哥
2021/02/04
2.8K1
Python爬取哔哩哔哩(bilibili)视频
awk命令整理
format是字符串,包含要逐字打印的文本,穿插着format之后的每个值该如何打印的规格(specification),一个规格是一个%符,后面跟着一些字符,用来控制一个value的格式。
dogfei
2020/07/31
8840
Docker部署Vaultwarden(Bitwarden_RS)
最近又有超星学习通的数据库被脱裤的消息,涉及了1.6亿条个人信息,又是一次密码大泄露,所以我也开始考虑使用密码管理器了。
SakuraRain
2022/06/22
3.4K0
推荐阅读
相关推荐
2019年搜索引擎蜘蛛爬虫名称最新整理总汇
更多 >
LV.5
腾讯云TDP先锋会员
目录
  • DeepSeek API配置
  • 获取传递的参数作为告警信息
  • 构建更简洁的告警信息JSON格式
  • 发送POST请求并捕获响应和HTTP状态码
  • 分离HTTP状态码和响应体
  • 解析并提取content字段
  • Ollama API配置
  • 使用函数来转义特殊字符
  • 获取传递的参数作为告警信息
  • 构建更简洁的告警信息JSON格式
  • 发送POST请求并捕获响应和HTTP状态码
  • 分离HTTP状态码和响应体
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档