linux|zabbix server 6.0安装(rancher+kubernetes部署)

1、相关资源导航
https://blog.csdn.net/zyj81092211/article/details/122917786
2、环境介绍
zabbix版本:6.0
kubernetes版本:v1.23.4
rancher版本:v2.6.3
容器相关环境配置可参考如下
https://blog.csdn.net/zyj81092211/article/details/123068347
3、创建zabbix命名空间
linux|zabbix server 6.0安装(rancher+kubernetes部署)
文章图片

4、安装mysql数据库
创建StatefulSets工作负载之前要建立headless服务
(1)创建headless服务
linux|zabbix server 6.0安装(rancher+kubernetes部署)
文章图片

linux|zabbix server 6.0安装(rancher+kubernetes部署)
文章图片

(2)创建mysql配置文件ConfigMaps
linux|zabbix server 6.0安装(rancher+kubernetes部署)
文章图片

[mysqld] character-set-server=utf8 collation-server=utf8_bin default-authentication-plugin=mysql_native_password

(3)创建mysql StatefulSets
linux|zabbix server 6.0安装(rancher+kubernetes部署)
文章图片

环境变量
linux|zabbix server 6.0安装(rancher+kubernetes部署)
文章图片

pod标签
linux|zabbix server 6.0安装(rancher+kubernetes部署)
文章图片

配置映射
linux|zabbix server 6.0安装(rancher+kubernetes部署)
文章图片

数据存储pvc
linux|zabbix server 6.0安装(rancher+kubernetes部署)
文章图片

验证
存储挂载
linux|zabbix server 6.0安装(rancher+kubernetes部署)
文章图片

linux|zabbix server 6.0安装(rancher+kubernetes部署)
文章图片

linux|zabbix server 6.0安装(rancher+kubernetes部署)
文章图片

报错处理:(在完成后面步骤时,出现问题)
上面设置的参数在初始化数据库时候不生效,会报如下错误
Unsupported charset or collation for tables

linux|zabbix server 6.0安装(rancher+kubernetes部署)
文章图片

删除重新创建数据库,更改如下
linux|zabbix server 6.0安装(rancher+kubernetes部署)
文章图片

CREATE DATABASE `zabbix` CHARACTER SET 'utf8' COLLATE 'utf8_bin';

5、安装zabbix-java-gateway
镜像:
zabbix/zabbix-java-gateway:latest

linux|zabbix server 6.0安装(rancher+kubernetes部署)
文章图片

linux|zabbix server 6.0安装(rancher+kubernetes部署)
文章图片

6、安装zabbix-server-mysql
linux|zabbix server 6.0安装(rancher+kubernetes部署)
文章图片

环境变量设置
linux|zabbix server 6.0安装(rancher+kubernetes部署)
文章图片

注意:headless直接解析到具体pod,没有集群ip地址(重新部署pod ip会变不能直接使用pod ip)
可以通过从coreDNS(在kube-system下可以获得dns地址)获取解析
命名规则:
pod名.服务名.命名空间.svc.cluster.local
linux|zabbix server 6.0安装(rancher+kubernetes部署)
文章图片

linux|zabbix server 6.0安装(rancher+kubernetes部署)
文章图片

- name: DB_SERVER_HOST value: headless-zabbix.zabbix.svc.cluster.local - name: MYSQL_DATABASE value: zabbix - name: MYSQL_USER value: zabbix - name: MYSQL_PASSWORD value: Smtgbk_123 - name: MYSQL_ROOT_PASSWORD value: Smtgbk_123 - name: ZBX_JAVAGATEWAY value: zabbix-java-gateway.zabbix.svc.cluster.local

标签
linux|zabbix server 6.0安装(rancher+kubernetes部署)
文章图片

7、配置zabbix-web-nginx-mysql
linux|zabbix server 6.0安装(rancher+kubernetes部署)
文章图片

环境变量设置
linux|zabbix server 6.0安装(rancher+kubernetes部署)
文章图片

- name: ZBX_SERVER_HOST value: zabbix-server-mysql.zabbix.svc.cluster.local - name: DB_SERVER_HOST value: headless-zabbix.zabbix.svc.cluster.local - name: MYSQL_DATABASE value: zabbix - name: MYSQL_USER value: zabbix - name: MYSQL_PASSWORD value: Smtgbk_123 - name: MYSQL_ROOT_PASSWORD value: Smtgbk_123

pod标签
linux|zabbix server 6.0安装(rancher+kubernetes部署)
文章图片

8、zabbix-proxy-mysql部署(可选,机器多可以部署)
注:Zabbix 代理是一个可以从一个或多个被监控设备收集监控数据并将信息发送到 Zabbix 服务器的进程,本质上是代表服务器工作。所有收集到的数据都在本地缓存,然后传输到代理所属的 Zabbix 服务器
工作过程是:proxy去zabbix server获取配置信息(或者zabbix 推送信息到proxy),proxy去agent收集信息,再推送信息到zabbix server
(1)代理程序需要单独的数据库,建立数据库
a、创建headless service
linux|zabbix server 6.0安装(rancher+kubernetes部署)
文章图片

选择器
linux|zabbix server 6.0安装(rancher+kubernetes部署)
文章图片

b、创建StatefulSets
linux|zabbix server 6.0安装(rancher+kubernetes部署)
文章图片

环境变量设置
linux|zabbix server 6.0安装(rancher+kubernetes部署)
文章图片

- name: MYSQL_USER value: zabbix - name: MYSQL_PASSWORD value: Smtgbk_123 - name: MYSQL_ROOT_PASSWORD value: Smtgbk_123

pod标签设置
linux|zabbix server 6.0安装(rancher+kubernetes部署)
文章图片

存储配置
linux|zabbix server 6.0安装(rancher+kubernetes部署)
文章图片

创建数据库
linux|zabbix server 6.0安装(rancher+kubernetes部署)
文章图片

linux|zabbix server 6.0安装(rancher+kubernetes部署)
文章图片

linux|zabbix server 6.0安装(rancher+kubernetes部署)
文章图片

CREATE DATABASE `zabbix_proxy` CHARACTER SET 'utf8' COLLATE 'utf8_bin'; GRANT Alter, Alter Routine, Create, Create Routine, Create Temporary Tables, Create View, Delete, Drop, Event, Execute, Grant Option, Index, Insert, Lock Tables, References, Select, Show View, Trigger, Update ON `zabbix\_proxy`.* TO `zabbix`@`%`;

(2)安装zabbix-proxy
linux|zabbix server 6.0安装(rancher+kubernetes部署)
文章图片

环境变量
linux|zabbix server 6.0安装(rancher+kubernetes部署)
文章图片

- name: ZBX_HOSTNAME value: zabbix-proxy-host - name: ZBX_SERVER_HOST value: zabbix-server-mysql.zabbix.svc.cluster.local - name: DB_SERVER_HOST value: zabbixproxy01.zabbix.svc.cluster.local - name: MYSQL_USER value: zabbix - name: MYSQL_PASSWORD value: Smtgbk_123 - name: MYSQL_DATABASE value: zabbix_proxy - name: ZBX_JAVAGATEWAY_ENABLE value: 'true'

pod标签
linux|zabbix server 6.0安装(rancher+kubernetes部署)
文章图片

9、建立ingress 外部访问zabbix web
ingress控制器部署参考
https://blog.csdn.net/zyj81092211/article/details/123457197
linux|zabbix server 6.0安装(rancher+kubernetes部署)
文章图片

10、创建外部代理服务器,代理到ingress控制器
linux|zabbix server 6.0安装(rancher+kubernetes部署)
文章图片

nginx代理创建参考
https://blog.csdn.net/zyj81092211/article/details/123293236
配置文件zabbix.wtown.com.conf参考,创建完成后在dns服务器解析即可
upstream zabbix{ #保持会话连接,开启调度算法ip_hash,url_hash(加载三方模块),sticky(cookie方式,加载nginx-sticky-module-ng模块) ip_hash; server 10.99.24.31:30080 weight=1 max_fails=2 fail_timeout=10; server 10.99.24.32:30080 weight=1 max_fails=2 fail_timeout=10; server 10.99.24.33:30080 weight=1 max_fails=2 fail_timeout=10; server 10.99.24.34:30080 weight=1 max_fails=2 fail_timeout=10; server 10.99.24.35:30080 weight=1 max_fails=2 fail_timeout=10; server 10.99.24.36:30080 weight=1 max_fails=2 fail_timeout=10; server 10.99.24.37:30080 weight=1 max_fails=2 fail_timeout=10; #server 192.168.2.101 down; #标记为down 剔除负载均衡队列 }server { listen 80; #include agent_deny.conf; #加载防止爬虫的配置文件 server_name zabbix.wtown.com; #access_log logs/test.com.access.log main; #error_log logs/test.comerror.logerror; proxy_buffering on; #开启buffer缓存,异步应答客户端请求,效率高 proxy_buffer_size 4k; proxy_buffers 2 4k; proxy_busy_buffers_size 4k; proxy_temp_path /tmp/nginx_proxy_tmp 1 2; proxy_max_temp_file_size 20M; proxy_temp_file_write_size 8k; location / { proxy_passhttp://zabbix; proxy_set_header Host$host; proxy_set_header X-Real-IP$remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } }

11、访问zabbix.wtown.com,默认用户名密码是Admin/zabbix
linux|zabbix server 6.0安装(rancher+kubernetes部署)
文章图片

linux|zabbix server 6.0安装(rancher+kubernetes部署)
文章图片

12、连接代理服务器到zabbix-server(可选)
linux|zabbix server 6.0安装(rancher+kubernetes部署)
文章图片

linux|zabbix server 6.0安装(rancher+kubernetes部署)
文章图片

linux|zabbix server 6.0安装(rancher+kubernetes部署)
文章图片

linux|zabbix server 6.0安装(rancher+kubernetes部署)
文章图片

13、zabbix agent 被动模式部署
(1)linux下安装配置
https://repo.zabbix.com/zabbix/6.0/
安装软件源
linux|zabbix server 6.0安装(rancher+kubernetes部署)
文章图片

rpm -ivh https://repo.zabbix.com/zabbix/6.0/rhel/7/x86_64/zabbix-release-6.0-1.el7.noarch.rpm

安装agent
yum install zabbix-agent2 -y

编辑配置文件
vi /etc/zabbix/zabbix_agent2.conf

被动模式需要更改的参数
注:客户端被动模式是zabbix server或者zabbix proxy主动去agent请求数据
linux|zabbix server 6.0安装(rancher+kubernetes部署)
文章图片

linux|zabbix server 6.0安装(rancher+kubernetes部署)
文章图片

上面server处使用的域名在dns服务器上已经解析,解析到所有kubernetes节点
linux|zabbix server 6.0安装(rancher+kubernetes部署)
文章图片

启动
systemctl start zabbix-agent2 systemctl enable zabbix-agent2

不在server里添加域名或者ip会报如下错误
tail -f /var/log/zabbix/zabbix_agent2.log

linux|zabbix server 6.0安装(rancher+kubernetes部署)
文章图片

在zabbix server页面添加主机
linux|zabbix server 6.0安装(rancher+kubernetes部署)
文章图片

linux|zabbix server 6.0安装(rancher+kubernetes部署)
文章图片

linux|zabbix server 6.0安装(rancher+kubernetes部署)
文章图片

去zabbix proxy代理上执行
zabbix_proxy -R config_cache_reload

这个操作会去server端拉取信息
linux|zabbix server 6.0安装(rancher+kubernetes部署)
文章图片

查看主机状态为绿色客户端上线
linux|zabbix server 6.0安装(rancher+kubernetes部署)
文章图片

(2)windows客户端
客户端下载地址
开始安装
linux|zabbix server 6.0安装(rancher+kubernetes部署)
文章图片

linux|zabbix server 6.0安装(rancher+kubernetes部署)
文章图片

linux|zabbix server 6.0安装(rancher+kubernetes部署)
文章图片

linux|zabbix server 6.0安装(rancher+kubernetes部署)
文章图片

linux|zabbix server 6.0安装(rancher+kubernetes部署)
文章图片

linux|zabbix server 6.0安装(rancher+kubernetes部署)
文章图片

安装完成会在服务中出现对应的zabbix服务
linux|zabbix server 6.0安装(rancher+kubernetes部署)
文章图片

防火墙出现对应规则
linux|zabbix server 6.0安装(rancher+kubernetes部署)
文章图片

linux|zabbix server 6.0安装(rancher+kubernetes部署)
文章图片

server上添加对应主机
linux|zabbix server 6.0安装(rancher+kubernetes部署)
文章图片

linux|zabbix server 6.0安装(rancher+kubernetes部署)
文章图片

14、zabbix agent 主动模式(可选)
注:主动模式zabbix agent会主动请求zabbix server服务器,因为zabbix server部署在kubernetes集群上,不能直接访问,且有多个节点,所以设置通过代理访问
设置nodeport svc映射外网端口
linux|zabbix server 6.0安装(rancher+kubernetes部署)
文章图片

linux|zabbix server 6.0安装(rancher+kubernetes部署)
文章图片

linux|zabbix server 6.0安装(rancher+kubernetes部署)
文章图片

获得端口号31865
linux|zabbix server 6.0安装(rancher+kubernetes部署)
文章图片

tcp代理搭建设置参考:
https://blog.csdn.net/zyj81092211/article/details/123293236
配置文件参考
upstream zabbixhost{ server 10.99.24.31:31865 weight=1 max_fails=2 fail_timeout=10; #被代理的服务器 server 10.99.24.32:31865 weight=1 max_fails=2 fail_timeout=10; #被代理的服务器 server 10.99.24.33:31865 weight=1 max_fails=2 fail_timeout=10; #被代理的服务器 server 10.99.24.35:31865 weight=1 max_fails=2 fail_timeout=10; #被代理的服务器 server 10.99.24.35:31865 weight=1 max_fails=2 fail_timeout=10; #被代理的服务器 server 10.99.24.36:31865 weight=1 max_fails=2 fail_timeout=10; #被代理的服务器 server 10.99.24.37:31865 weight=1 max_fails=2 fail_timeout=10; #被代理的服务器 } server { listen 10051; #代理服务器端口 proxy_connect_timeout 8s; #连接超时 proxy_timeout 24h; #代理服务器超时 proxy_pass zabbixhost; #明确指定被代理服务器 }

dns添加解析到代理服务器,保证通讯正常
linux|zabbix server 6.0安装(rancher+kubernetes部署)
文章图片

zabbix agent安装方法同13步:
配置文件中需要修改的
linux|zabbix server 6.0安装(rancher+kubernetes部署)
文章图片

server端添加主机
linux|zabbix server 6.0安装(rancher+kubernetes部署)
文章图片

添加完成后,查看已经出数
linux|zabbix server 6.0安装(rancher+kubernetes部署)
文章图片

问题:
主机这里的状态并不会变:
linux|zabbix server 6.0安装(rancher+kubernetes部署)
文章图片

15、中文图形乱码解决
下面方框是因为,中文字体的原因造成的,更换字体后就能解决
linux|zabbix server 6.0安装(rancher+kubernetes部署)
文章图片

zabbix web端容器路径里有字体
linux|zabbix server 6.0安装(rancher+kubernetes部署)
文章图片

从windows 里找中文字体,替换这个字体
linux|zabbix server 6.0安装(rancher+kubernetes部署)
文章图片

重命名一下传到nfs共享服务器里:
mount -t nfs vdfs01.wtown.com:/Kubernetes/zabbix-fonts /mnt

linux|zabbix server 6.0安装(rancher+kubernetes部署)
文章图片

把nfs共享挂载到容器里:
挂载路径:
/usr/share/zabbix/assets/fonts

【linux|zabbix server 6.0安装(rancher+kubernetes部署)】linux|zabbix server 6.0安装(rancher+kubernetes部署)
文章图片

查看已正常显示中文
linux|zabbix server 6.0安装(rancher+kubernetes部署)
文章图片

    推荐阅读