LInux环境下使用Ansible批量部署zabbix-agent【2024.09.18更新,最新部署步骤,超级详细】

本篇文章详细写了从配置SSH无密链接,到ansible批量部署zabbix-agent,最后在server端成功配置并实现监控


接上篇文章:
Linux环境部署zabbix-server监控机 【2024.09.18最新步骤,超级详细】

一、修改zabbix-agent的hostname

三台zabbix-agent均需要修改,下面是修改其中一台用到的命令,其它两台类似,修改下名字即可

hostnamectl set-hostname zabbix-agent01
systemctl restart network

查看修改后的hostname

hostname

二、配置SSH无密码登录

为确保 zabbix-server01 可以通过 SSH 无密码登录到所有 zabbix-agent 机器,需要生成和分发SSH秘钥:

1 生成秘钥

在zabbix-server01上生成SSH密钥对

ssh-keygen -t rsa -b 2048

按照提示进行操作,一直回车使用默认路径和不设置密码

image-20240914145617713

2 分发公钥

将公钥复制到 zabbix-agent 机器

ssh-copy-id [email protected]
ssh-copy-id [email protected]
ssh-copy-id [email protected]

image-20240914145835258

需要输入yes 和每个 zabbix-agent 机器的 root 密码。

3 验证无密码登录

zabbix-server01 上尝试通过 SSH 登录到每个 zabbix-agent 机器,确保无密码登录成功

ssh [email protected]
ssh [email protected]
ssh [email protected]

image-20240914150042664

使用ssh无密码连接后,可以看到成功登录zabbix-agent机器,使用Ctrl+D退出当前登录

验证完成后进行下一步操作

三、安装并配置Ansible

1 安装

zabbix-server01上安装本次批量部署用到的工具Ansible

yum install -y ansible

如果下载失败,请安装epel后再执行上述命令

yum install epel-release -y

2 配置 Ansible 使用 SSH 密钥

修改Ansible的配置文件,使用vim的搜索的功能,快速查找字段所在位置进行修改

vim /etc/ansible/ansible.cfg
[defaults]
inventory = /etc/ansible/hosts
remote_user = root

[ssh_connection]
ssh_args = -o StrictHostKeyChecking=no

image-20240914150612269

image-20240914150705412

3 配置 Ansible 主机文件

vim /etc/ansible/hosts 

# 在配置文件的最下方添加以下配置
[zabbix_agents]
192.168.138.121
192.168.138.122
192.168.138.123

image-20240914150937703

测试zabbix-server01是否能与zabbix-agents通过SSH免密连通

ansible all -m ping

成功如下图所示

image-20240914151154941

4 创建 Ansible Playbook

zabbix-server01 上创建一个目录来存放 Ansible Playbook 文件:

mkdir -p ~/ansible/zabbix
cd ~/ansible/zabbix

创建一个名为 install_zabbix_agent.yml 的 Playbook 文件:

vim install_zabbix_agent.yml
---
- hosts: zabbix_agents
  become: yes
  tasks:
    - name: 添加 Zabbix 官方仓库
      yum:
        name: https://repo.zabbix.com/zabbix/6.0/rhel/7/x86_64/zabbix-release-6.0-2.el7.noarch.rpm
        state: present

    - name: 安装 Zabbix Agent
      yum:
        name: zabbix-agent
        state: present

    - name: 创建日志和 PID 文件目录
      file:
        path: /run/zabbix
        state: directory
        owner: zabbix
        group: zabbix

    - name: 创建日志目录
      file:
        path: /var/log/zabbix
        state: directory
        owner: zabbix
        group: zabbix

    - name: 配置 Zabbix Agent
      template:
        src: zabbix_agentd.conf.j2
        dest: /etc/zabbix/zabbix_agentd.conf

    - name: 启动并启用 Zabbix Agent 服务
      systemd:
        name: zabbix-agent
        state: started
        enabled: yes

5 创建模板文件

在同一目录下创建一个名为 zabbix_agentd.conf.j2 的模板文件:

vim zabbix_agentd.conf.j2
LogType=file
LogFile=/var/log/zabbix/zabbix_agentd.log
PidFile=/run/zabbix/zabbix_agentd.pid
Server=192.168.138.134
ServerActive=192.168.138.134
Hostname={
    
    {
    
     inventory_hostname }}

6 运行 Ansible Playbook

zabbix-server01 上运行以下命令来执行 Playbook:

ansible-playbook install_zabbix_agent.yml

运行成功后如图所示

image-20240914154238164

7 检查部署结果

ansible zabbix_agents -m shell -a 'systemctl status zabbix-agent'

image-20240914154337254

四、zabbix的web页面配置

添加主机,并添加监控模板

image-20240914154905077

填写主机名称、模版、群组、客户端IP

  • 主机名称一般使用主机名+IP
  • 模版选择

image-20240914155509881

image-20240914155538499

image-20240914155601271

  • 群组选择

image-20240914155812496

image-20240914155930283

返回主界面,**稍等1分钟,**可以发现agent已经在线,可用状态

点击检测,最新数据,可以看到已经获取的最新数据

image-20240914160329554

至此,一台agent在server端配置完毕,剩下两台如法炮制

配置完成后,可以在主界面看到主机数量

image-20240914160810073

配置完成后,我们来学习如何实现zabbix将预警信息,自动发送至钉钉群:
实现zabbix6.0自动上报预警信息到钉钉群

转载请标明出处
如果还有问题,欢迎在评论区留言或私信
作者:BQ
主页:https://blog.csdn.net/weixin_52677672?type=blog
qq群:958124241
Learn Together!

猜你喜欢

转载自blog.csdn.net/weixin_52677672/article/details/142323259