zabbix自定义监控项

1.监控一台服务器主机

在安装完zabbix进入页面后发现存在一个报警,是因为我没有安装zabbix-agent

image.png
  • 先安装zabbix-agent完成自己对自己的监控
    yum install -y zabbix-agent
    systemctl start zabbix-agent 并启动
  • 创建一台zabbix-web服务器做被监控对象,ip为10.0.0.7,简单优化后
    安装zabbix-agent

在这里不配置zabbix依赖直接在清华源下在rpm包然后安装

rpm -ivh https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/4.0/rhel/7/x86_64/zabbix-agent-4.0.1-1.el7.x86_64.rpm
  • 修改配置
vim /etc/zabbix/zabbix_agentd.conf
在这里只修改server地址,server=10.0.0.62(我的zabbix-server地址)

systemctl start zabbix-agent 修改后启动agent
systemctl enable zabbix-agent 设置为开机自启动

  • 在zabbix的web界面上进行配置
image.png

在创建主机后主要填写带*号区域


image.png

然后再指定一个模板


image.png

在这里我使用linux模板
image.png

等待被监控,也可以直接重启systemctl restart zabbix-server.service 服务加快监控
image.png

此处已显示被监控

2.自定义监控项

2.1监控硬盘的tps值

在监测前先进行取值,在服务器上发现没有iostat命令,先安装sysstat

yum install sysstat -y
  • 先测试使用命令可以取出tps值
[root@zabbix-server ~]# iostat |awk '/^sda/{print $2}'
2.12
  • 修改一下配置文件
[root@zabbix-web ~]# vim /etc/zabbix/zabbix_agentd.conf
UserParameter=tps,iostat|awk '/^sda/{print $2}'  #UserParameter用户自定义的监控参数

systemctl restart zabbix-agent 再重启一下服务

在命令行内使用zabbix_agentd -p可以打印所有监控项,在末尾可以看到我们新添加的监控项内容

mysql.size                                    [t|bash: mysql: command not found]
mysql.ping                                    [t|sh: mysqladmin: command not found
0]
mysql.version                                 [t|sh: mysql: command not found]
tps                                           [t|2.52]

在监测的最新数据下可以查看我们监控的主机的各项数据


image.png
  • 在web界面配置监控项
image.png

点击监控项进入配置界面再点击创建监控项,这里以创建每秒进程io次数为例


image.png

最后点击“添加”便完成了一个自定义监控项的创建

2.2监控tcp的11种状态的数量

  • 先考虑如何取出tcp11种状态值
[root@zabbix-server ~]# netstat -antup|grep -c ESTABLISHED #因为要取11种状态,所以这里可以设置为变量
2
  • 修改配置文件

修改配置文件/etc/zabbix/zabbix_agentd.d,在文件内存在Include=/etc/zabbix/zabbix_agentd.d/*.conf,所以不必把所有监测文件都写在/etc/zabbix/zabbix_agentd.conf内。

[root@zabbix-web ~]# cd /etc/zabbix/zabbix_agentd.d/
[root@zabbix-web zabbix_agentd.d]# vim tcp.conf

UserParameter=tcp_state[*],netstat -antup|grep -c $1  #写入传参监控命令

systemctl restart zabbix-agent 再重启一下服务
在这里我们需要使用zabbix_get测试zabbix是否能获取到数据,但发现没有安装,所以先安装一下,还是去清华源直接安装

[root@zabbix-server ~]# rpm -ivh https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/4.0/rhel/7/x86_64/zabbix-get-4.0.4-1.el7.x86_64.rpm
Retrieving https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/4.0/rhel/7/x86_64/zabbix-get-4.0.4-1.el7.x86_64.rpm
Preparing...                          ################################# [100%]
Updating / installing...
   1:zabbix-get-4.0.4-1.el7           ################################# [100%]

先传入一个状态参数测试一下

[root@zabbix-server ~]# zabbix_get -s 10.0.0.7 -k tcp_state[ESTABLISHED]
(Not all processes could be identified, non-owned process info
 will not be shown, you would have to be root to see it all.)
2   #这里出现一堆提示(说什么不是所有进程都能被识别,你只有是root用户才能看到所有。大概是这个意思)

注意:因为在监控端是zabbix普通用户去执行netstat -antup这个命令,普通用户存在权限不足的情况,无法取到全部信息,甚至会报错出现如下情况:

[root@zabbix-web zabbix_agentd.d]# useradd gcy
[root@zabbix-web zabbix_agentd.d]# su - gcy
[gcy@zabbix-web ~]$ netstat -antup
(No info could be read for "-p": geteuid()=1000 but you should be root.)
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:10050           0.0.0.0:*               LISTEN      -                   
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      -                   
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      -                   
tcp        0      0 10.0.0.7:10050          10.0.0.62:36544         TIME_WAIT   -            

这里我们为netstat修改一下权限

[root@zabbix-web zabbix_agentd.d]# which netstat 
/bin/netstat
[root@zabbix-web zabbix_agentd.d]# chmod u+s /bin/netstat

然后再使用zabbix_get检验,发现可以正常取值了

[root@zabbix-server ~]# zabbix_get -s 10.0.0.7 -k tcp_state[ESTABLISHED]
2
[root@zabbix-server ~]# zabbix_get -s 10.0.0.7 -k tcp_state[SYN_SENT]
0
[root@zabbix-server ~]# zabbix_get -s 10.0.0.7 -k tcp_state[SYN_RECV]
0
[root@zabbix-server ~]# zabbix_get -s 10.0.0.7 -k tcp_state[CLOSE]
0
[root@zabbix-server ~]# zabbix_get -s 10.0.0.7 -k tcp_state[LISTEN]
6
  • 在web界面配置监控项
    选择所要监控的主机,点击监控项进入并创建监控项
image.png

完成添加一个监控项


image.png

其他10种状态监控可以使用克隆监控项修改,这里不再演示

小提示:在出现不支持的项目并找到原因修改后,需要刷新不支持的项目,默认是十分钟,可以在下面的界面中修改时间,加速刷新

image.png

总结:自定义监控项,主要分三步:
1.编写监控项的key的表达式,并测试
2.写入配置文件UserParameter=
3.在web页面上进行添加监控项

未完

你可能感兴趣的:(zabbix自定义监控项)