Browsed by
分类:网络工程

服务器备份工具–Bacula安装与配置(四)

服务器备份工具–Bacula安装与配置(四)

如果要看bacula备份状态的话,每次进linux然后运行bconsole查看status比较麻烦,可以考虑用Bacula-web这个插件,可以通过web查看bacula运行状况,十分方便,这个需要以下程序支持,安装即可

yum install php-pear php-gd php-mysql

官网下载,也可以从我的网站下载

下载后解压,然后把文件都拷贝到/var/www/目录下,运行cp -R ./bacula-web /var/www/

修改/var/www/bacula-web/configs/下的bacula.conf文件,使这个web应用可以读取bacula的数据库,在[.DATABASE]下面修改以下这些地方就行了,
# Your database host or IP
host = localhost
# Your database login
login = root
# Your database password.
# For empty passwords use this:
# pass =
pass = 123
# Your database name
db_name = bacula
# Your database type: mysql,sqlite,pgsql
db_type = mysql

修改/etc/httpd/conf/httpd.conf文件,加入

Alias /bacula-web/ “/var/www/bacula-web/”
<Directory “/var/www/bacula-web”>
Options Indexes MultiViews
AllowOverride None
Order allow,deny
Allow from all
</Directory>

改完后需要重新启动httpd服务让改动生效,service httpd restart

这是可以去浏览器,输入http://bacula服务器ip/bacula-web/test.php看看检测的三项(gettext,Pear(DB),GD)是不是都OK,如果前面都没问题的话,这边应该是三个OK,然后可以去看index.php了,如果显示的是空白页面,可能要看一下log文件是不是SELinux阻止文件访问,错误日志差不多是这样的SELinux is preventing the httpd from using potentially mislabeled files

修改/etc/selinux/config文件中的SELINUX=enforcing为SELINUX=disabled,需要重启机器生效
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#       enforcing – SELinux security policy is enforced.
#       permissive – SELinux prints warnings instead of enforcing.
#       disabled – SELinux is fully disabled.
SELINUX=disabled

这样就可以通过web界面查看bacula备份的结果了

如果还是空白页面的话,去/var/log/httpd/error_log看看是不是因为权限的问题,如果看到类似错误的话

[Mon Apr 25 22:39:59 2011] [error] [client 182.23.147.2] PHP Fatal error:  Smarty error: unable to write to $compile_dir ‘/var/www/bacula-web/templates_c’. B
e sure $compile_dir is writable by the web server user. in /var/www/bacula-web/external_packages/smarty/Smarty.class.php on line 1088

用chown -R apache:apache /var/www/bacula-web/ 命令即可

服务器备份工具–Bacula安装与配置(三)

服务器备份工具–Bacula安装与配置(三)

在要备份服务器的客户端,只有一个文件要配置,bacula-fd.conf,里面修改以下两个参数即可
Director {
Name = Bacula-dir
Password = “test”
}

Director {
Name = Bacula-mon
Password = “testoo”
Monitor = yes
}
修改名称和密码跟服务器上的一样,另外注意的是要打开9102端口,否则无法正常运行

启动服务用/etc/bacula/bacula start

在服务器端运行/etc/bacula/bconsole可以查看配置的成不成功

首先可以看status,出来四个选项
Status available for:
1: Director
2: Storage
3: Client
4: All
Select daemon type for status (1-4):

选4,都查一遍,如果都可以连接上,没有超时什么的错误,就可以用了,如果想手工备份的话,运行run,选取要备份的客户端

要看每个job都备份了什么文件,可以用list files jobid=编号

如以下显示
*list files jobid=139
+——————————————————————————————+
| Filename |
+——————————————————————————————+
| /usr/local/apache2/htdocs/cacti/rra/73/207.rrd |
| /usr/local/apache2/htdocs/cacti/rra/45/149.rrd |
| /usr/local/apache2/htdocs/cacti/rra/116/463.rrd |
| /usr/local/apache2/htdocs/cacti/rra/89/257.rrd |
| /usr/local/apache2/htdocs/cacti/rra/37/141.rrd |
| /usr/local/apache2/htdocs/cacti/rra/103/341.rrd |
| /usr/local/apache2/htdocs/cacti/rra/103/344.rrd |
(以下省略)

要回复文件的话用restore即可,然后选择对应的选项,jobid可以从status命令中选客户端看到

服务器备份工具–Bacula安装与配置(二)

服务器备份工具–Bacula安装与配置(二)

Bacula的备份和恢复工作由下面几个部分完成
(1)Director Daemon主要是控制端,控制存储,要备份的服务器,运行依赖于数据库,推荐使用MySQL
(2)Storage Daemon主要是文件存储,所有的备份都会存储在这里,恢复的时候从这里取文件
(3)File Daemon就是在客户端运行的进程,备份的时候传出文件,恢复的时候接收文件
(4)Console是连接Director进行控制的
(5)Monitor是监控备份过程的,完成或失败会有log和发送email的,失败的log很详细

一般来说,Director,Storage和Console都会放在一个服务器,除非有特别需要,例如Storage需要放在磁带DVD什么的

这些配置文件都在/etc/bacula/目录下,重要的是bacula-dir.conf,是整个bacula的核心,

Director {                            # define myself
Name = Bacula-dir
DIRport = 9101                # where we listen for UA connections
QueryFile = “/etc/bacula/query.sql”
WorkingDirectory = “/var/bacula/working”
PidDirectory = “/var/run”
Maximum Concurrent Jobs = 1
Password = “WeoJoDjWpYUTPGSghEZUY/7dIYscb7CHuzcbevWaHcU9”         # Console password
Messages = Daemon
}
这一般不用改,password要跟bconsole.conf里面的password一致,如果是一台服务器,默认就是一样的

然后跟着是JobDefs,主要是定义要备份的客户端
JobDefs {
Name = “Webhost”
Type = Backup
Level = Incremental
Client = webhost.abc.com
FileSet = “webhost”
Schedule = “WeeklyCycle”
Storage = File
Messages = Standard
Pool = File
Priority = 10
Write Bootstrap = “/var/bacula/working/%c.bsr”
}
这里指定client的名字是webhost.abc.com,要备份的文件在FileSet webhost里指明,备份计划是WeeklyCycle,默认是每个月的第一个周日做全备份,剩下的周日做差异备份,每天做增量备份,没有特殊需要可以不用改

Job {
Name = “Backup Webhost”
JobDefs = “Webhost”
}
这个是Console运行Job的时候需要的

FileSet {
Name = “webhost”
Include {
Options {
signature = MD5
}
File = /home/
File = /root/
}
Exclude {
File = /root/bacula-5.0.3/
}
}
这个就是webhost这个job需要备份的文件,可以通过include指定多个文件目录,也可以通过exclude在指定的那些目录排除一些子目录

Schedule {
Name = “WeeklyCycle”
Run = Full 1st sun at 05:05
Run = Differential 2nd-5th sun at 05:05
Run = Incremental mon-sat at 05:05
}
这个就是定义自动备份的时间段

Client {
Name = webhost.abc.com
Address = webhost.abc.com  #或者用ip,例如1.1.1.1
FDPort = 9102
Catalog = MyCatalog
Password = “test”          # password for FileDaemon
File Retention = 30 days            # 30 days
Job Retention = 6 months            # six months
AutoPrune = yes                     # Prune expired Jobs/Files
}
定义客户端机器,这里面的name和address虽然一样,但意义不同,name可以随便用,只要跟JobDefs里client一样就行了,address就是服务器的ip地址,或者域名,password这个要跟客户端里面设置的一致

Storage {
Name = File
# Do not use “localhost” here
Address = 127.0.0.1                # N.B. Use a fully qualified name here
SDPort = 9103
Password = “l5OTjniMqNs+QM3Z3U2uBIjOb6mKqIoa67X7zYjlRzwp”
Device = FileStorage
Media Type = File
}
存储的位置,这个如果在同一台服务器的话,只要把address中的localhost改成127.0.0.1即可,如果不在同一个服务器,要注意password要设置成一样的

Messages {
Name = Daemon
mailcommand = “/sbin/bsmtp -h mail.abc.com -f \”\(Bacula\) \<%r\>\” -s \”Bacula daemon message\” %r”
mail = test@abc.com = all, !skipped
console = all, !skipped, !saved
append = “/var/bacula/working/log” = all, !skipped
}
发送email消息设置,-h后边要改成email服务器,也可以用本机当email服务器,mail改成收件人地址

Console {
Name = Bacula-mon
Password = “testoo”
CommandACL = status, .status
}
监控用的,这边的password也要跟客户端里面的一样

服务器备份工具–Bacula安装与配置(一)

服务器备份工具–Bacula安装与配置(一)

Bacula是可以自动备份服务器文件的程序,备份和回复都非常方便,基本上不用人管,出了问题可以选择回复哪个时间点的文件,你可以从官网下载,也可以从我的网站下载,我运行的环境是CentOS5.5,32位的

首先要安装mysql,然后启动mysql服务,并且要创建mysql的root密码,不创建密码也行,就是不安全,这里为了方便我就用123当作密码
yum install mysql
service mysqld start
mysqladmin -u root password “123”

然后用netstat -nat命令看看3306端口起没起来,看到有3306端口正在被listen就成功了

然后解压下载的bacula,运行./configure –with-mysql(服务器端运行需要mysql支持),报错,说configure: error: Unable to find C++ compiler,查了一下要安装一个c++编译器,运行yum install gcc-c++,然后继续运行./configure –with-mysql,还是报错,说configure: error: Unable to find mysql.h in standard locations,这个要安装mysql-devel,运行yum install mysql-devel,这些都是bacula服务器上要安装的,在客户端不用安装,./configure –with-mysql没有报错后继续make;make install

完成之后去/etc/bacula做一些相关数据库的操作
分配权限
./grant_mysql_privileges -u root -p”123″
创建数据库
./create_mysql_database -u root -p”123″
创建表
./make_mysql_tables -u root -p”123″

客户端安装很简单,就一句
./configure –enable-client-only

这些完了之后安装阶段结束,剩下的是要配置

各种Linux忘记密码

各种Linux忘记密码

Linux:

1. 在出现grub画面时,用上下键选中你平时启动linux的那一项,然后按e键
2. 再次用上下键选中你平时启动linux的那一项(类似于kernel /boot/vmlinuz-2.4.18-14 ro root=LABEL=/),然后按e键
3. 修改你现在见到的命令行,加入single,结果如下:
kernel /boot/vmlinuz-2.4.18-14 single ro root=LABEL=/
4. 回车返回,然后按b键启动,即可直接进入linux命令行
5. #vi /etc/shadow
将第一行,即以root开头的一行中root:后和下一个:前的内容删除,
第一行将类似于
root::……
保存
6. reboot

Centos:
开机是在 grub 那先按 e ,下个画面按向下方向键选择 kernel 开头的句子
再按一次 e,然后按:[空白]1[Enter]
再按 b 。

等跑完,打 passwd ,随便你改啥密码都行。
改完敲 reboot 。

To be added…….

Linux添加SNMP服务

Linux添加SNMP服务

如果要用MRTG/Cacti监控Linux服务器的cpu利用率,内存利用率,磁盘空间等信息的话,需要在Linux上安装SNMP,这样这些数据才能被抓取到,安装的是net-snmp,我用的Linux版本是Centos,别的应该都差不多

yum install net-snmp net-snmp-utils
装完后,把/usr/share/doc/net-snmp-5.3.2.2/EXAMPLE.conf文件拷贝到/etc/snmp/下并且重命名为snmpd.conf,不知道EXAMPLE.conf的位置

可以用find . -name EXAMPLE.conf查找

cd /etc/snmp
vi snmpd.conf

# sec.name source community
com2sec local localhost community
com2sec mynetwork network/24 community

其中把network换成snmp服务器的ip地址,community换成snmp服务器预设的字符,通常是public
# sec.name source community
com2sec local localhost community
com2sec mynetwork 1.1.1.1 public

改联系信息什么的要找到
syslocation Right here, right now.
syscontact Me
改成
syslocation China
syscontact Admin

然后找到# disk checks,把下面的disk / 10000 换成disk /就可以读取硬盘空间信息了

Juniper交换机开启GUI

Juniper交换机开启GUI

Juniper交换机默认是关闭GUI的,要是想开启的话用以下命令
root@:RE:0% cli
root> configure
Entering configuration mode

[edit]
root# set system root-auth plain-text-password
<键入root密码>
root# set interfaces me0 unit 0 family inet address 172.16.20.22/24
root# set system services web-management http interface me0
# commit

cisco灌ios

cisco灌ios

常碰到这样的情况,买了新的cisco设备(路由器,交换机),但不带ios,需要自己灌一个ios进去,或者ios系统崩溃了,不能进入,这时需要通过console口进如ROMMON模式,可以用zmodem传输,但速度太慢,用tftp速度好点

相关的命令
rommon> set
IP_ADDRESS=1.1.1.10
IP_SUBNET_MASK=255.255.255.0
TFTP_SERVER=1.1.1.1
DEFAULT_GATEWAY=1.1.1.1
TFTP_FILE={pc上ios文件名字}

然后可以用tftp传输文件了

重启后,可以进入配置模式
如果有多个ios或者bootflash,要制定用其中的一个的话,用以下命令
boot-start-marker
boot system flash disk2:c7200p-p-mz.120-33.S.bin //ios系统文件
boot bootldr bootflash:c7200p-kboot-mz.124-4.XD5.bin //bootflash文件
boot-end-marker

weathermap配合Cacti显示网络流量图(2)

weathermap配合Cacti显示网络流量图(2)

Cacti有个插件叫Advanced Ping,可以显示服务器到各个地方的ping延时和丢包率

,配合weathermap可以做出一个基于地图的延时和丢包率,看起来比较方便

首先用google地图,截图,大小看你要监控的范围而定,然后把图片文件放到/images目录下,在weathermap的editor里选map

properties里的背景图片,然后放置节点,建立连接,之后把连接与rrd文件一一对应,因为weathermap默认是显示带宽,所以要稍

微调节一下rrd文件,data source里面改成

TARGET gauge:/usr/local/apache2/htdocs/cacti-0.8.7e/rra/18/109.rrd:avg:loss

其中gauge是表示数据不用×8,因为rrd文件给的流量单位是byte,所以weathermap自动×8变成bit,而时间和丢包率是不用换算的

avg和loss是通过查看data source里面Turn On Data Source Debug Mode下显示出来的数据,类似这样
Data Source Debug

/usr/bin/rrdtool create \
/usr/local/apache2/htdocs/cacti-0.8.7e/rra/24/117.rrd \
–step 60 \
DS:loss:GAUGE:120:0:100 \
DS:avg:GAUGE:120:0:500 \
DS:max:GAUGE:120:0:500 \
DS:dev:GAUGE:120:0:500 \
DS:min:GAUGE:120:0:500 \
RRA:AVERAGE:0.5:1:500 \
RRA:AVERAGE:0.5:1:600 \
RRA:AVERAGE:0.5:6:700 \
RRA:AVERAGE:0.5:24:775 \
RRA:AVERAGE:0.5:288:797 \
RRA:MAX:0.5:1:500 \
RRA:MAX:0.5:1:600 \
RRA:MAX:0.5:6:700 \
RRA:MAX:0.5:24:775 \
RRA:MAX:0.5:288:797 \

都做完后weathermap自动生成的图

From Weathermap
weathermap配合Cacti显示网络流量图(1)

weathermap配合Cacti显示网络流量图(1)

weathermap是一个强大的cacti插件,可以显示网络即时流量或者延时的情况

首先cacti要能正常运行,然后下载weathermap,在cacti的plugin目录下解压,但这时weathermap并没有启用,要编辑cacti目录/included/global.php,加入

$plugins = array();   //找到此行,下边可以看到一堆$plugins[]
$plugins[] = ‘weathermap’   //加入此行

然后到Utilities->User Management->admin,把weathermap前边的几个框框勾上,使admin有权限运行,这样基本能用了

然后到/plugin/weathermap目录下把editor-config.php-dist重命名为editor-config.php,这样就可以编辑自己的网络拓扑图,但还要添加以下权限

chown www configs
chmod u+w configs

都做好以后,可以在weathermap的选项下单击editor,创建网络节点和链接,然后选则对应的网络Data Source,做完图后,在console->Management->Weathermaps添加就好了

下面图是随手做的,不太整齐,要追求好看的话用编辑器的命令行进行编辑

From Weathermap