当前位置:   article > 正文

mysql远程监控linux服务器硬盘状态(详细)_mysql运行状态监控

mysql运行状态监控

一、数据库配置

1、查看linux内核信息:

hostnamectl

我的为Centos Linux 7

2、安装数据库

配置mysql数据库yum源

网址:MySQL :: Download MySQL Yum Repository

选择适合自己的内核版本进行安装(我是通过rpm的方式)

rpm -ivh https://dev.mysql.com/get/mysql80-community-release-el7-11.noarch.rpm

检查是否安装成功:

rpm -qa | grep mysql

如图:

使用yum安装mysql:
yum install -y mysql mysql-server mysql-devel

注:必须要安装Mysql客户端

检查mysql是否安装成功:
yum list | grep mysql-community

如图:

启动mysql服务:
  1. systemctl status mysqld #查看mysql状态
  2. systemctl start mysqld #开启Mysql

3、启动数据库

初始化登录

第一次登录数据库时,密码一般保存在/var/log/mysqld.log中,使用vim查看:

通过打开后搜索temporary即可定位找到相关信息行,如图:

登录

mysql -u root -p

输入输入该初始密码即可

修改密码
ALTER USER 'root'@'localhost' IDENTIFIED BY 'newpaswword';  #newpassword是你要修改的尼玛

提示修改成功,即可使用新密码进行root@localhost账户的登录

创建并授权一下面向所有主机的用户,以方便远程登入数据库

输入一下命令进行用户创建及授权:

  1. CREATE USER 'new_user'@'%' IDENTIFIED BY 'password'; #创建root用户,%表示所有主机地址。
  2. GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION; #授权该用户
使用过数据库进行linux服务器上mysql数据库连接(我用的时navicat)

连接测试成功即可。如果出现报错,可能是服务器Ip有误,或者是上一步账户授权有问题。

创建保存系统信息数据库表

先创建数据库:

CREATE DATABASE your_databasename;

创建表diskcheck_fb:

  1. CREATE TABLE `diskcheck_fb` (
  2. `avail` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '硬盘空余空间',
  3. `used` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '硬盘已用空间',
  4. `size` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '硬盘空间大小',
  5. `host` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '所检查主机ip',
  6. `mounted` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '所检查硬盘目录',
  7. `cpu` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT 'cpu使用率',
  8. `date` timestamp NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间'
  9. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 ROW_FORMAT=DYNAMIC;

4、配置shell文件,获取系统信息

查看系统磁盘信息(以最大磁盘的为例)
df -h

如图所示: 

创建shell文件dfstatus.sh
vim dfstatus.sh
配置shell文件
  1. #!/bin/bash
  2. echo 'dfstatus shell 20240416'
  3. # 检查 output.txt 文件是否存在,如果不存在则创建
  4. if [ ! -f "output.txt" ]; then
  5. touch output.txt
  6. fi
  7. # 清空 output.txt 文件内容
  8. > output.txt
  9. # 执行 df -h 命令获取硬盘分区信息
  10. df -h | awk '{
  11. filesystem = $1
  12. size = $2
  13. used = $3
  14. avail = $4
  15. use_percentage = $5
  16. mounted_on = $6
  17. # 声明变量并赋值
  18. file_system_name = filesystem
  19. total_size = size
  20. used_capacity = used
  21. available_space = avail
  22. usage_percentage = use_percentage
  23. mount_point = mounted_on
  24. # 只匹配文件系统名称为 /dev/mapper/centos_root 的数据
  25. if (filesystem == "/dev/mapper/centos_root") {
  26. total_size = substr(total_size, 0, length(total_size) - 1)
  27. available_space = substr(available_space, 0, length(available_space) - 1)
  28. used_capacity = substr(used_capacity, 0, length(used_capacity) - 1)
  29. usage_percentage = substr(usage_percentage, 0, length(usage_percentage) - 1)
  30. host="你的服务器ip地址"
  31. # 输出变量值到文件
  32. print file_system_name, total_size, used_capacity, available_space, usage_percentage, mount_point, host >> "output.txt"
  33. }
  34. }'
  35. echo 'dfstatus told you system info get success!'
  36. # 读取文件并输出变量值
  37. while IFS= read -r line; do
  38. fields=($line)
  39. file_system_name="${fields[0]}"
  40. total_size="${fields[1]}"
  41. used_capacity="${fields[2]}"
  42. available_space="${fields[3]}"
  43. usage_percentage="${fields[4]}"
  44. mount_point="${fields[5]}"
  45. host="${fields[6]}"
  46. echo "文件系统名称:$file_system_name"
  47. echo "总大小:$total_size"
  48. echo "已使用:$used_capacity"
  49. echo "可用空间:$available_space"
  50. echo "使用率:$usage_percentage"
  51. echo "挂载点:$mount_point"
  52. echo "主机地址:$host"
  53. TABLE="diskcheck_fb" #所要保存监控数据的表
  54. SQL_LIST="use yourdatabases" #所要使用的数据库
  55. mysql -h <你的linux服务器ip地址> -P 3306 -uroot -p<root账户的密码> << EOF
  56. $SQL_LIST
  57. INSERT INTO diskcheck_fb (avail,used,size,host,mounted,cpu,date) VALUES('$available_space','$usage_percentage','$total_size','$host','$mount_point',"$usage_percentage",NOW());
  58. EOF
  59. echo 'dfstatus told you insert db success!'
  60. done < output.txt

保存并退出

执行shell文件
sh dfstatus.sh

如图:

警告不用管,出现警告是因为我们shell文件登录时,将密码明文输入出来的原因。

此时我看看shell文件中你设置的数据库中的diskcheck_fb表中就会出现系统磁盘的数据。

5、定时任务设置

crontab设置
crontab -e
设置定时任务:
  1. * * * * * sh /home/dfstatus.sh # 你的dfstatus.sh的文件路径
  2. #(分)(时)(日)(月)(星期)
  3. #这种全星号的意思就是每分钟执行一次,可以根据实际情况进行调整。

保存并推出

检查定时任务
crontab -l

如图:

可以查看定时任务日志查看是否执行:

tail -f /var/log/cron  # 查看定时器的执行日志,看看有没有正常执行脚本!

配置成功

这样即可实现数据库监控系统实时磁盘数据。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/黑客灵魂/article/detail/960613
推荐阅读
相关标签
  

闽ICP备14008679号