基于rhel7.2的Zabbix平台搭建和部署(四)
一、实现zabbix添加监测项,添加对Linux主机的监控、
说明:先在“配置”-“主机”里添加主机监控,监控os资源:内存,cpu,io,负载,带宽等.
(1)登录zabbix,先在“配置”-“主机”里单击”创建主机”:
(2)在“主机”标签,填写相关信息
注:这个主机名字必须和hostname的一模一样,这里用的ip就是被监控主机的ip。
其它选项默认即可。
(3)在“模板”标签,填写相关信息
至此,Zabbix监控Linux主机设置完成,如下图所示:
(4)过一段时间后,可以来观察监控图效果出来了没有
二、添加对Linux主机的mysql的监控
说明:zabbix3.0 server已自带mysql的模板了,只需配置好agent客户端,然后在web端给主机增加模板就行了。
第一步:首先在客户端的mysql里添加权限,即本机使用zabbix账号连接本地的mysql(在zabbix_agent客户端上操作)
[root@mysql ~]# mysql -uroot -p123456
mysql> grant all on *.* to zabbix@'localhost' identified by '123456';
Query OK, 0 rows affected, 1 warning (0.08 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
mysql> exit
Bye
第二步:在zabbix_agent服务目录下创建.my.cnf 连接文件(注意有个“.”)
说明:zabbix安装目录是/usr/local/zabbix
[root@mysql ~]# cd /usr/local/zabbix/etc/
[root@mysql etc]# vim .my.cnf
注意:
⑴如果在数据库grant授权时,针对的是localhost,这个.my.cnf里面就不用加host参数了【就如上面的配置】
⑵如果grant授权时针对的是本机的ip(如192.168.1.9),那么在.my.cnf文件里就要加上host参数进行指定了
即在.my.cnf文件就要加上:
host=192.168.1.9
socket=/usr/local/mysql/mysql.sock
user=zabbix
password=123456
第三步:配置mysql的key文件
说明:这个可以从zabbix3.2安装时的解压包里拷贝过来
从zabbix_server服务端安装时解压目录/usr/src/zabbix-3.2.3/conf/zabbix_agentd/userparameter_mysql.conf 拷贝到zabbix_agent客户端上的/usr/local/zabbix/etc/zabbix_agentd.conf.d/ 目录下。
[root@mysql ~]# cd /usr/local/zabbix/etc/zabbix_agentd.conf.d/
[root@mysql zabbix_agentd.conf.d]# cp /usr/src/zabbix-3.2.3/conf/zabbix_agentd/userparameter_mysql.conf ./
[root@mysql zabbix_agentd.conf.d]# ls
userparameter_mysql.conf
第四步:查看 userparameter_mysql.conf 文件,看到类似HOME=/var/lib/zabbix 的路径设置,把路径全都替换为/usr/local/zabbix/etc/,也就是上面的.my.cnf文件所在的目录路径。
另外,注意userparameter_mysql.conf 文件里的mysql命令路径(提前做好mysql的系统环境变量,以防mysql命令不被系统识别)。
第五步:重启zabbix_agent服务
[root@mysql ~]# systemctl stop zabbix_agentd
[root@mysql ~]# netstat -lnp |grep zabbix_agentd
[root@mysql ~]# systemctl start zabbix_agentd
[root@mysql ~]# netstat -lnp |grep zabbix_agentd
tcp 0 0 0.0.0.0:10050 0.0.0.0:* LISTEN 3295/zabbix_agentd
第六步:接着在zabbix_server服务端进行命令行测试
[root@zabbix ~]# /usr/local/zabbix/bin/zabbix_get -s 192.168.100.120 -p 10050 -k "mysql.status[Uptime]"
sh: mysql: command not found
以上命令有报错!说找不到mysql这个命令!
解决方法如下:
在userparameter_mysql.conf中关于mysql命令前面添加绝对路径(在zabbix_agent上操作)
[root@mysql ~]# vim /usr/local/zabbix/etc/zabbix_agentd.conf.d/userparameter_mysql.conf
修改三个地方
重启服务(客户端)
[root@mysql ~]# systemctl stop zabbix_agentd
[root@mysql ~]# netstat -lnp |grep zabbix_agentd
[root@mysql ~]# systemctl start zabbix_agentd
[root@mysql ~]# netstat -lnp |grep zabbix_agentd
tcp 0 0 0.0.0.0:10050 0.0.0.0:* LISTEN 4403/zabbix_agentd
再次回到zabbix_server服务端进行命令行测试:
[root@zabbix ~]# /usr/local/zabbix/bin/zabbix_get -s 192.168.100.120 -p 10050 -k"mysql.status[Uptime]"
10158
注明1:如果出现类似这一串key的数字,就说明配置ok,服务端能监控到客户端的mysql数据了!
成功了之后在监控界面增加主机对应的MySQL模板就ok了。
注明2:
zabbix_get命令介绍
参数说明:
-s--host:指定客户端主机名或者IP(被监控客户端)
-p--port:客户端端口,默认10050
-I--source-address:指定源IP,写上zabbix server的ip地址即可,一般留空,服务器如果有多ip的时候,你指定一个。
-k--key:你想获取的key
zabbix_get获取数据:
获取负载
[root@zabbix ~]# /usr/local/zabbix/bin/zabbix_get -s 192.168.100.120 -p 10050 -k"system.cpu.load[all,avg15]"
获取主机名
[root@zabbix ~]# /usr/local/zabbix/bin/zabbix_get -s 192.168.100.120 -p 10050 -k"system.hostname"
mysql
第七步:登录zabbix监控界面,在“配置”-“模板”里可以看到自带的mysql监控模板
第八步:在相应主机监控配置里添加mysql的监控模版(zabbix自带的)即可:
选中:server-192.168.100.120这个主机!
第九步:mysql监控项效果图
监控mysql的带宽:在zabbix前端可以实时查看mysql发送接收的字节数。其中bytes received表示从所有客户端接收到的字节数,bytes sent表示发送给所有客户端的字节数。
监控mysql的操作状态:在zabbix前端可以实时查看各种SQL语句每秒钟的操作次数。