李承轩
作者李承轩2017-06-11 21:46
系统工程师, 某某公司

Zabbix3.0的安装和配置总结

字数 9953阅读 5514评论 5赞 17

1. 安装准备

  • Zabbix3.0对软件有一定的需求, 尤其是对PHP, MySql的需求(下表为Zabbix官方文档中的安装需求):
软件 版本
Apache 1.3.12 或以上
PHP 5.4.0 或以上
MySQL 5.0.3 或以上 使用 MySQL 作为 Zabbix 后端数据库。需要 InnoDB 引擎。
Oracle 10g 或以上 使用 Oracle 作为 Zabbix 后端数据库。
PostgreSQL 8.1 或以上 使用 PostgreSQL 作为 Zabbix 后端数据库。建议使用 PostgreSQL 8.3 以上的版本。以 提供更好的 VACUUM 性能 。
SQLite 3.3.5 或以上 使用 SQLite 作为 Zabbix 后端数据库。
IBM DB2 9.7 或以上 使用 IBM DB2 作为 Zabbix 后端数据库。

  • Zabbix可以采用LAMP或者LNMP的架构, 重点在于后端数据库的选择, 一般环境建议采用PerconaDB的InnoDB引擎, 如果环境比较大, NVPS值较高, 可以考虑TokuDB引擎.
  • Zabbix安装建议用YUM, 源码安装容易出现依赖包不全导致的各种问题, YUM安装效率高, 且后期更新Zabbix简单.
  • Zabbix在图形展示方面不够灵活, 建议采用Zabbix(数据采集)&Grafana(图形展示,历史数据查询), 需要注意的是:如果Grafana的图形展示比较复杂的话, 尽量对Zabbix的数据库做表分区, 否则Zabbix会出现慢查询(可以在Zabbix_server.log看到).
  • Zabbix关于硬件的监控, 推荐大家用mib browser(Windows)这款软件分析MIB文件, 这款软件可以清晰地看到整个MIB文件的树状结构, 使撰写Zabbix模板的思路更加清晰.

2. 安装框架

  • 安装的框架如下:
类型 描述 地址
Zabbix服务器 CentOS7 10.1.3.21
Zabbix客户端 CentOS, AIX, Windows 10.1.1.xxx/10.1.2.xxx


3. 开始部署


3.1. Zabbix Server安装

  • 安装Zabbix官方YUM

    shell> rpm -Uvh http://repo.zabbix.com/zabbix/3.0/rhel/7/x86_64/zabbix-release-3.0-1.el7.noarch.rpm
  • 安装EPEL官方YUM

    shell> rpm -Uvh http://ftp.cuhk.edu.hk/pub/linux/fedora-epel/7/x86_64/e/epel-release-7-9.noarch.rpm
  • 安装必要的依赖包以及组件包

    shell> yum install gcc php php-gd php-mysql php-bcmath php-mbstring php-xml curl curl-devel net-snmp net-snmp-devel perl-DBI OpenIPMI-devel openssl-devel libcurl-devel httpd fping ntp ntpdate libiksemel libssh2
  • Zabbix几个常用的组件包:

    • php: Web前端依赖的包;
    • net-snmp: 支持 SNMP 监控所需要的组件;
    • OpenIPMI: 支持 IPMI 功能所需要的组件;
    • libcurl: 支持 WEB 监控,VMware 监控及 SMTP 认证所需要的组件;
    • fping: 支持 ICMP ping 功能所需要的组件;
    • libssh2: 支持 SSH 功能所需要的组件;
    • libiksemel: 支持 Jabber 功能所需要的组件;
    • libxml2: 支持 VMware 监控所需要的组件.
  • 安装Zabbix Server

    shell> yum install zabbix-agent zabbix-server-mysql zabbix-web-mysql zabbix-get zabbix-web
  • Zabbix安装常用的几个组件包:

    • zabbix-agent: Zabbix客户端代理程序(必须安装);
    • zabbix-server-mysqlzabbix-web-mysql: 这两个mysql数据库是用来存放采集到的数据,Zabbix的web端会通过这些数据,来展示绘图(使用Mysql数据库的话必须安装).
    • zabbix-get: Zabbix用来手动采集数据的命令(建议安装)
    • zabbix-web: Zabbix用来监控web服务的(建议安装)
    • zabbix-java-gateway: Zabbix的java采集服务端, 用于JMX的监控方式(按需安装);
    • zabbix-sender: Zabbix向服务器手动发送数据的命令(客户端建议安装).
    • zabbix-proxy: Zabbix-proxy是Zabbix代理服务的程序, 用于分布式监控proxy模式中(特殊环境安装).

3.2. 安装数据库

  • 数据库安装PerconaDB, 获取PerconaDB官方YUM
    shell> yum install http://www.percona.com/downloads/percona-release/redhat/0.1-4/percona-release-0.1-4.noarch.rpm
  • 使用YUM安装PerconaDB57
    shell> yum remove mariadb*                     #移除自带的Mariadb
    shell> yum install Percona-Server-server-57
  • 初始化PerconaDB并启动
    shell> cat /etc/my.cnf    #按需修改PerconaDB的配置文件

    注意: Mysql socket的文件位置必须为/var/lib/mysql/mysql.sock, 否则zabbix会提示连不到数据库

    shell> cat /var/log/mysqld.log
    2017-04-28T08:07:09.138876Z 1 [Note] A temporary password is generated for root@localhost: y:Pw/=XIS5oq
    shell> mysqld --initialize --datadir=/data/mysql/
    shell> systemctl start mysqld
    shell> systemctl enable mysqld
    shell> mysqladmin -uroot -p password
    Enter password:                       # 输入mysqld.log的临时密码
    New password:                         # 输入新的密码
    Confirm new password:                 # 再次输入以确认
    Warning: Since password will be sent to server in plain text, use ssl connection to ensure password safety.
    shell> mysql -u root -p
  • PerconaDB里创建Zabbix数据库, 并赋予用户权限
    shell> mysql -uroot -p
    root@mysqldb 17:16:  [(none)]> create database zabbix character set utf8;           #创建数据库zabbix,并且数据库编码使用utf8; 
    Query OK, 1 row affected (0.02 sec)
    root@mysqldb 17:16:  [(none)]> grant all privileges on zabbix.* to zabbix@localhost identified by 'zabbix';          # 赋予权限, 允许账户能从本机连接至数据库zabbix,地址写的为localhost(亦可写为127.0.0.1),那么后面的相关配置配置就都要写localhost,否则连接数据库就会有问题;
    Query OK, 0 rows affected, 2 warnings (0.01 sec)
    root@mysqldb 17:16:  [(none)]> flush privileges;           # 刷新系统权限
    Query OK, 0 rows affected (0.02 sec)
    root@mysqldb 17:16:  [(none)]> show databases              # 查看创建的数据库
    -> ;
    +--------------------+
    | Database           |
    +--------------------+
    | information_schema |
    | mysql              |
    | performance_schema |
    | sys                |
    | zabbix             |
    +--------------------+
    5 rows in set (0.01 sec)

3.3. 配置NTP时间同步

  • Zabbix-Server对时间的精确要求比较高, 时间对数据的计算等都有影响, 因此, 最好设置ntp时间自动同步时间, 也可以用crontab进行同步:
    shell> ntpdate -u ntp.sjtu.edu.cn > /dev/null 2>&1
    shell> systemctl enable ntpd
    Created symlink from /etc/systemd/system/multi-user.target.wants/ntpd.service to /usr/lib/systemd/system/ntpd.service.
    shell> systemctl restart ntpd
    shell> echo '*/30 * * * * /usr/sbin/ntpdate ntp.sjtu.edu.cn >/dev/null 2>&1'>>/var/spool/cron/root

3.4. 将Zabbix的数据库导入至PerconaDB

  • 确认Zabbix数据库文件的位置
    shell> cd /usr/share/doc/zabbix-server-mysql-3.0.7
    shell> ls
    AUTHORS  ChangeLog  COPYING  create.sql.gz  NEWS  README
  • Zabbix数据库导入至PerconaDB
    shell> cd /usr/share/doc/zabbix-server-mysql-3.0.7
    shell> zcat create.sql.gz | mysql -uzabbix -pzabbix zabbix
    mysql: [Warning] Using a password on the command line interface can be insecure.

3.5. 禁用selinxu以及按需禁用或者配置防火墙

  • 系统中的selinux必须关闭, 否则后面启动Zabbix Server的时候会报错.
    shell> systemctl disable firewalld
    Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
    Removed symlink /etc/systemd/system/basic.target.wants/firewalld.service.
    shell> systemctl stop firewalld
    shell> sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config

3.6. 修改Zabbix Server的配置文件

  • 这里需要定义zabbix连接mysql的数据库, 用户名, 密码, 这里的参数必须和之前建立数据库的信息一直, 否则后面运行Zabbix server会有报错提示无法连接数据库.
    shell> pwd
    /etc/zabbix/
    shell> vi zabbix_server.conf
    DBName=zabbix        ##91行, 修改为数据库名(zabbix)
    DBUser=zabbix        ##107行, 修改为数据库用户名(zabbix)
    DBPassword=zabbix    ##115行, 修改为数据库密码(zabbix)

3.7. 配置PHP

  • zabbix3.0中无须对php配置文件做修改, 只需要修改php的时区显示即可.
    shell> sed -i "s@# php_value date.timezone Europe/Riga@php_value date.timezone Asia/Shanghai@g" /etc/httpd/conf.d/zabbix.conf

3.8. 修改Web显示文字为微软雅黑

  • 将微软雅黑的字体上传到/usr/share/zabbix/fonts/目录下:
    shell> pwd
    /usr/share/zabbix/fonts
    shell> ll
    total 23056
    lrwxrwxrwx 1 root root       33 Mar 30  2016 graphfont.ttf -> /etc/alternatives/zabbix-web-font
    -rw-r--r-- 1 root root 23608184 Mar 30 00:10 msyh.ttc
  • 修改配置文件 将代码区第2行和第3行的graphfont改为上传的中文字体, 本例使用的字体为msyh(代码区内容所在为45行和93行, vi设置了set=number
shell> vi /usr/share/zabbix/include/defines.inc.php
45 define('ZBX_GRAPH_FONT_NAME',           'graphfont'); // font file name
93 define('ZBX_FONT_NAME', 'graphfont');

3.9. 设置Httpd服务的自启动

  • 设置开机启动httpd, 重启httpd, 访问apache的默认页面.
    shell> systemctl enable httpd
    Created symlink from /etc/systemd/system/multi-user.target.wants/httpd.service to /usr/lib/systemd/system/httpd.service.
    shell> systemctl restart httpd

    3.10. 启动Zabbix

  • 启动zabbix-agentzabbix-server, 并添加开机自启动
    shell> systemctl start zabbix-agent
    shell> systemctl start zabbix-server
    shell> systemctl enable zabbix-agent
    shell> systemctl enable zabbix-server

    3.11. 更新Zabbix

  • 停止Zabbix-ServerZabbix-Agent
    shell> systemctl stop zabbix-server
    shell> systemctl stop zabbix-agent
  • 直接yum update进行升级
    shell> yum update zabbix*
  • 待更新完成后, 重新修改中文字体(每次更新后必须修改).

    3.12. 数据库备份

  • 数据库备份使用itnihao写的shell脚本进行备份.
  • 脚本内容点击链接到作者的Github进行查看, 其中代码区22-31行根据自己环境进行修改, 代码区40行为排除的表, 可以根据自行需求进行修改, 默认不导出历史数据.
  • 使用脚本导出当前数据库.
    shell> systemctl stop zabbix-server
    shell> ./zabbixdb_backup.sh mysqldump

    4. 配置Zabbix Web管理页面

  • 修改/etc/zabbix/zabbix_server.conf配置文件.
    shell> cat /etc/zabbix/zabbix_server.conf  |grep -v ^#
    LogFile=/var/log/zabbix/zabbix_server.log
    LogFileSize=0
    DebugLevel=3
    PidFile=/var/run/zabbix/zabbix_server.pid
    DBName=zabbix
    DBUser=zabbix
    DBPassword=zabbix
    Timeout=4
    AlertScriptsPath=/usr/lib/zabbix/alertscripts
    ExternalScripts=/usr/lib/zabbix/externalscripts
  • 优化Zabbix的性能(以下内容按需修改, 下面配置适用于50-100的NVPS环境中)
    shell> cat /etc/zabbix/zabbix_server.conf
    StartPollers=5
    StartIPMIPollers=10
    StartPollersUnreachable=10
    StartTrappers=10
    StartPingers=10
    StartDiscoverers=10
    JavaGateway=10.66.1.81
    StartJavaPollers=5
    SNMPTrapperFile=/var/log/snmptrap/snmptrap.log
    ListenIP=127.0.0.1
    CacheSize=512M
    StartDBSyncers=40
    HistoryCacheSize=128M
    TrendCacheSize=128M
    ValueCacheSize=128M
    Timeout=30                           # 如果使用自定义的脚本方式监控, 对应的zabbix_agent.conf也需要修改
    AlertScriptsPath=/usr/lib/zabbix/alertscripts
    ExternalScripts=/usr/lib/zabbix/externalscripts
    LogSlowQueries=10000
  • 输入http:IP/zabbix, 点击Next step下一步; z1.png-37.5kB
    z1.png-37.5kB
  • 检查PHP的配置, 3.0除了修改PHP的时区外, 其他并不需要额外修改, 点击Next step下一步; z2.png-43.5kB
    z2.png-43.5kB
  • 配置zabbix数据库, 其中Database host根据之前数据库授权来填写,Database port默认,Database nameUserPassword为之前建立数据库的数据库名和用户名密码, 点击Next step下一步; ; z3.png-41.3kB
    z3.png-41.3kB
  • 此页默认不需要修改, 直接点击Next step下一步; z4.png-34.6kB
    z4.png-34.6kB
  • 配置信息汇总, 确认无误后点击Next step下一步; z5.png-45.6kB
    z5.png-45.6kB
  • 配置成功, 进入登录界面, 输入默认的用户名Admin和密码zabbix, 点击Sign in登录. z6.png-14.7kB
    z6.png-14.7kB

5. Zabbix Agent安装配置


5.1. Zabbix Agent下载地址


5.2. Windows Agent安装配置

  • 从官网下载安装文件zabbix_agents_3.0.0.win.zip, 解压到目标主机, 解压目标位置可以根据需要决定.
  • 修改zabbix_agentd.win.conf配置文件, 其中LogFile是日志存放的目录, Serverzabbix的服务器IP, ServerActive为开启主动模式并配置zabbix服务器IP,Hostname为本机客户端的主机名.
    LogFile=c:\Zabbix\zabbix_agentd.log
    Server=10.1.1.2
    ServerActive=10.1.1.2:10051
    Hostname= Windows Host
  • 使用zabbix_agentd.exe安装Zbbix agent,-i参数为安装, -c参数为执行配置文件的目录, -s为启动agent服务,
    C:\Zabbix\bin\win64>zabbix_agentd.exe -i -c "C:\Zabbix\conf\zabbix_agentd.win.conf"
    C:\Zabbix\bin\win64>zabbix_agentd.exe -s

    关于命令的其他语法, 使用zabbix_agentd.exe --help查看.


5.3. AIX Agent安装和配置

  • 由于在3.0版本之后, 官方没有发布AIX Agent对应的二进制文件, 这里使用源码进行安装
    shell> rpm -ivh libgcc-4.8.5-1.aix6.1.ppc.rpm
    shell> rpm -ivh libstdc++-4.8.3-1.aix6.1.ppc.rpm
    shell> rpm -ivh libstdc++-devel-4.8.3-1.aix6.1.ppc.rpm
    shell> rpm -ivh gmp-6.0.0a-1.aix5.1.ppc.rpm
    shell> rpm -ivh mpfr-3.1.2-1.aix5.1.ppc.rpm
    shell> rpm -ivh libmpc-1.0.2-1.aix5.1.ppc.rpm
    shell> rpm -ivh gcc-4.8.5-1.aix6.1.ppc.rpm --nodeps
    shell> rpm -ivh gcc-cpp-4.8.5-1.aix6.1.ppc.rpm --nodeps
    shell> rpm -ivh gcc-gfortran-4.8.5-1.aix6.1.ppc.rpm --nodeps
    shell> rpm -ivh libstdcplusplus-4.8.5-1.aix6.1.ppc.rpm
    shell> rpm -ivh libstdcplusplus-devel-4.8.5-1.aix6.1.ppc.rpm --nodeps
    shell> gunzip -c zabbix-3.0.7.tar.gz |tar -xvf -
    shell> cd zabbix-3.0.7
    shell> ./configure --enable-agent
    shell> make && make install

如果觉得我的文章对您有用,请点赞。您的支持将鼓励我继续创作!

17

添加新评论5 条评论

#liumz811系统工程师, 永安期货
2020-08-24 08:46
写的详细,辛苦
#oniontech技术经理, guangzhou eagle
2018-07-13 15:32
大力支持群主
#dyp123其它, 系统运维
2018-01-17 14:47
很详细
#wuwenpin软件开发工程师, 南京
2018-01-08 09:55
很详细,不错。
#小马哥系统运维工程师, 某第三方基金公司
2018-01-05 15:38
不错
Ctrl+Enter 发表