当前位置:首页 » 编程语言 » 慢sql监控zabbix
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

慢sql监控zabbix

发布时间: 2022-09-09 03:05:57

❶ 如何从Zabbix数据库中获取监控数据

Zabbix可以通过两种方式获取历史数据:
1.通过Zabbix前台获取历史数据
通过Zabbix前台查看历史数据非常简单,可以通过Monitoring->Lastest data的方式查看。也可以点击右上角的As plain test按钮保存成文本文件。

2.通过前台获取的数据进行处理和二次查询有很多限制,因此可以通过sql语句直接从后台DB查询数据。
首先大家应该熟悉SQL语句Select 常用用法:
SELECT [ALL | DISTINCT] Select_List [INTO [New_Table_name]
FROM { Table_name | View_name} [ [,{table2_name | view2_name}
[,...] ]
[ WHERE Serch_conditions ]
[ GROUP BY Group_by_list ]
[ HAVING Serch_conditions ]
[ ORDER BY Order_list [ASC| DEsC] ]

说明:
1)SELECT子句指定要查询的特定表中的列,它可以是*,表达式,列表等。
2)INTO子句指定要生成新的表。
3)FROM子句指定要查询的表或者视图。
4)WHERE子句用来限定查询的范围和条件。
5)GROUP BY子句指定分组查询子句。
6)HAVING子句用于指定分组子句的条件。
7)ORDER BY可以根据一个或者多个列来排序查询结果,在该子句中,既可以使用列名,也可以使用相对列号,ASC表示升序,DESC表示降序。
8)mysql聚合函数:sum(),count(),avg(),max(),avg()等都是聚合函数,当我们在用聚合函数的时候,一般都要用到GROUP BY 先进行分组,然后再进行聚合函数的运算。运算完后就要用到Having子句进行判断了,例如聚合函数的值是否大于某一个值等等。
从Zabbix数据库中查询监控项目方法,这里已查询主机的网卡流量为例子:
1)通过hosts表查找host的ID。
mysql> select host,hostid from hosts where host="WWW05";
+-------+--------+
| host | hostid |
+-------+--------+
| WWW05 | 10534 |
+-------+--------+
1 row in set (0.00 sec)

2)通过items表查找主的监控项和key以及itemid。
mysql> select itemid,name,key_ from items where hostid=10534 and key_="net.if.out[eth0]";
+--------+-----------------+------------------+
| itemid | name | key_ |
+--------+-----------------+------------------+
| 58860 | 发送流量: | net.if.out[eth0] |
+--------+-----------------+------------------+
1 row in set (0.00 sec)

3)通过itemid查询主机的监控项目(history_uint或者trends_uint),单位为M。
主机流入流量:
mysql> select from_unixtime(clock) as DateTime,round(value/1024/1024,2) as Traffic_in from history_uint where itemid="58855" and from_unixtime(clock)>='2014-09-20' and from_unixtime(clock)<'2014-09-21' limit 20;
+---------------------+------------+
| DateTime | Traffic_in |
+---------------------+------------+
| 2014-09-20 00:00:55 | 0.10 |
| 2014-09-20 00:01:55 | 0.09 |
| 2014-09-20 00:02:55 | 0.07 |
| 2014-09-20 00:03:55 | 0.05 |
| 2014-09-20 00:04:55 | 0.03 |
| 2014-09-20 00:05:55 | 0.06 |
| 2014-09-20 00:06:55 | 0.12 |
| 2014-09-20 00:07:55 | 0.05 |
| 2014-09-20 00:08:55 | 0.10 |
| 2014-09-20 00:09:55 | 0.10 |
| 2014-09-20 00:10:55 | 0.12 |
| 2014-09-20 00:11:55 | 0.12 |
| 2014-09-20 00:12:55 | 0.13 |
| 2014-09-20 00:13:55 | 3.16 |
| 2014-09-20 00:14:55 | 0.23 |
| 2014-09-20 00:15:55 | 0.24 |
| 2014-09-20 00:16:55 | 0.26 |
| 2014-09-20 00:17:55 | 0.23 |
| 2014-09-20 00:18:55 | 0.14 |
| 2014-09-20 00:19:55 | 0.16 |
+---------------------+------------+
20 rows in set (0.82 sec)

主机流出流量:
mysql> select from_unixtime(clock) as DateTime,round(value/1024/1024,2) as Traffic_out from history_uint where itemid="58860" and from_unixtime(clock)>='2014-09-20' and from_unixtime(clock)<'2014-09-21' limit 20;
+---------------------+-------------+
| DateTime | Traffic_out |
+---------------------+-------------+
| 2014-09-20 00:00:00 | 4.13 |
| 2014-09-20 00:01:00 | 3.21 |
| 2014-09-20 00:02:00 | 2.18 |
| 2014-09-20 00:03:01 | 1.61 |
| 2014-09-20 00:04:00 | 1.07 |
| 2014-09-20 00:05:00 | 0.92 |
| 2014-09-20 00:06:00 | 1.23 |
| 2014-09-20 00:07:00 | 2.76 |
| 2014-09-20 00:08:00 | 1.35 |
| 2014-09-20 00:09:00 | 3.11 |
| 2014-09-20 00:10:00 | 2.99 |
| 2014-09-20 00:11:00 | 2.68 |
| 2014-09-20 00:12:00 | 2.55 |
| 2014-09-20 00:13:00 | 2.89 |
| 2014-09-20 00:14:00 | 4.98 |
| 2014-09-20 00:15:00 | 6.56 |
| 2014-09-20 00:16:00 | 7.34 |
| 2014-09-20 00:17:00 | 6.81 |
| 2014-09-20 00:18:00 | 7.67 |
| 2014-09-20 00:19:00 | 4.11 |
+---------------------+-------------+
20 rows in set (0.74 sec)

4)如果是两台设备,汇总流量,假如公司出口有两台设备,可以用下面的SQL语句汇总每天的流量。下面SQL语句是汇总上面主机网卡的进出流量的。
mysql> select from_unixtime(clock,"%Y-%m-%d %H:%i") as DateTime,sum(round(value/1024/1024,2)) as Traffic_total from history_uint where itemid in (58855,58860) and from_unixtime(clock)>='2014-09-20'and from_unixtime(clock)<'2014-09-21' group by from_unixtime(clock,"%Y-%m-%d %H:%i") limit 20;
+------------------+---------------+
| DateTime | Traffic_total |
+------------------+---------------+
| 2014-09-20 00:00 | 4.23 |
| 2014-09-20 00:01 | 3.30 |
| 2014-09-20 00:02 | 2.25 |
| 2014-09-20 00:03 | 1.66 |
| 2014-09-20 00:04 | 1.10 |
| 2014-09-20 00:05 | 0.98 |
| 2014-09-20 00:06 | 1.35 |
| 2014-09-20 00:07 | 2.81 |
| 2014-09-20 00:08 | 1.45 |
| 2014-09-20 00:09 | 3.21 |
| 2014-09-20 00:10 | 3.11 |
| 2014-09-20 00:11 | 2.80 |
| 2014-09-20 00:12 | 2.68 |
| 2014-09-20 00:13 | 6.05 |
| 2014-09-20 00:14 | 5.21 |
| 2014-09-20 00:15 | 6.80 |
| 2014-09-20 00:16 | 7.60 |
| 2014-09-20 00:17 | 7.04 |
| 2014-09-20 00:18 | 7.81 |
| 2014-09-20 00:19 | 4.27 |
+------------------+---------------+
20 rows in set (1.52 sec)

5)查询一天中主机流量的最大值,最小值和平均值。
mysql> select date as DateTime,round(min(traffic)/2014/1024,2) as TotalMinIN,round(avg(traffic)/1024/1024,2) as TotalAvgIN,round(max(traffic)/1024/1024,2) as TotalMaxIN from (select from_unixtime(clock,"%Y-%m-%d") as date,sum(value) as traffic from history_uint where itemid in (58855,58860) and from_unixtime(clock)>='2014-09-20' and from_unixtime(clock)<'2014-09-21' group by from_unixtime(clock,"%Y-%m-%d %H:%i") ) tmp;
+------------+------------+------------+------------+
| DateTime | TotalMinIN | TotalAvgIN | TotalMaxIN |
+------------+------------+------------+------------+
| 2014-09-20 | 0.01 | 4.63 | 191.30 |
+------------+------------+------------+------------+
1 row in set (1.74 sec)

6)查询主机组里面所有主机CPU Idle平均值(原始值)。
mysql> select from_unixtime(hi.clock,"%Y-%m-%d %H:%i") as DateTime,g.name as Group_Name,h.host as Host, hi.value as Cpu_Avg_Idle from hosts_groups hg join groups g on g.groupid = hg.groupid join items i on hg.hostid = i.hostid join hosts h on h.hostid=i.hostid join history hi on i.itemid = hi.itemid where g.name='上海机房--项目测试' and i.key_='system.cpu.util[,idle]' and from_unixtime(clock)>='2014-09-24' and from_unixtime(clock)<'2014-09-25' group by h.host,from_unixtime(hi.clock,"%Y-%m-%d %H:%i") limit 10;
+------------------+----------------------------+----------+--------------+
| DateTime | Group_Name | Host | Cpu_Avg_Idle |
+------------------+----------------------------+----------+--------------+
| 2014-09-24 00:02 | 上海机房--项目测试 | testwb01 | 94.3960 |
| 2014-09-24 00:07 | 上海机房--项目测试 | testwb01 | 95.2086 |
| 2014-09-24 00:12 | 上海机房--项目测试 | testwb01 | 95.4308 |
| 2014-09-24 00:17 | 上海机房--项目测试 | testwe01 | 95.4580 |
| 2014-09-24 00:22 | 上海机房--项目测试 | testwb01 | 95.4611 |
| 2014-09-24 00:27 | 上海机房--项目测试 | testwb01 | 95.2939 |
| 2014-09-24 00:32 | 上海机房--项目测试 | testwb01 | 96.0896 |
| 2014-09-24 00:37 | 上海机房--项目测试 | testwb01 | 96.5286 |
| 2014-09-24 00:42 | 上海机房--项目测试 | testwb01 | 96.8086 |
| 2014-09-24 00:47 | 上海机房--项目测试 | testwb01 | 96.6854 |
+------------------+----------------------------+----------+--------------+
10 rows in set (0.75 sec)

7)查询主机组里面所有主机 CPU Idle平均值(汇总值)。
mysql> select from_unixtime(hi.clock,"%Y-%m-%d %H:%i") as Date,g.name as Group_Name,h.host as Host, hi.value_avg as Cpu_Avg_Idle from hosts_groups hg join groups g on g.groupid = hg.groupid join items i on hg.hostid = i.hostid join hosts h on h.hostid=i.hostid join trends hi on i.itemid = hi.itemid where g.name='上海机房--项目测试' and i.key_='system.cpu.util[,idle]' and from_unixtime(clock)>='2014-09-10' and from_unixtime(clock)<'2014-09-11' group by h.host,from_unixtime(hi.clock,"%Y-%m-%d %H:%i") limit 10;
+------------------+----------------------------+----------+--------------+
| Date | Group_Name | Host | Cpu_Avg_Idle |
+------------------+----------------------------+----------+--------------+
| 2014-09-10 00:00 | 上海机房--项目测试 | testwb01 | 99.9826 |
| 2014-09-10 01:00 | 上海机房--项目测试 | testwb01 | 99.9826 |
| 2014-09-10 02:00 | 上海机房--项目测试 | testwb01 | 99.9825 |
| 2014-09-10 03:00 | 上海机房--项目测试 | testwb01 | 99.9751 |
| 2014-09-10 04:00 | 上海机房--项目测试 | testwb01 | 99.9843 |
| 2014-09-10 05:00 | 上海机房--项目测试 | testwb01 | 99.9831 |
| 2014-09-10 06:00 | 上海机房--项目测试 | testwb01 | 99.9829 |
| 2014-09-10 07:00 | 上海机房--项目测试 | testwb01 | 99.9843 |
| 2014-09-10 08:00 | 上海机房--项目测试 | testwb01 | 99.9849 |
| 2014-09-10 09:00 | 上海机房--项目测试 | testwb01 | 99.9849 |
+------------------+----------------------------+----------+--------------+
10 rows in set (0.01 sec)

8)其它与Zabbix相关的SQL语句。
查询主机已经添加但没有开启监控主机:
select host from hosts where status=1;

查询NVPS的值:
mysql> SELECT round(SUM(1.0/i.delay),2) AS qps FROM items i,hosts h WHERE i.status='0' AND i.hostid=h.hostid AND h.status='0' AND i.delay<>0;
+--------+
| qps |
+--------+
| 503.40 |
+--------+
1 row in set (0.11 sec)

望采纳

❷ zabbix 如何监控 mysql 主从同步 延迟差多少时间

正值 - 表示主从已经出现延时.
0 - 该值为零,是我们极为渴望看到的情况,也就是该线程的Running状态是No,这是一个BUG值,该参数是不支持负值的可以通过监控show slave status\G命令输出的Seconds_Behind_Master参数的值来判断,表示主从复制良好,可以认为lag不存在,是否有发生主从延时。
其值有这么几种,数字越大表示从库落后主库越多。
负值 - 几乎很少见:
NULL - 表示io_thread或是sql_thread有任何一个发生故障,而非Yes,只是听一些资深的DBA说见过,其实

❸ zabbix的作用是什么,怎么监控

zabbix是一个基于WEB界面的提供分布式系统监视以及网

络监视功能的企业级的开源解决方案。

zabbix能监视各种网络参数,保证服务器系统的安全运营;并提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问题。

zabbix由2部分构成,zabbix server与可选组件zabbix agent。

zabbix server可以通过SNMP,zabbix agent,ping,端口监视等方法提供对远程服务器/网络状态的监视,数据收集等功能,它可以运行在Linux, Solaris, HP-UX, AIX, Free BSD, Open BSD, OS X等平台上。

zabbix agent需要安装在被监视的目标服务器上,它主要完成对硬件信息或与操作系统有关的内存,CPU等信息的收集。zabbix agent可以运行在Linux,Solaris,HP-UX,AIX,Free BSD,Open BSD, OS X, Tru64/OSF1, Windows NT4.0, Windows (2000/2003/XP/Vista)等系统之上。

zabbix server可以单独监视远程服务器的服务状态;同时也可以与zabbix agent配合,可以轮询zabbix agent主动接收监视数据(agent方式),同时还可被动接收zabbix agent发送的数据(trapping方式)。

另外zabbix server还支持SNMP (v1,v2),可以与SNMP软件(例如:net-snmp)等配合使用。[1]
2特点
zabbix的主要特点:

- 安装与配置简单,学习成本低

- 支持多语言(包括中文)

- 免费开源

- 自动发现服务器与网络设备

- 分布式监视以及WEB集中管理功能

- 可以无agent监视

- 用户安全认证和柔软的授权方式

- 通过WEB界面设置或查看监视结果

- email等通知功能

等等

Zabbix主要功能:

- CPU负荷

- 内存使用

-磁盘使用

- 网络状况

- 端口监视
- 日志监视。[1]

❹ 如何从zabbix监控mysql

有两种方法,一种方法使用mysql的check table和repair table 的sql语句,另一种方法是使用MySQL提供的多个myisamchk, isamchk数据检测恢复工具。前者使用起来比较简便。推荐使用。 1. check table 和 repair table 登陆mysql 终端: mysql -uxxxxx -p dbname check table tabTest; 如果出现的结果说Status是OK,则不用修复,如果有Error,可以用: repair table tabTest; 进行修复,修复之后可以在用check table命令来进行检查。在新版本的phpMyAdmin里面也可以使用check/repair的功能。 2. myisamchk, isamchk 其中myisamchk适用于MYISAM类型的数据表,而isamchk适用于ISAM类型的数据表。这两条命令的主要参数相同,一般新的系统都使用MYISAM作为缺省的数据表类型,这里以myisamchk为例子进行说明。当发现某个数据表出现问题时可以使用: myisamchk tablename.MYI 进行检测,如果需要修复的话,可以使用: myisamchk -of tablename.MYI 关于myisamchk的详细参数说明,可以参见它的使用帮助。需要注意的时在进行修改时必须确保MySQL服务器没有访问这个数据表,保险的情况下是最好在进行检测时把MySQL服务器Shutdown掉。

❺ 运维监控 zabbix可以做哪些监控

1、监控windows进程内存。在C盘中创建脚本a.bat,内容tasklist。

❻ 如何通过Zabbix获取监控数据

历史数据:history相关表,从history_uint表里面可以查询到设备监控项目的最大,最小和平均值,即存储监控数据的原始数据。
趋势数据:trends相关表,趋势数据是经过Zabbix计算的数据,数据是从history_uint里面汇总的,从trends_uint可以查看到监控数据每小时最大,最小和平均值,即存储监控数据的汇总数据。
Zabbix可以通过两种方式获取历史数据:
1.通过Zabbix前台获取历史数据
通过Zabbix前台查看历史数据非常简单,可以通过Monitoring->Lastest data的方式查看。也可以点击右上角的As plain test按钮保存成文本文件。
2.通过前台获取的数据进行处理和二次查询有很多限制,因此可以通过SQL语句直接从后台DB查询数据。
首先大家应该熟悉SQL语句Select 常用用法:

SELECT [ALL | DISTINCT] Select_List [INTO [New_Table_name]
FROM { Table_name | View_name} [ [,{table2_name | view2_name}
[,…] ]
[ WHERE Serch_conditions ]
[ GROUP BY Group_by_list ]
[ HAVING Serch_conditions ]
[ ORDER BY Order_list [ASC| DEsC] ]
说明:
1)SELECT子句指定要查询的特定表中的列,它可以是*,表达式,列表等。
2)INTO子句指定要生成新的表。
3)FROM子句指定要查询的表或者视图。
4)WHERE子句用来限定查询的范围和条件。
5)GROUP BY子句指定分组查询子句。
6)HAVING子句用于指定分组子句的条件。
7)ORDER BY可以根据一个或者多个列来排序查询结果,在该子句中,既可以使用列名,也可以使用相对列号,ASC表示升序,DESC表示降序。
8)mysql聚合函数:sum(),count(),avg(),max(),avg()等都是聚合函数,当我们在用聚合函数的时候,一般都要用到GROUP BY 先进行分组,然后再进行聚合函数的运算。运算完后就要用到Having子句进行判断了,例如聚合函数的值是否大于某一个值等等。

❼ 请问zabbix如何通过iis监控sql server需要配置什么

2.1 服务端环境准备
Zabbix Server需要运行在CentOS、RedHat Linux、Den等Linux系统上,这里以RHEL作为部署环境。
Root用户安装必须的包,建议配置好yum,通过yum安装下列包,解决包的依赖关系。
LAMP环境
#yum install mysql-server (mysql可以单独安装高版本)
yum install httpd php
其他需要用到的包:
#yum install mysql-devel gcc net-snmp-devel curl-devel perl-DBI php-gd php-mysql php-bcmath php-mbstring php-xml
下载最新的Zabbix安装包(官网:http://www.zabbix.com)到本地,解压
#tar zxvf zabbix-2.4.7.tar.gz
增加zabbix用户和组
#groupadd zabbix
# useradd -g zabbix -m zabbix
2.2 数据库准备
启动MySQL数据库:
#service mysqld start
修改MySQL root用户密码(默认密码为空)
# mysqladmin -uroot -p password root
测试能否正常登陆数据库
#mysql –uroot –proot
创建Zabbix数据库
Mysql> create database zabbix character set utf8;
导入数据库sql脚本
#cd zabbix-2.4.7
# mysql -uroot -proot zabbix < database/mysql/schema.sql
# mysql -uroot -proot zabbix < database/mysql/images.sql
# mysql -uroot -proot zabbix < database/mysql/data.sql

2.3 编译安装
配置编译,prefix是安装后程序目录
# ./configure --prefix=/usr/local/zabbix --enable-server --enable-agent --with-mysql --with-net-snmp --with-unixodbc --with-libcurl -enable-proxy
# make install
2.4 配置文件及web前端文件修改
添加服务端口,添加后如下
# grep zabbix /etc/services
zabbix-agent 10050/tcp # Zabbix Agent
zabbix-agent 10050/udp # Zabbix Agent
zabbix-trapper 10051/tcp # Zabbix Trapper
zabbix-trapper 10051/udp # Zabbix Trapper
添加配置文件
# mkdir -p /etc/zabbix
# cp conf/{zabbix_server.conf,zabbix_agentd.conf} /etc/zabbix
# chmod 400 /etc/zabbix/zabbix_server.conf
# chown zabbix /etc/zabbix/zabbix_server.conf
# chown -R zabbix:zabbix /etc/zabbix
修改Server配置文件
基本不用修改,用默认配置即可,只需修改一项DBPassword=密码(此密码是前面设置的数据库密码)
# vi /etc/zabbix/zabbix_server.conf
修改Agentd配置文件,更改HOST NAME 为本机的主机名
#vi /etc/zabbix/zabbix_agentd.conf
添加web前端php文件
# cd frontends/
# cp -rf php /var/www/html/
# cd /var/www/html
# mv php zabbix
# chown -R zabbix:zabbix zabbix
2.5 web前端安装配置
修改php相关参数
# vi /etc/php.ini 找到如下几项,改成下面的值,前面有;号的要删掉
max_execution_time = 300
date.timezone = Asia/Shanghai
max_input_time = 600
post_max_size = 32M
memory_limit = 128M
mbstring.func_overload = 2
重启apache
#service httpd restart
启动zabbix_server
/etc/init.d/zabbix_server -c /etc/zabbix/zabbix_server.conf start

----------------------------------------------------------------------------------------unixODBC配置
4. MSSQL. The documentation is available on this page:
install necessary packages on Zabbix server:
# yum -y install freetds unixODBC unixODBC-devel
update ODBC driver configuration file:
$ vi /etc/odbcinst.ini
[FreeTDS]
Driver = /usr/lib64/libtdsodbc.so.0
update ODBC configuration file:
$ vi /etc/odbc.ini
[sql1] --为方便 这里最好用ip 表示,容易区分 和server ip 保持一致
Driver = FreeTDS
Server =
PORT = 1433
TDS_Version = 8.0
[sql2]
Driver = FreeTDS
Server =
PORT = 1433
TDS_Version = 8.0
isql -v sql1[sql2]
SQL> SELECT name FROM master..sysdatabases