Zabbix 5.0 安装教学
系统环境:
[root@test1 ~]# cat /etc/redhat-release
CentOS Linux release 7.9.2009 (Core)
关闭防火墙
systemctl stop firewalld && systemctl disable firewalld
关闭SELinux:
setenforce 0 && sed -i 's/=enforcing/=disabled/g' /etc/selinux/config
这里使用 shell脚本 zabbix_aliyun.sh
vim zabbix.sh
#!/bin/bash
echo -e "请给出要安装的zabbix版本号,建议使用4.x的版本 \033[31musage:./zabbix_aliyun.sh 4.0|4.4|4.5|5.0 \033[0m"
echo "例如要安装5.0版本,在命令行写上 ./zabbix.sh 5.0"
if [ -z $1 ];then
exit
fi
VERSION=$1
if [ -f /etc/yum.repos.d/zabbix.repo ];then
rm -rf /etc/repos.d/zabbix.repo
fi
rpm -qa | grep zabbix-release && rpm -e zabbix-release
rpm -Uvh https://mirrors.aliyun.com/zabbix/zabbix/$VERSION/rhel/7/x86_64/zabbix-release-$VERSION-1.el7.noarch.rpm
sed -i "s@zabbix/.*/rhel@zabbix/$VERSION/rhel@g" /etc/yum.repos.d/zabbix.repo
sed -i '[email protected]@mirrors.aliyun.com/zabbix@g' /etc/yum.repos.d/zabbix.repo
[ $? -eq 0 ] && echo "阿里云的zabbix源替换成功" || exit 1
yum clean all
yum makecache fast
然后附加可执行权限,执行shell脚本:
chmod +x zabbix.sh
./zabbix.sh 5.0
由于zabbix提供web监控管理界面,因此还需要在web界面的展示需要LAMP架构支持。安装httpd php插件
yum install -y httpd php php-mysql php-gd libjpeg* php-ldap php-odbc php-pear php-xml php-xmlrpc php-mhash
yum groupinstall "Development Tools"
rpm -ivh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
yum clean all
yum makecache
yum install zabbix-server-mysql zabbix-agent -y
vim /etc/zabbix/zabbix_agentd.conf
SCL(Software Collections)可以让你在同一个操作系统上安装和使用多个版本的软件,而不会影响整个系统的安装包。
yum install centos-release-scl -y
启用zabbix-deprecated repository
vim /etc/yum.repos.d/zabbix.repo
yum install -y zabbix-web-mysql-scl zabbix-apache-conf-scl
yum -y install mariadb-server mariadb
启动mariadb
systemctl start mariadb&&systemctl enable mariadb
启动msyql后执行初始安全设置
mysqladmin -u root password "123456"
#设置mysql密码为123456
创建初始数据库
mysql -uroot -p #输入密码123456
create database zabbix character set utf8 collate utf8_bin;
create user zabbix@localhost identified by 'password'; #密码是password,导入Zabbix数据库结构和数据输入这个密码
grant all privileges on zabbix.* to zabbix@localhost;
flush privileges;
quit; #退出 #退出
在Zabbix服务器主机上,导入初始架构和数据。系统将提示您输入新创建的密码。
zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p zabbix #回车密码是password
为Zabbix服务器配置数据库
vi /etc/zabbix/zabbix_server.conf
DBPassword=password
为Zabbix前端配置PHP
编辑文件/etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf,取消注释并为您设置正确的时区。
vi /etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf
php_value[date.timezone] = Asia/Shanghai
systemctl restart zabbix-server zabbix-agent httpd rh-php72-php-fpm&&systemctl enable zabbix-server zabbix-agent httpd rh-php72-php-fpm
配置Zabbix Web前端
浏览器输入http://ip/zabbix,Zabbix初始用户名:Admin,初始密码为:zabbix
点next step
一切ok
配置mysql数据库账号和密码, 输入zabbix帐户的密码 password ,点next step
Name那里起一个名, 点next step
检查一下
完成安装
初始用户名:Admin,初始密码为:zabbix
进入zabbix页面
设置中文界面
选择User settings,语言选择中文,点击update
2. 显示中文乱码解决方法(特别是图表那块的汉字)
在zabbix-server服务器上安装如下文件符集
yum install -y wqy-microhei-fonts
然后替换linux上默认的字符集
cp /usr/share/fonts/wqy-microhei/wqy-microhei.ttc /usr/share/fonts/dejavu/DejaVuSans.ttf #输入y,然后回车
安装docker
yum install -y yum-utils device-mapper-persistent-data lvm2
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum -y install docker-ce
sed -i 's#ExecStart=/usr/bin/dockerd.*#ExecStart=/usr/bin/dockerd#' /usr/lib/systemd/system/docker.service
mkdir /etc/docker /data/docker
cat >/etc/docker/daemon.json<<EOF
{
"registry-mirrors": ["https://15y9mzqb.mirror.aliyuncs.com"],
"exec-opts": ["native.cgroupdriver=systemd"],
"graph": "/data/docker"
}
EOF
systemctl daemon-reload
systemctl enable docker
systemctl start docker
systemctl status docker
安装zabbix-web
下载镜像
docker pull zabbix/zabbix-web-nginx-mysql:centos-5.0.2
[root@test1 /]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
zabbix/zabbix-web-nginx-mysql centos-5.0.2 c552ec85c6c8 13 months ago 439MB
启动zabbix-web
[root@tfryb-04-30-02 ~]# docker run --name zabbix-web-nginx-mysql \
-e DB_SERVER_HOST="192.168.31.160" \
-e MYSQL_DATABASE="zabbix" \
-e MYSQL_USER="zabbix" \
-e MYSQL_PASSWORD="password" \
-e ZBX_SERVER_HOST="192.168.31.160" \
-e PHP_TZ="Asia/Shanghai" \
-p 8081:8080 \
-d zabbix/zabbix-web-nginx-mysql:centos-5.0.2
./zabbix.sh
yum install zabbix-agent
配置 zabbix_agentd.conf 文件
vim /etc/zabbix/zabbix_agentd.conf
修改zabbix-server的IP
### 3、重启zabbix-agent
systemctl restart zabbix-agent && systemctl enable zabbix-agent
mysql中删除又想重建zabbix用户,但是执行创建命令报错。如果是先删了zabbix数据,还是创建不了可以用这方法4.mysql创建用户报错bug——ERROR 1396 (HY000): Operation CREATE USER failed for ‘zabbix’@‘localhost’
mysql> select host,user from user;
+-----------+------------------+
| host | user |
+-----------+------------------+
| localhost | mysql.infoschema |
| localhost | mysql.session |
| localhost | mysql.sys |
| localhost | root |
+-----------+------------------+
4 rows in set (0.00 sec)
mysql> create user 'zabbix'@'localhost' identified by 'Test@1234';
ERROR 1396 (HY000): Operation CREATE USER failed for 'zabbix'@'localhost'
可以看到mysql用户中并没有zabbix,可是却无法创建,经查阅这是一个mysql官方bug:
drop user zabbix@localhost;
flush privileges;
create user zabbix@localhost identified by 'admins_password'
在删除数据库的时候报标题所示错误
mysql> drop database zabbix;
ERROR 1010 (HY000): Error dropping database (can't rmdir './zabbix/', errno: 17)
问题原因:
zabbix目录下存在着MySQL数据库没有权限删除或不知道的文件,即MySQL数据库中没有该文件的数据字典信息。
如下所示,
[root@localhost data]# cd /mysql/data/zabbix
[root@localhost test]# ls
-rw-r--r-- 1 mysql mysql 79667 Mar 5 17:13 psql.log
解决方法:
手动删除zabbix目录下的该文件
# rm -f psql.log
登录数据库,重新执行drop database操作
mysql> drop database zabbix;
Query OK, 0 rows affected (0.01 sec)
NodeID=0 #分布式节点id号,0代表是独立服务器,默认是被注释掉的,不强制配置
ListenPort=10051 #zabbix server的端口,默认是10051,可以自行修改,
范围是1024-32767 ,一般默认即可
SourceIP= #连接的源ip地址,默认为空,默认即可
LogFile=/tmp/zabbix_server.log #日志文件的存放位置
LogFileSize=1 #日志文件的大小,单位为MB,当设置为0时,表示不仅行日志轮询,
默认设置为1,默认即可
DebugLevel=3 #指定调试级别,默认即可
PidFile=/tmp/zabbix_server.pid #pid文件的存放位置
DBHost=localhost #数据库主机名,当设置为localhost时,连接mysql通过sock
DBName=zabbix #指定存放zabbix数据数据库的名字
DBUser=zabbix #指定连接数据库的用户名
DBPassword=123456 #用户连接数据库需要的密码
DBSocket=/var/lib/mysql/mysql.sock #前文主机设置为localhost,用户
连接数据库所用的sock位置,
DBPort=3306 #数据库的端口号,当用sock连接时,无关紧要,当通过网络连接时需设置
StartPollers=5 #默认即可
StartIPMIPollers=0 #使用IPMI协议时,用到的参数
StartTrappers=5 #打开的进程数,
StartPingers=1 同上
StartDiscoverers=1
StartHTTPPollers=1
JavaGateway=127.0.0.1 #JavaGateway的ip地址或主机名
JavaGatewayPort=10052 #JavaGateway的端口号
StartJavaPollers=5 #开启连接javagatey的进程数
SNMPTrapperFile=/tmp/zabbix_traps.tmp
StartSNMPTrapper=0 #如果设置为1,snmp trapper进程就会开启
ListenIP=0.0.0.0 #监听来自trapper的ip地址
ListenIP=127.0.0.1
HousekeepingFrequency=1 #zabbix执行Housekeeping的频率,单位为hours
MaxHousekeeperDelete=500 #每次最多删除历史数据的行
SenderFrequency=30 #zabbix试图发送未发送的警报的时间,单位为秒
CacheSize=8M #缓存的大小
CacheUpdateFrequency=60#执行更新缓存配置的时间,单位为秒数
StartDBSyncers=4
HistoryCacheSize=8M
TrendCacheSize=4M
HistoryTextCacheSize=16M
NodeNoEvents=0
NodeNoHistory=0
Timeout=3
TrapperTimeout=300
UnreachablePeriod=45
UnavailableDelay=60
UnreachableDelay=15
AlertScriptsPath=/usr/local/zabbix/shell #脚本的存放路径
FpingLocation=/usr/local/sbin/fping #fping指令的绝对路径
SSHKeyLocation=
LogSlowQueries=0
TmpDir=/tmp
Include=/usr/local/etc/zabbix_server.general.conf
Include=/usr/local/etc/zabbix_server.conf.d/ #子配置文件路径
StartProxyPollers=1 #在zabbix proxy被动模式下用此参数
ProxyConfigFrequency=3600#同上
ProxyDataFrequency=1
PidFile=/tmp/zabbix_agentd.pid #pid文件的存放位置
LogFile=/tmp/zabbix_agentd.log #日志文件的位置
LogFileSize=1 #当日志文件达到多大时进行轮询操作
DebugLevel=3 #日志信息级别
SourceIP= #连接的源ip地址,默认为空,即可
EnableRemoteCommands=0 #是否允许zabbix server端的远程指令,
0表示不允许,
1表示允许
LogRemoteCommands=0 #是否开启日志记录shell命令作为警告 0表示不允许,1表示允许
Server=127.0.0.1 #zabbix server的ip地址或主机名,可同时列出多个,需要用逗号隔开
ListenPort=10050 #zabbix agent监听的端口
ListenIP=0.0.0.0 #zabbix agent监听的ip地址
StartAgents=3 #zabbix agent开启进程数
ServerActive=127.0.0.1 #开启主动检查
Hostname=Zabbix server#在zabbix server前端配置时指定的主机名要相同,最重要的配置
RefreshActiveChecks=120 #主动检查刷新的时间,单位为秒数
BufferSend=5 #数据缓冲的时间
BufferSize=100 #zabbix agent数据缓冲区的大小,当达到该值便会发送所有的数据到zabbix server
MaxLinesPerSecond=100 #zabbix agent发送给zabbix server最大的数据行
AllowRoot=0 #是否允许zabbix agent 以root用户运行
Timeout=3 #设定处理超时的时间
Include=/usr/local/etc/zabbix_agentd.userparams.conf
Include=/usr/local/etc/zabbix_agentd.conf.d/ #包含子配置文件的路径
UnsafeUserParameters=0 #是否允许所有字符参数的传递
UserParameter= #指定用户自定义参数
Server=192.168 #指定zabbix server的ip地址或主机名
Hostname=zabbix-proxy-1.35 #定义监控代理的主机名,需和zabbix server前端配置时指定的节点名相同
LogFile=/tmp/zabbix_proxy.log #指定日志文件的位置
PidFile=/tmp/zabbix_proxy.pid #pid文件的位置
DBName=zabbix_proxy #数据库名
DBUser=zabbix #连接数据库的用户
DBPassword=123456#连接数据库用户的密码
ConfigFrequency=60 #zabbix proxy从zabbix server取得配置数据的频率
DataSenderFrequency=60 #zabbix proxy发送监控到的数据给zabbix server的频率