10-web监控和性能调优
1. web场景监测概述
1.1. 网站分类概述
静态网站: 纯静态网站就是服务器的源代码和客户端的源代码一致。
动态网站: 比如:
<?php phpinfo()?>每次用户访问的时候 , 内容都是在内存中动态生成的。动态网站支持登陆 , 支持用户交互 , 所以用户在请求动态网站时 , 会给客户端下发一个叫sessionID的内容 , 那么客户端则会将SessionID保存至浏览器的cookie中。
1.2 session和cookie工作原理
当用户首次访问动态网站时 , 是不会携带
cookie信息 , 那么在服务端返回网页的时候 , 会给该客户端的浏览器分配一个唯一的sessionID, 客户端会该sessionID存储至浏览器的Cookie中。当用户再次访问网站时 , 浏览器会在
Header头信息添加Set-Cookie , Set-Cookie携带的则是该网站对应的sessionID信息 , 服务端接收后会进行校验

1.3 模拟网站登录
使用
curl命令模拟登陆zabbix服务器 , 获取cookie, 将cookie保存至本地cook文件中[root@m01 ~]# curl -L -c cook -b cook 'http://10.0.0.61/zabbix/index.php' #-b: cookie字符串或文件读取位置 , 使用option来把上次的cookie信息追加到http request里面去。 #-c: 操作结束后把cookie写入到这个文件中再次访问时 , 携带
cook信息 , 同时使用-d参数携带用户以及密码 , 模拟登陆[root@m01 ~]# curl -L -c cook -b cook -d 'name=Admin&password=zabbix&autologin=1&enter=Sign+in' 'http://10.0.0.61/zabbix/index.php' #-d: 以POST的请方式携带头部信息请求登陆
zabbix服务器后 , 可以使用curl命令获取zabbix队列信息[root@m01 ~]# curl -L -c cook -b cook 'http://10.0.0.61/zabbix/queue.php?config=0'
2. Web场景监测实战
我们使用Zabbix Web监控来监控Zabbix的Web界面。我们想知道它是否可用、是否正常工作以及响应速度。所以我们必须使用用户名和密码登录。
创建新的Web场景
添加一个场景来监控
Zabbix的Web界面。该场景将执行多个步骤。点击配置->主机->选择主机->单击Web监测->创建Web监测
在新的场景中 , 我们将场景命名为"监控
zabbix服务器" , 并为其创建一个新的应用 (application)。定义场景的步骤
定义场景的步骤->点击步骤->点击添加按钮
Web场景步骤1 , 我们首先检查第一页响应是否正确 , 返回HTTP响应代码200, 并包含文本Zabbix SIA。
Web场景步骤2 , 我们继续登录Zabbix前端。
注意 ,
Zabbix前端在登录时使用JavaScript重定向 , 因此首先我们必须登录 , 只有在下一步的步骤中 , 我们才能进行检查登录功能。此外 , 登录步骤必须使用完整的URL (也就是登陆时需要提交用户名以及密码等)还要注意我们如何使用正则表达式的变量语法获取
{sid}变量(会话ID) 的内容:regex:name="sid" value="([0-9a-z]{16})"。在步骤4中会使用此变量Web场景步骤3,登录后,我们现在应该验证一下是否登陆成功。为此,我们检查一个仅在登录后可见的字符串 - 例如Administration( 管理) 。
Web场景步骤 4,现在我们已经验证了前端是可访问的,我们可以登录并检索登录的内容,我们也应该注销,否则Zabbix数据库将被大量的开放会话记录所污染
Web场景步骤 5,我们可以通过查找Username字符串来检查我们是否已经注销了。
完成步骤配置
Web场景步骤的完整配置应如下所示
保存 Web 监控场景。通过以下方式查看场景 检测中 → Web监测



3.性能调优
Zabbix属于写多读少的业务, 所以需要针对zabbix的MySQL进行拆分。MySQL一定要使用SSD固态盘将
Zabbix-Agent被动监控模式, 调整为主动监控模式。使用
zabbix-proxy分布式监控, 在大规模监控时用于缓解Zabbix-Server压力去掉无用监控项, 增加监控项的取值间隔, 减少历史数据保存周期(由
housekeeper进程定时清理)针对于
Zabbix-server进程调优, 谁忙就加大谁的进程数量, 具体取决实际情况, 不是越大越好
[root@web02 ~]# vim /etc/zabbix/zabbix_server.conf StartPollers=20 StartPollersUnreachable=20 ...针对于
Zabbix-server缓存调优, 谁的剩余内存少, 就加大它的缓存值(zabbix cache usage图表)
[root@web02 ~]# vim /etc/zabbix/zabbix_server.conf CacheSize=8M HistoryCacheSize=16M HistoryIndexCacheSize=4M关注管理->队列, 是否有被延迟执行的监控项

参考链接
第十章 监控系统-zabbix网站监控WEB - 年少纵马且长歌 - 博客园 (cnblogs.com)
Zabbbix之十二------Zabbix实现微信报警通知及创建聚合图形 - 一叶知秋~~ - 博客园 (cnblogs.com)
第十三章 监控系统-zabbix-API及性能优化 - 年少纵马且长歌 - 博客园 (cnblogs.com)