确保已经搭建zabbix监控平台,并且将需要监控的主机已经添加。

批量往zabbix创建监控项 zabbix添加监控项_批量往zabbix创建监控项

对主机上的服务进行监控,其实就是根据设定的监控项,对主机上特定的数据进行提取监控。由agent进行采集,然后将数据传输给server,再由server存放再数据库中,随后前端web从数据库中提取数据,按照一定的布置展示在前端页面上。

对于不同服务的监控主要是在监控项的不同,可以使用连接模板的方式添加监控项,agent会根据添加的监控项采集数据,起到对服务进行监控的作用。

zabbix提供各种模板,可以直接使用连接,也可以使用自己创造的模板添加监控项。

一、监控http服务

对主机toto2 上的http服务进行监控,首先确保toto2主机安装了http服务。

使用http在zabbix中自带监控模版
点击配置->主机->toto2->模版->选择:Tempalte App HTTP Service

批量往zabbix创建监控项 zabbix添加监控项_数据库_02


批量往zabbix创建监控项 zabbix添加监控项_批量往zabbix创建监控项_03


批量往zabbix创建监控项 zabbix添加监控项_批量往zabbix创建监控项_04


查看该模板监控的具体信息,只存在一个监控项,就是查看服务端口是否开启,来判断该服务是否启动。

批量往zabbix创建监控项 zabbix添加监控项_mysql_05

二、监控nginx服务

自己创建监控项进行添加监控。需要在被监控主机上指定监控项的键可对应值,以下nginx所有的监控键值对定义,参考博客:

配置 ->主机-> 点击toto2-> 点击监控项 ->创建监控项

添加监控项,这里的键值要和创建监控项是的一致;所有的监控项都以这种方法添加

批量往zabbix创建监控项 zabbix添加监控项_数据库_06


批量往zabbix创建监控项 zabbix添加监控项_vim_07


可以查看已经添加的监控项

批量往zabbix创建监控项 zabbix添加监控项_vim_08


然后添加图形,将刚才的监控项导入

点击图形->创建图形->名称->添加监控项(可同时选择多个)->添加

批量往zabbix创建监控项 zabbix添加监控项_数据库_09


批量往zabbix创建监控项 zabbix添加监控项_批量往zabbix创建监控项_10


批量往zabbix创建监控项 zabbix添加监控项_数据库_11

查看监控项的图形数据,已经生成。

批量往zabbix创建监控项 zabbix添加监控项_数据库_12

但是上图看不了文字,不能知道哪条线表示哪个数据,可以对zabbix的字体设置进行修改。

准备好喜欢的字体文件 xihuan.ttf

zabbix的字体文件就存放在该目录中: cd /usr/share/zabbix/fonts/ 将自己喜欢的字体文件放入该目录中。

[root@server1 4.0]# cd /usr/share/zabbix/fonts/
[root@server1 fonts]# ls
graphfont.ttf
[root@server1 fonts]# ls
graphfont.ttf  simkai.ttf   ## simkai.ttf  自己下的一种字体
[root@server1 fonts]# cd ..
[root@server1 zabbix]# cd include/
[root@server1 include]# vim defines.inc.php   #编辑该文件
:%s/graphfont/simkai/g  #将所有的graphfont 改成simkai

再次刷新界面,就会显示监控数字信息

批量往zabbix创建监控项 zabbix添加监控项_批量往zabbix创建监控项_13

监控mysql服务
1 、使用zabbix自带的数据库监控模板

确保已经安装过数据库以及zabbix-agent服务
agent所要采集的和数据库有关的信息设置都在:
/etc/zabbix/zabbix_agentd.d/userparameter_mysql.conf

[root@toto1 zabbix_agentd.d]# cat userparameter_mysql.conf 

UserParameter=mysql.status[*],echo "show global status where Variable_name='$1';" | HOME=/var/lib/zabbix mysql -N | awk '{print $$2}'

UserParameter=mysql.size[*],bash -c 'echo "select sum($(case "$3" in both|"") echo "data_length+index_length";; data|index) echo "$3_length";; free) echo "data_free";; esac)) from information_schema.tables$([[ "$1" = "all" || ! "$1" ]] || echo " where table_schema=\"$1\"")$([[ "$2" = "all" || ! "$2" ]] || echo "and table_name=\"$2\"");" | HOME=/var/lib/zabbix mysql -N'

UserParameter=mysql.ping,HOME=/var/lib/zabbix mysqladmin ping | grep -c alive
UserParameter=mysql.version,mysql -V

在提取信息过程中,需要使用mysql 以及mysqladmin ping 指令进行对数据库中信息进行读取,但是由于数据库存在密码,需要设定文件让该两个指令在文件中读取数据库登陆信息。存放文件的目录已经给出: HOME=/var/lib/zabbix

需要一个配置目录 HOME=/var/lib/zabbix

[root@toto1 zabbix_agentd.d]# mkdir /var/lib/zabbix
[root@toto1 zabbix_agentd.d]# cd /var/lib/zabbix/

针对两个指令编写登陆文件(由于是登陆信息,采用隐藏文件):vim vim .my.cnf

[root@toto1 zabbix]# vim vim .my.cnf
[mysql]
user = zabbix
password = redhat
socket = /var/lib/mysql/mysql.sock

[mysqladmin]
user = zabbix
password = redhat
socket = /var/lib/mysql/mysql.sock

重新启动zabbix-agent服务

systemctl restart zabbix-agent

测试是否可以获得监控数据

[root@toto1 zabbix]# zabbix_get -s 127.0.0.1 -p 10050 -k mysql.ping
1

然后在web界面添加数据库监控模板

配置->主机(zabbix server)->模版

批量往zabbix创建监控项 zabbix添加监控项_批量往zabbix创建监控项_14


批量往zabbix创建监控项 zabbix添加监控项_数据库_15


批量往zabbix创建监控项 zabbix添加监控项_mysql_16

2 但是由于zabbix自带的模板监控项较少,可以自己导入模板使用

向zabbix监控中导入模版监控mysql的模版percona

1、安装percona模块
rpm -ivh percona-zabbix-templates-1.1.8-1.noarch.rpm

[root@toto1 7.6zabbix]# rpm -ivh percona-zabbix-templates-1.1.8-1.noarch.rpm 
warning: percona-zabbix-templates-1.1.8-1.noarch.rpm: Header V4 DSA/SHA1 Signature, key ID cd2efd2a: NOKEY
Preparing...                          ################################# [100%]
Updating / installing...
   1:percona-zabbix-templates-1.1.8-1 ################################# [100%]

Scripts are installed to /var/lib/zabbix/percona/scripts   # 脚本文件存放位置
Templates are installed to /var/lib/zabbix/percona/templates   #数据项信息文件存放位置

2 将模块信息文件复制到zabbix监控目录下

[root@toto1 7.6zabbix]# cp /var/lib/zabbix/percona/templates/userparameter_percona_mysql.conf    /etc/zabbix/zabbix_agentd.d/

3 在脚本目录中编写配置文件,提供数据库的用户以及密码。

[root@toto1 7.6zabbix]# cd /var/lib/zabbix/percona/scripts/
[root@toto1 scripts]# ls
get_mysql_stats_wrapper.sh  ss_get_mysql_stats.php
[root@toto1 scripts]# vim ss_get_mysql_stats.php.cnf
<?php
$mysql_user = 'root';
$mysql_pass = 'redhat';

4 删除权限不正常的缓存文件

[root@toto1 scripts]# vim ss_get_mysql_stats.php.cnf
--------------略-----------------
$cache_dir  = '/tmp';  # If set, this uses caching to avoid multiple calls.   # 指定缓存在/tmp中

查看tmp中的文件:

[root@toto1 scripts]# cd /tmp/
[root@toto1 tmp]# ls
localhost-mysql_cacti_stats.txt
[root@toto1 tmp]# ll localhost-mysql_cacti_stats.txt 
-rw-r--r-- 1 root root 1377 Jul 10 14:17 localhost-mysql_cacti_stats.txt
# 文件权限为root用户,但是监控是以zabbix用户进行操作数据库的数据
[root@toto1 tmp]# rm -fr localhost-mysql_cacti_stats.txt 
# 删除该文件,再次自动生成的文件就是zabbix用户的文件

5 重新启动zabbix-agent服务

[root@toto1 tmp]# systemctl restart zabbix-agent.service
现在已经设置好了zabbix可以导入percona模块的监控模板

需要自己准备好模板文件。

批量往zabbix创建监控项 zabbix添加监控项_批量往zabbix创建监控项_17


批量往zabbix创建监控项 zabbix添加监控项_数据库_18


批量往zabbix创建监控项 zabbix添加监控项_mysql_19


批量往zabbix创建监控项 zabbix添加监控项_vim_20