精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

智能運(yùn)維新范式:Zabbix 與 DeepSeek 協(xié)同構(gòu)建自動(dòng)分析報(bào)表

原創(chuàng) 精選
人工智能
今天,我們通過(guò)一個(gè)案例,探索全新的協(xié)同模式:通過(guò) DeepSeek 大模型與 Zabbix 的技術(shù)融合,搭建一套智能分析報(bào)表應(yīng)用,讓 AI 自動(dòng)解析監(jiān)控?cái)?shù)據(jù)、生成專業(yè)分析報(bào)告,為運(yùn)維決策提供精準(zhǔn)支持。

作者 | 崔皓

審校 | 重樓

開篇

在人工智能技術(shù)飛速迭代的今天,大模型正以驚人的速度滲透到各行各業(yè),從金融風(fēng)控到醫(yī)療診斷,從智能制造到內(nèi)容創(chuàng)作,通用人工智能的能力邊界不斷被拓展。隨著技術(shù)的成熟,各行業(yè)不再滿足于通用大模型的基礎(chǔ)能力,而是開始將其與垂直領(lǐng)域深度融合,通過(guò)定制化開發(fā)解決行業(yè)痛點(diǎn) —— 運(yùn)維領(lǐng)域同樣迎來(lái)了這場(chǎng)智能化變革。

在日常的 IT 運(yùn)維工作中,Zabbix 作為廣泛使用的監(jiān)控系統(tǒng),時(shí)刻守護(hù)著服務(wù)器、網(wǎng)絡(luò)設(shè)備和業(yè)務(wù)系統(tǒng)的穩(wěn)定運(yùn)行。當(dāng) CPU 利用率突增、內(nèi)存占用異常或服務(wù)響應(yīng)延遲時(shí),它能第一時(shí)間捕獲異常數(shù)據(jù)并觸發(fā)告警。但面對(duì)海量的監(jiān)控指標(biāo)和告警信息,運(yùn)維人員往往需要花費(fèi)大量時(shí)間分析根因、制定對(duì)策,效率瓶頸逐漸顯現(xiàn)。

今天,我們通過(guò)一個(gè)案例,探索全新的協(xié)同模式:通過(guò) DeepSeek 大模型與 Zabbix 的技術(shù)融合,搭建一套智能分析報(bào)表應(yīng)用,讓 AI 自動(dòng)解析監(jiān)控?cái)?shù)據(jù)、生成專業(yè)分析報(bào)告,為運(yùn)維決策提供精準(zhǔn)支持。

為了讓大家對(duì)案例有一個(gè)整體的認(rèn)識(shí),會(huì)詳細(xì)描述程序安裝、具體操作、代碼執(zhí)行的每個(gè)步驟。包括: Zabbix 安裝、Server 與 Agent 關(guān)聯(lián),設(shè)置媒介、觸發(fā)器與動(dòng)作,以及DeepSeek處理監(jiān)控參數(shù)并生成報(bào)表等四大部分,全程干貨大家坐穩(wěn)扶好,我發(fā)車。

一、安裝 Zabbix

Zabbix 是一款開源的企業(yè)級(jí)監(jiān)控解決方案,由 Zabbix Server 和 Zabbix Agent 兩部分核心組件構(gòu)成。Server 作為監(jiān)控中樞,負(fù)責(zé)接收、存儲(chǔ)監(jiān)控?cái)?shù)據(jù)并觸發(fā)告警,支持分布式部署以應(yīng)對(duì)大規(guī)模監(jiān)控場(chǎng)景;Agent 則部署在被監(jiān)控設(shè)備上,實(shí)時(shí)采集 CPU、內(nèi)存、磁盤等硬件及系統(tǒng)指標(biāo),通過(guò)主動(dòng)或被動(dòng)模式將數(shù)據(jù)推送至 Server。

二者協(xié)同工作,可實(shí)現(xiàn)對(duì)服務(wù)器、網(wǎng)絡(luò)設(shè)備、應(yīng)用程序等 IT 基礎(chǔ)設(shè)施的全面監(jiān)控,憑借靈活的觸發(fā)器配置和豐富的可視化功能,成為運(yùn)維人員掌握系統(tǒng)狀態(tài)的重要工具。接下來(lái)我們需要通過(guò) Docker 的方式安裝二者,并在其基礎(chǔ)上進(jìn)行報(bào)警的設(shè)置和智能報(bào)表的生成。

前置條件

在開啟 Zabbix 與 DeepSeek 的智能報(bào)表開發(fā)之旅前,需先安裝好 Docker。Docker 是一款開源的應(yīng)用容器引擎,能助力開發(fā)者將應(yīng)用及其依賴便捷打包至可移植的容器內(nèi),實(shí)現(xiàn)跨環(huán)境快速部署,具有輕量、高效等優(yōu)勢(shì)。前往 Docker 官網(wǎng),依據(jù)自身操作系統(tǒng)(Windows、Mac、Linux 等),下載對(duì)應(yīng)版本,按安裝向?qū)崾就瓿刹僮鳎唧w的安裝步驟比較簡(jiǎn)單,在這里就不贅述了。

通過(guò)如下命令確認(rèn)安裝。

docker --version

如果看到如下輸出:

Docker version 28.1.1, build 4eba377

說(shuō)明 Docker 已經(jīng)安裝好了。

下載 Zabbix docker yaml 文件

完成了 Docker 安裝之后,我們開始Zabbix 的安裝,首先就是 Zabbix Server 了。 由于 Zabbix Server 部署涉及 server、mysql、frontend 等多個(gè)鏡像,逐個(gè)用 docker 命令安裝配置繁瑣且易出錯(cuò)。推薦通過(guò) Docker Compose一鍵部署,Docker Compose 是 Docker 官方推出的容器編排工具,專為簡(jiǎn)化多容器應(yīng)用的部署與管理而生。其核心原理是通過(guò)一個(gè) YAML 配置文件,集中定義應(yīng)用所需的所有容器、網(wǎng)絡(luò)、存儲(chǔ)等資源及其關(guān)聯(lián)關(guān)系,比如 Zabbix 的 server、mysql、frontend 等組件的鏡像版本、環(huán)境變量、端口映射、依賴關(guān)系等。

使用時(shí),只需執(zhí)行一條命令,Docker Compose 便會(huì)根據(jù)配置文件自動(dòng)創(chuàng)建并啟動(dòng)所有容器,同時(shí)維護(hù)容器間的網(wǎng)絡(luò)通信和依賴順序,避免了逐個(gè)啟動(dòng)容器時(shí)的繁瑣操作和配置遺漏。

創(chuàng)建 Zabbix docker 文件目錄

創(chuàng)建如下目錄,用來(lái)存放 yaml文件,后面會(huì)執(zhí)行該目錄下的 yaml 文件完成 Zabbix 安裝。

通過(guò)如下命令創(chuàng)建目錄:

mkdir ~/docker && mkdir ~/docker/zabbix-docker && cd ~/docker/zabbix-docker

然后去 Zabbix 的 Github 網(wǎng)站下載 yaml 文件,放到創(chuàng)建的目錄中。我這里使用的是最新的 zabbix-docker-7.4.3 的包,里面包含了很多 yaml 文件,我們選擇下圖所示, 紅色框體包含的部分就可以了。

修改 Zabbix 服務(wù)端口

順嘴說(shuō)一下, 為了避免端口沖突問(wèn)題的發(fā)生。我需要在.env 文件中修改如圖所示內(nèi)容,修改之前 ZABBIX_WEB_NGINX_HTTP_PORT=80,我需要將其修改為 8080。如果不做修改,請(qǐng)保證本機(jī)運(yùn)行的其他服務(wù)不會(huì)占用此端口。

ZABBIX_WEB_NGINX_HTTP_PORT=8080

啟動(dòng) Zabbix 服務(wù)

設(shè)置好端口之后,執(zhí)行如下命令:

docker compose -f docker-compose_v3_alpine_mysql_latest.yaml up -d

首次運(yùn)行需要下載鏡像,可能需要幾分鐘。

[+] Running 5/5
 ? Network zabbix-docker_default Created 0.1s 
 ? Container zabbix-docker-mysql-1 Started 2.5s 
 ? Container zabbix-docker-zabbix-server-1 Started 1.1s 
 ? Container zabbix-docker-zabbix-web-1 Started 1.2s 
 ? Container zabbix-docker-zabbix-agent-1 Started 1.1s

通過(guò) Docker Desktop 可以看到服務(wù)已經(jīng)啟動(dòng)。

此時(shí)可以打開瀏覽器,訪問(wèn) Web UI:

http://localhost:8080

默認(rèn)登錄賬號(hào)密碼:

  • 用戶名:Admin
  • 密碼:zabbix

如果看到下圖說(shuō)明 Zabbix Server 已經(jīng)安裝完畢。

獲取 Zabbix Server 的 IP 地址

安裝完 Zabbix Server 之后就需要安裝 Zabbix Agent 了, 它會(huì)幫助我們監(jiān)控主機(jī)的運(yùn)行情況,并且將監(jiān)控的結(jié)果傳回 Zabbix Server,同時(shí)還要與 Zabbix Server 保持心跳連接。

在安裝 Zabbix Agent 之前還需要知道 Zabbix Server 的 IP 以及需要監(jiān)控主機(jī)的名字。

通過(guò)如下命令獲取 Zabbix Server 的 IP。

docker inspect -f \
 '{{range $net,$cfg := .NetworkSettings.Networks}}{{printf "%s → %s\n" $net $cfg.IPAddress}}{{end}}' \
 zabbix-docker-743-zabbix-server-1

執(zhí)行上述命令之后就可以查看 Zabbix Server 的 IP 地址了。

zabbix-docker-743_backend → 172.16.239.3
 zabbix-docker-743_database → 172.18.0.3
 zabbix-docker-743_frontend → 172.16.238.2
 zabbix-docker-743_tools_frontend → 172.16.240.2

從輸出的結(jié)果來(lái)看 “zabbix-docker-743_backend → 172.16.239.3” 就是 Zabbix server 的 IP 地址, 這里需要做一個(gè)記錄,后面創(chuàng)建 Zabbix Agent 的時(shí)候會(huì)用到。

獲取監(jiān)控主機(jī)的名字

通過(guò) Zabbix WebUI 中的“數(shù)據(jù)采集”-“主機(jī)”就可以看到主機(jī)的名稱,如下圖所示。我們要監(jiān)控的主機(jī)名字為“Zabbix server”,這個(gè)是創(chuàng)建 Zabbix Agent 的時(shí)候所需要的信息。

安裝 Zabbix Agent

通過(guò) docker 命令 pull 拉取 Zabbix Agent 的鏡像。

docker pull zabbix/zabbix-agent

看到如下消息說(shuō)明拉取成功。

Using default tag: latest
 latest: Pulling from zabbix/zabbix-agent
 864bc305c662: Pull complete 
 d0d6eeb62c3f: Pull complete 
 99888e073bcb: Pull complete 
 15ab7c0ba17b: Pull complete 
 e4df0cda2793: Pull complete 
 4f4fb700ef54: Pull complete 
 Digest: sha256:e0fc7757c9eed70ac907fe9609c0b6e9a11d5f20a5730d6c9867e606ebdd60e6
 Status: Downloaded newer image for zabbix/zabbix-agent:latest
 docker.io/zabbix/zabbix-agent:latest

啟動(dòng) Zabbix Agent

上面一頓操作 Zabbix Server 已安裝, 連帶還把 frontend,database 等服務(wù)也裝上了。接下來(lái),通過(guò)如下命令安裝 Zabbix Agent。

docker run -dit \
 --name zabbix-agent \
 --network zabbix-docker-743_backend \
 -p 10050:10050 \
 -e ZBX_HOSTNAME="Zabbix server" \
 -e ZBX_SERVER_HOST="172.16.239.3" \
 -e ZBX_SERVER_PORT="10051" \
 zabbix/zabbix-agent:latest

執(zhí)行完畢之后,到 Zabbix Desktop 中查看執(zhí)行結(jié)果。

看到如下圖所示,說(shuō)明已經(jīng)連接上 Zabbix Server 了。

二、關(guān)聯(lián) Zabbix Server 與 Zabbix Agent

自此,Zabbix Server 與 Agent 都已安裝完畢,還需要在 Zabbix Server 中設(shè)置被監(jiān)控主機(jī)的 Agent IP地址,一般來(lái)說(shuō)我們會(huì)在被監(jiān)控主機(jī)上安裝 Zabbix Agent 從而監(jiān)控主機(jī)的運(yùn)行狀態(tài)。所以,需要在 Zabbix Server WebUI 上配置Zabbix Agent 的 IP 地址。

通過(guò)如下命令,查看 Zabbix Agent 的 IP 地址:

docker inspect -f '{{range $net,$cfg := .NetworkSettings.Networks}}{{printf "%s → %s\n" $net $cfg.IPAddress}}{{end}}' zabbix-agent

執(zhí)行之后得到如下結(jié)果:

zabbix-docker-743_backend → 172.16.239.4

接著將 IP (172.16.239.4),也就是 Zabbix Agent 的 IP, 寫入到 Zabbix Server 接口的 Agent 中。

需要通過(guò)如下圖的配置步驟,首先在“檢測(cè)”中找到“主機(jī)”。

在彈出的對(duì)話框中選中“主機(jī)”。

在主機(jī)的“接口”設(shè)置中的 Agent 類型中輸入 IP 地址,這里讓 Zabbix Server 能夠識(shí)別到 Zabbix Agent。

“更新”完畢之后,可以在主機(jī)“Zabbix server”中看到“可用性”描述了接口(172.16.239.4:10050)的狀態(tài)為“可用”,表示 Zabbix Server 和 Agent 已經(jīng)連接成功了。

三、設(shè)置媒介、觸發(fā)器與動(dòng)作

在對(duì) Zabbix Server 與 Agent 進(jìn)行關(guān)聯(lián)之后,他們就能互相找到對(duì)方了,接著就需要定義媒介,設(shè)置腳本搜集監(jiān)控參數(shù),然后調(diào)用 DeepSeek 生成分析報(bào)表。這里我們的大致思路是通過(guò)設(shè)置 Zabbix 觸發(fā)器接受從 Zabbix Agent 傳來(lái)的參數(shù)異常信息,再讓觸發(fā)器與本地腳本進(jìn)行互動(dòng),讓腳本調(diào)用 DeepSeek 智能程序生成參數(shù)異常分析報(bào)告。

具體步驟,如下圖所示,分為四個(gè)環(huán)節(jié):

  • 媒介(模塊 1):定義基礎(chǔ)通信能力,通過(guò)「腳本」(如郵件發(fā)送腳本、消息推送腳本)與「消息」(告警內(nèi)容模板),為后續(xù)通知?jiǎng)幼魈峁┗A(chǔ)載體,決定 “用什么方式、發(fā)什么內(nèi)容”。
  • 用戶媒介關(guān)聯(lián)(模塊 2):建立「用戶」與「媒介」的綁定關(guān)系,讓抽象的通信能力落地到具體用戶,比如 “用戶 A 關(guān)聯(lián)‘郵件媒介’、用戶 B 關(guān)聯(lián)‘企業(yè)微信媒介’”,解決 “誰(shuí)接收、用哪種媒介接收” 的問(wèn)題。
  • 主機(jī)(模塊 3):依托「觸發(fā)器」+「表達(dá)式」,監(jiān)控主機(jī)狀態(tài)(如 CPU 過(guò)載、服務(wù)宕機(jī)),當(dāng)系統(tǒng)指標(biāo)匹配表達(dá)式規(guī)則(如 CPU 使用率超過(guò)一定數(shù)值 ),觸發(fā)器被激活,成為告警的 “信號(hào)燈”。
  • 觸發(fā)動(dòng)作(模塊 4):通過(guò)「條件」(關(guān)聯(lián)觸發(fā)器)判斷是否觸發(fā),滿足條件后,調(diào)用「操作」關(guān)聯(lián)的「媒介 + 用戶」,完成告警閉環(huán) —— 把模塊 1 定義的消息,通過(guò)模塊 2 綁定的媒介,精準(zhǔn)推送給用戶,實(shí)現(xiàn) “異常發(fā)生 → 自動(dòng)告警” 的完整流程。

添加腳本

在了解完整體思路之后,我們先在媒體中“添加腳本”。查看 Zabbix Server 中腳本所在的目錄,通過(guò) docker 命令查看哪些鏡像正在執(zhí)行。

docker ps

在“names”這一列,可以看到鏡像的名稱,得到如下結(jié)果:

由于我們希望在 Zabbix Server 中安裝腳本,當(dāng)介紹到 Zabbix Agent 的信息之后, 設(shè)置對(duì)應(yīng)的報(bào)警規(guī)則(觸發(fā)器),然后再通過(guò)事件調(diào)用腳本,通過(guò)腳本執(zhí)行 DeepSeek 的調(diào)用。所以要確認(rèn) Zabbix Server 中對(duì)應(yīng)存放腳本的目錄,為了方便后面將主機(jī)的腳本目錄掛載到 Zabbix Server 中的腳本目錄。

執(zhí)行如下命令進(jìn)入 Zabbix server 鏡像的 docker 命令行模式:

docker exec -it zabbix-docker-743-zabbix-server-1 /bin/sh

執(zhí)行如下命令, 確認(rèn)在鏡像中存在如下目錄,作為腳本的掛載目錄:

ls -ld /usr/lib/zabbix/alertscripts

接著回到主機(jī),在~/docker/下 創(chuàng)建zabbix-scripts 目錄, 在目錄中創(chuàng)建一個(gè) deepseek.sh 的腳本作為測(cè)試腳本。

腳本內(nèi)容先放入簡(jiǎn)單的“hello deepseek”。

#!/bin/bash
 echo "hello deepseek"

然后給目錄和腳本設(shè)置權(quán)限。

Docker 容器內(nèi)的 Zabbix 進(jìn)程通常以非 root 用戶(如 zabbix 用戶,UID 可能為 1997)運(yùn)行,而宿主機(jī)的目錄 / 文件默認(rèn)權(quán)限可能不允許容器內(nèi)的非 root 用戶訪問(wèn)或執(zhí)行。

# 進(jìn)入宿主機(jī)腳本目錄的父目錄
 cd ~/docker

 # 給目錄設(shè)置可執(zhí)行權(quán)限(允許進(jìn)入目錄)
 chmod 755 zabbix-scripts

 # 給目錄內(nèi)的腳本文件設(shè)置可執(zhí)行權(quán)限
 chmod +x zabbix-scripts/*.sh

修改啟動(dòng)鏡像命令所對(duì)應(yīng)的文件,于是我們修改 docker-compose_v3_alpine_mysql_latest.yaml 文件,找到 zabbix server 對(duì)應(yīng)的段落。

zabbix-server:
 extends:
 file: compose_zabbix_components.yaml
 service: server-mysql
 image: "${ZABBIX_SERVER_MYSQL_IMAGE}:${ZABBIX_ALPINE_IMAGE_TAG}${ZABBIX_IMAGE_TAG_POSTFIX}"
 volumes:
 - /etc/timezone:/etc/timezone:ro
 - ~/docker/zabbix-scripts:/usr/lib/zabbix/alertscripts
 depends_on:
 server-db-init:
 condition: service_completed_successfully
 labels:
 com.zabbix.os: "${ALPINE_OS_TAG}"

在這個(gè)部分加入,如下部分在 volumes 掛載的時(shí)候?qū)⒛_本目錄和 zabbix server 中的腳本目錄進(jìn)行對(duì)應(yīng)。

- ~/docker/zabbix-scripts:/usr/lib/zabbix/alertscripts

最后,通過(guò)如下命令重新啟動(dòng) docker 鏡像。

# 先停止并移除當(dāng)前運(yùn)行的容器(不會(huì)刪除數(shù)據(jù)卷和鏡像)
 docker compose -f docker-compose_v3_alpine_mysql_latest.yaml down

 # 重新創(chuàng)建并啟動(dòng)容器(會(huì)應(yīng)用新的volumes配置)
 docker compose -f docker-compose_v3_alpine_mysql_latest.yaml up -d

好了,腳本已經(jīng)加載到 zabbix server 的鏡像中了,我們要測(cè)試一下是否能夠執(zhí)行,以便后面事件調(diào)用的時(shí)候能夠成功。

主機(jī)中順序執(zhí)行如下代碼,分別是進(jìn)入 docker 執(zhí)行模式,跳轉(zhuǎn)到腳本目錄,執(zhí)行 deepseek 的腳本。

docker exec -it zabbix-docker-743-zabbix-server-1 /bin/sh
 cd /usr/lib/zabbix/alertscripts
 ./deepseek.sh

為了完成測(cè)試,在 deepseek.sh 中我們寫入如下內(nèi)容:

#!/bin/bash

 # 獲取當(dāng)前腳本所在目錄的絕對(duì)路徑
 SCRIPT_DIR=$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)

 # 獲取當(dāng)前時(shí)間(格式:年-月-日 時(shí):分:秒)
 CURRENT_TIME=$(date "+%Y-%m-%d %H:%M:%S")

 # 在腳本同目錄創(chuàng)建test.txt并寫入內(nèi)容(包含時(shí)間戳)
 echo "[$CURRENT_TIME] hello deepseek" > "$SCRIPT_DIR/test.txt"

 # 可選:如果希望保留歷史記錄(而非覆蓋),用 >> 追加模式
 # echo "[$CURRENT_TIME] hello deepseek" >> "$SCRIPT_DIR/test.txt"

在與 deepseek.sh 同目錄下生成一個(gè) test.txt 文件,寫入時(shí)間和“hello deepseek”的字樣。

設(shè)置媒介

接著來(lái)設(shè)置媒介,如下圖所示“創(chuàng)建媒介類型”。

在創(chuàng)建頁(yè)面填寫“名稱”(沒(méi)有特別要求)和“腳本名稱”,這里的“腳本名稱”需要與剛才掛載的腳本名稱保持一致,還需要保證它在 docker 容器的如下地址:

/usr/lib/zabbix/alertscripts

點(diǎn)擊“更新”完成腳本的創(chuàng)建。

此時(shí)回到媒介的列表頁(yè)面,可以測(cè)試剛剛創(chuàng)建的腳本。點(diǎn)擊“測(cè)試”按鈕,如果看到測(cè)試成功的字樣,說(shuō)明腳本運(yùn)行沒(méi)有問(wèn)題了。

如果不放心,還可以回到腳本掛載的目錄下面確認(rèn)文件是否生成,內(nèi)容是否與你所期望的一致。

這里也可以創(chuàng)建消息模版,如下圖所示:

關(guān)聯(lián)媒介與用戶

有了媒介(腳本+消息),接著需要將其關(guān)聯(lián)到用戶,也就是這個(gè)媒介給誰(shuí)用?由于媒介屬于“告警”的范疇,那么是告警就需要有具體的“人”響應(yīng)。

如下圖操作方式,這里我們選擇“Admin”作為響應(yīng)的“人”。

選擇“報(bào)警”媒介。

點(diǎn)擊“添加”。

在“類型”中選擇,剛才我們創(chuàng)建好的腳本媒介,這里收件人可以填寫一個(gè)郵件地址。

設(shè)置觸發(fā)器

經(jīng)過(guò)前面的設(shè)置之后,我們需要通過(guò)觸發(fā)器發(fā)出報(bào)警,然后調(diào)用對(duì)應(yīng)的腳本執(zhí)行操作以及通知到具體的人。

如系統(tǒng)所示,進(jìn)入觸發(fā)器添加界面。

點(diǎn)擊“創(chuàng)建觸發(fā)器”。

填寫觸發(fā)器的內(nèi)容,注意這里我設(shè)置的是 CPU 使用率超過(guò) 3%。為了方便測(cè)試,我這里修改成一個(gè)很小的值。在真實(shí)場(chǎng)景中需要按照 80 或者 90 這樣的數(shù)據(jù)進(jìn)行觸發(fā)器的設(shè)置。

點(diǎn)擊“表達(dá)式”旁邊的“添加”按鈕進(jìn)行條件的添加。

設(shè)置動(dòng)作(關(guān)聯(lián)腳本)

完成上述操作之后,接下來(lái)就是設(shè)置動(dòng)作,如下圖所示“創(chuàng)建動(dòng)作”。

接著是一連串的“選擇”操作,選擇“添加”條件,然后在條件中選擇觸發(fā)器類型,以及具體的觸發(fā)器。這里的觸發(fā)器用我們之前創(chuàng)建好的 “CPU 使用率超過(guò) 3%”。

最后就是設(shè)置“操作”了,將消息通過(guò)之前設(shè)置好的郵箱發(fā)送給用戶。

到這里整個(gè)媒介、觸發(fā)器與動(dòng)作的配置完成,讓我們通過(guò)下面這張圖再回顧一下整個(gè)過(guò)程。

測(cè)試觸發(fā)器

這里需要通過(guò)模擬 CPU 使用率高的場(chǎng)景,從而觸發(fā)報(bào)警,然后調(diào)用我們寫好的 deepseek.sh 腳本。

執(zhí)行如下代碼以 root 的身份開啟 docker 命令行模式。由于我們需要安裝 stress 工具模擬 CPU 執(zhí)行,所以需要 root 身份獲取安裝應(yīng)用的權(quán)限。

docker exec -it --user root zabbix-docker-743-zabbix-server-1 /bin/sh

分別執(zhí)行如下:

apk update
 apk add stress-ng

顯示安裝成功之后,再執(zhí)行命令如下,啟動(dòng)4個(gè)CPU密集型進(jìn)程,持續(xù) 30 秒。

stress-ng -c 4 -t 30s

執(zhí)行完之后,如下圖所示:

最后看看腳本是否執(zhí)行。

cat /usr/lib/zabbix/alertscripts/test.txt

由于我們的腳本會(huì)在當(dāng)前目錄下面生成 test.txt 文件,所以打開文件,看到如下內(nèi)容。

[2025-08-06 16:25:24] hello deepseek

說(shuō)明整個(gè)從觸發(fā)、腳本、執(zhí)行的過(guò)程成功了。接下來(lái),我們需要在腳本中去調(diào)用 DeepSeek 的能力對(duì)數(shù)據(jù)進(jìn)行分析。

四、 DeepSeek處理監(jiān)控參數(shù)并生成報(bào)表

在完成觸發(fā)器的測(cè)試之后,整個(gè)調(diào)用的鏈路就通暢了,接下來(lái)只需要將 deepseek.sh 腳本中的內(nèi)容進(jìn)行修改,去調(diào)用 DeepSeek 生成分析報(bào)告即可。由于 DeepSeek 的調(diào)用還需要一些 Python 的組件包,我們首先還是要進(jìn)行組件安裝與環(huán)境配置的操作。

組件安裝與環(huán)境配置

在 Docker server 的運(yùn)行容器內(nèi)安裝 Python 和 OpenAI。

執(zhí)行如下命令:

apk update
 apk add --no-cache python3 py3-pip
 python3 --version 
 pip3 --version

看到如下信息,說(shuō)明安裝成功。

/var/lib/zabbix # python3 --version
 Python 3.12.11
 /var/lib/zabbix # pip3 --version 
 pip 25.1.1 from /usr/lib/python3.12/site-packages/pip (python 3.12)

接著使用剛剛安裝完成的 pip3 安裝 OpenAI,這里需要先安裝 venv 為我們的代碼創(chuàng)建虛擬環(huán)境,接著激活環(huán)境,然后在這個(gè)虛擬環(huán)境中安裝 OpenAI。

# 1. 安裝虛擬環(huán)境工具(Alpine 中需手動(dòng)安裝)
 apk add --no-cache python3-venv

 # 2. 創(chuàng)建虛擬環(huán)境(路徑可自定義,例如 /var/lib/zabbix/venv)
 python3 -m venv /var/lib/zabbix/venv

 # 3. 激活虛擬環(huán)境
 source /var/lib/zabbix/venv/bin/activate

 # 4. 在虛擬環(huán)境中安裝 openai(此時(shí) pip 指向虛擬環(huán)境,無(wú)權(quán)限問(wèn)題)
 pip install openai

 # 5. 驗(yàn)證安裝(激活狀態(tài)下)
 python -c "import openai; print('安裝成功')" # 無(wú)報(bào)錯(cuò)即成功

 # 6. 退出虛擬環(huán)境(后續(xù)調(diào)用腳本時(shí)需先激活)
 deactivate

在編寫 Deepseek.py 之前還需要保存 DeepSeek 的 API。這里我們將其保存到.env 文件中,文件內(nèi)容如下:

DEEPSEEK_API_KEY=sk-aec0ed226aXXXX5ffd89ff

同時(shí)需要通過(guò)python-dotenv 讀取 .env 文件中的環(huán)境變量,執(zhí)行如下命令。 保證在 Python 的虛擬環(huán)境中。

source /var/lib/zabbix/venv/bin/activate
 pip install python-dotenv

測(cè)試 DeepSeek API 是否能夠調(diào)通。

安裝 curl,并執(zhí)行指令:

apk add curl
 curl -v https://api.deepseek.com/v1

DeepSeek 生成告警報(bào)表

這里需要利用 DeepSeek 的 API 調(diào)用 DeepSeek 的能力, API 的調(diào)用在前面得到了證實(shí)。接下來(lái)就是代碼的環(huán)節(jié)。

import os
 import sys
 import datetime
 from openai import OpenAI
 from dotenv import load_dotenv # 新增:導(dǎo)入dotenv庫(kù)

 load_dotenv() # 默認(rèn)讀取當(dāng)前目錄的.env文件,若路徑不同可指定:load_dotenv("/path/to/.env")

 def generate_alert_report():
 # 定義錯(cuò)誤日志文件路徑(與腳本同目錄)
 script_dir = os.path.dirname(os.path.abspath(__file__)) # 獲取當(dāng)前腳本所在目錄(絕對(duì)路徑)
 error_log = os.path.join(script_dir, "error.log") # 錯(cuò)誤日志放在腳本目錄
 
 # 接收從Shell腳本傳遞的參數(shù)
 if len(sys.argv) != 7:
 error_msg = "錯(cuò)誤:參數(shù)數(shù)量不正確,需要6個(gè)參數(shù)(cpu_util, host_name, item_key, host_ip, event_time, trigger_name)"
 with open(error_log, "a", encoding="utf-8") as f:
 f.write(f"[{datetime.datetime.now()}] {error_msg}\n")
 return error_msg
 
 # 解析參數(shù)
 cpu_util = sys.argv[1] # CPU利用率值
 host_name = sys.argv[2] # 主機(jī)名稱
 item_key = sys.argv[3] # 監(jiān)控項(xiàng)鍵值
 host_ip = sys.argv[4] # 主機(jī)IP
 event_time = sys.argv[5] # 告警時(shí)間
 trigger_name = sys.argv[6] # 觸發(fā)器名稱

 try:
 # 檢查API密鑰是否存在
 if not os.environ.get("DEEPSEEK_API_KEY"):
 error_msg = "錯(cuò)誤:未設(shè)置DEEPSEEK_API_KEY環(huán)境變量"
 with open(error_log, "a", encoding="utf-8") as f:
 f.write(f"[{datetime.datetime.now()}] {error_msg}\n")
 return error_msg

 # 初始化OpenAI客戶端(DeepSeek兼容OpenAI SDK)
 client = OpenAI(
 api_key=os.environ.get("DEEPSEEK_API_KEY"),
 base_url="https://api.deepseek.com/v1"
 )

 # 構(gòu)建系統(tǒng)提示詞(定義AI的角色和報(bào)告要求)
 system_prompt = """
 你是一名資深運(yùn)維工程師,擅長(zhǎng)分析服務(wù)器性能告警并生成專業(yè)報(bào)告。
 請(qǐng)根據(jù)提供的CPU告警信息,生成一份結(jié)構(gòu)化的告警分析報(bào)告,包含以下內(nèi)容:
 1. 告警基本信息(主機(jī)、IP、時(shí)間、觸發(fā)條件)
 2. 可能的原因分析(基于CPU利用率和監(jiān)控項(xiàng))
 3. 建議的處理步驟(分點(diǎn)說(shuō)明,清晰具體)
 4. 預(yù)防措施(如何避免類似問(wèn)題再次發(fā)生)
 
 報(bào)告風(fēng)格要專業(yè)、簡(jiǎn)潔,重點(diǎn)突出,便于運(yùn)維人員快速理解和處理。
 """

 # 構(gòu)建用戶提示詞(傳遞具體參數(shù))
 user_prompt = f"""
 服務(wù)器告警信息如下:
 - 主機(jī)名稱:{host_name}
 - 主機(jī)IP:{host_ip}
 - 告警時(shí)間:{event_time}
 - 觸發(fā)條件:{trigger_name}
 - 當(dāng)前CPU利用率:{cpu_util}%
 - 監(jiān)控項(xiàng)鍵值:{item_key}
 
 請(qǐng)基于以上信息生成告警分析報(bào)告。
 """

 # 調(diào)用DeepSeek模型
 response = client.chat.completions.create(
 model="deepseek-chat",
 messages=[
 {"role": "system", "content": system_prompt},
 {"role": "user", "content": user_prompt}
 ],
 stream=False,
 max_tokens=1000
 )

 # 獲取模型返回的報(bào)告內(nèi)容
 report_content = response.choices[0].message.content

 # 生成報(bào)告文件名(包含主機(jī)名和時(shí)間戳)
 timestamp = datetime.datetime.now().strftime("%Y%m%d_%H%M%S")
 clean_host_name = host_name.replace(" ", "_") # 處理主機(jī)名中的空格
 report_filename = os.path.join(script_dir, f"alert_report_{clean_host_name}_{timestamp}.txt") # 關(guān)鍵:用script_dir指定路徑
 
 # 將報(bào)告寫入文件
 with open(report_filename, "w", encoding="utf-8") as f:
 f.write(f"=== 服務(wù)器CPU告警分析報(bào)告 ===\n")
 f.write(f"生成時(shí)間:{datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')}\n\n")
 f.write(report_content)
 
 return f"告警報(bào)告生成成功:{report_filename}"

 except Exception as e:
 # 捕獲所有異常并寫入錯(cuò)誤日志
 error_msg = f"生成報(bào)告失敗:{str(e)}"
 with open(error_log, "a", encoding="utf-8") as f:
 f.write(f"[{datetime.datetime.now()}] {error_msg}\n")
 return error_msg

 if __name__ == "__main__":
 result = generate_alert_report()
 print(result) # 輸出結(jié)果給Shell腳本

上面代碼會(huì)接受來(lái)自 deepseek.sh 腳本傳來(lái)的參數(shù)(CPU 報(bào)警參數(shù)),然后扮演 IT 運(yùn)維工程師利用 DeepSeek 大模型生成報(bào)警的報(bào)告。

將報(bào)告放置在與 deepseek.py 相同的目錄下。

在腳本中調(diào)用 deepseek.py

完成 deepseek.py 之后,我們還需要在 deepseek.sh 腳本中調(diào)用它,當(dāng)觸發(fā)器發(fā)出報(bào)警的時(shí)候調(diào)用deepseek.sh,deepseek.sh 再將報(bào)警數(shù)據(jù)傳入deepseek.py 完成告警的閉環(huán)操作。

deepseek.sh 腳本修改如下:

#!/bin/bash

 # 獲取腳本目錄和日志文件
 SCRIPT_DIR=$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)
 LOG_FILE="$SCRIPT_DIR/cpu_multi_params_log.log"

 # 接收多個(gè)參數(shù)(按Zabbix配置的順序?qū)?yīng))
 cpu_util="$1" # 參數(shù)1:CPU利用率值
 host_name="$2" # 參數(shù)2:主機(jī)名稱
 item_key="$3" # 參數(shù)3:監(jiān)控項(xiàng)鍵值
 host_ip="$4" # 參數(shù)4:主機(jī)IP
 event_time="$5" # 參數(shù)5:告警時(shí)間
 trigger_name="$6" # 參數(shù)6:觸發(fā)器名稱

 # 記錄所有參數(shù)到日志
 {
 echo "========================================="
 echo "日志生成時(shí)間: $(date "+%Y-%m-%d %H:%M:%S")"
 echo "1. CPU利用率值: $cpu_util" 
 echo "2. 主機(jī)名稱: $host_name"
 echo "3. 監(jiān)控項(xiàng)鍵值: $item_key"
 echo "4. 主機(jī)IP地址: $host_ip"
 echo "5. 告警觸發(fā)時(shí)間: $event_time"
 echo "6. 觸發(fā)器名稱: $trigger_name"
 echo ""
 } >> "$LOG_FILE"

 # 簡(jiǎn)單驗(yàn)證(確保核心參數(shù)不為空)
 if [ -z "$cpu_util" ] || [ -z "$host_name" ]; then
 echo "[$(date "+%Y-%m-%d %H:%M:%S")] 錯(cuò)誤:核心參數(shù)缺失(CPU值或主機(jī)名)" >> "$LOG_FILE"
 exit 1
 fi

 echo "[$(date "+%Y-%m-%d %H:%M:%S")] 多參數(shù)接收成功" >> "$LOG_FILE"

 # 調(diào)用deepseek.py并傳遞6個(gè)參數(shù)
 PY_SCRIPT="$SCRIPT_DIR/deepseek.py"
 if [ -f "$PY_SCRIPT" ]; then
 echo "[$(date "+%Y-%m-%d %H:%M:%S")] 開始調(diào)用Python腳本生成報(bào)告" >> "$LOG_FILE"
 # 執(zhí)行Python腳本并捕獲輸出結(jié)果
 python_result=$(
 source /var/lib/zabbix/venv/bin/activate && \ # 激活虛擬環(huán)境
 python3 "$PY_SCRIPT" "$cpu_util" "$host_name" "$item_key" "$host_ip" "$event_time" "$trigger_name" 2>&1
 )
 # 將Python腳本的執(zhí)行結(jié)果寫入日志
 echo "[$(date "+%Y-%m-%d %H:%M:%S")] Python腳本執(zhí)行結(jié)果: $python_result" >> "$LOG_FILE"
 else
 echo "[$(date "+%Y-%m-%d %H:%M:%S")] 錯(cuò)誤:未找到Python腳本 $PY_SCRIPT" >> "$LOG_FILE"
 exit 1
 fi

注意如下代碼,在調(diào)用 deepseek.py 之前需要激活虛擬環(huán)境,然后再通過(guò) Python 的命令行傳入幾個(gè)參數(shù)。

python_result=$(
 source /var/lib/zabbix/venv/bin/activate && \ # 激活虛擬環(huán)境
 python3 "$PY_SCRIPT" "$cpu_util" "$host_name" "$item_key" "$host_ip" "$event_time" "$trigger_name" 2>&1
 )

測(cè)試 CPU 報(bào)警功能

依舊通過(guò)如下命令增加 CPU 利用率。

stress-ng -c 4 -t 30s

接著會(huì)在 Zabbix 平臺(tái),看到對(duì)應(yīng)的報(bào)警信息。

同時(shí),在 deepseek.sh 相同的目錄下面看到日志信息。

日志生成時(shí)間: 2025-08-07 16:32:15
 1. CPU利用率值: 3.5 %
 2. 主機(jī)名稱: Zabbix server
 3. 監(jiān)控項(xiàng)鍵值: system.cpu.util
 4. 主機(jī)IP地址: 172.16.239.4
 5. 告警觸發(fā)時(shí)間: 16:31:24
 6. 觸發(fā)器名稱: CPU使用率超過(guò)3%

 [2025-08-07 16:32:15] 多參數(shù)接收成功
 [2025-08-07 16:32:15] 開始調(diào)用Python腳本生成報(bào)告
 [2025-08-07 16:32:54] Python腳本執(zhí)行結(jié)果: 告警報(bào)告生成成功:/usr/lib/zabbix/alertscripts/alert_report_Zabbix_server_20250807_163254.txt

日志中看到傳入的 CPU 使用率的參數(shù),以及 Python 腳本生成報(bào)告的信息。

同時(shí)再查看如下報(bào)告文件:

/usr/lib/zabbix/alertscripts/alert_report_Zabbix_server_20250807_163254.txt

得到報(bào)告的詳細(xì)信息。

=== 服務(wù)器CPU告警分析報(bào)告 ===
生成時(shí)間:2025-08-07 16:32:54

# CPU告警分析報(bào)告

## 1. 告警基本信息
| 項(xiàng)目 | 詳情 |
|------|------|
| 主機(jī)名稱 | Zabbix server |
| 主機(jī)IP | 172.16.239.4 |
| 告警時(shí)間 | 16:31:24 |
| 觸發(fā)條件 | CPU使用率 > 3% |
| 當(dāng)前CPU利用率 | 3.5% |
| 監(jiān)控項(xiàng)鍵值 | system.cpu.util |

## 2. 可能的原因分析
1. **監(jiān)控閾值設(shè)置過(guò)低**:3%的CPU利用率閾值對(duì)于生產(chǎn)環(huán)境服務(wù)器來(lái)說(shuō)過(guò)于敏感
2. **Zabbix自身監(jiān)控活動(dòng)**:作為監(jiān)控服務(wù)器,Zabbix自身的數(shù)據(jù)收集和處理可能導(dǎo)致短暫的CPU使用率波動(dòng)
3. **后臺(tái)維護(hù)任務(wù)**:可能正在執(zhí)行計(jì)劃任務(wù)、日志輪轉(zhuǎn)或數(shù)據(jù)庫(kù)維護(hù)等常規(guī)操作
4. **網(wǎng)絡(luò)活動(dòng)增加**:客戶端數(shù)據(jù)上報(bào)量臨時(shí)增加導(dǎo)致處理負(fù)載上升

## 3. 建議的處理步驟
1. **確認(rèn)當(dāng)前系統(tǒng)狀態(tài)**:
   - 執(zhí)行`top`或`htop`命令查看實(shí)時(shí)進(jìn)程占用情況
   - 檢查`uptime`命令輸出的系統(tǒng)負(fù)載平均值
   - 使用`ps aux --sort=-%cpu | head -10`查看CPU占用最高的進(jìn)程

2. **調(diào)整監(jiān)控閾值**:
   - 建議將CPU告警閾值調(diào)整為更合理的水平(如80%)
   - 對(duì)于Zabbix服務(wù)器,可考慮設(shè)置多級(jí)告警(警告/嚴(yán)重)

3. **檢查Zabbix服務(wù)狀態(tài)**:
   - 查看Zabbix server日志:`tail -f /var/log/zabbix/zabbix_server.log`
   - 確認(rèn)是否有異常的任務(wù)堆積或數(shù)據(jù)庫(kù)查詢問(wèn)題

## 4. 預(yù)防措施
1. **優(yōu)化監(jiān)控配置**:
   - 根據(jù)服務(wù)器角色和基準(zhǔn)性能調(diào)整告警閾值
   - 對(duì)監(jiān)控項(xiàng)設(shè)置合理的聚合時(shí)間(如5分鐘平均值)

2. **性能基線建立**:
   - 記錄服務(wù)器在不同時(shí)段的正常性能指標(biāo)作為基準(zhǔn)
   - 設(shè)置基于基線的動(dòng)態(tài)告警閾值

3. **資源分配優(yōu)化**:
   - 確保Zabbix服務(wù)器有足夠的CPU資源
   - 考慮將數(shù)據(jù)庫(kù)與Zabbix服務(wù)分離部署

4. **定期維護(hù)**:
   - 定期清理Zabbix歷史數(shù)據(jù)
   - 優(yōu)化數(shù)據(jù)庫(kù)表和索引

5. **告警分級(jí)**:
   - 設(shè)置多級(jí)告警策略(信息/警告/嚴(yán)重)
   - 對(duì)非關(guān)鍵告警配置不同的通知渠道

**備注**:當(dāng)前3.5%的CPU使用率屬于極低負(fù)載,建議優(yōu)先調(diào)整監(jiān)控策略而非進(jìn)行系統(tǒng)優(yōu)化。

總結(jié)

本文圍繞 Zabbix 與 DeepSeek 大模型的融合實(shí)踐展開,構(gòu)建智能運(yùn)維分析體系。從基礎(chǔ)部署起步,借 Docker 及 Compose 簡(jiǎn)化 Zabbix 復(fù)雜組件安裝,完成 Server 與 Agent 關(guān)聯(lián),打通監(jiān)控?cái)?shù)據(jù)采集鏈路。

核心環(huán)節(jié)聚焦告警流程:通過(guò)配置媒介、觸發(fā)器與動(dòng)作,搭建從異常檢測(cè)到腳本觸發(fā)的通路,再借助 Docker 掛載腳本,實(shí)現(xiàn)與 DeepSeek 大模型的銜接。編寫 Python 腳本調(diào)用 DeepSeek API,利用其智能分析能力,將 Zabbix 捕獲的 CPU 利用率、主機(jī)信息等監(jiān)控參數(shù),轉(zhuǎn)化為包含故障根因、處理建議的專業(yè)報(bào)表,賦能運(yùn)維決策。

從模擬 CPU 過(guò)載測(cè)試驗(yàn)證流程閉環(huán),到生成結(jié)構(gòu)化分析報(bào)告,展現(xiàn)了大模型與傳統(tǒng)監(jiān)控工具結(jié)合的價(jià)值 —— 打破人工分析效率瓶頸,讓運(yùn)維從 “被動(dòng)響應(yīng)” 邁向 “智能預(yù)判”。

作者介紹

崔皓,51CTO社區(qū)編輯,資深架構(gòu)師,擁有18年的軟件開發(fā)和架構(gòu)經(jīng)驗(yàn),10年分布式架構(gòu)經(jīng)驗(yàn)。

責(zé)任編輯:姜華 來(lái)源: 51CTO內(nèi)容精選
相關(guān)推薦

2025-08-29 08:58:02

2025-09-26 08:36:43

2025-07-28 12:38:35

2017-03-07 15:06:56

交付自動(dòng)化運(yùn)維

2013-08-13 15:06:54

NETGEAR深圳眾鴻科技

2018-08-07 09:26:47

新華三

2025-09-09 08:25:39

2021-06-07 22:09:46

辦公

2025-05-07 03:45:00

應(yīng)用運(yùn)維技術(shù)

2017-12-15 15:40:45

宜信運(yùn)維

2022-04-19 19:40:31

戴爾

2018-11-19 11:16:46

Dynatrace人工智能運(yùn)維

2025-04-14 00:22:00

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

麻豆视频在线| 一区二区www| 女人av一区| 欧洲精品在线观看| 在线观看福利一区| 亚洲精品久久久狠狠狠爱| 成全电影大全在线观看| 成人91在线观看| 日本亚洲欧美成人| 一起操在线播放| 欧美黑白配在线| 欧美性生活一区| 久艹在线免费观看| 国产在线观看精品一区| 欧美久久成人| 亚洲精品中文字幕av| 天天干天天操天天做| 男女视频在线观看| 国产麻豆精品在线观看| 青草成人免费视频| www.av视频| 国产欧美日韩精品一区二区三区| 欧美一卡2卡3卡4卡| 亚洲日本精品国产第一区| 国产丰满美女做爰| 视频一区中文字幕国产| 日韩大片在线观看视频| 182午夜在线观看| 女海盗2成人h版中文字幕| 国产精品电影院| 久久婷婷国产综合尤物精品| 国产三级按摩推拿按摩| 久久久久国产精品一区三寸| 亚洲欧美另类中文字幕| www.桃色.com| 成人va天堂| 精品国产乱码久久久久久天美 | 日韩av黄色| 欧美午夜丰满在线18影院| 国产盗摄视频在线观看| 婷婷激情在线| 久久综合色一综合色88| 国产亚洲欧美一区二区三区| 99久久久无码国产精品免费| 精品亚洲国产成人av制服丝袜 | 亚洲欧洲一区二区三区在线观看| 国产伦精品一区二区三区88av| 成人免费看片| 国产视频一区二区在线观看| 精品国产福利| 日韩在线视频免费| 粉嫩蜜臀av国产精品网站| 久久久久久久久久国产精品| 中国特黄一级片| 免费精品国产| 亚洲精品视频网上网址在线观看 | 久久精品五月天| 国产亚洲午夜| 人九九综合九九宗合| 毛片视频网站在线观看| 亚洲久久视频| 午夜精品美女自拍福到在线| 亚洲天堂网一区二区| 国产成人精品123区免费视频| 五月天欧美精品| 国产精品成人久久电影| 黄页网站在线| 午夜国产不卡在线观看视频| 国产精品无码人妻一区二区在线| brazzers在线观看| 偷拍亚洲欧洲综合| 男人亚洲天堂网| 免费av不卡| 国产精品国产三级国产| 一本一道久久a久久精品综合 | 久久久亚洲精品石原莉奈| 久久久亚洲综合网站| 国产综合在线观看| 国产欧美日韩综合精品一区二区| 午夜免费电影一区在线观看| 日本三级视频在线观看| 亚洲欧美日韩中文播放| 国产天堂视频在线观看| 午夜欧美激情| 一本到不卡精品视频在线观看| 人妻无码视频一区二区三区| 亚洲黑人在线| 亚洲精品一区在线观看| 女尊高h男高潮呻吟| 精品久久久久久久久久久下田 | 国产欧美韩日| 六十路在线观看| 中文字幕一区在线观看视频| 国产高清不卡无码视频| 女人让男人操自己视频在线观看| 色88888久久久久久影院按摩 | 欧类av怡春院| 国产真实有声精品录音| 久久视频中文字幕| 天天操天天干视频| 蜜桃视频在线观看一区| 97久久天天综合色天天综合色hd | 国产一区视频导航| 精品久久蜜桃| 网友自拍视频在线| 婷婷一区二区三区| 97人人爽人人| 台湾佬综合网| 久久视频精品在线| 国产情侣呻吟对白高潮| 风间由美性色一区二区三区| 欧美自拍资源在线| 亚洲无线看天堂av| 欧美午夜电影在线播放| 国产精品久久久久久在线观看| 成人毛片在线| 国产91ⅴ在线精品免费观看| 国产又粗又大又爽视频| 99久久精品免费| 国产成年人在线观看| 欧美成人黑人| 欧美精品一区二区三区视频| av成人免费网站| 视频一区欧美精品| 国内精品视频免费| 在线中文字幕电影| 欧美日产在线观看| 国产手机在线观看| 欧美日韩精品一区二区三区在线观看| 日韩在线视频一区| 无码一区二区三区在线观看| 成人一二三区视频| 福利网在线观看| 日韩精选视频| 亚洲男子天堂网| 日韩女同强女同hd| 国产a视频精品免费观看| 亚洲欧洲精品一区| 欧美aaa大片视频一二区| 日韩成人在线播放| 日韩黄色一级大片| 成人av网在线| 毛片在线播放视频| 高清一区二区三区| 欧美日韩成人网| 国产熟女一区二区三区五月婷| 中文在线资源观看网站视频免费不卡 | 国产精品久久久久毛片软件| 九热视频在线观看| 国产99亚洲| 国产91九色视频| 色天堂在线视频| 狠狠色狠狠色综合日日五| 欧美双性人妖o0| 亚洲久色影视| 精品一区二区三区免费毛片| 乱馆动漫1~6集在线观看| 精品99999| 日韩av黄色片| 91片在线免费观看| 四虎永久在线精品无码视频| 九一精品国产| 国产精品国产亚洲伊人久久 | 久久午夜色播影院免费高清 | 无遮挡爽大片在线观看视频 | 亚洲成人日韩在线| 亚洲综合欧美| 日韩成人av电影在线| 精品欧美日韩精品| 最近2019中文字幕mv免费看| 国产一区二区三区视频免费观看| 亚洲蜜臀av乱码久久精品蜜桃| 欧美在线aaa| 亚洲精品a级片| 国产精品区一区| 成人动漫一区| 日韩在线观看免费高清| 国产欧美久久久精品免费| 一区二区三区精品在线| 国产精品久久久久久在线观看| 性8sex亚洲区入口| 亚洲 日韩 国产第一区| 欧美2区3区4区| 午夜精品久久久久久99热软件| 日本电影一区二区在线观看| 欧美性xxxxxxxx| 欧美性猛交xxxxx少妇| av电影在线观看完整版一区二区| 激情综合网婷婷| 欧美高清视频手机在在线| av日韩免费电影| 吞精囗交69激情欧美| 日韩在线视频免费观看高清中文| 亚洲精品国产精品乱码不卡| 色婷婷久久久久swag精品| 国产第一页浮力| 99精品久久免费看蜜臀剧情介绍| 嫩草av久久伊人妇女超级a| 在线一区电影| 区一区二区三区中文字幕| 亚洲视频资源| 1769国产精品| 亚洲www色| 尤物tv国产一区| 亚洲精品一区二区三区四区| 欧美在线你懂的| 圆产精品久久久久久久久久久| 日本一区二区动态图| 深夜视频在线观看| 免费黄网站欧美| 999一区二区三区| 日韩欧美三级| 美女被啪啪一区二区| 清纯唯美激情亚洲| 国产精品久久久久久久久免费看| 3344国产永久在线观看视频| 按摩亚洲人久久| 深夜福利视频一区| 日韩欧美综合在线| 中日韩av在线| 日韩欧美在线视频观看| 久久老司机精品视频| 日韩一区有码在线| a级在线免费观看| av影院午夜一区| 韩国三级在线播放| 欧美 日韩 国产一区二区在线视频| 国产日韩欧美91| 欧美三级网站| 久久久久久久久久av| 老司机午夜在线视频| 国产亚洲精品久久久久久| 少妇精品高潮欲妇又嫩中文字幕| 91精品国产入口在线| 中文字幕在线2018| 在线视频观看一区| 国产黄色免费观看| 亚洲电影在线免费观看| 青青操国产视频| 自拍视频在线观看一区二区| 精品亚洲aⅴ无码一区二区三区| 久久久久久久免费视频了| 最近中文字幕无免费| 成人午夜电影小说| 中国特级黄色大片| 国产超碰在线一区| 国产麻豆剧传媒精品国产| 国产精品一区免费视频| 91视频福利网| 国产精品18久久久| 毛毛毛毛毛毛毛片123| 国产一区二区在线电影| 五月天激情播播| 黄色日韩网站视频| 亚洲三级在线视频| 国产精品一区二区久久精品爱涩| 永久av免费在线观看| 国产激情一区二区三区| 男男受被啪到高潮自述| 久久精品国产久精国产| 欧美成人手机在线视频| 国产精品一区二区久久不卡 | av成人免费在线| 99re久久精品国产| 久久综合狠狠综合久久综合88| 国产精品jizz| 国产欧美1区2区3区| 亚洲 欧美 变态 另类 综合| 亚洲精品高清视频在线观看| 久艹视频在线观看| 婷婷久久综合九色综合绿巨人| 国产无遮挡呻吟娇喘视频| 日韩欧美一区视频| 亚洲在线视频播放| 亚洲一区二区在线免费看| 欧美黄色一级生活片| 国产免费观看久久| 成人免费毛片xxx| 亚洲一区二区三区小说| 羞羞影院体验区| 欧美日韩一区二区三区四区 | 欧美三级网页| 男人添女人下面高潮视频| 久久蜜桃精品| 中文字幕国产高清| 成人av在线播放网站| 国产小视频自拍| 亚洲毛片av在线| 中文字幕日韩一级| 精品视频全国免费看| 亚洲精品国产av| 在线精品国产欧美| 青青青草视频在线| 国产精品27p| 深夜福利视频一区二区| 国产精品日韩久久久久| 亚洲不卡视频| 日本一区二区在线视频| 欧美在线亚洲| 国产无套粉嫩白浆内谢的出处| 国产综合一区二区| theav精尽人亡av| 亚洲免费av网站| 亚洲免费视频二区| 亚洲精品一区在线观看| 尤物网址在线观看| 欧美一级在线播放| 精品国产亚洲一区二区三区大结局| 国产欧美一区二区视频| 国产精品久久久乱弄 | 日韩av一级片| 欧美日韩一区二区区| 欧美极品少妇xxxxⅹ高跟鞋| 久久精品国产亚洲AV无码麻豆 | 国产免费av电影| 亚洲毛片在线观看.| 日本孕妇大胆孕交无码| 国产精品视频xxxx| 欧美一级一片| 亚洲色欲久久久综合网东京热| 麻豆国产91在线播放| 国产又爽又黄无码无遮挡在线观看| 亚洲在线成人精品| 91麻豆成人精品国产| 亚洲最新av网址| 三妻四妾完整版在线观看电视剧 | 国内精品久久久久影院 日本资源| 成人免费在线| 国产精品无av码在线观看| 亚洲狼人在线| 日韩精品一线二线三线| 国产欧美欧美| 蜜桃色一区二区三区| 亚洲欧洲制服丝袜| 91成人国产综合久久精品| 国产亚洲精品久久久久久牛牛| 亚洲精品动漫| 精品免费二区三区三区高中清不卡 | 亚洲国产精品日韩| 男人的天堂亚洲| 日本一区二区在线免费观看| 亚洲综合久久久| 成人av无码一区二区三区| 久久精品国产久精国产思思| 18+视频在线观看| 成人精品aaaa网站| 久久视频国产| 亚洲人视频在线| 中国色在线观看另类| 综合久久中文字幕| 综合久久五月天| 韩国理伦片久久电影网| 亚洲精品视频一二三| 蜜桃视频第一区免费观看| 999精品久久久| 欧美高清性hdvideosex| 超碰福利在线观看| 欧美精品一二区| 精品国模一区二区三区欧美| 国产精品夜夜夜爽张柏芝| 黄色小说综合网站| 黄色一级视频免费| 精品国产免费人成电影在线观看四季| 国产蜜臀av在线播放| 国产精品制服诱惑| 久久成人免费| www..com.cn蕾丝视频在线观看免费版 | 天天综合天天综合色| 性xxxx视频播放免费| 色99之美女主播在线视频| 成人全视频在线观看在线播放高清 | 久久久最新网址| 欧美综合精品| 天天爽天天爽夜夜爽| 综合久久国产九一剧情麻豆| 国产美女永久免费| 97视频在线免费观看| 国产精品嫩草影院在线看| 自拍偷拍一区二区三区四区| 一区二区三区四区在线| 天天综合永久入口| 国产精品久久久久久久久久久久久| 日韩久久久久| www.51色.com| 欧美日韩国产丝袜美女| 中文日本在线观看| 欧美亚洲成人精品| 欧美视频免费| 91在线第一页| 欧美日韩免费在线观看| www.亚洲.com| 99精品国产高清在线观看| 久久在线精品| 欧美黄片一区二区三区| 亚洲偷欧美偷国内偷| 蜜桃精品视频| 99免费视频观看| 亚洲一级电影视频| 午夜免费福利在线观看| 国产尤物99|