环境
系统:centos7.9
软件版本:
? ? mysql: 5.7
? ? zabbix: 5.0
内网:
? ? Port: 10051
? ? IP: 192.168.126.141
外网:
? ? Port:?
? ? Domain:?
Agent被动模式(默认)
? ? server 端主动连接 agent
? ? server和agent在同一个网络中
? ? 或者将agent 10050 端口映射到公网
Agent主动模式
? ? agent 主动连接 server端
? ? server和agent在同一个网络中
? ? 或者将server 10051 端口映射到公网
zabbix 文档:
https://www.zabbix.com/documentation/5.0/zh/start
1. 配置防火墙, Selinux
80:zabbix-web
3306:mysql
10050:zabbix-agent
10051:zabbix-server
// 防火墙不执行过滤
firewall-cmd --zone=public --add-port=80/tcp --permanent
firewall-cmd --zone=public --add-port=3360/tcp --permanent
firewall-cmd --zone=public --add-port=10050/tcp --permanent
firewall-cmd --zone=public --add-port=10051/tcp --permanent
firewall-cmd --reload
//? 安全增强型 Linux(Security-Enhanced Linux)简称 SELinux,它是一个 Linux 内核模块,也是 Linux 的一个安全子系统。
1 命令查看出selinux的状态?
sestatus -v?
2 临时关闭 selinux?
setenforce 0?
3 永久关闭selinux?
vi /etc/sysconfig/selinux?
把里边的一行改为?
SELINUX=disabled
setenforce 1 设置SELinux 成为enforcing模式?
setenforce 0 设置SELinux 成为permissive模式?
如果要彻底禁用SELinux 需要在/etc/sysconfig/selinux中设置参数selinux=0
// 修改配置文件的SELINUX=disabled,永久关闭
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
// 关闭防火墙
systemctl stop firewalld.service
2. 配置YUM源(非必须)
mkdir /etc/yum.repos.d/OldRepo
mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/OldRepo/
curl -so /etc/yum.repos.d/epel-7.repo http://mirrors.aliyun.com/repo/epel-7.repo
curl -so /etc/yum.repos.d/Centos-7.repo http://mirrors.aliyun.com/repo/Centos-7.repo
sed -i '/aliyuncs.com/d' /etc/yum.repos.d/Centos-7.repo /etc/yum.repos.d/epel-7.repo
3. 配置时间同步(非必须)
#安装ntp服务
yum install -y ntpdate
#同步时间服务器
ntpdate ntp1.aliyun.com
#调整为亚洲上海时区
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
hwclock -w
echo "*/30 * * * * $(which ntpdate) ntp1.aliyun.com > /dev/null 2>&1 && $(which hwclock) -w" > /var/spool/cron/root
chmod 600 /var/spool/cron/root
# 查看日期
date
4. 配置IP地址(非必须)
vi /etc/hosts
192.168.126.141 zabbix
192.168.126.142 fw
192.168.126.143 docker1
# 立即生效
/etc/init.d/network restart
5. 安装zabbix服务端
a. aliyun
#下载部署包
快:https://mirrors.aliyun.com/
b. 官方
# 下载部署包
# rpm -ivh 是执行rpm包命令,执行完下面的命令,是安装zabbix的yum仓库
step1:
// 注意:cent7和cent8分别下载不同的包
// https://www.zabbix.com/cn/download?zabbix=5.0&os_distribution=centos&os_version=7&db=mysql&ws=apache
语法: rpm -ivh file.rpm? % 这个是用来安装一个新的rpm 包
? ? ? ? ? ? rpm -Uvh file.rpm? % 这是用来升级一个rpm 包rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
rpm -ivh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
# 清除YUM缓存。
yum clean all
step2:
# 执行完安装:列出你所有的yum repo
yum? repolist? 查看当前的yum库中是否包含zabbix
结果如下:
# 可选,安装epel,前面安装epel-7了
yum -y install epel-release.noarch
step3:
# Install Zabbix server and agent
sudo yum install zabbix-server-mysql zabbix-agent
# Install Zabbix frontend,
# Enable Red Hat Software Collections
sudo yum install centos-release-scl
编辑配置文件 /etc/yum.repos.d/zabbix.repo and enable zabbix-frontend repository.
[zabbix-frontend]
...
enabled=1
...
step4:
#Install Zabbix frontend packages.
sudo yum install zabbix-web-mysql-scl zabbix-apache-conf-scl
# zabbix 的命令, 用于测试agent是否有效
yum install zabbix-get.x86_64
例子:
zabbix_get -s 192.168.126.141 -p 10050 -k 'system.cpu.intr'
zabbix_get -s 192.168.126.141 -p 10050 -k 'net.tcp.listen[10050]'
vmstat命令:??用来获得有关进程、虚存、页面交换空间及?CPU活动的信息。这些信息反映了系统的负载情况
vmstat 1
6. 创建初始数据库: 安装mysql:安装mysql-5.7
step1: 配置安装源
yum install -y https://dev.mysql.com/get/mysql80-community-release-el7-1.noarch.rpm
yum repolist all | grep mysql? ? ? ? ? ? ? ? ? ? # 查看所有 mysql 子存储库
yum install -y yum-utils? ? ? ? ? ? ? ? ? ? ? ? ? # 安装 yum 配置工具管理 YUM 源
yum-config-manager --disable mysql80-community? ? # 禁用 mysql80版本 子存储库
yum-config-manager --enable mysql57-community
yum repolist enabled | grep mysql? ? ? ? ? ? ? ? # 查看已启用的 mysql 子存储库step2: 安装mysql
yum install -y mysql-community-server
step3: 启动 mysql 服务,跟随系统启动
systemctl start mysqld
systemctl status mysqld
systemctl enable mysqld
step4:? 创建数据库, 并授予zabbix权限,修改数据库密码,
创建zabbix 用户并授权(设置mysql本地登录root密码为ABcd_123!
创建zabbix用户密码为ABcd_123! )
a. mysql -u root -p // 登陆mysql,ABcd_123!
例子:mysql> set password for root@localhost = password('123');
b. 创建数据库
create database zabbix character set utf8 collate utf8_bin;
c. 创建用户
create user zabbix@localhost identified by 'ABcd_123!';
d.授权zabbixs
grant all privileges on zabbix.* to zabbix@localhost;
grant all privileges on zabbix.* to 'zabbix'@'%' identified by 'ABcd_123!';
flush privileges;
quit;
step5: 导入初始架构和数据(数据和表),系统将提示您输入新创建的密码。zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -u zabbix -p zabbix
密码:ABcd_123!
step6: 初始化数据库表(这步骤忽略,在个别的zabbix版本中,可能用到 ,step5已经完成表的建立)
# 查看表
rpm -ql zabbix-server-mysql
# 解压
gzip -d /usr/share/doc/zabbix-server-mysql-5.0.13/create.sql.gz
# 执行导入
mysql -u root -p zabbix < create.sql
7. 为Zabbix server配置数据库(不是必须zabbix 5.0 进入web可以设置, 如果页面设置后,没有生效,就要手动设置如下参数, 注意,web页面设置中,主机和数据库地址写IP,不要写localhost)
编辑配置文件 /etc/zabbix/zabbix_server.conf
下面:好像不是必须,不同的zabbix版本,要求不一定同,zabbix 5.0 进入web可以设置
======== 下面的配置不是必须,zabbix 5.0 进入web页面能配置
vi /etc/zabbix/zabbix_server.conf
ExternalScripts=/usr/lib/zabbix/externalscripts
SNMPTrapperFile=/var/log/snmptrap/snmptrap.log
AlertScriptsPath=/usr/lib/zabbix/alertscripts
LogFile=/var/log/zabbix/zabbix_server.log
PidFile=/var/run/zabbix/zabbix_server.pid
SocketDir=/var/run/zabbix
LogFileSize=0
ListenPort=10051
SourceIP=127.0.0.1
DBHost=localhostDBName=zabbix
DBUser=zabbix
DBPassword=$NewPass // 如: DBPassword=ABcd_123!
Timeout=30
LogSlowQueries=3000
8. 为Zabbix前端配置PHP(5.0 版本是必须)
编辑配置文件 /etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf, uncomment and set the right timezone for you.
php_value[date.timezone] = Asia/Shanghai
注意书写格式, 每一项是一行
9. 安装PHP 环境(好像不是必须,不同的zabbix版本,要求不一定同, 5.0 版本不是必须)
安装zabbix相关包的时候,会安装php,但是使用php -v没有结果,使用rpm -qa | grep php,有结果。具体原因不详。
locate php.ini, php.ini 不在“/etc/php.ini”,原因不详
10. 启动Zabbix server和agent进程
启动Zabbix server和agent进程,并为它们设置开机自启:
systemctl start zabbix-server zabbix-agent httpd rh-php72-php-fpm
systemctl restart zabbix-server zabbix-agent httpd rh-php72-php-fpm
systemctl enable zabbix-server zabbix-agent httpd rh-php72-php-fpm
systemctl start zabbix-server
systemctl restart zabbix-server
systemctl status zabbix-server
systemctl enable zabbix-server
systemctl stop zabbix-server
#查看zabbix的端口
# zabbix-server
ss -nutl|grep 10051
# zabbix-agent
ss -nutl|grep 10050
# zabbix 服务启动日志
# vim? /var/log/zabbix/zabbix_server.log
11. 配置Zabbix前端
# 更改 php, apache 时区(好像不是必须,不同的zabbix版本,要求不一定同)
step1: 配置/etc/php.ini,但是在/etc/opt/rh/rh-php72/php.ini 中
sed -i 's#;date.timezone =.*#date.timezone = "Asia/Shanghai"#' /etc/php.ini
step2: 配置 /etc/httpd/conf.d/zabbix.conf(好像不是必须,不同的zabbix版本,要求不一定同, 5.0? 版本没有执行,执行出错)sed -i '20a\ php_value date.timezone Asia/ShangHai' /etc/httpd/conf.d/zabbix.conf
step3:# 启动Apache进程,跟随系统启动
systemctl start httpd
systemctl enable httpd
systemctl status httpd
#查看Apache的端口
netstat -tunlp| grep 80
netstat -lnpt
step4:如果想修改默认的端口怎么办
在安装zabbix server的时候默认就安装了apache,zabbix依靠apache提供的web服务,修改Zabbix的浏览器访问端口,就是修改apache的服务端口(默认端口:80)
1.编辑httpd.conf文件? :vim /etc/httpd/conf/httpd.conf
2.修改默认的侦听端口和ServerName
Listen?8008
? ? ? ? ServerName IP:8008
3.重启apache服务,使配置生效:?service?httpd?restart
4.添加防火墙规则,允许端口访问
编辑 :vim /etc/sysconfig/iptables
# zabbix web
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8008 -j ACCEPT
重启防火墙:service iptables restart
5.浏览器访问 http://IP:8008/zabbix?测试是否修改成功