資產管理 開源碼 GLPI PHP 資料庫

搞定軟硬體盤點增刪清查 分類統計視覺化羅列一目瞭然

開源GLPI/fusioninventory 高效掌握IT資產現況

2023-06-08
企業長久運作,業務量增加,工作環境日益複雜,所使用到的資訊資產,種類越來越多樣化,數量也日漸增多,如何妥善管理是一大難題。本文中將介紹一套在開源碼社群中有名的資訊資產管理軟體GLPI,幫助管理者有效地管理企業內的資訊資產。

隨著企業環境的複雜化,相關所使用的資訊資產種類越來越多樣化且數量有日漸增多的趨勢,也因此衍生出許多管理上的問題,所以一套適當好用的資訊資產管理系統,相信是每個管理人員不可或缺的管理工具。在本文中,將介紹一套在開源碼社群中有名的資訊資產管理軟體GLPI,幫助管理者有效地管理企業內的資訊資產,本文實作所使用到的相關軟體,如表1所示。

什麼是GLPI

GLPI為法語Gestionnaire libre de parc informatique(資訊裝置管理自由軟體)的簡寫,這是一個由PHP語言所撰寫,用來管理相關資訊資產的網頁介面管理軟體。使用者可方便地透過網頁操作的方式來管理如電腦、顯示器、伺服器、印表機、網路裝置等資訊資產裝置,除了提供以手動輸入相關資訊資產資訊的一般功能外,更提供了自動掃描機制(如fusioninventory機制)。使用者可利用此類機制來自動掃描並採集相關資訊資產裝置的資訊,並匯入相關資料庫(如MySQL、MariaDB)進行管理。

除此之外,GLPI也提供代理程式機制來取得裝置上更完整的資訊,例如主機上CPU型號或所安裝的軟體名稱,讓管理者不但能夠管理資訊資產的硬體資訊,甚至可以管理其上所運作的軟體。

建構GLPI運作環境

在安裝之前,先確定系統是否已符合GLPI所要求的環境。

PHP網頁程式語言

PHP網頁程式語言的版本必須要高於5.6,並且必須啟用如表2所示的組態功能,在本文中所使用的PHP版本為8.2.5。

網站伺服器

提供使用者以網頁介面管理的方式來使用GLPI進行管理,在本文中使用Apache網站伺服器(版本為2.4.57)。

資料庫伺服器

用來儲存被管理的資訊資產,以及GLPI運作時所需資料等相關資訊,在本文中使用MySQL伺服器(版本為8.0.23)。

安裝GLPI

在此不多談論上述相關環境的安裝建置,假設已完成相關所需環境的建置。接下來,即可安裝GLPI,可至官方網站取得最新版本(在此版本為10.0.6),下載網址如下所示:

https://github.com/glpi-project/ glpi/releases/download/10.0.6/glpi- 10.0.6.tgz

在解壓縮後,即可將相關PHP原始碼檔案置於網站伺服器上,接著利用其所提供的線上設定程式,根據其步驟進行安裝即可,相關說明如下:

首先,選擇欲使用的語系,如圖1所示。

圖1  選擇語系。

如圖2所示,將顯示相關的版權畫面,按下〔繼續〕按鈕。

圖2  出現版權聲明。

接著,選擇安裝或升級相關系統,若是第一次安裝,則按下〔安裝〕按鈕,如圖3所示。

圖3  開始安裝。

緊接著,檢查系統環境是否符合相關要求,可依檢查的結果來安裝相關的軟體套件,如圖4所示。

圖4  檢查系統環境是否符合相關要求。

然後,設定所使用的資料庫伺服器的相關參數,如圖5所示,在此必須輸入資料庫伺服器的所在位置,以及使用者帳號和密碼(該使用者須具有新建資料庫的權限)等資料庫相關資訊。

圖5  設定資料庫所在位置以及用戶帳號和密碼。

在連線資料庫成功後,在此步驟中,GLPI會請使用者選擇新建資料庫或使用一個已存在的資料庫,在此選擇新建資料庫(名稱為glpidb),如圖6所示。

圖6  資料庫連線成功。

成功建立資料庫後,接下來就會進行初始化資料庫的動作,新建相關所需要的資料庫表格(Table),如圖7所示。

圖7  初始化資料庫。

初始化資料庫動作完畢,GLPI詢問是否可回傳使用等相關資訊,若不想回傳資訊,可選擇不勾選,如圖8所示。

圖8  詢問是否要回傳使用等相關資訊。

最後,GLPI會產生相關的預設帳號及密碼以供使用者登入使用,如圖9所示,在本文中將使用管理員的角色進行操作。要特別注意的是,就筆者的測試結果,其中管理員的帳號及密碼均為小寫字母,而非其顯示的大寫字母。

圖9  開始使用CLPI。

進行至此,GLPI大致已算安裝完成,接著以管理員的角色登入並更改預設密碼。在登入後,將會看到如儀表板的畫面,如圖10所示,可即時查看目前所管理資訊資產的資訊。

圖10  如儀表板般的操作畫面。

接著,點選至「行政」→「使用者」畫面,更改管理者的預設密碼,如圖11所示。

圖11  更改管理者的預設密碼。

除此之外,根據官方網站的說明,為了能定時清除在運作過程中所產生的暫時性資料以增進執行的效率,GLPI提供一個名稱為cron.php(位於「glpi安裝目錄/front/」目錄下)的程式來清除相關資訊,建議使用者利用系統上定時執行的機制(如cron)來定時地執行cron.php。

安裝fusioninventor

接著安裝fusioninventor程式,以便利用該程式來取得欲管理的裝置相關資訊。首先至fusioninventory官方網站(https://github.com/fusioninventory/fusioninventory-for-glpi/releases)取得適用於GLPI的版本,由於在此使用的GLPI版本為10.0.6,因此下載10.0.6+1.1(適用於10.0.6以上的版本)。下載並解壓縮後,將fusioninventory原始碼所在的目錄名稱更改為「fusioninventory」,並將此目錄複製到GLPI目錄中的「plugins」目錄,就完成安裝了。接著以實際指令來說明(其中#為註解)安裝步驟,在此假設GLPI程式安裝於「/usr/local/apache2glpi/htdocs/」目錄中:

#下載適用於glpi 10.0.6以上版本 wget https://github.com/fusioninventory/ fusioninventory-for-glpi/archive/refs/ tags/glpi10.0.6+1.1.tar.gz #解壓縮所下載的檔案 tar xvzf glpi10.0.6+1.1.tar.gz #將目錄更名為fusioninventory mv fusioninventory-for-glpi-glpi10.0.6-1.1 fusioninventory #將fusioninventory複製至glpi的plugins目錄 mv fusioninventory /usr/local/apache2glpi/ htdocs/plugins

接著,點選GLPI管理介面中「設定」功能下的「外掛程式」,此時應可看到已新增一個名稱為「fusioninventory」的外掛程式,如圖12所示。

圖12  外掛程式新增成功。

相關組態說明

接著,利用fusioninventory所提供的設定功能來設定相關組態,常用組態簡單說明如下:

一般設定

此組態主要是用來設定代理程式(Agent)所使用的通訊埠(預設為62354,要注意防火牆的設定不能阻擋此通訊埠)、是否要啟動偵錯模式(Debug),以及代理程式是否要使用SSL功能進行通訊等一般的組態設定。

Computer inventory

設定要取得的電腦主機上的資訊,例如處理器型號、記憶體型號,以及系統內所安裝的軟體資訊。

Network inventory

設定是否以網路掃描或偵測(如以SNMP通訊協定)來取得相關資訊資產的資訊。

基本上,若無特殊考量,使用預設組態即可。在GLPI安裝完成fusioninventory機制後,即可安裝fusioninventory的代理程式,以便由代理程式收集資訊資產的資訊,再回覆至GLPI主機上進行管理。

安裝fusioninventory的代理程式

為了方便說明,這裡將代理程式安裝在GLPI所在的主機上,亦即GLPI與代理程式會在同一台主機上。

由於本次所使用的作業系統為CentOS,因此會下載Linux版本的代理程式,連結至下列網址取得最新版本(在此使用的版本為2.6):

https://github.com/fusioninventory/fusioninventory-agent/releases/tag/2.6

由於此程式是以Perl語言所撰寫(版本要求需5.8以上),因此要先安裝所需的Perl套件,可根據欲取得的資訊來決定所要安裝的Perl套件,以下為建議安裝的Perl套件,相關指令如下所示:

cpan install Env cpan install YAML::Tiny cpan install inc::Module::Install cpan install B::COW cpan install Clone cpan install Memoize cpan install HTTP::Request cpan install File::Which cpan install LWP::UserAgent cpan install Net::IP cpan install Text::Template cpan install UNIVERSAL::require cpan install XML::TreePP cpan install Compress::Zlib cpan install HTTP::Daemon cpan install IO::Socket::SSL cpan install LWP::Protocol::https cpan install Proc::Daemon cpan install Proc::PID::File cpan install URI::Escape cpan install Net::Ping cpan install Parallel::ForkManager cpan install Compress::Zlib , for message compression cpan install HTTP::Daemon , for web interface cpan install IO::Socket::SSL , for HTTPS support cpan install LWP::Protocol::https, for HTTPS support cpan install Proc::Daemon , for daemon mode (Unix only) cpan install Proc::PID::File , for  daemon mode (Unix only)

成功安裝相關套件之後,接下來就可以安裝代理程式,只要執行以下的指令即可完成安裝作業:

perl Makefile.PL make make install

在安裝完成後,將會產生一個名稱為「fusioninventory-agent」的主要執行檔(位於「/usr/local/bin/」目錄)以及名稱為「agent. cfg」(位於「/usr/local/etc/fusioninventory」目錄)的主要組態設定檔。

agent.cfg常用組態介紹

接著,說明agent.cfg常用的組態設定。

server

此選項在於設定GLPI主機的位置,代理程式會將所搜集到的資料,回傳至GLPI主機進行管理,相關設定如下:

server =http://GLPI主機位置/plugins/ fusioninventory/

若有啟用SSL功能,則設定為:

servers =http://GLPI主機位置/plugins/ fusioninventory/

local

設定儲存代理程式輸出資料的目錄。

logfile

設定儲存代理程式輸出紀錄檔資料的檔案位置。

debug

設定是否有開啟偵錯(Debug)模式,使用者可利用開啟此項功能來取得更詳細的運作資訊。

使用fusioninventory-agent

簡單說明組態檔設定後,繼續介紹fusioninventory-agent程式的用法,其指令格式如下:

fusioninventory-agent [options] [--server server]

而常用的選項[options],詳細說明如下:

--list-tasks:顯示目前已啟動的task資訊。

-u:如果欲管理的設備有使用者帳號╱密碼的管控機制,即可在此參數中輸入使用者帳號資訊。

-p:可在此參數中輸入使用者密碼資訊。

--timeout:設定連線裝置逾時的時間(單位為秒),預設為180秒。

--logfile:設定fusioninventory-agent程式在運作時,所產生之紀錄資訊的儲存位置。

--logfile-maxsize:設定紀錄檔的最大限制容量(單位為M)。

--conf-file:設定fusioninventory-agent程式運作時,所參考之組態檔案的位置。

-d:設定以常駐(Daemon)程式的模式來執行。

--debug:設定以偵錯(Debug)模式來運作。

--setup:顯示安裝fusioninventory-agent程式相關的安裝目錄。

--server:設定GLPI主機所在的位置,在本文中為「http://localhost/plugins/fusioninventory」。

簡單了解fusioninventory-agent程式相關用法之後,即可執行如下的指令,以常駐程式的型式來啟動fusioninventory-agent程式:

fusioninventory-agent --server http:// localhost/plugins/fusioninventory --daemon

接下來,利用GLPI管理介面的方式來查看,應可看到fusioninventory-agent程式回傳的相關資訊,如圖13所示。點選「電腦」,即可取得該代理程式所回傳的主機詳細資訊,如圖14所示。除此之外,可點選「軟體」,取得代理程式所回傳之主機上詳細的軟體資訊,如圖15所示。

圖13  透過GLPI管理介面進行查看。
圖14  取得該代理程式所回傳的主機詳細資訊。
圖15  取得代理程式所回傳之主機上詳細的軟體資訊。

至此,GLPI資產管理系統已完裝完成了。

<本文作者:吳惠麟,多年資安經驗,喜好利用開源碼建構相關解決方案,著有「資訊安全原理與實驗」等書。>


追蹤我們Featrue us

本站使用cookie及相關技術分析來改善使用者體驗。瞭解更多

我知道了!