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命名空间
文章图片
4、安装mysql数据库
创建StatefulSets工作负载之前要建立headless服务
(1)创建headless服务
文章图片
文章图片
(2)创建mysql配置文件ConfigMaps
文章图片
[mysqld]
character-set-server=utf8
collation-server=utf8_bin
default-authentication-plugin=mysql_native_password
(3)创建mysql StatefulSets
文章图片
环境变量
文章图片
pod标签
文章图片
配置映射
文章图片
数据存储pvc
文章图片
验证
存储挂载
文章图片
文章图片
文章图片
报错处理:(在完成后面步骤时,出现问题)
上面设置的参数在初始化数据库时候不生效,会报如下错误
Unsupported charset or collation for tables
文章图片
删除重新创建数据库,更改如下
文章图片
CREATE DATABASE `zabbix` CHARACTER SET 'utf8' COLLATE 'utf8_bin';
5、安装zabbix-java-gateway
镜像:
zabbix/zabbix-java-gateway:latest
文章图片
文章图片
6、安装zabbix-server-mysql
文章图片
环境变量设置
文章图片
注意:headless直接解析到具体pod,没有集群ip地址(重新部署pod ip会变不能直接使用pod ip)
可以通过从coreDNS(在kube-system下可以获得dns地址)获取解析
命名规则:
pod名.服务名.命名空间.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
- name: ZBX_JAVAGATEWAY
value: zabbix-java-gateway.zabbix.svc.cluster.local
标签
文章图片
7、配置zabbix-web-nginx-mysql
文章图片
环境变量设置
文章图片
- 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标签
文章图片
8、zabbix-proxy-mysql部署(可选,机器多可以部署)
注:Zabbix 代理是一个可以从一个或多个被监控设备收集监控数据并将信息发送到 Zabbix 服务器的进程,本质上是代表服务器工作。所有收集到的数据都在本地缓存,然后传输到代理所属的 Zabbix 服务器
工作过程是:proxy去zabbix server获取配置信息(或者zabbix 推送信息到proxy),proxy去agent收集信息,再推送信息到zabbix server
(1)代理程序需要单独的数据库,建立数据库
a、创建headless service
文章图片
选择器
文章图片
b、创建StatefulSets
文章图片
环境变量设置
文章图片
- name: MYSQL_USER
value: zabbix
- name: MYSQL_PASSWORD
value: Smtgbk_123
- name: MYSQL_ROOT_PASSWORD
value: Smtgbk_123
pod标签设置
文章图片
存储配置
文章图片
创建数据库
文章图片
文章图片
文章图片
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
文章图片
环境变量
文章图片
- 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标签
文章图片
9、建立ingress 外部访问zabbix web
ingress控制器部署参考
https://blog.csdn.net/zyj81092211/article/details/123457197
文章图片
10、创建外部代理服务器,代理到ingress控制器
文章图片
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
文章图片
文章图片
12、连接代理服务器到zabbix-server(可选)
文章图片
文章图片
文章图片
文章图片
13、zabbix agent 被动模式部署
(1)linux下安装配置
https://repo.zabbix.com/zabbix/6.0/
安装软件源
文章图片
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请求数据
文章图片
文章图片
上面server处使用的域名在dns服务器上已经解析,解析到所有kubernetes节点
文章图片
启动
systemctl start zabbix-agent2
systemctl enable zabbix-agent2
不在server里添加域名或者ip会报如下错误
tail -f /var/log/zabbix/zabbix_agent2.log
文章图片
在zabbix server页面添加主机
文章图片
文章图片
文章图片
去zabbix proxy代理上执行
zabbix_proxy -R config_cache_reload
这个操作会去server端拉取信息
文章图片
查看主机状态为绿色客户端上线
文章图片
(2)windows客户端
客户端下载地址
开始安装
文章图片
文章图片
文章图片
文章图片
文章图片
文章图片
安装完成会在服务中出现对应的zabbix服务
文章图片
防火墙出现对应规则
文章图片
文章图片
server上添加对应主机
文章图片
文章图片
14、zabbix agent 主动模式(可选)
注:主动模式zabbix agent会主动请求zabbix server服务器,因为zabbix server部署在kubernetes集群上,不能直接访问,且有多个节点,所以设置通过代理访问
设置nodeport svc映射外网端口
文章图片
文章图片
文章图片
获得端口号31865
文章图片
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添加解析到代理服务器,保证通讯正常
文章图片
zabbix agent安装方法同13步:
配置文件中需要修改的
文章图片
server端添加主机
文章图片
添加完成后,查看已经出数
文章图片
问题:
主机这里的状态并不会变:
文章图片
15、中文图形乱码解决
下面方框是因为,中文字体的原因造成的,更换字体后就能解决
文章图片
zabbix web端容器路径里有字体
文章图片
从windows 里找中文字体,替换这个字体
文章图片
重命名一下传到nfs共享服务器里:
mount -t nfs vdfs01.wtown.com:/Kubernetes/zabbix-fonts /mnt
文章图片
把nfs共享挂载到容器里:
挂载路径:
/usr/share/zabbix/assets/fonts
【linux|zabbix server 6.0安装(rancher+kubernetes部署)】
文章图片
查看已正常显示中文
文章图片
推荐阅读
- Linux|搭建Prometheus+Grafana的云平台监控系统
- BUG|vim 出现 Another program may be editing the same file. If this is the case 的解决方法
- vue.js|vue入门开始,做完得物App的用户登录
- 云栖号技术分享|阿里云云效技术专家(一文详解kubernetes下5种常见发布模式如何选择)
- linux|NoSQL值Redis配置与优化
- kubernetes|docker-compose yaml编写
- kubernetes集群|kubernetes集群常用POD调度策略
- kubernetes|系列(5、Kubernetes中的调度)
- Linux学习|Linux学习笔记——Shell编程概述