[{"data":1,"prerenderedAt":5947},["ShallowReactive",2],{"navigation":3,"/depoly/monitoring":650,"/depoly/monitoring-surround":5943},[4,12,31,103],{"title":5,"path":6,"stem":7,"children":8,"icon":11},"更新日志","/update-log","1.update-log/1.index",[9],{"title":10,"path":6,"stem":7},"日志","i-line-md-calendar",{"title":13,"icon":14,"path":15,"stem":16,"children":17,"page":30},"食用指南","i-line-md-cookie","/getting-started","2.getting-started",[18,22,26],{"title":19,"path":20,"stem":21},"微信群聊","/getting-started/wechat","2.getting-started/1.wechat",{"title":23,"path":24,"stem":25},"精彩视频","/getting-started/videos","2.getting-started/2.videos",{"title":27,"path":28,"stem":29},"选购指南","/getting-started/tier","2.getting-started/4.tier",false,{"title":32,"icon":33,"path":34,"stem":35,"children":36,"page":-1},"应用部署","i-material-symbols-logo-dev-outline","/depoly","3.depoly",[37,41,46,62,67,72,77,82,87],{"title":38,"path":34,"stem":39,"icon":40},"视频教程汇总","3.depoly/index","i-tabler-brand-youtube",{"title":42,"path":43,"stem":44,"icon":45},"CloudFlare","/depoly/cloudflare","3.depoly/cloudflare","i-simple-icons-cloudflare",{"title":47,"icon":48,"path":49,"stem":50,"children":51,"page":30},"数据库","i-material-symbols-database-outline","/depoly/database","3.depoly/database",[52,57],{"title":53,"path":54,"stem":55,"icon":56},"MySQL","/depoly/database/mysql","3.depoly/database/mysql","i-lineicons-mysql",{"title":58,"path":59,"stem":60,"icon":61},"SQLite","/depoly/database/sqlite","3.depoly/database/sqlite","i-file-icons-sqlite",{"title":63,"path":64,"stem":65,"icon":66},"Docker","/depoly/docker","3.depoly/docker","i-mdi-docker",{"title":68,"path":69,"stem":70,"icon":71},"邮件","/depoly/mail","3.depoly/mail","i-heroicons-envelope",{"title":73,"path":74,"stem":75,"icon":76},"服务器指标监控","/depoly/monitoring","3.depoly/monitoring","i-cbi-prometheusio",{"title":78,"path":79,"stem":80,"icon":81},"安全","/depoly/security","3.depoly/security","i-gravity-ui-firewall",{"title":83,"path":84,"stem":85,"icon":86},"建站","/depoly/site","3.depoly/site","i-cbi-nginx-proxy-manager",{"title":88,"icon":89,"path":90,"stem":91,"children":92,"page":30},"操作系统","i-simple-icons-linux","/depoly/system","3.depoly/system",[93,98],{"title":94,"path":95,"stem":96,"icon":97},"Debian","/depoly/system/debian","3.depoly/system/debian","i-simple-icons-debian",{"title":99,"path":100,"stem":101,"icon":102},"磁盘","/depoly/system/disk","3.depoly/system/disk","i-streamline-cyber-harddisk-4",{"title":104,"path":105,"stem":106,"children":107,"icon":649},"商户测评","/review","4.review/1.index",[108,111,115,119,123,127,131,135,139,143,147,151,155,159,163,167,171,175,179,183,187,191,195,199,203,207,211,215,219,223,227,231,235,239,243,247,251,255,259,263,267,271,275,279,283,287,291,295,299,303,307,311,315,319,323,327,331,335,339,343,347,351,355,359,363,367,371,375,379,383,387,391,395,399,403,407,411,415,419,423,427,431,435,439,443,447,451,455,459,463,467,471,475,479,483,487,491,495,499,503,507,511,515,519,523,527,531,535,539,543,547,551,555,559,563,567,571,575,579,583,587,591,595,599,604,608,612,616,621,625,629,633,637,641,645],{"title":109,"path":105,"stem":106,"icon":110},"总表","i-ph-ranking-duotone",{"title":112,"path":113,"stem":114},"100TB","/review/100tb","4.review/2.100tb",{"title":116,"path":117,"stem":118},"AaITR","/review/aaitr","4.review/2.aaitr",{"title":120,"path":121,"stem":122},"AkileCloud（AK）","/review/akile","4.review/2.akile",{"title":124,"path":125,"stem":126},"AkkoCloud","/review/akkocloud","4.review/2.akkocloud",{"title":128,"path":129,"stem":130},"DreamCloud","/review/as211392","4.review/2.as211392",{"title":132,"path":133,"stem":134},"Back Waves","/review/backwaves","4.review/2.backwaves",{"title":136,"path":137,"stem":138},"BageVM","/review/bagevm","4.review/2.bagevm",{"title":140,"path":141,"stem":142},"Bandwagon（搬瓦工）","/review/bandwagon","4.review/2.bandwagon",{"title":144,"path":145,"stem":146},"BestVM（富婆）","/review/bestvm","4.review/2.bestvm",{"title":148,"path":149,"stem":150},"BUG NET","/review/bug","4.review/2.bug",{"title":152,"path":153,"stem":154},"ByteVirt","/review/bytevirt","4.review/2.bytevirt",{"title":156,"path":157,"stem":158},"Churros","/review/churros","4.review/2.churros",{"title":160,"path":161,"stem":162},"Ciallo Networks","/review/ciallonetworks","4.review/2.ciallonetworks",{"title":164,"path":165,"stem":166},"CloudCone（CC）","/review/cloudcone","4.review/2.cloudcone",{"title":168,"path":169,"stem":170},"CloudLeadInno","/review/cloudleadinno","4.review/2.cloudleadinno",{"title":172,"path":173,"stem":174},"ColoCrossing（CCS）","/review/colocrossing","4.review/2.colocrossing",{"title":176,"path":177,"stem":178},"CstoneCloud","/review/cstonecloud","4.review/2.cstonecloud",{"title":180,"path":181,"stem":182},"CubeCloud（魔方云）","/review/cubecloud","4.review/2.cubecloud",{"title":184,"path":185,"stem":186},"DataOnline","/review/dataonline","4.review/2.dataonline",{"title":188,"path":189,"stem":190},"DesiVPS","/review/desivps","4.review/2.desivps",{"title":192,"path":193,"stem":194},"DigitalVirt","/review/digitalvirt","4.review/2.digitalvirt",{"title":196,"path":197,"stem":198},"DMIT（大妈）","/review/dmit","4.review/2.dmit",{"title":200,"path":201,"stem":202},"DogYun（狗云）","/review/dogyun","4.review/2.dogyun",{"title":204,"path":205,"stem":206},"Dotdot Networks","/review/dotdot","4.review/2.dotdot",{"title":208,"path":209,"stem":210},"Ethernet Servers","/review/ethernetservers","4.review/2.ethernetservers",{"title":212,"path":213,"stem":214},"Evoxt（益沃斯）","/review/evoxt","4.review/2.evoxt",{"title":216,"path":217,"stem":218},"Fast Line（台灣速連）","/review/fast-line","4.review/2.fast-line",{"title":220,"path":221,"stem":222},"FiberState（FS）","/review/fiberstate","4.review/2.fiberstate",{"title":224,"path":225,"stem":226},"Flawless Node","/review/flawlessnode","4.review/2.flawlessnode",{"title":228,"path":229,"stem":230},"Fourplex","/review/fourplex","4.review/2.fourplex",{"title":232,"path":233,"stem":234},"GoMami（狗妈）","/review/gomami","4.review/2.gomami",{"title":236,"path":237,"stem":238},"HaloCloud","/review/halocloud","4.review/2.halocloud",{"title":240,"path":241,"stem":242},"Haruka","/review/haruka","4.review/2.haruka",{"title":244,"path":245,"stem":246},"HighEndNetwork","/review/highendnetwork","4.review/2.highendnetwork",{"title":248,"path":249,"stem":250},"HostDare","/review/hostdare","4.review/2.hostdare",{"title":252,"path":253,"stem":254},"iON cloud","/review/ion","4.review/2.ion",{"title":256,"path":257,"stem":258},"iPRaft","/review/ipraft","4.review/2.ipraft",{"title":260,"path":261,"stem":262},"is*hosting","/review/ishosting","4.review/2.ishosting",{"title":264,"path":265,"stem":266},"ISIF Cloud","/review/isif","4.review/2.isif",{"title":268,"path":269,"stem":270},"JUSTG","/review/justg","4.review/2.justg",{"title":272,"path":273,"stem":274},"LightCone（光锥云）","/review/lightcone","4.review/2.lightcone",{"title":276,"path":277,"stem":278},"Lightlayer","/review/lightlayer","4.review/2.lightlayer",{"title":280,"path":281,"stem":282},"Lime Network（烧纸云）","/review/limee","4.review/2.limee",{"title":284,"path":285,"stem":286},"LinkCLi免备案服务器","/review/linkcli","4.review/2.linkcli",{"title":288,"path":289,"stem":290},"Lisahost（丽萨主机）","/review/lisahost","4.review/2.lisahost",{"title":292,"path":293,"stem":294},"Md5Host","/review/md5host","4.review/2.md5host",{"title":296,"path":297,"stem":298},"MOACK（蘑菇）","/review/moack","4.review/2.moack",{"title":300,"path":301,"stem":302},"MoeCloud","/review/moe","4.review/2.moe",{"title":304,"path":305,"stem":306},"NoBrand Cloud","/review/nbdnet","4.review/2.nbdnet",{"title":308,"path":309,"stem":310},"Neburst Networks（奶爸）","/review/neburst","4.review/2.neburst",{"title":312,"path":313,"stem":314},"NETfront","/review/netfront","4.review/2.netfront",{"title":316,"path":317,"stem":318},"NetJett(YVGS)","/review/netjett","4.review/2.netjett",{"title":320,"path":321,"stem":322},"NiiHost","/review/niihost","4.review/2.niihost",{"title":324,"path":325,"stem":326},"NovixLink 诺联主机","/review/novixlink","4.review/2.novixlink",{"title":328,"path":329,"stem":330},"Nube Cloud","/review/nube","4.review/2.nube",{"title":332,"path":333,"stem":334},"Onidel Cloud","/review/onidel","4.review/2.onidel",{"title":336,"path":337,"stem":338},"OrangeVPS","/review/orangevps","4.review/2.orangevps",{"title":340,"path":341,"stem":342},"PittQiao（PQS）","/review/pqs","4.review/2.pqs",{"title":344,"path":345,"stem":346},"QDE","/review/qde","4.review/2.qde",{"title":348,"path":349,"stem":350},"QQG","/review/qqg","4.review/2.qqg",{"title":352,"path":353,"stem":354},"Rabisu","/review/rabisu","4.review/2.rabisu",{"title":356,"path":357,"stem":358},"RackNerd（RN）","/review/racknerd","4.review/2.racknerd",{"title":360,"path":361,"stem":362},"RakSmart","/review/raksmart","4.review/2.raksmart",{"title":364,"path":365,"stem":366},"RFCHost（花卷）","/review/rfchost","4.review/2.rfchost",{"title":368,"path":369,"stem":370},"Sakura（樱络云）","/review/sakura","4.review/2.sakura",{"title":372,"path":373,"stem":374},"SaltyFish（咸鱼）","/review/saltyfish","4.review/2.saltyfish",{"title":376,"path":377,"stem":378},"SixtyNet","/review/sixtynet","4.review/2.sixtynet",{"title":380,"path":381,"stem":382},"Skyline Connect","/review/skylineconnect","4.review/2.skylineconnect",{"title":384,"path":385,"stem":386},"SkyStroll","/review/skystroll","4.review/2.skystroll",{"title":388,"path":389,"stem":390},"Skywolf","/review/skywolf","4.review/2.skywolf",{"title":392,"path":393,"stem":394},"Spartan（斯巴达）","/review/spartan","4.review/2.spartan",{"title":396,"path":397,"stem":398},"SpeedOnline","/review/speedonline","4.review/2.speedonline",{"title":400,"path":401,"stem":402},"StarryDNS（星光网络）","/review/starrydns","4.review/2.starrydns",{"title":404,"path":405,"stem":406},"Tarekcloud","/review/tarekcloud","4.review/2.tarekcloud",{"title":408,"path":409,"stem":410},"Terabix","/review/terabix","4.review/2.terabix",{"title":412,"path":413,"stem":414},"Tokyonline","/review/tokyonline","4.review/2.tokyonline",{"title":416,"path":417,"stem":418},"TOTHOST","/review/tothost","4.review/2.tothost",{"title":420,"path":421,"stem":422},"V.PS（小秘书）","/review/v.ps","4.review/2.v.ps",{"title":424,"path":425,"stem":426},"V5 Server","/review/v5","4.review/2.v5",{"title":428,"path":429,"stem":430},"VIP Cloud","/review/vipcloud","4.review/2.vipcloud",{"title":432,"path":433,"stem":434},"VIRCS","/review/vircs","4.review/2.vircs",{"title":436,"path":437,"stem":438},"VMISS","/review/vmiss","4.review/2.vmiss",{"title":440,"path":441,"stem":442},"VMRack","/review/vmrack","4.review/2.vmrack",{"title":444,"path":445,"stem":446},"VmShell","/review/vmshell","4.review/2.vmshell",{"title":448,"path":449,"stem":450},"VollCloud","/review/vollcloud","4.review/2.vollcloud",{"title":452,"path":453,"stem":454},"VoyraCloud","/review/voyracloud","4.review/2.voyracloud",{"title":456,"path":457,"stem":458},"wap.ac","/review/wap.ac","4.review/2.wap.ac",{"title":460,"path":461,"stem":462},"WePC（车库云）","/review/wepc","4.review/2.wepc",{"title":464,"path":465,"stem":466},"YT.NET（云途）","/review/yt","4.review/2.yt",{"title":468,"path":469,"stem":470},"Zenlayer Cloud","/review/zenlayer","4.review/2.zenlayer",{"title":472,"path":473,"stem":474},"ZgoCloud","/review/zgovps","4.review/2.zgovps",{"title":476,"path":477,"stem":478},"ZoroCloud（索隆云）","/review/zorocloud","4.review/2.zorocloud",{"title":480,"path":481,"stem":482},"七九网络","/review/079idc","4.review/3.079idc",{"title":484,"path":485,"stem":486},"六六云","/review/666clouds","4.review/3.666clouds",{"title":488,"path":489,"stem":490},"阿里云","/review/aliyun","4.review/3.aliyun",{"title":492,"path":493,"stem":494},"数掘科技","/review/gfvps","4.review/3.gfvps",{"title":496,"path":497,"stem":498},"华纳云","/review/hncloud","4.review/3.hncloud",{"title":500,"path":501,"stem":502},"华瑞云","/review/huaruidc","4.review/3.huaruidc",{"title":504,"path":505,"stem":506},"极络云","/review/jiluoyun","4.review/3.jiluoyun",{"title":508,"path":509,"stem":510},"快快網絡","/review/kkidc","4.review/3.kkidc",{"title":512,"path":513,"stem":514},"莱卡云","/review/lcayun","4.review/3.lcayun",{"title":516,"path":517,"stem":518},"领创云","/review/lcyidc","4.review/3.lcyidc",{"title":520,"path":521,"stem":522},"荔枝云（Lycheen）","/review/lycheen","4.review/3.lycheen",{"title":524,"path":525,"stem":526},"轻松云","/review/qyun","4.review/3.qyun",{"title":528,"path":529,"stem":530},"热陈互联IDC","/review/rcvps","4.review/3.rcvps",{"title":532,"path":533,"stem":534},"伤心的云（Sad Cloud）","/review/sadidc","4.review/3.sadidc",{"title":536,"path":537,"stem":538},"速维云","/review/svyun","4.review/3.svyun",{"title":540,"path":541,"stem":542},"腾讯云（Tencent Cloud）","/review/tencent","4.review/3.tencent",{"title":544,"path":545,"stem":546},"野草云","/review/yecaoyun","4.review/3.yecaoyun",{"title":548,"path":549,"stem":550},"蔭雲（YINNET）","/review/yin-net","4.review/3.yin-net",{"title":552,"path":553,"stem":554},"云悠（YUNYOO）","/review/yunyoo","4.review/3.yunyoo",{"title":556,"path":557,"stem":558},"朝暮数据","/review/zhaomu","4.review/3.zhaomu",{"title":560,"path":561,"stem":562},"智贸云","/review/zmyhost","4.review/3.zmyhost",{"title":564,"path":565,"stem":566},"慈云数据","/review/zovps","4.review/3.zovps",{"title":568,"path":569,"stem":570},"AcckCloud","/review/acck","4.review/997.acck",{"title":572,"path":573,"stem":574},"ClawCloud（爪云）","/review/claw","4.review/997.claw",{"title":576,"path":577,"stem":578},"EasyVM","/review/easy","4.review/997.easy",{"title":580,"path":581,"stem":582},"ReliableSite（RS）","/review/reliablesite","4.review/997.reliablesite",{"title":584,"path":585,"stem":586},"TapHip","/review/taphip","4.review/997.taphip",{"title":588,"path":589,"stem":590},"TechnoVM","/review/techno","4.review/997.techno",{"title":592,"path":593,"stem":594},"破碎工坊云","/review/crash","4.review/998.crash",{"title":596,"path":597,"stem":598},"哇沃","/review/wawo","4.review/998.wawo",{"title":600,"path":601,"stem":602,"icon":603},"Admd","/review/admd","4.review/999.admd","i-mdi-dead",{"title":605,"path":606,"stem":607,"icon":603},"DuoCloud","/review/duocloud","4.review/999.duocloud",{"title":609,"path":610,"stem":611,"icon":603},"Faconhost","/review/faconhost","4.review/999.faconhost",{"title":613,"path":614,"stem":615,"icon":603},"HostBlazer","/review/hostblazer","4.review/999.hostblazer",{"title":617,"path":618,"stem":619,"icon":620},"Kurun（昆仑）","/review/kurun","4.review/999.kurun","i-mdi-offline",{"title":622,"path":623,"stem":624,"icon":603},"lingcloud","/review/lingcloud","4.review/999.lingcloud",{"title":626,"path":627,"stem":628,"icon":603},"OMAO（欧猫）","/review/omao","4.review/999.omao",{"title":630,"path":631,"stem":632,"icon":603},"Saturney（萨特尼）","/review/saturney","4.review/999.saturney",{"title":634,"path":635,"stem":636,"icon":603},"SpikeTel","/review/spiketel","4.review/999.spiketel",{"title":638,"path":639,"stem":640,"icon":603},"TWOMEN","/review/twomen","4.review/999.twomen",{"title":642,"path":643,"stem":644,"icon":603},"UserCloud（台妹云）","/review/user","4.review/999.user",{"title":646,"path":647,"stem":648,"icon":603},"VKVM","/review/vkvm","4.review/999.vkvm","i-line-md-clipboard-list",{"id":651,"title":73,"body":652,"description":5935,"extension":5936,"idcId":5937,"meta":5938,"navigation":5940,"path":74,"seo":5941,"stem":75,"__hash__":5942},"docs/3.depoly/monitoring.md",{"type":653,"value":654,"toc":5908},"minimark",[655,660,681,685,689,708,774,781,784,1779,1783,2285,2289,2292,2295,2401,2404,2501,2504,2599,2602,2691,2694,2994,2998,3466,3469,3734,3738,3744,3747,3752,3763,3766,3782,3785,3788,3791,3862,3865,4073,4076,4236,4240,4244,4247,4251,4259,4261,4264,4268,4331,4334,4418,4421,4476,4480,4493,4506,4513,4516,4524,4528,4532,4541,4545,4571,4676,4690,4693,4699,4702,4713,4716,4760,4763,4844,4847,5401,5405,5412,5416,5427,5430,5437,5459,5462,5489,5492,5499,5510,5513,5533,5536,5539,5692,5695,5698,5774,5777,5782,5785,5790,5797,5805,5828,5836,5842,5845,5848,5856,5861,5864,5871,5876,5879,5884,5887,5892,5896,5899,5904],[656,657,659],"h2",{"id":658},"prometheu-grafana-node-exporter","📘 Prometheu + Grafana + Node Exporter 主机监控",[661,662,663],"p",{},[664,665,666,667,675,676],"strong",{},"结合视频教程食用 ",[668,669,674],"a",{"href":670,"rel":671,"target":673},"https://youtu.be/rWDNp7gA0Ag",[672],"nofollow","_blank","油管"," ",[668,677,680],{"href":678,"rel":679,"target":673},"https://www.bilibili.com/video/BV1D4sazHEo5/",[672],"B站",[682,683],"youtube-video",{"url":684},"https://www.youtube.com/embed/rWDNp7gA0Ag",[686,687,688],"h3",{"id":688},"介绍",[661,690,691,692,695,696,699,700,703,704,707],{},"Prometheus 是一款开源的监控与告警系统，由 ",[664,693,694],{},"SoundCloud"," 在 2012 年开发并于 2015 年加入 ",[664,697,698],{},"CNCF（Cloud Native Computing Foundation）","。",[701,702],"br",{},"\n它以强大的时序数据存储、灵活的查询语言（",[664,705,706],{},"PromQL","）和自动化的服务发现能力，广泛用于云原生环境中。",[709,710,711,724],"table",{},[712,713,714],"thead",{},[715,716,717,721],"tr",{},[718,719,720],"th",{},"组件",[718,722,723],{},"主要作用",[725,726,727,738,754,764],"tbody",{},[715,728,729,735],{},[730,731,732],"td",{},[664,733,734],{},"Prometheus Server",[730,736,737],{},"负责抓取（Scrape）监控数据、存储时序数据，并提供查询接口",[715,739,740,745],{},[730,741,742],{},[664,743,744],{},"Exporter",[730,746,747,748,753],{},"将被监控目标的指标数据转换为 Prometheus 能读取的格式（如 ",[668,749,752],{"href":750,"rel":751},"https://prometheus.io/download/#node_exporter",[672],"Node Exporter","）",[715,755,756,761],{},[730,757,758],{},[664,759,760],{},"Pushgateway",[730,762,763],{},"支持短生命周期任务将指标“推送”给 Prometheus（非推荐主流方案）",[715,765,766,771],{},[730,767,768],{},[664,769,770],{},"Alertmanager",[730,772,773],{},"处理 Prometheus 发送的告警，支持分组、抑制、路由、通知（Email、Slack 等）",[661,775,776],{},[777,778],"img",{"alt":779,"src":780},"","https://prometheus.io/assets/docs/architecture.svg",[686,782,783],{"id":783},"服务端安装",[785,786,788,793,1479,1483,1693,1697,1757,1760],"steps",{"level":787},"4",[789,790,792],"h4",{"id":791},"docker-compose-配置文件","docker-compose 配置文件",[794,795,800],"pre",{"className":796,"code":797,"filename":798,"language":799,"meta":779,"style":779},"language-yaml shiki shiki-themes one-light one-light one-dark-pro","services:\n  prometheus:\n    image: prom/prometheus:latest\n    container_name: prometheus\n    restart: unless-stopped\n    pull_policy: always\n    ports:\n      - \"9090:9090\"\n    command:\n      - --config.file=/etc/prometheus/prometheus.yml\n      - --storage.tsdb.path=/prometheus\n      - --storage.tsdb.retention.time=15d\n      - --web.enable-lifecycle\n    volumes:\n      - ./prometheus/prometheus.yml:/etc/prometheus/prometheus.yml:ro\n      - ./prometheus/rules:/etc/prometheus/rules:ro\n      - prometheus-data:/prometheus\n    depends_on:\n      - alertmanager\n      - blackbox-exporter\n\n  alertmanager:\n    image: prom/alertmanager:latest\n    container_name: alertmanager\n    restart: unless-stopped\n    pull_policy: always\n    ports:\n      - \"9093:9093\"\n    command:\n      - --config.file=/etc/alertmanager/alertmanager.yml\n    volumes:\n      - ./alertmanager/alertmanager.yml:/etc/alertmanager/alertmanager.yml:ro\n      - alertmanager-data:/alertmanager\n\n  node-exporter:\n    image: prom/node-exporter:latest\n    container_name: node-exporter\n    restart: unless-stopped\n    pull_policy: always\n    ports:\n      - \"9100:9100\"\n    # 让容器内读取宿主机 /proc /sys 以采集宿主机指标\n    pid: \"host\"\n    volumes:\n      - /proc:/host/proc:ro\n      - /sys:/host/sys:ro\n      - /:/rootfs:ro\n    command:\n      - --path.procfs=/host/proc\n      - --path.sysfs=/host/sys\n      - --path.rootfs=/rootfs\n      - --collector.filesystem.mount-points-exclude=^/(sys|proc|dev|host|etc)($$|/)\n\n  blackbox-exporter:\n    image: prom/blackbox-exporter:latest\n    container_name: blackbox-exporter\n    restart: unless-stopped\n    pull_policy: always\n    ports:\n      - \"9115:9115\"\n    volumes:\n      - ./blackbox/blackbox.yml:/etc/blackbox_exporter/config.yml:ro\n    command:\n      - --config.file=/etc/blackbox_exporter/config.yml\n\n  grafana:\n    image: grafana/grafana-oss:latest\n    container_name: grafana\n    restart: unless-stopped\n    pull_policy: always\n    ports:\n      - \"3000:3000\"\n    environment:\n      - GF_SECURITY_ADMIN_USER=admin\n      - GF_SECURITY_ADMIN_PASSWORD=admin\n    volumes:\n      - grafana-data:/var/lib/grafana\n\nvolumes:\n  prometheus-data:\n  alertmanager-data:\n  grafana-data:\n","docker-compose.yml","yaml",[801,802,803,816,824,837,848,859,870,878,887,895,903,911,919,927,935,943,951,959,967,975,983,990,998,1008,1017,1026,1035,1042,1050,1057,1065,1072,1080,1088,1093,1101,1111,1121,1130,1139,1146,1154,1161,1172,1179,1187,1195,1203,1210,1218,1226,1234,1242,1247,1255,1265,1274,1283,1292,1299,1307,1314,1322,1329,1337,1342,1350,1360,1370,1379,1388,1395,1403,1411,1419,1427,1434,1442,1447,1455,1463,1471],"code",{"__ignoreMap":779},[804,805,808,812],"span",{"class":806,"line":807},"line",1,[804,809,811],{"class":810},"s3_5o","services",[804,813,815],{"class":814},"skGaQ",":\n",[804,817,819,822],{"class":806,"line":818},2,[804,820,821],{"class":810},"  prometheus",[804,823,815],{"class":814},[804,825,827,830,833],{"class":806,"line":826},3,[804,828,829],{"class":810},"    image",[804,831,832],{"class":814},": ",[804,834,836],{"class":835},"sBZeU","prom/prometheus:latest\n",[804,838,840,843,845],{"class":806,"line":839},4,[804,841,842],{"class":810},"    container_name",[804,844,832],{"class":814},[804,846,847],{"class":835},"prometheus\n",[804,849,851,854,856],{"class":806,"line":850},5,[804,852,853],{"class":810},"    restart",[804,855,832],{"class":814},[804,857,858],{"class":835},"unless-stopped\n",[804,860,862,865,867],{"class":806,"line":861},6,[804,863,864],{"class":810},"    pull_policy",[804,866,832],{"class":814},[804,868,869],{"class":835},"always\n",[804,871,873,876],{"class":806,"line":872},7,[804,874,875],{"class":810},"    ports",[804,877,815],{"class":814},[804,879,881,884],{"class":806,"line":880},8,[804,882,883],{"class":814},"      - ",[804,885,886],{"class":835},"\"9090:9090\"\n",[804,888,890,893],{"class":806,"line":889},9,[804,891,892],{"class":810},"    command",[804,894,815],{"class":814},[804,896,898,900],{"class":806,"line":897},10,[804,899,883],{"class":814},[804,901,902],{"class":835},"--config.file=/etc/prometheus/prometheus.yml\n",[804,904,906,908],{"class":806,"line":905},11,[804,907,883],{"class":814},[804,909,910],{"class":835},"--storage.tsdb.path=/prometheus\n",[804,912,914,916],{"class":806,"line":913},12,[804,915,883],{"class":814},[804,917,918],{"class":835},"--storage.tsdb.retention.time=15d\n",[804,920,922,924],{"class":806,"line":921},13,[804,923,883],{"class":814},[804,925,926],{"class":835},"--web.enable-lifecycle\n",[804,928,930,933],{"class":806,"line":929},14,[804,931,932],{"class":810},"    volumes",[804,934,815],{"class":814},[804,936,938,940],{"class":806,"line":937},15,[804,939,883],{"class":814},[804,941,942],{"class":835},"./prometheus/prometheus.yml:/etc/prometheus/prometheus.yml:ro\n",[804,944,946,948],{"class":806,"line":945},16,[804,947,883],{"class":814},[804,949,950],{"class":835},"./prometheus/rules:/etc/prometheus/rules:ro\n",[804,952,954,956],{"class":806,"line":953},17,[804,955,883],{"class":814},[804,957,958],{"class":835},"prometheus-data:/prometheus\n",[804,960,962,965],{"class":806,"line":961},18,[804,963,964],{"class":810},"    depends_on",[804,966,815],{"class":814},[804,968,970,972],{"class":806,"line":969},19,[804,971,883],{"class":814},[804,973,974],{"class":835},"alertmanager\n",[804,976,978,980],{"class":806,"line":977},20,[804,979,883],{"class":814},[804,981,982],{"class":835},"blackbox-exporter\n",[804,984,986],{"class":806,"line":985},21,[804,987,989],{"emptyLinePlaceholder":988},true,"\n",[804,991,993,996],{"class":806,"line":992},22,[804,994,995],{"class":810},"  alertmanager",[804,997,815],{"class":814},[804,999,1001,1003,1005],{"class":806,"line":1000},23,[804,1002,829],{"class":810},[804,1004,832],{"class":814},[804,1006,1007],{"class":835},"prom/alertmanager:latest\n",[804,1009,1011,1013,1015],{"class":806,"line":1010},24,[804,1012,842],{"class":810},[804,1014,832],{"class":814},[804,1016,974],{"class":835},[804,1018,1020,1022,1024],{"class":806,"line":1019},25,[804,1021,853],{"class":810},[804,1023,832],{"class":814},[804,1025,858],{"class":835},[804,1027,1029,1031,1033],{"class":806,"line":1028},26,[804,1030,864],{"class":810},[804,1032,832],{"class":814},[804,1034,869],{"class":835},[804,1036,1038,1040],{"class":806,"line":1037},27,[804,1039,875],{"class":810},[804,1041,815],{"class":814},[804,1043,1045,1047],{"class":806,"line":1044},28,[804,1046,883],{"class":814},[804,1048,1049],{"class":835},"\"9093:9093\"\n",[804,1051,1053,1055],{"class":806,"line":1052},29,[804,1054,892],{"class":810},[804,1056,815],{"class":814},[804,1058,1060,1062],{"class":806,"line":1059},30,[804,1061,883],{"class":814},[804,1063,1064],{"class":835},"--config.file=/etc/alertmanager/alertmanager.yml\n",[804,1066,1068,1070],{"class":806,"line":1067},31,[804,1069,932],{"class":810},[804,1071,815],{"class":814},[804,1073,1075,1077],{"class":806,"line":1074},32,[804,1076,883],{"class":814},[804,1078,1079],{"class":835},"./alertmanager/alertmanager.yml:/etc/alertmanager/alertmanager.yml:ro\n",[804,1081,1083,1085],{"class":806,"line":1082},33,[804,1084,883],{"class":814},[804,1086,1087],{"class":835},"alertmanager-data:/alertmanager\n",[804,1089,1091],{"class":806,"line":1090},34,[804,1092,989],{"emptyLinePlaceholder":988},[804,1094,1096,1099],{"class":806,"line":1095},35,[804,1097,1098],{"class":810},"  node-exporter",[804,1100,815],{"class":814},[804,1102,1104,1106,1108],{"class":806,"line":1103},36,[804,1105,829],{"class":810},[804,1107,832],{"class":814},[804,1109,1110],{"class":835},"prom/node-exporter:latest\n",[804,1112,1114,1116,1118],{"class":806,"line":1113},37,[804,1115,842],{"class":810},[804,1117,832],{"class":814},[804,1119,1120],{"class":835},"node-exporter\n",[804,1122,1124,1126,1128],{"class":806,"line":1123},38,[804,1125,853],{"class":810},[804,1127,832],{"class":814},[804,1129,858],{"class":835},[804,1131,1133,1135,1137],{"class":806,"line":1132},39,[804,1134,864],{"class":810},[804,1136,832],{"class":814},[804,1138,869],{"class":835},[804,1140,1142,1144],{"class":806,"line":1141},40,[804,1143,875],{"class":810},[804,1145,815],{"class":814},[804,1147,1149,1151],{"class":806,"line":1148},41,[804,1150,883],{"class":814},[804,1152,1153],{"class":835},"\"9100:9100\"\n",[804,1155,1157],{"class":806,"line":1156},42,[804,1158,1160],{"class":1159},"slzXe","    # 让容器内读取宿主机 /proc /sys 以采集宿主机指标\n",[804,1162,1164,1167,1169],{"class":806,"line":1163},43,[804,1165,1166],{"class":810},"    pid",[804,1168,832],{"class":814},[804,1170,1171],{"class":835},"\"host\"\n",[804,1173,1175,1177],{"class":806,"line":1174},44,[804,1176,932],{"class":810},[804,1178,815],{"class":814},[804,1180,1182,1184],{"class":806,"line":1181},45,[804,1183,883],{"class":814},[804,1185,1186],{"class":835},"/proc:/host/proc:ro\n",[804,1188,1190,1192],{"class":806,"line":1189},46,[804,1191,883],{"class":814},[804,1193,1194],{"class":835},"/sys:/host/sys:ro\n",[804,1196,1198,1200],{"class":806,"line":1197},47,[804,1199,883],{"class":814},[804,1201,1202],{"class":835},"/:/rootfs:ro\n",[804,1204,1206,1208],{"class":806,"line":1205},48,[804,1207,892],{"class":810},[804,1209,815],{"class":814},[804,1211,1213,1215],{"class":806,"line":1212},49,[804,1214,883],{"class":814},[804,1216,1217],{"class":835},"--path.procfs=/host/proc\n",[804,1219,1221,1223],{"class":806,"line":1220},50,[804,1222,883],{"class":814},[804,1224,1225],{"class":835},"--path.sysfs=/host/sys\n",[804,1227,1229,1231],{"class":806,"line":1228},51,[804,1230,883],{"class":814},[804,1232,1233],{"class":835},"--path.rootfs=/rootfs\n",[804,1235,1237,1239],{"class":806,"line":1236},52,[804,1238,883],{"class":814},[804,1240,1241],{"class":835},"--collector.filesystem.mount-points-exclude=^/(sys|proc|dev|host|etc)($$|/)\n",[804,1243,1245],{"class":806,"line":1244},53,[804,1246,989],{"emptyLinePlaceholder":988},[804,1248,1250,1253],{"class":806,"line":1249},54,[804,1251,1252],{"class":810},"  blackbox-exporter",[804,1254,815],{"class":814},[804,1256,1258,1260,1262],{"class":806,"line":1257},55,[804,1259,829],{"class":810},[804,1261,832],{"class":814},[804,1263,1264],{"class":835},"prom/blackbox-exporter:latest\n",[804,1266,1268,1270,1272],{"class":806,"line":1267},56,[804,1269,842],{"class":810},[804,1271,832],{"class":814},[804,1273,982],{"class":835},[804,1275,1277,1279,1281],{"class":806,"line":1276},57,[804,1278,853],{"class":810},[804,1280,832],{"class":814},[804,1282,858],{"class":835},[804,1284,1286,1288,1290],{"class":806,"line":1285},58,[804,1287,864],{"class":810},[804,1289,832],{"class":814},[804,1291,869],{"class":835},[804,1293,1295,1297],{"class":806,"line":1294},59,[804,1296,875],{"class":810},[804,1298,815],{"class":814},[804,1300,1302,1304],{"class":806,"line":1301},60,[804,1303,883],{"class":814},[804,1305,1306],{"class":835},"\"9115:9115\"\n",[804,1308,1310,1312],{"class":806,"line":1309},61,[804,1311,932],{"class":810},[804,1313,815],{"class":814},[804,1315,1317,1319],{"class":806,"line":1316},62,[804,1318,883],{"class":814},[804,1320,1321],{"class":835},"./blackbox/blackbox.yml:/etc/blackbox_exporter/config.yml:ro\n",[804,1323,1325,1327],{"class":806,"line":1324},63,[804,1326,892],{"class":810},[804,1328,815],{"class":814},[804,1330,1332,1334],{"class":806,"line":1331},64,[804,1333,883],{"class":814},[804,1335,1336],{"class":835},"--config.file=/etc/blackbox_exporter/config.yml\n",[804,1338,1340],{"class":806,"line":1339},65,[804,1341,989],{"emptyLinePlaceholder":988},[804,1343,1345,1348],{"class":806,"line":1344},66,[804,1346,1347],{"class":810},"  grafana",[804,1349,815],{"class":814},[804,1351,1353,1355,1357],{"class":806,"line":1352},67,[804,1354,829],{"class":810},[804,1356,832],{"class":814},[804,1358,1359],{"class":835},"grafana/grafana-oss:latest\n",[804,1361,1363,1365,1367],{"class":806,"line":1362},68,[804,1364,842],{"class":810},[804,1366,832],{"class":814},[804,1368,1369],{"class":835},"grafana\n",[804,1371,1373,1375,1377],{"class":806,"line":1372},69,[804,1374,853],{"class":810},[804,1376,832],{"class":814},[804,1378,858],{"class":835},[804,1380,1382,1384,1386],{"class":806,"line":1381},70,[804,1383,864],{"class":810},[804,1385,832],{"class":814},[804,1387,869],{"class":835},[804,1389,1391,1393],{"class":806,"line":1390},71,[804,1392,875],{"class":810},[804,1394,815],{"class":814},[804,1396,1398,1400],{"class":806,"line":1397},72,[804,1399,883],{"class":814},[804,1401,1402],{"class":835},"\"3000:3000\"\n",[804,1404,1406,1409],{"class":806,"line":1405},73,[804,1407,1408],{"class":810},"    environment",[804,1410,815],{"class":814},[804,1412,1414,1416],{"class":806,"line":1413},74,[804,1415,883],{"class":814},[804,1417,1418],{"class":835},"GF_SECURITY_ADMIN_USER=admin\n",[804,1420,1422,1424],{"class":806,"line":1421},75,[804,1423,883],{"class":814},[804,1425,1426],{"class":835},"GF_SECURITY_ADMIN_PASSWORD=admin\n",[804,1428,1430,1432],{"class":806,"line":1429},76,[804,1431,932],{"class":810},[804,1433,815],{"class":814},[804,1435,1437,1439],{"class":806,"line":1436},77,[804,1438,883],{"class":814},[804,1440,1441],{"class":835},"grafana-data:/var/lib/grafana\n",[804,1443,1445],{"class":806,"line":1444},78,[804,1446,989],{"emptyLinePlaceholder":988},[804,1448,1450,1453],{"class":806,"line":1449},79,[804,1451,1452],{"class":810},"volumes",[804,1454,815],{"class":814},[804,1456,1458,1461],{"class":806,"line":1457},80,[804,1459,1460],{"class":810},"  prometheus-data",[804,1462,815],{"class":814},[804,1464,1466,1469],{"class":806,"line":1465},81,[804,1467,1468],{"class":810},"  alertmanager-data",[804,1470,815],{"class":814},[804,1472,1474,1477],{"class":806,"line":1473},82,[804,1475,1476],{"class":810},"  grafana-data",[804,1478,815],{"class":814},[789,1480,1482],{"id":1481},"prometheus-配置文件","prometheus 配置文件",[794,1484,1487],{"className":796,"code":1485,"filename":1486,"language":799,"meta":779,"style":779},"global:\n  scrape_interval: 15s\n  evaluation_interval: 15s\n  scrape_timeout: 10s\n\nalerting:\n  alertmanagers:\n    - static_configs:\n        - targets: [\"alertmanager:9093\"]\n\nrule_files:\n  - /etc/prometheus/rules/*.yml\n\nscrape_configs:\n  - job_name: \"prometheus\"\n    static_configs:\n      - targets: [\"prometheus:9090\"]\n\n  - job_name: \"node-exporter\"\n    static_configs:\n      - targets: [\"node-exporter:9100\"]\n        labels:\n          instance: \"Prometheus-Instance\"\n          nodename: \"Prometheus-NodeName\"\n","prometheus/prometheus.yml",[801,1488,1489,1496,1506,1515,1525,1529,1536,1543,1553,1570,1574,1581,1589,1593,1600,1612,1619,1632,1636,1647,1653,1666,1673,1683],{"__ignoreMap":779},[804,1490,1491,1494],{"class":806,"line":807},[804,1492,1493],{"class":810},"global",[804,1495,815],{"class":814},[804,1497,1498,1501,1503],{"class":806,"line":818},[804,1499,1500],{"class":810},"  scrape_interval",[804,1502,832],{"class":814},[804,1504,1505],{"class":835},"15s\n",[804,1507,1508,1511,1513],{"class":806,"line":826},[804,1509,1510],{"class":810},"  evaluation_interval",[804,1512,832],{"class":814},[804,1514,1505],{"class":835},[804,1516,1517,1520,1522],{"class":806,"line":839},[804,1518,1519],{"class":810},"  scrape_timeout",[804,1521,832],{"class":814},[804,1523,1524],{"class":835},"10s\n",[804,1526,1527],{"class":806,"line":850},[804,1528,989],{"emptyLinePlaceholder":988},[804,1530,1531,1534],{"class":806,"line":861},[804,1532,1533],{"class":810},"alerting",[804,1535,815],{"class":814},[804,1537,1538,1541],{"class":806,"line":872},[804,1539,1540],{"class":810},"  alertmanagers",[804,1542,815],{"class":814},[804,1544,1545,1548,1551],{"class":806,"line":880},[804,1546,1547],{"class":814},"    - ",[804,1549,1550],{"class":810},"static_configs",[804,1552,815],{"class":814},[804,1554,1555,1558,1561,1564,1567],{"class":806,"line":889},[804,1556,1557],{"class":814},"        - ",[804,1559,1560],{"class":810},"targets",[804,1562,1563],{"class":814},": [",[804,1565,1566],{"class":835},"\"alertmanager:9093\"",[804,1568,1569],{"class":814},"]\n",[804,1571,1572],{"class":806,"line":897},[804,1573,989],{"emptyLinePlaceholder":988},[804,1575,1576,1579],{"class":806,"line":905},[804,1577,1578],{"class":810},"rule_files",[804,1580,815],{"class":814},[804,1582,1583,1586],{"class":806,"line":913},[804,1584,1585],{"class":814},"  - ",[804,1587,1588],{"class":835},"/etc/prometheus/rules/*.yml\n",[804,1590,1591],{"class":806,"line":921},[804,1592,989],{"emptyLinePlaceholder":988},[804,1594,1595,1598],{"class":806,"line":929},[804,1596,1597],{"class":810},"scrape_configs",[804,1599,815],{"class":814},[804,1601,1602,1604,1607,1609],{"class":806,"line":937},[804,1603,1585],{"class":814},[804,1605,1606],{"class":810},"job_name",[804,1608,832],{"class":814},[804,1610,1611],{"class":835},"\"prometheus\"\n",[804,1613,1614,1617],{"class":806,"line":945},[804,1615,1616],{"class":810},"    static_configs",[804,1618,815],{"class":814},[804,1620,1621,1623,1625,1627,1630],{"class":806,"line":953},[804,1622,883],{"class":814},[804,1624,1560],{"class":810},[804,1626,1563],{"class":814},[804,1628,1629],{"class":835},"\"prometheus:9090\"",[804,1631,1569],{"class":814},[804,1633,1634],{"class":806,"line":961},[804,1635,989],{"emptyLinePlaceholder":988},[804,1637,1638,1640,1642,1644],{"class":806,"line":969},[804,1639,1585],{"class":814},[804,1641,1606],{"class":810},[804,1643,832],{"class":814},[804,1645,1646],{"class":835},"\"node-exporter\"\n",[804,1648,1649,1651],{"class":806,"line":977},[804,1650,1616],{"class":810},[804,1652,815],{"class":814},[804,1654,1655,1657,1659,1661,1664],{"class":806,"line":985},[804,1656,883],{"class":814},[804,1658,1560],{"class":810},[804,1660,1563],{"class":814},[804,1662,1663],{"class":835},"\"node-exporter:9100\"",[804,1665,1569],{"class":814},[804,1667,1668,1671],{"class":806,"line":992},[804,1669,1670],{"class":810},"        labels",[804,1672,815],{"class":814},[804,1674,1675,1678,1680],{"class":806,"line":1000},[804,1676,1677],{"class":810},"          instance",[804,1679,832],{"class":814},[804,1681,1682],{"class":835},"\"Prometheus-Instance\"\n",[804,1684,1685,1688,1690],{"class":806,"line":1010},[804,1686,1687],{"class":810},"          nodename",[804,1689,832],{"class":814},[804,1691,1692],{"class":835},"\"Prometheus-NodeName\"\n",[789,1694,1696],{"id":1695},"alertmanager-配置文件","alertmanager 配置文件",[794,1698,1701],{"className":796,"code":1699,"filename":1700,"language":799,"meta":779,"style":779},"route:\n  receiver: \"null\"\n\nreceivers:\n  - name: \"null\"\n    # 示例：改成邮箱/企业微信/钉钉/Slack/Webhook 等\n    # email_configs:\n    #   - to: \"ops@example.com\"\n","alertmanager/alertmanager.yml",[801,1702,1703,1710,1720,1724,1731,1742,1747,1752],{"__ignoreMap":779},[804,1704,1705,1708],{"class":806,"line":807},[804,1706,1707],{"class":810},"route",[804,1709,815],{"class":814},[804,1711,1712,1715,1717],{"class":806,"line":818},[804,1713,1714],{"class":810},"  receiver",[804,1716,832],{"class":814},[804,1718,1719],{"class":835},"\"null\"\n",[804,1721,1722],{"class":806,"line":826},[804,1723,989],{"emptyLinePlaceholder":988},[804,1725,1726,1729],{"class":806,"line":839},[804,1727,1728],{"class":810},"receivers",[804,1730,815],{"class":814},[804,1732,1733,1735,1738,1740],{"class":806,"line":850},[804,1734,1585],{"class":814},[804,1736,1737],{"class":810},"name",[804,1739,832],{"class":814},[804,1741,1719],{"class":835},[804,1743,1744],{"class":806,"line":861},[804,1745,1746],{"class":1159},"    # 示例：改成邮箱/企业微信/钉钉/Slack/Webhook 等\n",[804,1748,1749],{"class":806,"line":872},[804,1750,1751],{"class":1159},"    # email_configs:\n",[804,1753,1754],{"class":806,"line":880},[804,1755,1756],{"class":1159},"    #   - to: \"ops@example.com\"\n",[789,1758,1759],{"id":1759},"访问",[1761,1762,1763,1771],"ul",{},[1764,1765,1766,1767],"li",{},"Prometheus: ",[668,1768,1769],{"href":1769,"rel":1770},"http://localhost:9090",[672],[1764,1772,1773,1774,1778],{},"Grafana: ",[668,1775,1776],{"href":1776,"rel":1777},"http://localhost:3000",[672],"  （默认 admin / admin）",[686,1780,1782],{"id":1781},"install-node-exporter","客户端安装 Node Exporter 组件",[794,1784,1789],{"className":1785,"code":1786,"filename":1787,"language":1788,"meta":779,"style":779},"language-bash shiki shiki-themes one-light one-light one-dark-pro","#!/bin/bash\n# ============================================================\n# Node Exporter 安装脚本 - 适用于 Debian 13 / Ubuntu\n# 版本：v1.9.1\n# 作者：胖哥\n# 站点：https://digvps.com/\n# ============================================================\n\nset -e\n\nVERSION=\"1.10.2\"\nARCH=\"linux-amd64\"\nDOWNLOAD_URL=\"https://github.com/prometheus/node_exporter/releases/download/v${VERSION}/node_exporter-${VERSION}.${ARCH}.tar.gz\"\n\necho \"📦 下载 Node Exporter v${VERSION} ...\"\nwget -q ${DOWNLOAD_URL} -O /tmp/node_exporter.tar.gz\n\necho \"📂 解压文件 ...\"\ntar -xzf /tmp/node_exporter.tar.gz -C /tmp\ncd /tmp/node_exporter-${VERSION}.${ARCH}\n\necho \"🚀 安装二进制到 /usr/local/bin ...\"\ncp node_exporter /usr/local/bin/\nchmod +x /usr/local/bin/node_exporter\n\necho \"👤 创建 nodeusr 用户（如不存在）...\"\nif ! id \"nodeusr\" &>/dev/null; then\n  useradd --no-create-home --shell /usr/sbin/nologin nodeusr\nfi\n\necho \"🧾 创建 systemd 服务文件 ...\"\ncat >/etc/systemd/system/node_exporter.service \u003C\u003C'EOF'\n[Unit]\nDescription=Prometheus Node Exporter\nDocumentation=https://github.com/prometheus/node_exporter\nAfter=network-online.target\n\n[Service]\nUser=nodeusr\nGroup=nodeusr\nType=simple\nExecStart=/usr/local/bin/node_exporter \\\n  --web.listen-address=\":9100\" \n\nRestart=on-failure\n\n[Install]\nWantedBy=multi-user.target\nEOF\n\necho \"🔄 重新加载 systemd 守护进程 ...\"\nsystemctl daemon-reload\n\necho \"▶️ 启动 Node Exporter 服务 ...\"\nsystemctl enable --now node_exporter\n\necho \"✅ Node Exporter 安装完成！\"\necho \"------------------------------------------------------------\"\necho \"访问地址: http://\u003C服务器IP>:9100/metrics\"\necho \"服务状态: systemctl status node_exporter\"\necho \"日志查看: journalctl -u node_exporter -f\"\necho \"------------------------------------------------------------\"\n","terminal","bash",[801,1790,1791,1796,1801,1806,1811,1816,1821,1825,1829,1839,1843,1855,1865,1905,1909,1926,1949,1953,1960,1977,2000,2004,2011,2022,2033,2037,2044,2065,2082,2087,2091,2098,2115,2120,2125,2130,2135,2139,2144,2149,2154,2159,2164,2169,2173,2178,2182,2187,2192,2197,2201,2208,2216,2220,2227,2240,2244,2251,2258,2265,2272,2279],{"__ignoreMap":779},[804,1792,1793],{"class":806,"line":807},[804,1794,1795],{"class":1159},"#!/bin/bash\n",[804,1797,1798],{"class":806,"line":818},[804,1799,1800],{"class":1159},"# ============================================================\n",[804,1802,1803],{"class":806,"line":826},[804,1804,1805],{"class":1159},"# Node Exporter 安装脚本 - 适用于 Debian 13 / Ubuntu\n",[804,1807,1808],{"class":806,"line":839},[804,1809,1810],{"class":1159},"# 版本：v1.9.1\n",[804,1812,1813],{"class":806,"line":850},[804,1814,1815],{"class":1159},"# 作者：胖哥\n",[804,1817,1818],{"class":806,"line":861},[804,1819,1820],{"class":1159},"# 站点：https://digvps.com/\n",[804,1822,1823],{"class":806,"line":872},[804,1824,1800],{"class":1159},[804,1826,1827],{"class":806,"line":880},[804,1828,989],{"emptyLinePlaceholder":988},[804,1830,1831,1835],{"class":806,"line":889},[804,1832,1834],{"class":1833},"sXhqU","set",[804,1836,1838],{"class":1837},"soiGB"," -e\n",[804,1840,1841],{"class":806,"line":897},[804,1842,989],{"emptyLinePlaceholder":988},[804,1844,1845,1848,1852],{"class":806,"line":905},[804,1846,1847],{"class":810},"VERSION",[804,1849,1851],{"class":1850},"sQ8GY","=",[804,1853,1854],{"class":835},"\"1.10.2\"\n",[804,1856,1857,1860,1862],{"class":806,"line":913},[804,1858,1859],{"class":810},"ARCH",[804,1861,1851],{"class":1850},[804,1863,1864],{"class":835},"\"linux-amd64\"\n",[804,1866,1867,1870,1872,1875,1879,1881,1884,1887,1889,1891,1893,1896,1898,1900,1902],{"class":806,"line":921},[804,1868,1869],{"class":810},"DOWNLOAD_URL",[804,1871,1851],{"class":1850},[804,1873,1874],{"class":835},"\"https://github.com/prometheus/node_exporter/releases/download/v",[804,1876,1878],{"class":1877},"s0nYC","${",[804,1880,1847],{"class":810},[804,1882,1883],{"class":1877},"}",[804,1885,1886],{"class":835},"/node_exporter-",[804,1888,1878],{"class":1877},[804,1890,1847],{"class":810},[804,1892,1883],{"class":1877},[804,1894,1895],{"class":835},".",[804,1897,1878],{"class":1877},[804,1899,1859],{"class":810},[804,1901,1883],{"class":1877},[804,1903,1904],{"class":835},".tar.gz\"\n",[804,1906,1907],{"class":806,"line":929},[804,1908,989],{"emptyLinePlaceholder":988},[804,1910,1911,1914,1917,1919,1921,1923],{"class":806,"line":937},[804,1912,1913],{"class":1833},"echo",[804,1915,1916],{"class":835}," \"📦 下载 Node Exporter v",[804,1918,1878],{"class":1877},[804,1920,1847],{"class":810},[804,1922,1883],{"class":1877},[804,1924,1925],{"class":835}," ...\"\n",[804,1927,1928,1932,1935,1939,1941,1943,1946],{"class":806,"line":945},[804,1929,1931],{"class":1930},"sgdWN","wget",[804,1933,1934],{"class":1837}," -q",[804,1936,1938],{"class":1937},"sfXbn"," ${",[804,1940,1869],{"class":810},[804,1942,1883],{"class":1937},[804,1944,1945],{"class":1837}," -O",[804,1947,1948],{"class":835}," /tmp/node_exporter.tar.gz\n",[804,1950,1951],{"class":806,"line":953},[804,1952,989],{"emptyLinePlaceholder":988},[804,1954,1955,1957],{"class":806,"line":961},[804,1956,1913],{"class":1833},[804,1958,1959],{"class":835}," \"📂 解压文件 ...\"\n",[804,1961,1962,1965,1968,1971,1974],{"class":806,"line":969},[804,1963,1964],{"class":1930},"tar",[804,1966,1967],{"class":1837}," -xzf",[804,1969,1970],{"class":835}," /tmp/node_exporter.tar.gz",[804,1972,1973],{"class":1837}," -C",[804,1975,1976],{"class":835}," /tmp\n",[804,1978,1979,1982,1985,1987,1989,1991,1993,1995,1997],{"class":806,"line":977},[804,1980,1981],{"class":1833},"cd",[804,1983,1984],{"class":835}," /tmp/node_exporter-",[804,1986,1878],{"class":1937},[804,1988,1847],{"class":810},[804,1990,1883],{"class":1937},[804,1992,1895],{"class":835},[804,1994,1878],{"class":1937},[804,1996,1859],{"class":810},[804,1998,1999],{"class":1937},"}\n",[804,2001,2002],{"class":806,"line":985},[804,2003,989],{"emptyLinePlaceholder":988},[804,2005,2006,2008],{"class":806,"line":992},[804,2007,1913],{"class":1833},[804,2009,2010],{"class":835}," \"🚀 安装二进制到 /usr/local/bin ...\"\n",[804,2012,2013,2016,2019],{"class":806,"line":1000},[804,2014,2015],{"class":1930},"cp",[804,2017,2018],{"class":835}," node_exporter",[804,2020,2021],{"class":835}," /usr/local/bin/\n",[804,2023,2024,2027,2030],{"class":806,"line":1010},[804,2025,2026],{"class":1930},"chmod",[804,2028,2029],{"class":835}," +x",[804,2031,2032],{"class":835}," /usr/local/bin/node_exporter\n",[804,2034,2035],{"class":806,"line":1019},[804,2036,989],{"emptyLinePlaceholder":988},[804,2038,2039,2041],{"class":806,"line":1028},[804,2040,1913],{"class":1833},[804,2042,2043],{"class":835}," \"👤 创建 nodeusr 用户（如不存在）...\"\n",[804,2045,2046,2050,2053,2056,2059,2062],{"class":806,"line":1037},[804,2047,2049],{"class":2048},"sRLjE","if",[804,2051,2052],{"class":814}," ! ",[804,2054,2055],{"class":1930},"id",[804,2057,2058],{"class":835}," \"nodeusr\"",[804,2060,2061],{"class":814}," &>/dev/null; ",[804,2063,2064],{"class":2048},"then\n",[804,2066,2067,2070,2073,2076,2079],{"class":806,"line":1044},[804,2068,2069],{"class":1930},"  useradd",[804,2071,2072],{"class":1837}," --no-create-home",[804,2074,2075],{"class":1837}," --shell",[804,2077,2078],{"class":835}," /usr/sbin/nologin",[804,2080,2081],{"class":835}," nodeusr\n",[804,2083,2084],{"class":806,"line":1052},[804,2085,2086],{"class":2048},"fi\n",[804,2088,2089],{"class":806,"line":1059},[804,2090,989],{"emptyLinePlaceholder":988},[804,2092,2093,2095],{"class":806,"line":1067},[804,2094,1913],{"class":1833},[804,2096,2097],{"class":835}," \"🧾 创建 systemd 服务文件 ...\"\n",[804,2099,2100,2103,2106,2109,2112],{"class":806,"line":1074},[804,2101,2102],{"class":1930},"cat",[804,2104,2105],{"class":814}," >",[804,2107,2108],{"class":835},"/etc/systemd/system/node_exporter.service",[804,2110,2111],{"class":814}," \u003C\u003C",[804,2113,2114],{"class":814},"'EOF'\n",[804,2116,2117],{"class":806,"line":1082},[804,2118,2119],{"class":835},"[Unit]\n",[804,2121,2122],{"class":806,"line":1090},[804,2123,2124],{"class":835},"Description=Prometheus Node Exporter\n",[804,2126,2127],{"class":806,"line":1095},[804,2128,2129],{"class":835},"Documentation=https://github.com/prometheus/node_exporter\n",[804,2131,2132],{"class":806,"line":1103},[804,2133,2134],{"class":835},"After=network-online.target\n",[804,2136,2137],{"class":806,"line":1113},[804,2138,989],{"emptyLinePlaceholder":988},[804,2140,2141],{"class":806,"line":1123},[804,2142,2143],{"class":835},"[Service]\n",[804,2145,2146],{"class":806,"line":1132},[804,2147,2148],{"class":835},"User=nodeusr\n",[804,2150,2151],{"class":806,"line":1141},[804,2152,2153],{"class":835},"Group=nodeusr\n",[804,2155,2156],{"class":806,"line":1148},[804,2157,2158],{"class":835},"Type=simple\n",[804,2160,2161],{"class":806,"line":1156},[804,2162,2163],{"class":835},"ExecStart=/usr/local/bin/node_exporter \\\n",[804,2165,2166],{"class":806,"line":1163},[804,2167,2168],{"class":835},"  --web.listen-address=\":9100\" \n",[804,2170,2171],{"class":806,"line":1174},[804,2172,989],{"emptyLinePlaceholder":988},[804,2174,2175],{"class":806,"line":1181},[804,2176,2177],{"class":835},"Restart=on-failure\n",[804,2179,2180],{"class":806,"line":1189},[804,2181,989],{"emptyLinePlaceholder":988},[804,2183,2184],{"class":806,"line":1197},[804,2185,2186],{"class":835},"[Install]\n",[804,2188,2189],{"class":806,"line":1205},[804,2190,2191],{"class":835},"WantedBy=multi-user.target\n",[804,2193,2194],{"class":806,"line":1212},[804,2195,2196],{"class":814},"EOF\n",[804,2198,2199],{"class":806,"line":1220},[804,2200,989],{"emptyLinePlaceholder":988},[804,2202,2203,2205],{"class":806,"line":1228},[804,2204,1913],{"class":1833},[804,2206,2207],{"class":835}," \"🔄 重新加载 systemd 守护进程 ...\"\n",[804,2209,2210,2213],{"class":806,"line":1236},[804,2211,2212],{"class":1930},"systemctl",[804,2214,2215],{"class":835}," daemon-reload\n",[804,2217,2218],{"class":806,"line":1244},[804,2219,989],{"emptyLinePlaceholder":988},[804,2221,2222,2224],{"class":806,"line":1249},[804,2223,1913],{"class":1833},[804,2225,2226],{"class":835}," \"▶️ 启动 Node Exporter 服务 ...\"\n",[804,2228,2229,2231,2234,2237],{"class":806,"line":1257},[804,2230,2212],{"class":1930},[804,2232,2233],{"class":835}," enable",[804,2235,2236],{"class":1837}," --now",[804,2238,2239],{"class":835}," node_exporter\n",[804,2241,2242],{"class":806,"line":1267},[804,2243,989],{"emptyLinePlaceholder":988},[804,2245,2246,2248],{"class":806,"line":1276},[804,2247,1913],{"class":1833},[804,2249,2250],{"class":835}," \"✅ Node Exporter 安装完成！\"\n",[804,2252,2253,2255],{"class":806,"line":1285},[804,2254,1913],{"class":1833},[804,2256,2257],{"class":835}," \"------------------------------------------------------------\"\n",[804,2259,2260,2262],{"class":806,"line":1294},[804,2261,1913],{"class":1833},[804,2263,2264],{"class":835}," \"访问地址: http://\u003C服务器IP>:9100/metrics\"\n",[804,2266,2267,2269],{"class":806,"line":1301},[804,2268,1913],{"class":1833},[804,2270,2271],{"class":835}," \"服务状态: systemctl status node_exporter\"\n",[804,2273,2274,2276],{"class":806,"line":1309},[804,2275,1913],{"class":1833},[804,2277,2278],{"class":835}," \"日志查看: journalctl -u node_exporter -f\"\n",[804,2280,2281,2283],{"class":806,"line":1316},[804,2282,1913],{"class":1833},[804,2284,2257],{"class":835},[656,2286,2288],{"id":2287},"prometheu-alertmanager","📘 Prometheu + Alertmanager 警告配置",[686,2290,2291],{"id":2291},"警告规则配置",[661,2293,2294],{},"服务器离线（Node Down）",[794,2296,2299],{"className":796,"code":2297,"filename":2298,"language":799,"meta":779,"style":779},"groups:\n  - name: node_down\n    rules:\n      - alert: NodeDown\n        expr: up{job=\"node-exporter\"} == 0\n        for: 1m\n        labels:\n          severity: critical\n        annotations:\n          summary: \"💀 节点 {{ $labels.instance }} 离线\"\n          description: \"Exporter 无法连接（可能服务器宕机或网络故障）\"\n","prometheus/rules/node_down.yml",[801,2300,2301,2308,2319,2326,2338,2348,2358,2364,2374,2381,2391],{"__ignoreMap":779},[804,2302,2303,2306],{"class":806,"line":807},[804,2304,2305],{"class":810},"groups",[804,2307,815],{"class":814},[804,2309,2310,2312,2314,2316],{"class":806,"line":818},[804,2311,1585],{"class":814},[804,2313,1737],{"class":810},[804,2315,832],{"class":814},[804,2317,2318],{"class":835},"node_down\n",[804,2320,2321,2324],{"class":806,"line":826},[804,2322,2323],{"class":810},"    rules",[804,2325,815],{"class":814},[804,2327,2328,2330,2333,2335],{"class":806,"line":839},[804,2329,883],{"class":814},[804,2331,2332],{"class":810},"alert",[804,2334,832],{"class":814},[804,2336,2337],{"class":835},"NodeDown\n",[804,2339,2340,2343,2345],{"class":806,"line":850},[804,2341,2342],{"class":810},"        expr",[804,2344,832],{"class":814},[804,2346,2347],{"class":835},"up{job=\"node-exporter\"} == 0\n",[804,2349,2350,2353,2355],{"class":806,"line":861},[804,2351,2352],{"class":810},"        for",[804,2354,832],{"class":814},[804,2356,2357],{"class":835},"1m\n",[804,2359,2360,2362],{"class":806,"line":872},[804,2361,1670],{"class":810},[804,2363,815],{"class":814},[804,2365,2366,2369,2371],{"class":806,"line":880},[804,2367,2368],{"class":810},"          severity",[804,2370,832],{"class":814},[804,2372,2373],{"class":835},"critical\n",[804,2375,2376,2379],{"class":806,"line":889},[804,2377,2378],{"class":810},"        annotations",[804,2380,815],{"class":814},[804,2382,2383,2386,2388],{"class":806,"line":897},[804,2384,2385],{"class":810},"          summary",[804,2387,832],{"class":814},[804,2389,2390],{"class":835},"\"💀 节点 {{ $labels.instance }} 离线\"\n",[804,2392,2393,2396,2398],{"class":806,"line":905},[804,2394,2395],{"class":810},"          description",[804,2397,832],{"class":814},[804,2399,2400],{"class":835},"\"Exporter 无法连接（可能服务器宕机或网络故障）\"\n",[661,2402,2403],{},"CPU 使用率过高",[794,2405,2408],{"className":796,"code":2406,"filename":2407,"language":799,"meta":779,"style":779},"groups:\n  - name: node_cpu\n    rules:\n      - alert: HighCPUUsage\n        expr: 100 - (avg by (instance) (rate(node_cpu_seconds_total{mode=\"idle\"}[5m])) * 100) > 90\n        for: 2m\n        labels:\n          severity: warning\n        annotations:\n          summary: \"🔥 CPU 使用率过高 ({{ $labels.instance }})\"\n          description: \"当前 CPU 使用率超过 90%\"\n","prometheus/rules/node_usage.yml",[801,2409,2410,2416,2427,2433,2444,2453,2462,2468,2477,2483,2492],{"__ignoreMap":779},[804,2411,2412,2414],{"class":806,"line":807},[804,2413,2305],{"class":810},[804,2415,815],{"class":814},[804,2417,2418,2420,2422,2424],{"class":806,"line":818},[804,2419,1585],{"class":814},[804,2421,1737],{"class":810},[804,2423,832],{"class":814},[804,2425,2426],{"class":835},"node_cpu\n",[804,2428,2429,2431],{"class":806,"line":826},[804,2430,2323],{"class":810},[804,2432,815],{"class":814},[804,2434,2435,2437,2439,2441],{"class":806,"line":839},[804,2436,883],{"class":814},[804,2438,2332],{"class":810},[804,2440,832],{"class":814},[804,2442,2443],{"class":835},"HighCPUUsage\n",[804,2445,2446,2448,2450],{"class":806,"line":850},[804,2447,2342],{"class":810},[804,2449,832],{"class":814},[804,2451,2452],{"class":835},"100 - (avg by (instance) (rate(node_cpu_seconds_total{mode=\"idle\"}[5m])) * 100) > 90\n",[804,2454,2455,2457,2459],{"class":806,"line":861},[804,2456,2352],{"class":810},[804,2458,832],{"class":814},[804,2460,2461],{"class":835},"2m\n",[804,2463,2464,2466],{"class":806,"line":872},[804,2465,1670],{"class":810},[804,2467,815],{"class":814},[804,2469,2470,2472,2474],{"class":806,"line":880},[804,2471,2368],{"class":810},[804,2473,832],{"class":814},[804,2475,2476],{"class":835},"warning\n",[804,2478,2479,2481],{"class":806,"line":889},[804,2480,2378],{"class":810},[804,2482,815],{"class":814},[804,2484,2485,2487,2489],{"class":806,"line":897},[804,2486,2385],{"class":810},[804,2488,832],{"class":814},[804,2490,2491],{"class":835},"\"🔥 CPU 使用率过高 ({{ $labels.instance }})\"\n",[804,2493,2494,2496,2498],{"class":806,"line":905},[804,2495,2395],{"class":810},[804,2497,832],{"class":814},[804,2499,2500],{"class":835},"\"当前 CPU 使用率超过 90%\"\n",[661,2502,2503],{},"内存使用率过高",[794,2505,2508],{"className":796,"code":2506,"filename":2507,"language":799,"meta":779,"style":779},"groups:\n  - name: node_memory\n    rules:\n      - alert: HighMemoryUsage\n        expr: (1 - node_memory_MemAvailable_bytes / node_memory_MemTotal_bytes) * 100 > 90\n        for: 2m\n        labels:\n          severity: warning\n        annotations:\n          summary: \"💾 内存使用率过高 ({{ $labels.instance }})\"\n          description: \"当前内存使用率已超过 90%\"\n","prometheus/rules/node_ram.yml",[801,2509,2510,2516,2527,2533,2544,2553,2561,2567,2575,2581,2590],{"__ignoreMap":779},[804,2511,2512,2514],{"class":806,"line":807},[804,2513,2305],{"class":810},[804,2515,815],{"class":814},[804,2517,2518,2520,2522,2524],{"class":806,"line":818},[804,2519,1585],{"class":814},[804,2521,1737],{"class":810},[804,2523,832],{"class":814},[804,2525,2526],{"class":835},"node_memory\n",[804,2528,2529,2531],{"class":806,"line":826},[804,2530,2323],{"class":810},[804,2532,815],{"class":814},[804,2534,2535,2537,2539,2541],{"class":806,"line":839},[804,2536,883],{"class":814},[804,2538,2332],{"class":810},[804,2540,832],{"class":814},[804,2542,2543],{"class":835},"HighMemoryUsage\n",[804,2545,2546,2548,2550],{"class":806,"line":850},[804,2547,2342],{"class":810},[804,2549,832],{"class":814},[804,2551,2552],{"class":835},"(1 - node_memory_MemAvailable_bytes / node_memory_MemTotal_bytes) * 100 > 90\n",[804,2554,2555,2557,2559],{"class":806,"line":861},[804,2556,2352],{"class":810},[804,2558,832],{"class":814},[804,2560,2461],{"class":835},[804,2562,2563,2565],{"class":806,"line":872},[804,2564,1670],{"class":810},[804,2566,815],{"class":814},[804,2568,2569,2571,2573],{"class":806,"line":880},[804,2570,2368],{"class":810},[804,2572,832],{"class":814},[804,2574,2476],{"class":835},[804,2576,2577,2579],{"class":806,"line":889},[804,2578,2378],{"class":810},[804,2580,815],{"class":814},[804,2582,2583,2585,2587],{"class":806,"line":897},[804,2584,2385],{"class":810},[804,2586,832],{"class":814},[804,2588,2589],{"class":835},"\"💾 内存使用率过高 ({{ $labels.instance }})\"\n",[804,2591,2592,2594,2596],{"class":806,"line":905},[804,2593,2395],{"class":810},[804,2595,832],{"class":814},[804,2597,2598],{"class":835},"\"当前内存使用率已超过 90%\"\n",[661,2600,2601],{},"网络流量异常（例如上行/下行过高）",[794,2603,2605],{"className":796,"code":2506,"filename":2604,"language":799,"meta":779,"style":779},"prometheus/rules/node_network.yml",[801,2606,2607,2613,2623,2629,2639,2647,2655,2661,2669,2675,2683],{"__ignoreMap":779},[804,2608,2609,2611],{"class":806,"line":807},[804,2610,2305],{"class":810},[804,2612,815],{"class":814},[804,2614,2615,2617,2619,2621],{"class":806,"line":818},[804,2616,1585],{"class":814},[804,2618,1737],{"class":810},[804,2620,832],{"class":814},[804,2622,2526],{"class":835},[804,2624,2625,2627],{"class":806,"line":826},[804,2626,2323],{"class":810},[804,2628,815],{"class":814},[804,2630,2631,2633,2635,2637],{"class":806,"line":839},[804,2632,883],{"class":814},[804,2634,2332],{"class":810},[804,2636,832],{"class":814},[804,2638,2543],{"class":835},[804,2640,2641,2643,2645],{"class":806,"line":850},[804,2642,2342],{"class":810},[804,2644,832],{"class":814},[804,2646,2552],{"class":835},[804,2648,2649,2651,2653],{"class":806,"line":861},[804,2650,2352],{"class":810},[804,2652,832],{"class":814},[804,2654,2461],{"class":835},[804,2656,2657,2659],{"class":806,"line":872},[804,2658,1670],{"class":810},[804,2660,815],{"class":814},[804,2662,2663,2665,2667],{"class":806,"line":880},[804,2664,2368],{"class":810},[804,2666,832],{"class":814},[804,2668,2476],{"class":835},[804,2670,2671,2673],{"class":806,"line":889},[804,2672,2378],{"class":810},[804,2674,815],{"class":814},[804,2676,2677,2679,2681],{"class":806,"line":897},[804,2678,2385],{"class":810},[804,2680,832],{"class":814},[804,2682,2589],{"class":835},[804,2684,2685,2687,2689],{"class":806,"line":905},[804,2686,2395],{"class":810},[804,2688,832],{"class":814},[804,2690,2598],{"class":835},[661,2692,2693],{},"磁盘使用",[794,2695,2698],{"className":796,"code":2696,"filename":2697,"language":799,"meta":779,"style":779},"groups:\n  - name: node_disk\n    rules:\n      # 1) 磁盘使用率过高（Warning / Critical）\n      - alert: DiskUsageHigh\n        expr: |\n          100 * (1 - node_filesystem_avail_bytes{fstype!~\"tmpfs|overlay|squashfs|devtmpfs|nsfs|tracefs|cgroup2.*|autofs|proc|sysfs|bpf|ramfs\"}\n                     / node_filesystem_size_bytes{fstype!~\"tmpfs|overlay|squashfs|devtmpfs|nsfs|tracefs|cgroup2.*|autofs|proc|sysfs|bpf|ramfs\"}) > 90\n        for: 5m\n        labels:\n          severity: critical\n        annotations:\n          summary: \"📦 磁盘使用率过高 ({{ $labels.instance }} {{ $labels.mountpoint }})\"\n          description: \"磁盘使用率 > 90% 持续 5 分钟；当前值={{ $value | printf \\\"%.1f\\\" }}%\"\n\n      - alert: DiskUsageHigh\n        expr: |\n          100 * (1 - node_filesystem_avail_bytes{fstype!~\"tmpfs|overlay|squashfs|devtmpfs|nsfs|tracefs|cgroup2.*|autofs|proc|sysfs|bpf|ramfs\"}\n                     / node_filesystem_size_bytes{fstype!~\"tmpfs|overlay|squashfs|devtmpfs|nsfs|tracefs|cgroup2.*|autofs|proc|sysfs|bpf|ramfs\"}) > 80\n        for: 10m\n        labels:\n          severity: warning\n        annotations:\n          summary: \"📦 磁盘使用率偏高 ({{ $labels.instance }} {{ $labels.mountpoint }})\"\n          description: \"磁盘使用率 > 80% 持续 10 分钟；当前值={{ $value | printf \\\"%.1f\\\" }}%\"\n\n      # 2) inode 使用率过高（防止“有空间但没 inode”）\n      - alert: InodeUsageHigh\n        expr: |\n          100 * (1 - node_filesystem_files_free{fstype!~\"tmpfs|overlay|squashfs|devtmpfs|nsfs|tracefs|cgroup2.*|autofs|proc|sysfs|bpf|ramfs\"}\n                     / node_filesystem_files{fstype!~\"tmpfs|overlay|squashfs|devtmpfs|nsfs|tracefs|cgroup2.*|autofs|proc|sysfs|bpf|ramfs\"}) > 80\n        for: 10m\n        labels:\n          severity: warning\n        annotations:\n          summary: \"📁 inode 使用率偏高 ({{ $labels.instance }} {{ $labels.mountpoint }})\"\n          description: \"inode 使用率 > 80% 持续 10 分钟；当前值={{ $value | printf \\\"%.1f\\\" }}%\"\n","prometheus/rules/node_disk.yml",[801,2699,2700,2706,2717,2723,2728,2739,2748,2753,2758,2767,2773,2781,2787,2796,2816,2820,2830,2838,2842,2847,2856,2862,2870,2876,2885,2902,2906,2911,2922,2930,2935,2940,2948,2954,2962,2968,2977],{"__ignoreMap":779},[804,2701,2702,2704],{"class":806,"line":807},[804,2703,2305],{"class":810},[804,2705,815],{"class":814},[804,2707,2708,2710,2712,2714],{"class":806,"line":818},[804,2709,1585],{"class":814},[804,2711,1737],{"class":810},[804,2713,832],{"class":814},[804,2715,2716],{"class":835},"node_disk\n",[804,2718,2719,2721],{"class":806,"line":826},[804,2720,2323],{"class":810},[804,2722,815],{"class":814},[804,2724,2725],{"class":806,"line":839},[804,2726,2727],{"class":1159},"      # 1) 磁盘使用率过高（Warning / Critical）\n",[804,2729,2730,2732,2734,2736],{"class":806,"line":850},[804,2731,883],{"class":814},[804,2733,2332],{"class":810},[804,2735,832],{"class":814},[804,2737,2738],{"class":835},"DiskUsageHigh\n",[804,2740,2741,2743,2745],{"class":806,"line":861},[804,2742,2342],{"class":810},[804,2744,832],{"class":814},[804,2746,2747],{"class":2048},"|\n",[804,2749,2750],{"class":806,"line":872},[804,2751,2752],{"class":835},"          100 * (1 - node_filesystem_avail_bytes{fstype!~\"tmpfs|overlay|squashfs|devtmpfs|nsfs|tracefs|cgroup2.*|autofs|proc|sysfs|bpf|ramfs\"}\n",[804,2754,2755],{"class":806,"line":880},[804,2756,2757],{"class":835},"                     / node_filesystem_size_bytes{fstype!~\"tmpfs|overlay|squashfs|devtmpfs|nsfs|tracefs|cgroup2.*|autofs|proc|sysfs|bpf|ramfs\"}) > 90\n",[804,2759,2760,2762,2764],{"class":806,"line":889},[804,2761,2352],{"class":810},[804,2763,832],{"class":814},[804,2765,2766],{"class":835},"5m\n",[804,2768,2769,2771],{"class":806,"line":897},[804,2770,1670],{"class":810},[804,2772,815],{"class":814},[804,2774,2775,2777,2779],{"class":806,"line":905},[804,2776,2368],{"class":810},[804,2778,832],{"class":814},[804,2780,2373],{"class":835},[804,2782,2783,2785],{"class":806,"line":913},[804,2784,2378],{"class":810},[804,2786,815],{"class":814},[804,2788,2789,2791,2793],{"class":806,"line":921},[804,2790,2385],{"class":810},[804,2792,832],{"class":814},[804,2794,2795],{"class":835},"\"📦 磁盘使用率过高 ({{ $labels.instance }} {{ $labels.mountpoint }})\"\n",[804,2797,2798,2800,2802,2805,2808,2811,2813],{"class":806,"line":929},[804,2799,2395],{"class":810},[804,2801,832],{"class":814},[804,2803,2804],{"class":835},"\"磁盘使用率 > 90% 持续 5 分钟；当前值={{ $value | printf ",[804,2806,2807],{"class":1833},"\\\"",[804,2809,2810],{"class":835},"%.1f",[804,2812,2807],{"class":1833},[804,2814,2815],{"class":835}," }}%\"\n",[804,2817,2818],{"class":806,"line":937},[804,2819,989],{"emptyLinePlaceholder":988},[804,2821,2822,2824,2826,2828],{"class":806,"line":945},[804,2823,883],{"class":814},[804,2825,2332],{"class":810},[804,2827,832],{"class":814},[804,2829,2738],{"class":835},[804,2831,2832,2834,2836],{"class":806,"line":953},[804,2833,2342],{"class":810},[804,2835,832],{"class":814},[804,2837,2747],{"class":2048},[804,2839,2840],{"class":806,"line":961},[804,2841,2752],{"class":835},[804,2843,2844],{"class":806,"line":969},[804,2845,2846],{"class":835},"                     / node_filesystem_size_bytes{fstype!~\"tmpfs|overlay|squashfs|devtmpfs|nsfs|tracefs|cgroup2.*|autofs|proc|sysfs|bpf|ramfs\"}) > 80\n",[804,2848,2849,2851,2853],{"class":806,"line":977},[804,2850,2352],{"class":810},[804,2852,832],{"class":814},[804,2854,2855],{"class":835},"10m\n",[804,2857,2858,2860],{"class":806,"line":985},[804,2859,1670],{"class":810},[804,2861,815],{"class":814},[804,2863,2864,2866,2868],{"class":806,"line":992},[804,2865,2368],{"class":810},[804,2867,832],{"class":814},[804,2869,2476],{"class":835},[804,2871,2872,2874],{"class":806,"line":1000},[804,2873,2378],{"class":810},[804,2875,815],{"class":814},[804,2877,2878,2880,2882],{"class":806,"line":1010},[804,2879,2385],{"class":810},[804,2881,832],{"class":814},[804,2883,2884],{"class":835},"\"📦 磁盘使用率偏高 ({{ $labels.instance }} {{ $labels.mountpoint }})\"\n",[804,2886,2887,2889,2891,2894,2896,2898,2900],{"class":806,"line":1019},[804,2888,2395],{"class":810},[804,2890,832],{"class":814},[804,2892,2893],{"class":835},"\"磁盘使用率 > 80% 持续 10 分钟；当前值={{ $value | printf ",[804,2895,2807],{"class":1833},[804,2897,2810],{"class":835},[804,2899,2807],{"class":1833},[804,2901,2815],{"class":835},[804,2903,2904],{"class":806,"line":1028},[804,2905,989],{"emptyLinePlaceholder":988},[804,2907,2908],{"class":806,"line":1037},[804,2909,2910],{"class":1159},"      # 2) inode 使用率过高（防止“有空间但没 inode”）\n",[804,2912,2913,2915,2917,2919],{"class":806,"line":1044},[804,2914,883],{"class":814},[804,2916,2332],{"class":810},[804,2918,832],{"class":814},[804,2920,2921],{"class":835},"InodeUsageHigh\n",[804,2923,2924,2926,2928],{"class":806,"line":1052},[804,2925,2342],{"class":810},[804,2927,832],{"class":814},[804,2929,2747],{"class":2048},[804,2931,2932],{"class":806,"line":1059},[804,2933,2934],{"class":835},"          100 * (1 - node_filesystem_files_free{fstype!~\"tmpfs|overlay|squashfs|devtmpfs|nsfs|tracefs|cgroup2.*|autofs|proc|sysfs|bpf|ramfs\"}\n",[804,2936,2937],{"class":806,"line":1067},[804,2938,2939],{"class":835},"                     / node_filesystem_files{fstype!~\"tmpfs|overlay|squashfs|devtmpfs|nsfs|tracefs|cgroup2.*|autofs|proc|sysfs|bpf|ramfs\"}) > 80\n",[804,2941,2942,2944,2946],{"class":806,"line":1074},[804,2943,2352],{"class":810},[804,2945,832],{"class":814},[804,2947,2855],{"class":835},[804,2949,2950,2952],{"class":806,"line":1082},[804,2951,1670],{"class":810},[804,2953,815],{"class":814},[804,2955,2956,2958,2960],{"class":806,"line":1090},[804,2957,2368],{"class":810},[804,2959,832],{"class":814},[804,2961,2476],{"class":835},[804,2963,2964,2966],{"class":806,"line":1095},[804,2965,2378],{"class":810},[804,2967,815],{"class":814},[804,2969,2970,2972,2974],{"class":806,"line":1103},[804,2971,2385],{"class":810},[804,2973,832],{"class":814},[804,2975,2976],{"class":835},"\"📁 inode 使用率偏高 ({{ $labels.instance }} {{ $labels.mountpoint }})\"\n",[804,2978,2979,2981,2983,2986,2988,2990,2992],{"class":806,"line":1113},[804,2980,2395],{"class":810},[804,2982,832],{"class":814},[804,2984,2985],{"class":835},"\"inode 使用率 > 80% 持续 10 分钟；当前值={{ $value | printf ",[804,2987,2807],{"class":1833},[804,2989,2810],{"class":835},[804,2991,2807],{"class":1833},[804,2993,2815],{"class":835},[686,2995,2997],{"id":2996},"alertmanager-通知配置","Alertmanager 通知配置",[794,2999,3002],{"className":796,"code":3000,"filename":3001,"language":799,"meta":779,"style":779},"global:\n  resolve_timeout: 5m\n\n  # 邮件全局配置\n  smtp_smarthost: 'smtp.gmail.com:587'\n  smtp_from: 'alert@example.com'\n  smtp_auth_username: 'alert@example.com'\n  smtp_auth_password: 'your_password_here'\n\nroute:\n  # 根路由定义\n  receiver: 'telegram'                 # 👈 默认分发到 all 这个 receiver\n  group_by: ['alertname']         # 按告警名分组\n  group_wait: 10s\n  group_interval: 10s\n  repeat_interval: 1h\n\n  # 这里可以做条件分发（示例）\n  # routes:\n  #   - match:\n  #       severity: critical\n  #     receiver: 'telegram'\n  #   - match:\n  #       severity: warning\n  #     receiver: 'email'\n\nreceivers:\n  # 🔔 同时发送邮件 + Telegram 的复合接收器\n  - name: 'all'\n    email_configs:\n      - to: 'admin@example.com'\n        send_resolved: true\n    telegram_configs:\n      - bot_token: '123456789:ABCDEF_xxxxx'\n        chat_id: -1001234567890\n        parse_mode: 'HTML'\n        send_resolved: true\n        message: |-\n          🚨 \u003Cb>{{ .Status | toUpper }}\u003C/b> - {{ .CommonLabels.alertname }}\n          主机: {{ .CommonLabels.instance }}\n          严重性: {{ .CommonLabels.severity }}\n          详情: {{ .CommonAnnotations.summary }}\n          描述: {{ .CommonAnnotations.description }}\n          \u003Ci>触发时间: {{ .StartsAt }}\u003C/i>\n\n  # 你也可以定义单独渠道备用\n  - name: 'email'\n    email_configs:\n      - to: 'ops@example.com'\n        send_resolved: true\n\n  - name: 'telegram'\n    telegram_configs:\n      - bot_token: '123456789:ABCDEF_xxxxx'\n        chat_id: -1001234567890\n        parse_mode: 'Markdown'\n        send_resolved: true\n        message: |-\n          🚨 *{{ .Status | toUpper }}* - {{ .CommonLabels.alertname }}\n\n          主机: {{ .CommonLabels.instance }}\n          严重性: {{ .CommonLabels.severity }}\n          详情: {{ .CommonAnnotations.summary }}\n          描述: {{ .CommonAnnotations.description }}\n\n          触发时间: {{ .StartsAt }}\n","/root/monitoring/alertmanager/alertmanager.yml",[801,3003,3004,3010,3019,3023,3028,3038,3048,3057,3067,3071,3077,3082,3094,3110,3119,3128,3138,3142,3147,3152,3157,3162,3167,3171,3176,3181,3185,3191,3196,3207,3214,3226,3236,3243,3255,3265,3275,3283,3293,3298,3303,3308,3313,3318,3323,3327,3332,3343,3349,3360,3368,3372,3383,3389,3399,3407,3416,3424,3432,3437,3441,3445,3449,3453,3457,3461],{"__ignoreMap":779},[804,3005,3006,3008],{"class":806,"line":807},[804,3007,1493],{"class":810},[804,3009,815],{"class":814},[804,3011,3012,3015,3017],{"class":806,"line":818},[804,3013,3014],{"class":810},"  resolve_timeout",[804,3016,832],{"class":814},[804,3018,2766],{"class":835},[804,3020,3021],{"class":806,"line":826},[804,3022,989],{"emptyLinePlaceholder":988},[804,3024,3025],{"class":806,"line":839},[804,3026,3027],{"class":1159},"  # 邮件全局配置\n",[804,3029,3030,3033,3035],{"class":806,"line":850},[804,3031,3032],{"class":810},"  smtp_smarthost",[804,3034,832],{"class":814},[804,3036,3037],{"class":835},"'smtp.gmail.com:587'\n",[804,3039,3040,3043,3045],{"class":806,"line":861},[804,3041,3042],{"class":810},"  smtp_from",[804,3044,832],{"class":814},[804,3046,3047],{"class":835},"'alert@example.com'\n",[804,3049,3050,3053,3055],{"class":806,"line":872},[804,3051,3052],{"class":810},"  smtp_auth_username",[804,3054,832],{"class":814},[804,3056,3047],{"class":835},[804,3058,3059,3062,3064],{"class":806,"line":880},[804,3060,3061],{"class":810},"  smtp_auth_password",[804,3063,832],{"class":814},[804,3065,3066],{"class":835},"'your_password_here'\n",[804,3068,3069],{"class":806,"line":889},[804,3070,989],{"emptyLinePlaceholder":988},[804,3072,3073,3075],{"class":806,"line":897},[804,3074,1707],{"class":810},[804,3076,815],{"class":814},[804,3078,3079],{"class":806,"line":905},[804,3080,3081],{"class":1159},"  # 根路由定义\n",[804,3083,3084,3086,3088,3091],{"class":806,"line":913},[804,3085,1714],{"class":810},[804,3087,832],{"class":814},[804,3089,3090],{"class":835},"'telegram'",[804,3092,3093],{"class":1159},"                 # 👈 默认分发到 all 这个 receiver\n",[804,3095,3096,3099,3101,3104,3107],{"class":806,"line":921},[804,3097,3098],{"class":810},"  group_by",[804,3100,1563],{"class":814},[804,3102,3103],{"class":835},"'alertname'",[804,3105,3106],{"class":814},"]         ",[804,3108,3109],{"class":1159},"# 按告警名分组\n",[804,3111,3112,3115,3117],{"class":806,"line":929},[804,3113,3114],{"class":810},"  group_wait",[804,3116,832],{"class":814},[804,3118,1524],{"class":835},[804,3120,3121,3124,3126],{"class":806,"line":937},[804,3122,3123],{"class":810},"  group_interval",[804,3125,832],{"class":814},[804,3127,1524],{"class":835},[804,3129,3130,3133,3135],{"class":806,"line":945},[804,3131,3132],{"class":810},"  repeat_interval",[804,3134,832],{"class":814},[804,3136,3137],{"class":835},"1h\n",[804,3139,3140],{"class":806,"line":953},[804,3141,989],{"emptyLinePlaceholder":988},[804,3143,3144],{"class":806,"line":961},[804,3145,3146],{"class":1159},"  # 这里可以做条件分发（示例）\n",[804,3148,3149],{"class":806,"line":969},[804,3150,3151],{"class":1159},"  # routes:\n",[804,3153,3154],{"class":806,"line":977},[804,3155,3156],{"class":1159},"  #   - match:\n",[804,3158,3159],{"class":806,"line":985},[804,3160,3161],{"class":1159},"  #       severity: critical\n",[804,3163,3164],{"class":806,"line":992},[804,3165,3166],{"class":1159},"  #     receiver: 'telegram'\n",[804,3168,3169],{"class":806,"line":1000},[804,3170,3156],{"class":1159},[804,3172,3173],{"class":806,"line":1010},[804,3174,3175],{"class":1159},"  #       severity: warning\n",[804,3177,3178],{"class":806,"line":1019},[804,3179,3180],{"class":1159},"  #     receiver: 'email'\n",[804,3182,3183],{"class":806,"line":1028},[804,3184,989],{"emptyLinePlaceholder":988},[804,3186,3187,3189],{"class":806,"line":1037},[804,3188,1728],{"class":810},[804,3190,815],{"class":814},[804,3192,3193],{"class":806,"line":1044},[804,3194,3195],{"class":1159},"  # 🔔 同时发送邮件 + Telegram 的复合接收器\n",[804,3197,3198,3200,3202,3204],{"class":806,"line":1052},[804,3199,1585],{"class":814},[804,3201,1737],{"class":810},[804,3203,832],{"class":814},[804,3205,3206],{"class":835},"'all'\n",[804,3208,3209,3212],{"class":806,"line":1059},[804,3210,3211],{"class":810},"    email_configs",[804,3213,815],{"class":814},[804,3215,3216,3218,3221,3223],{"class":806,"line":1067},[804,3217,883],{"class":814},[804,3219,3220],{"class":810},"to",[804,3222,832],{"class":814},[804,3224,3225],{"class":835},"'admin@example.com'\n",[804,3227,3228,3231,3233],{"class":806,"line":1074},[804,3229,3230],{"class":810},"        send_resolved",[804,3232,832],{"class":814},[804,3234,3235],{"class":1837},"true\n",[804,3237,3238,3241],{"class":806,"line":1082},[804,3239,3240],{"class":810},"    telegram_configs",[804,3242,815],{"class":814},[804,3244,3245,3247,3250,3252],{"class":806,"line":1090},[804,3246,883],{"class":814},[804,3248,3249],{"class":810},"bot_token",[804,3251,832],{"class":814},[804,3253,3254],{"class":835},"'123456789:ABCDEF_xxxxx'\n",[804,3256,3257,3260,3262],{"class":806,"line":1095},[804,3258,3259],{"class":810},"        chat_id",[804,3261,832],{"class":814},[804,3263,3264],{"class":1837},"-1001234567890\n",[804,3266,3267,3270,3272],{"class":806,"line":1103},[804,3268,3269],{"class":810},"        parse_mode",[804,3271,832],{"class":814},[804,3273,3274],{"class":835},"'HTML'\n",[804,3276,3277,3279,3281],{"class":806,"line":1113},[804,3278,3230],{"class":810},[804,3280,832],{"class":814},[804,3282,3235],{"class":1837},[804,3284,3285,3288,3290],{"class":806,"line":1123},[804,3286,3287],{"class":810},"        message",[804,3289,832],{"class":814},[804,3291,3292],{"class":2048},"|-\n",[804,3294,3295],{"class":806,"line":1132},[804,3296,3297],{"class":835},"          🚨 \u003Cb>{{ .Status | toUpper }}\u003C/b> - {{ .CommonLabels.alertname }}\n",[804,3299,3300],{"class":806,"line":1141},[804,3301,3302],{"class":835},"          主机: {{ .CommonLabels.instance }}\n",[804,3304,3305],{"class":806,"line":1148},[804,3306,3307],{"class":835},"          严重性: {{ .CommonLabels.severity }}\n",[804,3309,3310],{"class":806,"line":1156},[804,3311,3312],{"class":835},"          详情: {{ .CommonAnnotations.summary }}\n",[804,3314,3315],{"class":806,"line":1163},[804,3316,3317],{"class":835},"          描述: {{ .CommonAnnotations.description }}\n",[804,3319,3320],{"class":806,"line":1174},[804,3321,3322],{"class":835},"          \u003Ci>触发时间: {{ .StartsAt }}\u003C/i>\n",[804,3324,3325],{"class":806,"line":1181},[804,3326,989],{"emptyLinePlaceholder":988},[804,3328,3329],{"class":806,"line":1189},[804,3330,3331],{"class":1159},"  # 你也可以定义单独渠道备用\n",[804,3333,3334,3336,3338,3340],{"class":806,"line":1197},[804,3335,1585],{"class":814},[804,3337,1737],{"class":810},[804,3339,832],{"class":814},[804,3341,3342],{"class":835},"'email'\n",[804,3344,3345,3347],{"class":806,"line":1205},[804,3346,3211],{"class":810},[804,3348,815],{"class":814},[804,3350,3351,3353,3355,3357],{"class":806,"line":1212},[804,3352,883],{"class":814},[804,3354,3220],{"class":810},[804,3356,832],{"class":814},[804,3358,3359],{"class":835},"'ops@example.com'\n",[804,3361,3362,3364,3366],{"class":806,"line":1220},[804,3363,3230],{"class":810},[804,3365,832],{"class":814},[804,3367,3235],{"class":1837},[804,3369,3370],{"class":806,"line":1228},[804,3371,989],{"emptyLinePlaceholder":988},[804,3373,3374,3376,3378,3380],{"class":806,"line":1236},[804,3375,1585],{"class":814},[804,3377,1737],{"class":810},[804,3379,832],{"class":814},[804,3381,3382],{"class":835},"'telegram'\n",[804,3384,3385,3387],{"class":806,"line":1244},[804,3386,3240],{"class":810},[804,3388,815],{"class":814},[804,3390,3391,3393,3395,3397],{"class":806,"line":1249},[804,3392,883],{"class":814},[804,3394,3249],{"class":810},[804,3396,832],{"class":814},[804,3398,3254],{"class":835},[804,3400,3401,3403,3405],{"class":806,"line":1257},[804,3402,3259],{"class":810},[804,3404,832],{"class":814},[804,3406,3264],{"class":1837},[804,3408,3409,3411,3413],{"class":806,"line":1267},[804,3410,3269],{"class":810},[804,3412,832],{"class":814},[804,3414,3415],{"class":835},"'Markdown'\n",[804,3417,3418,3420,3422],{"class":806,"line":1276},[804,3419,3230],{"class":810},[804,3421,832],{"class":814},[804,3423,3235],{"class":1837},[804,3425,3426,3428,3430],{"class":806,"line":1285},[804,3427,3287],{"class":810},[804,3429,832],{"class":814},[804,3431,3292],{"class":2048},[804,3433,3434],{"class":806,"line":1294},[804,3435,3436],{"class":835},"          🚨 *{{ .Status | toUpper }}* - {{ .CommonLabels.alertname }}\n",[804,3438,3439],{"class":806,"line":1301},[804,3440,989],{"emptyLinePlaceholder":988},[804,3442,3443],{"class":806,"line":1309},[804,3444,3302],{"class":835},[804,3446,3447],{"class":806,"line":1316},[804,3448,3307],{"class":835},[804,3450,3451],{"class":806,"line":1324},[804,3452,3312],{"class":835},[804,3454,3455],{"class":806,"line":1331},[804,3456,3317],{"class":835},[804,3458,3459],{"class":806,"line":1339},[804,3460,989],{"emptyLinePlaceholder":988},[804,3462,3463],{"class":806,"line":1344},[804,3464,3465],{"class":835},"          触发时间: {{ .StartsAt }}\n",[686,3467,3468],{"id":3468},"测试验证",[785,3470,3471,3474,3493,3496],{"level":787},[661,3472,3473],{},"重新加载 Prometheus",[794,3475,3477],{"className":1785,"code":3476,"filename":1787,"language":1788,"meta":779,"style":779},"curl -X POST http://localhost:9090/-/reload\n",[801,3478,3479],{"__ignoreMap":779},[804,3480,3481,3484,3487,3490],{"class":806,"line":807},[804,3482,3483],{"class":1930},"curl",[804,3485,3486],{"class":1837}," -X",[804,3488,3489],{"class":835}," POST",[804,3491,3492],{"class":835}," http://localhost:9090/-/reload\n",[661,3494,3495],{},"测试 Alertmanager 发送警告",[794,3497,3499],{"className":1785,"code":3498,"filename":1787,"language":1788,"meta":779,"style":779},"# 发送\ncurl -X POST http://localhost:9093/api/v2/alerts \\\n  -H 'Content-Type: application/json' \\\n  -d '[\n    {\n      \"labels\": {\n        \"alertname\": \"ManualTest\",\n        \"severity\": \"warning\",\n        \"instance\": \"test-node\"\n      },\n      \"annotations\": {\n        \"summary\": \"Manual test from curl\",\n        \"description\": \"Verifying email + Telegram routes.\"\n      },\n      \"startsAt\": \"'$(date -Is)'\",\n      \"endsAt\":   \"'$(date -Is -d \"+10 minutes\")'\"\n    }\n  ]'\n  \n  \n# 恢复\ncurl -X POST http://localhost:9093/api/v2/alerts \\\n  -H 'Content-Type: application/json' \\\n  -d '[\n    {\n      \"labels\": { \"alertname\": \"ManualTest\", \"severity\": \"warning\", \"instance\": \"test-node\" },\n      \"startsAt\": \"'$(date -Is -d \"-2 minutes\")'\",\n      \"endsAt\":   \"'$(date -Is -d \"-1 minutes\")'\"\n    }\n  ]'\n",[801,3500,3501,3506,3520,3530,3538,3543,3548,3553,3558,3563,3568,3573,3578,3583,3587,3607,3629,3634,3639,3644,3648,3653,3665,3673,3679,3683,3688,3707,3726,3730],{"__ignoreMap":779},[804,3502,3503],{"class":806,"line":807},[804,3504,3505],{"class":1159},"# 发送\n",[804,3507,3508,3510,3512,3514,3517],{"class":806,"line":818},[804,3509,3483],{"class":1930},[804,3511,3486],{"class":1837},[804,3513,3489],{"class":835},[804,3515,3516],{"class":835}," http://localhost:9093/api/v2/alerts",[804,3518,3519],{"class":1833}," \\\n",[804,3521,3522,3525,3528],{"class":806,"line":826},[804,3523,3524],{"class":1837},"  -H",[804,3526,3527],{"class":835}," 'Content-Type: application/json'",[804,3529,3519],{"class":1833},[804,3531,3532,3535],{"class":806,"line":839},[804,3533,3534],{"class":1837},"  -d",[804,3536,3537],{"class":835}," '[\n",[804,3539,3540],{"class":806,"line":850},[804,3541,3542],{"class":835},"    {\n",[804,3544,3545],{"class":806,"line":861},[804,3546,3547],{"class":835},"      \"labels\": {\n",[804,3549,3550],{"class":806,"line":872},[804,3551,3552],{"class":835},"        \"alertname\": \"ManualTest\",\n",[804,3554,3555],{"class":806,"line":880},[804,3556,3557],{"class":835},"        \"severity\": \"warning\",\n",[804,3559,3560],{"class":806,"line":889},[804,3561,3562],{"class":835},"        \"instance\": \"test-node\"\n",[804,3564,3565],{"class":806,"line":897},[804,3566,3567],{"class":835},"      },\n",[804,3569,3570],{"class":806,"line":905},[804,3571,3572],{"class":835},"      \"annotations\": {\n",[804,3574,3575],{"class":806,"line":913},[804,3576,3577],{"class":835},"        \"summary\": \"Manual test from curl\",\n",[804,3579,3580],{"class":806,"line":921},[804,3581,3582],{"class":835},"        \"description\": \"Verifying email + Telegram routes.\"\n",[804,3584,3585],{"class":806,"line":929},[804,3586,3567],{"class":835},[804,3588,3589,3592,3595,3598,3601,3604],{"class":806,"line":937},[804,3590,3591],{"class":835},"      \"startsAt\": \"'",[804,3593,3594],{"class":814},"$(",[804,3596,3597],{"class":1930},"date",[804,3599,3600],{"class":1837}," -Is",[804,3602,3603],{"class":814},")",[804,3605,3606],{"class":835},"'\",\n",[804,3608,3609,3612,3614,3616,3618,3621,3624,3626],{"class":806,"line":945},[804,3610,3611],{"class":835},"      \"endsAt\":   \"'",[804,3613,3594],{"class":814},[804,3615,3597],{"class":1930},[804,3617,3600],{"class":1837},[804,3619,3620],{"class":1837}," -d",[804,3622,3623],{"class":835}," \"+10 minutes\"",[804,3625,3603],{"class":814},[804,3627,3628],{"class":835},"'\"\n",[804,3630,3631],{"class":806,"line":953},[804,3632,3633],{"class":835},"    }\n",[804,3635,3636],{"class":806,"line":961},[804,3637,3638],{"class":835},"  ]'\n",[804,3640,3641],{"class":806,"line":969},[804,3642,3643],{"class":814},"  \n",[804,3645,3646],{"class":806,"line":977},[804,3647,3643],{"class":814},[804,3649,3650],{"class":806,"line":985},[804,3651,3652],{"class":1159},"# 恢复\n",[804,3654,3655,3657,3659,3661,3663],{"class":806,"line":992},[804,3656,3483],{"class":1930},[804,3658,3486],{"class":1837},[804,3660,3489],{"class":835},[804,3662,3516],{"class":835},[804,3664,3519],{"class":1833},[804,3666,3667,3669,3671],{"class":806,"line":1000},[804,3668,3524],{"class":1837},[804,3670,3527],{"class":835},[804,3672,3519],{"class":1833},[804,3674,3675,3677],{"class":806,"line":1010},[804,3676,3534],{"class":1837},[804,3678,3537],{"class":835},[804,3680,3681],{"class":806,"line":1019},[804,3682,3542],{"class":835},[804,3684,3685],{"class":806,"line":1028},[804,3686,3687],{"class":835},"      \"labels\": { \"alertname\": \"ManualTest\", \"severity\": \"warning\", \"instance\": \"test-node\" },\n",[804,3689,3690,3692,3694,3696,3698,3700,3703,3705],{"class":806,"line":1037},[804,3691,3591],{"class":835},[804,3693,3594],{"class":814},[804,3695,3597],{"class":1930},[804,3697,3600],{"class":1837},[804,3699,3620],{"class":1837},[804,3701,3702],{"class":835}," \"-2 minutes\"",[804,3704,3603],{"class":814},[804,3706,3606],{"class":835},[804,3708,3709,3711,3713,3715,3717,3719,3722,3724],{"class":806,"line":1044},[804,3710,3611],{"class":835},[804,3712,3594],{"class":814},[804,3714,3597],{"class":1930},[804,3716,3600],{"class":1837},[804,3718,3620],{"class":1837},[804,3720,3721],{"class":835}," \"-1 minutes\"",[804,3723,3603],{"class":814},[804,3725,3628],{"class":835},[804,3727,3728],{"class":806,"line":1052},[804,3729,3633],{"class":835},[804,3731,3732],{"class":806,"line":1059},[804,3733,3638],{"class":835},[656,3735,3737],{"id":3736},"nezha-server-monitoring","📘 哪吒监控 V1",[3739,3740,3741],"blockquote",{},[661,3742,3743],{},"开源、轻量、易用的服务器监控与运维工具。",[686,3745,3746],{"id":3746},"视频教程",[661,3748,3749],{},[664,3750,3751],{},"请务必结合视频教程食用，因为细节内容都在视频中讲解，本文主要供小伙伴们拷贝代码用途。",[661,3753,3754,3755,675,3759],{},"查看视频：",[668,3756,674],{"href":3757,"rel":3758,"target":673},"https://youtu.be/6flKmyMAhPM",[672],[668,3760,680],{"href":3761,"rel":3762,"target":673},"https://www.bilibili.com/video/BV1SLiyYMEyP/",[672],[682,3764],{"url":3765},"https://www.youtube.com/embed/6flKmyMAhPM",[661,3767,3768,3769,675,3773,675,3777],{},"旧版视频：",[668,3770,674],{"href":3771,"rel":3772,"target":673},"https://youtu.be/FI_AgvyhN-8",[672],[668,3774,680],{"href":3775,"rel":3776,"target":673},"https://www.bilibili.com/video/BV1CC411h7YY/",[672],[668,3778,3781],{"href":3779,"rel":3780,"target":673},"https://bigdata.icu/tools/soft/nezha.html",[672],"文档",[682,3783],{"url":3784},"https://www.youtube.com/embed/FI_AgvyhN-8",[686,3786,3787],{"id":3787},"哪吒面板",[789,3789,3790],{"id":3790},"docker-compose配置文件",[794,3792,3795],{"className":796,"code":3793,"filename":3794,"language":799,"meta":779,"style":779},"services:\n  dashboard:\n    image: ghcr.io/nezhahq/nezha\n    container_name: nezha-dashboard\n    restart: always\n    volumes:\n      - ./data:/dashboard/data\n    ports:\n      - 8008:8008\n","yml",[801,3796,3797,3803,3810,3819,3828,3836,3842,3849,3855],{"__ignoreMap":779},[804,3798,3799,3801],{"class":806,"line":807},[804,3800,811],{"class":810},[804,3802,815],{"class":814},[804,3804,3805,3808],{"class":806,"line":818},[804,3806,3807],{"class":810},"  dashboard",[804,3809,815],{"class":814},[804,3811,3812,3814,3816],{"class":806,"line":826},[804,3813,829],{"class":810},[804,3815,832],{"class":814},[804,3817,3818],{"class":835},"ghcr.io/nezhahq/nezha\n",[804,3820,3821,3823,3825],{"class":806,"line":839},[804,3822,842],{"class":810},[804,3824,832],{"class":814},[804,3826,3827],{"class":835},"nezha-dashboard\n",[804,3829,3830,3832,3834],{"class":806,"line":850},[804,3831,853],{"class":810},[804,3833,832],{"class":814},[804,3835,869],{"class":835},[804,3837,3838,3840],{"class":806,"line":861},[804,3839,932],{"class":810},[804,3841,815],{"class":814},[804,3843,3844,3846],{"class":806,"line":872},[804,3845,883],{"class":814},[804,3847,3848],{"class":835},"./data:/dashboard/data\n",[804,3850,3851,3853],{"class":806,"line":880},[804,3852,875],{"class":810},[804,3854,815],{"class":814},[804,3856,3857,3859],{"class":806,"line":889},[804,3858,883],{"class":814},[804,3860,3861],{"class":835},"8008:8008\n",[789,3863,3864],{"id":3864},"面板配置文件",[794,3866,3868],{"className":796,"code":3867,"filename":3794,"language":799,"meta":779,"style":779},"debug: false\nrealipheader: \"\"\nlanguage: zh_CN\nsitename: DigVPS.COM\njwtsecretkey: 75VV5b9jtTGCktY8XuoK0BhCp2hMcMEVP9XXk3WVUf0PEpyYvFUWOxXGczyWVDCvwUVvzusZL54AvZfdkjmzU45f1lJ64zjr0uNasJ8KsCDlHkQN3ODRstVojGC1S4WRcQb2S3BZj5mZVVRjb0GZZdmFybpmx7DSZJUtGIftkRmGvEywDTepUXEpysMaAulVrdkI920Zt7YZhkAdsc3qMw1hpUD6r8q0ERWugdkf1BjTBHFtHTYPka7lri7HQcdRRIB11f5pmbejjBtVwfzV4lM8eTaz0j0SwKMC2le3SejoriHvcH3sbnhfuGJY9ZfmJKnhACBllxt9NuQjDFcstLztNi79aT5wDsrwHmFS8N7CriXwhyR0DdFRQiitX0tWp4X7SLhYyiLuqGgq4bmNlIkGIKdmcFupDT3YA8Pi0qgVnPTFA2nCRyYfCgCkzRb7M4Gym9EaaSrp5gHJGo5uyOh81iXNkJSlyXH1kwc7MAqrLD5gq3jpSF54jciNy0yGtQTNCh98Nz3qeWGw9bT0lOAcSEtnZlvKNc4fvaBFU3c9Js1V4B1pTGFjdZJvVRaEuD065kkORtxR6eaKmo5NBv5qNk32lsxcCaOiuYNMCHFtGbUWGmCKct3rtk6kzh0lGfImYlHzo2xu0IiytAs11FDzUE7fT1yugf3wcJ2GboDol8r12anMgleHZevFx8LI9O3Gf3UgkbIaqHVYc7njTl41r489wte7vuXur2A0dyv5MSR8PJ0TeLdWsSbLVHxfkZ0yYM5HAChnGInCkkgPE3DFfG6ukjQmpu3m3KGK0JMfHqbg1XjA7gVVCFcImZ1iJSbhK77N17fkN8HErNt5Dbqp4tJ74RWy3N1bcKDki3YODeU64fQudHqv4U7EDpy3IIEBChGLXcXEl7ZkJDE7CmY5cbfCCA7zALHdcGVcCU3sW0l1B4coYRqYJPPA1nnLzUdZUwsJoT3GpkfOMdx9tgQcMZVuVDdmqjtbBpkZ1GsqftKY6D3DqavEcj2vjEqN\nagentsecretkey: WYGjFRqQPhcBCfmfPoXMjXUNIanxceKw\nlistenport: 8008\nlistenhost: \"\"\ninstallhost: DigVPS.COM #客户端需要连接的服务器域名或者IP，请改为你自己的。\ntls: true\nlocation: Asia/Shanghai\nenableplainipinnotification: false\nenableipchangenotification: false\nipchangenotificationgroupid: 0\ncover: 1\nignoredipnotification: \"\"\nignoredipnotificationserverids: {}\navgpingcount: 2\ndnsservers: \"\"\ncustomcode: \"\"\ncustomcodedashboard: \"\"\n",[801,3869,3870,3880,3890,3900,3910,3920,3930,3940,3949,3962,3971,3981,3990,3999,4009,4019,4028,4036,4046,4055,4064],{"__ignoreMap":779},[804,3871,3872,3875,3877],{"class":806,"line":807},[804,3873,3874],{"class":810},"debug",[804,3876,832],{"class":814},[804,3878,3879],{"class":1837},"false\n",[804,3881,3882,3885,3887],{"class":806,"line":818},[804,3883,3884],{"class":810},"realipheader",[804,3886,832],{"class":814},[804,3888,3889],{"class":835},"\"\"\n",[804,3891,3892,3895,3897],{"class":806,"line":826},[804,3893,3894],{"class":810},"language",[804,3896,832],{"class":814},[804,3898,3899],{"class":835},"zh_CN\n",[804,3901,3902,3905,3907],{"class":806,"line":839},[804,3903,3904],{"class":810},"sitename",[804,3906,832],{"class":814},[804,3908,3909],{"class":835},"DigVPS.COM\n",[804,3911,3912,3915,3917],{"class":806,"line":850},[804,3913,3914],{"class":810},"jwtsecretkey",[804,3916,832],{"class":814},[804,3918,3919],{"class":835},"75VV5b9jtTGCktY8XuoK0BhCp2hMcMEVP9XXk3WVUf0PEpyYvFUWOxXGczyWVDCvwUVvzusZL54AvZfdkjmzU45f1lJ64zjr0uNasJ8KsCDlHkQN3ODRstVojGC1S4WRcQb2S3BZj5mZVVRjb0GZZdmFybpmx7DSZJUtGIftkRmGvEywDTepUXEpysMaAulVrdkI920Zt7YZhkAdsc3qMw1hpUD6r8q0ERWugdkf1BjTBHFtHTYPka7lri7HQcdRRIB11f5pmbejjBtVwfzV4lM8eTaz0j0SwKMC2le3SejoriHvcH3sbnhfuGJY9ZfmJKnhACBllxt9NuQjDFcstLztNi79aT5wDsrwHmFS8N7CriXwhyR0DdFRQiitX0tWp4X7SLhYyiLuqGgq4bmNlIkGIKdmcFupDT3YA8Pi0qgVnPTFA2nCRyYfCgCkzRb7M4Gym9EaaSrp5gHJGo5uyOh81iXNkJSlyXH1kwc7MAqrLD5gq3jpSF54jciNy0yGtQTNCh98Nz3qeWGw9bT0lOAcSEtnZlvKNc4fvaBFU3c9Js1V4B1pTGFjdZJvVRaEuD065kkORtxR6eaKmo5NBv5qNk32lsxcCaOiuYNMCHFtGbUWGmCKct3rtk6kzh0lGfImYlHzo2xu0IiytAs11FDzUE7fT1yugf3wcJ2GboDol8r12anMgleHZevFx8LI9O3Gf3UgkbIaqHVYc7njTl41r489wte7vuXur2A0dyv5MSR8PJ0TeLdWsSbLVHxfkZ0yYM5HAChnGInCkkgPE3DFfG6ukjQmpu3m3KGK0JMfHqbg1XjA7gVVCFcImZ1iJSbhK77N17fkN8HErNt5Dbqp4tJ74RWy3N1bcKDki3YODeU64fQudHqv4U7EDpy3IIEBChGLXcXEl7ZkJDE7CmY5cbfCCA7zALHdcGVcCU3sW0l1B4coYRqYJPPA1nnLzUdZUwsJoT3GpkfOMdx9tgQcMZVuVDdmqjtbBpkZ1GsqftKY6D3DqavEcj2vjEqN\n",[804,3921,3922,3925,3927],{"class":806,"line":861},[804,3923,3924],{"class":810},"agentsecretkey",[804,3926,832],{"class":814},[804,3928,3929],{"class":835},"WYGjFRqQPhcBCfmfPoXMjXUNIanxceKw\n",[804,3931,3932,3935,3937],{"class":806,"line":872},[804,3933,3934],{"class":810},"listenport",[804,3936,832],{"class":814},[804,3938,3939],{"class":1837},"8008\n",[804,3941,3942,3945,3947],{"class":806,"line":880},[804,3943,3944],{"class":810},"listenhost",[804,3946,832],{"class":814},[804,3948,3889],{"class":835},[804,3950,3951,3954,3956,3959],{"class":806,"line":889},[804,3952,3953],{"class":810},"installhost",[804,3955,832],{"class":814},[804,3957,3958],{"class":835},"DigVPS.COM",[804,3960,3961],{"class":1159}," #客户端需要连接的服务器域名或者IP，请改为你自己的。\n",[804,3963,3964,3967,3969],{"class":806,"line":897},[804,3965,3966],{"class":810},"tls",[804,3968,832],{"class":814},[804,3970,3235],{"class":1837},[804,3972,3973,3976,3978],{"class":806,"line":905},[804,3974,3975],{"class":810},"location",[804,3977,832],{"class":814},[804,3979,3980],{"class":835},"Asia/Shanghai\n",[804,3982,3983,3986,3988],{"class":806,"line":913},[804,3984,3985],{"class":810},"enableplainipinnotification",[804,3987,832],{"class":814},[804,3989,3879],{"class":1837},[804,3991,3992,3995,3997],{"class":806,"line":921},[804,3993,3994],{"class":810},"enableipchangenotification",[804,3996,832],{"class":814},[804,3998,3879],{"class":1837},[804,4000,4001,4004,4006],{"class":806,"line":929},[804,4002,4003],{"class":810},"ipchangenotificationgroupid",[804,4005,832],{"class":814},[804,4007,4008],{"class":1837},"0\n",[804,4010,4011,4014,4016],{"class":806,"line":937},[804,4012,4013],{"class":810},"cover",[804,4015,832],{"class":814},[804,4017,4018],{"class":1837},"1\n",[804,4020,4021,4024,4026],{"class":806,"line":945},[804,4022,4023],{"class":810},"ignoredipnotification",[804,4025,832],{"class":814},[804,4027,3889],{"class":835},[804,4029,4030,4033],{"class":806,"line":953},[804,4031,4032],{"class":810},"ignoredipnotificationserverids",[804,4034,4035],{"class":814},": {}\n",[804,4037,4038,4041,4043],{"class":806,"line":961},[804,4039,4040],{"class":810},"avgpingcount",[804,4042,832],{"class":814},[804,4044,4045],{"class":1837},"2\n",[804,4047,4048,4051,4053],{"class":806,"line":969},[804,4049,4050],{"class":810},"dnsservers",[804,4052,832],{"class":814},[804,4054,3889],{"class":835},[804,4056,4057,4060,4062],{"class":806,"line":977},[804,4058,4059],{"class":810},"customcode",[804,4061,832],{"class":814},[804,4063,3889],{"class":835},[804,4065,4066,4069,4071],{"class":806,"line":985},[804,4067,4068],{"class":810},"customcodedashboard",[804,4070,832],{"class":814},[804,4072,3889],{"class":835},[686,4074,4075],{"id":4075},"反代配置",[794,4077,4079],{"className":796,"code":4078,"language":799,"meta":779,"style":779},"underscores_in_headers on;\nignore_invalid_headers off;\n\nlocation /dashboard {\n    proxy_pass http://$server:$port;\n    proxy_set_header Host $http_host;\n    proxy_set_header      Upgrade $http_upgrade;\n}\n# websocket 相关\nlocation ~* ^/api/v1/ws/(server|terminal|file)(.*)$ {\n    proxy_set_header Host $host;\n    proxy_set_header nz-realip $remote_addr;\n    proxy_set_header Origin https://$host;\n    proxy_set_header Upgrade $http_upgrade;\n    proxy_set_header Connection \"upgrade\";\n    proxy_read_timeout 3600s;\n    proxy_send_timeout 3600s;\n    proxy_pass http://$server:$port;\n}\n# grpc 相关    \nlocation ^~ /proto.NezhaService/ {\n    grpc_set_header Host $host;\n    grpc_set_header nz-realip $remote_addr;\n    grpc_set_header client_secret $http_client_secret;\n    grpc_set_header client_uuid $http_client_uuid;\n    grpc_read_timeout 600s;\n    grpc_send_timeout 600s;\n    grpc_socket_keepalive on;\n    client_max_body_size 10m;\n    grpc_buffer_size 4m;\n    grpc_pass grpc://$server:$port;\n}\n",[801,4080,4081,4086,4091,4095,4100,4105,4110,4115,4119,4124,4129,4134,4139,4144,4149,4154,4159,4164,4168,4172,4177,4182,4187,4192,4197,4202,4207,4212,4217,4222,4227,4232],{"__ignoreMap":779},[804,4082,4083],{"class":806,"line":807},[804,4084,4085],{"class":835},"underscores_in_headers on;\n",[804,4087,4088],{"class":806,"line":818},[804,4089,4090],{"class":835},"ignore_invalid_headers off;\n",[804,4092,4093],{"class":806,"line":826},[804,4094,989],{"emptyLinePlaceholder":988},[804,4096,4097],{"class":806,"line":839},[804,4098,4099],{"class":835},"location /dashboard {\n",[804,4101,4102],{"class":806,"line":850},[804,4103,4104],{"class":835},"    proxy_pass http://$server:$port;\n",[804,4106,4107],{"class":806,"line":861},[804,4108,4109],{"class":835},"    proxy_set_header Host $http_host;\n",[804,4111,4112],{"class":806,"line":872},[804,4113,4114],{"class":835},"    proxy_set_header      Upgrade $http_upgrade;\n",[804,4116,4117],{"class":806,"line":880},[804,4118,1999],{"class":814},[804,4120,4121],{"class":806,"line":889},[804,4122,4123],{"class":1159},"# websocket 相关\n",[804,4125,4126],{"class":806,"line":897},[804,4127,4128],{"class":835},"location ~* ^/api/v1/ws/(server|terminal|file)(.*)$ {\n",[804,4130,4131],{"class":806,"line":905},[804,4132,4133],{"class":835},"    proxy_set_header Host $host;\n",[804,4135,4136],{"class":806,"line":913},[804,4137,4138],{"class":835},"    proxy_set_header nz-realip $remote_addr;\n",[804,4140,4141],{"class":806,"line":921},[804,4142,4143],{"class":835},"    proxy_set_header Origin https://$host;\n",[804,4145,4146],{"class":806,"line":929},[804,4147,4148],{"class":835},"    proxy_set_header Upgrade $http_upgrade;\n",[804,4150,4151],{"class":806,"line":937},[804,4152,4153],{"class":835},"    proxy_set_header Connection \"upgrade\";\n",[804,4155,4156],{"class":806,"line":945},[804,4157,4158],{"class":835},"    proxy_read_timeout 3600s;\n",[804,4160,4161],{"class":806,"line":953},[804,4162,4163],{"class":835},"    proxy_send_timeout 3600s;\n",[804,4165,4166],{"class":806,"line":961},[804,4167,4104],{"class":835},[804,4169,4170],{"class":806,"line":969},[804,4171,1999],{"class":814},[804,4173,4174],{"class":806,"line":977},[804,4175,4176],{"class":1159},"# grpc 相关    \n",[804,4178,4179],{"class":806,"line":985},[804,4180,4181],{"class":835},"location ^~ /proto.NezhaService/ {\n",[804,4183,4184],{"class":806,"line":992},[804,4185,4186],{"class":835},"    grpc_set_header Host $host;\n",[804,4188,4189],{"class":806,"line":1000},[804,4190,4191],{"class":835},"    grpc_set_header nz-realip $remote_addr;\n",[804,4193,4194],{"class":806,"line":1010},[804,4195,4196],{"class":835},"    grpc_set_header client_secret $http_client_secret;\n",[804,4198,4199],{"class":806,"line":1019},[804,4200,4201],{"class":835},"    grpc_set_header client_uuid $http_client_uuid;\n",[804,4203,4204],{"class":806,"line":1028},[804,4205,4206],{"class":835},"    grpc_read_timeout 600s;\n",[804,4208,4209],{"class":806,"line":1037},[804,4210,4211],{"class":835},"    grpc_send_timeout 600s;\n",[804,4213,4214],{"class":806,"line":1044},[804,4215,4216],{"class":835},"    grpc_socket_keepalive on;\n",[804,4218,4219],{"class":806,"line":1052},[804,4220,4221],{"class":835},"    client_max_body_size 10m;\n",[804,4223,4224],{"class":806,"line":1059},[804,4225,4226],{"class":835},"    grpc_buffer_size 4m;\n",[804,4228,4229],{"class":806,"line":1067},[804,4230,4231],{"class":835},"    grpc_pass grpc://$server:$port;\n",[804,4233,4234],{"class":806,"line":1074},[804,4235,1999],{"class":814},[656,4237,4239],{"id":4238},"nezha-v0","📘 哪吒监控 V0",[3739,4241,4242],{},[661,4243,3743],{},[686,4245,3746],{"id":4246},"视频教程-1",[661,4248,4249],{},[664,4250,3751],{},[661,4252,4253,675,4256],{},[668,4254,674],{"href":3771,"rel":4255,"target":673},[672],[668,4257,680],{"href":3775,"rel":4258,"target":673},[672],[682,4260],{"url":3784},[686,4262,4263],{"id":4263},"安装",[789,4265,4267],{"id":4266},"接入github作为后台管理员账号","接入GitHub作为后台管理员账号",[1761,4269,4270,4287,4325],{},[1764,4271,4272,4273,4278,4279,4282,4283,4286],{},"打开",[668,4274,4277],{"href":4275,"rel":4276},"https://github.com/settings/developers",[672],"Developer Settings","，依次选择",[801,4280,4281],{},"OAuth Apps"," - ",[801,4284,4285],{},"New OAuth App"," 新建授权应用。",[1764,4288,4289,4290],{},"填写应用信息\n",[1761,4291,4292,4300,4313],{},[1764,4293,4294,4297,4298],{},[801,4295,4296],{},"Application name"," - 随意填写",[701,4299],{},[1764,4301,4302,4305,4306,4310,4311],{},[801,4303,4304],{},"Homepage URL"," - 填写面板的访问域名，如：\"",[668,4307,4308],{"href":4308,"rel":4309},"https://bigdata.icu/",[672],"\"",[701,4312],{},[1764,4314,4315,4318,4319,4310,4323],{},[801,4316,4317],{},"Authorization callback URL ","- 填写回调地址，如：\"",[668,4320,4321],{"href":4321,"rel":4322},"https://bigdata.icu/oauth2/callback",[672],[701,4324],{},[1764,4326,4327,4330],{},[801,4328,4329],{},"Register application"," 注册应用",[789,4332,4333],{"id":4333},"运行面板安装脚本",[794,4335,4339],{"className":4336,"code":4337,"language":4338,"meta":779,"style":779},"language-Bash shiki shiki-themes one-light one-light one-dark-pro","# GitHub 源\ncurl -L https://raw.githubusercontent.com/naiba/nezha/master/script/install.sh  -o nezha.sh && chmod +x nezha.sh && sudo ./nezha.sh\n# Gitee 源\ncurl -L https://gitee.com/naibahq/nezha/raw/master/script/install.sh -o nezha.sh && chmod +x nezha.sh && sudo CN=true ./nezha.sh\n","Bash",[801,4340,4341,4346,4379,4384],{"__ignoreMap":779},[804,4342,4343],{"class":806,"line":807},[804,4344,4345],{"class":1159},"# GitHub 源\n",[804,4347,4348,4350,4353,4356,4359,4362,4365,4367,4369,4371,4373,4376],{"class":806,"line":818},[804,4349,3483],{"class":1930},[804,4351,4352],{"class":1837}," -L",[804,4354,4355],{"class":835}," https://raw.githubusercontent.com/naiba/nezha/master/script/install.sh",[804,4357,4358],{"class":1837},"  -o",[804,4360,4361],{"class":835}," nezha.sh",[804,4363,4364],{"class":814}," && ",[804,4366,2026],{"class":1930},[804,4368,2029],{"class":835},[804,4370,4361],{"class":835},[804,4372,4364],{"class":814},[804,4374,4375],{"class":1930},"sudo",[804,4377,4378],{"class":835}," ./nezha.sh\n",[804,4380,4381],{"class":806,"line":826},[804,4382,4383],{"class":1159},"# Gitee 源\n",[804,4385,4386,4388,4390,4393,4396,4398,4400,4402,4404,4406,4408,4410,4413,4416],{"class":806,"line":839},[804,4387,3483],{"class":1930},[804,4389,4352],{"class":1837},[804,4391,4392],{"class":835}," https://gitee.com/naibahq/nezha/raw/master/script/install.sh",[804,4394,4395],{"class":1837}," -o",[804,4397,4361],{"class":835},[804,4399,4364],{"class":814},[804,4401,2026],{"class":1930},[804,4403,2029],{"class":835},[804,4405,4361],{"class":835},[804,4407,4364],{"class":814},[804,4409,4375],{"class":1930},[804,4411,4412],{"class":835}," CN=",[804,4414,4415],{"class":1837},"true",[804,4417,4378],{"class":835},[661,4419,4420],{},"填写相关信息",[1761,4422,4423,4429,4438,4447,4458,4464,4470],{},[1764,4424,4425,4428],{},[801,4426,4427],{},"请输入 OAuth2 提供商(github/gitlab/jihulab/gitee，默认 github):"," - 直接回车，默认github",[1764,4430,4431,4434,4435],{},[801,4432,4433],{},"请输入 Oauth2 应用的 Client ID:"," - 输入刚才GitHub创建的授权应用的",[801,4436,4437],{},"Client ID",[1764,4439,4440,4443,4444],{},[801,4441,4442],{},"请输入 Oauth2 应用的 Client Secret:"," - 点击授权应用中的",[801,4445,4446],{},"Generate a new client secret",[1764,4448,4449,4452,4453],{},[801,4450,4451],{},"请输入 GitHub/Gitee 登录名作为管理员，多个以逗号隔开:"," - 填写你的用户名，不是你登陆的账号或者自定义的别名，比如我的项目地址是 ",[668,4454,4457],{"href":4455,"rel":4456},"https://github.com/bihell%EF%BC%8C%E5%90%8E%E9%9D%A2%E7%9A%84%60bihell%60%E5%B0%B1%E6%98%AF%E7%94%A8%E6%88%B7%E5%90%8D%E3%80%82",[672],"https://github.com/bihell，后面的`bihell`就是用户名。",[1764,4459,4460,4463],{},[801,4461,4462],{},"请输入站点标题:"," - 随意",[1764,4465,4466,4469],{},[801,4467,4468],{},"输入站点访问端口: (默认 8008)"," - 服务面板的访问端口",[1764,4471,4472,4475],{},[801,4473,4474],{},"请输入用于 Agent 接入的 RPC 端口: (默认 5555)"," - 客户端和服务面板的通讯端口",[686,4477,4479],{"id":4478},"docker-部署文件","Docker 部署文件",[661,4481,4482,4483,4488,4489,4492],{},"::: tip\n如果有自己的Docker服务器,不想使用官方的一键脚本。那么直接修改配置文件",[668,4484,4487],{"href":4485,"rel":4486},"https://github.com/bihell/nezha-docker/blob/main/data/config.yaml",[672],"/data/config.yaml","把",[801,4490,4491],{},"oauth2","该为自己的，然后部署即可。",[661,4494,4495,4496,4499,4500,4505],{},"如果你正在使用",[664,4497,4498],{},"TrueNAS","，或者对NAS感兴趣，那么可以参考我",[668,4501,4504],{"href":4502,"rel":4503},"https://www.bilibili.com/cheese/play/ep525309",[672],"《TrueNAS Scale终极教程》","来自定义APP安装哪吒监控。\n:::",[661,4507,4508,4509],{},"配置文件地址：",[668,4510,4511],{"href":4511,"rel":4512},"https://github.com/bihell/nezha-docker",[672],[686,4514,4075],{"id":4515},"反代配置-1",[794,4517,4522],{"className":4518,"code":4520,"language":4521},[4519],"language-text","#PROXY-START/\nlocation / {\n    proxy_pass http://192.168.50.116:8008;\n    proxy_set_header Host $http_host;\n    proxy_set_header      Upgrade $http_upgrade;\n}\nlocation ~ ^/(ws|terminal/.+)$  {\n    proxy_pass http://192.168.50.116:8008;\n    proxy_http_version 1.1;\n    proxy_set_header Upgrade $http_upgrade;\n    proxy_set_header Connection \"Upgrade\";\n    proxy_set_header Host $http_host;\n}\n#PROXY-END/\n","text",[801,4523,4520],{"__ignoreMap":779},[686,4525,4527],{"id":4526},"agent-设置","Agent 设置",[789,4529,4531],{"id":4530},"设定agent数据传输域名ip","设定Agent数据传输域名/IP",[661,4533,4534,4537,4538],{},[801,4535,4536],{},"Settings","->",[801,4539,4540],{},"Dashboard Server Domain/IP without CDN",[789,4542,4544],{"id":4543},"在-openwrt-中安装-agent","在 OpenWRT 中安装 Agent",[1761,4546,4547,4564],{},[1764,4548,4549,4550,4555,4556,4559,4560,4563],{},"下载",[668,4551,4554],{"href":4552,"rel":4553},"https://github.com/nezhahq/agent/releases",[672],"release","的二进制包，解压到 ",[801,4557,4558],{},"/opt",",运行 ",[801,4561,4562],{},"chmod +x /opt/nezha-agent"," 赋予执行权限",[1764,4565,4566,4567,4570],{},"创建 ",[801,4568,4569],{},"/etc/init.d/nezha-service","：",[794,4572,4576],{"className":4573,"code":4574,"language":4575,"meta":779,"style":779},"language-shell shiki shiki-themes one-light one-light one-dark-pro","#!/bin/sh /etc/rc.common\n\nSTART=99\nUSE_PROCD=1\n\nstart_service() {\n procd_open_instance\n procd_set_param command /opt/nezha-agent -s 面板通信地址:端口 -p 秘钥 -d\n procd_set_param respawn\n procd_close_instance\n}\n\nstop_service() {\n    killall nezha-agent\n}\n\nrestart() {\n stop\n sleep 2\n start\n}\n","shell",[801,4577,4578,4583,4587,4592,4597,4601,4606,4611,4616,4621,4626,4630,4634,4639,4644,4648,4652,4657,4662,4667,4672],{"__ignoreMap":779},[804,4579,4580],{"class":806,"line":807},[804,4581,4582],{},"#!/bin/sh /etc/rc.common\n",[804,4584,4585],{"class":806,"line":818},[804,4586,989],{"emptyLinePlaceholder":988},[804,4588,4589],{"class":806,"line":826},[804,4590,4591],{},"START=99\n",[804,4593,4594],{"class":806,"line":839},[804,4595,4596],{},"USE_PROCD=1\n",[804,4598,4599],{"class":806,"line":850},[804,4600,989],{"emptyLinePlaceholder":988},[804,4602,4603],{"class":806,"line":861},[804,4604,4605],{},"start_service() {\n",[804,4607,4608],{"class":806,"line":872},[804,4609,4610],{}," procd_open_instance\n",[804,4612,4613],{"class":806,"line":880},[804,4614,4615],{}," procd_set_param command /opt/nezha-agent -s 面板通信地址:端口 -p 秘钥 -d\n",[804,4617,4618],{"class":806,"line":889},[804,4619,4620],{}," procd_set_param respawn\n",[804,4622,4623],{"class":806,"line":897},[804,4624,4625],{}," procd_close_instance\n",[804,4627,4628],{"class":806,"line":905},[804,4629,1999],{},[804,4631,4632],{"class":806,"line":913},[804,4633,989],{"emptyLinePlaceholder":988},[804,4635,4636],{"class":806,"line":921},[804,4637,4638],{},"stop_service() {\n",[804,4640,4641],{"class":806,"line":929},[804,4642,4643],{},"    killall nezha-agent\n",[804,4645,4646],{"class":806,"line":937},[804,4647,1999],{},[804,4649,4650],{"class":806,"line":945},[804,4651,989],{"emptyLinePlaceholder":988},[804,4653,4654],{"class":806,"line":953},[804,4655,4656],{},"restart() {\n",[804,4658,4659],{"class":806,"line":961},[804,4660,4661],{}," stop\n",[804,4663,4664],{"class":806,"line":969},[804,4665,4666],{}," sleep 2\n",[804,4668,4669],{"class":806,"line":977},[804,4670,4671],{}," start\n",[804,4673,4674],{"class":806,"line":985},[804,4675,1999],{},[1761,4677,4678,4684],{},[1764,4679,4680,4681,4563],{},"运行 ",[801,4682,4683],{},"chmod +x /etc/init.d/nezha-service",[1764,4685,4686,4687],{},"启动服务： ",[801,4688,4689],{},"/etc/init.d/nezha-service enable && /etc/init.d/nezha-service start",[789,4691,4692],{"id":4692},"自定义的网卡和分区",[661,4694,4695,4696],{},"执行",[801,4697,4698],{},"/opt/nezha/agent/nezha-agent --edit-agent-config",[789,4700,4701],{"id":4701},"其他运行参数",[661,4703,4704,4705,4708,4709,4712],{},"编辑",[801,4706,4707],{},"/etc/systemd/system/nezha-agent.service","然后在 ",[801,4710,4711],{},"ExecStart="," 这一行的末尾加上参数",[661,4714,4715],{},"参数清单：",[1761,4717,4718,4724,4730,4736,4742,4748,4754],{},[1764,4719,4720,4723],{},[801,4721,4722],{},"--report-delay"," 控制系统信息上报的间隔，默认为 1 秒，可以设置为 3 来进一步降低 agent 端系统资源占用（配置区间 1-4）",[1764,4725,4726,4729],{},[801,4727,4728],{},"--skip-conn"," 不监控连接数，推荐 机场/连接密集型 服务器或CPU占用较高的服务器设置",[1764,4731,4732,4735],{},[801,4733,4734],{},"--skip-procs"," 不监控进程数，也可以降低 Agent 占用",[1764,4737,4738,4741],{},[801,4739,4740],{},"--disable-auto-update"," 禁止 自动更新 Agent（安全特性）",[1764,4743,4744,4747],{},[801,4745,4746],{},"--disable-force-update"," 禁止 强制更新 Agent（安全特性）",[1764,4749,4750,4753],{},[801,4751,4752],{},"--disable-command-execute"," 禁止在 Agent 上执行定时任务、打开在线终端（安全特性）",[1764,4755,4756,4759],{},[801,4757,4758],{},"--tls"," 启用 SSL/TLS 加密（使用 nginx 反向代理 Agent 的 grpc 连接，并且 nginx 开启 SSL/TLS 时，需要启用该项配置）",[661,4761,4762],{},"重启服务：",[794,4764,4766],{"className":1785,"code":4765,"language":1788,"meta":779,"style":779},"# 手动编辑\nsudo vim /etc/systemd/system/nezha-agent.service\nsudo systemctl daemon-reload\nsudo systemctl restart nezha-agent\nsudo systemctl status nezha-agent\n\n# 直接修改，禁用Agent自动更新命令\nsed -i '/^ExecStart=/ {/\"--disable-auto-update\"/! s/$/ \"--disable-auto-update\"/}' /etc/systemd/system/nezha-agent.service && systemctl daemon-reload\n",[801,4767,4768,4773,4783,4792,4804,4815,4819,4824],{"__ignoreMap":779},[804,4769,4770],{"class":806,"line":807},[804,4771,4772],{"class":1159},"# 手动编辑\n",[804,4774,4775,4777,4780],{"class":806,"line":818},[804,4776,4375],{"class":1930},[804,4778,4779],{"class":835}," vim",[804,4781,4782],{"class":835}," /etc/systemd/system/nezha-agent.service\n",[804,4784,4785,4787,4790],{"class":806,"line":826},[804,4786,4375],{"class":1930},[804,4788,4789],{"class":835}," systemctl",[804,4791,2215],{"class":835},[804,4793,4794,4796,4798,4801],{"class":806,"line":839},[804,4795,4375],{"class":1930},[804,4797,4789],{"class":835},[804,4799,4800],{"class":835}," restart",[804,4802,4803],{"class":835}," nezha-agent\n",[804,4805,4806,4808,4810,4813],{"class":806,"line":850},[804,4807,4375],{"class":1930},[804,4809,4789],{"class":835},[804,4811,4812],{"class":835}," status",[804,4814,4803],{"class":835},[804,4816,4817],{"class":806,"line":861},[804,4818,989],{"emptyLinePlaceholder":988},[804,4820,4821],{"class":806,"line":872},[804,4822,4823],{"class":1159},"# 直接修改，禁用Agent自动更新命令\n",[804,4825,4826,4829,4832,4835,4838,4840,4842],{"class":806,"line":880},[804,4827,4828],{"class":1930},"sed",[804,4830,4831],{"class":1837}," -i",[804,4833,4834],{"class":835}," '/^ExecStart=/ {/\"--disable-auto-update\"/! s/$/ \"--disable-auto-update\"/}'",[804,4836,4837],{"class":835}," /etc/systemd/system/nezha-agent.service",[804,4839,4364],{"class":814},[804,4841,2212],{"class":1930},[804,4843,2215],{"class":835},[686,4845,4846],{"id":4846},"延迟监控",[709,4848,4849,4868],{},[712,4850,4851],{},[715,4852,4853,4856,4859,4862,4865],{},[718,4854,4855],{},"地区",[718,4857,4858],{},"电信",[718,4860,4861],{},"移动",[718,4863,4864],{},"联通",[718,4866,4867],{},"教育",[725,4869,4870,4887,4904,4921,4937,4953,4969,4985,5001,5017,5033,5049,5065,5081,5097,5113,5129,5145,5161,5177,5193,5209,5225,5241,5257,5273,5289,5305,5321,5337,5353,5369,5385],{},[715,4871,4872,4875,4878,4881,4884],{},[730,4873,4874],{},"上海",[730,4876,4877],{},"202.96.209.133",[730,4879,4880],{},"221.183.90.237",[730,4882,4883],{},"210.22.97.1",[730,4885,4886],{},"202.120.2.119",[715,4888,4889,4892,4895,4898,4901],{},[730,4890,4891],{},"北京",[730,4893,4894],{},"49.7.37.74",[730,4896,4897],{},"112.34.111.194",[730,4899,4900],{},"111.206.209.44",[730,4902,4903],{},"166.111.4.100",[715,4905,4906,4909,4912,4915,4918],{},[730,4907,4908],{},"广州",[730,4910,4911],{},"183.47.126.35",[730,4913,4914],{},"120.233.18.250",[730,4916,4917],{},"157.148.58.29",[730,4919,4920],{},"202.116.64.8",[715,4922,4923,4926,4929,4932,4935],{},[730,4924,4925],{},"深圳",[730,4927,4928],{},"218.17.11.168",[730,4930,4931],{},"120.196.165.24",[730,4933,4934],{},"58.250.90.114",[730,4936],{},[715,4938,4939,4942,4945,4948,4951],{},[730,4940,4941],{},"河北",[730,4943,4944],{},"27.185.242.215",[730,4946,4947],{},"111.62.229.100",[730,4949,4950],{},"61.182.138.156",[730,4952],{},[715,4954,4955,4958,4961,4964,4967],{},[730,4956,4957],{},"山西",[730,4959,4960],{},"1.71.157.41",[730,4962,4963],{},"183.201.244.91",[730,4965,4966],{},"60.221.18.41",[730,4968],{},[715,4970,4971,4974,4977,4980,4983],{},[730,4972,4973],{},"辽宁",[730,4975,4976],{},"123.184.58.41",[730,4978,4979],{},"36.131.156.145",[730,4981,4982],{},"218.61.211.132",[730,4984],{},[715,4986,4987,4990,4993,4996,4999],{},[730,4988,4989],{},"吉林",[730,4991,4992],{},"123.172.127.217",[730,4994,4995],{},"111.27.127.176",[730,4997,4998],{},"122.143.8.41",[730,5000],{},[715,5002,5003,5006,5009,5012,5015],{},[730,5004,5005],{},"黑龙江",[730,5007,5008],{},"42.101.84.132",[730,5010,5011],{},"111.42.190.25",[730,5013,5014],{},"113.7.211.140",[730,5016],{},[715,5018,5019,5022,5025,5028,5031],{},[730,5020,5021],{},"江苏",[730,5023,5024],{},"58.215.210.220",[730,5026,5027],{},"36.156.92.132",[730,5029,5030],{},"122.96.235.165",[730,5032],{},[715,5034,5035,5038,5041,5044,5047],{},[730,5036,5037],{},"浙江",[730,5039,5040],{},"115.220.14.91",[730,5042,5043],{},"117.147.213.41",[730,5045,5046],{},"101.69.194.224",[730,5048],{},[715,5050,5051,5054,5057,5060,5063],{},[730,5052,5053],{},"安徽",[730,5055,5056],{},"223.247.108.251",[730,5058,5059],{},"112.29.198.100",[730,5061,5062],{},"112.132.208.41",[730,5064],{},[715,5066,5067,5070,5073,5076,5079],{},[730,5068,5069],{},"福建",[730,5071,5072],{},"106.126.10.28",[730,5074,5075],{},"112.50.96.88",[730,5077,5078],{},"36.248.48.139",[730,5080],{},[715,5082,5083,5086,5089,5092,5095],{},[730,5084,5085],{},"江西",[730,5087,5088],{},"106.227.22.132",[730,5090,5091],{},"117.168.150.249",[730,5093,5094],{},"116.153.69.224",[730,5096],{},[715,5098,5099,5102,5105,5108,5111],{},[730,5100,5101],{},"山东",[730,5103,5104],{},"144.123.160.140",[730,5106,5107],{},"120.220.145.91",[730,5109,5110],{},"112.240.56.143",[730,5112],{},[715,5114,5115,5118,5121,5124,5127],{},[730,5116,5117],{},"河南",[730,5119,5120],{},"171.15.110.220",[730,5122,5123],{},"111.7.99.220",[730,5125,5126],{},"123.6.65.101",[730,5128],{},[715,5130,5131,5134,5137,5140,5143],{},[730,5132,5133],{},"湖北",[730,5135,5136],{},"111.170.8.60",[730,5138,5139],{},"111.47.131.101",[730,5141,5142],{},"122.189.226.138",[730,5144],{},[715,5146,5147,5150,5153,5156,5159],{},[730,5148,5149],{},"湖南",[730,5151,5152],{},"113.240.117.108",[730,5154,5155],{},"120.226.192.91",[730,5157,5158],{},"116.162.28.220",[730,5160],{},[715,5162,5163,5166,5169,5172,5175],{},[730,5164,5165],{},"广东",[730,5167,5168],{},"183.36.23.111",[730,5170,5171],{},"183.240.65.191",[730,5173,5174],{},"112.90.211.100",[730,5176],{},[715,5178,5179,5182,5185,5188,5191],{},[730,5180,5181],{},"海南",[730,5183,5184],{},"124.225.43.220",[730,5186,5187],{},"111.29.29.219",[730,5189,5190],{},"153.0.226.35",[730,5192],{},[715,5194,5195,5198,5201,5204,5207],{},[730,5196,5197],{},"四川",[730,5199,5200],{},"118.123.218.220",[730,5202,5203],{},"183.220.151.41",[730,5205,5206],{},"101.206.163.49",[730,5208],{},[715,5210,5211,5214,5217,5220,5223],{},[730,5212,5213],{},"贵州",[730,5215,5216],{},"58.42.61.132",[730,5218,5219],{},"61.243.18.220",[730,5221,5222],{},"117.187.254.132",[730,5224],{},[715,5226,5227,5230,5233,5236,5239],{},[730,5228,5229],{},"云南",[730,5231,5232],{},"222.221.102.220",[730,5234,5235],{},"36.147.44.219",[730,5237,5238],{},"14.204.150.41",[730,5240],{},[715,5242,5243,5246,5249,5252,5255],{},[730,5244,5245],{},"陕西",[730,5247,5248],{},"124.115.14.100",[730,5250,5251],{},"111.19.148.100",[730,5253,5254],{},"123.139.127.132",[730,5256],{},[715,5258,5259,5262,5265,5268,5271],{},[730,5260,5261],{},"甘肃",[730,5263,5264],{},"118.182.228.91",[730,5266,5267],{},"117.157.16.41",[730,5269,5270],{},"59.81.94.53",[730,5272],{},[715,5274,5275,5278,5281,5284,5287],{},[730,5276,5277],{},"青海",[730,5279,5280],{},"223.221.216.219",[730,5282,5283],{},"111.12.152.170",[730,5285,5286],{},"116.177.237.137",[730,5288],{},[715,5290,5291,5294,5297,5300,5303],{},[730,5292,5293],{},"内蒙古",[730,5295,5296],{},"110.76.186.70",[730,5298,5299],{},"117.161.76.41",[730,5301,5302],{},"116.114.98.41",[730,5304],{},[715,5306,5307,5310,5313,5316,5319],{},[730,5308,5309],{},"广西",[730,5311,5312],{},"222.217.93.55",[730,5314,5315],{},"36.136.112.41",[730,5317,5318],{},"171.39.5.51",[730,5320],{},[715,5322,5323,5326,5329,5332,5335],{},[730,5324,5325],{},"西藏",[730,5327,5328],{},"113.62.176.89",[730,5330,5331],{},"117.180.234.41",[730,5333,5334],{},"43.242.165.35",[730,5336],{},[715,5338,5339,5342,5345,5348,5351],{},[730,5340,5341],{},"宁夏",[730,5343,5344],{},"222.75.44.220",[730,5346,5347],{},"111.51.155.214",[730,5349,5350],{},"116.129.226.28",[730,5352],{},[715,5354,5355,5358,5361,5364,5367],{},[730,5356,5357],{},"新疆",[730,5359,5360],{},"110.157.243.45",[730,5362,5363],{},"36.189.208.164",[730,5365,5366],{},"116.178.77.40",[730,5368],{},[715,5370,5371,5374,5377,5380,5383],{},[730,5372,5373],{},"天津",[730,5375,5376],{},"42.81.98.35",[730,5378,5379],{},"111.31.236.35",[730,5381,5382],{},"116.78.119.56",[730,5384],{},[715,5386,5387,5390,5393,5396,5399],{},[730,5388,5389],{},"重庆",[730,5391,5392],{},"119.84.131.101",[730,5394,5395],{},"221.178.81.101",[730,5397,5398],{},"221.7.92.98",[730,5400],{},[686,5402,5404],{"id":5403},"dashboard-配置","Dashboard 配置",[661,5406,5407,5408],{},"懒人配置生成器： ",[668,5409,5410],{"href":5410,"rel":5411},"https://nz.sina.us.kg/",[672],[789,5413,5415],{"id":5414},"调整最大tcpping值","调整最大TCPPing值",[661,5417,5418,5419,5422,5423,5426],{},"修改文件：",[801,5420,5421],{},"/nezha/data/config.yaml","，调整",[801,5424,5425],{},"MaxTCPPingValue","值。",[789,5428,5429],{"id":5429},"隐藏服务中的状态文字",[661,5431,5432,4537,5434],{},[801,5433,4536],{},[801,5435,5436],{},"Custom Codes (Style and Script)",[794,5438,5442],{"className":5439,"code":5440,"language":5441,"meta":779,"style":779},"language-css shiki shiki-themes one-light one-light one-dark-pro","\u003Cstyle>\n.service-status .delay-today-text{display: none;visibility: hidden;}\n\u003C/style>\n","css",[801,5443,5444,5449,5454],{"__ignoreMap":779},[804,5445,5446],{"class":806,"line":807},[804,5447,5448],{},"\u003Cstyle>\n",[804,5450,5451],{"class":806,"line":818},[804,5452,5453],{},".service-status .delay-today-text{display: none;visibility: hidden;}\n",[804,5455,5456],{"class":806,"line":826},[804,5457,5458],{},"\u003C/style>\n",[789,5460,5461],{"id":5461},"设置页面宽度",[794,5463,5465],{"className":5439,"code":5464,"language":5441,"meta":779,"style":779},"\u003Cstyle>\n.container {\n  width: 1540px;\n}\n\u003C/style>\n",[801,5466,5467,5471,5476,5481,5485],{"__ignoreMap":779},[804,5468,5469],{"class":806,"line":807},[804,5470,5448],{},[804,5472,5473],{"class":806,"line":818},[804,5474,5475],{},".container {\n",[804,5477,5478],{"class":806,"line":826},[804,5479,5480],{},"  width: 1540px;\n",[804,5482,5483],{"class":806,"line":839},[804,5484,1999],{},[804,5486,5487],{"class":806,"line":850},[804,5488,5458],{},[789,5490,5491],{"id":5491},"隐藏地区图标",[661,5493,5494,5495,5498],{},"在 ",[801,5496,5497],{},"console"," 里面执行以下js语句",[794,5500,5504],{"className":5501,"code":5502,"language":5503,"meta":779,"style":779},"language-js shiki shiki-themes one-light one-light one-dark-pro","document.querySelectorAll(\"i.fi\").forEach(el => el.classList = [])\n","js",[801,5505,5506],{"__ignoreMap":779},[804,5507,5508],{"class":806,"line":807},[804,5509,5502],{},[789,5511,5512],{"id":5512},"设置主题默认为分组模式",[794,5514,5516],{"className":5501,"code":5515,"language":5503,"meta":779,"style":779},"\u003Cscript>\n  localStorage.setItem('showGroup', 'true');\n\u003C/script>\n",[801,5517,5518,5523,5528],{"__ignoreMap":779},[804,5519,5520],{"class":806,"line":807},[804,5521,5522],{},"\u003Cscript>\n",[804,5524,5525],{"class":806,"line":818},[804,5526,5527],{},"  localStorage.setItem('showGroup', 'true');\n",[804,5529,5530],{"class":806,"line":826},[804,5531,5532],{},"\u003C/script>\n",[686,5534,5535],{"id":5535},"服务器监控",[789,5537,5538],{"id":5538},"基本规则",[1761,5540,5541,5623,5629,5650,5681],{},[1764,5542,5543,5546,5547],{},[801,5544,5545],{},"type","：可选取一个或多个类型，如在一个规则中选择了多个类型，需要同时满足所有选择的类型才会触发通知（可参考后面的示例）\n",[1761,5548,5549,5564,5590,5596,5608,5614],{},[1764,5550,5551,5554,5555,5554,5558,5554,5561],{},[801,5552,5553],{},"cpu","、",[801,5556,5557],{},"memory",[801,5559,5560],{},"swap",[801,5562,5563],{},"disk",[1764,5565,5566,5569,5570,5573,5574,5577,5578,5581,5582,5585,5586,5589],{},[801,5567,5568],{},"net_in_speed"," 入站网速、",[801,5571,5572],{},"net_out_speed"," 出站网速、",[801,5575,5576],{},"net_all_speed"," 双向网速、",[801,5579,5580],{},"transfer_in"," 入站流量、",[801,5583,5584],{},"transfer_out"," 出站流量、",[801,5587,5588],{},"transfer_all"," 双向流量",[1764,5591,5592,5595],{},[801,5593,5594],{},"offline"," 离线监控",[1764,5597,5598,5554,5601,5554,5604,5607],{},[801,5599,5600],{},"load1",[801,5602,5603],{},"load5",[801,5605,5606],{},"load15"," 负载",[1764,5609,5610,5613],{},[801,5611,5612],{},"process_count"," 进程数 目前取线程数占用资源太多，暂时不支持",[1764,5615,5616,5554,5619,5622],{},[801,5617,5618],{},"tcp_conn_count",[801,5620,5621],{},"udp_conn_count"," 连接数",[1764,5624,5625,5628],{},[801,5626,5627],{},"duration","：持续数秒，数秒内采样记录 30% 以上触发阈值才会报警（防数据插针）",[1764,5630,5631,5634,5635,5638,5639],{},[801,5632,5633],{},"min"," 或 ",[801,5636,5637],{},"max","：\n",[1761,5640,5641,5644,5647],{},[1764,5642,5643],{},"流量、网速类数值 为字节（1KB=1024B，1MB = 1024*1024B）",[1764,5645,5646],{},"内存、硬盘、CPU 以占用百分比计数",[1764,5648,5649],{},"离线监控无需设置此项",[1764,5651,5652,5638,5654],{},[801,5653,4013],{},[1761,5655,5656,5666,5675],{},[1764,5657,5658,5661,5662,5665],{},[801,5659,5660],{},"0"," 监控所有，通过 ",[801,5663,5664],{},"ignore"," 忽略特定服务器",[1764,5667,5668,5671,5672,5674],{},[801,5669,5670],{},"1"," 忽略所有，通过 ",[801,5673,5664],{}," 监控特定服务器",[1764,5676,5677,5678],{},"例如：",[801,5679,5680],{},"[{\"type\":\"offline\",\"duration\":10, \"cover\":0, \"ignore\":{\"5\": true}}]",[1764,5682,5683,5685,5686,5688,5689],{},[801,5684,5664],{},": 选择忽略特定服务器，搭配 ",[801,5687,4013],{}," 使用，内容为服务器 id 和布尔值，例如：",[801,5690,5691],{},"{\"1\": true, \"2\":false}",[789,5693,5694],{"id":5694},"流量监控",[661,5696,5697],{},"属性：",[1761,5699,5700,5724,5733,5739,5764],{},[1764,5701,5702,815,5704],{},[801,5703,5545],{},[1761,5705,5706,5712,5718],{},[1764,5707,5708,5711],{},[801,5709,5710],{},"transfer_in_cycle"," 周期内的入站流量",[1764,5713,5714,5717],{},[801,5715,5716],{},"transfer_out_cycle"," 周期内的出站流量",[1764,5719,5720,5723],{},[801,5721,5722],{},"transfer_all_cycle"," 周期内双向流量和",[1764,5725,5726,5729,5730],{},[801,5727,5728],{},"cycle_start","： 统计周期开始日期（可以是你机器计费周期的开始日期），时间格式为RFC3339，例如北京时间为",[801,5731,5732],{},"2022-01-11T08:00:00.00+08:00",[1764,5734,5735,5738],{},[801,5736,5737],{},"cycle_interval","：每隔多少个周期单位（例如，周期单位为天，该值为 7，则代表每隔 7 天统计一次）",[1764,5740,5741,5744,5745,5748,5749,5751,5752,5751,5755,5751,5758,5751,5761,3603],{},[801,5742,5743],{},"cycle_unit"," 统计周期单位，默认",[801,5746,5747],{},"hour",",可选(",[801,5750,5747],{},", ",[801,5753,5754],{},"day",[801,5756,5757],{},"week",[801,5759,5760],{},"month",[801,5762,5763],{},"year",[1764,5765,5766,5554,5769,5554,5771,5773],{},[801,5767,5768],{},"min/max",[801,5770,4013],{},[801,5772,5664],{}," 参考基本规则配置",[661,5775,5776],{},"配置：",[661,5778,5779],{},[801,5780,5781],{},"[{\"type\":\"transfer_all_cycle\",\"max\":1649267441408,\"cycle_start\":\"2024-03-08T00:00:00+08:00\",\"cycle_interval\":1,\"cycle_unit\":\"month\",\"cover\":1,\"ignore\":{\"100\":true}}]\t",[789,5783,5784],{"id":5784},"报警机器人",[5786,5787,5789],"h6",{"id":5788},"telegram","Telegram",[661,5791,5792,5793,5796],{},"关注官方机器人",[801,5794,5795],{},"@Botfather","，创建机器人",[661,5798,5799,5800],{},"访问地址：",[668,5801,5804],{"href":5802,"rel":5803},"https://api.telegram.org/bot%E8%BF%99%E9%87%8C%E5%A1%AB%E5%86%99%E5%AF%86%E9%92%A5/sendMessage?chat_id=%E8%BF%99%E9%87%8C%E5%A1%AB%E5%86%99%E7%94%A8%E6%88%B7id&text=#NEZHA#",[672],"https://api.telegram.org/bot这里填写密钥/sendMessage?chat_id=这里填写用户id&text=#NEZHA#",[3739,5806,5807],{},[661,5808,5809,5812,5813,5815,5816,5818,5820,5821,5824,5825,5827],{},[664,5810,5811],{},"密钥","就是机器人创建后",[801,5814,5795],{},"返回的 token",[701,5817],{},[664,5819,2055],{},"可以通过与机器人",[801,5822,5823],{},"@userinfobot","对话获得",[701,5826],{},"\n创建好机器人之后我们先要与其对话一次才可使用",[661,5829,5830,4537,5833],{},[801,5831,5832],{},"Notifications",[801,5834,5835],{},"Add Notification Method",[661,5837,5838],{},[777,5839],{"alt":779,"src":5840,"style":5841},"/doc/nezha/nezha-ng.jpg","max-width:600px",[789,5843,5844],{"id":5844},"到达额定流量关机",[661,5846,5847],{},"配置关机任务",[661,5849,5850,4537,5853],{},[801,5851,5852],{},"Tasks",[801,5854,5855],{},"Add Schedule Task",[661,5857,5858],{},[777,5859],{"alt":779,"src":5860,"style":5841},"/doc/nezha/nezha-scheduled.jpg",[661,5862,5863],{},"配置告警",[661,5865,5866,4537,5868],{},[801,5867,5832],{},[801,5869,5870],{},"Add Notification Rule",[661,5872,5873],{},[777,5874],{"alt":779,"src":5875,"style":5841},"/doc/nezha/nezha-alarm.jpg",[789,5877,5878],{"id":5878},"离线报警",[661,5880,5881],{},[801,5882,5883],{},"[{\"Type\":\"offline\",\"Duration\":10}]",[789,5885,5886],{"id":5886},"网速报警",[661,5888,5889],{},[801,5890,5891],{},"[{\"Type\":\"net_out_speed\",\"Duration\":10,\"max\":10485760,\"cover\":1,\"ignore\":{\"18\":true}}]",[789,5893,5895],{"id":5894},"cpu内存","CPU+内存",[661,5897,5898],{},"CPU 持续 10s 超过 50% 且 内存持续 20s 占用低于 20% 的报警",[661,5900,5901],{},[801,5902,5903],{},"[{\"Type\":\"cpu\",\"Min\":0,\"Max\":50,\"Duration\":10},{\"Type\":\"memory\",\"Min\":20,\"Max\":0,\"Duration\":20}]",[5905,5906,5907],"style",{},"html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .s3_5o, html code.shiki .s3_5o{--shiki-light:#E45649;--shiki-default:#E45649;--shiki-dark:#E06C75}html pre.shiki code .skGaQ, html code.shiki .skGaQ{--shiki-light:#383A42;--shiki-default:#383A42;--shiki-dark:#ABB2BF}html pre.shiki code .sBZeU, html code.shiki .sBZeU{--shiki-light:#50A14F;--shiki-default:#50A14F;--shiki-dark:#98C379}html pre.shiki code .slzXe, html code.shiki .slzXe{--shiki-light:#A0A1A7;--shiki-light-font-style:italic;--shiki-default:#A0A1A7;--shiki-default-font-style:italic;--shiki-dark:#7F848E;--shiki-dark-font-style:italic}html pre.shiki code .sXhqU, html code.shiki .sXhqU{--shiki-light:#0184BC;--shiki-default:#0184BC;--shiki-dark:#56B6C2}html pre.shiki code .soiGB, html code.shiki .soiGB{--shiki-light:#986801;--shiki-default:#986801;--shiki-dark:#D19A66}html pre.shiki code .sQ8GY, html code.shiki .sQ8GY{--shiki-light:#383A42;--shiki-default:#383A42;--shiki-dark:#56B6C2}html pre.shiki code .s0nYC, html code.shiki .s0nYC{--shiki-light:#E45649;--shiki-default:#E45649;--shiki-dark:#98C379}html pre.shiki code .sgdWN, html code.shiki .sgdWN{--shiki-light:#4078F2;--shiki-default:#4078F2;--shiki-dark:#61AFEF}html pre.shiki code .sfXbn, html code.shiki .sfXbn{--shiki-light:#E45649;--shiki-default:#E45649;--shiki-dark:#ABB2BF}html pre.shiki code .sRLjE, html code.shiki .sRLjE{--shiki-light:#A626A4;--shiki-default:#A626A4;--shiki-dark:#C678DD}",{"title":779,"searchDepth":818,"depth":818,"links":5909},[5910,5915,5920,5925],{"id":658,"depth":818,"text":659,"children":5911},[5912,5913,5914],{"id":688,"depth":826,"text":688},{"id":783,"depth":826,"text":783},{"id":1781,"depth":826,"text":1782},{"id":2287,"depth":818,"text":2288,"children":5916},[5917,5918,5919],{"id":2291,"depth":826,"text":2291},{"id":2996,"depth":826,"text":2997},{"id":3468,"depth":826,"text":3468},{"id":3736,"depth":818,"text":3737,"children":5921},[5922,5923,5924],{"id":3746,"depth":826,"text":3746},{"id":3787,"depth":826,"text":3787},{"id":4075,"depth":826,"text":4075},{"id":4238,"depth":818,"text":4239,"children":5926},[5927,5928,5929,5930,5931,5932,5933,5934],{"id":4246,"depth":826,"text":3746},{"id":4263,"depth":826,"text":4263},{"id":4478,"depth":826,"text":4479},{"id":4515,"depth":826,"text":4075},{"id":4526,"depth":826,"text":4527},{"id":4846,"depth":826,"text":4846},{"id":5403,"depth":826,"text":5404},{"id":5535,"depth":826,"text":5535},"服务器监控相关文档教程。","md",null,{"date":5939},"2026-03-11",{"icon":76},{"title":73,"description":5935},"H1WSj_glL0Om12j-b5dU0KsAlfHsblkaC-zz1Vfp30I",[5944,5945],{"title":68,"path":69,"stem":70,"description":779,"icon":71,"children":-1},{"title":78,"path":79,"stem":80,"description":5946,"icon":81,"children":-1},"网络/数据安全（如 DDoS、防火墙、TLS 等）主题",1777777460278]