Ansible自动化运维实战 - 详解

news/2025/9/22 13:19:06/文章来源:https://www.cnblogs.com/ljbguanli/p/19104990

Ansible自动化运维实战 - 详解

一、Ansible简介:

Ansible是一款开源的自动化运维工具,由Red Hat公司开发并维护。它通过简单的YAML语法(称为Playbook)实现配置管理、应用部署、任务自动化等功能,无需在目标主机上安装客户端,仅依赖SSH和Python即可运行。

二、安装

1.配置阿里yum源

cd /etc/yum.repos.d
mkdir repo.bak
mv /etc/yum.repos.d/ *.repo /repo.bak
sudo wget -OCentOS-Base.reo https://mirrors.aliyun.com/repo/Centos-vault-8.5.2111.repo

2.更新软件包

yum update -y

3.安装epel-release仓库

4.安装Ansible

yum -y install zabbix-agent zabbix-get zabbix-sender zabbix-server-mysql zabbix-web zabbix-web-mysql

5.查看ansible版本

6.安装设置数据库:

6.1 创建 mariadb.repo
vim /etc/yum.repos.d/mariadb.repo
写入以下内容:
[mariadb]
name = MariaDB
baseurl = https://mirrors.ustc.edu.cn/mariadb/yum/10.4/centos7-amd64
gpgkey=https://mirrors.ustc.edu.cn/mariadb/yum/RPM-GPG-KEY-MariaDB
gpgcheck=1
6.2  安装最新版本 mariadb
yum install -y MariaDB-server MariaDB-client
6.3 修改配置文件
vim /etc/my.cnf.d/server.cnf
[mysqld]
skip_name_resolve = ON          # 跳过主机名解析
innodb_file_per_table = ON      # 开启独立表空间
innodb_buffer_pool_size = 256M  # 缓存池大小
max_connections = 2000          # 最大连接数
log-bin = master-log            # 开启二进制日志
6.4 重启数据库服务
systemctl restart mariadb
mysql_secure_installation  # 初始化mariadb
6.5 创建数据库并授权账号
MariaDB [(none)]> create database zabbix character set 'utf8';  # 创建zabbix数据库
MariaDB [(none)]> grant all on zabbix.* to 'zbxuser'@'192.168.80.%' identified by '111111';										# 注意授权网段
MariaDB [(none)]> flush privileges;           # 刷新授权
6.6 导入 Zabbix 服务表
rpm -ql zabbix-server-mysql
gzip -d create.sql.gz
head  create.sql          #查看表头
mysql -uzbxuser -h192.168.37.111 -p zabbix  use zabbix;
Database changed
MariaDB [zabbix]> show tables;
+----------------------------+
| Tables_in_zabbix           |
+----------------------------+
| acknowledges               |
| actions                    |
| alerts                     |
……
| usrgrp                     |
| valuemaps                  |
+----------------------------+
127 rows in set (0.00 sec)
数据导入成功

7.配置 server 端

修改 server 端的配置文件。

cd /etc/zabbix/   #进入目录
cp zabbix_server.conf{,.bak}   #备份
vim zabbix_server.conf      # 编辑配置文件
ListenPort=10051            # 默认监听端口
SourceIP=192.168.37.111     # 发采样数据请求的 IP
7.1 Zabbix 日志

默认用文件记录,也可以发送给我们的 rsyslog 日志记录系统,如果我们选择默认,则日志存放在 LogFile=/var/log/zabbix/zabbix_server.log 中,也可以自己设置。

7.2 日志的滚动

默认值为1,表示滚动。我们设为0则表示不滚动。当数据特别多的时候,我们也可以设置成为1,然后在 Maximum size of log file in MB 设置当数据文件最大到多少时会自动滚动。

7.3 日志的级别

一共有6个级别。我们可以根据自己的需要来设置级别。其中0表示输出最少的信息,5表示输出最详细的信息,默认值为3,设置为3的话就表示,0、1、2、3四个级别都显示。考虑到生产系统中的压力时,这里的信息,如果没有必要的话,越简单越好,只要在出错的时候,我们可以依据其进行排错即可。

7.4 数据库相关的设置

DBHost=192.168.80.141           #数据库对外的主机
DBName=zabbix               #数据库名称
DBUser=zbxuser              #数据库用户
DBPassword=keer             #数据库密码
DBPort=3306                 #数据库启动端口
7.5 启动服务
systemctl start zabbix-server.service
ss -nutl |grep 10051    #产看端口
tcp    LISTEN     0      128       *:10051                 *:*
tcp    LISTEN     0      128      :::10051                :::*

8.配置 web GUI

(1)查找 web GUI 的配置文件
rpm -ql zabbix-web | less
/etc/httpd/conf.d/zabbix.conf
/etc/zabbix/web
/etc/zabbix/web/maintenance.inc.php
/etc/zabbix/web/zabbix.conf.php
/usr/share/doc/zabbix-web-3.2.6
/usr/share/doc/zabbix-web-3.2.6/AUTHORS
/usr/share/doc/zabbix-web-3.2.6/COPYING
/usr/share/doc/zabbix-web-3.2.6/ChangeLog
/usr/share/doc/zabbix-web-3.2.6/NEWS
/usr/share/doc/zabbix-web-3.2.6/README
……
(2)编辑配置文件

/etc/httpd/conf.d/zabbix.conf 文件,这个配置文件就是做映射的文件

Alias /zabbix /usr/share/zabbix     # 访问的时候要在主机后加上/zabbix来访问服务

设置时区

vim /etc/php.ini
[Date]
; Defines the default timezone used by the date functions
; http://php.net/date.timezone
date.timezone = Asia/Shanghai
(3)启动 httpd 服务
systemctl enable httpd
systemctl start httpd
(4)浏览器访问并进行初始化设置

浏览器访问http:192.168.80.141/zabbix 

默认用户名为:Admin ,密码为:zabbix ,登录后进入仪表盘

9.配置 agent 端

在被监控的主机安装好agent,设置好 server,并添加到 server 端,将其加入监控系统中。

9.1 安装 zabbix 安装源
wget https://repo.zabbix.com/zabbix/4.2/rhel/7/x86_64/zabbix-release-4.2-1.el7.noarch.rpm
rpm -ivh zabbix-release-4.2-1.el7.noarch.rpm
yum -y install epel-release.noarch
yum install zabbix-agent zabbix-sender -y
9.2 修改配置文件
9.2.1 确认配置文件
rpm -ql zabbix-agent
/etc/logrotate.d/zabbix-agent
/etc/zabbix/zabbix_agentd.conf
/etc/zabbix/zabbix_agentd.d
/etc/zabbix/zabbix_agentd.d/userparameter_mysql.conf
/usr/lib/systemd/system/zabbix-agent.service
/usr/lib/tmpfiles.d/zabbix-agent.conf
/usr/sbin/zabbix_agentd
/usr/share/doc/zabbix-agent-3.4.4
/usr/share/doc/zabbix-agent-3.4.4/AUTHORS
/usr/share/doc/zabbix-agent-3.4.4/COPYING
/usr/share/doc/zabbix-agent-3.4.4/ChangeLog
/usr/share/doc/zabbix-agent-3.4.4/NEWS
/usr/share/doc/zabbix-agent-3.4.4/README
/usr/share/man/man8/zabbix_agentd.8.gz
/var/log/zabbix
/var/run/zabbix
9.2.2 编辑配置文件
cd /etc/zabbix/
[root@node1 ~]# cd /etc/zabbix/
[root@node1 zabbix]# ls
zabbix_agentd.conf  zabbix_agentd.d
[root@node1 zabbix]# cp zabbix_agentd.conf{,.bak}   #备份
[root@node1 zabbix]# vim zabbix_agentd.conf         #编辑配置文件
Server=192.168.80.141       # 指明服务器是谁的
ListenPort=10050            # 自己监听的端口
ListenIP=0.0.0.0            # 自己监听的地址,0.0.0.0表示本机所有地址
StartAgents=3               # 优化时使用的
ServerActive=192.168.37.111 # 主动监控时的服务器
Hostname=node1.keer.com     # 自己能被server端识别的名称
9.2.3 启动服务
systemctl start zabbix-agent.service
ss -ntul |grep 10050                    #查看端口
tcp    LISTEN     0      128       *:10050                 *:*

已经开启成功就可以去 server 端添加主机了,其他主机进行同样的操作,唯一不同的就是配置文件中的 Hostname 要设为对应主机名

10 监控过程详解

(1)修改密码及中文版
(2)创建主机及主机群组

1、定义一个主机群组

2、添加主机

(3)监控项 (items)
(4)触发器(trigger)
(5)定义动作(action)

1、定义一个媒介(media)

2、定义一个动作(action)

  • 在 agent 端使用 yum 安装一下 redis:

yum install redis -y
  • 修改配置文件:

vim /etc/redis.conf
bind 0.0.0.0        #不做任何认证操作
  • 启动服务检查端口:

systemctl start redis
ss -nutlp | grep redis
tcp    LISTEN     0      128       *:6379                  *:*                   users:(("redis-server",pid=5250,fd=4))

三、Zabbix web 监控

1、介绍

(1)Web 监控

监控指定的站点的资源下载速度,及页面响应时间,还有响应代码

1、术语
  • web Scenario: web场景(站点)

  • web page :web页面,一个场景有多个页面

  • 內建key:要测一个页面,要测三个步骤(下边3个內建key)

2、内建 key
  • web.test.in[Scenario,Step,bps]:传输速率

  • web.test.time[Scenario,Step]: 响应时长

  • web.test.rspcode[Scenario,Step]:响应码

2、创建设置web场景

1、创建
2、配置 web 监测

3、查看测试

四、Zabbix 主动/被动监控介绍

被动检测:相对于agent而言;agent, server向agent请求获取配置的各监控项相关的数据,agent接收请求、获取数据并响应给server;

主动检测:相对于agent而言;agent(active),agent向server请求与自己相关监控项配置,主动地将server配置的监控项相关的数据发送给server;

主动监控能极大节约监控server 的资源。zabbix_sender 发送数据:实现人工生成数据,发给server端

  • zabbix server上的某主机上,直接定义Item时随便定义一个不与其它已有key冲突的key即可,即item type为"zabbix trapper";

  • 用法选项:

zabbix_sender
-z zabbix_server_ip
-p zabbix_server_port
-s zabbix_agent_hostname
-k key
-o value 值

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/909343.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

建筑行业能源管理破局:MyEMS 打造商业楼宇 “能耗可视化 + 智能调控” 方案

在建筑行业的可持续发展浪潮中,商业楼宇正面临着巨大的能源管理压力。高昂的运营成本、日趋严格的碳排政策以及业主与租户对舒适环境日益增长的需求,共同构成了行业必须面对的挑战。传统的能源管理方式往往依赖于人工…

【数据结构】双向链表 - 指南

【数据结构】双向链表 - 指南pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco"…

告别“能源糊涂账”:MyEMS如何帮企业把能耗数据“算明白、用到位”

对于许多企业而言,能源成本是运营中一笔不小的开支,但却常常是一笔“糊涂账”。电费账单只有一个总数,只知道“花了多少钱”,却不知道“钱花在了哪里”、“谁在用”、“什么时候用的”、“有没有浪费”。这种粗放式…

完整教程:ElasticSearch倒排索引原理

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

Windows 离线环境下使用 VS Code 连接容器 Python 环境完整指南(亲测可用)

前言 在离线服务器环境中进行 Python 开发时,如何利用 VS Code 的强大功能进行调试和开发是一个常见需求。本文将详细介绍如何在 Windows 离线环境下,通过 WSL 和 Docker 容器实现 VS Code 连接 Python 环境的完整方…

Macos 安装kali报错

执行某个安装步骤失败。您可以尝试从菜单中重新运行这个失败的项目, 或跳过它并选择其他项目。失败的步骤是:选择并安装软件 选择语言的时候选择英文就能安装了。不清楚是什么原因

负载排查和分析二

负载排查和分析二明白了,我来帮你做两件事:改进中断部分:完善硬中断、软中断触发机制和它们之间的关联关系,增加图示和说明。优化整个文档美观性:用清晰的表格、层次分明的标题、缩进流程图、代码块高亮,保证可读…

负载排查和分析三

负载排查和分析三明白了,你希望 Step1: 基础统计 能够做到真正的 闭环诊断,即不仅有指标解释,还要告诉用户:可能现象(系统表现或问题)分析工具/命令(如何收集更多数据或验证)分析方法(指标和现象的对应关系、…

完整教程:线程、进程、协程

完整教程:线程、进程、协程pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco",…

CF913G Power Substring

推歌:SPOTLIGHT HUNTER 麦晓雯联动出了,没抽到。我爸把我 75 研究卷霍霍露娜上了导致我没法免费保底。诋毁他。 洛谷传送 说回正题。设 \(a\) 有 \(n\) 位,所求的 \(a\) 在 \(2^k\) 中距离末位的位数为 \(m\),显然…

深入解析:老树发新芽:六西格玛培训为石油机械制造注入持久活力

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

YC大佬分享的 10 个 vibe coding技巧,看完收获巨大

1、当 AI 卡住的时候切换战场。 问题: 当你在使用 cursor claude code 这样的 AI 编程工具,在编程的时候,如果遇到 AI 无法实现某个功能或者无法修复某一个错误,并且反复尝试都失败(陷入逻辑死循环) 技巧: 这时…

ES集群部署-EFK架构实战 - 实践

ES集群部署-EFK架构实战 - 实践pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco&quo…

《BOE解忧实验室》第四季圆满收官 以科技重塑文化生活新范式

9月10日,由 BOE(京东方)自制的技术科普综艺节目《BOE解忧实验室》第四季迎来收官,全平台累计曝光量突破4.79亿,成为科技企业破圈营销行业示范标杆。作为中国科技企业首档技术科普综艺,本季节目以“中国地标+科技…

洛谷P2261 [CQOI2007] 余数求和

原题 题目描述 给出正整数\(n\)和\(k\), 请计算 \[G(n, k) = \sum_{i=1}^{n} k \bmod i \]其中\(k \bmod i\)表示k除以i的余数。 输入格式 输入只有一行两个整数,分别表示\(n\)和\(k\)。 输出格式 输出一行一个整数表…

负载排查和优化

负载排查和优化 Linux 网络优化与性能分析完全指南1️⃣ 中断与软中断基础 1.1 中断(IRQ)概念定义:CPU 在执行任务时,外设或内核事件请求 CPU 立即响应。作用:及时处理外设请求和系统事件,保证系统响应及时、稳定…

挑战骑行距离新记录:46公里

挑战骑行距离新记录:46公里周末要去江浦一趟,之前都是坐地铁转公交,这次突发奇想,干脆骑车去,反正时间比较充裕,于是早上8点半左右从住处出发,到中午11点53分到达,全长46公里左右(中间还走错一段路),用时3小…

arc206 总结

arc206 总结 这次前面切得比较快,然而 D 题漏了情况卡到最后也没过。E 题也属于中等难度的题。 A 枚举题目中的 \(L\),一个连续段只能有一个 \(L\),对答案的贡献为其后面不等于 \(a_L\) 的个数。 复杂度 \(O(n)\)。…

科研必读|提升酿酒酵母表达蛋白产量的关键技术

科研必读|提升酿酒酵母表达蛋白产量的关键技术酿酒酵母作为真核蛋白表达的经典宿主,其具有蛋白折叠、分泌途径、翻译后修饰(如糖基化、二硫键结合等)的能力,是许多科研与工业蛋白生产的首选平台。但实践中常遇到表…

【RK3576】【Android14】如何在Android14下单独编译kernel-6.1? - 详解

【RK3576】【Android14】如何在Android14下单独编译kernel-6.1? - 详解2025-09-22 12:41 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: au…