运维监控平台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