Zabbix--06主动模式和被动模式、低级自动发现、性能优化、
一、 Zabbix主动模式和被动模式
默认为被动模式:100个监控项要100个来回,要的时候才返回
主动模式:100个监控项1个回合,将所需要的100个打包,然后一次发过去,发过去之后,客户端全部执行完再一次返回给服务端。
1.克隆模版
完全克隆原来被动模式的模版为主动模式
2.修改克隆后的模版为主动模式
3.修改监控主机关联的模版为主动模式
4.修改客户端配置文件并重启
[root@web01 ~]# cat /etc/zabbix/zabbix_agentd.conf
PidFile=/var/run/zabbix/zabbix_agentd.pid
LogFile=/var/log/zabbix/zabbix_agentd.log
LogFileSize=0
Server=10.0.1.61
ServerActive=10.0.1.61
Hostname=web01
Include=/etc/zabbix/zabbix_agentd.d/*.conf
[root@web01 ~]# systemctl restart zabbix-agent.service
5.查看最新数据
发现获取数据的时间是一样的
二、Zabbix低级自动发现
监控端口自动发现
1.查看系统自带分区自动发现
系统自带的自动发现会显示红字,比如自带的磁盘分区发现规则
1.查看zabbbix所有的key过滤后展示
2.解析成json后的格式
3.过滤规则
实质上是从mount命令获取的分区名和类型
但是我们zabbix显示的并没有这么多 是因为做了正则表达式过滤
而正则表达式是在管理里面配置的
4.使用zabbix_get获取key 因为根据过滤规则,只发现了一个xfs的key,使用zabbix_get可以查看到这个key
2.查看系统自带的网卡自动发现
1.查看网络自动发现规则
2.过滤规则
2.命令行过滤
[root@m01 ~]# zabbix_agentd -p|grep net.if.discovery
net.if.discovery [s|{"data":[{"{#IFNAME}":"tun0"},{"{#IFNAME}":"eth0"},{"{#IFNAME}":"eth1"},{"{#IFNAME}":"lo"}]}]
3.查看自动添加的监控项
我们会发现添加了四个监控项
2个eth0
2个eth1
4.查看key的值
[root@m01 ~]# zabbix_get -s 10.0.1.61 -k net.if.in[eth0]
2191453
[root@m01 ~]# zabbix_get -s 10.0.1.61 -k net.if.in[eth1]
7152
3.监控mysql多实例
[https://www.qstack.com.cn/archives/108.html](https://www.qstack.com.cn/archives/108.html)
1.复制并修改数据库配置文件
[root@m01 ~]# cp /etc/my.cnf /etc/my3307.cnf
[root@m01 ~]# vim /etc/my3307.cnf
[root@m01 ~]# cat /etc/my3307.cnf
[mysqld]
datadir=/data/3307/
socket=/data/3307/mysql.sock
port=3307
user=mysql
symbolic-links=0
[mysqld_safe]
log-error=/data/3307/mysqld.log
pid-file=/data/3307/mysqld.pid
[root@m01 ~]# cp /etc/my3307.cnf /etc/my3308.cnf
[root@m01 ~]# sed -i 's#3307#3308#g' /etc/my3308.cnf
2.创建数据目录并初始化
[root@m01 ~]# mkdir /data/{3307,3308}
[root@m01 ~]# chown -R mysql.mysql /data/330*
[root@m01 ~]# mysql_install_db --user=mysql --defaults-file=/etc/my3307.cnf
[root@m01 ~]# mysql_install_db --user=mysql --defaults-file=/etc/my3308.cnf
3.启动多实例
[root@m01 ~]# mysqld_safe --defaults-file=/etc/my3307.cnf &
[root@m01 ~]# mysqld_safe --defaults-file=/etc/my3308.cnf &
4.检查端口
[root@m01 ~]# netstat -lntup|grep mysql
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 2042/mysqld
tcp 0 0 0.0.0.0:3307 0.0.0.0:* LISTEN 84790/mysqld
tcp 0 0 0.0.0.0:3308 0.0.0.0:* LISTEN 85439/mysqld
5.创建自动发现配置文件
[root@m01 ~]# vim /etc/zabbix/zabbix_agentd.d/mysql_discovery.conf
[root@m01 ~]# cat /etc/zabbix/zabbix_agentd.d/mysql_discovery.conf
UserParameter=mysql.discovery,/bin/bash /server/scripts/mysql_discovery.sh
6.创建自动发现多实例脚本
[root@m01 ~]# cat /server/scripts/mysql_discovery.sh
#!/bin/bash
#mysql low-level discovery
res=$(netstat -lntp|awk -F "[ :\t]+" '/mysqld/{print$5}')
port=($res)
printf '{'
printf '"data":['
for key in ${!port[@]}
do
if [[ "${#port[@]}" -gt 1 && "${key}" -ne "$((${#port[@]}-1))" ]];then
printf '{'
printf "\"{#MYSQLPORT}\":\"${port[${key}]}\"},"
else [[ "${key}" -eq "((${#port[@]}-1))" ]]
printf '{'
printf "\"{#MYSQLPORT}\":\"${port[${key}]}\"}"
fi
done
printf ']'
printf '}\n'
7.测试自动发现脚本
[root@m01 ~]# bash /server/scripts/mysql_discovery.sh
{"data":[{"{#MYSQLPORT}":"3306"},{"{#MYSQLPORT}":"3307"},{"{#MYSQLPORT}":"3308"}]}
8.重启zabbix-agent
[root@m01 ~]# systemctl restart zabbix-agent.service
9.zabbix_get测试取key
[root@m01 ~]# zabbix_get -s 10.0.1.61 -k mysql.discovery
(Not all processes could be identified, non-owned process info
will not be shown, you would have to be root to see it all.)
{"data":[]}
这时我们发现取不出来并提示了个错误
原因是zabbix用户不能使用netstat的-p参数
解决方法为给netstat命令添加s权限
[root@m01 ~]# which netstat
/usr/bin/netstat
[root@m01 ~]# chmod u+s /usr/bin/netstat
然后再次测试就发现可以取到值了
[root@m01 ~]# zabbix_get -s 10.0.1.61 -k mysql.discovery
{"data":[{"{#MYSQLPORT}":"3306"},{"{#MYSQLPORT}":"3307"},{"{#MYSQLPORT}":"3308"}]}
10.web页面创建自动发现规则模版
创建模版
创建自动发现规则
设置过滤规则
创建过滤 规则
11.模仿zabbix自带的mysql监控配置修改监控项
[root@m01 ~]# cat /etc/zabbix/zabbix_agentd.d/userparameter_mysql.conf
UserParameter=mysql.status[*],echo "show global status where Variable_name='$1';" | HOME=/var/lib/zabbix mysql -uroot -p123456 -P $2 -N | awk '{print $$2}'
[root@m01 ~]# systemctl restart zabbix-agent.service
12.测试访问监控项
[root@m01 ~]# zabbix_get -s 10.0.1.61 -k mysql.status[Uptime,3307]
23202
[root@m01 ~]# zabbix_get -s 10.0.1.61 -k mysql.status[Uptime,3308]
23204
13.web页面添加监控项原型
监控项原型
12.web页面设置主机关联模版
主机关联模版
13.查看是否已经自动添加成功
三、Zabbix 性能优化
1.监控数据分析
zabbix监控主机和监控项较少的时候,不需要优化
数据库 200台主机 * 200个监控项 = 40000监控项/30秒 = 1333次写入/每秒
写多 读少
2.优化思路
1.mariadb 5.5 innodb 升级到mysql5.7 tokudb
2.去掉无用监控项,增加监控项的取值间隔,减少历史数据的保存周期
3.被动模式改为主动模式
4.针对zabbix-server进程数量调优
5.针对zabbix-server缓存调优,谁的剩余内存少,就加大他的缓存
3.升级存储引擎
TokuDB性能比InnoDB要好
实施步骤:
1.找一台机器安装好mysql5.7
2.将mariadb的数据导出,然后替换sql文件里的存储引擎为TokuDB
3.将替换之后的数据导入到mysql5.7
4.停掉mariadb
5.检查测试
4.优化进程数
可以人为制造进程繁忙,把自动发现调整IP范围为1-254
这个时候观察会发现自动发现进程变得繁忙了
修改进程数
[root@zabbix-11 ~]# grep "^StartDiscoverers" /etc/zabbix/zabbix_server.conf
StartDiscoverers=10
[root@zabbix-11 ~]# systemctl restart zabbix-server.service
调整之后发现进程不这么繁忙了
5.缓存调优
调整配置文件
[root@zabbix-11 ~]# grep "^Cache" /etc/zabbix/zabbix_server.conf
CacheSize=128M
四、 zabbix高可用
思路:
2台zabbix-server使用keepavied做高可用
数据库做主从复制
keepalived两端都做backup角色,设置不抢占VIP
keepalived设置如果发生改变就将自身的从库数据库修改为主库设置
然后另一台修复上线后,手动介入重新做主从同步,变成从库
Zabbix--06主动模式和被动模式、低级自动发现、性能优化、的更多相关文章
- zabbix 主动模式和被动模式说名
一.zabbix agent主动模式与被动模式的区别 zabbix agent的运行模式有以下两种:1.被动模式:此模式为zabbix默认的工作模式,由zabbix server 向zabbix ag ...
- Zabbix主动模式与被动模式的区别——最简单的解释
一直搞不清楚Zabbix的主动模式和被动模式的差别,网上看到别人博客里的解释都是云里雾里的,完全搞不清.知道偶然看到了以下这个解释.就基本上明白了. Zabbix的主动模式和被动模式都是相对agent ...
- Zabbix:主动模式
简介 Zabbix 是由 Alexei Vladishev 开发的一种网络监视.管理系统,基于 Server-Client 架构.可用于监视各种网络服务.服务器和网络机器等状态,官方站点:https: ...
- Linux centosVMware zabbix主动模式和被动模式、添加监控主机、添加自定义模板、处理图形中的乱码、自动发现
一.主动模式和被动模式 主动或者被动是相对客户端来讲的 被动模式,服务端会主动连接客户端获取监控项目数据,客户端被动地接受连接,并把监控信息传递给服务端 主动模式,客户端会主动把监控数据汇报给服务端, ...
- zabbix主动模式和被动模式
目录 一. 理论概述 二.总结 一. 理论概述 整个zabbix监控过程当中,对于agent来说有两种递交监控项信息的模式:主动模式和被动模式 主动模式 agent向server主动请求对应监控项列表 ...
- zabbix*邮件报警 *用户参数User parameters *定义key值 *Agentd主动模式与被动模式
邮件报警 #下载安装邮件报警系统wget http://caspian.dotconf.net/menu/Software/SendEmail/sendEmail-v1.56.tar.gz yum - ...
- Zabbix学习之路(九)之低级自动发现以及MySQL多实例
1.概述 Zabbix的网络发现是指zabbix server通过配置好的规则,自动添加host,group,template Zabbix的主动注册刚好和网络发现是相反的,功能基本一致.zabbix ...
- zabbix agent主动模式与proxy模式,实现公网zabbix监控私网客户机
zabbix agent主动模式,实现公网zabbix监控私网客户机 zabbix_server端当主机数量过多的时候,由Server端去收集数据,Zabbix会出现严重的性能问题,主要表现如下: ...
- FTP协议的主动模式和被动模式的区别
最近准备做一个<FtpCopy系列教程>,主要讲解Ftp协议主动模式和被动模式的区别.以及FTP服务器的安装部署,然后通过几个常用实例演示,详细讲解如何使用FtpCopy进行数据自动备份. ...
随机推荐
- C++学习一二
为了更深入的学习程序编写,以及进行相关算法的编写.决定每天花点时间学习C++:以下是每天的学习笔记. 一.std代表命名空间,可以用using来省略. 二.std:endl.输出一个换行符,并且“刷新 ...
- SQL Server标量函数改写内联表值函数优化案例
问题SQL: SELECT TOP 1001 ha.HuntApplicationID , ha.PartyNumber , mht.Name AS MasterHuntTypeName , htly ...
- webpack插件之htmlWebpackPlugin
webpack插件之htmlWebpackPlugin webpack插件 自动化 htmlWebpackPlugin 由于webpack已经帮我们处理好js之间的依赖关系,现在我们可以忽略js的加 ...
- 浏览器默认样式及reset
写在前面 首先纠正一个易错概念.div并非生来就是块元素,而是每个浏览器都有一套默认的css样式(优先级最低),默认样式里会把div设置成display: block;还有margin,padding ...
- hibernate的查询
1.条件查询 public List<Weibo> selectOne(int k){ Session session = HibernateUtil.currentSession(); ...
- matlab常见使用
可以新建一个.m文件,将代码放入其中 1.求平均 A=[ 1 2; 3 4; ] a=mean(A,1) %按列平均 b=mean(A,2) %按行平均 c=mean(A(:)) %全部平均 2.清屏 ...
- JS获取select被选中的option的值
一:JavaScript原生的方法 1:拿到select对象: var myselect=document.getElementById(“test”); 2:拿到选中项的索引:var index=m ...
- 快速入门分布式消息队列之 RabbitMQ(3)
目录 目录 前文列表 前言 通道 Channel 一个基本的生产者消费者实现 消费者 生产者 运行结果 应用预取计数 应用 ACK 机制 最后 前文列表 快速入门分布式消息队列之 RabbitMQ(1 ...
- Jmeter之线程组(默认)
Jmeter中的采样器必须要基于线程组. 一.添加线程组 在测试计划上右键,然后选择,如下图: 二.线程组界面 三.线程组界面配置说明 1.名称:线程组自定义名称: 2.注释:添加的一些备注说明信息, ...
- Unity3D 连接MySql
MySql安装如下: https://www.cnblogs.com/dlvguo/p/9671832.html Unity连接MySql首先要在Unity的安装目录D:\Unity2017\Edit ...