1.部署zabbix监控。

1.1 建用户组和用户

  1. groupadd zabbix
  2. useradd -d /home/zabbix -g zabbix -m zabbix
  3. passwd zabbix

1.2 安装基础包

  1. yum -y install wget unzip libxml2 libxml2-devel httpd php php-mysql php-common php-mbstring php-gd php-odbc php-pear curl curl-devel net-snmp net-snmp-devel perl-DBI php-xml ntpdate php-bcmath zlib-devel glibc-devel curl-devel gcc automake libidn-devel openssl-devel net-snmp-devel rpm-devel OpenIPMI-devel

1.3 创建文件夹 赋权限

  1. mkdir -p /apps/svr/zabbix
  2. chown -R zabbix:zabbix /apps/svr/zabbix

1.4 下载zabbix源码包 编译安装

  1. http://www.zabbix.com
  2. zabbix-2.4.6.tar.gz
  3. tar -xzvf zabbix-2.4.6.tar.gz
  4. cd /apps/zabbix-2.4.6/
  5. ./configure --prefix=/apps/svr/zabbix --enable-server --enable-agent --with-mysql --with-net-snmp --with-libxml2 --with-libcurl

  1. make&make install

1.5 数据库运行相关脚本

  1. //创建数据库
  2. create database zabbix default character set utf8;
  3. //创建用户并且赋权
  4. mysql> grant all privileges on *.* to 'zabbix'@'%' identified by 'zabbix';
  5. Query OK, 0 rows affected (0.01 sec)
  6. mysql> grant all privileges on *.* to 'zabbix'@'localhost' identified by 'zabbix';
  7. Query OK, 0 rows affected (0.01 sec)
  8. //运行脚本 创建表结构
  9. mysql>source /apps/zabbix-2.4.6/database/mysql/schema.sql

  1. //运行脚本 加载表数据
  2. mysql>source /apps/zabbix-2.4.6/database/mysql/data.sql

1.6 配置zabbix参数文件

修改以下地方:

  1. [root@localhost etc]# cd /apps/svr/zabbix/etc/
  2. [root@localhost etc]# vi ./zabbix_server.conf







1.7 配置php参数文件

  1. //备份
  2. cp /etc/php.ini /etc/php.ini.zabbixbak
  3. //修改文件
  4. sed -i 's/max_execution_time = 30/max_execution_time = 300/g' /etc/php.ini
  5. sed -i 'date.timezone =/a\date.timezone = Asia/Shanghai' /etc/php.ini
  6. sed -i '/max_input_time =/s/60/300/' /etc/php.ini
  7. sed -i '/mbstring.func_overload = 0/a\mbstring.func_overload = 1' /etc/php.ini
  8. sed -i '/post_max_size =/s/8M/32M/' /etc/php.ini
  9. //创建前端页面目录 拷贝前端文件
  10. [root@localhost zabbix]# cd /var/www/html
  11. [root@localhost html]# mkdir zabbix
  12. [root@localhost frontends]# cp -r php/* /var/www/html/zabbix
  13. //修改apache配置
  14. [root@localhost frontends]# vim /etc/httpd/conf/httpd.conf

  1. //启动apache
  2. root@localhost frontends]# service httpd start



//启动zabbix

[root@localhost zabbix-2.4.6]# cd /apps/svr/zabbix/sbin

./zabbix_server -c /apps/svr/zabbix/etc/zabbix_server.conf

  1. //浏览器配置

  1. **注意:**
  2. //浏览器登陆

  1. //配置agent
  2. [root@localhost zabbix]# cd /apps/svr/zabbix/etc
  3. [root@localhost etc]# ll
  4. 总用量 28
  5. -rw-r--r-- 1 zabbix zabbix 2537 7 17 15:54 zabbix_agent.conf
  6. drwxr-xr-x 2 zabbix zabbix 6 7 17 15:54 zabbix_agent.conf.d
  7. -rw-r--r-- 1 zabbix zabbix 7797 7 17 15:54 zabbix_agentd.conf
  8. drwxr-xr-x 2 zabbix zabbix 6 7 17 15:54 zabbix_agentd.conf.d
  9. -rw-r--r-- 1 zabbix zabbix 13300 7 17 16:29 zabbix_server.conf
  10. drwxr-xr-x 2 zabbix zabbix 6 7 17 15:54 zabbix_server.conf.d
  11. [root@localhost etc]# vim zabbix_agent.conf

  1. [root@localhost etc]# vim zabbix_agentd.conf



  1. //启动 agent
  2. [root@localhost etc]# service zabbix_agent start

2.自定义监控MySQL实例状态。

2.1建立参数目录

  1. //key目录
  2. [root@localhost etc]# mkdir -p /apps/parameters
  3. //脚本目录
  4. [root@localhost etc]# mkdir -p /apps/scripts/mysql

2.2 agentd参数文件中指定监控参数目录位置

  1. [root@localhost etc]# vim /apps/svr/zabbix/etc/zabbix_agentd.conf
  2. Include=/apps/parameters/



pkill -f zabbix_agentd

/apps/svr/zabbix/sbin/zabbix_agentd start

2.3 key文件以及参数文件

  1. [root@localhost etc]# vim /apps/parameters/zabbix_my3306.conf
  2. UserParameter=my3306.check_mysql_status,sh /apps/scripts/mysql/
  3. [root@localhost etc]# vim /apps/scripts/mysql/check_mysql_status_3306.sh
  4. UserParameter=my3306.check_mysql_status,sh /apps/scripts/mysql/check_mysql_status_3306.sh
  5. [root@localhost parameters]# vim /apps/scripts/mysql/check_mysql_status_3306.sh
  6. #!/bin/bash
  7. host=192.168.2.130
  8. username=zabbix
  9. password=zabbix
  10. port=3307
  11. CHECK_TIME=3
  12. #mysql is working MYSQL_IS_OK is 1 , mysql down MYSQL_IS_OK is 0
  13. MYSQL_IS_OK=1
  14. function check_mysql_status (){
  15. mysql -h$host -u$username -p"$password" -P$port -e "select user();" >/dev/null 2>&1
  16. if [ $? = 0 ] ;then
  17. MYSQL_IS_OK=1
  18. else
  19. MYSQL_IS_OK=0
  20. fi
  21. return $MYSQL_IS_OK
  22. }
  23. while [ $CHECK_TIME -ne 0 ]
  24. do
  25. let "CHECK_TIME -= 1"
  26. check_mysql_status
  27. if [ $MYSQL_IS_OK = 1 ] ; then
  28. CHECK_TIME=0
  29. echo 0
  30. exit 0
  31. fi
  32. if [ $MYSQL_IS_OK -eq 0 ] && [ $CHECK_TIME -eq 0 ]
  33. then
  34. echo 1
  35. exit 1
  36. fi
  37. sleep 3
  38. done

2.4 web新建模板

  1. [root@localhost]$ ./zabbix_server -c /apps/svr/zabbix/etc/zabbix_server.conf
  2. ./zabbix_server: error while loading shared libraries: libmysqlclient.so.18: cannot open shared object file: No such file or directory
  3. vim /etc/ld.so.conf
  4. /apps/svr/mysql5/lib
  5. /sbin/ldconfig

2.5 新建items

2.6 新建trigger

2.7 新建group和用户



2.8 关联模板到host

2.9 模拟Mysql实例down掉

Mysql正常运行时 查看 lastest data 0 表示正常运行

停止3307实例,再次查看 lastest data 此时已经为1





2.10 实验中出现的问题

2.10.1 无法通过 service stop 停止 zabbix_server 和 zabbix_agentd

解决方法:

pkill -f zabbix_server

pkill -f zabbix_agentd

**2.10.2 模拟MySql down掉,发现zabbix 无法采集数据 **

解决方法:

因为脚本是循环3s后才返回值,zabbix_agent的默认超时时间正好是3s,修改zabbix_server.conf,设置Timeout=8,重启zabbix_server!

2.10.3 启动 zabbix_server 报错 cannot open shared object file

解决方法:

  1. vim /etc/ld.so.conf
  2. /apps/svr/mysql5/lib
  3. /sbin/ldconfig
  4. /apps/svr/zabbix/bin/zabbix_get -s 192.168.2.130 -p 10050 -k my3307.check_mysql_status

3.模拟MySQL实例crash后,监控告警发邮件到邮箱。

3.1 安装 sendmail

  1. wget http://caspian.dotconf.net/menu/Software/SendEmail/sendEmail-v1.56.tar.gz
  2. tar xvzf sendEmail-v1.56.tar.gz
  3. cp sendEmail-v1.56/sendEmail /usr/local/bin/
  4. chmod +x /usr/local/bin/sendEmail
  5. cd /apps/svr/zabbix/share/zabbix /alertscripts
  6. vim sendEmail.sh
  7. #!/bin/bash
  8. SMTP_server='smtp.163.com'# SMTP服务器
  9. username='zabbixfish@163.com' # 用户名
  10. password='xxxxxxxxxx' # 密码
  11. from_email_address='zabbixfish@163.com' # 发件人Email地址
  12. to_email_address="$1" # 收件人Email地址,zabbix传入的第一个参数
  13. message_subject_utf8="$2" # 邮件标题,zabbix传入的第二个参数
  14. message_body_utf8="$3" # 邮件内容,zabbix传入的第三个参数
  15. # 转换邮件标题为GB2312,解决邮件标题含有中文,收到邮件显示乱码的问题。
  16. message_subject_gb2312=`iconv -t GB2312 -f UTF-8 << EOF
  17. $message_subject_utf8
  18. EOF`
  19. [ $? -eq 0 ] && message_subject="$message_subject_gb2312" || message_subject="$message_subject_utf8"
  20. # 转换邮件内容为GB2312
  21. message_body_gb2312=`iconv -t GB2312 -f UTF-8 << EOF
  22. $message_body_utf8
  23. EOF`
  24. [ $? -eq 0 ] && message_body="$message_body_gb2312" || message_body="$message_body_utf8"
  25. # 发送邮件
  26. sendEmail='/usr/local/bin/sendEmail'
  27. $sendEmail -s "$SMTP_server" -xu "$username" -xp "$password" -f "$from_email_address" -t "$to_email_address" -u "$message_subject" -m "$message_body" -o message-content-type=text -o message-charset=gb2312 tls=no
  28. [root@localhost alertscripts]# chmod +x sendEmail.sh
  29. [root@localhost alertscripts]# ./sendEmail.sh 406466520@qq.com zabbix hello
  30. Jul 21 13:31:30 localhost sendEmail[84369]: Email was sent successfully!

3.2 zabbix web配置

配置邮件提醒



配置action

Configuration-->Actions-->单击“Report problems to Zabbix administrators”-->"Operations"标签页-->new

**配置zabbix_server.conf **

AlertScriptsPath=/apps/svr/zabbix/share/zabbix/alertscripts



重启 zabbix_server

3.3 模拟mysql crash 验证邮件

mysql> shutdown;

Query OK, 0 rows affected (0.00 sec)

mysql> 2017-07-21T05:44:13.465897Z mysqld_safe mysqld from pid file /u01/mysql/my3307/run/mysqld.pid ended



收到邮件!!

zabbix监控MySQL部署实战的更多相关文章

  1. Zabbix 监控MySQL、Apache、Nginx应用监控

    zabbix对第三方应用软件的监控,主要有两个工作难点,一个是编写自定义监控脚本,另一个是在编写模板并导入zabbix web中,编写脚本这个要根据 监控需求定制即可,而编写模板文件有些难度,不过网上 ...

  2. Zabbix监控系统部署:源码安装

    1. 概述1.1 基础环境2. 部署过程2.1 创建用户组2.2 下载源码解压编译安装2.2.1 下载源码解压2.2.2 YUM安装依赖环境2.2.3 编译安装最新版curl2.2.4 更新GNU构建 ...

  3. zabbix监控服务部署脚本

    搭建平台脚本: #!/bin/bash #zabbix监控服务部署 #脚本使用前提:yum搭建,nginx-1.12.2源码包,zabbix-3.4.4源码包,要求源码包尽量在单一目录下,最好在默认管 ...

  4. zabbix监控服务部署

    目录 zabbix监控服务部署 1. zabbix介绍 1.1 zabbix的组件 1.2 zabbix的进程 1.3 zabbix常用术语 2. zabbix工作原理 3. zabbix监控架构 4 ...

  5. Zabbix 监控系统部署

    Zabbix 监控系统部署 实验环境 Zabbix server:RHEL8 ip:192.168.121.10 一.关闭防火墙和selinux [root@Zabbix-server ~]# sys ...

  6. Zabbix监控mysql performance

    介绍 zabbix监控mysql性能,使用zabbix自带的mysql监控模板,可以监控以下内容OPS(增删改查).mysql慢查询数量.mysql请求\响应流量带宽 配置 新建mysql监控用户 G ...

  7. zabbix 监控MySQL

    现在我来说一下我的监控环境 zabbix-3.0.3 MySQL-5.6.23 1.首先我们要登录MySQL,创建一个监控MySQL的用户 GRANT USAGE,PROCESS,SUPER,REPL ...

  8. Zabbix监控mysql配置及故障告警配置

    本文主要介绍zabbix监控mysql的配置,包含使用zabbix自带模板监控mysql相关信息及自定义key监控mysql同步情况.同时介绍了触发器的创建及zabbix通过邮件方式告警配置. 一.配 ...

  9. 分布式数据存储 - Zabbix监控MySQL性能

    Zabbix如何监控mysql性能,我们可以使用mysql自带的模板,可以监控如下内容:OPS(增删改查).mysql请求流量带宽,mysql响应流量带宽,最后会附上相应的监控图! 编写check_m ...

随机推荐

  1. spring定时器的定义

    1.0/5 * * * * ?表示多长时间: 每 5 秒执行一次 七个域从左到右依次是,秒,分,时,日,月,周几,年....最后一个可选.同样是七个域与当前时间匹配的时候则执行... n/m 表示从n ...

  2. LeetCode OJ:Compare Version Numbers(比较版本字符串)

    Compare two version numbers version1 and version2.If version1 > version2 return 1, if version1 &l ...

  3. javaScript-条件语句优化

    1.多重判断时使用 Array.includes test = (fruit: string) => { if (fruit == 'apple' || fruit == 'strawberry ...

  4. C# 为什么用接口实例化一个实现该接口的类?

    这是多态的体现. 首先接口不能实例化的. 实现接口的类 实例 = new 实现接口的类()// 这样用不好吗? //这样已经不是好不好的问题了,这样的话,要接口有什么用?//用接口就是让实例和实现类的 ...

  5. Python爬虫----抓取豆瓣电影Top250

    有了上次利用python爬虫抓取糗事百科的经验,这次自己动手写了个爬虫抓取豆瓣电影Top250的简要信息. 1.观察url 首先观察一下网址的结构 http://movie.douban.com/to ...

  6. C++友元类实现

    C++中的友元既可以实现友元函数,也可以实现友元类,也就是说一个类也可以作为另外一个类的友元.当作为一个类的友元时,它的所有成员函数都是另一个类的友元函数,都可以访问另一个类的私有或者公有成员. 请看 ...

  7. 【转载】取得系统中网卡MAC地址的三种方法

    From:http://blog.csdn.net/zhangting1987/article/details/2732135 网卡地址这个概念有点混淆不清.因为实际上有两个地址,mac地址和物理地址 ...

  8. Yet another A + B

    time limit per test 0.25 s memory limit per test 64 MB input standard input output standard output Y ...

  9. (转)移动端开发总结(一)视口viewport总结

    转载链接:移动端开发中,关于适配问题的一点总结(一) 视口 布局视口layout viewport 视觉视口visual viewport 理想视口 缩放 一个重大区别 最小缩放 和最大缩放 分辨率 ...

  10. 关于verilog中小数直接赋值

    verilog中小数直接赋值的话小数会近似成1,如0.1,0.6,0.9赋值的话就会变成1,5.1,5.9也都会变成6.并且quartus默认小数是64位.