zabbix企业级监控平台

news2025/9/21 16:50:42

zabbix部署

安装源

重新创建纯净环境,利用base克隆一台虚拟机server1

给server1做快照,方便下次实验恢复使用

进入zabbix官网https://www.zabbix.com

rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm

#安装 Zabbix 监控系统的 YUM 软件源配置包。这个命令将会下载并安装 Zabbix 5.0 版本适用于 CentOS/RHEL 7 x86_64 系统的软件源配置文件 zabbix-release-5.0-1.el7.noarch.rpm。

官网的yum源下载速度慢,可以使用清华下载站

vim zabbix.repo

yum clean all

#清理yum的缓存,包括下载的软件包和元数据。通过运行这个命令,可以释放磁盘空间并确保系统中使用的软件包信息是最新的

yum install zabbix-server-mysql zabbix-agent

#安装Zabbix server,Web前端,agent

安装 Zabbix 前端和启用 Red Hat Software Collections:

yum install -y centos-release-scl-2-3.el7.centos.noarch.rpm  centos-release-scl-rh-2-3.el7.centos.noarch.rpm

#安装

yum repolist

#列出系统中配置的 YUM 软件源(repositories)以及它们的状态和信息

yum install zabbix-web-mysql-scl zabbix-apache-conf-scl

#安装前端界面包

tar xf mysql-5.7.33-1.el7.x86_64.rpm-bundle.tar

#解压编译好的mysql开发包

yum install -y mysql-community-client-5.7.33-1.el7.x86_64.rpm mysql-community-common-5.7.33-1.el7.x86_64.rpm mysql-community-libs-5.7.33-1.el7.x86_64.rpm mysql-community-libs-compat-5.7.33-1.el7.x86_64.rpm mysql-community-server-5.7.33-1.el7.x86_64.rpm

#安装rpm软件包,这种安装方法速度快

systemctl status mysqld

#查看mysql状态,自动创建了启动脚本

systemctl enable --now mysqld

#开机自启

grep 'temporary password' /var/log/mysqld.log

#过滤日志中记录的临时密码

mysql_secure_installation

#安全初始化,设置新密码为YQMyqm0626*

mysql -pYQMyqm0626*

#登录数据库

创建zabbix数据库:

create database zabbix character set utf8 collate utf8_bin;

#创建一个名为zabbix,字符集为utf8,校对规则为utf8_bin的数据库

create user zabbix@localhost identified by 'YQMyqm0626*';

#中创建一个名为zabbix的用户,允许该用户只能从本地主机(localhost)登录,并设置密码为YQMyqm0626*

grant all privileges on zabbix.* to zabbix@localhost;

#授予zabbix@localhost用户对zabbix数据库的全部权限

set global log_bin_trust_function_creators = 1;

#设置全局变量log_bin_trust_function_creators的值为1,允许在具有二进制日志的 MySQL 实例中创建和修改函数,而无需super权限

zcat /usr/share/doc/zabbix-server-mysql-5.0.42/create.sql.gz | mysql -uzabbix -pYQMyqm0626* zabbix

#导入数据,数据量较大,需要等待,不要中断

可使用zabbix用户身份,已经拥有所有权限

mysql> set global log_bin_trust_function_creators = 0;

#将全局变量log_bin_trust_function_creators的值设为0,禁止在具有二进制日志的 MySQL 实例中创建和修改函数,除非用户具有 SUPER 权限

vim /etc/zabbix/zabbix_server.conf

#编辑配置文件

vim /etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf

#配置zabbix前端

systemctl enable --now zabbix-server zabbix-agent httpd rh-php72-php-fpm

#设置Zabbix 服务器、Zabbix Agent、Apache(httpd)以及 PHP-FPM 服务开机自启

访问前端 http://192.168.145.11/zabbix

填写数据库连接信息

填写zabbix server信息

登陆前端的用户密码是:Admin/zabbix

修改前端语言

修改字体文件

最终指向的是DejaVu Sans 字体,是系统字体

DejaVu Sans 是一种常用的开源无衬线字体,具有良好的可读性和跨平台兼容性,适合用于屏幕显示和打印输出。通过指定这个路径,系统或应用程序可以引用并使用 DejaVu Sans 字体来显示文本内容,以确保文本在界面上能够正确显示并保持一致的外观。

cp simkai.ttf /usr/share/zabbix/assets/fonts

#将下载的楷体字体文件放到字体存储的目录中

rm -f graphfont.ttf

#删除原来的软连接

ln -s simkai.ttf graphfont.ttf

#将graphfont.ttf重新指向simkai.ttf字体文件,可以方便地引用simkai.ttf字体文件,而无需复制或移动文件内容

vim /usr/share/zabbix/include/defines.inc.php

#查看配置文件

指定了字体文件,所以做软链接指向要使用的字体文件即可,不用修改配置文件


添加agent

从母镜像base克隆两台虚拟机server2,server3,设置主机名为server2,server3,ip地址分别为192.168.145.12,192.168.145.13

1.手动添加 

scp zabbix.repo server2:/etc/yum.repos.d/

#从server1拷贝repo文件到server2 

server2:

vim /etc/yum.repo.d/zabbix.repo

yum install -y zabbix-agent

#安装zabbix-agent

vim /etc/zabbix/zabbix_agentd.conf

#编辑配置文件

systemctl enable --now zabbix-agent.service

#启动服务

server端:

2.自动发现

配置server3

scp zabbix.repo server3:/etc/yum.repos.d/

#从server2拷贝repo文件

vim /etc/zabbix/zabbix_agentd.conf

#编辑配置文件

systemctl  enable --now zabbix-agent.service

#启动服务

server端:

打开agent即可

要先启用动作再启用发现

适合通用大批量主机管理,并不具备实时性,因为有时间间隔

3.自动注册

停用自动发现规则

删除server3主机

可根据实际应用场景选择添加不同动作

systemctl restart zabbix-agent.service

#重启server3的agent服务

是由agent端完成动作,具有实时性

自动发现适合大批量通用型添加场景

4.zabbix api

Zabbix API是Zabbix监控系统提供的应用程序接口(Application Programming Interface),用于通过HTTP/HTTPS协议与Zabbix服务器进行通信。通过Zabbix API,用户可以以编程方式执行各种操作,如创建、修改和删除监控项、主机、触发器、图表等。这使得用户可以自动化监控系统的管理和配置,同时也可以将Zabbix集成到其他应用程序或工具中。

Zabbix API提供了RESTful风格的API,支持JSON和XML格式的数据交换。通过调用API方法,用户可以执行各种操作,并获取系统状态和监控数据。例如,可以使用API创建一个新的监控项,获取主机的当前状态,或者检索触发器的历史数据。

使用Zabbix API,用户可以根据自己的需求开发自定义的监控解决方案,或者集成Zabbix监控系统到其它自动化工具和流程中,从而实现更高效的监控管理和自动化运维。

curl -s -X POST http://192.168.145.11/zabbix/api_jsonrpc.php -H 'Content-Type: application/json-rpc' -d '
{
    "jsonrpc": "2.0",
    "method": "user.login",
    "params": {
        "user": "Admin",
        "password": "zabbix"
    },
    "id": 1,
    "auth": null
}' | python -m json.tool

#获取token值

{
    "id": 1,
    "jsonrpc": "2.0",
    "result": "1e4cc57eb1e0583ff63ef25cfdbb581c"
}

#认证后获取的token值

也可将curl命令写入脚本,添加可执行权限,执行脚本即可获得token值

检索主机:

#执行查询操作,获取主机信息以及它们的接口信息

删除主机

删除server3主机,id为10440

修改脚本内容为删除10440主机

./zabbix-api.sh

#执行

创建主机

生效

在生产环境更加适用


服务监控

1.nginx监控 

在server2安装nginx

使用nginx-1.23.3版本

tar zxf nginx-1.23.3.tar.gz

#解压

yum install -y gcc make openssl-devel pcre-devel

#安装依赖性

./configure  --with-http_stub_status_module --with-http_ssl_module

#配置

不指定安装路径,也自动安装到了/usr/local/nginx

make

#编译

make install

#安装

ln -s /usr/local/nginx/sbin/nginx  /usr/local/bin/

#创建软连接,便于启动

vim /usr/local/nginx/conf/nginx.conf

#编辑配置文件,配置stub_status模块

#访问/basic_status路径时,Nginx会返回服务器的简单状态信息

nginx

#启动服务

curl  localhost/basic_status

#访问本地/basic_status,获取服务器简单信息

多次访问

监控显示:

稍作等待,监控数据就会出现,采集数据有一定的时间间隔

在官方文档查看zabbix安装要求

数据库要求:

可根据主机所有监控项换算所需的磁盘大小

2.mysql监控

zabbix自带mysql模板 

为zabbix server链接mysql监控模板

拷贝模板:

cp /usr/share/doc/zabbix-agent-5.0.42/userparameter_mysql.conf /etc/zabbix/zabbix_agentd.d/

#拷贝

创建数据库连接用户

GRANT REPLICATION CLIENT,PROCESS,SHOW DATABASES,SHOW VIEW ON *.* TO 'zbx_monitor'@'%';

#授予了'zbx_monitor'用户在所有数据库上执行以下操作的权限

  • REPLICATION CLIENT: 允许用户查看关于复制的信息,例如主从复制状态。
  • PROCESS: 允许用户查看当前正在执行的进程。
  • SHOW DATABASES: 允许用户查看所有数据库的列表。
  • SHOW VIEW: 允许用户查看数据库中的视图。

这个语句中的*.*表示所有数据库和所有表。'zbx_monitor'@'%'指定了用户的用户名为'zbx_monitor',并且可以从任何主机(%表示任何主机)连接到MySQL服务器。

创建数据库连接文件

mkdir /var/lib/zabbix/

vim /var/lib/zabbix/.my.cnf

systemctl restart zabbix-agent.service

#重启agent

查看mysql监控

percona数据库模板

清理掉原来模板

rpm -ivh percona-zabbix-templates-1.1.8-1.noarch.rpm

#安装 Percona 提供的 Zabbix 模板包

  • -ivh: 这三个选项分别代表:
    • -i: 安装一个新的软件包。
    • -v: 在安装过程中显示详细信息,即 verbose 模式。
    • -h: 在显示安装进度条时,以 hash 标识进度。

cd /var/lib/zabbix/percona/templates

cp userparameter_percona_mysql.conf /etc/zabbix/zabbix_agentd.d/

#拷贝模板,存放key/value

rm -f /etc/zabbix/zabbix_agentd.d/userparameter_mysql.conf

#删除原来的模板

现在模板内容更多

systemctl restart zabbix-agent.service

#重启agent

cd /var/lib/zabbix/percona/scripts/

vim ss_get_mysql_stats.php

#编辑php脚本

ln -s /opt/rh/rh-php72/root/usr/bin/php /usr/bin/php

#创建软连接,方便调用php

/var/lib/zabbix/percona/scripts/get_mysql_stats_wrapper.sh gg

#运行脚本

运行该脚本加上键值gg是获取mysql的key-read-requests指标

有数据显示就表示正常

数据已经做过格式化,key/value机制

此时缓存文件是root身份创建的,最终要实现zabbix用户自行创建

rm -f localhost-mysql_cacti_stats.txt

#删除/tmp下的缓存文件,如果不删除后期则zabbix用户无法修改文件

导入模板文件

等待监控数据生成

3.tomcat监控

yum install -y java-1.8.0-openjdk.x86_64

#安装java openjdk软件包

tar zxf apache-tomcat-8.5.24.tar.gz -C /usr/local

#解压tomcat软件压缩包

cd /usr/local/

ln -s apache-tomcat-8.5.24/ tomcat

#创建软链接

cd /usr/local/tomcat/bin/

vim catalina.sh

#编辑tomcat启动脚本

CATALINA_OPTS='-Dcom.sun.management.jmxremote.port=8888

-Dcom.sun.management.jmxremote.ssl=false

-Dcom.sun.management.jmxremote.authenticate=false'

#配置 Apache Tomcat 服务器的 JMX 远程管理功能,指定 JMX 远程管理的端口为8888

./startup.sh

#启动tomcat服务器

服务不能all in一台服务器

在server1安装java网关:

yum install -y zabbix-java-gateway

#安装zabbix-java-gateway,作为一个中间件,连接 Zabbix Server 和监控的 Java 应用程序之间的通信

systemctl  enable --now zabbix-java-gateway.service

#启动服务

vim /etc/zabbix/zabbix_server.conf

#修改zabbix server配置文件

StartJavaPollers 用于处理 Java 监控数据的 Java Poller 进程的数量。Java Poller 负责从 Java 应用程序中收集监控数据并将其传递给 Zabbix Server。通过设置该参数,可以控制并发处理的 Java 监控数据的数量。在这里,设置为 5,表示启动 5 个 Java Poller 进程

systemctl  restart zabbix-server.service

#重启server

server端:

等待配置

有监控数据生成

4.集成告警平台

睿象云-智能运维找睿象

注册以后创建appkey,按照文档配置探针

部署探针:

cd /usr/lib/zabbix/alertscripts

#切换到zabbix脚本目录

wget https://download.aiops.com/ca_agent/zabbix/ca_zabbix_release-4.0.3.tar.gz

#获取Cloud Alert Agent包

wget命令是一个在Linux和类Unix操作系统中经常使用的网络命令,用途是从指定的URL下载文件。它支持HTTP、HTTPS和FTP协议,支持断点续传,可以下载整个网站

tar xf ca_zabbix_release-4.0.3.tar.gz

#解压

cd cloudalert/bin

./install.sh fd654cbe71c44c28b6155e5862002334

#安装

chown zabbix.zabbix cloudalert/ -R

#将cloudalert/探针目录的所有人和所有组都设为zabbix,保证运行zabbix服务的权限和cloudalert探针目录的权限保持一致

配置通知策略:

app通知需下载app,微信通知需绑定微信公众号

测试:

停止server2的agent服务

被认领

再次启动agent

[root@server2 ~]# systemctl start zabbix-agent.service

平台显示解决

实际生产过程中还可开启智能降噪功能,可智能筛掉无用通知

分布式监控

agent 主动方式

目前模板是server端主动连接agent端10050端口(常规)

Template App Nginx by Zabbix agent

也可以agent主动将数据回传给server端10051口,降低了server端的性能开销

Template App Nginx by Zabbix agent active

zabbix proxy

删除server2 agent作为proxy节点

在三台机器添加本地解析

vim /etc/hosts

yum install zabbix-proxy-mysql

#安装proxy软件

在server1数据库中:

mysql> FLUSH PRIVILEGES;

#重新加载授权表

[root@proxy ~]# cd /usr/share/doc/zabbix-proxy-mysql-5.0.42/

scp schema.sql.gz server1:

#从proxy拷贝数据库文件

该文件用于创建数据库的结构(schema),包括表、视图、索引等的定义

zcat schema.sql.gz | mysql -uzabbix -pYQMyqm0626* zabbix_proxy

#使用zcat解压文件后输出到mysql的zabbix_proxy库中

[root@proxy ~]# vim /etc/zabbix/zabbix_proxy.conf

#编辑proxy配置文件

server端创建proxy

为主机配置代理:

systemctl  restart zabbix-proxy.service

#重启proxy服务

cat /var/log/zabbix/zabbix_proxy.log

#查看日志

[root@server3 ~]# vim /etc/zabbix/zabbix_agentd.conf

#修改agent配置,指向proxy地址

cat /var/log/zabbix/zabbix_agentd.log

#查看日志无报错

监控可用

zabbix瓶颈可能在于数据库,随着监控数据的采集存储,监控项越来越多,对数据库性能的要求会越来越高

推荐TIDB数据库将mysql数据迁移到TIDB,可实现分布式

完成这部分学习可以尝试使用ansible自动化运维工具搭建起整个lnmp架构或者监控平台

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

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

相关文章

Idea集成Docker的快捷部署

Idea集成Docker的快捷部署 配置Docker远程访问1.1 修改 `/lib/systemd/system/docker.service`1.2 替换`ExecStart`1.3 重启docker服务1.4 监听端口是否被占用1.5 服务器防火墙开启2375端口1.6 测试配置IDEA2.1 下载docker插件2.2 添加docker连接2.3 配置容器镜像加速器2.4 配置…

SQL注入sqli_labs靶场第二题

解题思路与第一题相同 ?id1 and 11 和?id1 and 12进行测试如果11页面显示正常和原页面一样,并且12页面报错或者页面部分数据显示不正常,那么可以确定此处为数字型注入。 联合查询: 猜解列名数量:3 ?id1 order by 4 判断回显…

南京航空航天大学-考研科目-513测试技术综合 高分整理内容资料-01-单片机原理及应用分层教程-单片机有关常识部分

系列文章目录 高分整理内容资料-01-单片机原理及应用分层教程-单片机有关常识部分 文章目录 系列文章目录前言总结 前言 单片机的基础内容繁杂,有很多同学基础不是很好,对一些细节也没有很好的把握。非常推荐大家去学习一下b站上的哈工大 单片机原理及…

【STL】list

目录 1. list的使用 1.1 list的构造 1.2 list iterator的使用 1.3 list capacity 1.4 list element access 1.5 list modifiers 1.6 list的迭代器失效 2. list的模拟实现 3. list与vector的对比 1. list的使用 1.1 list的构造 1.2 list iterator的使用 1. begin与end为…

性能优化原则

相关链接:【运行环境】加载资源的形式 性能优化 1 性能优化原则 多使用内存、缓存或其他方法 减少CPU计算量,减少网络加载耗时 (适用于所有编程的性能优化----空间换时间) 2 从何入手 性能优化-让加载更快 减少资源体积&#x…

java程序生成exe文件启动时,在没有java环境计算机运行

1.idea项目配置工件 2. 开始构建java程序成jar包 3. 生成exe启动程序 注:下面的输入框中写错了,应该是.\jre才对 4. 在已经选择的生成exe存放文件夹找到已经生成exe启动程序

你不可不知的5款小众神器

Hey小伙伴们👋,是不是还在为工作中的效率不高而烦恼呢?别急,今天我就给大家安利5款超实用的国产小众工作效软件,让你的工作台效率翻倍,轻松应对各种工作挑战!🌟 1️⃣ 亿可达 ycoda…

nexus搭建maven与docker镜像的私有仓库

引言 通过nexus搭建maven与docker镜像的私有仓库,实现jar包与镜像动态更新、共享、存储。 一、nexus部署 通过docker-compose部署nexus name: java services:#############################环境#############################env-nexus:restart: always## 3.58.1image: so…

Linux CPU利用率

Linux CPU利用率 在线上服务器观察线上服务运行状态的时候,绝大多数人都是喜欢先用 top 命令看看当前系统的整体 cpu 利用率。例如,随手拿来的一台机器,top 命令显示的利用率信息如下 这个输出结果说简单也简单,说复杂也不是那么…

技术解析:应对国内大流量攻击的新挑战与分布式清洗防御策略

近日,国内网络环境中出现的大流量攻击事件频发,且攻击规模呈指数级增长,部分攻击流量甚至超过了1.5Tbps。 这背后的主要原因是攻击者利用海外流量资源,通过复杂的网络技术和协议转换,将国际IPv4/IPv6流量巧妙伪装并转…

4.1Python的流程控制语句之分支语句

流程控制语句是计算机编程中用于控制程序执行流程的语句。它们允许根据条件来控制代码的执行顺序和逻辑,从而使程序能够根据不同的情况做出不同的决策。流程控制实现了更复杂和灵活的编程逻辑。 顺序语句 顺序语句是按照编写的顺序依次执行程序中的代码。代码会按照…

【测试开发学习历程】python迭代、可迭代对象、迭代器、生成器

1 迭代Iteration 迭代Iteration:所谓迭代就是重复运行一段代码语句块的能力,就好比在一个容器中进行一层一层遍历数据,在应用过程中for循环最为突出。迭代就是从某个容器对象中逐个地读取元素,直到容器中没有元素为止。迭代迭代&…

利用强化学习训练“井字棋”下棋策略的详细介绍

文章目录 1. 引言2. 基本要素2.1 棋盘状态2.2 智能体(棋手)2.3 用户交互接口 3. 训练过程3.1 模拟对弈过程3.2 策略的训练及检验3.3 用户实践 本篇文章的强化学习例子的完整代码来自刘建平老师的Github仓库。 1. 引言 井字棋游戏(Tic-Tac-T…

GitLab教程(一):安装Git、配置SSH公钥

文章目录 序一、Git安装与基本配置(Windows)下载卸载安装基本配置 二、SSH密钥配置 序 为什么要使用代码版本管理工具: 最近笔者确实因为未使用代码版本管理工具遇到了一些愚蠢的问题,笔者因此认为代码版本管理工具对于提高团队…

每日Bug汇总--Day03

Bug汇总—Day03 一、项目运行报错 二、项目运行Bug 1、问题描述:Vue前端项目运行后台管理平台订单管理页面下的三个子页面出现点击不同的路由还是会出现相同的页面,导致页面和数据不匹配 解决办法: 在监听器中添加状态来根据路由地址变化…

2024地平线古月居核心开发者招募

2024地平线&古月居核心开发者招募 机器人,作为一个集成了多学科技术的复杂系统,其开发过程充满了挑战。为了帮助开发者们更好地克服这些挑战,提升项目的开发效率和质量,我们特别推出了[2024地平线&古月居核心开发者招募]…

【Gem5】获取构建教程

gem5-tutorial-hpca-2023 1 介绍 1.1 Gem5是什么1.2 Gem5可以用来做什么1.3 获取并构建gem5 gem5-tutorial-hpca-2023 打开网址: github 创建教程代码空空间 “Code” -> “Codespaces” -> “Create Codespace on master” GitHub Codespaces 是一个由…

DSP笔记6-C2000的中断机制

中断Interrupt: 单核CPU顺序执行程序 中断源,引起计算机中断的时间,解放cpu,提高效率。 三个等级:CPU中断,PIE中断,外设中断 cpu定时器,EPWM,ADC,eCAP&…

git bash用法-批量修改文件名

在win系统上安装git bash可以使用命令行模式操作,比较方便 1.原始文件名 2.代码 for file in *3utr*; do mv "$file" "$(echo "$file" | sed s/3utr/5utr/)"; done3.修改后的文件名

PS入门|学PS一定要先知道图层这玩意儿

前言 开始学习PS的小伙伴肯定是会遇到很多问题,最常见的莫过于为啥我调整了某些参数之后,并没有任何作用。 这个就涉及到图层的问题了。 学PS一定要知道,图层面板怎么看。 正文开始 首先咱们讲的图层面板基本上是在PS里100%会用到的功能。…