用zabbix agent2自带模板监控MySQL的Threads,Queries,InnoDB buffer pool,Operations, Connections 简单易懂,不需要自己写监控脚本。当数据库性能超过阈值时,生成告警通知管理员 ,DB可以快速排查故障问题以及规划容量 。
Mysql数据库安装步骤点击查看,已安装数据库此步骤可省略。
至少需要两台虚拟机进行试验:一台服务端(监控端)jk,一台客户端(被监控端) 必备条件以及装好agent2。
部署zabbix-agent2和验证,采集数据,检测其他虚拟机(服务器),在其他虚拟机上安装zabbix-agent2(go语言)。
关闭防火墙
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
systemctl disable --now firewalld
yum install ntpdate -y
同步时间,和时区
ntpdate -u ntp.huaweicloud.com
或(二选一,不要更改,更改可能会出现未知错误~)
ntpdate -u ntp.aliyun.com
查看时间
date
时区统一
mv /etc/localtime{,.bak}
ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
部署zabbix-agent2(go语言)
再操作一遍,安装 zabbix rpm 源(使用华为云zabbix源或者阿里云zabbix源)
#用华为云zabbix源
rpm -Uvh https://mirrors.huaweicloud.com/zabbix/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
sed -i 's#http://repo.zabbix.com#https://mirrors.huaweicloud.com/zabbix#' /etc/yum.repos.d/zabbix.repo
(源二选一,不要更改,更改可能会出现未知错误~)
或#是用阿里云zabbix 源
rpm -Uvh https://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
sed -i 's#http://repo.zabbix.com#https://mirrors.aliyun.com/zabbix#' /etc/yum.repos.d/zabbix.repo
安装zabbix-agent2
yum -y install zabbix-agent2
提示后输入y回车即可
ls -l /etc/zabbix/zabbix_agent2.conf
开机启动 zabbix-agent2
systemctl enable --now zabbix-agent2
yum -y install net-tools
查看端口
netstat -tnlp|grep zabbix
查看验证zabbix-agent2.service文件
ls /lib/systemd/system/zabbix-agent2.service
需要详细也可以cat查看
配置并修改文件
grep -Ev '^#|^$' /etc/zabbix/zabbix_agent2.conf
cat /var/run/zabbix/zabbix_agent2.pid (源的不同,可能有些变化)
ps -ef|grep zabbix
vi /etc/zabbix/zabbix_agent2.conf
:wq 退出保存
检查并查看修改了什么
grep -Ev '^#|^$' /etc/zabbix/zabbix_agent2.conf
改完一定都要重启zabbix_agent2
systemctl restart zabbix-agent2
一台服务端(监控端)jk 操作
返回值为1,说明ping通Mysql数据库
zabbix_get -s IP -p 10050 -k mysql.ping["tcp://IP:3306","用户名","密码"]
数据库按照以上链接配置完成了。
Mysql数据库安装步骤点击链接查看,已安装数据库此步骤可省略。记住用户名和密码,非常重要。
回到web端
配置-》模板-》agent2
为了数据库安全起见,创建数据库普通用户,用来监控数据库(建议只授予读取的权限)
mysql -u root -p
#修改密码
set password for root@localhost = password('自定义');
#开放远程连接
use mysql;
update user set user.Host='%' where user.User='root';
create user 'qgs'@'%' identified by 'qgs111'; #create user '用户名'@'%' identified by '密码';
grant select,process,super on *.* to 'qgs'@'%' identified by 'qgs111'; #grant select,process,super on *.* to '用户名'@'%' identified by '密码'; 允许所有ip连接(用通配符%表示),只允许指定IP地址链接将%去掉即可
flush privileges;
quit
只要用户名,密码,IP地址对得上就可以了
监控多台数据库操作如下
img选择更新等待即可