一、Racktables简介

1.1 存在的问题

  随着公司服务器规模的增加,以往手工记录服务器资产的方式存以下的问题:

无法准确统计IT资产

  1、有多少需要处理的IT资产?

  2、资产中有哪些特殊的设备供应商

  3、过去的三年中每年新增的服务器是多少?有多少无法使用的或是资源利用率很低的?

  4、资产设备什么时候过保?

  5、如何操作资产更新(例如服务器IP变更或硬件资源变更)

  6、现有环境有多少IP资源可用?核心的设备是哪些?哪个组哪个部门对其负责

硬件资源维护

  1、迁移服务器时需要多少IT设备才能保证工作正常,设备的更新列表有哪些?

  2、有多少已经过保的设备?有多少建议淘汰的服务器?

  3、有哪些服务器会因为UPS管理维护导致不能使用?

  4、重要设备到交换机的网络接入点以及交换机之间的网络连线是如何分配的?

软件License管理

  1、需要多少必备软件的License?

  2、每个服务器的License情况如何?

  3、有哪些是已失效的License?

文档管理

  1、相关的配置文件能否及时恢复,保证软件的正常应用?

  2、服务器及周边设备的配置、处理文档是否完整?

  以上这些都成了实际工作中所面临的问题,再加上人员的变动手工记录的方式已越来越不适应。在这中间尝试过用iTop(太庞大,主要面向ITSM)、otrs(主要面向ITSM的服务台)、cmdbuild(配置复杂,驾驭不了)后发现racktables比较适合我们的现有需求(当然也有可能是对其它的工具了解较少)。

1.2 Racktables简介

  Racktables是一个用来管理机房资产的开源工具,可以用来管理成百上千台的服务器及更多的IP和MAC地址。适用于机房和数据中心的服务器管理。

wKiom1MpAqvwm-UjAAOuDsQPCX4589.jpg

1.3 参考资源

  http://wiki.racktables.org/index.php/Main_Page

二、Racktables安装及初始设置

2.1 前期准备

  在使用yum指令前建议先设定好linux软件源(如下图所示,可以参考http://waringid.blog.51cto.com/65148/904201)。需要注意的是epel源中的epel-release-6-7.noarch.rpm已经换成了epel-release-6-8.noarch.rpm版本(同时注意32位和64位版本的区别)。

wKioL1MpAtXTt_TEAAE1oleZQi8571.jpg

yum -y install gcc gcc-c++ autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-develglibcglibc-devel glib2 lib2-devel
bzip2 bzip2-devel ncursesncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5 krb5-devel libidnlibidn-devel opensslopenssl-devel make patch pcre-devel
cd /root
wget http://downloads.sourceforge.net/project/racktables/RackTables-0.20.6.tar.gz?r=http%3A%2F%2Fracktables.org%2F&ts=1388393599&use_mirror=jaist
tar zxvf RackTables-0.20.6.tar.gz

2.2 安装相关组件

  安装运行需要的相关组件,如数据库、PHP支持等,如下所示。

yum install mysql-server mysql
yum install php php-mysql php-pdo php-gd php-snmp php-mbstring php-bcmath httpd httpd-tools
mv –r RackTables-0.20.6 /usr/share/
mkdir /var/www/html/it
cd /var/www/html/it
ln -s /usr/share/RackTables-0.20.6/wwwroot/index.php ./index.php

2.3 配置数据库

  通过以下命令初始化数据库,如下所示。

service mysqld start
mysql -uroot -p
create database racktables;
grant all on racktables.* to root;
grant all on racktables.* to root@localhost;
grant all on racktables.* to rackuser;
grant all on racktables.* to rackuser@localhost;
set password for rackuser@localhost=password('password');
exit

2.4 配置apache

  通过以下命令配置apache,如下所示。

wKioL1MpA-_hoF8XAAFxeIg2La0436.jpg

vim /etc/httpd/conf.d/it.conf
<VirtualHost *:81>
ServerAdminzabbix
DocumentRoot /var/www/html/it
ErrorLog /var/log/httpd/racktables.log
HostnameLookups Off
UseCanonicalName Off
ServerSignature Off
<Directory />
Options FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>
<Directory "/var/www/html">
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
service httpd start

2.5 安装racktables

  打开浏览器按设置输入地址,例如:http://192.168.88.123:81进入安装界面,同时选择继续。如下所示。

wKioL1MpBGOjrHDGAABtEDSC6LM237.jpg

  下一步进入到环境检测界面,如果不需要用到snmp协议(关于snmp方面的内容请参考“zabbix中文配置指南续”)可以忽略该提示,如果没有问题选择继续。如下图所示。

wKioL1MpBHLgOEcLAADjOQhzEwA780.jpg

  接下来会提示按要求建立配置文件,主要是设定racktables的数据库连接。如下图所示。

touch /var/www/html/it/inc/secret.php
chmod 666 /var/www/html/it/inc/secret.php

wKioL1MpBL7BwRquAACbLRyMfBo925.jpg

wKiom1MpBOXRcaqCAADA5lO8LR8031.jpg

wKioL1MpBL6DEd-PAACJTEfZAas963.jpg

  完成配置文件的建立后,按页面的提示完成后续的安装。如下图所示。

wKiom1MpBTDwvnPmAABah86v2BM856.jpg

三、Racktables配置

3.1关于中文

  该软件不支持多语言,在英文版本的状态下可以正常显示中文字符(需数据据支持中文编码),如果需要中文化需自行修改代码中的英文描述(可以通过修改php代码实现初步的中文化)。

3.2界面说明

Rackspace

  机柜配置。该功能用来配置机房的位置以及机柜的信息。包含机柜所在的位置、行列以及机柜的名称、高度、排列次序、服务器在机柜中的位置等,如下图所示。

wKioL1MpBSGz3tWtAADgen0jmxo514.jpg

Objects

  设备对象配置。该功能用来配置设备信息。包含该设备的配置信息(例如服务器的硬件配置、IP信息、KVM接口信息、归属的管理部门、线路的接口、保修期限、在机柜上的位置等),如下图所示。

wKioL1MpBTTyqWSlAAOVoA1ylNs669.jpg

IPv4 space

  IP地址管理。该功能用来配置IP地址信息。根据实际情况自定义使用到的IP地址,包含VLAN信息、网段状况、各网段IP应用情况以及和服务器设备的产联信息等。如下图所示。

wKiom1MpBWngxUoPAASnBcT-xrQ843.jpg

Configuration

  配置管理。该功能最灵活。根据实际情况配置各项目的内容以及详细的字段内容、各组件的属性、对象的包含关系、用户的界面、用户及权限等。如下图所示。

wKiom1MpBXbj9P_1AAIsao-GWoc091.jpg

3.3权限设置

  软件是初始化安装时提示输入管理员的密码,初始化完成后登陆系统在“Main page:Configuration:Local users”对用户进行相关设定。

wKiom1MpBZDQJUyHAAMNiWKQs_Q910.jpg

wKioL1MpBWmhwY_oAADdaIRd260467.jpg

  首先根据实际情况建立使用用户,设定好系统的应用帐号。其中“edit”用来修改原有用户或新建用户,如上图所示。

  用户权限的配置是一件比较复杂的事情,和windows应用程序不同的是无法通过图形的方式实现权限的修改,只能通过修改配置文件(“Main page:Configuration:Permissions”)的方式来实现。具体可参考:http://wiki.racktables.org/index.php/RackTablesAdminGuide。

wKioL1MpBYOjeyJiAAFWyXBzceM077.jpg

allow {$userid_1}

  管理员用户可应用所有功能

allow {$username_user}and {$tab_default}

  user用户可只读查看所有功能

deny {$username_abc}and {$page_config}

allow {$username_abc}

  abc用户无法查看(也无法更改)“Configuration”功能,其它项目的功能都是可读写

四、Racktables升级

  Racktables的升级很简单,只要版本的跨度不大(尝试过从0.20.5升级至0.20.7)都可以自动完成升级。

  1、首先做好数据备份(主要是数据库),可以通过以下的指令进行:

mysqldump --user=racktables_user --password=www.myj123.com racktables_db > /tmp/backup_racktables_db_20140318.sql

  2、将新版本的文件存放至指定文件夹,同时保留原有版本的配置文件,如下所示:

cp -R /root/RackTables-0.20.7/ /usr/share/
cp /usr/share/RackTables-0.20.5/wwwroot/inc/secret.php/usr/share/RackTables-0.20.7/wwwroot/inc/

  3、删除原有的链接文件同时建立新的文件,如下所示:

rm /var/www/html/it/index.php
ln -s /usr/share/RackTables-0.20.7/wwwroot/index.php /var/www/html/it/index.php
  4、完成后重新登录RackTables系统按页面提示完成后续的升级操作。