高蒙蒙



[摘 要]計算機的核心是系統,系統運行的可靠性與安全性,直接影響著計算機運行的效率,因此加強計算機系統可靠性研究,有著現實的意義。計算機系統的可靠性在教育、醫療、國防等領域中非常重要。為了提高計算機系統的可靠性,需要實時監測計算機系統的健康狀態,需要采用一種科學有效的方法來對計算機系統健康狀態進行評估。針對這一問題,現提出運用Observium來對計算機系統的健康狀態進行評估,只有通過運用Observium對計算機系統的健康狀態進行實時監控,才能做到防患于未然,提高系統的抗風險能力。
[關鍵詞]Observium;健康評估;可靠性
評估計算機的健康狀態,可以通過實時監控和搜集設備的硬件運轉情況來實現,如內存和處理器的使用率、磁盤的I/O輸入輸出情況、設備的運轉溫度、驅動程序的兼容性及最新的驅動最新版本檢測、程序的兼容性和出錯率、監聽網卡的上行和下行的流量情況,綜合這些收集目標,進行長期收集,從而給出設備的調整方案,在后期需求方面可以提前結合這些數據給出有效確切的改進方案和實施辦法。
市面上許多監控軟件,其大致有兩個端,采集端和服務端,即采集端把設備的實時數據采集傳給服務端,IT人員通過服務端獲取需要的數據資源。建議使用系統自身的協議服務類程序,即以最小的占用資源獲取更多的采集類型數據。既然監控,自然要有出色的監控平臺,如Observium。Observium是工作在Linux平臺,搭建完后通過80端口的WEB地址訪問,可以自由添加眾多類型的設備及系統,如微軟的SERVER各系統版本,Linux系統及分支版本,如Centos Debian Ubuntu,設備還支持網絡設備、打印機設備等。
一、搭建Observium
Observium主要通過收集對象安裝并運行了SNMP協議。安裝環境:Ubuntu Ubuntu,版本:18.x.第一步安裝Ubuntu系統;第二步安裝Observium平臺。安裝Obervium分為兩種,一是腳本自動安裝形式,二是自由安裝形式。
自動安裝通過22端口SSH進入Ubuntu系統,執行指令
wget http://www.observium.org/observium_installscript.sh
注釋:下載observium自動化腳本chmod+xobservium
_installscript.sh
注釋:授予安裝相應權限./observium_installscript.sh
注釋:執行安裝腳本進行安裝
自由安裝可以更詳細的部署平臺的每個細節,并了解每個引擎的狀況,比如web引擎和數據庫引擎,更重要的是文件權限和位置情況。
啟用Ubuntu的universe and multiverse.
apt-add-repositoryuniverse.
apt-add-repository multiverse
安裝Apache以及PHP解析工具,實現WEB支持。通過WEB訪問是最直觀和友好的訪問形式。
apt-get install libapache2-mod-php7.2 php7.2-cli php7.2-mysql php7.2-mysqli php7.2-gd php7.2-json \
php-pear snmp fping mysql-server mysql-client python-mysqldb rrdtool subversion whois mtr-tiny \ipmitool graphviz imagemagick apache2
Debian 9如下實現:
apt-get install libapache2-mod-php7.0 php7.0-cli php7.0-mysql php7.0-mysqli php7.0-gd php7.0-mcrypt \
php7.0-json php-pear snmp fping mariadb-server mariadb-client python-mysqldb rrdtool subversion whois \
mtr-tiny ipmitool graphviz imagemagick apache2
如果希望能監視libvirt虛擬機,還需要安裝libvirt-bin,建議提前全面更新一下軟件庫,讓系統有最新的軟件版本庫,安裝時可以保持程序最新:apt-get install libvirt-bin,下載Observium,創建一個Observium的目錄:mkdir -p /opt/observium && cd /opt
Observium有兩個版本,一個是每兩年發布一次的開源社區版,另一個是訂閱版,它具有附加功能、每天快速修復bug和改進功能,以及易于使用的基于svn的更新機制。
Observium社區版,如果想安裝Co mmunity Edition,請使用最新的.tar.gz版本進行安裝,下載最新的Observium.tar.gz文件并解壓:
wget http://www.observium.org/observium-co mmunity-latest.tar.gz
tar zxvf observium-co mmunity-latest.tar.gz
Observium訂閱版,如果有一個有效地Observium訂閱,請使用一個自動化的SVN發布存儲庫。建議那些打算使用自動化更新來更新Observium安裝的人進行穩定的培訓。
可以通過以下命令實現SVN安裝部署:
svn co http://svn.observium.org/svn/observium/trunk observium
配置,切換到新的安裝目錄:
cd observium復制并備份配置文件,防止誤操作,可以還原
cp config.php.default config.php
編輯config.php,更改選項以反映安裝。自然離不開數據庫的支持,必定收集的各類硬件信息需要有一個存儲的地方,方便數據調用。
二、安裝MySQL
MySQL的憑證,必須更改MySQL用戶名和密碼,大多數其他設置可以保留為默認設置。創建MySQL數據庫:
mysql -u root -p
mysql> CREATE DATABASE observium DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
mysql> GRANT ALL PRIVILEGES ON observium.* TO 'observium'@'localhost'
-> IDENTIFIED BY '
設置MySQL數據庫并插入默認模式:
./discovery.php -u
在SQL修訂中出現一些錯誤可以創建所需的日志目錄,用于后期真正遇到問題對其分析。
創建目錄Observium將其存儲日志:
mkdir logs
或者,可以在其他地方創建一個目錄,并將配置中的log_dir指令指向該目錄。創建存儲RRDs的目錄:
mkdir rrd
chown www-data:www-data rrd
三、Apache配置
Ubuntu1 4.04以上版本和Debian使用Apache 2.4,可以使用以下命令檢查Apache版本:
dpkg -l apache2
Apache 2.2
如果使用Apache 2.2,服務器將只運行Observium,需要配置
/etc/apache2/sites-available/default
更改為:
ServerAdmin webmaster@localhost
DocumentRoot /opt/observium/html
SetHandler application/x-httpd-php
Options FollowSymLinks
AllowOverride None
DirectoryIndex index.php
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
ErrorLog ?${APACHE_LOG_DIR}/error.log
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/access.log combined
ServerSignature On
啟用php mcrypt模塊,如果它已經安裝就忽略,如果沒有,請執行一下指令:phpenmod mcrypt。
在較新的發行版(Ubuntu 16.04及以上版本)上,啟用PHP并切換到mpm_prefork:
a2dismod mpm_event
a2enmod mpm_prefork
a2enmod php7.0
為Observium的url啟用mod_rewrite:
a2enmod rewrite
apache2ctl restart
添加初始用戶和設備
添加第一個用戶,使用級別為10的admin:
/adduser.php
添加第一個設備到監視器:
/add_device.php
進行初始發現和輪詢,以填充新設備的數據:
/discovery.php -h all
/poller.php -h all
最后還要配置cron,按照配置的時間自動處理工作需要,這項工作很重要,有助于檢測設備初始化狀態,或者做出基礎判斷,比如設備是否離線。直接新增和配置即可:
/etc/cron.d/observium
加入如下信息,這些信息是經過評估出的理想時間,當然可以根據實際需求去調整:
Run a complete discovery of all devices once every 6 hours
33 ?*/6 ? * * * ? root/opt/observium/discovery.php -h all >> /dev/null 2>&1
# Run automated discovery of newly added devices every 5 minutes
*/5 * * * * ? root/opt/observium/discovery.php -h new >> /dev/null 2>&1
# Run multithreaded poller wrapper every 5 minutes
*/5 * * * * ? root/opt/observium/poller-wrapper.py >> /dev/null 2>&1
# Run housekeeping script daily for syslog, eventlog and alert log
13 5 * * * root /opt/observium/housekeeping.php -ysel >> /dev/null 2>&1
# Run housekeeping script daily for rrds, ports, orphaned entries in the database and performance data
47 4 * * * root /opt/observium/housekeeping.php -yrptb >> /dev/null 2>&1
至此重啟服務器,現在服務器已經就緒,重啟結束,可以通過這臺Ubuntu的IP登錄管理控制臺:
http://ip登錄控制臺
可以通過控制臺的Devices添加設備或者系統,以下是添加后監控的效果。能看到的基礎監控是硬件層的,如果通過二次開發,增強采集端可以看到更多的信息。如果數據庫沒有限制,可以保存,以后可以回看被觀察設備一周、一個月、一年甚至多年前的信息。
至此平臺部署結束。
四、SNMP協議
SNMP協議全稱簡單網絡管理協議,此協議包含了數據庫模型,資源對象,還包含了一個應用層協議,此協議的主要功能就是支持網絡管理,數據交互一般基于UDP傳輸。
Linux的部署可以參考Linux各發行版本(Centos Ubuntu debian)的官網查看SNMP協議如何部署,微軟平臺的非server平臺可以通過刪除添加選項,server平臺通過角色添加,添加結束需要通過配置service服務,通過運行services.msc打開服務,找到snmp,雙擊,進行安全配置,配置完重起SNMP服務即可,當然配置結束檢查下防火墻,snmp默認防火墻是UDP的161端口,在防火墻李開放此端口,再回到監控平臺添加安裝有snmp服務的計算機IP,和安全配置的密鑰即可。
如果你的監控平臺處于外網狀態,需要本地安裝snmp設備并將端口通過上層路由設備映射到外網;如果不是固定IP可以使用花生殼代理;如果所處的網絡環境是固定IP,直接使用固定IP即可。
綜合評估這個監控平臺是有必要的,比如對有眾多服務器的院校企業,可以通過這個平臺去搜集數據,定期通過平臺了解服務器和辦公計算機的運轉情況。還可以評估服務器和工作計算機是否有必要升級,比如我們抽取一個月的時間片段,查看這個時間片段設備的運轉資源占用率,如果硬件資源持續走高,就要檢查是哪個程序造成的,如果程序正常,就要考慮針對性的部件升級,如果整體資源使用率低,可以考慮進行一些調整。相信以后會有更多的監控措施和方案,現在阿里云、騰訊云、亞馬遜云都有投入大量的人力和資源組成單獨的部門去做這件事,阿里云就是一個很好的例子。
定期評估服務器和計算機,可以提前預知設備運轉情況,給出改善方案,確保生產設備的正常運轉,高效穩定地為用戶提供服務。
參考文獻:
[1]易斯琪.AHP層次分析法在游戲服務器合服效果評估中的應用[J].西部皮革,2017,39(8).
[2]作者夏婷,王娜,閔華松.嵌入式狀態監測與故障診斷裝置的設計[J].微計算機信息,2008(10).
[作者單位]
江蘇省徐州機電技師學院
(編輯:趙文靜)