如何监控MySQL

如何监控MySQL,第1张

首先介绍下 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-tcpdump:收集 tcpdump 数据,需要 tcpdump 工具。

肯定影响的。常见查询慢的原因常见的话会有如下几种:1、没有索引或没有用到索引。PS:索引用来快速地寻找那些具有特定值的记录,所有MySQL索引都以B-树的形式保存。如果没有索引,执行查询时MySQL必须从第一个记录开始扫描整个表 的所有记录,直至找到符合要求的记录。表里面的记录数量越多,这个 *** 作的代价就越高。如果作为搜索条件的列上已经创建了索引,MySQL无需扫描任何记录 即可迅速得到目标记录所在的位置。如果表有1000个记录,通过索引查找记录至少要比顺序扫描记录快100倍。索引类型:普通索引:这是最基本的索引类型,没唯一性之类的限制。唯一性索引:和普通索引基本相同,但所有的索引列只能出现一次,保持唯一性。 主键:主键是一种唯一索引,但必须指定为"PRIMARY KEY"。全文索引:MYSQL从3.23.23开始支持全文索引和全文检索。在MYSQL中,全文索引的索引类型为FULLTEXT。全文索引可以在VARCHAR或者TEXT类型的列上创建。2、IO吞吐量小形成了瓶颈。PS:这是从系统层来分析MYSQL是比较耗IO的。一般数据库监控也是比较关注IO。监控命令:$iostat -d -k 1 10参数 -d 表示,显示设备(磁盘)使用状态;-k某些使用block为单位的列强制使用Kilobytes为单位;1 10表示,数据显示每隔1秒刷新一次,共显示10次。3、内存不足监控内存使用:vmstat [-n] [延时[次数]]Memoryswpd: 切换到交换内存上的内存(默认以KB为单位)• 如果 swpd 的值不为0,或者还比较大,比如超过100M了,但是si, so 的值长期为0,这种情况我们可以不用担心,不会影响系统性能。free: 空闲的物理内存buff: 作为buffer cache的内存,对块设备的读写进行缓冲cache: 作为page cache的内存, 文件系统的cache• 如果 cache 的值大的时候,说明cache住的文件数多,如果频繁访问到的文件都能被cache住,那么磁盘的读IO bi 会非常小。4、网络速度慢ping IP -t 查看是否有丢包。5、一次查询的数据量过大。比如没有分页查询,一次提取上万条记录。数据库有可能卡死。6、出现死锁所谓死锁: 是指两个或两个以上的进程在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力作用,它们都将无法推进下去.Show innodb status检查引擎状态 ,可以看到哪些语句产生死锁。执行show processlist找到死锁线程号.然后Kill processNo7、返回了不必要的行或列一般查询SQL语句一定要将字段明确指定。而不要使用*进行查询8、注意UNion和UNion all 的区别。UNION all好UNION在进行表链接后会筛选掉重复的记录,所以在表链接后会对所产生的结果集进行排序运算,删除重复的记录再返回结果。所以union all的效率肯定要高!

Zabbix Advance - Linux log monitor 日志监控(/var/log/messages,/var/log/secure,其它程序日志皆可) 原创

2020-09-11 10:43:40

2点赞

Fei-Huang

码龄12年

关注

文章目录

日志监控原理

本文档示例版本与官方使用文档

配置过程

一,被监控的主机上配置zabbix_agentd.conf

二,修改日志文件的权限

修改前日志文件的权限:

修改日志文件的权限

查看修改后的文件权限

三,配置zabbix web item页面(监控root用户登陆)

root用户登陆测试

配置告警(trigger)

最终配置

再次测试root登陆

日志监控原理

zabbix 监控日志,主要是用于监控日志中的关键字,遇到关键字后,zabbix agent 将日志发送给server。日志监控必需是agent active的监控项目

本文档示例版本与官方使用文档

官方文档链接

配置过程

一,被监控的主机上配置zabbix_agentd.conf

[root@GuangGu_Zabbix_proxy ~]# egrep -v "#|^$" /etc/zabbix/zabbix_agent2.conf

PidFile=/var/run/zabbix/zabbix_agent2.pid

LogFile=/var/log/zabbix/zabbix_agent2.log

LogFileSize=0

Server=X.X.X.X

ServerActive=X.X.X.X

Hostname=Zabbix_lOG

Include=/etc/zabbix/zabbix_agent2.d/*.conf

ControlSocket=/tmp/agent.sock

1

2

3

4

5

6

7

8

9

1

2

3

4

5

6

7

8

9

ServerActive=X.X.X.X

Hostname=Zabbix_lOG

以上两个参数配置对日志很重要,agent active 在发送数据给server端时,会将配置文件中的hostname的值做为一个值携带给服务端,zabbix_server收到发送过来的数据后会主动匹配这个值,是否与自己配置的主机的hostname一致,一致即接收数据,放置在数据库中。

二,修改日志文件的权限

通常情况下,/var/log/目录下的系统日志文件只有root用户有相应的读写权限,而zabbix对这些文件需要有读取的权限,否则无法监控,所以在不更改属主属组的情况下,使用==“facl”== 添加文件权限比较合适,以下为示例:

修改前日志文件的权限:

[hostname]# ls -l /var/log/messages

-rw------- 1 root root 138063 Sep 11 08:10 /var/log/messages

1

2

1

2

只有root用户有读写权限,其它的用户均没有权限

修改日志文件的权限

setfacl -m u:zabbix:r-- /var/log/messages

1

1

查看修改后的文件权限

[root@GuangGu_Zabbix_proxy ~]# ls -l /var/log/messages

-rw-r-----+ 1 root root 193670 Sep 11 09:10 /var/log/messages

1

2

1

2

[root@GuangGu_Zabbix_proxy ~]# getfacl /var/log/messages

getfacl: Removing leading '/' from absolute path names

# file: var/log/messages

# owner: root

# group: root

user::rw-

user:zabbix:r--

group::---

mask::r--

other::---

1

2

3

4

5

6

7

8

9

10

11

1

2

3

4

5

6

7

8

9

10

11

user:zabbix:r-- 可以看到zabbix用户有r的权限了

但是这条命令只设置了当前的/var/log/messages的文件的权限,这个日志文件是会随日期滚动的所以还需要设置一下日志滚动后的zabbix用户的权限,此时还需要修改另外一个文件的内容:

[root@hostname~]# vim /etc/logrotate.d/syslog

/var/log/cron

/var/log/maillog

/var/log/messages

/var/log/secure

/var/log/spooler

{

missingok

sharedscripts

postrotate

/bin/kill -HUP `cat /var/run/syslogd.pid 2>/dev/null` 2>/dev/null || true

/usr/bin/setfacl -m u:zabbix:r-- /var/log/messages

endscript

}

1

2

3

4

5

6

7

8

9

10

11

12

13

14

1

2

3

4

5

6

7

8

9

10

11

12

13

14

logrotate 不是守护进程的服务,所以不需要重启

三,配置zabbix web item页面(监控root用户登陆)

key : log[file,<regexp>,<encoding>,<maxlines>,<mode>,<output>,<maxdelay>,<options>]

/var/log/messages 中 root 用户登陆的日志记录如下:

Sep 11 09:30:01 LOGMONITOR systemd: Started Session 6787 of user root.

1

1

几个注意点:

类型必需是“zabbix agent active”的

信息类型必需是“日志”型的

log[/var/log/messages, Started Session .* of user root.$,skip,]

root用户登陆测试

Sep 11 09:44:47 LOGMONITOR systemd-logind: New session 6789 of user root.

Sep 11 09:44:47 LOGMONITOR systemd: Started Session 6789 of user root.

Sep 11 09:44:47 LOGMONITOR systemd: Starting Session 6789 of user root.

1

2

3

1

2

3

以上三条是登陆产生的日志

查看zabbix监控的消息记录

点击“历史记录查看”

zabbix已经收到相关日志

配置告警(trigger)

配置告警思路:

只要zabbix收到相应条目的日志一次,就触发一次告警

收到告警后,如果60s内没有再次触发告警就消失

最终配置

再次测试root登陆

此告警60S后消失

文章知识点与官方知识档案匹配

CS入门技能树Linux入门初识Linux

24650 人正在系统学习中

打开CSDN APP,看更多技术内容

zabbix监控Linux进程方法_lihuaichen的博客

利用zabbixproc.num方法监控Linux服务进程 proc.num[<name>,<user>,<state>,<cmdline>] 监控用户某些状态的进程的数量 name- 进程名称 (默认“all processes”)user- 用户名 (默认 “all users”)state- 可用值:all(默认),run,sl...

继续访问

zabbix监控远程linux服务器基础 *** 作_今天摘太阳的博客_linu...

查看添加的监控主机的最新数据是否监控到数据。4. 通过web页面配置linux监控,添加监控主机及套用模板设置。 zabbix监控Linux流程 m0_52091913的博客 312 zabbix监控Linux流程,邮件警告 远程监控 linux服务器软件,如何从Web浏览器远程监控...

继续访问

log_monitor日志监控

对qps以及接口的平均耗时进行统计 特点 (1)轻量: 共219KB(代码量约300行), 无需安装,解压即可使用 (2)低侵入: 基于日志文件进行统计,无需修改原程序 使用说明 (1) 二进制包:下载工具包 log_monitor.tar.gz,并解压 (2) 源码编译:make 之后进行参数配置,可以拷贝现有的,各个参数说明如下: log_file=/data/nginx_logs/access.log log_reg=

(.∗)\+0800

(.∗)\+0800

time_format=%d/%b/%Y:%H:%M:%S retain_seconds=3600 http_port=3344 log_level=INFO log_file: 需要监控的日志的路径 log_reg: 需要匹配的日期以及耗时信息的正则表达式(需要加括号) time_format: 日志中日期的格式 retain_seconds: 统计数据保留时间 http_port: 用来通过页面展示统计数据的端口 log_level: log monitor的日志级别 启动 ./bin/log_monitor [conf_file_path] 查看 (1) 在控制台就可以看到系统实时的qps以及每一秒中接口的平均耗时情况 (2) 通过浏览器访问 http://${ip}:{http_port}/show.html

Zabbix监控之Linux命令行/Shell脚本解析json

本文主要写了在Linux下如何用Shell脚本解析json数据,以便于在Zabbix中添加适合于业务应用的监控项。为什么要使用json?json作为一种文本化的数据格式(文本化协议),符合UNIX编程的哲学,既符合透明性(透明性:设计可见,便于审查和调试)又符合文本性(文本性:数据应该保存为文本文件)。关键在于json对Web程序或者java程序非常友好,对于开发人员来说,他们也喜欢使用json数...

继续访问

linux启动zabbix服务,zabbix监控Linux系统服务_邓琨腾的博客

Zabbix自动发现规则监控Linux系统的service units 项目要求:通过systemctl命令查看Linux系统的service units监控前提:zabbix环境已搭建好监控原理:通过shell脚本把systemctl命令返回的结果以json格式发送到zabbix...

继续访问

zabbix自动监控linux进程,zabbix远程命令-监控进程停掉后自动重启应用...

6.在验证远程命令的可用性之后,在zabbix前端页面添加监控项,设置触发器,并添加执行远程命令的动作。 7.添加监控项: 自定义名称,类型为zabbix客户端,键值为proc.num[,,,httpd],其他自定义,点击添加。

继续访问

zabbix监控日志

zabbix监控日志

继续访问

linux的数据清洗视频,Zabbix监控历史数据清理

Zabbix监控运行一段时间以后,会留下大量的历史监控数据,Zabbix数据库一直在增大;可能会造成系统性能下降,查看历史数据室查询速度缓慢。Zabbix里面最大的表就是history和history_uint两个表,而且zabbix里面的时间是使用的时间戳方式记录,所以可以根据时间戳来删除历史数据一、关闭zabbix、http服务pkill -9 zabbixservice httpd stop...

继续访问

zabbix3.4监控linux磁盘使用率_一文看懂Linux全能型监控命令--dstat...

在linux上有top、free、iostat、vmstat、netstat等诸多监控系统各项性能的工具,如top,可以实时监控到系统负载、内存等使用情况,iostat能监控系统I/O情况,而vmstat可以得到关于进程、内存、内存分页、堵塞IO、traps及CPU活动的信息。不过今天主...

继续访问

Zabbix监控Linux进程方法

利用zabbix proc.num方法监控Linux服务进程 proc.num[<name>,<user>,<state>,<cmdline>] 监控用户某些状态的进程的数量 name - 进程名称 (默认“all processes”) user - 用户名 (默认 “all users”) state - 可用值: all (默认), run,sleep, zomb cmdline - 命令行过滤(正则表达时) 一、首先新建一个模板,在监控项条目中新

继续访问

关于/var/log/messages文件

/var 包括系统运行时要改变的数据。其中包括每个系统是特定的,即不能够与其他计算机共享的目录,如/var/log,/var/lock,/var/run。有些目录还是可以与其他系统共享,如/var/mail, /var/cache/man, /var/cache/fonts,/var/spool/news。var目录存在的目的是把usr目录在运行过程中需要更改的文件或者临时生成的文件及目录提取出来

继续访问

@Zabbix常用的监控命令及监控分析

文章目录一、面试技巧1.面试常问二、单机监控命令1.CPU 监控命令2.内存监控命令3.磁盘监控命令4.网络监控命令5.TCP11种状态监控命令6.生产场景需求7.系统的oom(out of memory)8.使用脚本监控nginx三、zabbix数据库拆分1.环境准备2.导出原MySQL中的zabbix数据3.准备新的数据库环境4.关闭原来的数据库测试5.修改连接数据库代码 一、面试技巧 1.面试常问 #1.面试官:你们公司监控是如何做的? 你:用zabbix 面试官:.... #2.面试技

继续访问

最新发布 zabbix日志监控: *** 作系统、业务系统、文件大小、多行日志

(一)监控 *** 作系统日志 (二)监控业务系统日志 (三)监控日志文件大小 (四)多行日志监控- Python脚本优化

继续访问

zabbix 时间错误_使用Zabbix来监控系统日志

在Linux系统上,日志文件通常可以分为四类:System Logs(系统日志)Event Logs(事件日志)Application Logs(应用程序日志)Service Logs(服务日志)一、为什么要监控日志?Linux为了跟踪和监视系统(内核)各个组件及应用程序运行状态而将产生的相关事件存储到日志文件中,当系统或者应用程序出现问题时,系统管理员能根据日志定位到问题。而通过监控Linux的...

继续访问

【Docker学习】13、使用 Docker/Docker-Compose 部署 Prometheus 监控组件

文章目录1、Prometheus 监控组件(1)Prometheus 监控 Linux(2)Prometheus 监控 Docker(3)Prometheus 监控 MySQL 1、Prometheus 监控组件 从上面的构建可以发现,现在已经可以监控当前Linux主机了,实际上能监控的内容很多,可以在官网查看,监控内容或社区查找 搭建各种组件的监控,首先需要找到提供数据的数据源,当然,Prometheus已经给我们写好了配置,我们只需要在找到对应的配置进行安装即可,Prometheus GitHub,例如

继续访问

Linux从入门到放弃 zabbix常见的linux监控命令

cpu top htop uptime vmstat 内存 free 磁盘 df iotop 网卡 iftop nethogs 系统进程 ps pstree

继续访问

zabix监控linux进程名称,zabbix监控Linux进程方法

利用zabbixproc.num方法监控Linux服务进程proc.num[,,,]监控用户某些状态的进程的数量name- 进程名称 (默认“all processes”)user- 用户名 (默认 “all users”)state- 可用值:all(默认),run,sleep,zombcmdline-命令行过滤(正则表达时)具体监控某一服务进程的方法一、首先新建一个模板,在监控项条目中新建一...

继续访问

zabbix监控Linux流程

zabbix监控Linux流程,邮件警告

继续访问

zabbix监控linux文件目录,zabbix之日志文件监控

一、日志item介绍下面介绍zabbix另一个“重量级”的功能——日志文件监控,它最主要的是监控日志文件中有没有某个字符串的表达式,对应日志轮转与否,zabbix都支持。在配置Item的时候,Type选择Zabbix agent (active),这里主要需要配置的是Key。下面是监控日志的两种key——log和logtr。log[/path/to/some/file,,,,,]logtr[/pa...

继续访问

监控linux日志,Zabbix日志监控:Linux异常登录告警

本文利用zabbix的日志监控功能监控Linux的secure日志,当有用户登录失败或者用户在非常规时间登录成功时发出告警。这里我们使用zabbix提供的'log[file,,,,,]'来监控Linux的/var/log/secure文件。先介绍下这个log监控项:1)监控项类型是Zabbix agent (active),返回数据类型是Log。2)Zabbix agent要对监控的日志文件有可读...

继续访问

Zabbix监控日志

创建监控项 创建触发器 验证 问题定位 创建监控项 注意要选择客户端主动式,使用主动式的时候无法使用zabbix-get工具调试 键值示例:log[/home/moa/log/smapd/smapd.log,”info”,,,skip,,] 说明:1、/home/moa/log/smapd/smapd.log表示日志路径 2、”info”表示匹配的关键字...

继续访问

zabbix监控日志关键字(ERROR)

前言:对我我这种刚入职场不久的小运维来说其实这个对我来说真的挺难得,研究了好久也在朋友的帮助下终于成功了,在此多谢我的朋友(倪伟)。 公司没有zabbix监控,领导让搭建一套zabbix然后让监控错误日志(关键字error),其实据说牛掰的大神可以监控到具体报错信息是什么,如有大神能编写出来欢迎指教。 因为就是想让他提醒一次就不在提醒了,所以脚本我写了半天(不擅长啊) 我zabbix搭建的过...

继续访问

热门推荐 Linux实时查看文件/var/log/messages以及这个文件的问题

耐心看完说不定有你遇到的问题 1./var/log/messages 首先说一下这个文件的存在,在Ubuntu系统中,这个文件你访问可能提示找不到这个文件 //使用tail命令访问 name@name:~$ sudo tail /var/log/messages tail:无法打开'/var/log/messages' 读取数据: 没有那个文件或目录 tail:没有剩余文件 可能会出现...

继续访问

Zabbix使用总结

1. CentOS 7上启动zabbix-server失败,/var/log/messages中的报错信息如下: Feb 22 12:56:43 mysql-server1 systemd: Starting Zabbix Server with MySQL DB... Feb 22 12:56:43 mysql-server1 kernel: zabbix_server[1599]: s

继续访问

zabbix监控linux历史命令

zabbix

写评论

评论

3


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/6137813.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-03-16
下一篇2023-03-16

发表评论

登录后才能评论

评论列表(0条)

    保存