公司线上的 MySQL 慢日志,之前一直没有做好监控。趁着上周空闲,我就把监控脚本写了下,今天特地把代码发出来与51博友分享一下。 针对脚本的注解和整体构思,我会放到脚本之后为大家

某医药公司现有1台服务器,安装Windows Server 2008 R2,运行专用管理软件,计算机上有USB加密狗。网络中有100个左右的工作站,安装专用客户端软件,连接到这台服务器,进行业务管理及应用。因为业务系统比较重要,医药公司想对这台服务器实现类似“双机热备”的功能,但公司预算有限,想让设计较低成本的高可用解决方案。

经过现场了解,发现该单位只有一台服务器(服务器有8GB内存、2块300G硬盘做的RAID1、2块网卡使用了其中的一块连接到网络)。该单位也没有其他多余的服务器。

因为传统的“双机热备”配置较为繁琐,成本较高,我们首先排除了这种方法。另外,由于该公司的管理软件是使用USB加密狗,双机热备可能对此不支持,或者支持也需要在双机热备的每个主机安装一个USB加密狗,这也是不现实的。

经过多方面考虑,我决定采用Windows Server 2012 R2的故障转移群集解决,并使用“USB共享软件”解决USB加密狗的问题,设计拓扑如图1-1所示。

图1-1-1 网络拓扑

在图1-1-1中,我们增加了两台服务器,其中A服务器的硬盘较大(配置了6块2TB的硬盘,使用RAID10划分),为该服务器配置了4GB内存,在该服务器上安装Windows Server 2012 R2,升级到Active Directory服务器,并安装“文件和存储服务”,将这个服务器配置为iSCSI的服务器端。另两台服务器B、C安装Windows Server 2012 R2,加入到Active Directory做成员服务器,安装故障转移群集及Hyper-V服务。其中B服务器是新购置的,为其配置了8GB内存、1块80~120GB的固态硬盘安装Windows
Server 2012。A服务器做的iSCSI存储服务器划分空间分配给这两台Hyper-V主机做共用存储。而原来的医药管理系统,则运行在Hyper-V的虚拟机中,由故障转移群集实现高可用性。将USB加密狗插在服务器A中,在A安装USB共享软件,共享该加密狗。在Hyper-V虚拟机中安装Windows Server 2008 R2、安装USB共享软件客户端、安装医药管理系统。

由于在服务器B、C配置了故障转移群集,并且虚拟机是保存在A提供的共享存储中,只要B或C有任意一个主机正常工具,虚拟机D即可正常运行,保证业务系统不致中断。当D在B或C切换时,USB共享不受影响。

为了保证服务器A、B、C的网络连通性,使用Windows Server 2012的“网卡成组”功能,将每个服务器的多个网卡绑定成同一组,只要每台服务器上有任意一个网卡连通,就能保证网络畅通。

在正式配置系统之前,将C服务器原来的医药管理系统数据备份出来(主要是数据库文件,因为C服务器有本地硬盘,将数据备份在D分区即可,在C分区重新安装Windows Server 2012 R2,在配置好虚拟机D盘,通过“共享文件夹”,将数据恢复到虚拟机D中即可,这些不做详细的介绍),下面主要介绍故障转移群集、USB共享等主要内容。

1 配置Active Directory及iSCSI存储服务器

在服务器A中,进入RAID卡配置界面,将6块硬盘使用RAID10技术划分成2~4个逻辑磁盘,其中第1个逻辑磁盘80~120GB左右,用来安装操作系统,剩下的可以划分成一个逻辑磁盘(这要看RAID卡的配置是否支持单一分区超过2TB),也可以每2TB划分一个逻辑磁盘。在有6块2TB的硬盘做RAID10时,总的可用空间是3个磁盘的容量,大约为5.5TB左右(在我们的示例中,划分为2个2TB、1个1.47TB的逻辑磁盘)。

划分好逻辑磁盘之后,在服务器上安装Windows Server 2012 R2,设置计算机的名称为mh03,并升级到Active Directory,在本示例中,设置Active Directory域名为heinfo.edu.cn。之后,添加角色和功能,在“文件和存储服务→文件和iSCSI服务”中选择“iSCSI目标存储服务提供程序”及“iSCSI目标服务器”两种角色,如图1-1-2所示。

图1-1-2 添加文件和iSCSI服务

添加为iSCSI服务之后,在“服务器管理器→文件和存储服务→iSCSI”中,为服务器B、C创建iSCSI虚拟磁盘并为其分配iSCSI目标,主要步骤如下。

(1)在“服务器管理器→文件和存储服务→iSCSI”中,单击“若要创建iSCSI磁盘,请启动‘新建iSCSI虚拟磁盘’向导”链接,如图1-1-3所示。

图1-1-3 启动新建iSCSI虚拟磁盘向导

(2)在“选择iSCSI虚拟磁盘位置”对话框,在“存储位置”选择要为服务器B、C分配的虚拟磁盘位置,在此选择E盘,如图1-1-4所示。在实际的环境中,请大家根据你的服务器的配置进行选择。

图1-1-4 选择iSCSI虚拟磁盘位置

(3)在“指定iSCSI虚拟磁盘名称”对话框,在“名称”文本框中为将要新建的虚拟磁盘指定一个名称,在此设置名称为“Hyper-VHDXs”,如图1-1-5所示。

图1-1-5 指定iSCSI虚拟磁盘名称

(4)在“指定iSCSI虚拟磁盘大小”对话框,为新建虚拟磁盘设置大小,在此设置为500GB(你可以根据实际情况选择,例如你可以为其分配更大的空间,例如1.5TB甚至更大),并选择“固态大小”,这样可以为虚拟机提供较好的性能,如图1-1-6所示。如果以后虚拟磁盘空间不够,可以创建新的虚拟磁盘,并将其分配给虚拟机,使用“动态卷”功能扩展。

图1-1-6 指定iSCSI虚拟磁盘大小

(5)在“分配iSCSI目标”对话框,选择“新建iSCSI目标”,如图1-1-7所示。

图1-1-7 分配iSCSI目标

(6)在“指定目标名称”对话框,为新建目标设置名称及描述信息,在此设置名称为“Hyper-V-VM”,设置描述信息为“172.18.96.4、172.18.96.10”,表示这是为IP地址为172.18.96.4及172.18.96.10的服务器B、C分配,如图1-1-8所示。

图1-1-8 指定目标名称

(7)在“指定访问服务器”对话框,单击“添加”按钮,如图1-1-9所示。

图1-1-9 指定访问服务器

(8)在“选择用于标识发起程序的方法”对话框中,选择“输入选定类型的值”,在“类型”下拉列表中选择“IP地址”,然后在“值”文本框中输入第1台服务器的IP地址172.18.96.4,如图1-1-10所示,然后单击“确定”按钮返回到“指定服务器”对话框,再次单击“添加”按钮,添加第2台服务器的IP地址172.18.96.10。

图1-1-10 标识发起程序

(9)返回到“指定服务器”对话框中,可以看到,已经添加了服务器B、C的地址,如图1-1-11所示。如果还有其他服务器,则可以再次单击“添加”按钮添加。

图1-1-11 指定访问服务器列表

(10)在“启用身份验证”对话框中,选择是否启用CHAP协议进行身份验证,在此直接单击“下一步”按钮,如图1-1-12所示。

图1-1-12 启用身份验证

(11)在“确认选择”对话框中,检查设置是否正确,无误之后单击“创建”按钮,如图1-1-13所示。

图1-1-13 确认选择

(12)之后向导将开始创建iSCSI虚拟磁盘、分配iSCSI目标,创建完成后,在“查看结果”中可以看到,如图1-1-14所示。

图1-1-14 查看结果

(13)创建完成之后,返回到“服务器管理器”,如图1-1-15所示。

图1-1-15 创建iSCSI虚拟磁盘及分配目标完成

最后打开“高级安全Windows防火墙”,为iSCSI服务启用“iSCSI 服务(TCP-In)”、“iSCSI目标(TCP-In)”、“iSCSI目标服务(RPC-In)”等三个服务,默认情况下这三个服务没有开启,iSCSI客户端将不能连接服务器。如图1-1-16所示。

图1-1-16 在防火墙中开启iSCSI服务端口

2 在服务器A上安装USB共享服务器端软件

在服务器上安装USB共享服务器端软件,然后插上USB加密狗,安装USB加密狗驱动程序,并将USB加密狗共享,主要步骤如下。

(1)安装usb over netork server 4.7.4版本,该版本支持64位的Windows Server 2012 R2,如图1-2-1所示。

图1-2-1 安装USB共享服务器端软件

(2)该软件安装很简单,使用默认值安装就可以,如图1-2-2所示。

图1-2-2 安装完成

安装完成后,在服务器上插上USB加密狗,然后安装USB加密狗驱动程序,如图1-2-3所示。在你的生产环境中,如果需要共享USB加密狗,请安装你的加密狗驱动程序。

图1-2-3 安装USB加密狗驱动程序

之后运行usb over netork server,在“My Computer”中列出可以共享的USB设备,检查USB加密狗是否已经识别,如果没有识别,在第一次安装USB加密狗驱动程序后,可能需要重新启动一次计算机才能识别。识别之后,用鼠标右键单击,在弹出的快捷菜单中选择“Share”,共享该设备,如图1-2-4所示。

图1-2-4 共享设备

在共享之后,该设备状态为“等待连接”,如图1-2-5所示。

图1-2-5 等待连接的USB共享设备

最后,在“高级安全Windows防火墙”中,还要启用“usb over netork server”策略,如图1-2-6所示。

图1-2-6 启用防火墙策略

3 为Hyper-V主机添加iSCSI磁盘

在服务器B、C上安装Windows Server 2012 R2,然后根据图1-1-1所规划内容,将计算机加入到Active Directory,并安装Hyper-V服务。安装Hyper-V服务比较简单,在“服务器管理器”,添加角色和功能,在“选择服务器角色”中添加“Hyper-V”服务,如图1-3-1所示。

图1-3-1 添加Hyper-V角色

在安装完Hyper-V及故障转移群集之后,根据提示重新启动计算机。

之后在Hyper-V主机上,需要使用iSCSI发起程序连接存储服务器并在磁盘管理中初始化新添加的共享存储、创建分区、格式化并分配盘符之后才能使用。下面介绍在MH04主机上添加iSCSI存储的方法,另一主机也要执行相同的操作。

(1)在“服务器管理器”中,从“工具”菜单选择“iSCSI发起程序”,如图1-3-2所示。

图1-3-2 iSCSI发起程序

(2)弹出“Microsoft iSCSI”对话框,单击“是”按钮启动该服务,如图1-3-3所示。

图1-3-3 启动iSCSI服务

(3)打开“iSCSI发起程序 属性”对话框,在“发现”选项卡中,单击“发现门户”按钮,在弹出的“发现目标门户”对话框中输入存储服务器的IP地址,本例中为172.18.96.3,然后单击“确定”按钮,如图1-3-4所示。

图1-3-4 添加iSCSI存储服务器

(4)然后单击“目标”选项卡,在“己发现的目标”中列表出了添加的存储服务器,但当前状态为“不活动”,单击“连接”按钮,在弹出的对话框中单击“确定”按钮,如图1-3-5所示。如果为该存储服务器添加了多个路径,可以选中“启用多路径”。

图1-3-5 连接目标

(5)然后打开“计算机管理”,在“存储→磁盘管理”中,可以看到存储服务器分配的空间,为该磁盘“联机”、初始化,并创建分区,最新用NTFS文件系统格式化,并为该存储分配一个盘符,如图1-3-6所示。

图1-3-6 为新添加共享存储创建分区并分配盘符

对于另一台Hyper-V主机,也要重复(1)~(5)的步骤,只不过不再需要初始化、格式化磁盘,因为在第一台主机连接该共享存储时已经进行了格式化的工作,在另一台主机上,直接为添加的共享存储,分配同一盘符即可。

4 配置Hyper-V虚拟交换机

在配置群集之前,要加入群集的Hyper-V主机,需要具有相同的“虚拟交换机”名称,如果虚拟交换机名称不同,则配置群集时会出现错误。在下面的操作中,将会把两台Hyper-V主机的虚拟交换机改为同一个名称“vlan2006”,你可以根据你的实际情况,修改为有一定意义的名称。在我的网络中,vlan2006的所属网段即是172.18.96.0/24,所以这样设置。

(1)在“Hyper-V管理器”中,右击Hyper-V主机名称,在此选择MH04,在弹出的快捷菜单中选择“虚拟交换机管理器”,如图1-4-1所示。

图1-4-1 虚拟交换机管理器

(2)在“虚拟交换机属性”中,在“名称”标签处,修改虚拟交换机名称,在此命名为vlan2006,如图1-4-2所示。然后在“外部网络”中,选择该虚拟交换机连接的网卡,如果你使用了单独的网卡,请从“外部网络”列表中选择对应的网卡;如果你启用了“网卡成组(team)”功能,在此需要选择成组网卡的名称,不要选择team中的某一个网卡。

图1-4-2 虚拟交换机属性

(3)修改好Mh04的虚拟交换机属性后,再修改另一台主机mh10的虚拟交换机,同样命名为vlan2006,如图1-4-3所示。

图1-4-3 修改另一Hyper-V主机的虚拟交换机

5 配置故障转移群集

在配置好Hyper-V主机,并添加了iSCSI共享磁盘后,接下来安装配置“故障转移群集”服务,下面一一介绍。

5.1 安装故障转移群集服务

首先要在每台主机中安装“故障转移群集”服务,下面以在MH04安装为例,主要步骤如下。

(1)在MH04的主机中,打开“服务器管理器”, 在“所有服务器”中,将MH10添加到列表中,然后右击MH04,在弹出的快捷菜单中选择“添加角色和功能”,如图1-5-1所示。

图1-5-1 添加角色和功能

(2)在“选择安装类型”对话框,单击“基于角色或基于功能的安装”单选框,如图1-5-2所示。

图1-5-2选择安装类型

(3)在“选择目标服务器”,选择“从服务器池中选择服务器”,在“名称”列表中选择要安装角色的服务器,在此先选择“mh04.heinfo.edu.cn”,等这台服务器安装完成后,再运行安装向导,安装mh10。如图1-5-3所示。

图1-5-3 选择目标服务器

(4)在“选择功能”对话框中,单击并选中“故障转移群集”,如图1-5-4所示。

图1-5-4 故障转移群集

(7)在“确认安装所选内容”对话框中,单击并选中“如果需要,自动重新启动目标服务器”单选框,然后单击“安装”按钮,开始安装,如图1-5-5所示。

图1-5-5 确认安装所选内容

(8)在“安装进度”中显示了安装故障转移群集的进度,安装完成后单击“关闭”按钮,如图1-5-6所示。

图1-5-6 安装进度

之后参照(3)~(8)的步骤,在MH10主机上也安装故障转移群集。这些不再介绍。

5.2 验证群集配置

在主机中都安装故障转移群集之后,开始验证并创建群集。首先要验证群集。

(1)在“服务器管理器→所有服务器”中,从“工具”菜单中选择“故障转移群集管理器”,如图1-5-7所示。

图1-5-7 故障转移群集管理器

(2)打开“故障转移群集管理器”,单击“验证配置”链接,如图1-5-8所示。

图1-5-8验证配置

(3)在“开始之前”对话框,单击并选中“不再显示此页”单选框,如图1-5-9所示。

图1-5-9开始之前

(4)在“选择服务器或群集”对话框中,在“输入名称”文本框中输入“mh04;mh10”然后单击“添加”按钮,将这两台服务器添加到“选定的服务器”列表中,如图1-5-10所示。

图1-5-10选择服务器或群集

(5)在“测试选项”,单击“运行所有测试”单选框,如图1-5-11所示。

图1-5-11测试选项

(6)在“确认”对话框,显示了测试的内容,包括要测试的服务器及测试的选项,如图1-5-12所示。

图1-5-12 确认测试内容

(7)在“摘要”对话框中,显示了测试的结果,如图1-5-13所示。可以单击“查看报告”按钮,查看测试报告。或者单击“完成”按钮,开始使用经过验证的节点创建群集。

图1-5-13 摘要

5.3 创建群集

在运行测试并且测试都成功之后,进入创建群集向导对话框,开始创建群集,步骤如下。

(1)在“开始之前”显示了群集的介绍,如图1-5-14所示。

图1-5-14 创建群集向导

(2)在“用于管理群集的访问点”对话框中,设置群集名称及群集IP地址,在此设置群集名称为“Cluster”,设置群集管理地址为172.18.96.16(该IP未在网络上分配),如图1-5-15所示。

图1-5-15 设置群集名称及管理IP地址

(3)在“确认”对话框,根据情况选择,是否“将所有符合条件的存储添加到群集”的选项,如图1-5-16所示。

图1-5-16 确认

【说明】如果你的群集是使用SAS或FC光纤连接到存储,则取消选中“将所有符合条件的存储添加到群集”的选项,否则可能会将主机中的所有硬盘添加到群集,这样会造成错误,你可以取消该项选择,而在安装之后,手动添加存储。

(4)在“摘要”对话框,显示了群集的创建结果,如图1-5-17所示,创建群集完成。

图1-5-17创建群集完成

如果创建群集出错,例如这两台主机原来已经创建过群集但卸载不完全,有可能出现图1-5-18的错误信息。

图1-5-18创建群集出错

如果是这种错误,请依次在群集中每台主机上,使用PowerShell,执行clear-clusternode命令,清除群集节点,如图1-5-19所示。

图1-5-19 清除节点信息

等在每台主机执行该命令后,重新创建群集即可成功。

5.4添加群集磁盘

在创建群集之后,向群集中添加符合条件的磁盘用于群集存储,步骤如下。

(1)在“故障转移群集管理器”控制台中,右击“存储→磁盘”,在弹出的快捷菜单中选择“添加磁盘”,如图1-5-20所示。

图1-5-20添加磁盘

(2)在“将磁盘添加到群集”对话框中,选择共用的磁盘,单击“确定”按钮添加,如图1-5-21所示。

图1-5-21 选择群集共用的磁盘

(3)添加之后的磁盘显示为“可用存储”,需要将“可用存储”添加为“群集共享卷”,只有这样磁盘才能为群集所使用,如图1-5-22所示,用鼠标右键单击存储,在弹出的快捷菜单中选择“添加到群集共享卷”。

图1-5-22 可用存储

(4)将可用存储添加为“群集共享卷”之后,磁盘访问路径变更为C:\ClusterStorage\Volume1、C:\ClusterStorage\Volume2等,如图1-5-23所示。如果还有其他磁盘用于群集共享,则依次添加。

图1-5-23添加到群集共享卷

(5)打开“资源管理器”,可以查看每个卷的内容,如图1-5-24所示。

图1-5-24群集共享卷磁盘及内容

5.5 更改虚拟机存储为共享存储

在配置了故障转移群集之后,为了实现高可用性,需要修改虚拟机的默认保存位置,以后新建的虚拟机可以直接保存在群集共享卷上。

(1)打开“Hyper-V管理器”,修改MH04的Hyper-V设置,如图1-5-25所示。

图1-5-25 Hyper-V设置

(2)修改“虚拟硬盘”路径为C:\ClusterStorage\Volume1\Hyper-V\、修改“虚拟机”路径为C:\ClusterStorage\Volume1\Hyper-V\,如图1-5-26所示。

(3)之后修改MH10的“Hyper-V设置”,将“虚拟硬盘”路径为C:\ClusterStorage\Volume1\Hyper-V\、修改“虚拟机”路径为C:\ClusterStorage\Volume1\Hyper-V\,如图1-5-27所示。

 

图1-5-26修改MH04虚拟硬盘及虚拟机默认路径 图1-5-27 MH10虚拟硬盘与虚拟机默认路径

5.6 在群集中创建虚拟机

经过上面一系列的配置,就可以在“故障转移群集”中创建虚拟机D,并在虚拟机D中安装医药管理系统、安装USB共享客户端,连接到USB加密狗,实现高可用了。首先介绍新建虚拟机的方法,主要步骤如下。

(1)在“故障转移群集管理器”中,右击“角色”,在弹出的快捷菜单中选择“虚拟机→新建虚拟机”,如图1-5-28所示。

图1-5-28 新建虚拟机

(2)在“新建虚拟机”对话框,选择用于创建虚拟机的目标群集节点,在“群集节点”中选择一个可用的节点,在此选择MH04,如图1-5-29所示。

图1-5-29 选择节点主机

(3)在“指定名称和位置”对话框中,为新建虚拟机设置名称及保存位置,在此设置虚拟机名称为ws08r2_172.18.96.18,保存在C:\ClusterStorage\Volume1\Hyper-V\ ws08r2_172.18.96.18文件夹中,如图1-5-30所示。说明,在创建Hyper-V的虚拟机时不会新建新的文件夹,为了后期管理方便,请管理员自己添加文件夹。

图1-5-30 指定虚拟机名称及保存位置

(4)在“指定代数”对话框,选择“第一代”,如图1-5-31所示。在Windows Server 2012 R2的Hyper-V中,第二代虚拟机只支持64位的Windows Server 2012或Windows 8或以后的系统,并不支持Windows Server 2008。

图1-5-31 虚拟机代数

(5)在“分配内存”对话框,为虚拟机分配内存,在此实验环境中选择1024MB,如图1-5-32所示。如果在实际的生产环境,在虚拟机运行SQL Server及IIS的情况下,至少要为虚拟机分配4~8GB内存。

图1-5-32 分配内存

(6)在“配置网络”对话框,在“连接”下拉列表中,选择vlan2006,如图1-5-33所示。

图1-5-33 配置网络

(7)在“连接虚拟硬盘”对话框,选择“新建虚拟硬盘”,如图1-5-34所示。在Hyper-V中,默认虚拟硬盘为127GB,最大为64TB。

图1-5-34 新建虚拟硬盘

(8)在“安装选项”对话框,选择要安装操作系统的方法,如图1-5-35所示,请你根据实际情况选择。

图1-5-35 安装选项

(9)在“正在完成新建虚拟机向导”对话框,单击“完成”按钮,新建虚拟机完成,如图1-5-36所示。

图1-5-36 完成新建虚拟机向导

(10)之后“高可用性向导”会为虚拟机配置高可用性,如图1-5-37所示。

图1-5-37 为虚拟机配置高可用性

(11)为虚拟机配置为高可用性,会弹出“摘要”对话框,显示配置结果,单击“完成”按钮,如图1-5-38所示。

图1-5-38 摘要

5.7 在虚拟机D中安装USB客户端

最后,在虚拟机D中安装Windows Server 2008 R2,安装Hyper-V集成插件,最后安装USB共享客户端、安装USB加密狗驱动、安装医药管理系统,在本节主要介绍USB共享客户端的安装与使用,其他不再介绍。

(1)在虚拟机安装Windows Server 2008 R2,并按照图1-1-1的拓扑图规划,设置IP地址为172.18.96.18。

(2)安装“usb over network client 4.7.4”客户端软件,如图1-5-39所示。

图1-5-39 安装USB共享客户端软件

(3)该软件安装比较简单,一般按照默认值即可完成安装。在安装的过程中,弹出“Windows安全对话框”,单击“安装”按钮,确认安装“Fabula Tech系统设备”,如图1-5-40所示。

图1-5-40 确认安装设备

(4)安装完成后,单击“Finish”按钮,如图1-5-41所示。

图1-5-41 安装完成

(5)安装完成后,运行USB over Network Client,右击“My Computer”,在弹出的快捷菜单中选择“Add”按钮,如图1-5-42所示。

图1-5-42 添加

(6)在弹出的“Add Remote USB Server”对话框中,在“Remote IP address of computer name”对话框中,输入远程USB共享服务器端的地址,在本例中为172.18.96.3,共享端口默认为33000,并选择“Automatically connect all shared USB devices from server(自动连接服务器上所有共享的USB设备)”,如图1-5-43所示,这样会自动连接USB共享服务器上所有共享的设备。

图1-5-43 连接USB共享服务器

(7)连接之后,当前计算机会通过网络,自动连接USB共享服务器(172.18.96.3)上共享的USB加密狗,如图1-5-44所示。

图1-5-44 连接的USB加密狗

之后再在虚拟机D中安装USB加密狗驱动程序、安装医药管理系统,并恢复数据到虚拟机D,至此系统配置完成。

在以后使用的过程中,只要服务器B或C有任意一台主机工作,整个业务系统即不会中断,实现了系统的高可用性。另外,我们的应用只是创建了一个虚拟机,为一个虚拟机实现高可用,实际上,在配置了服务器A、B、C这一个基本平台后,只要服务器B、C的资源足够,可以创建多个虚拟机,为多个应用实现高可用。

欢迎大家访问我的个人网站 萌萌的IT人

时间: 2024-10-15 04:00:09

公司线上的 MySQL 慢日志,之前一直没有做好监控。趁着上周空闲,我就把监控脚本写了下,今天特地把代码发出来与51博友分享一下。 针对脚本的注解和整体构思,我会放到脚本之后为大家的相关文章

MySQL慢日志监控脚本实例剖析

公司线上的 MySQL 慢日志,之前一直没有做好监控.趁着上周空闲,我就把监控脚本写了下,今天特地把代码发出来与51博友分享一下. 针对脚本的注解和整体构思,我会放到脚本之后为大家详解. #!/bin/bash # # 本脚本用来在指定频率内监控 MySQL 慢日志的变化,并在发生增长时及时报警 # Written by sunsky # Mail : [email protected] # Date : 2014-11-17 10:00:00 # MON_FILE="$2"   # 

线上多服务管理工具实例剖析

公司线上对nginx.tomcat和jar包的java应用的服务管理脚本之前都是单独分离开的,这样子就造成了运维人员在跳板机上进行服务管理的时非常的不方便.特别是把这些服务管理框架纳入到自动化管理平台时,没有一个统一的服务管理接口去使用. 因此,在空的时候,我就将多个服务的管理脚本融合在了一起,将他做成一个工具,这样子就减少了服务管理的杂乱. 废话不说了,下面就是脚本内容,文章结尾我会简单介绍该脚本的思路. #!/bin/bash # # 本脚本用来对系统上的多服务进行管理操作 # 目前仅支持n

Fiddler调试线上JS代码

强力推荐一款js调试神器,Fiddler 大家平时肯定都用过火狐的Firebug或者谷歌的调试工具来调试JS,但遗憾的是我们不能像编辑html,css那样来直接新增或者删除JS代码. 虽然可以通过调试工具的控制台来动态执行JS代码,但有时候却远远不够用. 特别是当产线环境不能随意修改文件情况下,用线上环境来调试本地代码更是迫切的需求. (往往本地测试通过,上线后却是各种bug.) 今天分享一下如何用Fiddler来修改并调试线上的JS代码. 以博客园首页为例子,用我本地的一个js文件来替换它的一

线上nginx访问日志切割脚本

1.说明 随着时间的增加,nginx 的访问日志会越来越大,下图是新部署的线上 zabbix 监控网站运行了十几天左右产生的访问日志达到213M. 所以必须进行日志分割,要求如下: 1.每天的日志单独生成一个文件 2.保留30天的访问日志 2.编写脚本 vim /usr/local/nginx/logs/nginx_log_rotate.sh #! /bin/bash logs_path="/usr/local/nginx/logs/" log_name="access.lo

线上日志分析与其他一些脚本

对一些线上常用的脚本进行了一下总结和说明,免得以后忘记了~ 一·线上发布API集群的代码脚本: #!/bin/bash #Author CCC host=' 10.44.22.113 10.44.22.113 10.44.22.112 10.44.22.112 10.44.22.113 10.44.22.113 10.44.22.114 10.44.22.114 10.44.22.115 10.44.22.115 10.44.22.119 10.44.22.119 ' #basePath='/v

线上MYSQL同步报错故障处理总结(转)

前言 在发生故障切换后,经常遇到的问题就是同步报错,数据库很小的时候,dump完再导入很简单就处理好了,但线上的数据库都150G-200G,如果用单纯的这种方法,成本太高,故经过一段时间的摸索,总结了几种处理方法. 生产环境架构图 目前现网的架构,保存着两份数据,通过异步复制做的高可用集群,两台机器提供对外服务.在发生故障时,切换到slave上,并将其变成master,坏掉的机器反向同步新的master,在处理故障时,遇到最多的就是主从报错.下面是我收录下来的报错信息. 常见错误 最常见的3种情

MySQL 5.6.24 线上版本配置文件解析

线上MySQL服务器配置文件解析 innodb_buffer_pool_size 非常重要的一个参数,用于配置InnoDB的缓冲池,如果数据库中只有哦Innodb表,则推荐配置量为总内存的75% select  engine,round(sum(data_length + index_length)/1024/1024,1) as 'Total MB' from information_schema.tables  where table_schema not in ('information_

线上一个简单检测Ping状态的邮件报警脚本

Step1.安装sendmail来发邮件 # yum -y install sendmail # /etc/init.d/sendmail start # chkconfig sendmail on Step2.安装邮件客户端 # yum -y install mutt 2.1添加发件人信息,如下 # vim /etc/Muttrc set charset="utf-8"           #设置发邮件编码 set envelope_from=yes set rfc2047_para

线上使用zabbix报警脚本(含图片)

分享一个线上使用的自定义zabbix报警脚本,脚本思路大致如下: 1.使用爬虫获取报警图片(前提是要获得报警的item) 2.将图片与邮件内容整合 3.发送邮件 4.日志记录 脚本内容如下: #!/usr/bin/python #coding:utf-8 import sys,time,re,os,glob import smtplib from email.mime.text import MIMEText from email.mime.image import MIMEImage from