java监控mysql_监控 MySQL的多种方法

本文介绍了多种监控MySQL服务是否正常运行的方法,包括通过检查端口、进程数、版本信息,以及编写简单的shell脚本来自动化监控。此外,还提到了结合使用这些方法的组合脚本,并给出了具体的示例代码。同时,文章也提及了使用curl和nmap等工具监控web服务状态的方式。
摘要由CSDN通过智能技术生成

判断mysql是否正常的几种方法

#################################

方法1:看端口

netstat -lntup|grep 3306|wc -l

lsof -i :3306 |wc -l

远程:

/telnet/nc/nmap

#################################

方法2:看进程

ps -ef |grep mysqld|wc -l

#################################

方法3:进入mysql 看版本

[root@LAMP ~]# mysql -uroot -e "select version();"

+-----------+

| version() |

+-----------+

| 5.1.72    |

+-----------+

[root@LAMP ~]# echo $?

0

[root@LAMP ~]#

mysql -uroot -e "select version();" &>1 >> /dev/null ; echo $?

#################################

方法4:让开发写java或者php等程序监控

#################################

方法5:使用上面4中监控方法的组合

######################################

######################################

脚本1

[root@LAMP script]# cat mysqlif.sh

#!/bin/sh

port=`netstat -lnt|grep 3306|wc -l`

if [ $port -ne 1 ]

then

echo "MySQL isn't running."

/etc/init.d/mysqld start

echo "MySQL is running."

else

echo "MySQL is running."

fi

[root@LAMP script]#

######################################

######################################

脚本2

[root@LAMP script]# cat mysqlif.sh

#!/bin/sh

#port=`netstat -lnt|grep 3306|wc -l`

proc=`ps -ef |grep mysqld|grep -v grep |wc -l`

if [ $proc -lt 1 ]

then

echo "MySQL isn't running."

/etc/init.d/mysqld start

echo "MySQL is running."

else

echo "MySQL is running."

fi

[root@LAMP script]#

######################################

######################################

脚本3  推荐方法

[root@LAMP script]# cat mysqlif.sh

#!/bin/sh

#port=`netstat -lnt|grep 3306|wc -l`

#proc=`ps -ef |grep mysqld|grep -v grep |wc -l`

mysql -uroot -e "select version();" &>1 >> /dev/null

#mysql -uroot -ppassword -e "select version();" &>1 >> /dev/null

num=`echo $?`

if [ $num -ne 0 ]

then

echo "MySQL isn't running."

/etc/init.d/mysqld start

echo "MySQL is running."

else

echo "MySQL is running."

fi

[root@LAMP script]#

######################################

######################################

脚本4

[root@LAMP script]# cat mysqlif.sh

#!/bin/sh

pidfile=/application/mysql5.1.72/data/LAMP.pid

mysql_path=/application/mysql5.1.72/bin

datadir=/application/mysql5.1.72/data

if [ ! -f $pidfile ]

then

$mysql_path/mysqld_safe --datadir=$datadir --pid-file=$pidfile & 2>&1 /dev/null

else

echo "MySQL is running."

fi

[root@LAMP script]#

#################### ###############

监控web服务的手段

1.本地:ss、netstat、lsof

远程:telnet、nmap、nc

nmap 10.0.0.3 -p 80 |grep open |wc -l

2.本地进程数

ps -ef |grep httpd|grep -v grep

3.curl -s -I 看返回值是否为200

wget

curl -I -s www.baidu.com|awk -F' ' 'NR==1{print $2}'

curl -I -s -w "%{http_code}%" -o /dev/null  www.baidu.com

wget --spider --timeout=10 --tries=5 10.0.0.3 &>/dev/null ;echo $?

4、写php、java监控程序,模拟用户访问,访问固定的测试页面

#################################################

附带

[root@LAMP script]# cat webjk.sh

#!/bin/sh

#status=`curl -I -s -w "%{http_code}%" -o /dev/null  www.baidu.com`

. /etc/init.d/functions

web(){

status=`curl -I -s $1 |awk  'NR==1{print $(NF-1)}'`

if [ -z $status ]

then

action "$1 is fail !" /bin/false

else

action "$1 is OK !" /bin/true

fi

}

web $1

[root@LAMP script]#

====================================================

[root@LAMP script]# sh webjk.sh www.baidu.com

www.baidu.com is OK !                                      [  OK  ]

[root@LAMP script]# sh webjk.sh www.baidu.com1

www.baidu.com1 is fail !                                   [FAILED]

[root@LAMP script]# sh webjk.sh t.tt

t.tt is OK !                                               [  OK  ]

[root@LAMP script]# cat webjk.sh

#####################################################

### 回答1: 可以使用Java中的JDBC API来监控MySQL数据库。通过JDBC连接MySQL数据库,然后执行SQL语句,获取需要监控的信息。例如,可以执行SHOW STATUS命令来获取MySQL服务器的状态信息,包括连接数、查询数、线程数、缓存命中率等等。还可以执行SHOW PROCESSLIST命令来查看当前正在执行的SQL语句和连接信息。获取到这些信息后,可以将其记录到日志文件中,或者通过邮件、短信等方式发送给管理员。另外,还可以使用一些开源的Java监控工具,例如C3P0、Druid等,来监控MySQL数据库的连接池状态和执行情况。 ### 回答2: Java可以使用多种方式来监控MySQL数据库。 首先,可以使用JDBC(Java数据库连接) API来连接到MySQL数据库,并执行一些查询语句以获取数据库的状态信息。通过执行SHOW STATUS或SHOW VARIABLES语句,可以获取有关数据库连接数、事务数、锁状态、缓存命中率等性能指标的信息。通过定期执行这些查询,可以实时监控数据库的性能。 其次,可以使用Java的开源数据库连接池框架,如Apache Commons DBCP、HikariCP等,来管理数据库连接池。这些框架提供了一些监控功能,可以通过配置参数来启用。例如,可以设置最大活动连接数和最大空闲连接数,当连接数超过或低于阈值时,可以触发警告或记录日志。 此外,还可以使用开源的监控工具,如Cacti、Nagios、Zabbix等,来监控MySQL数据库。这些工具提供了各种监控指标和图表,可以通过配置参数和脚本来实现对数据库的监控和报警。例如,可以监控数据库的CPU和内存使用率、关键查询的响应时间以及慢查询、死锁和连接数等。 最后,可以使用Java的日志框架,如Log4j、Logback等,来记录数据库的日志信息。通过配置日志级别和输出目标,可以将关键的数据库操作和性能指标记录到日志文件中,方便后续分析和故障排查。 总之,Java可以通过JDBC API、数据库连接池框架、监控工具和日志框架等方式来监控MySQL数据库,从而实时获取数据库的状态信息和性能指标,为数据库性能优化和故障排查提供支持。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值