PS:
其实安装zabbix很简单,网上资料一搜一大把,基本都是采用yum方式安装,简单省事。正因如此我没写相关配置文档,安装方式一般用yum安装或源码安装亦或是容器安装,最近有网友提出来了,我认真对待,撰写 Linux Centos 7 Zabbix 编译安装的全过程(Zabbix服务端)。后期我也会写一些关于Zabbix 使用及优化方面的文章。
官介:
Zabbix是一个企业级的分布式开源监控解决方案。它可以监控各种网络应用以及服务器健康性和完整性的软件。Zabbix服务器将其数据存储在由MySQL、MariaDB、PostgreSQL或Oracle支持的关系型数据库中,Zabbix所有的报告、统计信息和配置参数都可以通过基于Web的前端页面进行访问设置。而且Zabbix是开源免费的。
1.安装环境(Hyper-V 虚拟机):
$ hostnamectl
Static hostname: localhost.localdomain
Icon name: computer-vm
Chassis: vm
Machine ID: renwoles1d8743989a40cb81db696400
Boot ID: renwoles272f4aa59935dcdd0d456501
Virtualization: microsoft
Operating System: CentOS Linux 7 (Core)
CPE OS Name: cpe:/o:centos:centos:7
Kernel: Linux 3.10.0-514.2.2.el7.x86_64
Architecture: x86-64
2.由于Zabbix UI前端使用 PHP 写的,所以必须运行在支持PHP脚本语言的Web服务器,先决条件:
《Centos 7 编译安装nginx》
《Centos 7 编译安装PHP 7 之生产篇》
《Linux JAVA JDK JRE 环境变量安装与配置》
《Centos 7 二进制安装 MariaDB(MySQL)数据库》
3.若您的服务器已具备 PHP 环境,请略过第 2 步骤,继续以下配置:
配置 php.ini 必须满足以下要求:
max_execution_time = 300
max_input_time = 300
memory_limit = 128M
post_max_size = 32M
date.timezone = Asia/Shanghai
mbstring.func_overload=2
#Zabbix PHP LDAP 认证开启(可选)
extension = "/usr/local/php/lib/php/extensions/no-debug-zts-20160303/ldap.so"
4.安装依赖包并创建组&用户
$ yum -y install epel-release && yum -y update
$ yum install -y net-snmp-devel OpenIPMI-devel libssh2-devel iksemel-devel
$ groupadd zabbix
$ useradd -g zabbix zabbix
5.安装 Zabbix Server
下载地址://www.zabbix.com/download
$ cd /tmp
$ tar -zxvf zabbix-3.4.2.tar.gz
$ cd zabbix-3.4.2
$ ./configure --prefix=/usr/local/zabbix \
--sysconfdir=/usr/local/zabbix/etc \
--enable-server \
--enable-agent \
--with-mysql=/usr/bin/mysql_config \
--with-net-snmp \
--with-libcurl \
--with-libxml2 \
--enable-proxy \
--enable-ipv6 \
--enable-java \
--with-ssh2 \
--with-iconv \
--with-openipmi \
--with-ldap \
--with-openssl \
--with-jabber \
$ make
$ make install
注意:–enable-agent 可选,此参数主要用于客户端(被监控者)。
注意:如你未安装JAVA环境,请去掉 –enable-java 选项,主要用于监控Tomcat。
6.创建并赋予 Zabbix 配置文件目录权限
$ mkdir -p /usr/local/zabbix/logs
$ chown -R zabbix.zabbix /usr/local/zabbix
7.将 Zabbix UI 前端程序源码拷贝到 Nginx Web 目录
$ cp -rf /tmp/zabbix-3.4.2/frontends/php/* /apps/web/zabbix
$ chown -R www.www /apps/web/zabbix
8.创建数据库名:zabbix 用户:zabbix 密码:renwolecom 并赋予用户拥有该数据库所有权限:
$ mysql -uroot -p
Enter password:(输入root数据库密码回车)
MariaDB [(none)]> create database zabbix character set utf8 collate utf8_bin;
MariaDB [(none)]> grant all privileges on zabbix.* to zabbix@"%" identified by 'renwolecom';
MariaDB [(none)]> flush privileges;
MariaDB [(none)]> quit;
9.将Zabbix相关结构表文件按顺序依次导入zabbix数据库
导入顺序 schema.sql 表结构 > images.sql 图片库 > data.sql 初始脚本
$ cd /tmp/zabbix-3.4.2/database/mysql
$ mysql -uzabbix -prenwolecom zabbix < schema.sql
$ mysql -uzabbix -prenwolecom zabbix < images.sql
$ mysql -uzabbix -prenwolecom zabbix < data.sql
10.配置 zabbix_server.conf
配置完成后的内容如下:
$ egrep -v "^$|^#|^;" /usr/local/zabbix/etc/zabbix_server.conf
LogFile=/usr/local/zabbix/logs/zabbix_server.log
PidFile=/usr/local/zabbix/zabbix_server.pid
LogFileSize=0
DBHost=10.10.204.62
DBName=zabbix
DBUser=zabbix
DBPassword=renwolecom
JavaGateway=10.10.204.62
JavaGatewayPort=10052
StartJavaPollers=5
StartPingers=4
Timeout=4
AlertScriptsPath=/usr/local/zabbix/share/zabbix/alertscripts
LogSlowQueries=3000
Include=/usr/local/zabbix/etc/zabbix_server.conf.d/
注意:由于每个生产环境的参数配置不同,所以配置文件我只列出基本常用的,查看更多配置参数是说明。
11.创建 systemctl 系统 Zabbix servers 单元文件
$ vim /usr/lib/systemd/system/zabbix.service
[Unit]
Description=Zabbix Server
After=syslog.target
After=network.target
[Service]
Environment="CONFFILE=/usr/local/zabbix/etc/zabbix_server.conf"
EnvironmentFile=-/usr/local/zabbix/etc/zabbix_server.conf.d
Type=forking
Restart=on-failure
PIDFile=/usr/local/zabbix/zabbix_server.pid
KillMode=control-group
ExecStart=/usr/local/zabbix/sbin/zabbix_server -c $CONFFILE
ExecStop=/bin/kill -SIGTERM $MAINPID
RestartSec=10s
TimeoutSec=0
[Install]
WantedBy=multi-user.target
12.启动 zabbix 并加入开机自起动
$ systemctl start zabbix
$ systemctl enable zabbix
13.Firewalld 防火墙设置
$ firewall-cmd --permanent --add-port=10051/tcp
$ firewall-cmd --permanent --add-port=80/tcp
$ firewall-cmd --reload
安装完成。
接下来,你可以使用 IP 或域名访问 Zabbix 监控管理系统,具体设置,请根据 Zabbix Server Web 向导提示设置即可。
设置完成后,zabbix默认账号:Admin 密码:zabbix(注意账号区分大小写)登录后是英文界面, 只需点击右上角的小人图标(当前用户设置)定位到 Language 项,选择 Chinese (zh_CN),点击 Update 即可切换为中文界面。
关于Zabbix代理客户端,请参阅《Centos 7 Zabbix Agent 客户端源码编译安装配置》。