zabbix分布式部署

1.环境准备,1台zabbix-server ,2台zabbix-proxy
当前zabbix-server服务器信息为:

服务器IP 192.168.1.112
账号密码:root 123456
账号密码:admin 123456
MySQL账号:root 123456
MySQL账号:zabbix 123456

配置zabbix-proxy服务器,服务器信息如下:

服务器IP 192.168.1.113
账号密码:root 123456
账号密码:admin 123456
MySQL账号:root 123456
MySQL账号:zabbix 123456

2.关闭单机环境下的自动注册和自动发现
3.原服务端可以继续用
4.配置zabbix-proxy代理服务器,并配置数据库,用于存储agent2发来的数据,最终发送给zabbix-server

zabbix-proxy配置

  1. 配置zabbix5.0的yum源,操作方式同agent端
  2. 修改yum地址为阿里云地址
  3. 安装zabbix-proxy 以及数据库
  4. zabbix-proxy的数据库版本要与server数据库版本一致
  5. 关闭防火墙及selinux

安装proxy

yum install zabbix-proxy-mysql zabbix-get -y
[root@zabbix-proxy1 yum.repos.d]# yum install zabbix-proxy-mysql zabbix-get -y

配置数据库

mariadb

  • 安装centos7默认的mariadb
yum install mariadb-server mariadb -y
#启动服务
systemct start mariadb
#查看端口
netstat -tunlp
  • 配置数据库
 #进入数据库
 mysql

默认是mysql -uroot -p

MariaDB[(none)]>create database zabbix_proxy character set utf8 collate utf8_bin;
Query OK, 1 row affected
MariaDB[(none)]>grant all privileges on zabbix_proxy.* to zabbix@localhost identified  by 'zabbix';

创建zabbix用户,密码为zabbix,并授权zabbix_proxy数据库的所有权限

MariaDB[(none)]>grant all privileges on zabbix_proxy.* to zabbix@localhost identified by 'zabbix';
Query OK, 0 row affected

刷新权限

MariaDB[(none)]>flush privileges;
MariaDB[(none)]>quit;

导入zabbix-proxy数据信息,搜索rpm包位置

rpm -ql zabbix-proxy-mysql

找到schema.sql.gz文件,并导入

zcat /usr/share/doc/zabbix-proxy-mysql-5.0.2/schema.sql.gz | mysql -uzabbix -pzabbix zabbix_proxy

检查导入情况

mysql
MariaDB[(none)]>show databases;
MariaDB[(none)]>use zabbix_proxy;
MariaDB[(none)]>show tables;

MySQL

  • 安装并使用mysql数据库
[root@zabbix-proxy1 yum.repos.d]# cd /usr/local/src/
[root@zabbix-proxy1 src]# wget http://repo.mysql.com/mysql57-community-release-el7-8.noarch.rpm
[root@zabbix-proxy1 src]# rpm -ivh mysql57-community-release-el7-8.noarch.rpm
[root@zabbix-proxy1 src]# yum -y install mysql-server --nogpgcheck
  • 配置数据库
    启动Mysql
[root@zabbix-proxy1 src]# systemctl start mysqld
[root@zabbix-proxy1 src]# systemctl status mysqld.service
● mysqld.service - MySQL Server
   Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)
   Active: active (running) since 三 2022-04-06 15:05:26 CST; 8s ago
     Docs: man:mysqld(8)
           http://dev.mysql.com/doc/refman/en/using-systemd.html
  Process: 126123 ExecStart=/usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid $MYSQLD_OPTS (code=exited, status=0/SUCCESS)
  Process: 125995 ExecStartPre=/usr/bin/mysqld_pre_systemd (code=exited, status=0/SUCCESS)
 Main PID: 126126 (mysqld)
   CGroup: /system.slice/mysqld.service
           └─126126 /usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid

4月 06 15:05:20 zabbix-proxy1 systemd[1]: Starting MySQL Server...
4月 06 15:05:26 zabbix-proxy1 systemd[1]: Started MySQL Server.
  • 获取安装时的临时密码
[root@zabbix-proxy1 src]# grep 'temporary password' /var/log/mysqld.log
2022-04-06T07:05:23.952687Z 1 [Note] A temporary password is generated for root@localhost: &?!u44ejrtJV
  • &?!u44ejrtJV临时密码 用这个密码登录并修改密码
[root@zabbix-proxy1 src]# mysql -uroot -p'&?!u44ejrtJV'
mysql> set password for root@localhost = password('123456');
  • 创建初始数据库
    5.0版本需使用utf8 5.0版本不支持utf8mb64。授权zabbix用户可以远程访问及本地访问
mysql> create database zabbix_proxy character set utf8 collate utf8_bin;
mysql> grant all privileges on zabbix_proxy.* to zabbix@localhost identified by '123456';
mysql> grant all privileges on zabbix_proxy.* to 'zabbix'@'%' identified BY '123456' with grant option; 
mysql> FLUSH PRIVILEGES;   
mysql> quit;

导入zabbix-proxy数据信息,搜索rpm包位置

rpm -ql zabbix-proxy-mysql
[root@zabbix-proxy1 src]# rpm -ql zabbix-proxy-mysql
/etc/logrotate.d/zabbix-proxy
/etc/zabbix/zabbix_proxy.conf
/usr/lib/systemd/system/zabbix-proxy.service
/usr/lib/tmpfiles.d/zabbix-proxy.conf
/usr/lib/zabbix/externalscripts
/usr/sbin/zabbix_proxy_mysql
/usr/share/doc/zabbix-proxy-mysql-5.0.22
/usr/share/doc/zabbix-proxy-mysql-5.0.22/AUTHORS
/usr/share/doc/zabbix-proxy-mysql-5.0.22/COPYING
/usr/share/doc/zabbix-proxy-mysql-5.0.22/ChangeLog
/usr/share/doc/zabbix-proxy-mysql-5.0.22/NEWS
/usr/share/doc/zabbix-proxy-mysql-5.0.22/README
/usr/share/doc/zabbix-proxy-mysql-5.0.22/schema.sql.gz
/usr/share/man/man8/zabbix_proxy.8.gz
/var/log/zabbix
/var/run/zabbix

找到schema.sql.gz文件,并导入

zcat /usr/share/doc/zabbix-proxy-mysql-5.0.22/schema.sql.gz | mysql -uzabbix -p123456 zabbix_proxy

检查导入情况

[root@zabbix-proxy1 zabbix-proxy-mysql-5.0.22]# mysql -uroot -p123456
mysql> show databases;
mysql> use zabbix_proxy;
mysql> show tables;

配置zabbix-proxy配置文件,连接数据库

zabbix-proxy配置文件

  • 插入一行并生成一个.ori的备份文件
sed -i.ori '162a DBPassword=123456' /etc/zabbix/zabbix_proxy.conf
[root@zabbix-proxy1 zabbix]# sed -i.ori '162a DBPassword=123456' /etc/zabbix/zabbix_proxy.conf
  • 修改server端地址
sed -i 's#Server=127.0.0.1#Server=192.168.1.112#' /etc/zabbix/zabbix_proxy.conf
[root@zabbix-proxy1 zabbix]# sed -i 's#Server=127.0.0.1#Server=192.168.1.112#' /etc/zabbix/zabbix_proxy.conf
  • 修改hostname
sed -i 's#Hostname=Zabbix proxy#Server=当前机器的hostname#' /etc/zabbix/zabbix_proxy.conf
[root@zabbix-proxy1 zabbix]# sed -i 's#Hostname=Zabbix proxy#Hostname=zabbix-proxy1#' /etc/zabbix/zabbix_proxy.conf
  • 检查zabbix-proxy配置文件
grep '^[a-Z]' /etc/zabbix/zabbix_proxy.conf
[root@zabbix-proxy1 zabbix]# grep '^[a-Z]' /etc/zabbix/zabbix_proxy.conf
Server=192.168.1.112
Hostname=zabbix-proxy1
LogFile=/var/log/zabbix/zabbix_proxy.log
LogFileSize=0
PidFile=/var/run/zabbix/zabbix_proxy.pid
SocketDir=/var/run/zabbix
DBPassword=123456
DBName=zabbix_proxy
DBUser=zabbix
SNMPTrapperFile=/var/log/snmptrap/snmptrap.log
Timeout=4
ExternalScripts=/usr/lib/zabbix/externalscripts
LogSlowQueries=3000
StatsAllowedIP=127.0.0.1
  • 重启代理服务
systemctl restart zabbix-proxy
[root@zabbix-proxy1 zabbix]# systemctl restart zabbix-proxy
  • 查看服务项是否开机启动
[root@zabbix-proxy1 zabbix]# systemctl list-unit-files | grep mysqld
[root@zabbix-proxy1 zabbix]# systemctl list-unit-files | grep zabbix
zabbix-proxy.service                        disabled
[root@zabbix-proxy1 zabbix]# systemctl enable zabbix-proxy.service 
Created symlink from /etc/systemd/system/multi-user.target.wants/zabbix-proxy.service to /usr/lib/systemd/system/zabbix-proxy.service.
[root@zabbix-proxy1 zabbix]# systemctl list-unit-files | grep zabbix
zabbix-proxy.service                        enabled 

在server端添加代理程序

页面端配置

页面配置--管理--agent代理程序--创建代理

  • agent代理程序名称:为proxy的hostname,要和proxy机器上zabbix_proxy.conf配置文件中的hostname一致
  • 系统代理程序模式: 默认为主动式。主动式是proxy主动把数据发给server
  • 代理地址 :填写proxy的ip或dns解析
  • 添加后在agent代理程序页面选择启用主机

服务端查看

添加之后在server查看日志看是否有异常,返回发送配置成功则连接成功,此时页面上"最近出现"会显示数据

[root@zabbix-server ~]# tail -f /var/log/zabbix/zabbix_server.log
  2743:20220408:132120.354 sending configuration data to proxy "zabbix-proxy1" at "192.168.1.113", datalen 3662, bytes 1299 with compression ratio 2.8

使用proxy监控client端

在页面中,配置-主机进行添加主机,把proxy的机器添加进来。

  • 主机名为client的hostname
  • 可见的名称 任意
  • Interfaces :client端的ip地址,zabbix_agent端口默认为10050
  • 由agent代理程序监测:下拉选择指定的proxy机器

在client的机器端,zabbix_agent的配置文件需要修改

默认配置文件为 /etc/zabbix/zabbix_agent2.conf。配置文件里的hostname与页面上配置的hostname要一致

PidFile : 进程id
LogFile : 日志文件
Server : Zabbix的Server地址 或Zabbix的Proxy地址
ServerActive : Zabbix的Server地址 或Zabbix的Proxy地址
Hostname: 当前主机的hostname
Include: 包含的配置文件

[root@load-kfapplications yum.repos.d]# grep -Ev '^#|^$' /etc/zabbix/zabbix_agent2.conf
PidFile=/var/run/zabbix/zabbix_agent2.pid
LogFile=/var/log/zabbix/zabbix_agent2.log
LogFileSize=0
Server=127.0.0.1
ServerActive=127.0.0.1
Hostname=Zabbix server
Include=/etc/zabbix/zabbix_agent2.d/*.conf
ControlSocket=/tmp/agent.sock

最后重启zabbix-agent2服务,观察页面上的状态情况,如果没有数据上报,可以查看agent端日志和proxy端日志

[root@zabbix-proxy1 zabbix]# tail -f /var/log/zabbix/zabbix_proxy.log 
[root@load-kfapplications ~]# tail -f /var/log/zabbix/zabbix_agent2.log

如果还没有数据可以重启proxy的服务

posted on 2022-09-09 14:20  学业未成  阅读(181)  评论(0编辑  收藏  举报