Zabbix部署 监控数据库 报警服务(二) 终

接着zabbix(一)接着部署

配置过一段时间后,观察下监控图效果出来了没

zabbix3.0 server已自带mysql的模板了,只需配置好agent客户端,然后在web端给主机增加模板就行了。

Zabbix_agent客户端操作(1)首先在客户端的mysql里添加权限,即本机使用zabbix账号连接本地的mysqlmysql> grant all on *.* to zabbix@'localhost' identified by '123456';

Query OK, 0 rows affected, 1 warning (0.02 sec)

mysql> flush privileges;

Query OK, 0 rows affected (0.03 sec)

(2)在zabbix_agent服务目录下创建.my.cnf连接文件zabbix安装目录是/usr/local/zabbix[root@localhost etc]# pwd

/usr/local/zabbix/etc

[root@localhost etc]# cat .my.cnf

[client]

user=zabbix

password=123456

注意:

如果在数据库grant授权时,针对的是localhost,这个.my.cnf里面就不用加host参数了【如上配置】

但如果grant授权时针对的是本机的ip(如192.168.31.250),那么在.my.cnf文件里就要加上host参数进行指定了

即在.my.cnf文件就要加上:

host=192.168.0.7

socket= /usr/local/mysql/mysql.sock

user=zabbixpassword=123456

(3)配置MySQL的key文件这个可以从zabbix3.2安装时的解压包里拷贝过来

从zabbix_server服务端安装时解压目录

/root/zabbix-3.2.1/conf/zabbix_agentd/userparameter_mysql.conf  拷贝到zabbix_agent客户端上的/usr/local/zabbix/etc/zabbix_agentd.conf.d/目录下的[root@localhost zabbix]# cd /usr/local/zabbix/etc/zabbix_agentd.conf.d/

[root@localhost zabbix_agentd.conf.d]# pwd

/usr/local/zabbix/etc/zabbix_agentd.conf.d

[root@localhostzabbix_agentd.conf.d]#,cp,/usr/src/zabbix-3.2.1/conf/zabbix_agentd/userparameter_mysql.conf ./

[root@localhost zabbix_agentd.conf.d]# ls userparameter_mysql.conf

userparameter_mysql.conf

然后查看 userparameter_mysql.conf 文件,看到类似HOME=/var/lib/zabbix的路径设置,把路径全都替换为/usr/local/zabbix/etc/,也就是上面的.my.cnf文件所在的目录路径。另外,注意userparameter_mysql.conf 文件里的mysql命令路径(提前做好mysql的系统环境变量,以防mysql命令不被系统识别)

如下:[root@server1 zabbix_agentd.conf.d]# cat userparameter_mysql.conf

# For all the following commands HOME should be set to the directory that has .my.cnf file with password information.

# Flexible parameter to grab global variables. On the frontend side, use keys like mysql.status[Com_insert].

# Key syntax is mysql.status[variable].

UserParameter=mysql.status[*],echo "show global status where Variable_name='$1';" |HOME=/usr/local/zabbix/etc/ mysql -N | awk '{print $$2}'

# Flexible parameter to determine database or table size. On the frontend side, use keys like mysql.size[zabbix,history,data].

# Key syntax is mysql.size[,

# Database may be a database name or "all". Default is "all".

# Table may be a table name or "all". Default is "all".

# Type may be "data", "index", "free" or "both". Both is a sum of data and index. Default is "both".

# Database is mandatory if a table is specified. Type may be specified always.

# Returns value in bytes.

# 'sum' on data_length or index_length alone needed when we are getting this information for whole database instead of a single table

UserParameter=mysql.size[*],bash -c 'echo "select sum($(case "$3" in both|"") echo "data_length+index_length";; data|index) echo "$3_length";; free) echo "data_free";; esac)) from information_schema.tables$([[ "$1" = "all" || ! "$1" ]] || echo " where table_schema=\"$1\"")$([[ "$2" = "all" || ! "$2" ]] || echo "and table_name=\"$2\"");" |HOME=/usr/local/zabbix/etc/ mysql -N'

UserParameter=mysql.ping,HOME=/usr/local/zabbix/etc/mysqladmin ping | grep -c alive

UserParameter=mysql.version,mysql -V

(4)按照上面修改完之后检查一下,然后重启zabbix_agent

接着在zabbix_server服务端进行命令行测试[下面的192.168.0.7是客户端的ip]

若下面报错

[root@localhost zabbix]# /usr/local/zabbix/bin/zabbix_get -s 192.168.0.7-p 10050 -k "mysql.status[Uptime]"

sh: mysql: command not found

解决方法:

在userparameter_mysql.conf中关于mysql命令前面添加绝对路径[root@localhost /]# /usr/local/zabbix/bin/zabbix_get -s 192.168.0.7 -p 10050 -k "mysql.status[Uptime]"

169

如果出现类似这一串key的数字,就说明配置ok,服务端能监控到客户端的mysql数据了!成功啦,之后在监控界面增加主机对应的MySQL模板就ok了。

注:zabbix_get命令介绍

参数说明:

-s --host:指定客户端主机名或者IP

-p --port:客户端端口,默认10050

-I --source-address:指定源IP,写上zabbix server的ip地址即可,一般留空,服务器如果有多ip的时候,你指定一个。

-k --key:你想获取的key

zabbix_get获取数据

获取负载

# zabbix_get -s 192.168.31.250 -p 10050 -k "system.cpu.load[all,avg15]"

获取主机名

# zabbix_get -s 192.168.31.250 -p 10050 -k "system.hostname"

(5)登录zabbix监控界面,在“配置”-“模板”里可以看到自带的mysql监控模板

在相应主机监控配置里添加mysql的监控模版(zabbix自带的)即可。

下面是mysql监控项的效果图:

【1】监控mysql的带宽:在zabbix前端可以实时查看mysql发送接收的字节数。其中bytes received表示从所有客户端接收到的字节数,bytes sent表示发送给所有客户端的字节数。

mysql数据库已经成功检测上

监控mysql网卡情况

zabbix3.2.1邮件报警设置:

Zabbix监控服务端、客户端都已经部署完成,被监控主机已经添加,Zabiix监控运行正常。

在Zabbix服务端设置邮件报警,当被监控主机宕机或者达到触发器预设值时,会自动发送报警邮件到指定邮箱。

具体操作:

以下操作在Zabbix监控服务端进行

下载sendemail软件

然后安装那两个依赖包,命令是:[root@localhost ~]# yum install perl-Net-SSLeay perl-IO-Socket-SSL -y

解压软件,然后将sendemail复制到/usr/local/bin/目录下,并加上可执行权限,然后修改用户和群组。[root@localhost src]# tar zxf sendEmail-v1.56.tar.gz

[root@localhost src]# cd sendEmail-v1.56/

[root@localhost sendEmail-v1.56]#  cp sendEmail /usr/local/bin/sendEmail

[root@localhost sendEmail-v1.56]# chown zabbix:zabbix /usr/local/bin/sendEmail

[root@localhost sendEmail-v1.56]# ll /usr/local/bin/sendEmail

-rwxr-xr-x. 1 zabbix zabbix 80213 Jan  4 17:52 /usr/local/bin/sendEmail

进入/usr/local/zabbix/share/zabbix/alertscripts/目录执行# /usr/local/bin/sendEmail -h查看sendEmail的帮助

#/usr/local/bin/sendEmail -f xinwang1360@163.com -t xinwang1360@163.com -s smtp.163.com -u "hello" -o message-content-type=html -o message-charset=utf8 -xu xinwang1360@163.com -xp密码-m "chai xin wang wei wu "

命令主要选项说明:/usr/local/bin/sendEmail                     #命令主程序-fxinwang1360@163.com#发件人邮箱-txinwang1360@163.com#收件人邮箱-s smtp.163.com#发件人邮箱的smtp服务器-u "我是邮件主题"                               #邮件的标题-o message-content-type=html          #邮件内容的格式,html表示它是html格式-o message-charset=utf8                   #邮件内容编码-xuxinwang1360@163.com#发件人邮箱的用户名-xp密码#发件人邮箱密码-m "我是邮件内容"                             #邮件的具体内容

发送成功验证效果 效果完成

然后在这个目录下创建报警脚本sendmail.sh

[root@mysqla alertscripts]# vi mail.sh

下面是脚本内容(涂颜色部分是你的邮箱和密码,-f和-xu参数后面跟邮箱,-xp后面跟授权码)

#!/bin/bash

to=$1

subject=$2

body=$3

/usr/local/bin/sendEmail -f xinwang1360@163.com -t xinwang1360@163.com -s smtp.163.com -u "hello" -o message-content-type=html -o message-charset=utf8 -xu xinwang1360@163.com -xp密码-m "chai xin wang wei wu "

如果在配置过程中出现错误可以有效快速解决 如下

at /usr/local/bin/sendEmail line 1906.

invalid SSL_version specified at /usr/share/perl5/vendor_perl/IO/Socket/SSL.pm line 415

注:进行发送邮件测试时,出现了第一个报错

原因是sendemail软件和perl5里面的ssl版本不兼容导致的,通过修改sendemail里面的内容可以解决这个问题。

解决方法:

在sendemail中1906行的内容,从if (! IO::Socket::SSL->start_SSL($SERVER, SSL_version => 'SSLv3 TLSv1')) {

修改为

if (! IO::Socket::SSL->start_SSL($SERVER)) {

即不指定SSL的版本,让程序来自己选择

不管你使用的是163/126邮箱还是qq邮箱,你都必须开通pop3服务,而且126/qq邮箱还要求使用第三方客户端发送邮件是必须使用授权码登录,使用账号密码验证时,会出现下面图片中的错误。

sendEmail[5102]: ERROR => ERROR => SMTP-AUTH: Authentication to smtp.126.com:25 failed.

至于邮箱的授权码,自己登录126邮箱去设置就好。

经过上面两个问题的处理后就可以正常发送邮件如下所示显示成功提示

上面的邮件脚本配置好后,就要在web端添加报警媒介,在web页面的管理,报警媒介类型页面,点击右边的创建媒体类型

进入创建页面,然后输入名称“邮件报警脚本”,类型选择脚本,名称选择mail.sh,点击添加按钮,添加三个脚本参数,分别是{ALERT.SENDTO},{ALERT.SUBJECT},{ALERT.MESAGE},分别对于mail.sh中的to、subject和body。添加完成后点下面的添加按钮,我们的报警媒介就创建完成了

创建好报警媒介后,就需要将报警媒介关联到我们的用户。点击管理,用户,然后选择我们的用户admin也可新建一个用户,点击用户名就进入到用户配置界面。点击报警媒介,然后点添加,选择我们上一步创建的邮件报警脚本,输入收件人,选择报警时间和类型,然后点击添加,就将创建好的报警媒介关联到我们的用户上面了。

现在需要做的是,创建一个触发动作,即系统出现故障时,触发这个动作,然后给我们的邮箱发送报警邮件。点击配置,选择动作,然后点击右边的创建动作。

在动作这一页名称中写入我们定义的动作名以及触发条件

步骤是1-3,也即是从1开始到3结束。一旦故障发生,就是执行Email.sh脚本发生报警邮件给zabbix用户。假如故障持续了1个小时,它也只发送3次,第1-3次(即前3次)邮箱发送给zabbix用户,时间间隔为0秒。如果改成1-0,0是表示不限制.无限发送

设置“恢复操作”

添加好以后就可以看到我们添加的动作名,以及该动作已启用的状态。

最后,点击”报表“->”动作日志“,可以看到触发动作的次数

zabbix监控mysql日志告警_zabbix监控mysql以及报警(二)终相关推荐

  1. zabbix mysql监控告警_Zabbix监控mysql配置及故障告警配置

    同时介绍了触发器的创建及zabbix通过邮件方式告警配置. 一.配置自带模板监控mysql 1.提供配置文件模板 文件位置在源码包/usr/local/src/zabbix-3.0.4/conf/za ...

  2. zabbix mysql 脚本路径_Zabbix监控MySQL脚本

    监控思路: 先在Zabbix主机上面配置好MySQL服务器的信息,添加好Zabbix自带的Template App MySQL模版,然后去MySQL服务器上安装agent,再添加MySQL监控脚本. ...

  3. zabbix mysql主从延迟_zabbix监控mysql主从同步和延迟

    一.环境需求 主机A: zabbix-server 主机B: zabbix-agent/mysql从 二.主机B操作 1.添加监控脚本 vim /data/zabbix/mysql_slave_che ...

  4. zabbix获取mysql主从状态_zabbix监控MySQL主从状态

    首先需要拥有zabbix环境及MySQL主从环境 搭建zabbix环境可参考:https://www.cnblogs.com/tyk3201/p/12033456.html 需要用到三台虚拟机 一:1 ...

  5. zabbix监控mysql的原理_zabbix监控mysql数据库性能实现

    Zabbix对于主机监控通常有多种方式: 例如 Trapper.Agent.SNMP.ICMP等. Trapper工作原理: 被监控主机根据用户设定的时间间隔定期将数据push到Zabbix Serv ...

  6. MySQL日志系列(1):MySQL各种日志

    目录 传送门 MySQL日志分类 错误日志 查看错误日志 设置错误文件 通用查询日志 查看通用查询日志 设置通用查询日志 binlog 查看binlog日志 设置binlog 慢查询日志 查看慢查询日 ...

  7. wind mysql日志_Windows下的Mysql日志操作

    日志文件类型概述: 1. 错误日志 记录启动.运行或停止mysqld时出现的问题. My.ini配置信息: #Enter a name for the error log file. Otherwis ...

  8. linux下mysql日志配置_Linux下MySQL 5.5.21 服务器日志配置

    昨日需要配置服务器日志,在网上搜了很多材料,结果都会出现错误.看了以下错误日志,才知道Mysql 5.5版本配置进行了更改.网上苦苦搜寻没有结果,于是乎就下了英文手册.写下这篇文章,希望能对大家有所帮 ...

  9. windows 开启mysql日志记录_windows下mysql日志开启与查询

    修改 my.ini文件 加入以下语句(在没有设置的前提下) log-error=d:/log/mysql/mysql_log_err.txt log=d:/log/mysql/mysql_log.tx ...

最新文章

  1. 如何在SQL中使用JOIN执行UPDATE语句?
  2. ALEIDoc EDI(8)--Serialization
  3. Linux centos7安装Git及 Jenkins配置Git
  4. Akka Actor远程调用
  5. python tclerror_TclError:错误的窗口路径名(Python)
  6. 信息学奥赛一本通(1405:质数的和与积)
  7. pptx模块的安装与基本使用
  8. 电子设计竞赛方案搜集
  9. win开启审计功能_一项一项教你测等保2.0——Linux安全审计
  10. 武汉科技大学计算机学院生产实习,武汉科技大学实习工作管理办法
  11. 南阳oj 215 Sum
  12. WEB云安全技术应用篇
  13. 软件产品测试报告如何用于软件退税?
  14. 软件测试人员常用的sql语句(四)
  15. Redmi首款超高性价比笔记本明日开售 售价3999元起
  16. 简单版的相似图片搜索原理
  17. 05- 防火墙用户管理
  18. 使用fiddler 去分析视频网站
  19. python实现蒙太奇马赛克效果
  20. 爱情发生器:36个问题+4分钟对视=告别单身

热门文章

  1. .NET应用程序安全操作概述
  2. 利用ruby演示程序执行
  3. 某大型合资企业审批系统上线经验教训总结
  4. 软件编程学习网站汇总——持续更新中
  5. numpy和panda快速入门
  6. Java几种定时发送消息
  7. 灰帽python之旅_灰帽 Python之旅10
  8. 【步态识别】GaitPart 算法学习《GaitPart: Temporal Part-based Model for Gait Recognition》
  9. Unity 网页插件Embedded Browser的使用
  10. Windows10下载安装openjdk11及配置环境变量