前言
关于zabbix的概念及zabbix服务的安装,在这里就不细讲了。
由于在zabbix的搭建中,我们经常会遇到一些细节上的问题,导致出现错误。
所以下面总结的是搭建zabbix监控时的注意事项,实行及可以降低出错几率。
zabbix的时间问题
搭建zabbix之前,应该对监控端和被监控端的时间进行确认,保证时间的同步,避免因为时间的不同导致的数据传输时间差问题。
zabbix的网络问题
zabbix监控的传送和接收信息的前提条件是网络联通,如果zabbix-server/proxy与zabbix-agent的网络无法联通,zabbix的搭建,必然失败。因此,在搭建前先让网络联通。
网络的联通方法:
- 搭建VPN
- 多网卡
- 公网地址映射
zabbix的版本问题
搭建zabbix分布式监控系统的时候,我们是需要安装zabbix的软件的
其次,zabbix的安装方法主要有yum安装与编译安装
安装的方法不重要,但是要重点关注zabbix的版本问题,zabbix到今天为止出到了3.4的版本。由于每个版本的具体功能或性能的不同,最好是在监控端与被监控端,使用同一版本的zabbix的软件,避免版本产生的冲突
zabbix的编译安装的用户问题
当我们使用zabbix的包进行编译安装的时候,zabbix不会像是yum安装一样,自动创建出运行zabbix程序的用户。而是,需要在编译安装之前,手动的创建zabbix用户及组。否则,启动时会报错。
groupadd zabbix
useradd -g zabbix -s /sbin/nologin -M zabbix
zabbix编译安装的启动文件问题
在使用zabbix的包进行编译安装的时候,我们需要把zabbix安装包中的启动文件复制到系统路径,在赋予执行权限,否则无法启动zabbix程序
<1>复制启动文件到系统路径:
cp -rf /root/zabbix-3.0.4/misc/init.d/fedora/core/zabbix* /etc/init.d/
vim /etc/init.d/zabbix_server 或 proxy以及agent
将BASEDIR=/usr/local/替换为BASEDIR=/usr/local/zabbix (编译后存放的位置)
<2>添加执行权限:
chmod +x /etc/init.d/zabbix_server
zabbix架构中的顺序问题
搭建zabbix分布式监控系统的架构的时候,是要按照顺序进行的。先配置监控端,再配置被监控端;先启动监控端,再启动被监控端。
server-node-client架构中的各种顺序与其它架构相同。
【1】server-agent架构的web界面的配置顺序:
zabbix-server >> zabbix-agent
【2】server-proxy-agent架构的web界面的配置顺序:
zabbix-server >> zabbix-proxy >> zabbix-agent
(如zabbix-server早已配置,无需再配)
【3】server-agent架构中配置文件更改顺序:
zabbix-server >> zabbix-agent
【4】server-proxy-agent架构中配置文件更改顺序:
zabbi-server >> zabbix-proxy >> zabbix-agent
(如zabbix-server配置文件早已配置,无需再配)
【5】server-agent架构的启动顺序:
zabbix-server >> zabbix-agent
【6】server-proxy-agent架构的启动顺序:
zabbi-server >> zabbix-proxy >> zabbix-agent
(如zabbix-server是老项目,无需重启)
【7】server-proxy-agent架构的搭建顺序:
安装必要的软件 >> zabbix_proxy数据库启动 >> 创库并授权 >>更改配置文件 >> zabbix_server的web界面添加主机 >> 按顺序启动服务
zabbix 架构中数据库的授权问题
数据库的授权,最好应早于更改配置文件
【1】zabbix-server数据库授权
<1>zabbix-server的数据库操作
create database zabbix character set utf8;" 创建数据库,设定编码
grant all privileges on zabbix.* to zabbix@localhost identified by 'zabbix'; 创建授权用户
flush privileges; 刷新授权表,虽然不需要,但可避免一些问题
use zabbix; 测试,数据库是否创建
<2>导入sql文件
一般再/usr/share/doc/zabbix-server-mysql-3.0.4/create/schema.sql下
如使用yum安装,可用rpm -ql zabbix-server-mysql,查找
mysql -uroot zabbix < XXX/schema.sql (由于版本不同,下面两个sql文件不一定有,但schema.sql是必须有的)
mysql -uroot zabbix < XXX/images.sql 如果只是代理可以不用导入这个数据库
mysql -uroot zabbix < XXX/data.sql 如果只是代理可以不用导入这个数据库
【2】zabbix-proxy数据库授权
<1>zabbix-proxy的数据库操作
create database zabbix_proxy character set utf8; 创建数据库,设定编码
grant all on zabbix_proxy.* to zabbix_proxy@localhost identified by 'zabbix'; 创建授权用户
flush privileges; 刷新授权表,虽然不需要,但可避免一些问题
use zabbix_proxy; 测试,数据库是否创建
<2>导入sql文件
如使用yum安装,可用rpm -ql zabbix-proxy-mysql,查找
mysql -uzabbix -pzabbix zabbix_proxy < /usr/share/doc/zabbix-proxy-mysql-3.0.4/create/schema.sql
zabbix 架构中配置文件的配置问题
在搭建zabbix架构的时候,被监控端的配置文件中的ip总是指向监控端的IP及端口,被监控端的Hostname总是指向zabbix-server的web界面添加的主机名称。
由于zabbix的版本及安装的方法不同,会导致zabbix的配置文件的位置不同,本文就不详细写配置文件的位置了。
(可用 find / -name zabbix-XXX.conf 查找)
【1】zabbix-server的配置
egrep -v "^$|^#" zabbix_server.conf
LogFile=/var/log/zabbix/zabbix_server.log log日志的位置,一般默认即可
DBHost=localhost zabbix_server授权时使用的ip或名称,如授权时使用localhost
DBName=zabbix zabbix_server创建并授权的数据库的名称
DBUser=zabbix 授权的数据库的用户
DBPassword=nicai 授权的数据库的密码
DBSocket=/tmp/mysql.sock MySQL的sock的位置,一般默认即可
DBPort=3306 使用的mysql数据库的端口
StartPollers=30 zabbix-server的进程数,设置多少取决于服务器的性能和监控的数量,主要看内存大小
StartDiscoverers=5 zabbix提示进程繁忙时可修改此参数,最大可达250,但一般1-5左右,值越大越消耗cpu性能
CacheSize=8G zabbix-server可用的缓存,用于存储host,item,trigger数据
Timeout=4 zabbix-server的检测超时时间,单位为秒
AlertScriptsPath=/App/install/OPS/zabbix-3.0.4/alertscripts zabbix-server使用自定义脚本自定义告警脚本的路径,取决于编译时候的datadir参数
FpingLocation=/usr/local/sbin/fping 安装的fping路径
LogSlowQueries=3000 多慢的数据库查询将会被记录,单位为毫秒,0表示不记录慢查询。只有在DebugLevel=3时,这个配置才有效
【2】zabbix-proxy的配置
egrep -v "^$|^#" zabbix_proxy.conf
Server=192.168.10.58 zabbix-server端的ip
ServerPort=10051 zabbix-server的端口
Hostname=beiji_proxy_117.107.18.6 该zabbix-proxy端的名字,要与zabbix-server的web界面,配置的主机名称相同
LogFile=/tmp/zabbix_proxy.log zabbix_proxy的log日志的位置,一般默认即可
DBName=zabbix_proxy zabbix_proxy创建并授权的数据库的名称
DBUser=zabbix_proxy zabbix_proxy的数据库的授权的用户
DBPassword=wocai zabbix_proxy的数据库的密码
DBSocket=/dev/shm/mysql.sock MySQL安装后的的sock的位置
ConfigFrequency=3600 zabbix-proxy从zabbix server同步配置文件的时间
DataSenderFrequency=60 zabbix-proxy向zabbix-server发送数据的时间,单位是秒
Timeout=4 zabbix-proxy的检测超时时间,单位为秒
LogSlowQueries=3000 多慢的数据库查询将会被记录,单位为毫秒,0表示不记录慢查询。只有在DebugLevel=3时,这个配置才有效
【3】zabbix-agent的配置
egrep -v "^$|^#" /etc/zabbix/zabbix_agentd.conf
PidFile=/tmp/zabbix_agentd.pid zabbix-agent的pid文件的位置,默认即可
LogFile=/var/log/zabbix/zabbix_agentd.log zabbix-agent的log日志的位置,一般默认即可
EnableRemoteCommands=0 关闭远程命令(1:开启;0:关闭),开启后可设置触发条件,触发远程命令动作,重启服务
Server=117.107.18.6 zabbix-agent指向的zabbix-server/proxy的IP地址,本文指向的是zabbix-proxy
StartAgents=8 zabbix-agent的进程数
ServerActive=117.107.18.6:10051 zabbix-agent指向的zabbix-server/proxy的IP地址及端口,本文指向的是zabbix-proxy的
Hostname=beiji_117.107.18.36 该zabbix-agent端的名字,要与zabbix-server的web界面,配置的主机名称相同
Timeout=30 zabbix-agent的检测超时时间,单位秒
Include=/etc/zabbix/zabbix_agentd.d/ 启动自定义的key 自定义脚本存放位置
UnsafeUserParameters=1 启动自定义的key,开启后可使用自定义的脚本(如不使用请使用默认)