Ansible安装zabbix-agent2;Zabbix6监控docker。

背景

使用ansible最终目标都是形成ansible-playbook和playbook脚本便于批量配置管理目标服务器群。
但在写脚本之前通常需要快速验证各个steps的是否正常可用,每次在ide工具中修改playbook经过上传、执行等几个步骤都比较费时间。因此可以先用ansible而不是ansible-playbook命令快速验证相关steps是否正常可用。最终再去汇总统一的playbook脚本。

需求

已有环境:

  1. 一台 zabbix-server6.4,安装在RockyLinux9上。
  2. 一套3节点K8S集群,安装在CentOS 7.6上,其上运行了测试应用(容器运行时使用的是docker而不是containerd)。
  3. 均可访问外网。

目标:

  1. zabbix-server配置自动发现,当监听到20050端口时,创建主机并关联Linux和Docker模板。
  2. 先用ansible命令对该3台服务器安装zabbix-agent2,并修改配置(端口监听、server地址)。
  3. 最后通过ansible-playbook形成playbook脚本归到自己的运维项目中。

实际操作

Ansible配置需要被监控的目标机器。

创建一个最简单的目标服务器列表文件:

vim 431081.ini
[all]
10.43.10.81
10.43.10.82
10.43.10.83

检查是否安装了zabbix-agent2

ansible -i 431081.ini all -m ping -k
ansible -i 431081.ini all -m shell -a "rpm -qa |grep zabbix"
ansible -i 431081.ini all -m shell -a "yum search zabbix-agent2"
ansible -i 431081.ini all -m shell -a "yum install -y zabbix-agent2"

ansible命令不方便在目标机器上远程执行涉及“换行”的创建文件的操作,因此现在ansible本机上创建zabbix-agent2的repo文件,然后再通过copy模块复制到目标机器上。
创建zabbix-agent2仓库文件。

cat <<EOF >zabbixAgent2.repo
[zabbixAgent2]
name=Zabbix Official Repository - $basearch
baseurl=https://repo.zabbix.com/zabbix/6.4/rhel/7/\$basearch/
enabled=1
gpgcheck=0
EOF

将本地仓库文件复制到目标机器,使用yum模块安装,使用shell模块检查安装情况。

ansible -i 431081.ini all -m copy -a "src=/root/zabbixAgent2.repo dest=/etc/yum.repos.d/" -k
ansible -i 431081.ini all -m shell -a "ls -l /etc/yum.repos.d/" -k
ansible -i 431081.ini all -m yum -a "name=zabbix-agent2 state=present" -k
ansible -i 431081.ini all -m shell -a "rpm -qa |grep zabbix-agent2" -k

安装成功后,通过sed命令修改zabbix-agent2的配置文件,关键配置为:监听端口、server地址。然后启动服务即可。

ansible -i 431081.ini all -m shell -a "sed -i 's/^ServerActive=127.0.0.1/ServerActive=10.42.40.43/' /etc/zabbix/zabbix_agent2.conf"
ansible -i 431081.ini all -m shell -a "sed -i 's/^Server=127.0.0.1/Server=10.42.40.43/' /etc/zabbix/zabbix_agent2.conf"
ansible -i 431081.ini all -m shell -a "sed -i '/### Option: ListenPort/a\ListenPort=20050' /etc/zabbix/zabbix_agent2.conf" -k
ansible -i 431081.ini all -m shell -a "cat /etc/zabbix/zabbix_agent2.conf |grep -v ^#|grep -v ^$" -k
ansible -i 431081.ini all -m service -a "name=zabbix-agent2 state=started enabled=yes" -k

在web界面配置zabbix自动发现及关联动作

创建自动发现规则,如下图:
在这里插入图片描述
创建发现动作,自动关联监控模板,如下图
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
检查自动发现规则是否生效,等待监控主机的自动创建。
在这里插入图片描述
在这里插入图片描述
若存在问题,则从server端、agent端的日志进行排查。

问题

问题一:无法获取docker相关监控数据。

监控项中,无法取得docker模板中的数据,原因是docker.sock没有操作权限。
修改权限即可。

ansible -i 431081.ini all -m shell -a "ls -l /var/run/docker.sock" -k
ansible -i 431081.ini all -m shell -a "chmod 777 /var/run/docker.sock" -k
ansible -i 431081.ini all -m shell -a "ls -l /var/run/docker.sock" -k

在这里插入图片描述
在这里插入图片描述

问题二:zabbix-server异常关闭

问题表现:因为K8S集群上运行的应用容器很多,导致单台监控主机存在5-6千个监控项,因此zabbix-server默认的缓存太小,导致server出现内存溢出报错并停止运行,重启zabbix-server也依然报错。
解决:修改zabbix-server的配置文件后,重新启动zabbix-server即可。
在这里插入图片描述
在这里插入图片描述
##结束

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值