Open yidazhi opened 6 years ago
我也抓取不到。
@yanlieting 下面这3个地方看看:
1、hostname="xxxxxxx:3306" 试试
2、脚本这个也改下 --filter="\$event->{Bytes} = length(\$event->{arg}) and \$event->{hostname}=\"$hostname\"" \
3、pt-tools 3.0版本,2点几采集不到
按你指出的几点更改了下,执行报错的。
@yanlieting 刚才粘贴,好像少粘了一个"\"
还是不会采集。 我是这样验证的:在archer页面端-sql在线查询,随便执行一个select语句。
配置估计跟你一模一样,我就补贴出来了。
archer和慢日志部署在同一个机器,应该也没关系吧。
你应该也设置定时任务了,另外第一次运行脚本时候,看下last_analysistime$hostname这个文件,确保一下里面的时间是1000-01-01 00:00:00 。 射手页面的查询是在从库执行的,你确定下脚本是不是在从库执行的,还有慢日志里是否有记录。如果这些都排除了的话,我也不太清楚了。
@yanlieting 另外确保运行脚本的服务器的pt工具是3.0版本以上
@yidazhi 是不是只能采集主库的日志?
@yanlieting 这个不太清楚,我觉得应该无所谓吧
慢查询日志可以正常收集,但是在页面上无法展示慢查询
在两台虚拟机上跑脚本,均无法抓取慢日志里的sql记录到数据库,我的目标数据库和archer所在数据库,均有archer用户,并且all privileges; 慢日志中有内容,并且我也会删除last_analysistime$hostname这个文件,但还是抓取不到sql,但是很奇怪的抓取到了慢日志中的show语句:SHOW VARIABLES LIKE 'wait_timeout';
还请大神们帮忙看看
我的脚本配置:
!/bin/bash
DIR="$( cd "$( dirname "$0" )" && pwd )" cd $DIR
config monitor database server 收集日志 配置archer数据库的连接地址
monitor_db_host="192.168.1.159" monitor_db_port=3306 monitor_db_user="archer" monitor_db_password="111111" monitor_db_database="archer"
config mysql server 被监控机
mysql_host="192.168.1.159" # 和archer主库配置保持一致 mysql_port=3306 # 和archer主库配置保持一致
config slowqury 被监控机慢日志位置
slowquery_file="/data/mysql/slow.log" pt_query_digest="/usr/local/bin/pt-query-digest"
config server_id
hostname="${mysql_host}:${mysql_port}" # 用于archer做筛选
获取上次分析时间,初始化时请删除last_analysistime$hostname文件,可分析全部日志数据
if [ -s last_analysistime$hostname ]; then last_analysis_time=
cat last_analysis_time_$hostname
else last_analysis_time='1000-01-01 00:00:00' ficollect mysql slowquery log into monitor database
RDS需要增加--no-version-check选项
$pt_query_digest \ --user=$monitor_db_user --password=$monitor_db_password --port=$monitor_db_port \ --review h=$monitor_db_host,D=$monitor_db_database,t=mysql_slow_query_review \ --history h=$monitor_db_host,D=$monitor_db_database,t=mysql_slow_query_review_history \ --no-report --limit=100% --charset=utf8 \ --since "$last_analysis_time" \ --filter="\$event->{Bytes} = length(\$event->{arg}) and \$event->{hostname}=\"$hostname\" and \$event->{client}=\$event->{ip} " \ $slowquery_file > /tmp/analysis_slow_query.log
echo
date +"%Y-%m-%d %H:%M:%S"
>last_analysistime$hostname