免费国产精品自在自线-91精品国产色综合久久久浪潮-99热久久免费频精品-国产精品国模在线观看-久久亚洲国产精品成人?V秋霞-久久国产一级A片免费播放-亚洲国产欧洲综合97久久-久久国产白嫩美女呻吟高潮

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運(yùn)營的一線實(shí)戰(zhàn)洞察。

樓宇自控溫濕度監(jiān)測:Modbus TCP+SNMP集成落地全記錄

樓宇自控溫濕度監(jiān)測:Modbus TCP+SNMP集成落地全記錄 做樓宇自控和動(dòng)環(huán)監(jiān)控時(shí)間長了你會(huì)發(fā)現(xiàn)溫濕度監(jiān)測這種最基礎(chǔ)的需求反而是最考驗(yàn)整合功力的活。傳感器本身不復(fù)雜難的是怎么把散落在各樓層弱電間、機(jī)房、配電室的幾十個(gè)點(diǎn)位用一種低成本但不失專業(yè)的方式統(tǒng)一接入樓宇現(xiàn)有的管理系統(tǒng)。我在一個(gè)實(shí)際項(xiàng)目中構(gòu)建了一套基于Modbus TCP/UDP和SNMP協(xié)議的樓宇自控溫濕度監(jiān)測系統(tǒng)采集層走M(jìn)odbus上送層走SNMP一套鏈路下來數(shù)據(jù)穩(wěn)定、對(duì)接順暢這篇文章就是這套系統(tǒng)的完整落地記錄包括方案選型、寄存器踩坑、MIB定義、網(wǎng)管平臺(tái)聯(lián)調(diào)和問題排查給正在做類似弱電集成或動(dòng)環(huán)改造的同行一個(gè)參考。1. 方案選型為什么是Modbus TCP/UDP加SNMP這套組合1.1 傳統(tǒng)溫濕度監(jiān)測方案在樓宇場景中的真實(shí)痛點(diǎn)很多人第一次接觸樓宇溫濕度監(jiān)測第一反應(yīng)是買一批帶LCD屏的傳感器各自接RS485總線到一臺(tái)串口服務(wù)器再用某個(gè)廠商的上位機(jī)軟件看曲線。這種方案在小型機(jī)房勉強(qiáng)能跑但放到真正的樓宇自控場景里問題就來了。RS485總線是手拉手的菊花鏈拓?fù)渲虚g任何一個(gè)節(jié)點(diǎn)接錯(cuò)線、短路或者設(shè)備死機(jī)輕則某一段失聯(lián)重則整條總線癱瘓。更麻煩的是如果節(jié)點(diǎn)分布在不同樓層你得沿橋架拉一整根手拉手的通信線施工麻煩不說后期排查故障基本靠猜。另一個(gè)痛點(diǎn)在于數(shù)據(jù)孤立。傳統(tǒng)品牌溫濕度傳感器的上位機(jī)軟件往往自成一套數(shù)據(jù)存在它自己的數(shù)據(jù)庫里樓宇的BA網(wǎng)管平臺(tái)看不到動(dòng)環(huán)監(jiān)控平臺(tái)也看不到。于是運(yùn)維人員每天得打開兩三個(gè)不同的軟件才能把溫濕度、空調(diào)、UPS狀態(tài)看全這在實(shí)際使用中幾乎沒有可操作性時(shí)間一長監(jiān)控就成了擺設(shè)。我在這個(gè)項(xiàng)目里就是被這類問題逼著做了一次徹底的技術(shù)選型。1.2 Modbus TCP/UDP負(fù)責(zé)采集層的關(guān)鍵考量選擇Modbus作為采集層協(xié)議最大的理由不是它性能多強(qiáng)而是它生態(tài)足夠大。樓宇溫濕度傳感器、水浸傳感器、RTU轉(zhuǎn)以太網(wǎng)的網(wǎng)關(guān)、邊緣計(jì)算網(wǎng)關(guān)幾乎市面上所有工業(yè)級(jí)環(huán)境監(jiān)測設(shè)備都內(nèi)置Modbus協(xié)議棧支持Modbus TCP或Modbus UDP訪問。你不用擔(dān)心某個(gè)傳感器買回來協(xié)議不兼容Modbus就是這行的“通用語言”。Modbus TCP/UDP相對(duì)傳統(tǒng)RS485的優(yōu)勢(shì)主要有三個(gè)。第一是布線以太網(wǎng)線走弱電橋架非常成熟交換機(jī)端口隨處可接點(diǎn)位的增刪改都只需要網(wǎng)線一根不需要像RS485那樣講究節(jié)點(diǎn)距離和手拉手順序。第二是可靠性Modbus TCP基于TCP協(xié)議自帶確認(rèn)和重傳機(jī)制數(shù)據(jù)包丟失會(huì)自動(dòng)補(bǔ)償只要網(wǎng)絡(luò)不中斷采集基本不會(huì)出幺蛾子。第三是速率以太網(wǎng)交換機(jī)的吞吐能力遠(yuǎn)非串行總線可比一個(gè)采集程序輪詢幾十個(gè)點(diǎn)位時(shí)間開銷完全可以忽略。這個(gè)方案里Modbus TCP和UDP都有存在意義。大多數(shù)工業(yè)傳感器同時(shí)支持兩種方式訪問TCP適合點(diǎn)對(duì)點(diǎn)持續(xù)輪詢UDP則適合對(duì)實(shí)時(shí)性要求更高的局部場景而且UDP在單包交互上更輕。不過坦率講樓宇溫濕度監(jiān)測這種每秒一次甚至10秒一次的頻率TCP和UDP的實(shí)時(shí)性差別體感為零所以主采集鏈路選TCPUDP作為備用通道和兼容特殊設(shè)備的方式這樣最穩(wěn)妥。1.3 SNMP協(xié)議負(fù)責(zé)上送層的關(guān)鍵考量如果說Modbus解決的是“怎么把數(shù)據(jù)從傳感器讀出來”那SNMP解決的就是“怎么把數(shù)據(jù)交給樓上管理平臺(tái)”。樓宇自控領(lǐng)域有個(gè)很現(xiàn)實(shí)的情況機(jī)房的精密空調(diào)、UPS電源、配電柜監(jiān)測模塊幾乎都標(biāo)配SNMP Agent網(wǎng)管平臺(tái)通過輪詢這些設(shè)備的OID節(jié)點(diǎn)來掌握運(yùn)行狀態(tài)。溫濕度監(jiān)測數(shù)據(jù)如果能變成SNMP的OID節(jié)點(diǎn)就能直接塞進(jìn)同一個(gè)平臺(tái)不需要再單獨(dú)維護(hù)一套軟件。這是整個(gè)方案的核心邏輯不引入新的監(jiān)控平臺(tái)最大化復(fù)用現(xiàn)有網(wǎng)管體系。配電房里的空調(diào)壞了網(wǎng)管平臺(tái)報(bào)警同時(shí)附帶的溫度曲線可能已經(jīng)提前一兩天顯示異常這種統(tǒng)一視角對(duì)運(yùn)維的價(jià)值非常大。SNMP的Trap機(jī)制還能把溫濕度越限事件主動(dòng)推送給平臺(tái)不是每次都要靠平臺(tái)輪詢才能發(fā)現(xiàn)這對(duì)告警場景非常關(guān)鍵。一定要理解我們?cè)跇怯钭钥乩镆隨NMP不是因?yàn)樗冗M(jìn)而是因?yàn)樗呀?jīng)被各種網(wǎng)管平臺(tái)廣泛支持是真正打通“最后一公里”的橋。1.4 系統(tǒng)整體拓?fù)渑c數(shù)據(jù)流走向整個(gè)系統(tǒng)的拓?fù)浣Y(jié)構(gòu)并不復(fù)雜大致分成三層。采集層由分布在各個(gè)場點(diǎn)的溫濕度傳感器組成傳感器通過網(wǎng)線接到樓層交換機(jī)只要設(shè)備支持Modbus TCP/UDP默認(rèn)IP配置好就能訪問。對(duì)于個(gè)別點(diǎn)位還要兼容老式RS485傳感器的情況我加了一組Modbus RTU轉(zhuǎn)TCP的串口服務(wù)器把老舊傳感器也統(tǒng)一成以太網(wǎng)設(shè)備接入。匯聚層是一臺(tái)運(yùn)行Linux的采集服務(wù)器我用的是一臺(tái)頂替下來的舊PC安裝了Python環(huán)境和SNMP服務(wù)。采集腳本按照配置的IP和寄存器地址以Modbus TCP方式輪詢所有傳感器把讀到的原始寄存器值換算成實(shí)際的溫度、濕度數(shù)據(jù)并維護(hù)一份最新的緩存文件或內(nèi)存字典。接入層就是SNMP Agent負(fù)責(zé)把緩存中的溫濕度數(shù)值暴露成自定義OID節(jié)點(diǎn)。樓宇網(wǎng)管平臺(tái)配置好社區(qū)字符串和OID列表按設(shè)定的周期輪詢即可。數(shù)據(jù)流方向是傳感器→交換機(jī)→采集服務(wù)器→SNMP Agent→網(wǎng)管平臺(tái)全程閉環(huán)。這套結(jié)構(gòu)最巧妙的地方在于采集和上送邏輯完全解耦即使將來更換網(wǎng)管平臺(tái)只需要重新定義OID映射采集層一點(diǎn)不用動(dòng)。2. 數(shù)據(jù)采集層Modbus TCP/UDP讀溫濕度寄存器的硬核細(xì)節(jié)2.1 先查清楚傳感器寄存器映射和數(shù)據(jù)類型我在項(xiàng)目開始前向傳感器廠商要了一份寄存器映射表這份表是整個(gè)系統(tǒng)能不能寫對(duì)代碼的命根子動(dòng)手前必須先啃透。常見的溫濕度傳感器溫度值一般放在保持寄存器或輸入寄存器里地址可能從0開始也可能從某個(gè)偏移開始比如0x0065這類地址。功能碼通常是03讀保持寄存器或者04讀輸入寄存器這兩個(gè)功能碼功能類似但有些設(shè)備實(shí)現(xiàn)不一樣選錯(cuò)就無法讀到數(shù)據(jù)。比地址更坑的是數(shù)據(jù)格式。有的傳感器用單個(gè)16位寄存器存一個(gè)整數(shù)溫度值有的用兩個(gè)16位寄存器拼成32位IEEE 754浮點(diǎn)數(shù)。溫度值尤其要注意正負(fù)一個(gè)帶符號(hào)的負(fù)溫度在寄存器里顯示為0xFFFF的補(bǔ)碼形式如果不按帶符號(hào)整數(shù)解析直接當(dāng)無符號(hào)數(shù)讀出來就是個(gè)65535這種天文數(shù)字。我在項(xiàng)目里選用的傳感器是單寄存器存儲(chǔ)溫度縮放系數(shù)0.01濕度縮放系數(shù)0.1也就是說寄存器原始值2534代表實(shí)際溫度25.34℃原始值623代表濕度62.3%RH。這里強(qiáng)烈建議先把單個(gè)傳感器接到測試環(huán)境用Modbus調(diào)試工具比如Modbus Poll人工讀取一遍所有寄存器核對(duì)數(shù)值是否符合現(xiàn)場儀表顯示。不要信任出廠默認(rèn)參數(shù)因?yàn)楹芏鄠鞲衅鞒鰪S時(shí)寄存器地址可以撥碼調(diào)整和說明書不一定完全一致。這一步提前做了后面寫代碼就少走大量彎路。2.2 用pymodbus實(shí)現(xiàn)TCP與UDP雙模式讀取采集程序我用的Python加pymodbus庫這個(gè)庫是目前Python生態(tài)里最主流的Modbus協(xié)議實(shí)現(xiàn)接口穩(wěn)定、文檔全、坑也少。按項(xiàng)目需求我需要同時(shí)支持TCP和UDP兩種模式pymodbus的ModbusTcpClient和ModbusUdpClient可以干凈利落地解決這個(gè)問題。先看TCP模式的標(biāo)準(zhǔn)讀取代碼核心流程是創(chuàng)建客戶端、連接、讀寄存器、關(guān)閉連接from pymodbus.client import ModbusTcpClient client ModbusTcpClient(192.168.10.21, port502, timeout3) if not client.connect(): raise RuntimeError(無法連接傳感器) # 讀保持寄存器起始地址0x0065101讀2個(gè)寄存器從站地址unit1 resp client.read_holding_registers(address0x0065, count2, unit1) if resp.isError(): raise RuntimeError(fModbus讀取失敗: {resp}) temp_raw resp.registers[0] hum_raw resp.registers[1] print(f原始值: 溫度{temp_raw}, 濕度{hum_raw}) client.close()UDP模式幾乎一樣只需要把TCP客戶端替換為UDP客戶端from pymodbus.client import ModbusUdpClient client ModbusUdpClient(192.168.10.21, port502, timeout3) resp client.read_holding_registers(address0x0065, count2, unit1) if not resp.isError(): print(resp.registers) client.close()注意UDP模式里沒有顯式connect而是直接發(fā)送請(qǐng)求等響應(yīng)因?yàn)閁DP本身是無連接的pymodbus對(duì)UDP的實(shí)現(xiàn)是單包請(qǐng)求-響應(yīng)模式。這里有個(gè)細(xì)節(jié)實(shí)際項(xiàng)目中一般不會(huì)每次都新建連接而是建立一個(gè)連接池或復(fù)用同一個(gè)客戶端對(duì)象因?yàn)門CP每次握手成本高頻繁開關(guān)連接對(duì)設(shè)備也是一種壓力。我在輪詢循環(huán)里是初始化一次客戶端然后在循環(huán)中反復(fù)使用同一個(gè)連接。多傳感器輪詢時(shí)我寫了一個(gè)讀取函數(shù)把傳感器IP和寄存器配置放進(jìn)一個(gè)列表逐個(gè)調(diào)用。這個(gè)方案的點(diǎn)位規(guī)模在32個(gè)左右串行輪詢完全夠用。如果點(diǎn)位到了幾百個(gè)可以把輪詢改成異步并發(fā)但那是另一層復(fù)雜度了中小型樓宇暫時(shí)不需要。2.3 輪詢周期、超時(shí)和重試該怎么算輪詢周期的選擇直接影響設(shè)備負(fù)載和網(wǎng)絡(luò)占用。工業(yè)級(jí)溫濕度傳感器一般響應(yīng)時(shí)間在幾十毫秒到幾百毫秒之間樓宇環(huán)境溫度變化本身是分鐘級(jí)的完全不需要毫秒級(jí)采集。我的經(jīng)驗(yàn)是將每個(gè)點(diǎn)位的輪詢周期設(shè)置在10秒到30秒之間有告警需求的機(jī)房點(diǎn)位用10秒普通倉儲(chǔ)區(qū)用30秒。超時(shí)時(shí)間的計(jì)算邏輯是這樣的傳感器正常響應(yīng)比如50毫秒但你要給異常留出足夠余量設(shè)成3秒是合理選擇。太短的話設(shè)備偶發(fā)慢響應(yīng)就會(huì)誤判為故障太長的話一旦某臺(tái)設(shè)備不在線輪詢線程就會(huì)卡在這里很久。再配合重試機(jī)制我用的是固定間隔重試3次間隔1秒3次全部失敗就把該點(diǎn)位標(biāo)記為離線并繼續(xù)輪詢下一個(gè)點(diǎn)位。這樣單臺(tái)設(shè)備故障不會(huì)拖垮整個(gè)輪詢鏈路。我算過一臺(tái)采集服務(wù)器在32個(gè)點(diǎn)位、每個(gè)點(diǎn)位讀2個(gè)寄存器、單次往返約100毫秒的場景下完整輪詢一輪的時(shí)間是32乘以0.1秒也就是3.2秒左右。即便按最保守估算10秒的輪詢周期也留了3倍以上余量完全不會(huì)出現(xiàn)數(shù)據(jù)堆積或輪詢?nèi)蝿?wù)追趕的情況。如果你的點(diǎn)位特別多或者網(wǎng)絡(luò)鏈路比較差輪詢周期要相應(yīng)拉長否則不同點(diǎn)位的采集時(shí)間戳落差會(huì)很大在網(wǎng)管平臺(tái)上看曲線就不準(zhǔn)了。2.4 TCP模式與UDP模式各自的坑與選型建議TCP模式最常見的坑是連接假死。傳感器設(shè)備長時(shí)間沒有請(qǐng)求時(shí)有些型號(hào)會(huì)主動(dòng)斷開TCP連接但客戶端側(cè)不知道后續(xù)read請(qǐng)求會(huì)等到超時(shí)才報(bào)錯(cuò)。解決方法是給socket加TCP keepalive或者在每次讀取之前判斷連接是否斷開、必要時(shí)重連。我在采集程序里加了一個(gè)重連邏輯讀取異常時(shí)先做三次快速重試都不行再強(qiáng)制重建連接。UDP模式的坑更多集中在事務(wù)匹配上。Modbus UDP報(bào)文頭里帶Transaction ID每次請(qǐng)求要遞增客戶端在收響應(yīng)時(shí)要用事務(wù)ID和從站地址校驗(yàn)是否匹配防止把上一個(gè)請(qǐng)求的遲到的響應(yīng)當(dāng)成這一次的結(jié)果。pymodbus底層已經(jīng)做了這個(gè)處理但如果你是自己裸寫協(xié)議棧這個(gè)問題必須重視。UDP丟包沒有協(xié)議層的自動(dòng)重傳所以必須自己做超時(shí)重試。我在UDP讀取時(shí)固定做3次重試并遞增事務(wù)ID實(shí)測在基礎(chǔ)網(wǎng)絡(luò)質(zhì)量比較好的局域網(wǎng)里丟包率很低一次讀取失敗的概率大概在2%以下。還有一個(gè)選型建議值得單獨(dú)說。如果所有傳感器都已經(jīng)支持Modbus TCP沒必要為了“先進(jìn)”去用UDP如果有些傳感器只開放了UDP接口那就單獨(dú)給這類設(shè)備走UDP采集其余統(tǒng)一走TCP。不要讓一個(gè)采集程序?yàn)榱思嫒菪园炎约焊愕锰珡?fù)雜分兩條采集通道反而更清爽。3. 數(shù)據(jù)上送層把Modbus數(shù)據(jù)翻譯成SNMP能識(shí)別的OID3.1 SNMP網(wǎng)管模型與OID樹的基本邏輯SNMP的邏輯其實(shí)很簡單它定義了一套“被管對(duì)象”的樹形結(jié)構(gòu)每個(gè)對(duì)象用OID對(duì)象標(biāo)識(shí)符表示網(wǎng)管平臺(tái)作為管理端不斷向設(shè)備Agent發(fā)起查詢請(qǐng)求Agent返回OID對(duì)應(yīng)的值。OID是一個(gè)一串點(diǎn)分十進(jìn)制數(shù)字的路徑比如.1.3.6.1.4.1.9.9.205這個(gè)路徑下可能就是一個(gè)具體的設(shè)備狀態(tài)節(jié)點(diǎn)。在樓宇自控場景里網(wǎng)管平臺(tái)就是NMS采集服務(wù)器上的SNMP服務(wù)就是Agent。我們要做的事情就是自定義幾個(gè)有意義的OID節(jié)點(diǎn)并把溫濕度數(shù)據(jù)掛上去這樣網(wǎng)管平臺(tái)通過OID就能直接讀到溫度值完全不用關(guān)心底層是Modbus還是別的協(xié)議。這就是一種協(xié)議封裝和屏蔽對(duì)上層是透明的特別適合運(yùn)維體系已經(jīng)成熟的樓宇。SNMP協(xié)議版本上v1已經(jīng)過時(shí)v2c是現(xiàn)在使用最普遍的版本它使用明文Community字符串做簡單認(rèn)證v3引入了用戶密碼和加密安全可控但配置復(fù)雜。樓宇網(wǎng)管平臺(tái)如果比較老可能只支持v2c我對(duì)接時(shí)優(yōu)先兼容v2c同時(shí)用IP白名單和復(fù)雜Community來做安全補(bǔ)償具體會(huì)在后面單獨(dú)說。3.2 自定義MIB文件給溫濕度點(diǎn)位定義“合法身份證”光有OID還不夠網(wǎng)管平臺(tái)要正確解析OID的含義還需要配套MIB文件。MIB文件本質(zhì)是一個(gè)用ASN.1語法寫的對(duì)象定義說明書它把OID數(shù)值路徑對(duì)應(yīng)成人類可讀的名稱、數(shù)據(jù)類型、讀寫權(quán)限、描述信息??梢哉fMIB文件就是SNMP世界的身份證。我不能直接用廠商私有OID段因?yàn)槠髽I(yè)的OID編號(hào)是有分配的偷用大廠的OID段會(huì)造成沖突。標(biāo)準(zhǔn)做法是找上級(jí)機(jī)構(gòu)申請(qǐng)一個(gè)企業(yè)號(hào)比如.1.3.6.1.4.1后面的數(shù)字就是企業(yè)號(hào)。項(xiàng)目里我按企業(yè)內(nèi)部規(guī)范申請(qǐng)了一個(gè)測試段的號(hào)段然后定義一個(gè)節(jié)點(diǎn)樹把溫濕度都掛在自定義節(jié)點(diǎn)下面。一個(gè)典型的溫濕度MIB定義長這樣myBuilding-MIB DEFINITIONS :: BEGIN IMPORTS enterprises, OBJECT-TYPE, Integer32 FROM SNMPv2-SMI; myEnterprise OBJECT IDENTIFIER :: { enterprises 99999 } myProduct OBJECT IDENTIFIER :: { myEnterprise 1 } sensorRoot OBJECT IDENTIFIER :: { myProduct 1 } sensorName OBJECT-TYPE SYNTAX OCTET STRING (SIZE (0..64)) MAX-ACCESS read-only STATUS current DESCRIPTION 溫濕度傳感器點(diǎn)位名稱 :: { sensorRoot 1 } temperatureScaled OBJECT-TYPE SYNTAX Integer32 MAX-ACCESS read-only STATUS current DESCRIPTION 溫度單位0.01攝氏度如2534代表25.34℃ :: { sensorRoot 2 } humidityScaled OBJECT-TYPE SYNTAX Integer32 MAX-ACCESS read-only STATUS current DESCRIPTION 濕度單位0.1%RH如623代表62.3%RH :: { sensorRoot 3 } END這里有幾個(gè)細(xì)節(jié)值得注意。類型按實(shí)際數(shù)據(jù)選溫度濕度用整數(shù)類型傳縮放后的數(shù)值這樣在網(wǎng)管平臺(tái)顯示時(shí)不會(huì)出現(xiàn)浮點(diǎn)精度問題。描述字段一定要寫清楚單位和縮放系數(shù)否則分不清1.2534還是2534。我看過太多人MIB里把溫度的單位亂寫最后平臺(tái)顯示25.34℃還是2534℃全靠人力猜。3.3 輕量級(jí)Agent方案用snmpd的pass機(jī)制對(duì)接采集腳本網(wǎng)管平臺(tái)只認(rèn)SNMP服務(wù)所以需要在采集服務(wù)器上運(yùn)行一個(gè)SNMP Agent。最省心的方案不是自己寫一個(gè)Agent程序而是直接用Linux自帶的snmpd用它提供的pass指令把指定OID段外包給一個(gè)外部腳本處理。這個(gè)方案部署極其輕量不需要改snmpd源碼也不用后臺(tái)常駐一個(gè)自寫Agent服務(wù)特別適合用Python采集、點(diǎn)位幾十個(gè)這種規(guī)模。snmpd配置里加上一行表示當(dāng)網(wǎng)管平臺(tái)請(qǐng)求.1.3.6.1.4.1.99999節(jié)點(diǎn)下的任何OID時(shí)都調(diào)用/usr/local/bin/sensor_read.py這個(gè)腳本pass .1.3.6.1.4.1.99999 /usr/local/bin/sensor_read.py腳本的邏輯是接收參數(shù)OID根據(jù)OID判斷返回哪個(gè)傳感器的哪個(gè)值。腳本從采集程序?qū)懞玫木彺嫖募镒x取最新溫濕度數(shù)據(jù)按snmpd規(guī)定的三行格式返回第一行是要返回的完整OID第二行是類型integer、string、gauge等第三行是值。#!/usr/bin/env python3 import sys import json # 讀取采集程序維護(hù)的緩存文件 with open(/var/run/sensor_cache.json, r, encodingutf-8) as f: data json.load(f) oid sys.argv[1] if oid .1.3.6.1.4.1.99999.1.2.0: print(.1.3.6.1.4.1.99999.1.2.0) print(integer) print(str(data[temperature])) elif oid .1.3.6.1.4.1.99999.1.3.0: print(.1.3.6.1.4.1.99999.1.3.0) print(integer) print(str(data[humidity])) elif oid .1.3.6.1.4.1.99999.1.1.0: print(.1.3.6.1.4.1.99999.1.1.0) print(string) print(三層機(jī)房A1點(diǎn)位) else: sys.exit(1)pass腳本的一個(gè)要點(diǎn)是執(zhí)行時(shí)間不能太長snmpd默認(rèn)給外部腳本的處理時(shí)間非常有限如果腳本里還在做網(wǎng)絡(luò)請(qǐng)求很容易被snmpd判定超時(shí)。我特意讓采集進(jìn)程單獨(dú)跑持續(xù)把最新數(shù)據(jù)寫入json文件pass腳本只讀本地文件不碰任何網(wǎng)絡(luò)這樣響應(yīng)速度幾乎為零延遲聯(lián)調(diào)非常順暢。3.4 完整Agent方案用pysnmp直接發(fā)布OID值可選如果你遇到的情況比較特殊比如不允許在服務(wù)器上裝系統(tǒng)的snmpd擴(kuò)展或者需要更靈活的OID發(fā)布邏輯可以考慮用pysnmp自己實(shí)現(xiàn)一個(gè)SNMP Agent。這個(gè)方案更重但自由度也更高適合采集和上送邏輯需要深度耦合的場景。用pysnmp注冊(cè)O(shè)ID值非常簡單它提供CommandResponder模式你定義好每個(gè)OID的獲取方法后在循環(huán)中監(jiān)聽UDP 161端口即可。核心代碼大致是編寫一個(gè)回調(diào)函數(shù)根據(jù)請(qǐng)求的OID從緩存字典里取當(dāng)前溫度濕度值返回。比起pass腳本方式pysnmp方案勝在Agent完全可控Trap報(bào)文隨時(shí)能發(fā)適合做過自定義輪詢模式或頻繁上報(bào)的場景但對(duì)開發(fā)者要求更高調(diào)試也更復(fù)雜。從項(xiàng)目交付角度看除非你對(duì)pysnmp很熟悉否則我更推薦先上snmpd加pass的方案因?yàn)樗銐蚍€(wěn)定、足夠簡單而且snmpd本身的并發(fā)和性能處理已經(jīng)很成熟。后續(xù)如果要擴(kuò)展告警聯(lián)動(dòng)再考慮用Python寫Trap發(fā)送腳本不用推翻現(xiàn)有體系。3.5 Community與訪問安全別把數(shù)據(jù)裸奔在局域網(wǎng)里SNMP v2c的Community字符串就是密碼如果你用默認(rèn)的public等于把整棟樓的溫濕度數(shù)據(jù)裸奔在局域網(wǎng)里任何人用網(wǎng)管軟件掃一下就能看到所有點(diǎn)位。我在配置里做了三件事設(shè)置足夠復(fù)雜的只讀Community比如混合大小寫加數(shù)字的隨機(jī)串在snmpd配置里顯式限定允許訪問的網(wǎng)管平臺(tái)IP其他主機(jī)一律拒絕訪問網(wǎng)絡(luò)層再做隔離傳感器采集網(wǎng)段和辦公網(wǎng)段在交換機(jī)上做ACL控制只開放網(wǎng)管平臺(tái)到采集服務(wù)器的161端口。SNMP v3雖然是更安全的選擇用用戶名密碼加加密的方式代替明文Community但在樓宇網(wǎng)管的實(shí)際對(duì)接中我發(fā)現(xiàn)許多老平臺(tái)的v3實(shí)現(xiàn)不太穩(wěn)定配置復(fù)雜度也高。我做的是v2c為主、加上IP白名單兜底的方案既保證了兼容性又堵住了最明顯的安全漏洞。如果你所在環(huán)境對(duì)安全要求高且網(wǎng)管平臺(tái)支持v3那就用v3這里沒有一刀切的標(biāo)準(zhǔn)。4. 聯(lián)調(diào)驗(yàn)證從命令行到樓宇網(wǎng)管平臺(tái)的完整對(duì)接4.1 用snmpwalk驗(yàn)證OID與數(shù)值換算配置完snmpd后第一步當(dāng)然是用命令行工具自己驗(yàn)證。我在服務(wù)器上執(zhí)行snmpwalk指定社區(qū)字符串、目標(biāo)IP和根OID看能不能正確拉出全部溫濕度數(shù)據(jù)snmpwalk -v2c -c MySite2024 127.0.0.1 .1.3.6.1.4.1.99999輸出大約是SNMPv2-SMI::enterprises.99999.1.1.0 STRING: 三層機(jī)房A1點(diǎn)位 SNMPv2-SMI::enterprises.99999.1.2.0 INTEGER: 2350 SNMPv2-SMI::enterprises.99999.1.3.0 INTEGER: 6122350代表23.50℃612代表61.2%RH我把這個(gè)值和現(xiàn)場手持儀表的讀數(shù)比對(duì)了下差值在允許范圍內(nèi)說明Modbus讀取、單位換算、OID發(fā)布這條鏈路的數(shù)據(jù)一致性是對(duì)的。這里提醒一個(gè)容易忽略的細(xì)節(jié)驗(yàn)證時(shí)不要只看一次要連續(xù)測幾輪確認(rèn)數(shù)值是隨采集周期動(dòng)態(tài)更新的而不是snmpd緩存了一個(gè)死值。命令行驗(yàn)證通過后再測試Trap。我用snmptrap命令模擬一條越限告警發(fā)送到網(wǎng)管平臺(tái)確認(rèn)平臺(tái)的SNMP Trap接收端口能收到事件。這一步很重要因?yàn)楹芏囗?xiàng)目做完了數(shù)據(jù)輪詢才發(fā)現(xiàn)告警通道沒通等于少了一條腿。測試通過后整個(gè)SNMP對(duì)接鏈路的前半段才算真正完成。4.2 網(wǎng)管平臺(tái)導(dǎo)入MIB與監(jiān)控項(xiàng)創(chuàng)建接下來進(jìn)入網(wǎng)管平臺(tái)操作。每家平臺(tái)的操作界面不一樣但邏輯都差不多。先把自定義的MIB文件導(dǎo)入平臺(tái)平臺(tái)解析后就能在OID樹里看到我們定義的點(diǎn)位名稱、類型和單位。然后新建一個(gè)監(jiān)控主機(jī)添加監(jiān)控項(xiàng)填寫采集服務(wù)器的IP、SNMP版本、社區(qū)字符串和要監(jiān)控的OID。我建議監(jiān)控項(xiàng)建立時(shí)就把顯示格式配好比如把溫度OID的顯示格式設(shè)置成除以100顯示兩位小數(shù)這樣平臺(tái)界面上看到的就是23.50℃而不是原始整數(shù)2350。雖然MIB描述里已經(jīng)寫了單位是0.01℃但顯示格式在平臺(tái)側(cè)可以進(jìn)一步優(yōu)化。如果沒有這一步很多平臺(tái)的表格里會(huì)直接顯示2350運(yùn)維人員看到數(shù)字還要心算體驗(yàn)很差。監(jiān)控項(xiàng)建好后讓平臺(tái)拉到采集服務(wù)器的OID值確認(rèn)數(shù)據(jù)刷新周期與采集周期匹配。一般平臺(tái)默認(rèn)輪詢間隔是1分鐘或5分鐘我設(shè)的采集周期是10秒這樣平臺(tái)每次拉取拿到的都是相對(duì)實(shí)時(shí)的數(shù)據(jù)數(shù)據(jù)曲線的分辨率也有了保障。此時(shí)從網(wǎng)管平臺(tái)角度這個(gè)溫濕度點(diǎn)位就和一臺(tái)空調(diào)、一臺(tái)UPS沒有任何區(qū)別都只是SNMP OID的一個(gè)節(jié)點(diǎn)。4.3 告警閾值、回滯與聯(lián)動(dòng)擴(kuò)展溫濕度監(jiān)測的價(jià)值不止于看曲線更在于越限告警。平臺(tái)里給溫度OID配置上下閾值比如機(jī)房環(huán)境溫度上限26℃下限18℃濕度上限70%RH下限30%RH。配置的時(shí)候一定要加上回滯Hysteresis比如報(bào)警觸發(fā)溫度高于26℃,恢復(fù)溫度設(shè)為24℃。這樣當(dāng)溫度在26℃附近抖動(dòng)時(shí)不會(huì)頻繁觸發(fā)告警又解除告警把值班人員煩死?;販木唧w數(shù)值可以參考管理要求的精度上下浮動(dòng)1-2℃我在機(jī)房里用的是恢復(fù)閾值比報(bào)警閾值收斂1℃的做法實(shí)測誤報(bào)率下降明顯。除了展示與告警這套系統(tǒng)還可以做聯(lián)動(dòng)擴(kuò)展。比如當(dāng)Modbus采集到某點(diǎn)位溫度持續(xù)超過28℃時(shí)采集程序通過Modbus TCP向一臺(tái)受控空調(diào)發(fā)送指令強(qiáng)制開啟制冷。再比如當(dāng)濕度低于臨界值時(shí)通過SNMP Trap通知平臺(tái)平臺(tái)觸發(fā)加濕器啟停。由于采集層和支持層邏輯是解耦的所以我可以在采集程序里直接加寫Modbus寄存器的邏輯不必改動(dòng)SNMP那部分非常方便。5. 實(shí)戰(zhàn)排坑運(yùn)行半年遇到的典型問題與處理記錄5.1 問題實(shí)錄Modbus連接周期性掉線系統(tǒng)上線兩個(gè)月后運(yùn)維反饋某幾個(gè)點(diǎn)位的數(shù)據(jù)間斷性缺失現(xiàn)象是網(wǎng)管平臺(tái)看到數(shù)值20分鐘內(nèi)不刷新然后又有新數(shù)據(jù)。排查過程是先看采集日志發(fā)現(xiàn)這些點(diǎn)位每次都在TCP連接上拋超時(shí)異常重連后恢復(fù)。進(jìn)一步抓包發(fā)現(xiàn)傳感器一側(cè)的TCP連接被設(shè)備在空閑一段時(shí)間后主動(dòng)斷開而采集程序一直在復(fù)用舊socket自然收不到響應(yīng)。解決方法是加一個(gè)兩層防護(hù)。第一層是TCP keepalive探測打開socket的SO_KEEPALIVE選項(xiàng)讓系統(tǒng)定期發(fā)送探測包維持通道活躍第二層是采集程序?qū)用娴倪B接狀態(tài)檢查在每次發(fā)送前檢查連接對(duì)象是否可用不可用則自動(dòng)重連。這樣做了之后這類掉線問題基本消失。還有一例是某個(gè)傳感器的電源模塊老化導(dǎo)致的間歇性重啟TCP連接頻繁斷換了電源模塊后恢復(fù)。所以遇到掉線問題先檢查程序重連邏輯再檢查設(shè)備側(cè)電源和網(wǎng)絡(luò)硬件別一開始就懷疑協(xié)議寫錯(cuò)了。5.2 問題實(shí)錄寄存器讀數(shù)出現(xiàn)“負(fù)值”和亂碼聯(lián)調(diào)階段有個(gè)傳感器的濕度讀出來偶爾是65535或者-1溫度倒是正常。排查后發(fā)現(xiàn)這個(gè)傳感器有多個(gè)寄存器地址段我讀的地址在某些型號(hào)里是未啟用的保留區(qū)讀取時(shí)返回0xFFFF如果按無符號(hào)數(shù)解析就是65535按有符號(hào)解析就是-1。解決方法是重新核對(duì)寄存器映射表把讀取地址調(diào)整到正確的濕度寄存器并在程序里加了一個(gè)合法性檢查讀到0xFFFF或0x7FFF這類邊界值時(shí)視為無效數(shù)據(jù)不參與換算和上送避免網(wǎng)管平臺(tái)出現(xiàn)離譜的告警。另一個(gè)容易踩的坑是字節(jié)序。不同廠商的傳感器在32位浮點(diǎn)存儲(chǔ)時(shí)大小端順序可能不同。我一開始讀某個(gè)型號(hào)的浮點(diǎn)溫度數(shù)值總是差著十萬八千里后來把兩個(gè)16位寄存器的高低位交換才正常。代碼里如果是自己拼浮點(diǎn)寄存器記得先看一下廠家的字節(jié)序說明或者在調(diào)試階段實(shí)際比對(duì)一下寄存器原始值和設(shè)備LCD顯示值的關(guān)系。5.3 問題實(shí)錄SNMP超時(shí)、OID值不刷新有一次平臺(tái)側(cè)反饋某點(diǎn)位數(shù)值一直不變我開始以為傳感器壞了結(jié)果用Modbus工具直接讀傳感器是好的而且溫度在變。接著用命令行snmpwalk手動(dòng)查OID返回值確實(shí)刷新了但平臺(tái)拿到的卻始終是舊值。細(xì)細(xì)排查之后發(fā)現(xiàn)是平臺(tái)配置的輪詢間隔是5分鐘而采集服務(wù)器到網(wǎng)管平臺(tái)之間恰好有一臺(tái)設(shè)備的ACL策略把SNMP請(qǐng)求鏡像到了備用機(jī)導(dǎo)致平臺(tái)實(shí)際讀取的是另一臺(tái)服務(wù)器的快照。這是網(wǎng)絡(luò)層路由策略導(dǎo)致的偶發(fā)問題清除冗余策略后恢復(fù)正常。這種情況提醒我排查SNMP數(shù)據(jù)不刷新時(shí)要先確認(rèn)平臺(tái)輪詢到的是不是我們配置的那臺(tái)采集服務(wù)器再查Agent本身的OID值是否更新。還有一個(gè)常見原因是snmpd的pass腳本執(zhí)行太慢。如果腳本里有外部調(diào)用或耗時(shí)的解析邏輯snmpd等待超時(shí)后會(huì)返回空值平臺(tái)就會(huì)認(rèn)為讀取失敗并保留舊值。所以我強(qiáng)調(diào)pass腳本只做本地緩存數(shù)據(jù)的讀取采集邏輯單獨(dú)拆出去這個(gè)拆分從實(shí)戰(zhàn)看非常值。5.4 運(yùn)維期的心得與建議系統(tǒng)穩(wěn)定運(yùn)行半年后我復(fù)盤了一些值得固化為制度的東西。首先是點(diǎn)位命名規(guī)范我按照“樓棟-樓層-功能區(qū)-編號(hào)”的規(guī)則命名比如“A-03-MDF-01”這樣在網(wǎng)管平臺(tái)做故障定位時(shí)可以快速跳轉(zhuǎn)。命名這種工作瑣碎但特別重要?jiǎng)e等點(diǎn)位超過50個(gè)再回頭補(bǔ)。其次是傳感器定期校準(zhǔn)我要求現(xiàn)場每半年用標(biāo)準(zhǔn)溫濕度計(jì)比對(duì)一次偏差超標(biāo)的點(diǎn)位在平臺(tái)上設(shè)置漂移補(bǔ)償這對(duì)計(jì)量準(zhǔn)確性有要求的場景非常關(guān)鍵。還有就是要給采集服務(wù)器和傳感器網(wǎng)絡(luò)做一個(gè)總體的備份策略。采集服務(wù)器本身是一臺(tái)舊PC萬一硬盤掛了整個(gè)系統(tǒng)就瞎了。我給服務(wù)器開了定時(shí)備份把采集腳本、snmpd配置、緩存文件都納入備份范圍。傳感器網(wǎng)絡(luò)則做了物理鏈路的標(biāo)簽管理每根網(wǎng)線兩端都貼了標(biāo)簽方便后期排查。這套系統(tǒng)我做下來最深的體會(huì)是技術(shù)選型只是起點(diǎn)真正考驗(yàn)人的是把整個(gè)鏈路的數(shù)據(jù)從源頭到平臺(tái)變成可信任、可維護(hù)、可持續(xù)運(yùn)行的東西這需要很多看似瑣碎的細(xì)節(jié)積累。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
性爱AV天堂| 天天干天天操天天射| 少妇激情五月婷婷| 91a片爽| 婷婷激情小说| 五月丁香天堂网婷婷| Av在线资源| 97久久精品| 色播五月丁香综合| 激情宗合哪里能看| 91精品91久久久中77777久久玖玖九九 | 丁香五月在线播放| 强伦轩人妻一区二区电影| 欧美超碰人人| 久热re视频在线观看网站| 九九精品免费| 亚洲欧美国产高清vA在线播放| 婷婷99中文字幕| 国产69久久久欧美黑人A片| 色婷婷综合网站| 亚洲综合1024| 激情六月天婷婷| 精品国产一区二区三区四区阿崩 | 婷婷色六月| 色区久久| 大香蕉综合| 色久天| 热久久77777| 综合久久首页| 在线成人国产| 丁香九色不卡aaa| 欧美色色色色色| 九九久热| 五月天综合色| 六月色播| 色婷天天| 99人人干人人| 播播网色播播| www天天爽| 天天日日人| 人妻aV在线| 九九艹女| AV操一操| 日韩无码人妻一区二区| 成人av观看| 五月天大香焦| 九色在线观看91av| 2017人人操| 五月婷婷色白丝| 90色免费视频| 久久久免费图片视频| 久久激情综合| 青青草国产亚洲精品久久| 日本不卡中文字幕| 丁香五月av| 人人摸人人干人人做| 五月丁香婷色| 久久这里有精品视频| 婷婷久久视频| 天天色综合综合| 日本人妻伦在线中文字幕 | 婷婷五月天综合AV| 另类图片色五月| 狠狠色婷婷777| 天天草天天摸| 婷婷五月综合社区| 色综合五月天| 欧美婷婷色五月网| 人人人操| 天天色伊人| 99在线观看视频精品| 九九激情网| 超碰狠狠操| 99人人操| 狠狠人人| 综合在线色婷婷| 亚洲国产99| 欧美日韩成人在线网站| 成人无码髙潮喷水A片| 99热这里都是精品| 91 原创 在线 九色| 色五月婷婷影视| 99热国产在线| 婷婷色在线观看| 狠狠色丁香久久| 色丁香久久| 丁香五月在线人妻| 第四色26uuu| 五月丁香龟婷婷| 色五月综合| 91丨九色丨国产打屁股| 9999久久久久| 色综合色综合色综合| 六月婷婷青青青视频| 97性视频| 日韩AV大全| 97极品在线| 五月激情影院| 99久久99视频| 人妻操操色| 66色在线日韩| 色欲色欲久久宗合网| 日都一级A片| 日本三级日本三级99| 操91| 亚洲色网址| 色99网| 国产精品天天狠天天看| 激情综合网五月婷婷| 五月天堂婷婷| 99精品在线观看| 日本人妻伦在线中文字幕 | 亚洲久久激情| 婷婷六月综合基地| 五月丁香伊人网| 五月天婷婷免费视频| 久草五月| 好叼操在线观看| 大天天伊人| 婷婷丁香射射| 超碰成人在线观看| 久操人| www.xtbsty.cn.com蜜乳AV| 五月天成人在线播放丁香| 91日日日| 婷婷成人AV| 中文精品久久久久人妻不| 久久婷婷五月天懂色| 五月天色在线| 亚洲V国产V欧美V久久久久久| 大香蕉75线| 欧美婷婷五月激情| 色婷婷电影网| 丁香六月婷婷久久综合八月| 操操啪| 色欲色香,www,com| 狠狠五月激情丁香六月| 久久五月婷综合| 色欲av伊人久久大香线蕉影院| 人妻操操色| 激情五月天伊人影院| 丁香五月日韩| 色yeye色综合| 色婷婷亚洲五月天| 婷婷五月激情视频网| 噜综合| 色色色在线观看| 色婷婷香蕉| 玖玖爱资源站| 色播五月丁香| 天天曰夜夜爽| 能看的av| 久久久区区一久久久久久| 免费视频无码| 婷婷五月天影视| 五月丁香六月在线| 激情五月丁香综合蜜桃| 国内外色色色色色成人视频| 香蕉久久国产AV一区二区| 欧美日韩成人高清在线| 99ER热精品视频| 婷婷久草| 在线观看国产高清视频免费网站| 伊人丁香花综合影院| h在线看免费版在线看| 玖玖资源站国产| 亚洲色网络| 婷婷伊人网| 99热在线只有精品| 91碰在线| 噼里啪啦完整版中文在线观看 | 少妇AB又爽又紧无码网站| 狠狠肏综合网| 五月激情射| 91超碰九色| 丁香五月综合色婷婷| 影音先锋777xfplay色资源网站| 九久久婷婷| 东北婷婷五月天| 一区二区三区视频| 五月宗合激情网| 超碰色人妾| 亚洲综合五月| 婷五月丁香俺| 五月丁香综合色婷婷| 五月天电影网| 任你爽免费视频| 亚洲中文字幕AV| 欧美综合五月丁香六月婷| 五月丁香色| 久久婷婷啪啪视频| 欧美私人家庭影院| 五月激情在线| 五月天啪啪| 专区无日本视频高清8| 久久久精品色色色| 久久99最新| 久久婷婷五月综合伊人| 亚州激情网站无码| 激情丁香社区| 日韩精品99久久| 五月丁香综合| 激情AV在线| 思思精品久久艹| 欧美大道不卡| 国产特黄色精品一区二区三区精品无广告| 人妻中文在线| 色婷另类| 五月花在线观看视频| 国产成人+综合亚洲+天堂| 色婷婷呢狠禁久禁| 久久精品99国产精品日本| 亚洲日日操| 六月五月丁香五月欧美| 婷婷精品在线| 91精品人妻少妇无码影院| 午夜69成人做爰视频| 婷婷五月激情中文字幕| 天天摸色吧天天摸色吧| 激情激情激情网| 婷婷五月激情图片| 欧美激情中文字幕| 伊人九九热| 久久激丁香| 四色99久久| 五月婷婷五月天| 婷婷五月天激情综合网| 蜜乳A√| 天天五月丁香五月| 五月丁香婷婷色色| 超级碰碰91| 婷婷五月另类网站| 啪啪视频99| 五月婷婷综合激情| 欧美搡BBBBB摔BBBBB| 午夜一区| 久热这里只有精品99re| 色婷婷av在线观看| 人人草人人爱| 天天做天天爱天天爽| 色五月激情五月天| 深爱激情综合网| 久久久精品AV| 五月婷婷激情久久| 狠狠综合网| 超碰人人草| 大香蕉久热| 亚洲va在线∨a天堂va欧美va| 天天成人丁香美女AV| 中文字幕丰满乱孑伦无码专区| 91成人电影| 大香蕉娱乐| 亚洲欧美日韩另类| 婷婷五月中文字幕| 99热综合| 婷婷在线操| 亚洲五月婷婷在线| 天天操夜夜肏| 综合激情视频| 日韩人妻无码专区| 内射爽无广熟女亚洲| 99精品偷自拍| av操B网站| 就去色色五月丁香婷婷久久久| 五月停视频天堂| 99久久婷婷国产综合精品电影| 婷婷五月天桃花网| 久久综合色情网站| 六月丁香视频网站| 色99热| 丁香婷婷成人网| 丁香六月激情| 日日杆天天| 丰满人妻一区二区三区| 久草婷婷视频| 97色在线| 婷婷色五月色| www.99热这里只有精品| 色网五月婷婷| 五月丁香六月综合基地| 婷婷五月天.com| 婷婷综合网伊人| 五月丁香婷婷成人综合网| 亚洲亚洲亚洲AAAAAA| www.激情| 搡BBBB搡BBB搡五十| 婷婷综合久久综合| www.99视频| 亚洲日韩人妻操逼| 国产性爱一级| 精品爱欲五| 五月丁香婷婷婷激情爱爱| 色噜噜夜夜夜综合网| 综合五月草| 色五月首页| 大香蕉婷婷色| 亚洲人成网站999综合| 国产成人AV在线播放| 五月天日日操夜夜操| 日日日影院| 超碰在线观看9| 激情五月综合网| 综合婷| 色天天综合天天综合频道。| 丁香成人五月天| 五月丁香六月在线| 久久综合伊人77777蜜臀| 天天上天天爽| 99热最新| 海外网站专业操老外| 五月综合视频在线| 六月色播| 日韩三及成人AV片| 婷婷五月综合啪| 五月婷婷六月天| 五月丁香六月激情| 五月丁香激情综合六月涩涩爱| 激情五月丁香六月综合AVXXXX| 日本熟妇乱妇熟色A片蜜桃| 99热全是精品| 99热这里只有精品搜| 丝袜大香蕉| 99视频在线啪| 五月天激情啪啪| 婷婷五月在线观看| 99热91| 26UUU精品一区二区| 成AV人片一区二区三区久久| 亚洲AV成人片无码网站| 久久久久久久久99精品| 99热全是精品| www.天天日| 激情九月婷婷九月| 思思久久96热在精品国产,| 天天噜日日噜综合无码| ′久久99一| 思思热高清在线观看| 欧美搡BBBBB摔BBBBB| 97av在线视频| 99无码黄色视频| AV成人在线播放| 2025年最新亚洲在线欧美| 五月婷婷性爱| 婷久看人爽| 五月丁香综合激情| 亚洲人妻av| 噜噜国产| 91九色小视频| 另类图片色五月| 婷婷色在线视频| 亚亚州久久高潮| 激情五月最新网址| 婷婷五月激情五月激情| 99人妻碰碰碰久久久久视| 天天天操天天天日| 色色色色色色五月婷婷| 蜜臀99精品| 丁香九色不卡aaa| 久热精品视频| 亚洲av无码影院| 直接看的AV| 大香蕉在线观看9| 99久久久| 99综合一区| 九九热99免费视频| 青青.com| 丰满少妇乱A片无码| 六月丁香射婷婷欧美色图片| 99视频综合| 俺去啦综合网| 艹天天射| 丁香六月婷婷久久综合| 26UUU精品一区二区c〇m| 国产古装妇女野外A片| 五月婷人妻| 97很鲁在线视频| 淫荡工a| 中文成人在线| 思思热精品在线视频| 激情五月天婷婷久久久久久久久久久| 亚洲AV影片在线观看| 天天操,天天插| 91人无码久久久久久| 99免费| 六月婷婷综合久久| 精品久久99| 五月天婷婷开心| 久久玖玖99| 五月天狠狠色| 激情5月婷婷狠狠干| 国精产品一区一区三区免费视频| 五月天婷久精视频| 婷婷六月丁香综合| 久草五月婷| 99九无网码| 五月天啪啪啪| 亚洲九九99精品视频在线播放| 激情6月| 亚洲综合色色| 金桔一区二区ab地址| 丰满少妇猛烈A片免费看观看| 99视频热| 婷婷激情中文综合| 激情淫乱男女| 色玖玖| 成人丁香婷婷| 色情·com| 4399在线观看免费高清毛片| 可以直接看的av| 婷婷丁香激情| 九九AV| 久久五月婷天天干| 五月丁香啪啪| 五月婷婷开心网| 九九家庭影院| 91美女被操| 五月天丁香久久综合| 久操综合| 色综合激情| 五月天五月色婷婷综合| 色婷婷五月天成人网| 69超碰在线| aa久久| 战争与艾拉电影免费观看| 九九久久五月天综合伊人| 99原创自拍视频在线观看| av在线观看网站| 欧美亚洲婷婷五月| 丁香五月天天日| 久久婷婷婷| 国成人网| 婷婷婷婷婷婷婷婷婷婷丁香| 99久久国产宗和精品1上映| 五月婷婷色| 西瓜美女a片| 综合亚洲六月婷婷在线| 91婷色| 国产三级在线播放| 男女啪啪视频久 9| 一级AV片| 欧美日本日韩| www.夜夜操| 97操操操| 狠狠色噜噜狠狠狠狠综合| 天天综合社区| 这里只有精品免费观看网占| 人人舔天天| 天干干夜夜操| 五月婷无码| 99热福利| 激情影院内射| 色欲Av五月天| 欧美精品久久久久久视频观看| 91色在线/日韩| 五月婷婷丁香六月| 台湾无码A片一区二区| 99re在线免费视频| 超碰99成人在线| 天天综合区| 国内精品99| 九九成人电影婷婷| 丁香五月激情综合久久| Aα在线免费观看| 亚洲区1| 大香久久综合网| 99re资源在线视频导航| 九月婷婷综合在线| 五月婷婷色啪| 九九av| 韩日在线熟女| 五月在在观看| 亚洲色情网站| www.五月婷婷.com| 色播五月| 香蕉人妻AV久久久久天天| 国产毛多水多女人A片| 欧美交换配乱吟粗大25P| 日韩精品AV一区二区三区| 激情六月天| 99久久人妻精品无码二区| 日韩综合成人| 久草丁香婷婷五月天婷| 精品久久99| 成人天天爽| 天天拍天天做视频| se99视频| 久操人妻| 国产精品91抖高| 26uuu色五月| 婷婷五月天性爱视频| 五月婷婷六月丁香首页| 激情五月深爱五月| 九九视频这里有精品| 日本va欧美va欧美va| 激情网五月天| 色婷婷六月| 99热在线极品极品| 欧美影院婷婷| 青青福利网| 天天人人人人人人人人人人人| 国产激情综合五月久久| 成人婷婷色综合| 2013AV天堂| 久久色五月天| 五月天激情小说欧美激情| 99ri国产| 五月婷狠狠| 99热碰碰热| 婷婷丁香五月激情图片| 久久98热re| 国产精品99久久久久久久女警| 免费观看高清无码| 婷五月天天| 天天爽天天摸| 日本久久99| 九九热99在线视频| 丁香六月 人妻| 99精品免费| 精品一二三区久久AAA片| 98色丁香五月婷婷综合网| 99视频色在线观看| 99视频只有精品| 99激情视频| 九九综合网色全集 | 天天色天天射天天日| 六月婷婷七月丁香| 亚洲五月婷婷| 天天综合 99久久婷婷| 婷婷五月 丁香六月| 99综合网| 欧亚中文A V| 亚色网站小视频| 秋霞A V毛片| 香港九九六区八区99| 天天情天天狠天天透| 婷婷五月av| 国产乱人偷精品人妻A片| 色碰干| 五月天婷婷婷| 春色激情| 五月丁婷婷| 九九视频在线| 99在线热| 91热在线| 婷婷午夜综合| 久re热视频| 91精品91久久久久77777| 五月丁香久久| www.丁香五月| 婷婷无码视频| 4399亚洲视频| 五月丁香花视频| 五月花在线观看视频| 丁香综合| 亚洲免费99| 日日影院 | 99色热| 欧美大香蕉视频| 激情五月天在线视频| 五月天天丁香婷婷| 日本不卡五月婷婷丁香| 97一区二区| 夜夜骑日日夜夜| 麻豆AV一区二区三区| 丁香五月天AV在线| 啪啪啪大香蕉| 这里只有精品,日韩视频| 思思热在线观看| 桃色五月婷婷| 五月婷婷激情网| 久久久久久久综合狠狠综合| 九九色热| 亚洲精品小视频| se色婷婷视频| 狠狠做深爱婷婷久久综合一区| 97超碰99热99| 99热这里都是精品| 国产精品人妻欲求不满| 五月婷婷六月丁香综合在线| 天天爽—爽| 亚洲妇女熟BBW| 中文无码精品一区二区三区| 99久久综合狠狠综合久久| 天天干天天射综合网| 99ri6在线视频| 色婷婷六月丁香综合欲精品| 91精品又长又大又粗又爽又猛| 亚洲婷婷欧美婷婷| 激情五月天丁香| 69精品人人人人| 丁香五月婷婷激情视频播放| 97婷婷丁香五月综合| 六九色综合婷婷五月天| 色婷婷丁香五月| 亚洲色综合| 三男玩一女三A片| 欧美性爱5月天天天看| 久久日本wwww色| 另类激情综合| 很很操96| 99免费青青蜜臀| 色综合综合色| 色青青视频| 91精品丝袜久久久久久久久粉嫩| 色吧综合网| 九九草热在线观看| 狠狠色五月| 五月开心网| 五月天涩涩| 婷婷五月在线免费| 午夜丁香久久久久久| 影音先锋四区| 久久九九99字幕| 一本色道久久88加勒比—| 中文字幕 中文字幕明步| 狠狠色无码| 在线观看欧美| 99热综合在线观看| 色墦五月丁香| 丁香六月五月天| 日本激情ⅩXX免费视频| 久久的爱大香蕉| 开心激情站| 色五月婷婷九月| 狠狠干2007| www.com亚洲网站在线免费| 99热在线观看| A片一曲| 这里只有精品在线免费视频| 中文网AV| jiZZdr| 六月婷婷在线视频| 另类婷婷丁香| 久/久精品99看9| 久久五月天丁香| 夜夜操狠狠操| 中文字幕在线免费观看视频| 夜夜夜夜撸夜夜操| 丁香五月天婷婷中文| 国产操B视频| 九九99热精品| 蜜臀久久99精品久久久久久酒店| 亚洲午夜AV| 亚洲最大视频| 五月婷婷人妻| 五月婷婷色情| 五月天色婷婷小说| 五月色婷婷综合色| 丁香九月激情| 91在线日| 怡春院久操| 婷婷基地成人五月天| 亚州在线中文字幕| 国产亚洲精品久久久久久郑州| 丁香婷婷五月综合色情| 91se在线观看| 99热手机在线精品| 亚洲色A| www.婷婷,com| 26UUU在线观看| 九九99视频精品| 日日干五月天婷婷| 怕怕視頻| 做爱夜夜干天天操| 立川无码av| 国产日产成人亚洲欧美国产VA| 91ncm视频| 色情婷婷。| 99色日本| 久久婷婷亚洲| 五月丁香五月综合欧美| 色综合五月天| 专区无日本视频高清8| 丁香五月天堂网| 五月天成人综合| 丁香激情五月天| 色99视频| 成人做爰黄A片免费看直播室男男| 丁香五月色情| 久久AV无码精品人妻系列试探| 精品国产乱码久久久久夜深人妻| 色色欧美色色| 99热欲| 色婷婷五月成人网| 九九99精品视频| 九月丁香| 亚洲天堂AAA| 欧美成人精品一区二区| 色婷婷五月天激情在线观看| 99爽视频| 婷婷视频网| 黑人巨粗进入警花疼哭A片| 琪琪色网在线| 色综合狠狠色| 天天色综合天天| 视色网在线播放| 99热这里只有精品 搜| 久久免片| 五月婷婷成人| 五月丁香婷婷欧美色图视频五月丁香777电影 | 色婷婷人人| 99色热视频| 亚洲无码成人网| 色婷婷丁香五月天激情综合网| www,99热| 99re思思热久久| 男女啪啪做爰高潮无遮挡 | 婷婷久热| 99热只有这里才是精品| 色综合久久99色| 怕怕av| 99综合激情久久精品久久| 色色色色色色色色色色色色色97| 天天日天天干天天操| 91碰免费视频| 成人网站在线观看视频| 三级大香蕉网| 激情久久久久| 伊人喵咪a V| 色伊人婷婷| 亚洲久久婷婷| 久久久网站| 丁香亭亭激情四射| 九九热这里只有精品7| 久噜久噜| 丁香五月欧美| 五月天社区婷婷丁香社区| 天天摸天天爽| 变态另类9| 97啪在线观看视频| 99热最新地址在线| 国产精品色色| 五月婷婷色色爱| 五月丁香六月婷综合成人综合| 激情五月婷婷色播网| 丁香六月啪啪| 91天堂网综合| 婷婷五月天激情五月天网站| 99热在线播放| 久久WW| 视色综合| 亚洲视频在线观看| 亚洲精品国产成人AV在线| 婷婷五月天在线观看免费 | 亚洲va日| 亚洲av网站| 婷婷影院欧美| 美女美女美女三级色天天天天天| 丁香六月激情综合| AV在线免费播放| 日日夜夜狠狠操| 丁香五月激情图片婷婷| 五月婷婷爽爽爽| 精品久久99| 97色色综合| 五月色婷婷夜色| 久久婷婷五月天激情| 天天日,天天干,天天操| 棕合影院色色| 色九九九九| 色yeye色综合| www.久久av.com| 久久加勤综合| 婷婷综合在线观看视频| 国产精产国品一二三在观看| 琪琪秋霞| 色色五月婷婷| xx色综合| 丰满少妇猛烈A片免费看观看 | 九九这里是免费的视频5| 婷婷伊人网| 黄色短视频在线观看| 天天色综合综合| 久久婷婷丁香花综合网| 丁香五月天BBw| 热思思九九| 五月婷婷久久内射| 婷婷五月天97干| 五月婷婷免费视频| 操日本99| 婷婷五月18永久免费视频| 狠狠狠狠狠狠草| 婷婷精品性性性性性性性| 精品综合网在线| 九九免费精品| 一起肏在线视频| 大香蕉久久婷婷| 99爽视频| 99亚洲精品| 婷婷免费成人视频| 成人.在线日韩| 丁香六月亚洲综合| 久久aaaaa| 91久久九久久九久久九久久九久久| 激情伊人网| 狠狠香蕉| 丁香婷婷免费| 久久丁香综合精品综合| www.久热| 欧美在线视频99| 九九热免费视频| 日日夜夜噜噜爽爽| www五月天com| 五月丁香啪啪综合| 伊人久久婷婷五月天激情四射| 波多野结衣不卡AV| 99精品在线| 成人在线日韩| 俺也去五月婷婷丁| 五月婷婷开心网| 97色婷| 日韩国产在线精品| 五月天婷婷视频小说| 91天天操天天干天天射| 大地9中文在线观看免费高清| 日本成人噜噜| 色综合伊人网| 中出内射的人妻视频| 99操免费视频| 中字幕视频在线永久在线观看免费| 操一操插一插| 草一草avb| 成人αV视频免费观看| 婷婷六月天激情| 天天噜天天插| 五月深情久久| 免费黄色视频网址| 久播影院免费观看电视剧大全最新网| 久久婷狠狠色| www.91五月| 国产免费AV在线| 99精品无码网站| 久久99操| 色吧网综合| 久久免费精彩视频| 亚洲无码色色| 五月婷婷丁香伦理网| 综合网啪| 不卡在线视频| 色香欲综合| 婷婷六月啪啪| 色五月天天| AV在线免费播放| 亚洲成人在线电影网站| 天天综合网站| 久久精品系列| 影音先锋 婷婷| 久久9视频| 五月亭久久无码视频| 久久99国产综合精品免费 | 欧洲亚洲精品| 天天舔天天插天天干| 色色色欧美| 69精品人人人人人人| 久久综合九色综合97婷婷| 99re久久| 五月天激情国产综合婷婷婷| www.狠狠干com| 婷婷六月丁香在线| 色色五月天网站| 在线sebiav精品视频| 青草视频在线观看视频 | 九月婷婷激情| 成人 九九九九| 超pen个人视频97| 精品婷婷五月天| 婷婷在线综合| 色婷婷精品视频| 人妻在线观看视频| 久草婷婷网| 久热免费视频| 99久久久久| 九九热只有精品| 99操免费视频| 五月丁香色综合| 久色婷婷200| 六月丁香久久| 日韩色色视频www| AV国产有码| 五月丁香综合精品| 嫩草综合网| 色综合天天网| 激情六月五月婷婷综合网| 亭亭五月丁香综合欧美| 激情五月天色色| 久久新地址| 人人操插| 久热伊人| 就是色婷婷五月亚洲色| 91人妻色色网| 婷婷在线观看五月天在线视频| 日韩成人免费电影| 色婷婷亚洲婷婷| 超碰操网| 丁香五月花婷婷开心| 婷婷五月丁香基地在线视频官网| 久久99热这里只有精品首| 东京热伊人| jiujiu热在线视频| 丁香婷婷精品视频| 丁香五月天天日| 精品九九视频| 99性爱视频网站| 天天狠狠夜夜狠狠2023| 五月婷婷亚洲色视频| 婷婷五月天情色| 亚洲精品影视| 超碰人人草| 日日操夜夜擼| 婷婷五月丁香四射| 老妇操B| 99网址在线看| 色五月婷色彩免播放器| 插插干干干色| 久久久久思思热| 五月丁香婷婷爱| 五月丁香婷婷成人网| 成人精品在线观看| 五月婷婷丁香日韩在线| 免费操超碰| 婷婷色色网| 亚洲亚洲人成综合网络| 人妻在线观看视频| 九色七七| 91艹人| 亚洲五月色| 网色99| 99ER热精品视频| 九一牛视频探花| 日本久久婷| 狠狠色丁香婷婷基地| 五月天综合婷婷| 亚洲av综合网| 97干干干丁香| 综合狠狠干| 日韩一66精品| 久狠狠狠| 五月天色五月| 日本人妻操| 九九久久精品| 五月天婷婷中文字幕在线播放| 黄网免费观看| 八戒青柠影视剧在线观看| 欧美激情 日韩无码 婷婷 五月天| 久久东京热婷婷五月| 五月天伊人日日噜影片AV| 五月丁香亭亭| 亚洲欧美在线观看| 国产激情av| 99热精品综合| 欧美国产一区二区三区| 五月婷婷狠狠干| 九九热免费| 六月丁香网| 天天爱天天操| 欧美成人AAA片一区国产精品| 99在线视频喷水| 俺也去在线久久精品23欧美综合视频网站,丰满人妻一区二区三区在线视频53,丰满 | 五月婷婷黄| 美女要搞搞天天搞搞搞网站| 日本天堂免费99| 日本操B视频在线观看| 丁香五月天.com| 第四色婷婷五月| 丁香五月婷婷啪啪| 97色碰碰公开视频| oumeisesewang| 九九久久五月天| 99热在线播放精品| 五月亚洲激情| 精品久久99| 婷婷五月综合色中文字幕| 开心四月婷婷在线色播播| 99热这里都是精品| 五月天狠狠| 中文字幕无码人妻少妇免费视频| AV在线资源| 丁香五月天之婷婷影院| 香蕉久日夜| 婷婷久久视频| 深爱激情综合| 丁香五月综合婷婷| 天天射影院| 亚洲av成人一区二区电影在线| 秋霞午夜理论| 五月婷婷片| 性色婷婷| av在线免费网站 | 日本激情ⅩXX免费视频| 黄色五月婷婷| 99精品人人| 99热这里有精品| 久久九九99.www| 欧美va亚洲va在线播放| 无遮挡国产高潮视频免费观看| 噜噜噜噜婷婷五月天| 丁香花色色网| 伊人网大香| 91九色无码日韩| 日韩欧美一道四区中文字幕| 天天搞天天爽| 老师把我爽高潮了免费A片| 丁香五月五月婷婷五月天激情四射| 96自拍视频九色在线观看| 开心亚洲久久开心| 色婷婷激情| 久久婷出差欧美色两性综合网| 99精品视频网| 都市激情蜜桃婷婷五月天| 99热官网| 超黄亚洲瑟瑟网站| 欧美电影在线播放| 夜夜噜夜夜奇| 五月美女婷婷风骚| 五月婷婷激情综合拍| 第四色色色色色丁香五月天| 五月天影院| 激情丁香久久| 五月天操逼网| 五月婷婷基地| 丁香激情五月| 色婷婷九月综合| 亚洲午夜国产成人电影VA国产欧…| 色婷婷五月天在线| 成人视频免费观看高清完整版在线观看| 丁香婷婷激情网站| 免费AV在线网址| 色婷婷六月天| 色婷婷六月性| 国产午夜精品一区二区三区四区| 婷婷五月免费在线| 六月婷婷操逼| 日本色图综合| 激情小说五月丁香在线视频观看视频| 欧美成人精品A片免费一区99| 婷婷狠狠五月综合| 五月天婷婷色综合| 日本高清久| 热九九精品| 色五月婷婷婷婷| 五月丁香最新| 中文字幕黄色片| 婷婷九月激情网| 五月天婷婷Av| 99精品国产热久久91色欲| 99高级会所久久| 99九九99九九九视频精品| 91色色色18| va中文资源在线观看| 影音先锋91视频| 色婷| 99色丁香婷婷综合网| 中文字幕高清av| 欧美99热| 天天干天天色天天干| 久久在线92| 欧美性色A片免费免费观看的 | 日日操人人操| 99在线视频精品| 丁香五月花| www.激情| 久久五月天黄色五月天色网址| 伊人久热91| 五月丁香| 久久五月天综合| 梁铮版《蜘蛛女侠》在线| 一区二区乱视频码| 五月天精品| 99精品大片| 无码一区二区日韩| 91操在线观看| 伊人激情| 夜夜资源站| 五月天婷婷成人资源站| 玖玖无码中文| 人妻免费网站| 日本久久天堂| 五月天激情婷婷| 色综合久久88色综合中文字幕| 色99在线观看| 欧美五月婷婷综合| 九九色婷婷| 欧美性爱中文字幕| 五月婷婷六月奇米网丁香| 色婷婷av在线观看| 五月婷婷黄色毛片| 日本乱子人伦在线视频| 99热最新| 99视频久久| 丁香五月天婷婷中文| 99热福利| 国产成人AV在线播放| 婷婷在线日韩综合| 色九九综合| 色爱综合网| 欧美色色色色色| 一级A片天天操夜夜操| 99热这里只有99| 激情婷婷丁香五月天| 亚洲AV永久无码影院黑人| 久久人人做人人妻人人玩精品va| 五月天另类小说| 久久久久激情网| 五月天伊人综合| 欧洲综合色| www.伊人天堂偷偷婷婷| 四月婷婷五月色综合| 丁香五月激情棕合| 丁香五月婷婷99| 国产精品A片在线| 色色色五月天婷婷| 婷婷丁香社区| 色激情五月天| 狠狠色综合网| 五月天婷婷丁香| 久久久激情| 色99视频| 日本精品99| 狠狠色狠狠| 日本高清久| www.yw色| 色婷婷综合亚洲| www.9797国产| 99国产精品久久久久久久久久久| 五月婷亚洲精品| 五月天色社区| 五月天综合激情网| 婷婷亚洲欧美丁香五月| 99热无码| 五月婷婷丁香网| 国产性爱亚洲是图| 丁香五月婷婷影院| 色五月激情五月| 丁香五月六月婷婷综合| 99无码| 91丨九色丨熟女| 五月丁香婷婷基地| 五月天社区| 欧美激情综合色综合啪啪五月| 久久婷婷综合五月天| 99热国产免费| 久久五月视频| 婷婷五月天精品| 中文字幕在线免费观看视频| YJLZZJLZZ亚洲乱熟无码| 97久久人人| 色婷婷婷婷| 五月天综合网| 五月天开心色色网| 国产三级在线播放| 97色图片中文字幕视频在线观看 | 涩涩涩婷婷| 色狠狠综合| 五月丁香六月激情视频| 99色在线观看视频| 国产激情综合五月久久| 伊人久久艹| 亚洲激情四谢| 婷婷丁香先锋资源网站| 成人丁香色| 五月丁香六月激情综合网| 米奇激情婷婷| 欧州色色| 日韩一级片| 欧美成人AAA片一区国产精品 | WWW99热| 狠狠五月激情在线| 婷婷五月天亚洲精品| 丁香五月天激情免费在线观看AV777| 丁香婷婷九月| 日本三级日本三级99| 江苏少妇性BBB搡BBB爽爽爽| 九月大香蕉| 婷婷丁香五月天综合AV| www.com操| 丁香五月伊人| 婷婷五月在线视频| 五月婷婷香蕉| 99激情网| 九九久久这里只有精品XB| 婷婷丁香五月网| 狠狠操天天干| 色综合网页| 精品久热| 五月婷婷丁香色播网| 大香蕉久艹| 婷婷丁香综合网| 婷婷五月综合网| 极品人妻videosss人妻| 99热丁香| 五月色情| 五月婷婷六月天| 五月婷婷色吧!| 玖玖综合色| 亚韩精品视频1区| 在线播放中文字幕| 九九爱激情| 激情九月婷婷| 第五婷婷伊人丁香| 国产欧美日韩一区二区三区| 99热天堂| 伊人久久大香线蕉精品| 国产综合色婷婷精品久久| 久热精品视频| 色色色网站| 五月天久久www| 开心五月天激情网站| 97av在线视频| 91丨九色|PRNY熟妇| 六月婷色六月| 开心深爱激情网| 光棍影院日韩精品| 精品99只有。| 久99热| 九九狠狠干| 99热免| 亚洲国产精品VA在线看黑人| 亚洲av免费在线| 久久99网| 影音先锋男人站,影音先锋男人色资源网,影音先锋AV最新资源站,影音先锋AV资源 | 丁香伊人五月色婷婷五十路| 天天草天天舔| 九九黄色网| 超碰爱爱爱| 日本熟女内射| 日本欧美成人片AAAA | 色色五月天婷婷丁香| 99热在线观看成人| 色。 婷婷婷| 操一操干一干| www.婷婷五月天| www.激情五月| 日本丰满久久| 99热精品9| 国产成人精品一区二三区熟女在线| AV九九| 99精品自拍视频| 五月丁香婷草| 色色色色热| 色丁香五月婷婷综合久久| 亚洲激情五月丁香久久久久| 亚洲精品字幕在线观看| 亚洲综人色综网| 91丨九色丨国产打屁股| 五月丁香六月综合基地| 丁香五月偷拍| 最新日韩久热免费视频看看| 精品A√| Caoub青青超碰 | 日本熟妇乱妇熟色A片蜜桃| 五月婷婷六月丁香激情深爱| 婷婷久草| 色亚洲无码| 天天天干夜夜夜操| 开心婷婷中文字慕| 丁香六月在线| 色婷婷丁香网| 丁香六月婷婷| 操人妻90p| 51精品国自产在线| 六月婷婷日| 婷婷六月激情综合| 激情五月丁香综合网站| 久热在线观看视频9| 人人摸人人| 婷婷久久丁香五月|