zabbix小结(四)server-client架构及zabbix-agent的配置

2018-09-26 21:01:29  浏览:1822  作者:管理员

在 zabbix小结(一)zabbix概述 一篇的最后部分,提到了zabbix的架构 ,本篇就过下其中最简单的server-client架构 。由于在 zabbix小结(二)zabbix的安装 篇中已详细说了server端的安装 ,同时也有提到client的端安装,所以有关编译安装部分在本篇会一带而过 。重点会放在如何增加被监控主机、如何自定义key、如何和模板之间进行关联 。


一、server-client 架构


先粘下之前的架构图,如下:

blob.png

二、zabbix-agent的安装


可以使用源码包安装也可以使用安装源安装,这里分别介绍下。


1、源码包安装:


# useradd zabbix -d /dev/null -s /sbin/nologin
# ./configure --enable-agent --prefix=/usr/local/zabbix
# make && make install
//复制配置文件
# mkdir -p /etc/zabbix
# cp misc/conf/zabbix_agentd.conf /etc/zabbix

安装完成后,复制init.d下的自动启动服务文件:

# misc/init.d/fedora/core/zabbix_agentd /etc/init.d/

注:这里是以centos为例的,所以选择的是fedora 下的 。


2、系统源安装


像ubuntu源里直接含有zabbix的源,这里就以ubuntu下的源安装为例:

# sudo apt-get install zabbix-agent

直接一条命令完全搞定,连/etc/下的配置文件也直接生成好的 。


3、修改services文件和zabbix_agentd.conf文件


如果是系统源安装的,services文件是直接修改好的;如果是源码包安装的,需要增加以下部分:


ubuntu@test:~$ cat /etc/services |grep zabbix
zabbix-agent    10050/tcp                       # Zabbix Agent
zabbix-agent    10050/udp
zabbix-trapper  10051/tcp                       # Zabbix Trapper
zabbix-trapper  10051/udp

完成后,修改/etc/zabbix/zabbix_agentd.conf的文件内容类似如下:


chen@ubuntu:/etc/zabbix$ cat /etc/zabbix/zabbix_agentd.conf|egrep -v '(^#|^$)'
PidFile=/var/run/zabbix/zabbix_agentd.pid
LogFile=/var/log/zabbix-agent/zabbix_agentd.log
LogFileSize=0
Server=127.0.0.1,172.20.0.233
ServerActive=127.0.0.1,172.20.0.233
Hostname=ubuntu Include=/etc/zabbix/zabbix_agentd.conf.d/
UnsafeUserParameters=1

其中server和serveractive项后面的地址为server端的IP地址 。


4、iptables配置


执行如下命令开启相关端口,并保存到iptables的配置文件中:


# iptables -I INPUT 1 -p tcp -s <zabbix server IP-address> –dport 10050 -j ACCEPT
# iptables -I INPUT 1 -p udp -s <zabbix server IP-address> –dport 10050 -j ACCEPT
# iptables -I INPUT 1 -p tcp -s <zabbix server IP-address> –dport 10051 -j ACCEPT
# iptables -I INPUT 1 -p udp -s <zabbix server IP-address> –dport 10051 -j ACCEPT

5、启动zabbix-agent服务生效


centos下

# /etc/init.d/zabbix_agentd restart

ubuntu下

$ /etc/init.d/zabbix-agent restart

注意在centos和ubuntu各平台下的服务进程名不相同。


三、server监控端配置


1、添加被监控主机


zabbix-agent被监控主机配置完成后,通过浏览器打开server-fronted web界面 ,依次点击 configuration ------> hosts -------> create host

blob.png

增加完主机,切换到templates 项,关联模板文件

blob.png

save保存后就完成了主机的增加,关联好默认的系统模板后也会动完成例如cpu loda、disk space等的监控 。


2、zabbix_get 验证


增加完主机后,监控数据并不会立即在web页面上展示,可以通过下面的方法进行测试


在web界面依次找到configuration -----> hosts ------->被监控主机 -------> Items  ,点开items部分,可以看到刚刚关联的有关系统的默认key部分

blob.png

上图是刚刚新增的主机,其link了linux 系统模板 ,可以在server监控端通过zabbix_get 获取相应key的值来验证是否正常 ,如下以CPU的一个值为例:


# zabbix_get -s 172.20.0.214 -p 10050 -k "system.cpu.util[,user]"
0.166667

如果获取不到数据,则在web上相关的key项也会获取不到值 。可以通过查看server和client连接、iptables、key未定义等方面查找原因。


四、自定义key


这里还是默认安装的server端和client端为例,我为上图的ubuntu主机link了zabbix自带的 Template App Mysql 模板 ,同样通过zabbix_get的方式获取数据进行测试 。


# zabbix_get -s 172.20.0.214 -p 10050 -k "mysql.version"
ZBX_NOTSUPPORTED

发现没有数据输出,而Template OS Linux模板的数据正常 ,之所以会这样是因为mysql模板在client端没有相应的key定义,编辑client端的/etc/zabbix/zabbix_agentd.conf文件,增加如下内容:


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 , 再测试的效果如下:


# 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的曲线图,我对被监控端做了一个压力测试,命令如下

# mysqlslap -uroot -pasdf -a --debug-info --concurrency=50,200  --number-of-queries=10000 --engine=myisam,innodb

可以看到对应的mysql operations 的走势图如下

blob.png


评论区

共0条评论
  • 这篇文章还没有收到评论,赶紧来抢沙发吧~

【随机新闻】

返回顶部