1. 首页 > Linux教程 > 正文

Linux教程FG415-Ansible监控集成

内容简介:本文风哥教程参考Linux官方文档、Red Hat Enterprise Linux官方文档、Ansible Automation Platform官方文档、Docker官方文档、Kubernetes官方文档和Podman官方文档等内容,详细介绍了相关技术的配置和使用方法。

本文档介

风哥提示:

绍使用Ansible集成监控系统的配置方法。

Part01-Zabbix集成

1.1 部署Zabbix Agent

# Zabbix Agent部署Playbook
[root@ansible ~]# cat > /fglinux/ansible/playbooks/zabbix_agent.yml << 'EOF' --- - name: 部署Zabbix Agent hosts: all become: yes vars: zabbix_server: 192.168.1.100 zabbix_version: 6.4 agent_hostname: "{{ inventory_hostname }}" tasks: - name: 安装Zabbix仓库 dnf: name: "https://repo.zabbix.com/zabbix/{{ zabbix_version }}/rhel/9/x86_64/zabbix-release-{{ zabbix_ve学习交流加群风哥微信: itpux-comrsion }}-1.el9.noarch.rpm" state: present - name: 安装Zabbix Agent dnf: name: zabbix-agent state: present - name: 配置Zabbix Agent template: src: ../templates/zabbix_agentd.conf.j2 dest: /etc/zabbix/zabbix_agentd.conf owner: root group: root mode: '0644' backup: yes notify: Restart Zabbix Agent - name: 创建自定义监控脚本目录 file: path: /etc/zabbix/scripts state: directory owner: root group: root mode: '0755' - name: 部署自定义监控脚本 copy: src: ../files/zabbix_scripts/ dest: /etc/zabbix/scripts/ mode: '0755' - name: 配置防火墙 firewalld: port: 10050/tcp permanent: yes state: enabled notify: Reload firewalld - name: 启动Zabbix Agent service: name: zabbix-agent state: started enabled: yes - name: 验证Agent状态 command: zabbix_agentd -p register: agent_status changed_when: false - name: 显示Agent状态 debug: msg: "Zabbix Agent已启动,监听端口: 10050" handlers: - name: Restart Zabbix Agent service: name: zabbix-agent state: restarted - name: Reload firewalld service: name: firewalld state: reloaded EOF # Zabbix Agent配置模板 [root@ansible ~]# cat > /fglinux/ansible/templates/zabbix_agentd.conf.j2 << 'EOF' # Zabbix Agent配置文件 # Generated by Ansible # from:www.itpux.com.qq113257174.wx:itpux-com PidFile=/var/run/zabbix/zabbix_agentd.pid LogFile=/var/log/zabbix/zabbix_agentd.log LogFileSize=0 Server={{ zabbix_server }} ServerActive={{ zabbix_server }} Hostname={{ agent_hostname }} ListenPort=10050 ListenIP=0.0.0.0 StartAgents=3 RefreshActiveChecks=120 BufferSend=5 BufferSize=100 MaxLinesPerSecond=20 Timeout=3 AllowRoot=0 User=zabbix Include=/etc/zabbix/zabbix_agentd.d/*.conf EOF # 执行Zabbix Agent部署 [root@ansible ~]# ansible-playbook /fglinux/ansible/playbooks/zabbix_agent.yml PLAY [部署Zabbix Agent] ***************************************************** TASK [Gathering Facts] ****************************************************** ok: [web1.fgedu.net.cn] TASK [安装Zabbix仓库] ******************************************************* changed: [web1.fgedu.net.cn] TASK [安装Zabbix Agent] ***************************************************** changed: [web1.fgedu.net.cn] TASK [配置Zabbix Agent] ***************************************************** changed: [web1.fgedu.net.cn] TASK [创建自定义监控脚本目录] ************************************************ changed: [web1.fgedu.net.cn] TASK [部署自定义监控脚本] **************************************************** changed: [web1.fgedu.net.cn] TASK [配置防火墙] *********************************************************** changed: [web1.fgedu.net.cn] TASK [启动Zabbix Agent] ***************************************************** changed: [web1.fgedu.net.cn] TASK [验证Agent状态] ******************************************************** ok: [web1.fgedu.net.cn] TASK [显示Agent状态] ******************************************************** ok: [web1.fgedu.net.cn] => {
“msg”: “Zabbix Agent已启动,监听端口: 10050”
}

RUNNING HANDLER [Restart Zabbix Agent] **************************************
changed: [web1.fgedu.net.cn]

RUNNING HANDLER [Reload firewalld] ******************************************
changed: [web1.fgedu.net.cn]

PLAY RECAP ******************************************************************
web1.fgedu.net.cn : ok=10 changed=7 unreachable=0 failed=0

Part02-Prometheus集成

2.1 部署Node Exporter

# Node Exporter部署Playbook
[root@ansible ~]# cat > /fglinux/ansible/playbooks/node_exporter.yml << 'EOF' --- - name: 部署Node Exporter hosts: all become: yes vars: node_exporter_version: "1.6.0" node_exporter_port: 9100 tasks: - name: 创建prometheus用户 user: name: prometheus shell: /sbin/nologin system: yes - name: 下载Node Exporter unarchive: src: "https://github.com/prometheus/node_exporter/releases/download/v{{ node_exporter_version }}/node_exporter-{{ node_exporter_version }}.linux-amd64.tar.gz" dest: /tmp remote_src: yes - name: 安装Node Exporter copy: src: "/tmp/node_exporter-{{ node_exporter_version }}.linux-amd64/node_exporter" dest: /usr/local/bin/node_exporter mode: '0755' remote_src: yes - name: 创建systemd服务 copy: content: | [Unit] Description=Node Exporter After=network.target [Service] User=prometheus Group=prometheus Type=simple ExecStart=/usr/local/bin/node_exporter --web.listen-address=:{{ node_exporter_port }} [Install] WantedBy=multi-user.target dest: /etc/systemd/system/node_exporter.service mode: '0644' notify: Restart Node Exporter - name: 配置防火墙 firewalld: port: "{{ node_exporter_port }}/tcp" permanent: yes state: enabled notify: Reload firewalld - name: 启动Node Exporter service: name: node_exporter state: started enabled: yes daemon_reload: yes - name: 验证服务 uri: url: "http://localhost:{{ node_exporter_port }}/metrics" return_content: yes register: metrics_check until: metrics_check.status == 200 retries: 3 delay: 5 - name: 显示部署结果 debug: msg: "Node Exporter已部署,访问 http://{{ ansible_default_ipv4.address }}:{{ node_exporter_port }}/metrics" handlers: - name: Restart Node Exporter service: name: node_exporter state: restarted - name: Reload firewalld service: name: firewalld state: reloaded EOF # 执行Node Exporter部署 [root@ansible ~]# ansible-playbook /fglinux/ansible/playbooks/node_exporter.yml PLAY [部署Node Exporter] **************************************************** TASK [Gathering Facts] ****************************************************** ok: [web1.fgedu.net.cn] TASK [创建prometheus用户] *************************************************** changed: [web1.fgedu.net.cn] TASK [下载Node Exporter] **************************************************** changed: [web1.fgedu.net.cn] TASK [安装Node Exporter] **************************************************** changed: [web1.fgedu.net.cn] TASK [创建systemd服务] ****************************************************** changed: [web1.fgedu.net.cn] TASK [配置防火墙] *********************************************************** changed: [web1.fgedu.net.cn] TASK [启动Node Exporter] **************************************************** changed: [web1.fgedu.net.cn] TASK [验证服务] ************************************************************* ok: [web1.fgedu.net.cn] TASK [显示部署结果] ********************************************************** ok: [web1.fgedu.net.cn] => {
“m学习交流加群风哥QQ113257174sg”: “Node Exporter已部署,访问 http://192.168.1.20:9100/metrics”
}

RUNNING HANDLER [Restart Node Exporter] *************************************
changed: [web1.fgedu.net.cn]

RUNNING HANDLER [Reload firewalld] ******************************************
changed: [web1.fgedu.net.cn]

PLAY RECAP ******************************************************************
web1.fgedu.net.cn : ok=9 changed=6 unreachable=0 failed=0

风哥针对监控集成建议:

  • 统一监控指标标准
  • 配置合理的告警阈值
  • 实现监控数据持久化
  • 配置监控数据可视化
  • 定期检查监控状态

本文由风哥教程整理发布,仅用于学习测试使用,转载注明出处:http://www.fgedu.net.cn/10327.html

联系我们

在线咨询:点击这里给我发消息

微信号:itpux-com

工作日:9:30-18:30,节假日休息