运维监控平台Zabbix的搭建

环境准备

先搭建Web环境(如Nginx+PHP+MySQL)

安装SNMP

从官网http://www.net-snmp.org/download.html
下载源码包,并解压

编译安装

./configure --prefix=/usr/local/snmp --with-mib-modules=ucd-snmp/diskio
make
make install

如果编译报错,提示"make: *** [perlmakefiles] Error 2"

解决办法

yum install perl-ExtUtils-CBuilder perl-ExtUtils-MakeMaker -y

创建数据库

创建zabbix数据库,排序规则utf8_bin,创建zabbix数据库帐号

Zabbix 6.0以上的版本,需要使用MySQL 8.0,排序规则utf8mb4_bin

导入数据库

将源码包路径“database/mysql”中的“schema.sql、images.sql、data.sql”依次导入数据库

创建zabbix用户和组

RedHat、CentOS

groupadd --system zabbix
useradd --system -g zabbix -d /usr/lib/zabbix -s /sbin/nologin -c "Zabbix Monitoring System" zabbix

Debian、Ubuntu

addgroup --system --quiet zabbix
adduser --quiet --system --disabled-login --ingroup zabbix --home /var/lib/zabbix --no-create-home zabbix

编译安装

从官网下载源码包,编译安装

编译参数

-prefix=/usr/local/zabbix -sysconfdir=/etc/zabbix/ -enable-server -enable-agent -with-net-snmp -with-libcurl -with-mysql -with-libxml2

编译报错“Invalid Net-SNMP directory - unable to find net-snmp-config”

修改编译参数,把-with-net-snmp改为net-snmp-config的实际路径-with-net-snmp=/usr/local/snmp/bin/net-snmp-config

编译报错“zabbix error: MySQL library not found”

修改编译参数,把-with-mysql改为mysql_config的实际路径-with-mysql=/usr/local/mysql/bin/mysql_config

编译报错“undefined reference to pcre_free_study”
具体错误

../../src/libs/zbxregexp/libzbxregexp.a(zbxregexp.o): In function `zbx_regexp_free':
/root/zabbix-4.0.4/src/libs/zbxregexp/zbxregexp.c:267: undefined reference to `pcre_free_study'
collect2: ld returned 1 exit status
make[2]: *** [zabbix_agentd] Error 1
make[2]: Leaving directory `/root/zabbix-4.0.4/src/zabbix_agent'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/root/zabbix-4.0.4/src'
make: *** [all-recursive] Error 1

1. 编译安装pcre,参数-prefix=/usr/local/pcre
2. 重新编译Zabbix,添加参数-with-libpcre=/usr/local/pcre

配置运行

修改/etc/zabbix/zabbix_server.conf

查找修改以下配置

ListenPort=
DBHost=
DBName=
DBUser=
DBPassword=
DBPort=
ListenIP=

可以适当调整CacheSize的值,防止出现监控项过多导致Zabbix Server无法正常启动的情况

将源码包misc/init.d下面对应的启动脚本文件复制到etc/init.d,设置权限为755,然后启动zabbix_server和zabbix_agentd

源码包目录下的frontends为前端页面,用浏览器访问进行安装

修改前端字体,把支持中文的字体上传到前端/fonts目录下,然后修改include目录下defines.inc.php,将 DejaVuSans 替换成字体文件的名称

问题处理

安装fping后运行报错“Fping can only be run by root”

chown root:zabbix /usr/sbin/fping
chmod 4710 /usr/sbin/fping

邮件发送报错“Support for SMTP authentication was not compiled in”
需要更新libcurl版本

rpm -Uvh http://www.city-fan.org/ftp/contrib/yum-repo/rhel6/x86_64/city-fan.org-release-2-1.rhel6.noarch.rpm
yum install libcurl

报错“error while loading shared libraries”或“libnetsnmp.so.30”
创建一个软链接把libnetsnmp.so.30链接到/usr/local/lib
然后执行

/sbin/ldconfig
/sbin/ldconfig –v

运行报错“error while loading shared libraries: libpcre.so.1: cannot open shared object file: No such file or directory”
创建一个软链接把libpcre.so.1.2.10链接到/lib64/libpcre.so.1
然后执行

/sbin/ldconfig
/sbin/ldconfig –v

Debian编译安装SNMP报错“/usr/bin/ld: cannot find -lperl”
apt-get install libperl-dev

Zabbix前端语言配置为灰色,提示语言未安装
查看系统已安装的语言locale -a

如果未列出需要的语言,编辑/etc/locale.gen,将需要的语言取消注释,然后执行locale-gen,最后重启Web服务

CentOS 7编译Zabbix 7.0报错“error: ‘EVDNS_BASE_INITIALIZE_NAMESERVERS’ undeclared”
去官网下载新版libevent,编译安装
https://libevent.org

Zabbix Agent常用参数和配置

运行参数

-c 配置文件的绝对路径

-f 前台运行

-p 显示已知监控项

-h 显示帮助信息

-V 显示版本号

Windows版的参数

-i 以服务的形式安装Zabbix Windows agent

-d 卸载Zabbix Windows agent服务

-s 开始Zabbix Windows agent服务

-x 停止Zabbix Windows agent 服务

配置文件

Server= 允许获取数据的服务端IP地址,多个用逗号分隔,用于被动模式

ServerActive= 提交数据的服务端IP地址,用于主动模式

Hostname= 主机名称,需要与服务端配置相同

RefreshActiveChecks= 客户端从服务端获取监控项的时间间隔

Timeout= 超时时间

StartAgents= 运行模式,设置为“0”为纯主动模式,本地不监听端口

ListenIP= 监听IP

ListenPort= 监听端口

来源:
http://www.linuxidc.com/Linux/2017-04/142839.htm

http://blog.csdn.net/techsupporter/article/details/50511222

http://blog.csdn.net/dumeifang/article/details/2963223

https://www.zabbix.com/forum/showthread.php?t=16867

https://www.zifangsky.cn/543.html