zabbix 监控日志是否能够监控硬盘空间

在 Zabbix 中增加对磁盘性能的监控 | 无心之旅
2017年七月
10111213141516
17181920212223
24252627282930用户名:Bnsen
文章数:379
评论数:1195
访问量:1300438
注册日期:
阅读量:1297
阅读量:3317
阅读量:435762
阅读量:1123132
51CTO推荐博文
近期,因为JMS的消息堆积导致ApacheMQ频率故障(消息没有被消费掉,导致其数据库达到1.2G,JMS此时直接挂掉),很是郁闷!刚好自己在研究zabbix.既然zabbix如此强大,那么它可以监控我的这个目录大小吗?在网上找了很久之后,没有结果。 此时,想起了这前导入的其他模版,于是决定修改模版,改着改着又出问题!但是思路已经有了。于是有了本文。
有了需求,可以直接开工了!为了方便记忆,我会写详细的步骤。
需求: 要监控/usr/local/activemq5.5/data/kahadb 这个目录,当这个目录空间达到100M时,立即报警!
通过在用户端定义相应的key,在发送数据时会有这个标识。服务端在收集数据时,采取这个key后,将其放入相应的图形中。
第一步:修改客户端配置文件,并添加如下行!
# vim /etc/zabbix/zabbix_agentd.conf
UserParameter=disk.kahadb,/etc/zabbix/scripts/disk-kahadb
第二步: 添加disk-kahadb脚本
# cat /etc/zabbix/scripts/disk-kahadb
#!/bin/bash
est=`sudo /usr/bin/du -m& /usr/local/activemq5.5/data/kahadb/ | cut -f1 | cut -d &M& -f1 `
第三步: 对这个脚本进行授权
chmod 777 /etc/zabbix/scripts/disk-kahadb
重启zabbix客户端
服务器端------------&
第四步,开始图形化操作了
a、添加一个模版组apachemq-kahadb,此时你也可以添加几个主机进去!
b、 添加完毕之后成这样了
c、下一步的步骤就是添加applications,items,triggers三步曲!
d、在applictions中添加iteams,请注意红色
e、添加tigers
添加成功后!
f、点击上图的Graphs可以添加图形
g、在某个主机上连接这个模版!
h、成功上图!关于tigger我就不写了,上图太麻烦了。
本文出自 “” 博客,请务必保留此出处
了这篇文章
类别:┆阅读(0)┆评论(0)Zabbix监控之Redis自动发现并监控
我的图书馆
Zabbix监控之Redis自动发现并监控
系统版本5.10Python版本2.4.3
1、python支持yum -y install python-simplejson
2、discovery脚本[root@localhost etc]# cat& redis_port.py
#!/usr/bin/env python import os #import json import simplejson as json& #特别要注意的地方 t=os.popen("""sudo netstat -tlpn |grep codis-server|grep 0.0.0.0|awk '{print $4}'|awk -F: '{print $2}' """) ports = [] for port in& t.readlines(): & & & & r = os.path.basename(port.strip()) & & & & ports += [{'{#REDISPORT}':r}] print json.dumps({'data':ports},sort_keys=True,indent=4,separators=(',',':'))
3,、试执行脚本[root@localhost etc]# python redis_port.py{& & "data":[& & & & {& & & & & & "{#REDISPORT}":"6379"& & & & }& & ]}
4,zabbix_agent设置[root@localhost ~]# tail -n 2 /usr/local/zabbix/etc/zabbix_agentd.confUserParameter=redis.discovery,/usr/local/zabbix/etc/redis_port.pyUserParameter=redis_stats[*],redis-cli -h 127.0.0.1 -a redis_passwd -p $1 info|grep $2|cut -d : -f2[root@localhost ~]# chmod a+x /usr/local/zabbix/etc/redis_port.py
5,sudo权限[root@localhost ~]# tail -n 1 /etc/sudoerszabbix ALL=(root) NOPASSWD:/bin/netstat[root@localhost ~]# sed -i 's/^Defaults.*.requiretty/#Defaults& & requiretty/' /etc/sudoers[root@localhost ~]# grep requiretty /etc/sudoers#Defaults& & requiretty# changed in order to be able to use sudo without a tty. See requiretty above.
6,服务端验证[root@zabbixserver-nginx ~]# zabbix_get -s 172.17.2.114 -k redis.discovery{& & "data":[& & & & {& & & & & & "{#REDISPORT}":"6379"& & & & }& & ]}
[root@zabbixserver-nginx ~]# zabbix_get -s 172.17.2.114 -k redis_stats[6379,used_memory:][root@zabbixserver-nginx ~]# zabbix_get -s 172.17.2.114 -k "redis_stats[6379,blocked_clients]"0
7,zabbix web界面导入下载的模板,添加监控项后检查监控图像
redis模板下载见下:
------------------------------------------分割线------------------------------------------
免费下载地址在
用户名与密码都是
具体下载目录在 /2015年资料/7月/19日/Zabbix监控之Redis自动发现并监控/
下载方法见
------------------------------------------分割线------------------------------------------
14.04下Redis安装及简单测试
Redis集群明细文档
Ubuntu 12.10下安装Redis(图文详解)+ Jedis连接Redis
Redis系列-安装部署维护篇
CentOS 6.3安装Redis
Redis安装部署学习笔记
Redis配置文件redis.conf 详解
Redis 的详细介绍: Redis 的下载地址:
本文永久更新链接地址:用户名:levinbin
文章数:158
评论数:449
访问量:466050
注册日期:
阅读量:1297
阅读量:3317
阅读量:435762
阅读量:1123132
51CTO推荐博文
&&&&&&& 之前一直没有去关心Zabbbix服务器存储空间问题,最近Zabbix报警提示/根目录磁盘空间不足,于是登录Zabbix看了一下,发现根目录只有1.3MB了,这怎么办了?第一个想到的是扩展根目录,结果发现不是用的LVM,采用的是标准的,心想也还可以救,就和Windows一样将D盘、E盘删除,再将D盘的空间扩展给C盘就OK啊,于是开始着手操作(注意提前备份虚拟机,最好做一个快照,出问题了好恢复)[root@zabbixserver&/]#&df&-h
文件系统&容量&已用&可用&已用%&挂载点
/dev/sda2&&&&&&&9.8G&&9.8G&&1.3M&&100%&/
/dev/sda5&&&&&&&6.2G&&&33M&&6.1G&&&&1%&/home
/dev/sda1&&&&&&&197M&&143M&&&55M&&&73%&/boot查看文件系统,我需要扩展的是sda2,也就是说我需要删除sda3、sda4、sda5来扩展sda2,发现这是不太可能的,因为需要扩展sda2需要umount /dev/sda2再去扩展来解决,而系统盘是不能够umount的,会提示设备忙。看来这个方案被推翻的(因为我只知道通过这一种方式来进行扩展标准类型的磁盘,也许有其它好的方法我不知道的。)[root@zabbixserver&/]#&fdisk&-l
磁盘&/dev/sda:21.5&GB,&&字节,&个扇区
Units&=&扇区&of&1&*&512&=&512&bytes
扇区大小(逻辑/物理):512&字节&/&512&字节
I/O&大小(最小/最佳):512&字节&/&512&字节磁盘标签类型:dos
磁盘标识符:0x0003dc46
设备&Boot&&&&&&Start&&&&&&&&&End&&&&&&Blocks&&&Id&&System
/dev/sda1&&&*&&&&&&&&2048&&&&&&411647&&&&&&204800&&&83&&Linux
/dev/sda2&&&&&&&&&&411648&&&&&&&&&&&83&&Linux
/dev/sda3&&&&&&&&&&&&&&&&&4096000&&&82&&Linux&swap&/&Solaris
/dev/sda4&&&&&&&&&&&&&&&&&6429696&&&&5&&Extended
/dev/sda5&&&&&&&&&&&&&&&&&6428672&&&83&&Linux现在磁盘扩容不了,看来只能够检测是哪个文件占用空间比较大,然后再从这个文件上下手解决问题了,通过检测到现是/var/lib/mysql/下的libdata1文件过大已经达到了6.7G(检测方法:du -sh /*,再逐步检测即可),我立即想到了zabbix的数据库的原因。[root@zabbixserver&mysql]#&ls&-lh
总用量&6.7G
-rw-rw----.&1&mysql&mysql&&16K&12月&&1&14:15&aria_log.
-rw-rw----.&1&mysql&mysql&&&52&12月&&1&14:15&aria_log_control
-rw-rw----.&1&mysql&mysql&6.7G&12月&29&14:24&ibdata1
-rw-rw----.&1&mysql&mysql&5.0M&12月&29&14:24&ib_logfile0
-rw-rw----.&1&mysql&mysql&5.0M&12月&29&14:21&ib_logfile1
drwx------.&2&mysql&mysql&4.0K&11月&16&17:10&mysql
srwxrwxrwx&&1&mysql&mysql&&&&0&12月&29&13:45&mysql.sock
drwx------.&2&mysql&mysql&4.0K&11月&16&17:10&performance_schema
drwx------.&2&mysql&mysql&8.0K&11月&16&17:17&zabbix_db随后谷歌发现zabbix的数据库它的表模式是共享表空间模式,随着数据增长ibdata1会越来越大,性能方面也会有影响,而且innodb把数据和索引都放在ibdata1下。共享表空间模式:InnoDB 默认会将所有的数据库InnoDB引擎的表数据存储在一个共享空间中:ibdata1,增删数据库的时候ibdata1文件不会自动收缩,单个数据库的备份也将成为问题。通常只能将数据使用mysqldump 导出,然后再导入解决这个问题。独立表空间模式:优点: & &1、每个表都有自已独立的表空间。 & & 2、每个表的数据和索引都会存在自已的表空间中。 & & 3、可以实现单表在不同的数据库中移动。 & & 4、空间可以回收(drop/truncate table方式操作表空间不能自动回收)& 5、对于使用独立表空间的表,不管怎么删除,表空间的碎片不会太严重的影响性能,而且还有机会处理。 & & 缺点: & & 单表增加比共享空间方式更大。结论: & & 共享表空间在Insert操作上有一些优势,但在其它都没独立表空间表现好,所以我们要改成独立表空间。当启用独立表空间时,需要调整innodb_open_files参数。但是这里还有一个问题,就是就算我们将现在的空间调整出来了,但是因为我们的根目录本身只有10G,后面数据库大了,还是会出现这种情况,所以我们还是得调整数据库,将它存放的位置移除根目录,同时调整为独立表空间,来一劳永逸的解决这个问题。首先先在虚拟机上添加一个100G的磁盘,然后对这个磁盘分区,再将这个磁盘挂载到/ZabbixDB目录,再备份数据库,迁移数据库存放位置至ZabbixDB目录,然后修改数据库为独立表空间模式,再还原数据库即可;1、添加磁盘并格式化磁盘[root@zabbix_server&/]#&fdisk&/dev/sdb
[root@zabbix_server&/]#&mkfs.xfs&-f&/dev/sdb1
[root@zabbix_server&/]#&fdisk&-l
磁盘&/dev/sdb:107.4&GB,&&字节,&个扇区
Units&=&扇区&of&1&*&512&=&512&bytes
扇区大小(逻辑/物理):512&字节&/&512&字节
I/O&大小(最小/最佳):512&字节&/&512&字节
磁盘标签类型:dos
磁盘标识符:0xabdf27bd
设备&Boot&&&&&&Start&&&&&&&&&End&&&&&&Blocks&&&Id&&System
/dev/sdb1&&&&&&&&&&&&2048&&&&&&&&&83&&Linux2、挂载磁盘并设置开机自动挂载[root@zabbix_server&/]#&mkdir&/ZabbixDB
[root@zabbix_server&/]#&mount&/dev/sdb1&/ZabbixDB
[root@zabbix_server&/]#&vi&/etc/fstab
[root@zabbix_server&/]#&/dev/sdb1&/ZabbixDB&xfs&default&1&23、备份数据库因为现在的数据库比较大,我们先查看一下哪些表的历史数据比较多MariaDB&[zabbix_db]&&select&table_name,&(data_length+index_length)/&as&total_mb,&table_rows&from&information_schema.tables&where&table_schema='zabbix_db';
+----------------------------+---------------+------------+
|&table_name&&&&&&&&&&&&&&&&&|&total_mb&&&&&&|&table_rows&|
+----------------------------+---------------+------------+
|&events&&&&&&&&&&&&&&&&&&&&&|&&116.&|&&&&&904289&|
|&history&&&&&&&&&&&&&&&&&&&&|&&555.&|&&&&7038124&|
|&history_uint&&&&&&&&&&&&&&&|&0&|&&&&|
|&trends&&&&&&&&&&&&&&&&&&&&&|&&&46.&|&&&&&581682&|
|&trends_uint&&&&&&&&&&&&&&&&|&&270.&|&&&&2228048&|
+----------------------------+---------------+------------+
113&rows&in&set&(0.05&sec)可以看到history和history_uint这两个表的历史数据最多。另外就是trends,trends_uint中也存在一些数据。由于数据量太大,按照普通的方式delete数据的话基本上不太可能。所以决定直接采用truncate table的方式来快速清空这些表的数据,再使用mysqldump导出数据,删除共享表空间数据文件,重新导入数据。2)停止相关服务,避免写入数据[root@zabbix_server&/]#&systemctl&stop&zabbix-server
[root@zabbix_server&/]#&systemctl&stop&httpd3)清空历史数据[root@zabbix_server&/]#&mysql&-uroot&-p
mysql&&&use&
Database&changed
mysql&&&truncate&table&
Query&OK,&&rows&affected&(0.23&sec)
mysql&&&optimize&table&
1&row&in&set&(0.02&sec)
mysql&&&truncate&table&history_
Query&OK,&&rows&affected&(0.12&sec)
mysql&&&optimize&table&history_
1&row&in&set&(0.03&sec)4)备份数据库[root@zabbix_server&/]#&mysqldump&-uroot&-p&zabbix_db&&&/home/zabbix_db.sql5)停止数据库并删除共享表空间数据文件[root@zabbix_server&/]#&systecmtl&stop&mariadb
[root@zabbix_server&/]#&cd&/var/lib/mysql
[root@zabbix_server&/]#&rm&-rf&ib*4、迁移数据库存放位置[root@zabbix_server&/]#&mkdir&/ZabbixDB/DB
[root@zabbix_server&/]#&chown&-vR&mysql:mysql&/ZabbixDB/DB
[root@zabbix_server&/]#&chmod&-vR&700&/etc/ZabbixDB/DB
[root@zabbix_server&/]#&cp&-av&/var/lib/mysql*&/ZabbixDB/DB
[root@zabbix_server&/]#&vi&/f
#可以修改InnoDB为独立表空间模式,每个数据库的每个表都会生成一个数据空间。
innodb_file_per_table=1
#修改数据库存放目录
datadir=/ZabbixDB/DB/mysql
socket=/var/lib/mysql/mysql.sock再启动数据库服务[root@zabbix_server&/]#&systemctl&start&mariadb启动服务以后,我们需要检测一下独立表空间的功能是否已经正常开启,当为ON时说明已经开启[root@zabbix_server&/]#mysql&-u&root&-p
MariaDB&[(none)]&&show&variables&like&'%per_table%';
+-----------------------+-------+
|&Variable_name&&&&&&&&&|&Value&|
+-----------------------+-------+
|&innodb_file_per_table&|&ON&&&&|
+-----------------------+-------+
1&row&in&set&(0.00&sec)5、还原数据库[root@zabbix_server&/]#&mysqldump&-uroot&-p&zabbix&&&/data/zabbix_db.sql
[root@zabbix_server&/]#&mysql&-uroot&-p&zabbix&&&/data/zabbix_db.sql6、恢复相关服务[root@zabbix_server&/]#&systemctl&start&zabbix-server
[root@zabbix_server&/]#&systemctl&start&httpd这时候我们再检测数据库及磁盘空间,会发现数据库已经存放至/ZabbixDB/DB/mysql目录,而根目录空间恢复正常了。[root@zabbix_server&mysql]#&pwd
/ZabbixDB/DB/mysql
[root@zabbix_server&mysql]#&ls&-l
总用量&29712
-rwxrwxrwx.&1&mysql&mysql&&&&16384&12月&29&18:16&aria_log.
-rwxrwxrwx.&1&mysql&mysql&&&&&&&52&12月&29&18:16&aria_log_control
-rwxrwxrwx.&1&mysql&mysql&&&&&8820&12月&29&16:42&columns_priv.frm
-rwxrwxrwx.&1&mysql&mysql&&&&&&&&0&12月&29&16:42&columns_priv.MYD
-rwxrwxrwx.&1&mysql&mysql&&&&&4096&12月&29&16:42&columns_priv.MYI
-rwxrwxrwx.&1&mysql&mysql&&&&&9582&12月&29&16:42&db.frm
-rwxrwxrwx.&1&mysql&mysql&&&&&&880&12月&29&16:42&db.MYD
-rwxrwxrwx.&1&mysql&mysql&&&&&5120&12月&29&16:42&db.MYI#磁盘空间[root@zabbix_server&mysql]#&df&-lh
文件系统&容量&已用&可用&已用%&挂载点
/dev/sda2&&&&&&&9.8G&&3.1G&&6.8G&&&31%&/
/dev/sdb1&&&&&&&100G&&1.9G&&&99G&&&&2%&/ZabbixDB至此,Zabbix磁盘空间不足及数据库存储位置迁移完成。本文出自 “” 博客,谢绝转载!
了这篇文章
类别:┆阅读(0)┆评论(0)

我要回帖

更多关于 zabbix监控tomcat 的文章

 

随机推荐