背景:問題如上標題,H3C所有交換機配置的model都是comware
解決方案:
1、找到compare.rb
[root@oxidized model]# pwd
/usr/local/lib/ruby/gems/3.1.0/gems/oxidized-0.29.1/lib/oxidized/model
[root@oxidized model]# ll comware.rb
-rw-r--r-- 1 root root 2431 Mar 7 09:05 comware.rb
2、修改配置文件中的prompt
[root@oxidized model]# vim comware.rb #第七行
prompt /^([<\[]\S+[>\]])|(\[\S+-\S+\])$/
保存退出
3、重啟oxidized并查看日志
[root@oxidized model]# systemctl restart oxidized
[root@oxidized model]# tail -f /root/.config/oxidized/logs/oxidized.log
rb文件中的prompt就是要匹配交換機的名字的,所以注意你的交換機的命令,如果是批量監控收集配置文件信息,就要注意交換機的統一格式命名,以下是comware類型的prompt介紹
# 定義 Comware 模型
class Comware < Oxidized::Model# 設置命令行提示符的正則表達式prompt /^([<\[]\S+[>\]])|(\[\S+-\S+\])$/# 其他配置...
end########
上述正則表達式 ^([<\[]\S+[>\]])|(\[\S+-\S+\])$ 的含義如下:
^:表示字符串的開始。
([<\[]\S+[>\]]):匹配以 < 或 [ 開頭,中間是一個或多個非空白字符,然后以 > 或 ] 結尾的字符串,用于匹配用戶視圖和系統視圖的提示符。
|:表示或的關系。
(\[\S+-\S+\]):匹配以 [ 開頭,中間是一個或多個非空白字符,接著是 -,再接著是一個或多個非空白字符,最后以 ] 結尾的字符串,用于匹配接口視圖的提示符。
$:表示字符串的結束。#######
更精確的配置方式
如果你明確知道交換機的設備名,也可以使用更精確的正則表達式。例如,設備名為 H3C 時:
class Comware < Oxidized::Modelprompt /^(<H3C>)|(\[H3C\])|(\[H3C-\S+\])$/# 其他配置...
end####################
以下是一個完整的 comware.rb 文件示例,包含了 prompt 配置以及一些基本的命令設置:
class Comware < Oxidized::Model# 設置命令行提示符的正則表達式prompt /^([<\[]\S+[>\]])|(\[\S+-\S+\])$/# 進入配置模式的命令cmd :enter_config do"system-view"end# 退出配置模式的命令cmd :leave_config do"return"end# 保存配置的命令cmd :save do"save force"end# 顯示當前配置的命令cmd :show do"display current-configuration"end
end
配置收集正常了~!