zabbix4.0搭建
一.准备工作
1.yum国内源的安装与更新
1.1 备份原repo文件
cd /etc/yum.repos.d/
mkdir repo_bak
mv *.repo repo_bak
1.2 在centos中配置网易和阿里的开源镜像
wget http://mirrors.aliyun.com/repo/Centos-7.repo
wget http://mirrors.163.com/.help/CentOS7-Base-163.repo
1.3 清除系统缓存并生成新的yum缓存
yum clean all
yum makecache
1.4 安装epel源
yum -y install epel-release
1.5 下载安装阿里开源镜像提供的epel
wget http://mirrors.aliyun.com/repo/epel-7.repo
1.6 再次清除系统缓存并生成新的yum缓存
yum clean all
yum makecache
1.7 查看系统可用的yum源和所有yum源
yum repolist enable
yum repolist all
1.8 升级系统到最新
yum update -y
2.关闭防火墙
2.1 关闭selinux
vi /etc/selinux/config
#将SELINUX=enforcing改为disabled
getenforce #检测selinux是否关闭
2.2 关闭防火墙
firewall-cmd --state #查看防火墙状态
systemctl stop firewalld.service #临时关闭防火墙
systemctl disable firewalld.service #禁止firewall开机启动
3. 安装依赖环境
yum install -y httpd php php-mysql php-gd libjpeg* php-ldap php-odbc php-pear php-xml php-xmlrpc php-mhash
4. 编辑httpd --可选
vi /etc/httpd/conf/httpd.conf
ServerName www.zabbixtest.com
DirectoryIndex index.html index.php
5. 编辑配置php,配置中国时区
vi /etc/php.ini
date.timezone = Asia/Shanghai
6. 启动httpd
systemctl start httpd #开机启动httpd
systemctl enable httpd
7. mysql数据库安装和配置
7.1 安装mysql5.7
wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm
rpm -ivh mysql57-community-release-el7-10.noarch.rpm
yum install mysql-server
注意:安装完mysql以后不要启动mysql,我们需要修改mysql的数据存储路径和日志存储路径
7.2 修改mysql数据存储路径
#创建数据存储目录并修改权限
mkdir /data/mysql
chown -R mysql /data/mysql
chgrp -R mysql /data/mysql
chmod -R g+rw /data/mysql
#修改配置文件
vim /etc/my.cnf
[mysqld]
datadir=/data/mysql
socket=/data/mysql/mysql.sock
[client]
socket=/data/mysql/mysql.sock
如果安装完mysql,mysql已经启动,默认的数据存储路径是/var/lib/mysql/,修改存储路径需要先停止mysql并且将原路径下的文件复制到新的路径下,操作方式如下:
#查看mysql的datadir路径
mysql -u root -p
show variables like '%dir%';
#停止mysql
systemctl stop mysqld
#创建数据存储目录,将原路径下的文件复制到新的路径下并修改权限
mkdir /data/mysql
cp -r /var/lib/mysql/* /data/mysql/
chown -R mysql /data/mysql
chgrp -R mysql /data/mysql
chmod -R g+rw /data/mysql
#修改配置文件
vim /etc/my.cnf
[mysqld]
datadir=/data/mysql
socket=/data/mysql/mysql.sock
[client]
socket=/data/mysql/mysql.sock
7.3 修改mysql日志存储路径
#创建日志存储目录并修改权限
mkdir /log/mysql
chown -R mysql mysql
chgrp -R mysql mysql
chmod -R g+rw mysql mysql
vim /etc/my.cnf
log-error=/log/mysql/mysqld.log
7.4 启动mysql
以上操作完成以后可以启动mysql
systemctl start mysql #开机启动mysql
systemctl enable mysql
ss -anplt | grep httpd #监听80端口
ss -anplt | grep mysql #监听3306端口
7.5 初始化mysql数据库,并修改root密码
grep "password" /var/log/mysqld.log
查看默认密码
7.5.1 修改mysql password的方法
1.mysqladmin -u用户名 -p旧密码 password 新密码
mysqladmin -u root -p 123456 password EZsvs@123
2.使用默认密码登陆mysql后使用命令mysql> set password for 用户名@localhost = password('新密码');修改密码
set password for root@localhost = password('EZsvs@123');
3.用UPDATE直接编辑user表
首先登录MySQL。
mysql> use mysql;
mysql> update user set password=password('EZsvs@123') where user='root' and host='localhost';
mysql> flush privileges;
7.5.2 创建zabbix库和用户
mysql -u root -p #root用户登录数据库
CREATE DATABASE zabbix character set utf8 collate utf8_bin; # 创建zabbix数据库(中文编码格式)
GRANT all ON zabbix.* TO 'zabbix'@'%' IDENTIFIED BY 'ZAbbix@123'; #授予zabbix用户zabbix数据库的所有权限,密码zabbix
flush privileges; #刷新权限
exit
7.5.2 为保证zabbix用户也可以登录数据库,若出现本地无法登录情况,解决方式如下:
mysql -u root -p #使用root账户登录数据库;
select user,host from mysql.user; #有空用户名称占用导致本地无法登录远程可登录
drop user ''@localhost; #删除空用户
二.zabbix-server的安装和配置
1. 安装依赖
1.1 安装依赖包和组件
yum -y install net-snmp net-snmp-devel curl curl-devel libxml2 libxml2-devel libevent-devel.x86_64 javacc.noarch javacc-javadoc.noarch javacc-maven-plugin.noarch javacc*
yum install php-bcmath php-mbstring -y #安装php支持zabbix组件
1.2 安装zabbix源
rpm -ivh https://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm #会自动生成yum源文件,保证系统可以上网
yum-config-manager --enable rhel-7-server-optional-rpms
1.3 安装zabbix组件
1.3.1 安装zabbix-server
yum install zabbix-server-mysql zabbix-web-mysql -y
1.4 导入数据库
1.4.1 使用 MySQL 来导入 Zabbix server 的初始数据库 schema 和数据
zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p ZAbbix@123
1.5 配置mysql数据库
1.5.1 为zabbix-server配置mysql数据库
编辑zabbix_server.conf文件
vi /etc/zabbix/zabbix_server.conf
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=zabbix
DBSocket=/data/mysql/mysql.sock
LogFile=/log/zabbix/zabbix_server.log
1.6 zabbix前端配置
vi /etc/httpd/conf.d/zabbix.conf
php_value date.timezone Asia/Shanghai
1.7 启动zabbix进程
systemctl start zabbix-server
systemctl enable zabbix-server
1.8 zabbix web端配置
登录http://localhost/zabbix/
初始用户名:Admin
密码:zabbix
初次配置会检查zabbix环境是否符合要求,依照页面要求检查完毕后进入zabbix监控管理页面
至此,zabbix-server的安装和配置已经完毕
三.zabbix-proxy安装和配置
1. 安装依赖
1.1 安装依赖包和组件
yum -y install net-snmp net-snmp-devel curl curl-devel libxml2 libxml2-devel libevent-devel.x86_64 javacc.noarch javacc-javadoc.noarch javacc-maven-plugin.noarch javacc*
yum install php-bcmath php-mbstring -y #安装php支持zabbix组件
1.2 安装zabbix源
rpm -ivh https://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm #会自动生成yum源文件,保证系统可以上网
yum-config-manager --enable rhel-7-server-optional-rpms
1.3 安装zabbix组件
1.3.1 安装zabbix-server
yum install zabbix-proxy-mysql -y
2.导入zabbix proxy的初始数据库schema和数据
zcat /usr/share/doc/zabbix-proxy-mysql-4.0.11/schema.sql.gz | mysql -u zabbix -p ZAbbix@123
3.为zabbix-proxy配置mysql数据库
修改zabbix-proxy.conf配置文件
vi /etc/zabbix/zabbix-proxy.conf
Server=192.168.4.67 #同步指向的server端的IP,非本地IP。可以是server端的主机域名,但要确保proxy端解析server的域名,并且网络可达
Hostname=zabbix-proxy-01 #proxy本地的名称,此名称需要与将来在server端的WEB页面上的代理程序名称一致,名称自定义
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=ZAbbix@123
DBPort=3306
DBSocket=/data/mysql/mysql.sock
LogFile=/log/zabbix/zabbix_proxy.log
4. 运行以下命令启动zabbix-proxy进程
systemctl start zabbix-proxy
systemctl enable zabbix-proxy
5. 在zabbix-server web页面端进行配置agent代理程序
填写proxy的名称及地址
在配置监控主机的时候,选择proxy即可
四. zabbix-agent的安装和配置
1. 安装zabbix-agent
yum install zabbix-agent -y
2. 配置zabbix-agent
安装完成后配置文件一般在 /etc/zabbix/zabbix_agentd.conf,打开把里面内容全部清空然后加入
PidFile=/var/run/zabbix/zabbix_agentd.pid
LogFile=/log/zabbix/zabbix_agentd.log #错误日志
LogFileSize=0
ListenPort=10050 #启动监听端口
StartAgents=3 #被动模式下选择,主动模式则为0
ListenIP=0.0.0.0 #监听所有IP
Server=192.168.4.67 #被动模式下必填,将zabbix-server端的ip填入
#ServerActive=192.168.4.67 #主动模式下填写
Hostname=zabbix-agent-01 #本机的hostname,此值必须与zabbix的网页上创建的主机名一致即可
Include=/etc/zabbix/zabbix_agentd.d/
3. 启动zabbix-agent
systemctl start zabbix-agent
systemctl enable zabbix-agent
五. 问题及处理方法
1 导入mysql数据报错ERROR 1046 (3D000) at line 1 No database selected
解决办法:
1.先把原始的数据库压缩包备份
cp /usr/share/doc/zabbix-server-mysql-4.0.9/create.sql.gz create.sql.gz-backup
cd /usr/share/doc/zabbix-server-mysql-4.0.9/
2.解压数据库
gunzip create.sql.gz
3.安装nano编辑数据库信息
yum -y install nano
用nano打开编辑数据库信息
nano create.sql
在第一行加上
USE zabbix;
4.用gzip命令把create.sql文件压缩成.gz格式
gzip create.sql
5.然后重新导入MySQL数据库即可
zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -u zabbix -p
2. 中文乱码问题
在windows的C:\Windows\Fonts目录中找个字体SIMFANG.TTF
将后缀改成小写ttf并复制到/usr/share/zabbix/assets/fonts目录下
mv SIMFANG.TTF /usr/share/zabbix/assets/fonts/SIMFANG.ttf
修改defines.inc.php配置文件
vim /usr/share/zabbix/include/defines.inc.php
修改这两个地方(大概是69行和114行)
define('ZBX_FONT_NAME', 'SIMFANG');
define('ZBX_GRAPH_FONT_NAME', 'SIMFANG'); // font file name
刷新页面