LibreNMS

[librenms]各種的api使用

librenms有提供api的方式可以去取得設備的資訊出來給別的系統使用

首先必須要先取得一個api的token,操作步驟如下圖

當你create api access token後就可以拿到一個token hash這時候就可以來打api了

librenms的api是透過http get的方式去取得你要的資料,但是送過去的get需要有header

X-Auth-Token

curl -H 'X-Auth-Token: YOURAPITOKENHERE' https://librenms.org/api/v0

你可以透過postman等軟體來測試

取得api列表/api/v0

{
    "ack_alert": "http://192.168.2.248/api/v0/alerts/{id}",
    "add_components": "http://192.168.2.248/api/v0/devices/{hostname}/components/{type}",
    "add_device": "http://192.168.2.248/api/v0/devices",
    "add_device_group": "http://192.168.2.248/api/v0/devicegroups",
    "add_location": "http://192.168.2.248/api/v0/locations",
    "add_parents_to_host": "http://192.168.2.248/api/v0/devices/{id}/parents",
    "add_port_group": "http://192.168.2.248/api/v0/port_groups",
    "add_rule": "http://192.168.2.248/api/v0/rules",

    下面還有很多....
}

獲取設備的可用圖表列表(但是不包括port)

路線:/api/v0/devices/:hostname/graphs

  • 主機名可以是設備主機名或 id

上面是官網的敘述 這邊的設備主機名其實就是你那台設備的ip

id的話你在librenms點到該設備的頁面時,你會看到妳的網址會像是http://192.168.1.248/device/4

這樣的話,你這台設備的id就會是4

取得設備相關資訊

路線:/api/v0/devices/:hostname/graphs

主機名可以是設備主機名或 id

http://192.168.2.248/api/v0/devices/7

獲取特定設備的端口列表。

路線:/api/v0/devices/:hostname/ports

  • 主機名可以是設備主機名或 id

獲取有關設備特定port的資訊(可能包含流量等)。

路線:/api/v0/devices/:hostname/ports/:ifname

  • hostname主機名可以是設備主機名或 id
  • ifname是port的名稱,如GigabitEthernet16
http://192.168.2.248/api/v0/devices/7/ports/GigabitEthernet16/

獲取有關設備特定port的圖表

路線:/api/v0/devices/:hostname/ports/:ifname/:type

  • hostname主機名可以是設備主機名或 id
  • ifname是port的名稱,如GigabitEthernet16(如果需要,請確保對 ifname 進行 urlencoded(即 Gi0/1/0 需要進行 urlencoded。)
  • type 是您想要圖表的端口類型

這邊TYPE的圖表類型,官網應該是會教你透過API方式去取得該設備有哪些圖表可以用,但是其實還有另一個方式可以快速知道你要的那張圖表叫啥,你在你的系統直接點你要出現的圖表

之後你看你的網址部分會像是http://192.168.1.248/graphs/to=1666765200/id=179/type=port_bits/from=1666678800/

這時候上面藍色部分就是你要的圖表名稱了,你的API的範例網址就會像是下面這樣

http://192.168.2.248/api/v0/devices/7/ports/GigabitEthernet16/port_bits
Be the First to comment.

Leave a Comment

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

(若看不到驗證碼,請重新整理網頁。)