zabbix 优化基础监控系统资源,如:CPU,内存,网络,磁盘IO,tcp链接等,在这里有些容易被忽视的监控如防火墙,还有一些文件等
CPU load优化
1,linux修改CPU监控
通常我们使用top查看CPU负载,在zabbix中,你看到的system.cpu.load[percpu,avg1]是单个核数的负载(The processor load is calculated as system CPU load divided by number of CPU cores.),那么在基础监控中,我们要修改报警阈值(Triggers),默认5,这里需要修改,修改如下:
网上有很多假设,假设1核心的cpu运行在0.7以下为正常,运行超过0.7甚至更高为负载较高,性能会降低,默认是5参考:https://www.zabbix.com/documentation/3.2/pt/manual/config/items/itemtypes/zabbix_agent?s%5B%5D=zabbix&s%5B%5D=boottime#chaves_suportadas
修改如下:
平均cpu load已超过3已持续5分钟 {Template OS Linux:system.cpu.load[percpu,avg15].avg(5m)}>3
平均cpu load已超过1已持续5分钟 {Template OS Linux:system.cpu.load[percpu,avg15].avg(5m)}>1
当然有必要有一个可以显示CPU Load Average的图,那就添加一个CPU的监控TOP可观察的样子,这里我们可以计算上面说的0.7load和超过0.7的load,当然,我们以15分钟时间段来做这个是原本的percpu
Processor load (15 min average per core) system.cpu.load[percpu,avg15]
克隆修改成如下:
CPU Load Average (15 min average per core) system.cpu.load[all,avg15]
我们还需要拿出CPU的内核来计算:cpu核心*0.7 < CPU Load Average到此,还是不够直观,在添加核数 system.cpu.num,这是一个内置的key,直接添加并且添加到图中
CPU number system.cpu.num
Triggers
{HOST.NAME} 15分钟持续CPU负载较高 ({Template OS Linux:system.cpu.num.last()}*0.7)<{Template OS Linux:system.cpu.load[all,avg15].last()}
{HOST.NAME} 15分钟持续负载超过核心数 ({Template OS Linux:system.cpu.num.last()}*1)<{Template OS Linux:system.cpu.load[all,avg15].last()}
2,windows基础监控修改
Window:
CPU使用的百分比情况,添加key如下
perf_counter["Processor(_Total)% User Time"] 系统CPU使用时间百分比情况
perf_counter["Processor(_Total)% Processor Time"] 系统CPU使用负载百分比情况
system.cpu.util[,,avg1] 系统CPU平均1min的利用百分比
I/O读写加入到图中,这些是存在的,只需要找到
File write bytes per second perf_counter[218] 磁盘写入量 (bytes)
File read bytes per second perf_counter[216] 磁盘读取量 (bytes)
Average disk write queue length perf_counter[234(_Total)1404] 磁盘写入队列数
Average disk read queue length perf_counter[234(_Total)1402] 磁盘读取队列数
Trigger:
CPU使用负载百分比情况做一个监控项,但达到85%就告警perf_counter["Processor(_Total)% Processor Time"]
如下:
{HOST.NAME} 5分钟内CPU持续占用率超过85% {Template OS Windows:perf_counter["Processor(_Total)% Processor Time"].avg(5m)}>85
另外修改windows的Processor load (15 min average)的阈值
{HOST.NAME} 平均CPU load 15分钟超过7 {Template OS Windows:system.cpu.load[percpu,avg15].avg(5m)}>7
{HOST.NAME} 平均CPU load 15分钟超过4 {Template OS Windows:system.cpu.load[percpu,avg15].avg(5m)}>4
{HOST.NAME} 平均CPU load 15分钟超过2 {Template OS Windows:system.cpu.load[percpu,avg15].avg(5m)}>2
在奉上windows的安装包点击下载
3,iptables监控
除去本身的用户密码文件监控很有必要监控iptables和authorized_keys,以及配置文件监控假设你就安装在默认路径下。需要sudo的权限,注释Defaults requiretty,并且重启
echo "UserParameter=iptables_lins,/usr/bin/sudo iptables -S |md5sum|awk '{print $1}'" >> /etc/zabbix/zabbix_agentd.conf
echo 'zabbix ALL=(root)NOPASSWD:/usr/sbin/iptables,/usr/bin/cksum /etc/sysconfig/iptables' >>/etc/sudoers
echo 'UserParameter=iptables_file,/usr/bin/sudo /usr/bin/cksum /etc/sysconfig/iptables'|awk '{print $1}' >>/etc/zabbix/zabbix_agentd.conf
sed -i 's/Defaults requiretty/#Defaults requiretty/g' /etc/sudoers && cat /etc/sudoers|grep Defaults
systemctl restart zabbix-agent
items
iptables临时插入监控 iptables_lins
iptables配置文件发生改变 iptables_file
Triggers
iptables临时表发生变化 {Templates IPtables:iptables_lins.diff(0)}>0
iptables配置文件发生改变 {Templates IPtables:iptables_file.diff(0)}>0
3,authorized_keys
authorized_keys也需要做一些有必要的监控,并且加锁
echo 'zabbix ALL=(root)NOPASSWD:/usr/bin/cksum /root/.ssh/authorized_keys' >>/etc/sudoers
echo "UserParameter=authorized_keys,sudo /usr/bin/cksum /root/.ssh/authorized_keys|awk '{print $1}'" >> /etc/zabbix/zabbix_agentd.conf
systemctl restart zabbix-agent.service
加锁
chattr -R +i /root/.ssh/ 锁定
chattr -R -i /root/.ssh/ 去锁
items
Checksum of authorized_keys authorized_keys
Triggers
/root/.ssh/authorized_keys has been changed on {HOST.NAME} {Templates_authorized_keys:authorized_keys.diff(0)}>0
4,zabbix配置文件监控
Checksum of /etc/zabbix/zabbix_agentd.conf vfs.file.cksum[/etc/zabbix/zabbix_agentd.conf]
zabbix配置文件不需要sudo权限,直接添加key
Triggers
/etc/zabbix/zabbix_agentd.conf has been changed on {HOST.NAME} {Template OS Linux:vfs.file.cksum[/etc/zabbix/zabbix_agentd.conf].diff(0)}>0
加锁
chattr -R +i /etc/zabbix/zabbix_agentd.conf 锁定
chattr -R -i /etc/zabbix/zabbix_agentd.conf 去锁
这里有个前提是你需要将UserParameter写到这个文件,否则就锁定目录关于CPU负载,这里有篇文章描述的很到位,点击查看