网站设计与网站建设课程代码手机怎么制作钓鱼网站
news/
2025/10/6 15:23:52/
文章来源:
网站设计与网站建设课程代码,手机怎么制作钓鱼网站,网站接入地查询,薇诺娜经常在那个网站做特价1.Zabbix
1.1.监控概述
监控是指对行为、活动或其他变动中信息的一种持续性关注#xff0c;通常是为了对人达成影响、管理、指导或保护的目的 监控 监视主机架构状态控制#xff0c;事后追责目标#xff1a;早发现早处理(故障、性能、架构) 网站扩容(用数据说话) 为什么要…1.Zabbix
1.1.监控概述
监控是指对行为、活动或其他变动中信息的一种持续性关注通常是为了对人达成影响、管理、指导或保护的目的 监控 监视主机架构状态控制事后追责目标早发现早处理(故障、性能、架构) 网站扩容(用数据说话) 为什么要监控 对系统不间断实时监控实时反馈系统当前状态保证业务持续性运行 监控流程 数据采集 数据存储 数据分析 展示/告警 监控的内容 1.2.Linux有关性能的指令 1.3.企业面试题公司监控如何做 等同于你们公司监控了什么 单台机器 业务信息应用、程序代码是否有问题(需要与开发沟通书写一个页面)服务信息各种服务的进程、端口、状态、特定的信息(不同服务)系统信息cpu、内存(swap,buffer/cache)、磁盘(io,使用率,inode)、负载、网络…硬件信息磁盘、raid状态、温度、风扇转速 网站集群监控(用户访问流程) DNS解析与CDN 通过全局访问测试工具(模仿用户在全国(全球)各地访问网站) 在全国各地核心城市部署一台服务器访问源站/cdn/dnssmokeping免费17ce.com商业版听云、监控宝 TCP三次握手-网站负载均衡监控 ss-ant HTTP请求报文-监控web日志查看(状态码) 补充加上HTTPS监控过期 请求经过网站架构 负载均衡(Nginx)web服务器(php,tomcat…)缓存数据库存储 TCP四次挥手-网站负载均衡监控 断开连接
1.2.概述
Zabbix 由 Alexei Vladishev 创建目前由 Zabbix SIA 主导开发和支持。
Zabbix 是一个企业级的开源分布式监控解决方案。
Zabbix 是一款监控网络的众多参数以及服务器、虚拟机、应用程序、服务、数据库、网站、云等的健康和完整性的软件。Zabbix 使用灵活的通知机制允许用户为几乎任何事件配置基于电子邮件的告警以实现对服务器问题做出快速反应。Zabbix 基于存储的数据提供出色的报告和数据可视化功能。这使得 Zabbix 成为容量规划的理想选择。
Zabbix 支持轮询和 trapping。所有 Zabbix 报告和统计数据以及配置参数都可以通过基于 Web 的前端访问。基于 Web 的前端确保可以从任何位置评估您的网络状态和服务器的健康状况。如果配置得当不管对于拥有少量服务器的小型组织还是拥有大量服务器的大公司来讲Zabbix 都可以在监控 IT 基础设施方面发挥重要作用。 Linux相关指标命令 Zabbix功能有如下
数据收集
可用性和性能检查支持 SNMPtrapping 和 polling、IPMI、JMX、VMware监控自定义检查以自定义间隔收集所需数据由 server/proxy 和 agents 执行
灵活的阈值定义
可以定义非常灵活的问题阈值称为触发器从后端数据库引用值
高度可配置的告警
可以针对升级计划、收件人、媒体类型自定义发送通知使用宏可以使通知变得有意义和有用自动化操作包括执行远程命令
实时图形
采集到的监控项值可以使用内置的绘图功能立即绘图
网络监控功能
Zabbix 可以跟踪网站上的模拟鼠标点击路径并检查功能和响应时间
广泛的可视化选项
创建自定义图形的能力可以将多个监控项组合成一个聚合图形网络拓扑图在仪表盘中显示幻灯片报表受监控资源的高级业务视图
历史数据存储
存储在数据库中的数据可配置的历史保留趋势内置管家程序
建议的配置
将受监控的设备添加为主机一旦主机被数据库添加就会开始进行数据采集将模板应用于受监控的设备
模板的使用
在模板中分组检查模板可以继承其他模板
网络发现
网络设备自动发现agent 自动注册发现文件系统、网络接口和 SNMP OID
便捷的 web 界面
基于web的PHP前端可从任何地方访问可以通过你的方式点击到任何页面审计日志
Zabbix API
Zabbix API 为 Zabbix 提供可编程接口用于大规模操作、第 3 方软件集成和其他用途。
权限系统
安全用户认证某些用户可以被限制仅访问某些视图
全功能且易于扩展的 agent
部署在被监控目标上Linux 和 Windows 操作系统都适用于
二进制守护进程
用 C 编写用于提高性能和减少内存占用轻量级、便携
为复杂环境做好准备
使用 Zabbix proxy 轻松实现远程监控
1.3.Zabbix架构
Server
Zabbix server 是 agents 向其报告可用性和完整性信息和统计信息的中心组件。server 是存储所有配置、统计和操作数据的中央存储库。
数据存储
Zabbix 收集的所有配置信息以及数据都存储在数据库中。
Web 界面
为了从任何地方和任何平台轻松访问Zabbix 提供了基于 Web 的界面。该接口是 Zabbix server 的一部分通常但不一定与 server 运行在同一台设备上。
Proxy
Zabbix proxy 可以代替 Zabbix server 收集性能和可用性数据。proxy 是 Zabbix 部署的可选部分但是对于分散单个 Zabbix server 的负载非常有用。
Agent
Zabbix agent 部署在被监控目标上以主动监控本地资源和应用程序并将收集到的数据报告给 Zabbix server。从 Zabbix 4.4 开始有两种类型的 agent 可用Zabbix agent 轻量级在许多平台上支持用 C 编写和 Zabbix agent 2 非常灵活易于使用插件扩展用 Go 编写。
2.使用Zabbix
2.1.配置要求
NamePlatformCPU/MemoryDatabaseMonitored hostsSmallCentOSVirtual ApplianceMySQL InnoDB100MediumCentOS2 CPU cores/2GBMySQL InnoDB500LargeRedHat Enterprise Linux4 CPU cores/8GBRAID10 MySQL InnoDB or PostgreSQL1000Very largeRedHat Enterprise Linux8 CPU cores/16GBFast RAID10 MySQL InnoDB or PostgreSQL10000
下表包含可用于计算 Zabbix 系统所需磁盘空间的公式
参数 所磁盘空间的计算公式 单位字节Zabbix 配置文件 固定大。通常为 10MB 或更少。History(历史数据)days*(items/refresh rate)243600*bytes items监控项数量。 days保留历史数据的天数。 refresh rate监控项的更新间隔。 bytes保留单个值所需要占用的字节数依赖于数据库引擎通常为 ~90 字节。Trends趋势数据days*(items/3600)243600*bytes items监控项数量。 days保留历史数据的天数。 bytes保留单个趋势数据所需要占用的字节数依赖于数据库引擎通常为 ~90 字节。Events事件数据daysevents243600bytes events每秒产生的事件数量。假设最糟糕的情况下每秒产生 1 个事件。 days保留历史数据的天数。 bytes保留单个趋势数据所需的字节数取决于数据库引擎通常为 ~170 字节。
2.2.Zabbix安装 使用yum和自定义配置安装 lnmpzabbix-server(yum)zabbix-web(源码包) nginx和php环境
# yum配置
cur1 -o /etc /yum.repos.d/Centos-Base.repo http://mirrors.aliyun.com/repo/centos-7.repo
yum insta11 epe1-release.noarch -y
cur1 -o/etc/yum.pos.d/epel.repo http//mirrors.aliyun.com/repo/epel-7.repo
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm# 安装nginx先要安装epel源或者使用nginx官方源
# 使用nginx 1.20 php7.2
yum insta11 nginx php72w-cli php72w-fpm php72w-gd php72w-mbstring php72w-bcmath php72w-xm1 php72w-ldap php72w-mysq1nd -y# 开启服务并设置自启
[rootcloud ~]# systemctl enable nginx php-fpm.service
Created symlink from /etc/systemd/system/multi-user.target.wants/nginx.service to /usr/lib/systemd/system/nginx.service.
Created symlink from /etc/systemd/system/multi-user.target.wants/php-fpm.service to /usr/lib/systemd/system/php-fpm.service.
[rootcloud ~]# systemctl start nginx php-fpm.service # nginx配置
[rootcloud ~]# cat /etc/nginx/conf.d/zabbix.conf
server {listen 80;server_name zabbix.test;root /code/zabbix;location / {index index.php;}location ~ \.php$ {fastcgi_pass 127.0.0.1:9000;fastcgi_index index.php;fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;include fastcgi_params;}
}# 配置php
# 修改组和用户
[rootcloud ~]# cat /etc/php-fpm.d/www.conf
[www]
user nginx
group nginx# 准备会话保持目录
[rootcloud ~]# grep /var/lib/php/session /etc/php-fpm.d/www.conf
php_value[session.save_path] /var/lib/php/session
[rootcloud ~]# mkdir -p /var/lib/php/session
[rootcloud ~]# chown nginx.nginx /var/lib/php/session
[rootcloud ~]# php-fpm -t
[13-May-2023 17:56:35] NOTICE: configuration file /etc/php-fpm.conf test is successful
[rootcloud ~]# systemctl reload php-fpm.service # 测试
[rootcloud ~]# mkdir -p /code/zabbix
[rootcloud ~]# chown nginx.nginx /code/zabbix
[rootcloud ~]# vim /code/zabbix/index.php
[rootcloud ~]# cat /code/zabbix/index.php
?php
phpinfo();
?
[rootcloud ~]# curl zabbix.test数据库配置
# 安装数据库
yum install -y mariadb-server# 进行一些安全性设置
[rootcloud ~]# mysql_secure_installation NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDBSERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY!In order to log into MariaDB to secure it, well need the current
password for the root user. If youve just installed MariaDB, and
you havent set the root password yet, the password will be blank,
so you should just press enter here.Enter current password for root (enter for none):
OK, successfully used password, moving on...Setting the root password ensures that nobody can log into the MariaDB
root user without the proper authorisation.Set root password? [Y/n] y
New password:
Re-enter new password:
Password updated successfully!
Reloading privilege tables..... Success!By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them. This is intended only for testing, and to make the installation
go a bit smoother. You should remove them before moving into a
production environment.Remove anonymous users? [Y/n] y... Success!Normally, root should only be allowed to connect from localhost. This
ensures that someone cannot guess at the root password from the network.Disallow root login remotely? [Y/n] y... Success!By default, MariaDB comes with a database named test that anyone can
access. This is also intended only for testing, and should be removed
before moving into a production environment.Remove test database and access to it? [Y/n] y- Dropping test database...... Success!- Removing privileges on test database...... Success!Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.Reload privilege tables now? [Y/n] y... Success!Cleaning up...All done! If youve completed all of the above steps, your MariaDB
installation should now be secure.Thanks for using MariaDB!# 创建所需库和用户
mysql create database zabbix character set utf8 collate utf8_bin;
mysql create user zabbixlocalhost identified by password;
mysql grant all privileges on zabbix.* to zabbixlocalhost; # 授予所有权限
mysql set global log_bin_trust_function_creators 1; # 允许在启用二进制日志时创建存储函数而无需有SUPER权限Zabbix服务端
# 配置yum
rpm -Uvh https://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm?spma2c6h.25603864.0.0.251e2e2fnsDdRT
# 修改yum
baseurlhttps://mirrors.aliyun.com/zabbix/zabbix//5.0/rhel/7/$basearch/# 安装zabbix
yum install -y zabbix-server zabbix-agent2# 导入数据
zcat /usr/share/doc/zabbix-server-mysql-5.0.34/create.sql.gz
|mysql -uzabbix -proot zabbix # 解压缩 create.sql.gz 文件并将其内容输出到标准输出# 配置zabbix数据库服务
grep ^DB /etc/zabbix/zabbix_server.conf
DBHostlocalhost
DBNamezabbix
DBUserzabbix
DBPasswordroot# zabbix默认开启功能
LogFile/var/log/zabbix/zabbix_server.log # 日志文件位置
LogFileSize0 # 日志文件大小0不限制大小
PidFile/var/run/zabbix/zabbix_server.pid # 进程 ID 文件位置
SocketDir/var/run/zabbix # 套接字目录
DBHostlocalhost
DBNamezabbix
DBUserzabbix
DBPasswordroot
SNMPTrapperFile/var/log/snmptrap/snmptrap.log # SNMP Trapper 文件位置
Timeout4 # 超时时间
AlertScriptsPath/usr/lib/zabbix/alertscripts # 警告脚本路径
ExternalScripts/usr/lib/zabbix/externalscripts # 外部脚本路径
LogSlowQueries3000 # 记录慢查询的阈值
StatsAllowedIP127.0.0.1 # 允许访问统计数据信息的IP地址# 开启服务(默认10051端口)
systemctl start zabbix-serverzabbix前端页面
# 使用源码包
# 去官网下载源码包
[rootcloud nfs] tar xf zabbix-5.0.34.tar.gz
[rootcloud zabbix-5.0.34]# mv ui/* /code/zabbix/
[rootcloud zabbix-5.0.34]# chown -R named:named /code/zabbix/安装zabbix(zabbix前端页面连接数据库与zabbix-server)
# 需要在/etc/php.ini中修改的配置
Minimum required size of PHP post is 16M (configuration option post_max_size).
Minimum required limit on execution time of PHP scripts is 300 (configuration option max_execution_time).
Minimum required limit on input parse time for PHP scripts is 300 (configuration option max_input_time).
Time zone for PHP is not set (configuration parameter date.timezone).
date.timezone Asia/Shanghai当你其他配置都完成后出现这个页面就是成功了并且配置项都可以去conf/zabbix.conf.php文件修改 完成之后就可以登录zabbix了默认用户名是Admin密码是zabbix登录后可以自己修改密码
2.3.监控主机
安装zabbix-agent2
yum install -y zabbix-server zabbix-agent2zabbix agentzabbix agent2开发语言CGo和C性能独立进程方式运行1个进程多线程运行减少资源消耗占用较少tcp资源能够承受更高并发
监控流程 在客户端安装zabbix-agent2修改配置文件 指定Server为zabbix服务端web页面配置 ---- 主机中添加主机添加后检测
# 修改配置文件
[rootcloud code]# grep Server /etc/zabbix/zabbix_agent2.conf
### Option: Server
# Example: Server127.0.0.1,192.168.1.0/24,::1,2001:db8::/32,zabbix.example.com
# Server
Server127.0.0.1# agent配置
PidFile/var/run/zabbix/zabbix_agent2.pid
LogFile/var/log/zabbix/zabbix_agent2.log
LogFileSize0
Server127.0.0.1
ServerActive127.0.0.1 # 客户端主动模式的服务端ip地址
HostnameZabbix server # 客户端主机名
Include/etc/zabbix/zabbix_agent2.d/*.conf
ControlSocket/tmp/agent.sock # 指定了SSH代理的控制套接字的位置# 启动agent
[rootcloud code]# systemctl start zabbix-agent2.service # 检测客户端服务端是否连通
# 安装zabbix_get命令
yum install -y zabbix-get
# 在服务端执行如果有值则代表能获取数据
zabbix_get -s 127.0.0.1 -p 10050 -k system.cpu.load[all,avg1]2.4.自定义监控
以下监控项类型由Zabbix提供 Zabbix agent 检查 SNMP agent 检查 SNMP traps IPMI 检查 简单检查 VMware 监控 日志文件监控 可计算监控项 聚合计算 Zabbix 内部检查 SSH 检查 Telnet 检查 外部检查 采集器监控项 JMX 监控 ODBC 检查 相关监控项 HTTP 检查 Prometheus 检查 脚本监控 概述 定制化监控我们所要的内容提升性能提升zabbix性能去掉不需要的监控项zabbix自定义监控只要能够通过命令取出来的内容就可以做自定义监控 应用场景 定制默认的模板中没有我们要的监控项提升zabbix性能/优化去掉/定制监控项提升zabbix服务端的性能 自定义监控流程 Zabbix客户端**创建key(键值)**与调试 书写监控命令/脚本调试Debug命令与脚本写入到zabbix客户端配置文件中UserParameterkeycommand或脚本与调试zabbix_get zabbix服务端web页面 查看Web页面是否可以获取数据设置Web触发器trigger-什么时候报警
# 检查80端口是否占用
# 1.创建键值相当于一个zabbix服务端能识别的命令来获取zabbix客户端状态
# 内置键值keyzabbix_agent2 -p
# 自定义键值最好写在/etc/zabbix/zabbix_agent2.d/
UserParameternginx.alive,ss -tunlp|grep -wc 80
[rootcloud ~]# zabbix_get -s 127.0.0.1 -p 10050 -k nginx.alived
2# 使用带参数形式
nginx.alive[*],sh nginx_stat.sh $1 $2
nginx.alive[active,80],sh nginx_stat.sh $1 $2
# web页面不支持参数形式得一个个写#Key名本身具有有限的允许字符范围允许的字符是0-9a-zA-Z_-.新建监控项 历史数据(history)保留时长每个更新间隔获取到的数据推荐设置为30d趋势数据(trend)保留时长记录数据变化的趋势推荐设置
1.监控项类型 2.5.自定义触发器 触发器trigger 什么时候进行告警 本质使用监控项获取的数据与我们设置的条件进行比较从而触发警报 触发器表达式功能 触发器表达式格式
# {主机名:监控项.使用函数}判断条件
{Zabbix server:nginx.alive.last()}02.6.自定义监控故障案例
1.权限
原因zabbix客户端运行的时候zabbix用户获取数据可能导致权限故障permission denied解决授权sudo
zabbix_get -s 127.0.0.1 -p 10050 -k vfs.file.contents[/etc/shadow]
ZBX_NOTSUPPORTED: Cannot open file /etc/shadow: open /etc/shadow: permission denied[rootcloud ~]# visudo
zabbix ALL(ALL) NOPASSWD: ALL# 很难解决源key的权限问题但是可以自定义key解决
UserParameterconf.shadow,sudo wc -l /etc/shadow2.脚本执行时间
zabbix默认限制命令或脚本执行时间不能超过30s修改服务端和客户端Timeout选项
3.awk取列
自定义监控的时候推荐使用脚本尤其是awkawk取列的时候容器出现故障 2 推荐使用 2 推荐使用 2推荐使用$2
2.7.创建模板
创建模板创建应用集(监控项分类)创建自定义监控项创建触发器创建图像模板可以与多个机器关联避免web页面重复操作 创建模板成功后就可以正常添加监控项触发器等监控项、触发器、图形都可以直接从其他主机上复制到模板中 主要事项 先找一个主机配置监控项等进行测试然后再进行创建模板
2.8.告警方案
前端消息告警 开启功能并保证前端页面开启有报警提示时会发出声音(不推荐) 1.告警分类 2.邮件报警
个人/企业邮箱开启个人邮箱smtp功能获取授权码发件人配置zabbix报警媒介类型收件人配置用户接收报警配置动作
配置报警媒介参数 收件人配置 对所有人员分组。权限一般以组设置创建用户时设置报警媒介 配置动作 3.脚本报警 2.9.zabbix客户端
zabbix客户端zabbix-agent2(最常用)适用于几乎所有情况linuxWindowsSNMPSimple Network Management Protocal 简单网络管理协议 监控网络设备JMXJava-gateway监控java app(tomcat)。未来建议自定义监控(zabbix_agent2 jmap/jstats)IPMI监控硬件(物理服务器)直接使用自定义监控(ipmitoolmegacli)
1.snmp监控 应用 监控网络设备也支持监控可以启动SNMP设备(LinuxWindows打印机…) 使用snmp 启动设备的SNMP功能zabbix服务端进行测试能否获取到网络设备的信息web添加主机监控项
# 1.安装snmp服务端
yum install net-snmp -y# 2.配置snmp服务端
vim /etc/snmp/snmpd.conf
# 修改community为oldboy
com2sec notConfigUser default oldboy
# 增加一行
view systemview included# 安装snmp命令
yum install net-snmp-utils -y
# 使用命令
snmpwalk -c oldbox -v 2c 192.168.13.1 sysUptime
-c oldbox指定community字符串为“oldbox”。
-v 2c指定SNMP协议版本为SNMPv2c。
192.168.13.1指定要查询的设备的IP地址。
sysUptime指定要查询的OID对象标识符。2.JMX监控 安装java程序并开启远程监控功能安装zabbix-java-gateway服务端配置web主机 这个配置只能写成一行 获取数据 #
java -jar cmdline-jmxclient-0.10.3.jar - 10.0.0.7:12345添加主机 2.10.自动化监控
自动发现服务端主动自动注册客户端主动zabbix客户端主动与被动模式zabbix分布式监控
1.自动发现和自动注册
共同点区别自动发现自动添加主机并关联模板启动主机1.客户端被动2.使用简单3.效率或性能较低4.对zabbix服务端压力较大自动注册自动添加主机并管理模板启动主机1.客户端主动2.配置繁琐一点3.对zabbix服务端压力较低4.高并发注册机器 自动发现 配置自动发现规则 - 发现主机 配置自动发现动作 - 发现主机后关联模板等动作 自动注册(可与ansible结合使用) 修改zabbix客户端配置文件:ServeActive服务端ip 和Hostname… web页面动作----自动注册 autoreg 2.zabbix-agent(取值)主动与被动
zabbix-agent主动主动向zabbix-server汇报52个监控请求1次服务端收集到所有的数据
zabbix-agent被动等待zabbix-server索要52个监控请求52次效率低对zabbix服务压力大 2.11.分布式监控
应用场景有多个机房/网段/地域进行监控分布式监控proxy代理监控 安装zabbix-proxy-mysql
yum install -y https://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/x86_64/zabbix-proxy-mysql-5.0.0-1.el7.x86_64.rpm导入zabbix表结构
[roottest ~]# zcat /usr/share/doc/zabbix-proxy-mysql-5.0.0/schema.sql.gz | mysql -uzabbix -pzabbix zabbix配置zabbix-proxy
[roottest ~]# grep ^[a-Z] /etc/zabbix/zabbix_proxy.conf
Server192.168.19.136
ServerPort10051
HostnameZabbix proxy # 代理名字确保服务端知道代理名称也可使用HostnameItem
LogFile/var/log/zabbix/zabbix_proxy.log
LogFileSize0
PidFile/var/run/zabbix/zabbix_proxy.pid
SocketDir/var/run/zabbix
DBHostlocalhost
DBNamezabbix_proxy
DBUserzabbix
DBPasswordzabbix
SNMPTrapperFile/var/log/snmptrap/snmptrap.log
Timeout4
ExternalScripts/usr/lib/zabbix/externalscripts
LogSlowQueries3000
StatsAllowedIP127.0.0.1配置web代理 修改客户端指向 2.12.lld
低级自动发现可以自动为主机上的不同实体创建监控项、触发器和图表。比如 Zabbix可以自动监控文件系统和网络接口并且不需要为其手工创建监控项。另外可以基于周期性自动发现的结果来删除无用的监控实体。 应用场景 低级自动发现特别适合用于监控那些有规律又有差异的监控对象 系统内置的自动发现 如果想立刻上手熟悉其它类型的自动发现更多信息和如何实现(how-to)方面可参阅以下章节: 网络接口的自动发现;CPU 和 CPU 核心的自动发现;SNMP OID的自动发现;JMX 对象的自动发现;使用ODBC SQL 查询的自动发现;Windows 服务的自动发现;Zabbix 主机接口的自动发现。 自动发现/自动注册----自动添加主机 希望zabbix自动添加监控项自动监控一些有关联的内容网卡、磁盘、磁盘分区…低级自动发现(Low Level Discovery) 系统模板自带的自动发现规则 系统内置自动发现键值 [roottest zabbix]# zabbix_get -s 192.168.19.137 -p 10050 -k net.if.discovery
[{{#IFNAME}:lo},{{#IFNAME}:virbr0-nic},{{#IFNAME}:virbr0},{{#IFNAME}:ens33}]
# zabbix内置宏 {HOST.NAME}
# zabbix 用户定义宏 {$OLDBOY}
# zabbix低级自动发现专用宏 {#IFNAME}根据网卡名字创建对应的监控项原型net.if.in[“{#IFNAME}”]----- net.if.in[eth0] 然后 net.if.in[eth1] 1.案例统计网卡总流量
监控项原型流量过大 告警(触发器模型)流量图形展示
[rootcloud ~]# zabbix_get -s 127.0.0.1 -p 10050 -k net.if.discovery|jq
[{{#IFNAME}: br-422bc8cc20df},{{#IFNAME}: br-10d894dab180},{{#IFNAME}: lo},{{#IFNAME}: virbr0-nic},{{#IFNAME}: virbr0},{{#IFNAME}: ens33},{{#IFNAME}: br-4871ddbe0355},{{#IFNAME}: docker0}
]
[rootcloud ~]# zabbix_get -s 127.0.0.1 -p 10050 -k net.if.total[ens33]
554386852设置触发器原型 设置图形 2.从零开始lld
获取你要的内容磁盘分区的名字网卡名字根据自动发现内容创建自动发现规则创建监控项原型创建触发器原型创建图形原型
# 官方要求书写格式
# LLD宏的名称允许使用的符号有 0-9 ,A-Z , _ , .
[{ {#FSNAME}:/, {#FSTYPE}:rootfs },{ {#FSNAME}:/sys, {#FSTYPE}:sysfs },{ {#FSNAME}:/proc, {#FSTYPE}:proc },{ {#FSNAME}:/dev, {#FSTYPE}:devtmpfs },{ {#FSNAME}:/dev/pts, {#FSTYPE}:devpts },{ {#FSNAME}:/lib/init/rw, {#FSTYPE}:tmpfs },{ {#FSNAME}:/dev/shm, {#FSTYPE}:tmpfs },{ {#FSNAME}:/home, {#FSTYPE}:ext3 },{ {#FSNAME}:/tmp, {#FSTYPE}:ext3 },{ {#FSNAME}:/usr, {#FSTYPE}:ext3 },{ {#FSNAME}:/var, {#FSTYPE}:ext3 },{ {#FSNAME}:/sys/fs/fuse/connections, {#FSTYPE}:fusectl }
]# 书写脚本 生成格式 net.if.discovery
# 1. 拿取所需端口
# 2. 输出格式
#!/bin/bash
#desc: auto discovery server portport_list(netstat -tunlp|grep zabbix|awk -F[ :] $4~/^[0-9]$/{print $4})echo [
for port in ${port_list[*]};dolet iif [ $i -eq ${#port_list[*]} ];thenecho -e \t{ \{#PORT}\:\$port\}elseecho -e \t{ \{#PORT}\:\$port\},fi
doneecho ]# 书写配置文件
UserParameternet.port.discovery,sh /server/scripts/net.port.sh# 测试
[rootcloud scripts]# zabbix_get -s 127.0.0.1 -p 10050 -k net.port.discovery
[{ {#PORT}:10050},{ {#PORT}:10051}
]
创建发现规则 2.13.web场景 2.14.Zabbix api
application interface 程序接口针对zabbix进行二次开发公司运维管理平台 CMDB(存储与管理企业IT架构中设备的各种配置信息)(把zabbix集成成自己的运维平台)zabbix api主要的接口功能通过api接口可以代替web页面操作。增删改查api接口应用场景人脸识别短信验证身份证验证…使用与调用 **自己写程序调用**直接通过程序代码进行调用需要参考对方的api接口文档**官方写好的可以直接使用(SDK一般指软件开发工具包)**通过SDK样例快速调用和使用即可 api接口使用流程 根据zabbix用户名和密码获取token使用token访问或调取zabbix资源官方API文档
当完成了前端的安装配置后你就可以使用远程HTTP请求来调用API。为此需要向位于前端目录中的 api_jsonrpc.php 文件发送 HTTP POST 请求。例如如果你的 Zabbix 前端安装在 http://example.com/zabbix 那么用HTTP请求来调用 apiinfo.version 方法就如下面这样POST http://example.com/zabbix/api_jsonrpc.php HTTP/1.1
Content-Type: application/json-rpc { · jsonrpc: 2.0, · method: apiinfo.version, · id: 1, · auth: null, · params: {}
}
请求的 Content-Type 头部必须设置为以下值之一application/json-rpcapplication/json 或 application/jsonrequest。# 使用curl进行请求
# postman
curl
-X 修改请求方法
-H 修改请求信息
-d --data 上传的内容
-v 请求详细# 获取token
在访问 Zabbix 中的任何数据之前你需要登录并获取身份认证 token。这可以使用 user.login 方法完成。我们假设你想要以标准 Zabbix Admin 用户身份登录。那么你的 JSON 请求将如下所示{jsonrpc: 2.0,method: user.login,params: {user: Admin,password: zabbix},id: 1,auth: null
}
让我们仔细看看示例请求对象。它具有以下属性jsonrpc - API 使用的 JSON-RPC 协议的版本; Zabbix API 实现的 JSON-RPC 版本是2.0
method - 被调用的 API 方法
params - 将被传递给API方法的参数
id - 请求的任意标识符
auth - 用户认证 token因为我们还没有它被设置为 null。
如果你正确提供了凭据API 返回的响应将包含用户身份认证 token{jsonrpc: 2.0,result: 0424bd59b807674191e7d77572075f33,id: 1
}
响应对象包含以下属性jsonrpc - JSON-RPC 协议的版本
result - 方法返回的数据
id - 对应请求的标识符。# 使用
[rootcloud scripts]# curl -X POST -H Content-Type: application/json-rpc -d {jsonrpc: 2.0,method: user.login,params: {user: Admin,password: zabbix},id: 1,auth: null} http://127.0.0.1/api_jsonrpc.php
{jsonrpc:2.0,result:798fdaa158f48e89ad412304009265d0,id:1}# 可以使用jq命令去json格式数据
cat token.txt|jq .result, .id
.result[] #进入下一层我们现在有一个有效的用户身份认证 token可以用来访问 Zabbix 中的数据。例如我们使用 host.get 方法检索所有已配置 主机 的ID主机名和接口 {jsonrpc: 2.0,method: host.get,params: {output: [hostid,host],selectInterfaces: [interfaceid,ip]},id: 2,auth: 0424bd59b807674191e7d77572075f33
}
请注意 auth属性现在设置为我们通过调用 user.login 方法获得的身份认证 token。
响应对象将包含有关主机的请求数据{jsonrpc: 2.0,result: [{hostid: 10084,host: Zabbix server,interfaces: [{interfaceid: 1,ip: 127.0.0.1}]}],id: 2
}3.zabbix性能优化 网站架构调整尽量让用户的请求往前推(用户请求不要到达网站走cdn使用缓存消息队列) 根据业务类型调整读少写多 zabbix是一个写多读少的业务优化数据库的写入性能建议使用InnoDB或tokudb存储引擎数据库分离或数据库拆分 zabbix键值与监控项处理 增加取值的时间使用自定义模板控制功能全面监控监控项少 精简监控项历史数据保留时长减少设置为30d或7d增加趋势存储时间365d zabbix触发器 尽量使用last()/diff()/nodata()避免使用需要计算max()/min()/avg()整体目标不要让zabbix服务端进行计算/数据库进行计数需要计算的内容放在客户端(自定义监控项) zabbix服务端 增加zabbix进程数量那种进程占用大量资源增加数量 Start…增加zabbix缓存大小缓存各种从客户端获取数据 Cache zabbix客户端 使用主动模式 ServerActive zabbix参数配置缓存和进程数量 xxxxcache用于zabbix服务端缓存获取的各类数据(历史数据趋势数据) pollerzabbix用于接收各类数据的进程数量 CacheSize 否 128K-64G 8M 缓存大小, 单位为字节。 用于存储主机、监控项、触发器数据的共享内存大小。 CacheUpdateFrequency 否 1-3600 60 Zabbix执行配置缓存更新的频率以秒为单位。 HistoryCacheSize 否 128K-2G 16M 历史缓存的大小以字节为单位。 用于存储历史数据的共享内存大小。 HistoryIndexCacheSize 否 128K-2G 4M 历史索引缓存的大小以字节为单位。 用于索引存储在历史缓存中的历史数据的共享内存大小。 索引缓存一个监控项大约需要 100 字节。 自 Zabbix 3.0.0 版本起开始支持此参数。 TrendCacheSize 否 128K-2G 4M 趋势缓存的大小以字节为单位。 用于存储趋势数据的共享内存大小。 ValueCacheSize 否 0,128K-64G 8M 历史值缓存的大小以字节为单位。 用于缓存监控项历史数据请求的共享内存大小。 设置为 0 将禁用缓存不推荐。 当值缓存耗尽共享内存时每 5 分钟会向服务器日志写入一条告警消息。 StartPollers 否 0-1000 5 轮询进程的初始实例数量必须非0 StartPollersUnreachable 否 0-1000 1 不可达主机轮询器 (包括 IPMI 和 Java)1 的 pre-forked预分配实例数量。 如果启动了常规、IPMI 或 Java轮询器则必须至少运行一个无法访问主机的轮询器。 StartIPMIPollers 否 0-1000 0 IPMI 轮询器的 pre-forked预分配实例数量 StartJavaPollers 否 0-1000 0 Java 轮询器1 的 pre-forked预分配实例数量 StartHTTPPollers 否 0-1000 1 HTTP 轮询器1 的 pre-forked预分配实例数量 StartProxyPollers 否 0-250 1 passive proxies 被动代理轮询器1 的 pre-forked预分配实例数量。 4.zabbix与其他
zabbix收集数据grafana显示图形 # 安装Grafana
yum install -y https://mirrors.aliyun.com/grafana/yum/rpm/Packages/grafana-enterprise-9.5.2-1.x86_64.rpm# 相关文件
/etc/grafana # 配置文件目录
/etc/init.d/grafana-server
/etc/sysconfig/grafana-server # 配置文件
/usr/lib/systemd/system/grafana-server.service # 服务管理脚本
/usr/sbin/grafana-cli # grafana管理命令
/usr/sbin/grafana-server # 服务端命令
/usr/share/grafana/public # 家目录前端页面# 安装zabbix插件
# 配置grafana通过api 访问zabbix
# web页面添加dashboard
# 导入模板登录相关页面ip:3000 用户名密码都是admin 安装检查zabbix插件 # 也可以命令行安装
grafana-cli plugins install alexanderzobnin-zabbix-app 版本号修改数据源 创建图像 # 设置监控项时可以用正则
/.*/使用模板
模板下载地址
下载模板的JSON文件或者复制模板ID后在Grafana中导入 导入之后默认是只读的需要在设置中修改 5.监控架设
1.详细要求
所有服务器基础监控cpu、内存、网卡、磁盘(大小/io)、网络带宽、负载…cdn/dns听云/监控宝负载均衡(nginx lvs haproxy) 端口80监控keepalived服务进程监控tcp11种状态数量监控(当前网站并发)nginx状态监控日志 每种状态码的数量https证书过期时间 web服务器 端口80和9000监控nginx状态监控访问日志状态码数量监控nginphp 监控php数据库 连接监控php状态tomcat多实例/单实例监控(jvm内存使用情况) 数据库服务监控 进程端口 存储服务 共享了那些目录监控共享目录大小监控nfsrpc服务监控 备份服务器 rsync端口进程监控rsync守护进程模式监控是否可以数据传输 redis缓存 端口进程状态(命中率)
2.环境准备
主机名功能iplb01负载均衡web01web服务器db01数据库及缓存nfs01存储backup备份rsync服务端m02zabbix服务器
3.实验
实现zabbix服务器监控其他所有服务器
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/929448.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!