Ⅰ 如何设计一个mysql性能监控的软件
首先介绍下 pt-stalk,它是 Percona-Toolkit 工具包中的一个工具,说起 PT 工具包大家都不陌生,平时常用的 pt-query-digest、 pt-online-schema-change 等工具都是出自于这个工具包,这里就不多介绍了。
pt-stalk 的主要功能是在出现问题时收集 OS 及 MySQL 的诊断信息,这其中包括:
1. OS 层面的 CPU、IO、内存、磁盘、网络等信息;
2. MySQL 层面的行锁等待、会话连接、主从复制,状态参数等信息。
而且 pt-stalk 是一个 Shell脚本,对于我这种看不懂 perl 的人来说比较友好,脚本里面的监控逻辑与监控命令也可以拿来参考,用于构建自己的监控体系。
三、使用
接着我们来看下如何使用这个工具。
pt-stalk 通常以后台服务形式监控 MySQL 并等待触发条件,当触发条件时收集相关诊断数据。
触发条件相关的参数有以下几个:
function:
∘默认为 status,代表监控 SHOW GLOBAL STATUS 的输出;
∘也可以设置为 processlist,代表监控 show processlist 的输出;
variable:
∘默认为 Threads_running,代表 监控参数,根据上述监控输出指定具体的监控项;
threshold:
∘默认为 25,代表 监控阈值,监控参数超过阈值,则满足触发条件;
∘监控参数的值非数字时,需要配合 match 参数一起使用,如 processlist 的 state 列;
cycles:
∘默认为 5,表示连续观察到五次满足触发条件时,才触发收集;
连接参数:host、password、port、socket。
其他一些重要参数:
iterations:该参数指定 pt-stalk 在触发收集几次后退出,默认会一直运行。
run-time:触发收集后,该参数指定收集多长时间的数据,默认 30 秒。
sleep:该参数指定在触发收集后,sleep 多久后继续监控,默认 300 秒。
interval:指定状态参数的检查频率,判断是否需要触发收集,默认 1 秒。
dest:监控数据存放路径,默认为 /var/lib/pt-stalk。
retention-time :监控数据保留时长,默认 30 天。
daemonize:以后台服务运行,默认不开启。
log:后台运行日志,默认为 /var/log/pt-stalk.log。
collect:触发发生时收集诊断数据,默认开启。
∘collect-gdb:收集 GDB 堆栈跟踪,需要 gdb 工具。
∘collect-strace:收集跟踪数据,需要 strace 工具。
∘collect-tcpmp:收集 tcpmp 数据,需要 tcpmp 工具。
Ⅱ linux如何开启nas服务
NAS服务器(Network Attached Storage:网络附属存储)是一种将分布、独立的数据整合为大型、集中化管理的数据中心,以便于对不同主机和应用服务器进行访问的技术。
Linux的系统选择
我选择的是Ubuntu 18.04。但是对于NAS来说,稳定且更新少是必要需求,所以我更加推荐Arch Linux。简洁干净,最好减少桌面配置,减少GPU占用。
系统安装
下载好.iso文件以后,用UltraISO烧录进U盘里。然后重启,按F12进入BIOS,检查启动列表,要打开UEFI启动选项。然后保存设置退出,按F8打开启动列表,选择UEFI 你的U盘。进入系统选择第一项,直接安装。关于硬盘配置,我只有一个SSD和一个HDD,所以把系统安装在SSD,让安装程序自动分区,HDD自动挂载用来做数据盘。其余没什么好说的,按照自己的需求一直下一部就行了。
SAMBA配置
一、安装Ubuntu SAMBA服务器 更新软件源:输入命令sudo apt-get update更新软件源
安装SAMBA服务:输入命令sudo apt-get install samba安装SAMBA服务器。
二、创建SAMBA配置文件
备份原配置文件:sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.bak
创建共享目录:sudo mkdir -p /你的共享文件夹路径#mkdir -p 用来创建路径中不存在的路径。
更新目录权限:sudo chmod -R 777 /你的共享文件夹路径 #chmod -R 可以给你共享的目录和该目录下所有文件和子目录进行相同的权限变更。777即所有用户对该目录都有读写权。
修改配置文件:sudo vim /etc/samba/smb.conf#没有vim的请输入命令sudo apt-get vimvim的使用方法
进入配置文件之后,按i进入编辑模式,把所有字段全部删除,输入以下配置(#号后注释文字可删除):
[global] #这里是全局设置workgroup = WORKGROUP #与Windows的工作组名保持一致security = user #这里是访问安全级别,user为最低安全等级,需要输入用户名和密码。(网上的教程中的的share权限在更新之后已经关闭了,输入share权限默认最高安全等级。)usershare owner only = false #给予其他设备访问权限public = yesbrowseable = yes[你的NAS Name] #这里是分享路径配置comment = User's NAS #这一段是标记,对配置没有影响。path = /你的共享文件夹路径 #写上你自己的共享路径read only = no #是否只读writeable = yes #是否可写browseable = yes #是否可浏览guest ok = yes #是否可以给其他用户使用public = yes #是否公开create mask = 0777 #创建权限directory mask = 0777 #目录权限vaild users = user #输入当前用户名 [你的NAS名字]#如果同一台机子你想分开共享路径,就把上面的配置复制到这里。
三、创建SAMBA用户
输入命令
sudo smbpasswd -a username
注意!在创建samba用户之前请确保有一个同名的linux用户。
如果想创建其他linux用户来使用samba,请输入命令sudo adser username来创建新用户
四、重启SAMBA服务 * 输入命令
sudo systemctl restart smbd
五、检查SAMBA服务是否正在运行 * 要检查samba 服务是否正在运行,请输入命令:
systemctl status smbd
systemctl status nmbd
要启用这两个服务,请运行以下命令:
sudo systemctl start smbd
sudo systemctl start nmbd
开始运行后,smbd将在139和445端口上侦听,若有无法访问,可以检查是否为端口封锁。
PS:Manjaro等Arch系用户请使用下面的命令来启用samba服务。
六、从其他设备访问SAMBA文件夹 * 在同一网络的Windows 设备上,打开此电脑,点击上方选项卡计算机,选择选项映射网络驱动器,在文件栏输入Host ip #你的NAS ip地址你的共享文件夹名 (此处可以不输入根目录)
然后就可以直接使用了。
离线下载和远程控制的配置
BT下载
一、BT软件下载
以下以Transmission为例进行介绍
输入命令:sudo apt-get install transmission下载transmission。
输入命令:sudo apt-get install transmission-daemon下载transmission的web管理端
这样你就可以在桌面打开了,可以在应用程序页面中找到启动应用程序应用,把transmission勾选进开机自启动。
二、web管理BT下载
打开Transmission,点击编辑选项,点击首选项选项卡,点击远程选项卡。打开远程连接选项,输入你觉得比较好记的端口。
在其他设备上打开浏览器,在地址栏输入你的NASIP和你刚刚设置好的端口,例如192.168.1.100:12345, 你就已经可以使用web来管理BT下载了。
如果想要更加美观的界面和更多的设置选项,可以继续以下步骤:
Transmission-web-control安装
1.获取最新脚本
输入命令:
2.执行安装脚本
离线下载
一、关于离线下载软件
二、Aria2安装与配置 * Aria2 下载 输入命令:sudo apt-get install aria2
Aria2完整安装:
Aria2 配置 vim 打开aria2.conf,将下列配置直接拷贝进文档内再自行进行编辑。
注意!注释号内的配置皆为不生效使用默认配置,如果要自定义配置一定要把配置前的注释号删除!
启动aria2
输入命令:sudo aria2c --conf-path=/etc/aria2/aria2.conf
如果没有提示错误,按ctrl+c停止运行命令,转为后台运行:
sudo aria2c --conf-path=/etc/aria2/aria2.conf -D
设置开机自动启动
输入命令创建:sudo vim /etc/init.d/aria2c
添加以下内容
修改文件权限:sudo chmod 755 /etc/init.d/aria2c
添加aria2c服务到开机启动:sudo update-rc.d aria2c defaults
启动服务:sudo service aria2c start
查看服务状态:sudo systemctl status aria2c
Aria2的使用
打开浏览器,在地址栏输入http://aria2c.com打开aria2的web管理器。打开右上角的设置,输入你的NAS机地址和你的aria2配置文件的端口,如果没有更改就是6800。
在chrome下载aria2插件,可以方便直接调用aria2下载东西,如果无响应可以直接拷贝链接下载。
三、关于Docker Docker功能正在研究学习,后续会更新。
配置NAS的远程管理
一、关于远程管理
个人推荐SSH多一些,毕竟Linux用命令还是多一些的,而Webmin会稍微直观一些。
二、SSH的配置 * 安装SSH
输入命令:sudo apt-get install ssh
启动服务:service sshd start
配置端口:vim /etc/ssh/sshd_config
去除Port前的注释键,自定义端口。
查看服务是否启动:ps -e | grep ssh
无报错且ssh-agent和sshd两个程序在运行即可。
Windows下载putty,输入你的NAS地址和端口即可远程使用Terminal来管理NAS主机。
三、Web管理
*Webmin安装
使用wget来下载包:
cd /你的下载目录
wget https://prdownloads.sourceforge.net/webadmin/webmin_1.910_all.deb
然后运行安装命令
dpkg --install webmin_1.910_all.deb
安装程序将会自动把Webmin安装进/usr/share/webmin目录内。如果没有任何报错,你就可以在其他设备中输入http://NASIPAddress:10000/,请自行更换NAS的IP。
若遇到缺少依赖的报错,请输入该命令解决依赖:apt-get install perl libnet-ssleay-perl openssl libauthen-pam-perl libpam-runtime libio-pty-perl apt-show-versions python
若安装依赖库的过程中报错为无法找到包,请输入vim /etc/apt/sources.list,检查最后一行是否以universe结尾。
在使用NAS时,需要先确定NAS上的NFS服务和SMB的服务都开启了;
然后需要用NAS上的用户去登录,这里用的是admin:
# smbclient -L 192.168.1.40 -U admin
Enter admin's password:
Domain=[WORKGROUP] OS=[Unix] Server=[Samba 4.1.20]
Sharename Type Comment
--------- ---- -------
IPC$ IPC IPC Service ()
Public Disk
Project Disk
PM_Team Disk
Member Disk
Layout_Team Disk
Domain=[WORKGROUP] OS=[Unix] Server=[Samba 4.1.20]
Server Comment
--------- -------
DISKSTATION_SH
PROSERVER Main Server
Workgroup Master
--------- -------
WORKGROUP PROSERVER
说明连接成功!
如果要使用NAS中的存储,需要挂载到Linux服务器中,例如:
# mount -o username=admin,password=********** //192.168.1.40/BackUp /mnt/nasBackup/
然后就可以使用了。