zabbix小结(四)server-client架构及zabbix-agent的配置
在 zabbix小结(一)zabbix概述 一篇的最后部分,提到了zabbix的架构 ,本篇就过下其中最简单的server-client架构 。由于在 zabbix小结(二)zabbix的安装 篇中已详细说了server端的安装 ,同时也有提到client的端安装,所以有关编译安装部分在本篇会一带而过 。重点会放在如何增加被监控主机、如何自定义key、如何和模板之间进行关联 。
一、server-client 架构
先粘下之前的架构图,如下:
二、zabbix-agent的安装
可以使用源码包安装也可以使用安装源安装,这里分别介绍下。
1、源码包安装:
1# useradd zabbix -d /dev/null -s /sbin/nologin
2# ./configure --enable-agent --prefix=/usr/local/zabbix
3# make install
4//复制配置文件
5# mkdir -p /etc/zabbix
6# cp misc/conf/zabbix_agentd.conf /etc/zabbix
安装完成后,复制init.d下的自动启动服务文件:
1# misc/init.d/fedora/core/zabbix_agentd /etc/init.d/
注:这里是以centos为例的,所以选择的是fedora 下的 。
2、系统源安装
像ubuntu源里直接含有zabbix的源,这里就以ubuntu下的源安装为例:
1# sudo apt-get install zabbix-agent
直接一条命令完全搞定,连/etc/下的配置文件也直接生成好的 。
3、修改services文件和zabbix_agentd.conf文件
如果是系统源安装的,services文件是直接修改好的;如果是源码包安装的,需要增加以下部分:
1ubuntu@test:~$ cat /etc/services |grep zabbix
2zabbix-agent 10050/tcp # Zabbix Agent
3zabbix-agent 10050/udp
4zabbix-trapper 10051/tcp # Zabbix Trapper
5zabbix-trapper 10051/udp
完成后,修改/etc/zabbix/zabbix_agentd.conf的文件内容类似如下:
1yang@ubuntu:/etc/zabbix$ cat /etc/zabbix/zabbix_agentd.conf|egrep -v '(^#|^$)'
2PidFile=/var/run/zabbix/zabbix_agentd.pid
3LogFile=/var/log/zabbix-agent/zabbix_agentd.log
4LogFileSize=0
5Server=127.0.0.1,172.20.0.233
6ServerActive=127.0.0.1,172.20.0.233
7Hostname=ubuntu Include=/etc/zabbix/zabbix_agentd.conf.d/
8UnsafeUserParameters=1
其中server和serveractive项后面的地址为server端的IP地址 。
4、iptables配置
执行如下命令开启相关端口,并保存到iptables的配置文件中:
1# iptables -I INPUT 1 -p tcp -s <zabbix server IP-address> –dport 10050 -j ACCEPT
2# iptables -I INPUT 1 -p udp -s <zabbix server IP-address> –dport 10050 -j ACCEPT
3# iptables -I INPUT 1 -p tcp -s <zabbix server IP-address> –dport 10051 -j ACCEPT
4# iptables -I INPUT 1 -p udp -s <zabbix server IP-address> –dport 10051 -j ACCEPT
5、启动zabbix-agent服务生效
1centos下
2# /etc/init.d/zabbix_agentd restart
3ubuntu下
4$ /etc/init.d/zabbix-agent restart
注意在centos和ubuntu各平台下的服务进程名不相同。
三、server监控端配置
1、添加被监控主机
zabbix-agent被监控主机配置完成后,通过浏览器打开server-fronted web界面 ,依次点击 configuration ——> hosts ——-> create host
增加完主机,切换到templates 项,关联模板文件
save保存后就完成了主机的增加,关联好默认的系统模板后也会动完成例如cpu loda、disk space等的监控 。
2、zabbix_get 验证
增加完主机后,监控数据并不会立即在web页面上展示,可以通过下面的方法进行测试
在web界面依次找到configuration —–> hosts ——->被监控主机 ——-> Items ,点开items部分,可以看到刚刚关联的有关系统的默认key部分
上图是刚刚新增的主机,其link了linux 系统模板 ,可以在server监控端通过zabbix_get 获取相应key的值来验证是否正常 ,如下以CPU的一个值为例:
1# zabbix_get -s 172.20.0.214 -p 10050 -k "system.cpu.util[,user]"
20.166667
如果获取不到数据,则在web上相关的key项也会获取不到值 。可以通过查看server和client连接、iptables、key未定义等方面查找原因。
四、自定义key
这里还是默认安装的server端和client端为例,我为上图的ubuntu主机link了zabbix自带的 Template App Mysql 模板 ,同样通过zabbix_get的方式获取数据进行测试 。
1# zabbix_get -s 172.20.0.214 -p 10050 -k "mysql.version"
2ZBX_NOTSUPPORTED
发现没有数据输出,而Template OS Linux模板的数据正常 ,之所以会这样是因为mysql模板在client端没有相应的key定义,编辑client端的/etc/zabbix/zabbix_agentd.conf文件,增加如下内容:
<pre data-language="XML">```markup
UnsafeUserParameters=1
UserParameter=mysql.ping,mysqladmin -uroot -pasdf ping | grep -c alive
UserParameter=mysql.version,mysql -V
UserParameter=mysql.status[*],echo "show global status where Variable_name='$1';" | mysql -N -uroot -pasdf| awk '{print $$2}'
这里一定要确认UnsafeUserParameters 的值为1 ,配置增加完成后,通过sudo /etc/init.d/zabbix-agent restart 重载配置生效 。其中上面提到的mysql.ping、mysql.version、mysql.status\[\*\]就是新定义的key , 再测试的效果如下:
```bash
# zabbix_get -s 172.20.0.214 -p 10050 -k "mysql.version"
mysql Ver 14.14 Distrib 5.5.37, for debian-linux-gnu (x86_64) using readline 6.3
# zabbix_get -s 172.20.0.214 -p 10050 -k "mysql.status[Uptime]"
32905
关于User parameters的功能可以参看官方文档 。
此处为了可以在测试环境看到mysql operations的曲线图,我对被监控端做了一个压力测试,命令如下
1# mysqlslap -uroot -pasdf -a --debug-info --concurrency=50,200 --number-of-queries=10000 --engine=myisam,innodb
可以看到对应的mysql operations 的走势图如下
捐赠本站(Donate)
如您感觉文章有用,可扫码捐赠本站!(If the article useful, you can scan the QR code to donate))
- Author: shisekong
- Link: https://blog.361way.com/zabbix-agent-key/3390.html
- License: This work is under a 知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议. Kindly fulfill the requirements of the aforementioned License when adapting or creating a derivative of this work.