今天記錄一下 librenms 中 weathermap的安裝
官方說明文件如下
https://docs.librenms.org/Extensions/Weathermap/
安裝完後建立圖形的第一個步驟記得要先到 Map Properties
設定
Output Image Filename
Output HTML Filename
否則會看不到網頁及圖形
今天記錄一下 librenms 中 weathermap的安裝
官方說明文件如下
https://docs.librenms.org/Extensions/Weathermap/
安裝完後建立圖形的第一個步驟記得要先到 Map Properties
設定
Output Image Filename
Output HTML Filename
否則會看不到網頁及圖形
當要在cacti 大量新加設備時
網頁介面操作會花費大量的時間
以下就記錄如何在文字介面下新增設備
要調整graph tree時 再到網頁介面操作
以下新增以網路設備為例
先進到安裝路徑
cd /var/lib/cacti/cli
接下來列出可以使用的 host-templates
php -q add_device.php --list-host-templates
Valid Device Templates: (id, name)
0 None
1 Cacti Stats
2 Cisco Router
3 Generic SNMP Device
4 Local Linux Machine
5 Net-SNMP Device
6 Windows Device
利用下列指令加入 device
php -q add_device.php --avail=snmp --description="192.168.101.254" --ip="192.168.101.254" --template=3 --community="public"
加入完成後列出已加入的 host 及其 id
php -q add_graphs.php --list-hosts
Known Devices: (id, hostname, template, description)
1 localhost 4 Local Linux Machine
4 10.10.254.254 3 10.10.254.254
5 10.0.0.1 3 10.0.0.1
7 192.168.101.254 3 192.168.101.254
列出可以使用的 graph-templates (新版多很多templates)
php -q add_graphs.php --list-graph-templates
Known Graph Templates: (id, name)
1 Cacti Stats - Devices
2 Cacti Stats - Main Poller DS/RRD
3 Cacti Stats - Boost Updates
4 Cacti Stats - Total Poller Items
5 Cacti Stats - Recache (Legacy)
6 Cacti Stats - Processes (Legacy)
7 Cacti Stats - Boost Memory
8 Cacti Stats - User Logins
9 Cacti Stats - User Sessions
10 Cacti Stats - User Types
11 Cacti Stats - Boost Runtime
12 Cacti Stats - Main Poller Runtime
13 Cacti Stats - Export Graphs (Legacy)
14 Cacti Stats - Export Duration (Legacy)
15 Cacti Stats - Syslog Activity
16 Cacti Stats - Syslog Runtime
17 Cacti Stats - Syslog Alerts/Reports
18 Cacti Stats - Thold Runtime
19 Cacti Stats - Boost Average Row Size
20 Cacti Stats - Boost Records
21 Cacti Stats - Boost Table Size
22 Cacti Stats - Boost Timing Detail
23 Cacti Stats - Collector Runtime
24 Cacti Stats - Collector Items
25 Cacti Stats - Collector Settings
26 Cacti Stats - Collector Recache Stats
27 Cacti Stats - WebSeer Timing
28 Cacti Stats - WebSeer Download Size
29 Cacti Stats - WebSeer Download Speed
30 Cacti Stats - WebSeer Status
31 Cacti Stats - Export Graphs
32 Cacti Stats - Export Duration
33 Cisco - CPU Usage
34 Device - Polling Time
35 Device - Uptime
36 Interface - Traffic (bits/sec)
37 Interface - Errors/Discards
38 Interface - Unicast Packets
39 Interface - Non-Unicast Packets
40 Interface - Traffic (bytes/sec)
41 Interface - Traffic (bits/sec, 95th)
42 Interface - Traffic (bits/sec, BW)
43 Interface - Traffic (bytes/sec, BW)
44 Interface - Multicast Packets
45 Interface - Broadcast Packets
46 Unix - Ping Latency
47 SNMP - Generic OID Template
48 Unix - Processes
49 Unix - Load Average
50 Unix - Logged in Users
51 Linux - Memory Usage
52 Unix - Available Disk Space
53 Net-SNMP - Load Average
54 Net-SNMP - Memory Usage
55 Host MIB - Logged in Users
56 Host MIB - Processes
57 Net-SNMP - CPU Utilization
58 Net-SNMP - Interrupts
59 Net-SNMP - Context Switches
60 Net-SNMP - Combined SCSI Disk I/O
61 Net-SNMP - Combined SCSI Disk Bytes
62 Net-SNMP - Available Disk Space
63 Host MIB - Available Disk Space
64 Host MIB - CPU Utilization
65 Net-SNMP - Device I/O - Bytes Read/Written
66 Net-SNMP - Device I/O - Load Averages
67 Net-SNMP - Device I/O - Reads/Writes
=================================================================
列出可以使用的 snmp-queries
php -q add_graphs.php --host-id=2 --list-snmp-queries
Known SNMP Queries: (id, name)
1 Cacti Stats - Data Collector Stats
2 Cacti Stats - WebSeer Service Checks
3 Cacti Stats - Graph Exports
4 SNMP - Interface Statistics
5 Unix - Get Mounted Partitions
6 Net-SNMP - Get Monitored Partitions
7 SNMP - Get Mounted Partitions
8 SNMP - Get Processor Information
9 Net-SNMP - Get Device I/O
===============================================================
列出snmp queries 可以使用的 query-types
php -q add_graphs.php --snmp-query-id=4 --list-query-types
Known SNMP Query Types: (id, name)
11 In/Out (Errors/Discards)
12 In/Out (Non-Unicast)
13 In/Out (Unicast)
14 In/Out Bytes (64-bit)
15 In/Out Bits
16 In/Out Bits (64-bit)
17 In/Out Bytes
18 In/Out Bits (95th)
19 In/Out Bits (BW)
20 In/Out Bytes (BW)
21 In/Out Bits (64-bit, 95th)
22 In/Out Bits (64-bit, BW)
23 In/Out Bytes (64-bit, BW)
24 In/Out (Broadcasts)
25 In/Out (Multicasts)
===============================================================
利用以上所得的資訊建立圖形
php add_graphs.php --host-id=7 --graph-type=ds --graph-template-id=36 --snmp-query-id=4 --snmp-query-type-id=16 --snmp-field=ifOperStatus --snmp-value=Up
php add_graphs.php --host-id=7 --graph-type=ds --graph-template-id=36 --snmp-query-id=4 --snmp-query-type-id=16 --snmp-field=ifOperStatus --snmp-value=Down
cacti 轉換到 librenms 的過程還有一個問題就是cacti可以自己寫shell 餵值來畫圖
目前還沒看到librenms有支援
所以想到應該可以把shell 拿到的值轉成snmp丟出來
查了一下文件
總共有三種方式可以做
pass
exec
extend
在snmpd.conf裡有說明及範例
但目前 exec 試不出來
extend 看來最方便使用
在/etc/snmp/snmpd.conf 最後加上
extend script1 /tmp/test
test的內容如下
#!/bin/sh
echo "aaa"
echo "bbb"
重啟 snmpd
systemctl restart snmpd
接下來使用 snmpwalk snmpwalk 捉值就可以了
snmpwalk -v2c -c public localhost 'NET-SNMP-EXTEND-MIB::nsExtendOutLine."script1".1'
得到
NET-SNMP-EXTEND-MIB::nsExtendOutLine."script1".1 = STRING: aaa
snmpwalk -v2c -c public localhost 'NET-SNMP-EXTEND-MIB::nsExtendOutLine."script1".1'
NET-SNMP-EXTEND-MIB::nsExtendOutLine."script1".1 = STRING: bbb
最後產出 OID
snmptranslate -On 'NET-SNMP-EXTEND-MIB::nsExtendOutLine."script1".1'
得到
.1.3.6.1.4.1.8072.1.3.2.4.1.2.7.115.99.114.105.112.116.49.1
延續之前的問題
目前打算把所有的設備流量全部移轉到librenms
其實之前就一直有這個打算
但一直沒做
原因是librenms如果要使用自訂的oid畫圖
支援程度不高而且很麻煩
現在好像有看到custom oid的功能
不過還沒試
然後cacti就只留非標準snmp畫出來的圖
再來另一個問題是 weathermap
因為librenms必須使用到 php 7的版本
可是wearhermap目前在php 7 上還是不支援
所以做法是在原來的cacti上把librenms的rrd 捉過來使用
但是
本來以為捉過來就可以直接使用
結果
weathermap weathermap 畫圖時預設是捉
traffic_in 和 traffic_out 這二個DS
cacti產生的rrd file 是這二個沒錯
但librenms產生的並不是
librenms rrd file的DS如下
INOCTETS OUTOCTETS INERRORS OUTERRORS
INUCASTPKTS OUTUCASTPKTS INNUCASTPKTS OUTNUCASTPKTS I
NDISCARDS OUTDISCARDS INUNKNOWNPROTOS INBROADCASTPKTS OUTBROADCASTPKTS
INMULTICASTPKTS OUTMULTICASTPKTS
所以要使用時必須指定DS
範例如下
TARGET /var/www/html/weathermap/librenms_rrd/10.0.0.1/port-id456.rrd:INOCTETS:OUTOCTETS
接下來的另一個問題是 weather weather 預設只會往前找 800 秒 rrd 的記錄時間
可是有可能會找不到值 而沒辦法畫圖
這個問題在cacti上沒碰過
可是使用librenms 的 rrd rrd 確實有發生讀不到的問題
所以必須在 weathermap的config 加上以下參數
SET rrd_period 3000
https://network-weathermap.com/manual/0.97/pages/targets.html
/etc/yum.repos.d/mariadb.repo
內容如下
[mariadb] name = MariaDB baseurl = http://yum.mariadb.org/10.4/centos7-amd64 gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB gpgcheck=1
改好後直接 yum -y update
mariadb就會直接升了
再來要 mv /etc/my.cnf /etc/my.cnf_old 不然db會起不來
接下來照文件改
Add variables in the [mysqld] section. collation-server = utf8mb4_unicode_ci character-set-server=utf8mb4 max_heap_table_size = 64M tmp_table_size = 64M join_buffer_size = 64M innodb_file_format = Barracuda innodb_large_prefix = 1 innodb_flush_log_at_timeout = 3 innodb_buffer_pool_size = 1GB innodb_buffer_pool_instances = 10 # Based on what type for storage you use. The below values are for SSD drives. # Change it if Cacti reports issues during the installation innodb_read_io_threads = 32 innodb_write_io_threads = 16 innodb_io_capacity = 5000 innodb_io_capacity_max = 10000
db重啟就好了
再把這個補上去
ALTER TABLE host_snmp_cache MODIFY COLUMN snmp_index VARCHAR(255) NOT NULL default ""
https://www.itzgeek.com/how-tos/linux/centos-how-tos/monitor-network-using-cacti-with-centos-7-rhel-7.html







