暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

ZABBIX的分布式布署实战

IT那活儿 2023-07-13
299
点击上方“IT那活儿”公众号,关注后了解更多内容,不管IT什么活儿,干就完了!!!

分布式Zabbix介绍

zabbix proxy 可以代替 zabbix server 收集性能和可用性数据,然后把数据汇报给 zabbix server,并且在一定程度上分担了zabbix server 的压力。
此外,当所有agents和proxy报告给一个Zabbix server并且所有数据都集中收集时,使用proxy是实现集中式和分布式监控的最简单方法。
zabbix proxy 使用场景:
  • 监控远程区域设备;
  • 监控本地网络不稳定区域;
  • 当 zabbix 监控上千设备时,使用它来减轻 server 的压力;
  • 简化分布式监控的维护。

分布式Zabbix架构

1. 架构示意图

2. 环境准备

节点主机名

IP地址

备注

zabbixserver

xx.xx.xx.xx

Zabbix服务器

zabbixproxy01

xx.xx.xx.xx

Zabbix poxy代理服务器1

zabbixproxy02

xx.xx.xx.xx

Zabbix poxy代理服务器2

node01

xx.xx.xx.xx

模拟poxy1所监控的服务器node01

node02

xx.xx.xx.xx

模拟poxy2所监控的服务器node02

可关闭防火墙和SELinux,若不关闭可进行相应端口放通。

# systemctl stop firewalld
# systemctl disable firewalld
# setenforce 0
# sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
# vi etc/hosts #添加在server和proxy节点添加以下主机名配置
server主机 ip zabbixserver
Proxy1主机ip zabbixproxy01
Proxy2主机ip zabbixproxy02


部署Zabbix-Server

1. 安装Zabbix官方源和epel源

[root@server~]#rpm-ivh
http://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm
[root@server ~]#ls /etc/yum.repos.d/

存在epel.repo  epel-testing.repo  zabbix.repo这三个文件。

2. 安装Zabbix Server等组件

[root@server ~]#
yum -y install zabbix-get zabbix-server-mysql zabbix-web-mysql zabbix-web zabbix-agent mariadb mariadb-server

3. 简单优化MariaDB

[root@server ~]# vi /etc/my.cnf
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
symbolic-links=0
character-set-server=utf8 #设置字符集为utf8
innodb_file_per_table=1 #设置innodb的每个表文件单独存储
[mysqld_safe]
log-error=/var/log/mariadb/mariadb.log
pid-file=/var/run/mariadb/mariadb.pid
……
[root@server ~]# systemctl enable mariadb #设为开机启动
[root@server ~]# systemctl start mariadb #开启MariaDB数据

4. 设置数据库相关项

[root@server ~]# mysql_secure_installation #设置安全性,并设置数据库root密码
[root@server ~]# mysql -u root -p
MariaDB [(none)]> create database zabbix character set utf8 collate utf8_bin;
#创建数据库且字符集为utf8,使web界面显示中文不出现乱码
MariaDB [(none)]> grant all privileges on zabbix.* to zabbix@'localhost' identified by 'zxc26134';
#创建zabbix数据库和Zabbix用户,且赋予此用户拥有此数据库全部权限。
MariaDB [(none)]> flush privileges;
MariaDB [(none)]> exit;

5. 导入数据库相关表

[root@server ~]#cd /usr/share/doc/zabbix-server-mysql-4.x.x/ #进入数据库模板所在目录
[root@server zabbix-server-mysql-4.0.45]# ls

[root@server zabbix-server-mysql-4.0.45]#zcat create.sql.gz | mysql -uroot -p zabbix #
将模板数据恢复至Zabbix数据库
[root@server ~]#mysql -u zabbix -pzxc26134 zabbix -e "show tables" #
查看数据表项

6. 配置Zabbix_server.conf项

[root@server ~]# vi /etc/zabbix/zabbix_server.conf
LogFile=/var/log/zabbix/zabbix_server.log
LogFileSize=0
PidFile=/var/run/zabbix/zabbix_server.pid
DBHost=localhost #修改主机
DBName=zabbix
DBUser=zabbix
DBPassword=zxc26134 #修改DB密码(之前所创建密码)
SNMPTrapperFile=/var/log/snmptrap/snmptrap.log
Timeout=4
AlertScriptsPath=/usr/lib/zabbix/alertscripts
ExternalScripts=/usr/lib/zabbix/externalscripts
LogSlowQueries=3000

7. Server自身agent配置

[root@server ~]# vi /etc/zabbix/zabbix_agentd.conf
PidFile=/var/run/zabbix/zabbix_agentd.pid
LogFile=/var/log/zabbix/zabbix_agentd.log
LogFileSize=0
Server=本机ip
ServerActive=本机ip #主动模式,Server自身主动向自己传送数据
Hostname=zabbixserver #zabbix server web上添加自身需要用到

8. 启动Zabbix服务

[root@server ~]#systemctl enable zabbix-server #设为开机启动Zabbix服务
[root@server ~]#systemctl start zabbix-server #启动Zabbix服务
[root@server ~]#systemctl start zabbix-agent #需要监控自己,因此也开启agent
[root@server ~]#systemctl enable zabbix-agent #启动Zabbix服务

9. 配置php

[root@server ~]# vi /etc/php.ini
date.timezone= Asia/Shanghai
max_execution_time = 300
post_max_size = 16M
memory_limit = 128M
[root@server ~]# vi /etc/httpd/conf.d/zabbix.conf
Alias /zabbix /usr/share/zabbix
<Directory "/usr/share/zabbix">
    Options FollowSymLinks
    AllowOverride None
    Require all granted
    <IfModule mod_php5.c>
        php_value max_execution_time 300
        php_value memory_limit 128M
        php_value post_max_size 16M
        php_value upload_max_filesize 2M
        php_value max_input_time 300
        php_value max_input_vars 10000
        php_value always_populate_raw_post_data -1
        php_value date.timezone Europe/Riga
    </IfModule>
</Directory>

10. 启动Apache服务

[root@server ~]#systemctl start httpd.service
[root@server ~]#systemctl enable httpd.service

11. Web界面配置

1)访问http://ip/zabbix,界面如下
2)点击“Next step”检查组件是否OK
3)点击“Next step”,配置连接数据库
4)输入zabbix帐户的密码,然后“Next step”。Host为server的主机ip
5)预览配置概要后下一步
6)完成初始化配置
7)初始口令Admin/zabbix
8)设置界面语言为汉语简体
9)创建主机群组
10)创建三个主机群组,一个为server群组,一个为proxy群组,一个为agent主机群组


部署Zabbix-Proxy

1. 安装Zabbix官方源和epel源

[root@proxy01 ~]#yum -y install epel-release.noarch
[root@proxy01 ~]#rpm -ivh
http://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm

2. 安装Zabbix-proxy等组件

[root@proxy01 ~]# 
yum install -y zabbix-proxy zabbix-proxy-mysql mariadb mariadb-server zabbix-agent

3. 简单优化MariaDB

[root@proxy01 ~]# vi /etc/my.cnf
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
symbolic-links=0
character-set-server=utf8 #设置字符集为utf8
innodb_file_per_table=1 #设置innodb的每个表文件单独存储
[mysqld_safe]
log-error=/var/log/mariadb/mariadb.log
pid-file=/var/run/mariadb/mariadb.pid
……
[root@proxy01 ~]# systemctl enable mariadb #设为开机启动
[root@proxy01 ~]# systemctl start mariadb #开启MariaDB数据

4. 设置数据库相关项

[root@proxy01 ~]# mysql_secure_installation #设置安全性,并设置数据库root密码
[root@proxy01 ~]# mysql -u root -p
MariaDB [(none)]> create database zabbixproxydb character set utf8 collate utf8_bin;
#创建数据库且字符集为utf8,使web界面显示中文不出现乱码
MariaDB [(none)]> grant all privileges on zabbixproxydb.* to proxy@'localhost' identified by 'zxc26134';
#创建zabbixproxydb数据库和proxy用户,且赋予此用户拥有此数据库全部权限。
MariaDB [(none)]> flush privileges;
MariaDB [(none)]> exit;

5. 导入数据库相关表

[root@proxy01 ~]#cd /usr/share/doc/zabbix-proxy-mysql-4.x.x/  #进入数据库模板所在目录
[root@proxy01 zabbix-proxy-mysql-4.x.x]# ls
AUTHORS ChangeLog COPYING NEWS README schema.sql.gz

[root@proxy01 zabbix-proxy-mysql-4.x.x]# zcat schema.sql.gz | mysql -uroot -p zabbixproxydb
#将模板数据恢复至Zabbix数据库,此处为需要输入MariaDB的root用户密码。
Enter password:

[root@proxy01 ~]#mysql -u proxy -p #用proxy用户登录

MariaDB [(none)]> show databases;
MariaDB [(none)]> use zabbixproxydb;
MariaDB [zabbixproxydb]> show tables; #查看数据表
MariaDB [zabbixproxydb]> exit

6. 配置zabbix_proxy.conf项

[root@proxy01 ~]# vi /etc/zabbix/zabbix_proxy.conf
ProxyMode=0  # 默认即为0,代表 Proxy 处于主动模式,即 Proxy 主动去请求 Zabbix Server 获取监控项;1 代表被动模式
Server=server主机的ip
ServerPort=10051     # 默认即为10051,Zabbix Server 监听端口,同上只在 Proxy 为主动模式时生效
Hostname=zabbixproxy01 # Server端添加proxy的时候需要一致,建议采用主机名
LogFile=/var/log/zabbix/zabbix_proxy.log # Proxy 日志文件位置
LogFileSize=0
PidFile=/var/run/zabbix/zabbix_proxy.pid
DBHost=localhost # 连接数据库的主机
DBName=zabbixproxydb # 数据库名
DBUser=proxy # 连接用户
DBPassword=zxc26134 # 用户密码
ConfigFrequency=60  # proxy主动从server端检索配置更新的频率,单位秒,主动proxy 参数, 被动 proxies忽略此项
DataSenderFrequency=60   # Proxy 向 Zabbix Server 发送监控数据间隔,单位为秒
Timeout=4

7. Proxy自身agent配置

[root@imxhy02 ~]# vi /etc/zabbix/zabbix_agentd.conf
PidFile=/var/run/zabbix/zabbix_agentd.pid
LogFile=/var/log/zabbix/zabbix_agentd.log
LogFileSize=0
Server=server主机的ip #若为纯主动模式需要注释此行
ServerActive=server主机的ip #主动模式,proxy自身主Server传送数据
Hostname=zabbixproxy01 #zabbix server web上添加自身需要用到

8. zabbix启动级开机启动

[root@proxy01 ~]#systemctl start zabbix-proxy.service
[root@proxy01 ~]#systemctl enable zabbix-proxy.service
[root@proxy01 ~]#systemctl start zabbix-agent.service
[root@proxy01 ~]#systemctl enable zabbix-agent.service

9. Server端添加Proxy

登录Zabbix Server的Web后,管理---->agent代理程序---->创建代理:
agent代理程序名称需要和proxy主机的Hostname一致,代理地址也需与proxy的ip地址一致。


部署Zabbix Agent节点

1. 安装Zabbix官方源和epel源

[root@node01~]#rpm -ivh 
http://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm
[root@node01 ~]#ls /etc/yum.repos.d/

2. 安装Zabbix Agent等组件

[root@node01 ~]#yum -y install zabbix-agent

3. 主机节点agent配置

[root@server ~]# vi /etc/zabbix/zabbix_agentd.conf
PidFile=/var/run/zabbix/zabbix_agentd.pid
LogFile=/var/log/zabbix/zabbix_agentd.log
LogFileSize=0
Server=proxy的ip #若为纯主动模式需要注释此行
ServerActive=proxy的ip #主动模式,主机1向proxy01主动传送数据
Hostname=自身主机名 #Zabbix server web上添加主机需要用到

4. 启动Zabbix服务

[root@node01 ~]#systemctl start zabbix-agent
[root@node01 ~]#systemctl enable zabbix-agent


添加主机
点击创建主机,需创建proxy主机以及agent主机:
主机名称要与conf里Hostname一致,群组选择对应群组,ip填写对应ip,选择对应代理(如果是proxy主机则不需要选择代理)。
然后选择模板界面,添加对应模板,然后选择最下面添加:


确认验证
登录Zabbix之后查看主机及图形:
随机查看主机节点监控图形:
添加zabbixproxy2和主机2监控则重复上面的相关操作。

END


本文作者:谌 鹏(上海新炬中北团队)

本文来源:“IT那活儿”公众号

文章转载自IT那活儿,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论