Zabbix-06-性能优化+api使用+高可用
zabbix性能优化(监控) myisam innode
监控:写多读少的应用 适合innnode,innode是行级锁
小说类型网站:读多写少 适合myisam,myisam是表级锁
针对mysql,写多读少(DBA的工作内容)
1.生成cnf配置文件 https://imysql.com/my-cnf-wizard.html
2.zabbix的主要瓶颈在于数据库
数据库中压力最大的五张表,表里带索引,所以数据量大
https://www.cnblogs.com/52py/p/9604381.html
去掉无用的监控项,增加监控项的间取值间隔,减少历史数据保存周期
没用的,不需要的,全部去掉
可以增大取值间隔,不要快速取值
由于表中数据巨大,重启(意外关机)可能一天都没能起来,(或者海外业务)
后台启动运行:
开启screen(会开启子shell在后台运行)
screen
输入命令
CMD
查看screen
screen -ls
恢复screen
screen -r ID
结束screen
kill ID
减少保存周期
监控项数量在一段时间后会自动稳定(自带一定的监控项删除)
也可以自动检测后删除
把被动模式修改为主动模式,增加zabbix-proxy
能改成主动模式的都改成主动模式
能用zabbix-proxy的都用zabbix-proxy
请求次数汇总在zabbix-proxy这一层,但是总数据量没变
zabbix-server任务清单会发给zabbix-proxy,proxy发给anget
针对zabbix-server进程调优,谁忙,就加大他的进程数量
针对zabbix_server缓存调优,谁的剩余内存少,就加大它的缓存值
先给server添加Template App Zabbix Server模板,里面都是收集器
当低于40%时,适量增大他的进程
vim /etc/zabbix/zabbix_server.conf
各种cache都可以在文件里调,每个进程数都可以在文件中找到
zabbix繁忙程度查看
针对zabbix 历史数据和趋势图的表,进行周期性分表
写触发器,进行定期分表
zabbix分组报警,使用grafana对接zabbix出图
分组报警
https://www.cnblogs.com/ssgeek/p/9274767.html
取消垃圾报警(多采用合适的阈值,如10分钟的avg)
zabbix-server默认内存可以调
可以减少因为内存不足引起的误报
延迟查看
误报会占Swap空间不释放,如果报警多,会减少可用空间
查看年度报警
删除所有无用报警项
5.查看修改动作
zabbix-api使用
微信报警,调用api(http curl)
顶顶报警,调用api(http curl)
zabbix api(可用二次开发,在运维平台接入zabbix)
granfana调用zabbix api
http://localhost/zabbix/api_jsonrpc.php Admin zabbix
官方文档
https://www.zabbix.com/documentation/4.0/zh/manual/api
创建主机
获取cookie
发送数据
(请求头+请求内容(json格式)+目的地址)
curl -X POST -H 'Content-Type: application/json' -d '
1 | { |
http://192.168.1.10:56/zabbix/api_jsonrpc.php
拿到token
{“jsonrpc”:”2.0”,”result”:”e0bf8ce1e015dd932ae4620609f4cbcf”,”id”:1}
token = “e0bf8ce1e015dd932ae4620609f4cbcf”
创建主机
脚本解析
批量创建进行变量替换
1 | { |
http://192.168.1.10:56/zabbix/api_jsonrpc.php
示例脚本
curl -X POST -H 'Content-Type: application/json' -d '
1 | { |
http://192.168.1.10:56/zabbix/api_jsonrpc.php
返回值
{“jsonrpc”:”2.0”,”result”:{“hostids”:[“10339”]},”id”:1}
运维平台只需要几个核心的运维开发,其他的都可以是小白,会点点点就行了,特别是实习生
删除主机
脚本解析
1 | { |
脚本示例
curl -X POST -H 'Content-Type: application/json' -d '
1 | { |
http://192.168.1.10:56/zabbix/api_jsonrpc.php
接下来就是前端写按钮,可以点点点发起请求就行了
ID查询
主机群ID查看
模板ID查看
zabbix高可用
高可用对比
传统服务
nginx + php , keeplievd vip
nginx + php , keeplievd
新服务
zabbix-server, keeplived vip
zabbix-server, keeplived
如果开启,会一直收不到数据,所以我需要用keeplived状态来实现启动和关闭
zabbix-angent vip
参考博客
https://www.qstack.com.cn/archives/287.html
部署步骤
安装
yum install keepalived sshpass -y
配置文件修改
修改zabbix_server.conf
vim /etc/zabbix/zabbix_server.conf
修改DB数据库地址
修改密码
修改取值IP(指定多个IP时,从哪个IP取值)
修改zabbix.conf.php
vim /etc/zabbix/web/zabbix.conf.php
优化http
vim /etc/httpd/conf/httpd.conf
备份数据库
1 | mysqldump -B zabbix > zabbix.sql |
编写并授权脚本
编写自启脚本
1 | vim /opt/to_master.sh |
参数:
-p 远程密码
/etc/init.d/zabbix-server stop cmd命令
/etc/init.d/zabbix-server start cmd命令
授权执行脚本
chmod +x /opt/to_master.sh
授权keeplived脚本
chmod 644 /etc/keepalived/keepalived.conf
修改keeplived
LVS 需要修改
state 需要修改
interface 需要修改
priority 需要修改
ip 需要修改
keepalived脚本示例
1 | vim /etc/keepalived/keepalived.conf |
添加hosts解析(要么不加,要么全加)
要么双方都加上解析,要么双发都不加解析,否则在验证的过程中会出现问题
192.168.1.10 node10
192.168.1.91 node91
修改agent端
vim /etc/zabbix/zabbix_agentd.conf
agent日志
zabbix日志在 /var/log/zabbix/zabbix_agentd.log