监控系统-zabbix

监控系统–zabbix

为了保证集群的健康,我们需要检测服务器的状态,就有了监控系统,专门来监控服务器的状态,

当服务器状态出现问题,可以用告警的形式来提示运维人员

服务器上部署的关键的业务组件:nginx,mysql等等,如果出现故障,他也可以提示给用户,可以让用户尽快的处理问题,监控系统只能发现,不能处理

zabbix是什么;

zabbix是基于web页面的(可视化系统),分布式的系统监控和网络监控的企业级的开源监控方案

zabbix功能:

1、可以监控服务器关键硬件的状态

2、可以监控服务器的关键指标

3、可以监控服务器上的关键应用的状态

4、可以监控网络设备(路由器,交换机等等)

5、关于监控容器(zabbix5开始可以兼容容器的监控,但是效果不是很好,目前监控容器的主流还是普罗米修斯)

zabbix的组件

C/S模式:client server服务端和客户端,zabbix sever 和zabbix-agent

c/s模式是一个数据采集的模式,客户端把数据发送给服务端

B/S:browser/server 浏览器和服务端,浏览器访问服务端的内容

b/s提供的是数据的展示和相关的监控项的配置

zabbix server 服务端

zabbix-agent 客户端

zabbix proxy 服务端的代理服务器,可以代替服务端收集客户端的数据,然后转发给服务端,降低服务端直接收集客户端数据带来的系统压力

zabbix get:zabbix的命令行工具

配置

test1 192.168.42.23 zabbix-server

test2 192.168.42.21 zabbix-agent2 zabbix-proxy

test3 192.168.42.22 zabbix-agent2

qq邮箱的smtp不支持zabbix6

126网易 做smtp服务器

test1 192.168.42.23
wget https://repo.zabbix.com/zabbix/6.4/ubuntu/pool/main/z/zabbix-release/zabbix-release_6.4-1+ubuntu22.04_all.deb
dpkg -i zabbix-release_6.4-1+ubuntu22.04_all.deb
apt install zabbix-server-mysql zabbix-frontend-php zabbix-apache-conf zabbix-sql-scripts zabbix-agent -y
apt install mariadb-server -y
mysql_secure_installation
mysql -u root -p123456
create database zabbix character set utf8mb4 collate utf8mb4_bin;
create user zabbix@localhost identified by 'zabbix';
grant all privileges on zabbix.* to zabbix@localhost;
flush privileges;
exit
zcat /usr/share/zabbix-sql-scripts/mysql/server.sql.gz | mysql -u root -p123456 zabbix
vim /etc/zabbix/zabbix_server.conf
第129行去掉注释
systemctl restart zabbix-server zabbix-agent apache2
cd /usr/share/zabbix/assets/fonts
把simkai.ttf拖进来
cp /usr/share/zabbix/include/defines.inc.php 
vim /usr/share/zabbix/include/defines.inc.php
第89行
simkai
第147行
simkai
vim /etc/zabbix/zabbix_agentd.conf
117行
Server=192168.42.20
171行
ServerActive=192168.42.20
181行注释掉的Hostname删掉
Hostname=test1
vim /etc/hosts
systemctl restart zabbix-agent.service
apt -y install zabbix-get
zabbix_get -s '192.168.42.20' -p 10050 -k 'agent.ping'


test2 客户端
wget https://repo.zabbix.com/zabbix/6.4/ubuntu/pool/main/z/zabbix-release/zabbix-release_6.4-1+ubuntu22.04_all.deb
dpkg -i zabbix-release_6.4-1+ubuntu22.04_all.deb
apt-get update
apt -y install zabbix-agent2
systemctl status zabbix-agent
vim /etc/zabbix/zabbix_agent2.conf
80行
Server=192168.42.20
133行
ServerActive=192168.42.20
144行注释掉的Hostname删掉
Hostname=test2
vim /etc/hosts
systemctl restart zabbix-agent2.service
netstat -antp | grep  10050

zabbix可用性:

zbx:监控服务器设备的网络,以及服务器监控状态,以及告警

jmx:开发人员监控java应用程序使用的组件

snmp:监控网络设备

ipmi:通过网络管理服务器的电源,温度,风扇速度等等,

zabbix监控原理

zabbix的监控的原理:
模板------监控项------触发器------实现监控(脚本的实现)。

Zabbix的监控原理:

模板:定义监控的框架和配置。
监控项:具体的监控对象或指标。
触发器:定义何时触发报警或动作的条件。
实现监控(脚本的实现):通过脚本来实现具体的监控功能和响应

监控模式

zabbix的主动模式和被动模式,主动模式和被动模式都是对于客户端而言
主动模式:客户端主动将数据发送给server或者代理服务器
被动模式:服务端或者代理主动去找客户端索要数据,被动模式是默认的,被动模式在成规模的集群,都是由服务端主动去找的,那么服务端的压力会很大

自动发现

自动发现:服务端可以自动发现客户端,并且把客户端添加到监控组当中去

服务端
curl -s -X POST -H 'Content-Type:application/json' -d '
#post:服务器的后台发送数据
#Content-Type:application/json:发送的应用数据格式是json
{
    "jsonrpc": "2.0",
    "method": "user.login",
    "params": {
        "username": "Admin",
        "password": "zabbix"
    },
    "id": 1
}' http://192.168.42.10/zabbix/api_jsonrpc.php
curl -s -X POST -H 'Content-Type:application/json' -d '
{
  "jsonrpc": "2.0",
  "method": "host.create",#定义请求的方法,方法很多,创建主机
  "params": {
     "host": "test3",#定义客户端的主机名
     "interfaces": [#定义监控的类型和客户端的信息
       {
         "type": 1,#类型为1 agent 2 snmp 3 umpi 4
         "main": 1,#调用主接口
         "useip": 1,#0使用dns解析主机名1,表示使用ip地址
         "ip": "192.168.42.12",#客户端的ip地址
         "dns": "",
         "port": "10050"#客户端的端口
       }
   ],
   "groups": [
      {
         "groupid": "2"#所属的主机组id
        }
   ],
   "templates": [
   {
        "templateid": "10001"#所属的模版id
   }
   ]
},
"auth": "41cac7c950bcbe28183ad3b33b7b500f",
"id": 1
}' http://192.168.42.10/zabbix/api_jsonrpc.php | python3 -m json.tool

代理

代理服务器
wget https://repo.zabbix.com/zabbix/6.4/ubuntu/pool/main/z/zabbix-release/zabbix-release_6.4-1+ubuntu22.04_all.deb
apt-get update
dpkg -i zabbix-release_6.4-1+ubuntu22.04_all.deb
apt install -y zabbix-proxy-mysql zabbix-get zabbix-sql-scripts
apt install -y mariadb-server
mysql_secure_installation 
#数据库初始化
mysql -u root -p123456
CREATE DATABASE zabbix_proxy character set utf8 collate utf8_bin;
GRANT all ON zabbix_proxy.* TO 'zabbix'@'%' IDENTIFIED BY 'zabbix';
flush privileges;
exit
cat /usr/share/zabbix-sql-scripts/mysql/proxy.sql | mysql -u root -p123456 zabbix_proxy
vim /etc/zabbix/zabbix-porxy.conf
第32行
Server=192.168.42.10
42行
Hostname=test4
194行
DBPassword=zabbix
systemctl  restart zabbix-porxy
curl -s -X POST -H 'Content-Type:application/json' -d '
{
  "jsonrpc": "2.0",
  "method": "host.create",
  "params": {
     "host": "test3",
     "proxy_hostid": "10635",
     "interfaces": [
       {
         "type": 1,
         "main": 1,
         "useip": 1,
         "ip": "192.168.42.12",
         "dns": "",
         "port": "10050"
       }
   ],
   "groups": [
      {
         "groupid": "2"
        }
   ],
   "templates": [
   {
        "templateid": "10001"
   }
   ]
},
"auth": "41cac7c950bcbe28183ad3b33b7b500f",
"id": 1
}' http://192.168.42.10/zabbix/api_jsonrpc.php | python3 -m json.tool

批量添加主机

批量添加主机依靠shell脚本实现

主服务器
cd /opt
vim zd.sh
#!/bin/bash
ip="
192.168.42.11
192.168.42.12"
for i in $ {ip}
do
#获取主机名
hostname=$(nslookup ${i} | awk '{print $4}' | sed 's/\.//')
curl -s -X POST -H 'Content-Type:application/json' -d '
{
  "jsonrpc": "2.0",
  "method": "host.create",
  "params": {
     "host": "'${hostname}'",
     "interfaces": [
       {
         "type": 1,
         "main": 1,
         "useip": 1,
         "ip": "'${i}'",
         "dns": "",
         "port": "10050"
       }
   ],
   "groups": [
      {
         "groupid": "2"
        }
   ],
   "templates": [
   {
        "templateid": "10001"
   }
   ]
},
"auth": "41cac7c950bcbe28183ad3b33b7b500f",
"id": 1
}' http://192.168.42.10/zabbix/api_jsonrpc.php | python3 -m json.tool
done
保存退出

批量代理添加主机

#!/bin/bash
ip="
192.168.42.11
192.168.42.12"
for i in ${ip}
do
        hostname=$(nslookup ${i} | awk '{print $4}' | sed 's/\.//' )
        curl -s -X POST -H 'Content-Type:application/json' -d '
{
  "jsonrpc": "2.0",
  "method": "host.create",
  "params": {
     "host": "'${hostname}'",
     "proxy_hostid": "10635",
     "interfaces": [
       {
         "type": 1,
         "main": 1,
         "useip": 1,
         "ip": "'${i}'",
         "dns": "",
         "port": "10050"
       }
   ],
   "groups": [
      {
         "groupid": "2"
        }
   ],
   "templates": [
   {
        "templateid": "10001"
   }
   ]
},
"auth": "41cac7c950bcbe28183ad3b33b7b500f",
"id": 1
}' http://192.168.42.10/zabbix/api_jsonrpc.php | python3 -m json.tool
done

zabbix-snmp监控:

snmp:简单网络管理协议

服务端
apt -y install snmp snmpd
vim /etc/snmp/snmp.conf
62行
view systemonly included  .1
systemctl restart snmpd.service
snmpwalk -c public -v 2c 192.168.42.100

ensp
utm
sys
int g0/0/0
ip address 192.168.42.100 24
q
snmp-agent
snmp-agent sys-info version all
snmp-agent community write public
snmp-agent target-host trap-hostname zabbix address 192.168.42.10 udp-port 161 trap-paramsname zabbix
anmp-agent trap enable
simple network  management protocol:用来监控和管理网络设备的标准协议,路由器,交换机等等

snmp-agent sys-info version all
snmp1 snmp2 snmp3 all 开启snmp协议之后,支持以上的所有版本。
snmp-agent community write public 
路由器设备可以被哪些团体进行读写,public:公共组,所有设备都可以读写路由器的配置信息
snmp-agent target-host trap-hostname zabbix address 192.168.233.10 udp-p ort 161 trap-paramsname zabbix
声明监控的zabbix的server端的ip地址,和snmp的监听端口

view systemonly included  .1

设备的oid信息,一般都是从设备厂商直接获取

1:表示设备名,查询设备的信息

数字越少,能看到的信息越多

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

JavaScript笔记进阶篇01——作用域、箭头函数、解构赋值

黑马程序员视频地址: 黑马程序员前端JavaScript入门到精通全套视频教程https://www.bilibili.com/video/BV1Y84y1L7Nn?vd_source0a2d366696f87e241adc64419bf12cab&spm_id_from333.788.videopod.episodes&p152 目录 作用域 局部作用域 函数作用域 块…

开源鸿蒙开发者社区记录

lava鸿蒙社区可提问 Laval社区 开源鸿蒙项目 OpenHarmony 开源鸿蒙开发者论坛 OpenHarmony 开源鸿蒙开发者论坛

蓝桥杯不熟知识整理

第一章 1.using namespace std; using namespace std; 是⼀种简单粗暴的做法,直接这样使⽤,就意味着后续在 std 这个名字空间中的各种定义都可以直接使⽤,但是我们往往只是使⽤部分。所以名字空间其实也 可以这样使⽤:std::cout…

机器学习(3):逻辑回归

1 介绍 逻辑回归(Logistic Regression)是一种广泛应用于分类问题的监督学习算法。尽管名字中含有“回归”二字,但这并不意味着它用于解决回归问题。相反,逻辑回归专注于解决二元或多元分类问题,如邮件是垃圾邮件还是非…

基于Python django的音乐用户偏好分析及可视化系统设计与实现

1.1 论文背景 随着信息技术的快速发展,在线音乐服务已成为日常生活的重要组成部分。QQ音乐,凭借其创新的音乐推荐算法和独特的社交特性,成功在竞争激烈的市场中获得一席之地。该平台的歌单文化和评论文化不仅满足了用户自尊和自我实现的需求…

蓝桥杯单片机第六届省赛

前言 这套题其实一开始做的时候有点发懵,一直陷入到一个巨大的漏洞里面,主要是在10次数据采集上面,说白了就是练得少,太菜了 题目 这套题到现在的代码也有一些漏洞,实在是不想改了,最近有点摆烂&#xff…

用java配合redis 在springboot上实现令牌桶算法

令牌桶算法配合 Redis 在 Java 中的应用令牌桶算法是一种常用的限流算法,适用于控制请求的频率,防止系统过载。结合 Redis 使用可以实现高效的分布式限流。 一.、引入依赖首先,需要在 pom.xml 文件中引入 spring-boot-starter-data-re…

Python绘制简易动态圣诞树

代码: import random import time from math import pi, cos, sin from tkinter import *CANVAS_WIDTH 640 # 画布的宽 CANVAS_HEIGHT 640 # 画布的高 TREE_COLOR "#2e8b57" # 树的颜色 TRUNK_COLOR "#8b4513" # 树干的颜色 STAR_COLO…

【HF设计模式】06-命令模式

声明:仅为个人学习总结,还请批判性查看,如有不同观点,欢迎交流。 摘要 《Head First设计模式》第6章笔记:结合示例应用和代码,介绍命令模式,包括遇到的问题、采用的解决方案、遵循的 OO 原则、…

高并发内存池_CentralCache(中心缓存)和PageCache(页缓存)申请内存的设计

三、CentralCache(中心缓存)_内存设计 (一)Span的创建 // 页编号类型,32位下是4byte类型,64位下是8byte类型 // #ifdef _WIN64 typedef unsigned long long PageID; #else _WIN32 typedef size_t PageI…

消息队列篇--原理篇--Pulsar(Namespace,BookKeeper,类似Kafka甚至更好的消息队列)

Apache Pulusar是一个分布式、多租户、高性能的发布/订阅(Pub/Sub)消息系统,最初由Yahoo开发并开源。它结合了Kafka和传统消息队列的优点,提供高吞吐量、低延迟、强一致性和可扩展的消息传递能力,适用于大规模分布式系…

音频入门(二):音频数据增强

本文介绍了一些常见的音频数据增强方法,并给出了代码实现。 目录 一、简介 二、代码 1. 安装必要的库 2. 代码 3. 各函数的介绍 4. 使用方法 参考: 一、简介 音频数据增强是机器学习和深度学习领域中用于改善模型性能和泛化能力的技术。 使用数据…

Oracle审计

审计是监控选定的用户数据库操作的过程 审计的目的: 调查可疑的数据库活动: 审计可以帮助检测和跟踪潜在的 security breaches、未授权的访问尝试或其他异常行为。通过分析审计日志,可以确定可疑活动的来源、时间、频率和影响。 收集特定数…

Appium(四)

一、app页面元素定位 1、通过id定位元素: resrouce-id2、通过ClassName定位:classname3、通过AccessibilityId定位:content-desc4、通过AndroidUiAutomator定位5、通过xpath定位xpath、id、class、accessibility id、android uiautomatorUI AutomatorUI自…

AUTOSAR OS模块详解(三) Alarm

AUTOSAR OS模块详解(三) Alarm 本文主要介绍AUTOSAR OS的Alarm,并对基于英飞凌Aurix TC3XX系列芯片的Vector Microsar代码和配置进行部分讲解。 文章目录 AUTOSAR OS模块详解(三) Alarm1 简介2 功能介绍2.1 触发原理2.2 工作类型2.3 Alarm启动方式2.4 Alarm配置2.5…

【0x04】HCI_Connection_Request事件详解

目录 一、事件概述 二、事件格式及参数 2.1. HCI_Connection_Request 事件格式 2.2. BD_ADDR 2.3. Class_Of_Device 2.4. Link_Type 三、主机响应 3.1. ACL链接类型 3.2. SCO或eSCO链接类型 四、应用场景 4.1. 设备配对场景 4.2. 蓝牙文件传输场景 4.3. 蓝牙物联网…

洛谷题目:P2742 [USACO5.1] 圈奶牛Fencing the Cows /【模板】二维凸包 题解 (本题较难)

题目传送门:P2742 [USACO5.1] 圈奶牛Fencing the Cows /【模板】二维凸包 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 另:由于一些文章的疏忽,导致一些错别字,代码错误,公式错误导致大家的理解和误导,…

Qt中的按钮组:QPushButton、QToolButton、QRadioButton和QCheckBox使用方法(详细图文教程)

💪 图像算法工程师,专业从事且热爱图像处理,图像处理专栏更新如下👇: 📝《图像去噪》 📝《超分辨率重建》 📝《语义分割》 📝《风格迁移》 📝《目标检测》 &a…

2025-1-21 SUCTF 2025 crypto signin

今年充满期待,上线一看两道题,一道看名字应该是跟环相关的,估计做不出来,还有一道签到题,没做出来,遗憾下线 文章目录 signin signin from Crypto.Util.number import * from secret import flagbit_lengt…

C语言之图像文件的属性

🌟 嗨,我是LucianaiB! 🌍 总有人间一两风,填我十万八千梦。 🚀 路漫漫其修远兮,吾将上下而求索。 图像文件属性提取系统设计与实现 目录 设计题目设计内容系统分析总体设计详细设计程序实现…