2019年7月19日 星期五

[經驗分享]phpIPAM 安裝流程與使用心得



為了管理越來越多的 IP 主機數量及機房 Rack 配置,繼昨天試用 NetBox 後,本次選定 phpIPAM。

此文記錄安裝在 Ubuntu 18.04 過程與使用情況。







套件安裝

phpIPAM 採用經典的 LAMP 組合,先以指令安裝需要的套件。
安裝基礎套件
apt-get install apache2 mariadb-server php7.2 php7.2-gmp php7.2-mysql php7.2-ldap php-pear 
apt-get install php7.2-pdo php7.2-json php7.2-gettext php7.2-cli php7.2-mbstring 
apt-get install php7.2-gd php7.2-curl
apt-get install php7.2-simplexml
apt-get install git 

接著採用 git 來下載最新版程式專案。
下載程式專案
git clone https://github.com/phpipam/phpipam.git /var/www/phpipam 
cd /var/www/phpipam 
git submodule update --init --recursive 


[2019/07/24] 補充:

如果安裝過程中找不到 php7.2 與 mariadb-server 套件,請用下列指令補上後再安裝一次:
補上相關套件庫來源
apt install software-properties-common
add-apt-repository ppa:ondrej/php
apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8
add-apt-repository "deb [arch=amd64,arm64,ppc64el] http://mariadb.mirror.liquidtelecom.com/repo/10.4/ubuntu $(lsb_release -cs) main"
apt update








系統設定

資料庫帳號與資料結構建立,注意密碼請不要與範例相同。
建立帳號與資料庫
mysql -u root -p 
> create database phpipam; 
> GRANT ALL on phpipam.* to phpipam@localhost identified by 'password'; 
> exit; 
資料庫結構建立
mysql -u root -p phpipam < db/SCHEMA.sql

系統設定檔建立,由範本檔複製而來。
建立系統設定檔
cp /var/www/phpipam/config.dist.php /var/www/phpipam/config.php 

將以下設定修改至 /var/www/phpipam/config.php
修改系統設定檔
$db['host'] = "localhost"; 
$db['user'] = "phpipam"; 
$db['pass'] = "password"; 
$db['name'] = "phpipam"; 
define('BASE', "/");  


設定 Apache 站台,檔案為 /etc/apache2/sites-enabled/000-default
設定 sites
DocumentRoot /var/www/phpipam 
<Directory /var/www/phpipam>
  Options FollowSymLinks 
  AllowOverride all 
  Order allow,deny 
  Allow from all 
</Directory>


設定 rewrite 模組與服務重啟。
開啟 rewrite  
ln -s /etc/apache2/mods-available/rewrite.load /etc/apache2/mods-enabled/rewrite.load 
a2enmod rewrite 
service apache2 restart 

至此系統安裝完成,可以進行使用。






使用方式

請使用瀏覽器連至 http://ip/,預設帳號為 admin,預設密碼為 ipamadmin,即可開始登入 phpIPAM 系統。

在 phpIPAM 中,具有機櫃配置的功能,當裝置建立並設定至指定的機櫃編號與位置,即可在總覽畫面中以圖形方式呈現裝置與機櫃擺設的關係。

機櫃總覽畫面


在系統中,可以分別定義客戶、網路、位置、機櫃、裝置、電路等項目,這些項目都是可以經由設定全部進行關聯。

舉個例子,我們可以建立電信業者專線為一條電路,記錄電信業者名稱、電路編號、速率等等資訊,並在該電路中指名這是屬於那兩個裝置互相連接使用。

或者,建立多個辦公室的位置,並相該位置所使用的網段與該位置關聯,即可容易查詢位置與 IP 的相對應關係。

在 IP 管理畫面中,可以快速取得這個網段的相關資訊,右上角的圓餅圖會顯示此網段目前已經使用了多少 IP。

IP 網段細節畫面


這個頁面往下捲,可以看到這個網段的每一個 IP 使用情況,搭配 phpIPAM 所提供的 scan 功能,可以快速的協助將整個網段中已經被使用的 IP,以及目前的連線情況以燈號顯示;若該 IP 能夠被反解到 FQDN,也會自動出現在欄位中。


IP 列表畫面



再往下捲,還有一個快速的網段 IP 使用顯示器,點亮的部份即表示已在使用中,非常易懂,點選每一格還可以進去設定或是新增對應的裝置。

IP 使用顯示器



點進裝置細節頁面,可以查看更多的 IP、MAC、位置、連線、異動記錄等資訊,也會以圖形方式呈現這個裝置在那一個 Rack 的第幾個位置。

裝置細節頁面



在登入驗證部份,支援了許多主流的方式,例如 AD、LDAP、Radius...等,更支援了兩階段驗證的進階安全機制。

整合外部驗證方式


可以將現有的電路資料建立起來,輸入電路編號、頻寬、業者、連繫窗口、連接點的資訊等,可以方便做為管理與日後的調閱。

以我的使用情況來說,有許多的外點辦公室都有各自的線路,甚至有一些是協助客戶申請的線路資訊需要保存,透過 phpIPAM 就有一個相當良好的集中管理方式。

電路列表畫面




結論

經過測試,這套 phpIPAM 雖然沒有過於華麗的介面功能,但是在基本 IP 管理功能上著實不錯,符合我使用上需求,讓我確定會繼續使用它,並且將它與 LibreNMS 進行整合,提升使用能力。

奇怪的是,我在系統上有看到語言切換功能,系統上也確實有繁體中文的語系檔,但是怎麼切換都沒有生效(包含切成其他語言也是),這部份我還在研究中,初步懷疑可能是我用的版本是 1.5 Beta 而非 1.4 Release 版。





參考資料