运用Observium对服务器计算机健康状态评估
2019-10-21高蒙蒙
高蒙蒙
[摘 要]计算机的核心是系统,系统运行的可靠性与安全性,直接影响着计算机运行的效率,因此加强计算机系统可靠性研究,有着现实的意义。计算机系统的可靠性在教育、医疗、国防等领域中非常重要。为了提高计算机系统的可靠性,需要实时监测计算机系统的健康状态,需要采用一种科学有效的方法来对计算机系统健康状态进行评估。针对这一问题,现提出运用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).
[作者单位]
江苏省徐州机电技师学院
(编辑:赵文静)