将WordPress上面的网站迁移至另外一台VPS

站长们可能会遇到一个问题,之前的VPS配置可能不够用了,所以需要换一个VPS(比如:搬瓦工VPS)。
  
一、打包源网站

打包一下源网站的数据,这个操作应该很简单,相信大家都会做。比如你的网站目录是/data/www/bwh.idcspy.com,那么我们打包一下这个目录:

zip -r oldtang.com.zip /data/www/bwh.idcspy.com

这样我们就在当前目录下生成了一个 bwh.idcspy.com.zip 的压缩文件,里面包含了网站的所有文件。

二、打包数据库

进入 phpmyadmin,然后选择对应的MySQL 数据库,导出即可,另存为 .sql 文件就行。
  
三、迁移数据

迁移也很简单,我们将 .zip 文件放到网站目录下,然后我们从新的 VPS 上直接 wget 这个文件即可。

wget http://bwh.idcspy.com/bwh.idcspy.com.zip

然后解压到新的 VPS 上对应的目录下

unzip bwh.idcspy.com.zip /data/www/bwh.idcspy.com

接下来导入数据库,进入新的 VPS 的 phpmyadmin 里面,选择对应的数据库,导入.sql 文件。

四、更改解析

将域名的解析从原来的搬瓦工VPS 指向新的搬瓦工VPS 的 IP 地址就可以了,然后等待解析生效。

Zabbix监控VPS主机详细教程

如果你还不知道或是不了解什么是Zabbix,可以先移步看看下面这篇文章:

企业级监控系统:Zabbix详细安装配置教程

在你初步了解并安装完Zabbix后,现在就可以跟着我的这篇文章来尝试使用Zabbix来监控自己的服务器或是VPS主机了。

进入正题:

我们先尝试监控宿主机,也就是安装Zabbix的这台机器。

点击-配置-主机-Zabbix server,如图:

未分类

在Agent代理程序的接口这里,将IP地址修改成我们的Zabbix服务器公网IP:

未分类

这样我们就完成了对宿主机的系统监控。在监测中-图形,选择对应名字的群组,然后选择对应的主机名,再选择要显示的图形,即可看到监控图表:

未分类

上图中我只是随便选择了一个CPU负载的图形,实际上可选的图形多的数不胜数,就比如这样:

未分类

再比如我们选择一个常用的,查看eth0网卡流量的图表:

未分类

以上,是我想让大家先稍微熟悉一下Zabbix的基本监控操作。

那么下面,我们该如何监控除宿主机以外的其他机器呢?

这里我用CentOS7做示范,在被监控的机器上我们需要安装Agentd客户端。

使用Xshell登录到你的被监控机器内,首先安装EPEL源:

yum -y install epel-release

安装监控所需的依赖组件(Zabbix监控Ping值、丢包率等必须安装fping):

yum -y install fping

一条命令即可安装完成Agentd:

rpm -ivh http://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-agent-3.4.7-1.el7.x86_64.rpm

注:更多其他系统的Agentd安装包可浏览:http://repo.zabbix.com/zabbix/3.4/

查找Agentd的配置文件:

find / -name zabbix_agentd.conf

编辑它:

vi /etc/zabbix/zabbix_agentd.conf

将Server=后面的IP地址修改成你的Zabbix服务端公网IP,如图所示:

未分类

最后启动Agentd:

zabbix_agentd

这样我们就在被监控的机器上安装好了客户端,那么下面就回到Zabbix的WEB界面内。

点击配置-主机-创建主机,如图所示:

未分类

填写主机名称、可见的名称以及选择一个合适的群组,然后在agent代理程序的接口这儿把IP地址修改成被监控机器的公网IP:

未分类

接着点击模版-选择链接指示器:

未分类

在弹出的新窗口内,我们可以看到各式各样的监控模版,这里假设LALA要监控Enoctus HKDC1 VPS的PING值和丢包率,我们就可以选择Template Module ICMP Ping,如图所示:

未分类

选择好了后,我们点击添加,确定链接指示器内有我们刚才选择的模版名后,再点击最下面的添加按钮,保存设置:

未分类

这样我们就把一台VPS主机加入到了Zabbix的监控列表中,此时Zabbix就在帮我们无时不刻的监控此VPS到Zabbix宿主机之间的Ping值、丢包率了。

但我们如何用图表的方式来查看监控的具体数据呢?这里我们就需要自己创建一个图形了,点击如图所示按钮:

未分类

右上角点击创建图形:

未分类

填写图形的名称,然后在监控项内点击添加按钮:

未分类

在弹出的新窗口中,我们可以看到之前添加的监控模版,都有哪些具体的监控项目,选择我们要显示在图形中的监控项目:

未分类

然后我们对图形的绘图风格进行适当的调整:

未分类

注:建议监控Ping值的时候,将ICMP response time的纵轴Y侧修改成:右。

然后我们就可以点击预览,来查看一下当前的图形显示状态:

未分类

这样,我们就配置好了一个监控Ping值、丢包率的监控项目。

同理,作为我们日常使用的话,除去添加一个监控Ping值、丢包率的模版外,还最常用到的必然是:Template OS Linux

方法一样,找到对应的模版名添加即可:

未分类

与之前不同的是,这个模版在添加完成后,会自动帮我们创建一些图形,而不再需要我们手动去添加。当然Zabbix也只是帮我们创建了一些最基本的图形:

未分类

如果你需要更多的图形,则还是需要手动添加,只不过这次可以添加的图形选择就很多了:

未分类

相信,你把这篇文章看到这里,就大概明白Zabbix添加监控某一个项目的具体方法了,无非流程就是这样:

1、在被监控的机器上安装Agentd客户端。

2、在Zabbix的WEB界面上创建主机,并填写被监控主机的IP地址。

3、使用Zabbix自带的模版,来添加监控项目。

4、绘制图形,用来显示监控项目的具体数据。

其实你理解后,就会发现操作起来很简单的,看,就只有4步。

但Zabbix作为一个企业级的监控软件,实际上可自定义的功能多的数不胜数,虽然内置的模版已经够强大了,但Zabbix并不局限于用模版来添加监控项目,实际上我们还可以自己手动来自定义某一个监控条件。

当然LALA不推荐各位使用接下来下面说的方法来监控,因为这些操作一般个人是根本使用不上的。

首先,我们点击监控项:

未分类

右上角创建监控项:

未分类

在这里有一个非常关键的键值:

未分类

点击选择,我们在新窗口中可以看到各式各样的“标准检测器”:

未分类

你们可以把“标准检测器”下面的这些键值理解成每一个键值都是一个监控项目,并且这些监控项目都是受高度DIY的,比如说监控的频率、时间、等等都是可以自定义的。

所以,这里我就点到为止,个人用户只是拿来监控VPS的话,根本不需要用到这些。当然如果你喜欢折腾,可以在这里尝试使用一下。

至此,我想你把文章看到这里,就应该基本知道该如何使用Zabbix来监控一个自己的项目了。现在让我们一起看看之前我们监控的Enoctus VPS各项数据展现如何。

网卡流量:

未分类

内存使用率:

未分类

CPU负载情况:

未分类

Ping值、丢包率情况:

未分类

空闲硬盘大小:

未分类

系统运行时间:

未分类

这里还有很多图形,就不一一列举了。在这里我想告诉大家的是,Zabbix还有一个强大的地方就在于图形的查看时间是可以自定义的,比如我上面的这些图形,有的是查看的1小时内的数据,有的是2小时内的数据,这里就用到了图形的缩放。那么Zabbix的缩放功能就在过滤器的下方。你们仔细看上面的几张图可以了解到。

至此,今天的教程就差不多结束了。

写在最后:

这里有一个Zabbix的小BUG,我觉得很有必要给大家提一下,顺带给大家一个修复办法。

如果你将Zabbix的WEB面板语言改成中文,那么图形内的中文会变成乱码,为何我文中的图形都没有乱码呢?因为我事先替换掉了Zabbix的WEB字体文件。

如何替换解决字体乱码?

1、找到你电脑系统内任何一款简体字(Windows/Fonts),把字体文件复制出来:

未分类

2、把字体文件上传到ZabbixWEB站点根目录下的fonts目录内,并把之前的字体重命名:

未分类

3、把我们刚上传的字体文件重命名为DejaVuSans.ttf:

未分类

如何关闭Agentd服务端?

查找Agentd进程PID:

ps -ef | grep zabbix_agentd

强制结束:

kill -9 进程PID

被监控机器无法正常和Zabbix的服务端通信?

关闭被监控机器内的防火墙:

systemctl stop firewalld.service
systemctl disable firewalld.service

Linux VPS采用Rsync实现网站文件/服务器数据同步增量备份

无论我们选择虚拟主机,还是选择VPS、服务器,最为关键的就是服务器中的数据。相对而言,选择优质服务商和服务器的意外几率会小一些,但也不是没有。因为服务器的意外不是商家和我们用户控制的,包括服务器中程序的问题,也可能是我们人为的操作问题。

如果网站数据量不大,我们可以采用定期人工备份或者利用定时备份脚本。一键包环境或者是WEB面板都带有自动备份到本地和远程服务器的功能。如果数据量较大,我们其实可以采用Rsync实现同步增量备份。下面的记录是通过Rsync实现文件同步增量备份的。
设置过程却是比较繁琐,如果我们普通项目用户可以使用商家自带的快照定时或者脚本环境带的自动备份功能,以及我们自己的定期备份。(本文来自:https://www.laobuluo.com/1070.html)

第一、准备工作

1、数据备份

如果我们没有把握一次性搞定,我们可以准备两台测试环境服务器实现Rsync同步备份功能之后再用到生产环境。如果用到生产环境,我们可以将服务器快照备份,或者将网站、项目数据备份。

2、服务器准备

这里我们采用的是Rsync同步增量备份,所以我们需要准备主服务器、以及一台备份服务器。鉴于数据备份后的功能,我们可以直接备份到备份服务器某一个目录,或者将备份服务器安装主服务器环境,将需要备份的网站项目备份到对应的同目录中。

3、端口开放

如果我们服务器没有设定iptables防火墙规则,那就不要设置端口。如果我们有设置iptables防火墙,那就需要将873端口添加放行。

vi /etc/sysconfig/iptables

打开iptables规则文档,添加:

-A INPUT -p tcp -m state --state NEW -m tcp --dport 873 -j ACCEPT

未分类

编辑保存之后,然后/etc/init.d/iptables restart重启才能生效。同样的方法,我们需要在主服务器和备份服务器同时设置。

第二、配置备份服务器

1、安装rsync

未分类

2、配置文件

vi /etc/xinetd.d/rsync

将配置文件disable参数从”yes”换成”no”。

3、创建配置文件

vi /etc/rsyncd.conf

创建文件,然后将下面脚本添加:

log file = /var/log/rsyncd.log
pidfile = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock
secrets file = /etc/rsync.pass
motd file = /etc/rsyncd.Motd
#创建一个模块名称,后面需要一致
[www.laobuluo.com]
#备份服务器目录地址
path = /home/wwwroot/www.laobuluo.com
#对应上面模块名称
comment = www.laobuluo.com
uid = root
gid = root
port = 873
use chroot = no
read only = no
list = no
max connections = 200
timeout = 600
#创建一个同步用户名,随便取,反正后面出现的时候要一致
auth users = www.laobuluo.com_user
#主服务器IP地址
hosts allow = xxx.xxx.xxx.xxx

根据我们网站项目以及服务器实际信息创建文件贴到配置文件中保存退出。

4、创建密码配对文件

vi /etc/rsync.pass

创建密码配对文件:

www.laobuluo.com_user:1234567890passwd

红色字段需要对应上面的auth users,蓝色部分是我们创建配对的密码。后面主服务器配置的时候也需要用到密码,所以必须一致。

5、开放权限和启动

chmod 600 /etc/rsyncd.conf
chmod 600 /etc/rsync.pass
service xinetd restart

未分类

第三、配置主服务器

1、安装rsync

yum install rsync xinetd -y

未分类

2、配置文件

vi /etc/xinetd.d/rsync

未分类

将配置文件disable参数从”yes”换成”no”。

3、创建密码配对文件

未分类

将我们上面在备份服务器中蓝色的密码丢进来,必须一致。

4、授权和启动

未分类

第四、配置主服务器

这一步我们继续配置主服务器,需要安装和配置inotify-tools来实现同步增量备份。

1、安装环境包

yum install make gcc gcc-c++ -y

未分类

2、下载和安装inotify-tools

cd /usr/local/src
wget https://download.laobuluo.com/tools/inotify-tools-3.14.tar.gz
tar -zxvf inotify-tools-3.14.tar.gz
cd inotify-tools-3.14
./configure --prefix=/usr/local/inotify
make
make install

未分类

3、配置环境变量

echo "PATH=/usr/local/inotify/bin:$PATH" >>/etc/profile.d/inotify.sh
source /etc/profile.d/inotify.sh
echo "/usr/local/inotify/lib" >/etc/ld.so.conf.d/inotify.conf
ln -s /usr/local/inotify/include /usr/include/inotify

4、配置参数

未分类

参考就脚本 – http://soft.laozuo.org/scripts/rsync.sh

修改自行的文件和目录,然后保存退出。

5、创建排除目录列表

vi /usr/local/inotify/exclude.list

创建一个排除目录,这里可以添加不同步的目录,一行一个目录。如果暂时没有可以留空,以后需要用到在添加。

6、授权和设置开机启动

chmod +x /usr/local/inotify/rsync.sh

这里我们授权。

vi /etc/rc.d/rc.local

最后一行添加:

sh /usr/local/inotify/rsync.sh &

未分类

第五、检测以及生效小结

1、检查生效

设置完毕之后,我们可以通过手工检查

sh /usr/local/inotify/rsync.sh &

在主服务器执行脚本,如果看到有目录在进度,说明完美,然后去备份服务器中可以看到已经备份到的文件目录。

未分类

2、自动生效

重启主服务器,然后就会自动生效。如果不放心我们可以在主服务器对应目录丢一个文件看看备份服务器是否有增加。

总结,这篇文章较为详细的将Linux VPS、服务器使用Rsync进行同步增量备份文件。

VPS建站:Mysql数据库日志大量占用磁盘空间导致速度缓慢

故障记录,仅供参考!使用 Linode vps 完成建站并且使用时间超过一年以上的学员可以检查一下。

最近帮学员解答问题的时候发现有个学员用 Linode 建的网站,网站内容很多,有上百个产品也有不少 blog 文章(做内容营销的)。他反映,用了一年多了,网站的速度最近感觉明显很慢很慢。

重点检查了一下缓存插件,发现是正常的。但是 FQ 访问并操作的时候明显感觉到很慢。

最后发现是 Linode 的磁盘空间快要满了,硬盘空间少会会导致网站速度慢,如果空间已满,还会导致网站无法访问。

检查了一下原因,是因为以前安装 lnmp环境安装包的时候程序默认不关闭 Mysql 的日志文件,导致在 /usr/local/mysql/var/ 下生成了许多名为 mysql-bin.0000* 的日志文件,每一个日志文件的大小都有1G,时间久了会占用硬盘空间。因此我们需要清理这些文件。

首先,xshell 连接 Linode 后,

执行命令查看磁盘空间

df -h

接着会出现类似下面这样的信息:

[root@li1207-110 ~]# df -h
Filesystem      Size  Used  Avail Use%  Mounted on
/dev/sda        20G   15.5G  3.5G  80%  /
tmpfs           493M  192K   493M   1%  /dev/shm

这位学员用的是5美金方案的 Linode,SSD硬盘 20G 容量,已用了 15.5 G 以上。

我们用 XFTP 到 /usr/local/mysql/var/ 下看一下,确实有几个较大的名为 mysql-bin.0000* 的文件。如:mysql-bin.000015,mysql-bin.000016 等等。。

清理 MySQL 日志文件

执行:/usr/local/mysql/bin/mysql -u root -p

接着提示 Enter password:

输入数据库管理员密码(root password of Mysql Database),注意输入的时候是不显示输入状态的,字符不可见。所以你可以在记事本上先写好密码,然后复制,再鼠标右键粘贴进去,粘贴进去的时候也不显示,直接回车即可。

然后会提示:mysql>

未分类

此时复制并执行下面的命令,注意复制的时候要包含分号,粘贴,回车执行。

reset master;

执行完后会提示类似于:“Query OK, 234 rows affected (12.3 sec)”,说明已经成功。

再输入:quit 退出 mysql 命令模式。

此时在 XFTP 窗口中点击刷新按钮,可以看到 /usr/local/mysql/var/ 下的名为 mysql-bin.0000* 的日志文件已经清理掉。(注意其他的文件不要去手动删除)

我们再次执行 df -h 命令。

[root@li1207-110 ~]# df -h
Filesystem     Size   Used  Avail Use%  Mounted on
/dev/sda       20G    8G    10G   42%   /
tmpfs          493M   192K  493M  1%    /dev/shm

可以看到空余了不少磁盘空间。

定期自动清理MySQL日志

用 Xftp 连接打开 VPS 的根目录,找到根目录下的 etc 目录,在该目录下有个名为 my.cnf 的文件。这个文件即为 MySQL 数据库的配置( cnf=Configuration) 文件。

下载(或 vi 命令)用 notepad++ 修改编辑打开它,可以看到这一行:

expire_logs_days = 10

这是代表数据库日志文件过10天就失效并清理。如果你的网站流量很大(或者将来会流量很大),那么即使是 10天产生的日志文件也会很大。

因此我们可以把 10 改成 5。上传覆盖原 my.cnf 文件,然后重启 mysql。

service mysql restart

这样每过 5 天就会自动清理日志。

我们也可以彻底禁用 MySQL 日志。

彻底禁用MySQL日志

修改/etc/my.cnf 文件,找到

log-bin=mysql-bin
binlog_format=mixed

在这两行前面加上#,将其注释掉。上传覆盖原 my.cnf 文件,然后重启 mysql。

未分类

centos 7 vps 发送gmail邮件(通过postfix与mailx)

用于发送邮件的邮箱必须先开启低安全性登录。

未分类

postfix就是打算替代sendmail的,sendmail删了吧。

yum remove -y sendmail

安装postfix及支持

yum install -y postfix mailx cyrus-sasl-plain

把发邮件的邮箱的账号密码替换后执行。

echo "[smtp.gmail.com]:587 [email protected]:xxxxxxxxx" > /etc/postfix/sasl_passwd

生成sasl_passwd.db

postmap hash:/etc/postfix/sasl_passwd

修改证书年限

cd /etc/ssl/certs/
vi Makefile
#把365改36500,有效期一百年,嘿嘿之后可以按需求改回来。

制作证书及ssl密钥,并移动

make server.pem
mv server.pem /etc/postfix/

修改postfix配置文件 /etc/postfix/main.cf ,清空替换成如下。

relayhost = [smtp.gmail.com]:587
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_security_options = noanonymous
smtp_tls_CAfile = /etc/postfix/server.pem
smtp_use_tls = yes

重启postfix

/bin/systemctl restart postfix.service

配置完成

可以通过下面命令查看postfix活动日志,排错就靠它了。

tail -f /var/log/maillog

发送测试邮件xxxx为收信地址

echo | mail -s 'is is a test l' [email protected]

如果成功那就是成功啦。