一 环境基础
1.1 部署基础环境
部署Zabbix需要LAMP或LANP环境,数据库可以为MySQL或者MariaDB。硬件及存储条件按需配置。
1.2 常见依赖列表
Web前端需要支持的软件环境如下:
软件 | 版本 | 描述 |
---|---|---|
Apache | 1.3以上 | 主程序 |
PHP | 5.3以上 | 主程序 |
PHP扩展库 | ||
gd | 2.0以上 | PHP GD扩展库需支持PNG/JPEG/FreeType2 |
bcmath | php-bcmath(--enable-bcmath) | |
ctype | php-ctype(--enable-ctype) | |
libXML | 2.6以上 | php-xml |
xmlreader | php-xmlreader | |
xmlwriter | php-xmlreader | |
session | php-net-socket | |
sockets | php-net-socket(--enable-sockets) | |
mbstring | php-mbstring(--with-gettext) | |
ibm_db2 | 使用DB2虚此支持 | |
mysqli | 使用MySQL需此支持 | |
oci8 | 使用oracle需此支持 | |
pgsql | 使用postgresql需此支持 | |
sqlite3 | 使用sqlite需此支持 |
注意:如是RHEL系统,自带的RPM包可能缺少php-mbstring和php-bcmatch包,若编译安装,请确保以上参数开启。
1.3 Zabbix-Server需要软件环境
依赖的软件包 | 描述 |
---|---|
OpenIPMI | 如需支持IPMI |
libssh 2 | 如需支持SSH,则需此包 |
fping | ICMP ping的支持 |
libcurl | Web监控 |
libiksemel | Jabber告警介质 |
net-snmp | SNMP的支持 |
注意:Zabbix-Server对时间精度要求很高,尽量采用NTP自动同步。
二 安装
2.1 安装Zabbix官方源和epel源
代码语言:javascript复制 1 [root@imxhy01 ~]# yum -y install epel-release.noarch
2 [root@imxhy01 ~]# rpm -ivh http://repo.zabbix.com/zabbix/3.2/rhel/7/x86_64/zabbix-release-3.2-1.el7.noarch.rpm
3 [root@imxhy01 ~]# ls /etc/yum.repos.d/ #查看Zabbix源是否安装成功
4 epel.repo epel-testing.repo zabbix.repo
5 [root@imxhy ~]# yum -y install zabbix-get zabbix-server-mysql zabbix-web-mysql zabbix-web zabbix-agent
注意:1 Zabbix官方的yum源为:http://repo.zabbix.com/zabbix/3.2/rhel/7/x86_64/。
2 服务器端也需要监控,因此也安装Zabbix-Agent。
代码语言:javascript复制 1 [root@imxhy01 ~]# yum -y install php-bcmath
2 [root@imxhy01 ~]# yum -y install php-mbstring #安装缺少的两个包,v3版本可以不安装。
2.2 安装MariaDB
代码语言:javascript复制 1 [root@imxhy01 ~]# yum -y install mariadb mariadb-server
2 [root@imxhy01 ~]# vi /etc/my.cnf
3 [mysqld]
4 datadir=/var/lib/mysql
5 socket=/var/lib/mysql/mysql.sock
6 symbolic-links=0
7 character-set-server=utf8 #设置字符集为utf8
8 innodb_file_per_table=1 #设置innodb的每个表文件单独存储
10 [mysqld_safe]
11 log-error=/var/log/mariadb/mariadb.log
12 pid-file=/var/run/mariadb/mariadb.pid
13 ……
14 [root@imxhy01 ~]# systemctl enable mariadb #设为开机启动
15 [root@imxhy01 ~]# systemctl start mariadb #开启MariaDB数据
三 创建相关数据库
3.1 设置数据库相关项
代码语言:javascript复制 1 [root@imxhy01 ~]# groupadd zabbix #添加Zabbix组,3.x不需要手动添加
3 [root@imxhy01 ~]# useradd -g zabbix zabbix #添加Zabbix组,3.x不需要手动添加
5 [root@imxhy01 ~]# mysql_secure_installation #设置安全性,并设置数据库root密码
6 [root@imxhy01 ~]# mysql -u root -p
7 MariaDB [(none)]> create database zabbix character set utf8 collate utf8_bin; #创建数据库且字符集为utf8,使web界面显示中文不出现乱码
8 MariaDB [(none)]> grant all privileges on zabbix.* to zabbix@'localhost' identified by 'x120952576';
9 #创建zabbix数据库和Zabbix用户,且赋予此用户拥有此数据库全部权限。
10 MariaDB [(none)]> flush privileges;
11 MariaDB [(none)]> exit;
注意:1 若之后忘记该密码可使用以下命令修改密码——
代码语言:javascript复制 1 UPDATE zabbix.user SET passwd=md5('zabbix') WHERE alias='Admin'
3.2 导入数据库
代码语言:javascript复制 1 [root@imxhy01 ~]# cd /usr/share/doc/zabbix-server-mysql-3.2.1/ #进入数据库模板所在目录
2 [root@imxhy01 zabbix-server-mysql-3.2.0]# ls
3 AUTHORS ChangeLog COPYING create.sql.gz NEWS README
4 [root@imxhy01 zabbix-server-mysql-3.2.0]# zcat create.sql.gz | mysql -uroot -p zabbix #将模板数据恢复至Zabbix数据库
6 Enter password:
7 [root@imxhy01 ~]# mysql -u zabbix -p #用Zabbix用户登录
注意:也可以gunzip create.sql.gz解压后使用mysql -uroot -p zabbix < create.sql恢复模板。
代码语言:javascript复制 1 MariaDB [(none)]> show databases;
2 -----------------------
3 | Database |
4 -----------------------
5 | information_schema |
6 | zabbix |
7 -----------------------
8 2 rows in set (0.00 sec)
9 MariaDB [(none)]> use zabbix;
10 MariaDB [zabbix]> show tables; #查看数据表项
四 Zabbix服务配置
4.1 配置Zabbix_server.conf项
代码语言:javascript复制 1 [root@imxhy01 ~]# vi /etc/zabbix/zabbix_server.conf
2 LogFile=/var/log/zabbix/zabbix_server.log
3 LogFileSize=0
4 PidFile=/var/run/zabbix/zabbix_server.pid
5 DBHost=localhost #修改主机
6 DBName=zabbix
7 DBUser=zabbix
8 DBPassword=x120952576 #修改DB密码(之前所创建密码)
9 SNMPTrapperFile=/var/log/snmptrap/snmptrap.log
10 Timeout=4
11 AlertScriptsPath=/usr/lib/zabbix/alertscripts
12 ExternalScripts=/usr/lib/zabbix/externalscripts
13 LogSlowQueries=3000
4.2 启动Zabbix服务
代码语言:javascript复制 1 [root@imxhy01 ~]# systemctl enable zabbix-server #设为开机启动Zabbix服务
2 [root@imxhy01 ~]# systemctl start zabbix-server #启动Zabbix服务
3 [root@imxhy01 ~]# systemctl start zabbix-agent #需要监控自己,因此也开启agent
4 [root@imxhy01 ~]# systemctl enable zabbix-agent #启动Zabbix服务
4.3 配置php
代码语言:javascript复制 1 [root@imxhy ~] vi /etc/php.ini
2 date.timezone= Asia/Shanghai
3 max_execution_time = 300
4 post_max_size = 16M
5 memory_limit = 128M
6 [root@imxhy ~]# vi /etc/httpd/conf.d/zabbix.conf
7 Alias /zabbix /usr/share/zabbix
8 <Directory "/usr/share/zabbix">
9 Options FollowSymLinks
10 AllowOverride None
11 Require all granted
12 Allow from all
13 php_value max_execution_time 300
14 php_value memory_limit 128M
15 php_value post_max_size 16M
16 php_value upload_max_filesize 2M
17 php_value max_input_time 300
18 php_value always_populate_raw_post_data -1
19 php_value date.timezone Asia/Shanghai
20 </Directory>
注意:1 若之后配置web时,提示任何参数不满足安装配置要求,修改对应的参数后重启httpd即可。
2 yum安装可能zabbix.conf中已包含相关配置。
五 服务测试
5.1 防火墙及SELinux
代码语言:javascript复制 1 [root@imxhy01 ~]# firewall-cmd --permanent --add-service=http #防火墙开放Apache服务
2 [root@imxhy01 ~]# firewall-cmd --permanent --add-port=10051/tcp #防火墙开放Zabbix所需端口
3 [root@imxhy01 ~]# firewall-cmd --permanent --add-port=10050/tcp #防火墙开放Zabbix所需端口
4 [root@imxhy01 ~]# firewall-cmd --reload
5 [root@imxhy01 ~]# chcon -R -t httpd_sys_content_rw_t /usr/share/zabbix/conf
6 [root@imxhy01 ~]# yum -y install policycoreutils-python
7 [root@imxhy01 ~]# setsebool -P httpd_can_network_connect=true
8 [root@imxhy01 ~]# semanage port -a -t http_port_t -p tcp 10051
5.2 启动Apache服务
代码语言:javascript复制 1 [root@imxhy01 ~]# systemctl start httpd.service
2 [root@imxhy01 ~]# systemctl enable httpd.service
注意:此处建议为了防止不必要的问题,可关闭SELinux和防火墙。
六 配置Web界面
6.1 确认各项参数
打开浏览器。输入http://IP地址/zabbix。
下一步可查看各项参数均ok,若有failed可重新进行相应的php.ini修改,之后重启服务即可。
6.2 连接数据库
- Database type:MySQL(选择数据库的类型)
- Database host:localhost(填写执行数据库的主机名或者IP)
- Database port:默认(3306)
- Database name:zabbix(创建Zabbix数据库时指定的名字)
- User:Zabbix数据库的用户名
- Password:Zabbix数据库的密码
6.3 设置Zabbix-server
Zabbix-server的链接地址、端口、名称设置等。
注意:若Zabbix-server在其他机器中,此处的Host填写Zabbix-server所在机器的IP。
6.4 登录测试
测试登录,此处默认用户名:Admin,默认密码为:zabbix。
注意:1 若无法正常运行,分别检查zabbix_server.conf中各项配置;
2 检查SELinux和防火墙是否开放相应端口和服务;
3 检查/usr/share/zabbix/conf/zabbix.conf.php中各项设置。
附一:修改admin密码
若admin默认密码zabbix无法登录,可采用以下方式修改。
代码语言:javascript复制 1 [root@imxhy01 ~]# echo -n admin | openssl md5
2 (stdin)= 21232f297a57a5a743894a0e4a801fc3 #admin经过md5生成的加密的密码
3 [root@imxhy01 ~]# mysql -u root -p #进入数据库
4 MariaDB [(none)]> use zabbix; #选择zabbix数据库
5 MariaDB [zabbix]> select * from users; #查看users用户表可知Admin用户的ID为1,passwd为一串加密的密码
6 MariaDB [zabbix]> update users set passwd='21232f297a57a5a743894a0e4a801fc3' where userid = '1'; #将userid为1的用户即Admin的密码更新。
7 MariaDB [(none)]> flush privileges; #刷新权限即可
8 MariaDB [(none)]> exit;