大家好,我是讯享网,很高兴认识大家。
一、User parameters 用户参数1、介绍和用法
①简介
用户自定义参数,即用户自定义键。
有时,您可能想要运行代理检查,而不是Zabbix的预定义检查。
您可以编写一个命令来检索所需的数据,并将其包含在代理配置文件(& # 34;UserParameter & # 34配置参数)在用户参数中。
②使用格式语法
UserParameter = & ltkey & gt,& ltcommand & gt用户参数还包含一个密钥用户参数还包含一个密钥配置项目时需要该密钥配置监视项目时,需要密钥注意:需要重新启动代理注意:需要重新启动代理服务。2.用法演示(1)修改代理的配置,设置用户参数。
①免费| awk & # 39/^mem/{print $ 3 } & # 39;您需要找到命令的参数。
②修改配置文件,将查找参数命令设置为用户参数。
CD/etc/zabbix/zabbix _ agentd . d/vim memory _ usage . confuser parameter = memory . used,free | awk & # 39/^mem/{print $ 3 } & # 39;③system CTL restart zabbix-agent . service restart代理服务
(2)在zabbix服务器端,查询
zabbix_get-s192.168.30.7-p10050-k”memory.used”
(4)查询图表图形
3、用法升级
(1)修改代理的配置,设置用户参数。
(1)命令行查询参数命令
②修改配置文件,将查找参数命令设置为用户参数。
UserParameter=memory.stats[*],cat/proc/meminfo | awk & # 39;/^1/{print $ 2 } & # 39;
分析::表示不是前调位置参数的2,而是awk的2,而是awk的2。
注意:是调用前面的[*],位置参数,第一个参数。
(2)在zabbix服务器端,使用这个用户参数查询密钥。
(3)在监控上,设置一个项目监控项目并使用该用户参数。
①增加内存总量的项目监控项目,使用memory.stats[MemTotal]的用户参数。
在进程中定义倍数并指定单位。
②克隆内存总量以创建内存自由监控项目。
Memory.stats[MemFree]用户参数
③创建内存缓冲区的项目监控项目,使用memory.stats[Buffers]键
(4)上述三个监测项目的图表
①记忆总量
②内存空闲
③缓冲液
4、使用用户参数监控php-fpm 服务的状态
在代理端:
(1)下载并设置php-fpm
① yum -y安装php-fpm
② vim /etc/php-fpm.d/www.conf打开php-fpm的状态页面
user = nginxgroup = nginxpm . status _ path =/PHP-fpm-status # PHP-fpm的状态监控页面ping.path = /ping #ping接口,生存状态是否ok ping.response = pong #响应内容pong③ systemctl start php-fpm启动服务。
(2)设置nginx和代理php,匹配php-fpm的状态页。
vim /etc/nginx/nginx.conflocation ~ .php$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } location ~* /(php-fpm-status|ping) { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $fastcgi_script_name; include fastcgi_params; allow 127.0.0.1; #因为这个页面很重要,所有需加访问控制 deny all; access_log off; #访问这个页面就不用记录日志了 }
②设置
CD/etc/zabbix/zabbix _ agentd . d/vim PHP _ status . confuser parameter = PHP-fpm . stats[*],curl-s http://127 . 0 . 0 . 1/PHP-fpm-status | awk & # 39;/^/{print $ nf } & # 39;分析:设置用户参数为php-fpm.stats[*],1为第一个参数;1是第一个参数;$NF是awk中的参数,最后一列。
③重启服务。
systemctl重新启动zabbix-代理
(4)在zabbix服务器端,使用这个用户参数查询密钥。
zabbix_get -s 192.168.30.7 -p 10050 -k “php-fpm.stats[idle]”zabbix_get -s 192.168.30.7 -p 10050 -k “php-fpm.stats[active]”zabbix_get -s 192.168.30.7 -p 10050 -k “php-fpm.stats[max active]”
②在模板上配置项目监控项目,使用刚刚定义的用户参数。
fpm . stats[总进程]
③再次克隆几个项目监控项目。
fpm . stats[活动进程]
④fpm . stats[最大活动进程数]
⑤fpm . stats[空闲进程]
(6)主机主机链接模板
(7)检查图表图形。
① php-fpm总流程
② php-fpm活动进程
③ php-fpm最大活动进程
④ php-fpm空闲进程
(8)导出模板供他人使用。
①导出模板
底部有出口。
②自己定义用户参数的文件,不要忘记导出。
/etc/zabbix/zabbix _ agentd . d/PHP _ status . conf
二、Network discovery 网络发现1、介绍
1)简介
网络发现:zabbix服务器扫描指定网络范围内的主机;
网络发现(Network discovery)是zabbix最具特色的功能之一,它可以根据用户预先定义的规则自动添加被监控的主机或服务。
优势:
加速Zabbix部署
简化管理
在快速变化的环境中使用Zabbix,无需过度管理。
(2)发现的方法:
Ip地址范围;
可用服务(ftp、ssh、http、…)
zabbix_agent的响应;
snmp_agent的响应;
(3)网络发现通常包括两个阶段:发现发现和动作。
①发现:
Zabbix定期扫描网络发现规则中定义的IP范围;每个规则的检查频率都是可配置的。
每个规则都有一组针对IP范围的服务检查。
网络发现模块执行的每次服务和主机(IP)检查都会生成一个发现事件。
8种响应事件
②动作:网络发现中的事件可以触发动作,从而自动执行指定的操作,以发现事件为前提;
发送通知发送通知
添加/删除主机添加/删除主机
启用/禁用主机启用/禁用主机
向组中添加主机会向组中添加主机。
从组中删除主机会删除组中的主机。
将主机链接到模板/从模板取消链接将主机链接到模板或从模板取消链接。
执行远程脚本执行远程脚本。
这些事件的配置也可以基于设备的类型、IP、状态、在线/离线等进行配置。
(4)网络发现:添加接口。
当主机添加到网络中时,接口接口会自动创建。
例如:
如果基于SNMP的检测成功,将创建SNMP接口。
如果服务同时响应代理和SNMP,将会创建两个接口。
如果相同的发现机制(如代理)返回非唯一数据,则第一个接口被识别为默认接口,其他接口为附加接口。
即使一台主机一开始只有代理接口,然后通过snmp发现,也会增加一个额外的snmp接口。
如果不同主机返回相同的数据,将添加第一台主机,其余主机将被视为第一台主机的附加接口。
2、配置网络发现Network discovery
(1)准备一个可以通过扫描找到的主机。
①安装代理程序段包。
yum -y安装zabbix-代理zabbix-sender
②设置代理配置,可以发送之前设置的node1的配置。
vim/etc/zabbix/zabbix _ agentd . conf
主机名= http://node2.along.com #只需修改主机名
③ visudo修改sudo的配置。
Defaults !visiblepw
zabbix ALL=(ALL) NOPASSWD: ALL
④开放服务。
systemctl启动zabbix-代理
(2)设置自动发现规则发现。
注意事项:
①key:zabbix _ get-s 192 . 168 . 30 . 2-p 10050-k & # 34;system.hostname & # 34
②更新间隔:就1h,不要太频繁扫描全网段,浪费资源;这里,在实验中它被设置为1m。
(3)自动发现成功。
(4)设置自动发现的动作动作发现。
a)创建
b)设置动作action
①设置条件A,自动发现规则= http://test.net。
②设置B条件,自动发现状态=up。
③怎么办?
将主机添加到监控中
自动将模板操作系统Linux链接到该主机
c)动作配置完成,默认禁用。
d)启用操作并检查效果。
已经生效,主机添加成功,模板链接成功。
(5)如果需要添加的主机已经扫描添加完毕,可以关闭网络扫描,因为太消耗资源。
三、web监控1、介绍
1)简介
① Web监控:监控指定站点的资源下载速度、页面响应时间和响应代码;
②术语:
Web场景:web场景(站点)
网页:网页,一个场景有多个页面。
内置键:测试一个页面,有三个步骤(最下面的三个内置键)。
③内置键:
http://web . test . in[场景,步骤,bps]:传输速率
web . test . time[场景,步骤]:响应时间
web . test . RSP code[场景,步骤]:响应代码
2、创建设置web场景
(1)创建
(2)配置web监控
①点击步骤设置网页网页。
a)用URL http://http://192 . 168 . 30 . 7/index . html建立一个名为主页的网页
b)设置一个名为fpm status的网页,URL为http://192.168.30.7/fpm-status
c)成功建立2个网页。
②如果有专门的认证,也可以添加。
3、查看测试四、主动/被动 监控1、介绍
(1)主动/被动介绍
被动检测:相对于代理;代理,服务器请求代理获取与每个配置的监控项目相关的数据,代理接收请求,获取数据并响应服务器;
主动检测:相对于代理;Agent(主动),agent向服务器请求配置与自身相关的监控项目,主动将服务器配置的与监控项目相关的数据发送给服务器;
主动监控可以大大节省监控服务器的资源。
(2)zabbix_sender发送数据:手动生成数据并发送给服务器。
①在Zabbix服务器上的一台主机上,直接定义item时,只需定义一个不与其他已有键冲突的键即可,即Item类型为& # 34;zabbix trapper & # 34;
②使用选项:
zabbix_sender
-z zabbix_server_ip
-p zabbix _服务器_端口
-s zabbix代理主机名
-k键
-o value值
2、设置一个通过內建key发送数据的主动监控
(1)1)代理所需的基本配置:
ServerActive=192.168.30.107向哪个监控服务器发送数据hostname = http://node1.along.com自己的主机名,假设主机已经死了,不要设置下一项#HostnameItem=如果你的主机名很容易更改,则此项相当于key to match。
注意:如果最后两项同时启用,则下一个选项生效。
(2)设置主动监控。
①选择过程,每秒改变一次,
因为key:system . CPU . switches:contexts的数量被切换,所以它返回一个整数值。要监控效果,选择下一秒减去上一秒的值作为监控值。
(3)已经有graph图形了。
3、设置一个通过命令zabbix_sender发送数据的主动监控
(1)配置zabbix traper的一个项目监控项目。
(2)代理手动发送数据。
(3)监控数据的变化。
五、基于SNMP监控(了解)1、介绍
1)简介
SNMP:简单网络管理协议;(一个非常古老的协议)
三种通信方式:读(get,getnext)、写(set)、陷(trap);
端口:
161/udp
162/udp
SNMP协议:非常古老。
v1: 1989年
v2c: 1993年
v3: 1998年
监控网络设备:交换机、路由器
管理信息库信息管理基础
OID: objectID对象id
(2)支持Linux snmp的方法:
yum install net-SNMP net-SNMP-utils
配置文件:定义ACL
/etc/snmp/snmpd.conf
启动服务:
Systemctl start snmpd是被监控端启动的服务。
systemctl start snmptrapd监控端启动的服务(如果允许被监控端启动主动监控,则启用)
(3)配置文件介绍
开放数据:4个步骤
①定义认证者,放社区名& # 34;public & # 34映射为& # 34;证券名称& # 34;
②将安全名称映射到组名
③为我们创建一个视图,以便我们的团队有权
Mask:我列出一些评论,有很多,你可以去网上查。
.1.3.6.1.2.1.
1.1.0:系统描述信息
1.3.0:监控时间,系统正常运行时间
1.5.0:主机名、系统名
1.7.0:由主机SysService提供的服务
.1.3.6.1.2.2.
2.1.0:网络接口数量
2.2.1.2网络接口描述信息
网络接口的类型
……
④授予对systemview视图的只读访问权限。
(4)测试工具:
snmpget -v 2c -c public HOST OIDsnmpwalk -v 2c -c public HOST OID 通过这个端口查询到的数据,全列出了2、配置SNMP监控
(1)下载和修改配置文件
vim /etc/snmp/snmpd.conf
查看系统视图包含1.3.6.1.2.1.1查看系统视图包含1.3.6.1.2.1.2 #网络接口相关数据查看系统视图包含1.3.6.1.4.1.2021 #系统资源负载、内存、磁盘io、cpu负载查看系统视图包含1.3.6.1.2.1.25
(2)对代理的测试
snmpget -v 2c -c公共192.168.30.2 .1.3.6.1.2.1.1.3.0
snmpget -v 2c -c公共192.168.30.2 .1.3.6.1.2.1.1.5.0
(3)在监控页面上,为node2添加一个snmp接口。
(4)在node2上添加一个模板OS Linux SNMPv2模板
模板添加成功,生成了一系列东西。
打开一个项目看一看。
(5)生成一些最新数据的图表。
3、设置入站出站packets 的SNMP监控
(1)监控网络设备、交换机和路由器的步骤:
(1)交换机和路由器的SNMP启用相应的OID分支。
②了解这些分支下有哪些oid,它们是什么意思?
③我们要监控的一些数据:比如交换机某个接口的流量和报文,以及发送、呼入和呼出的报文数量;有多少字节传入传出?干掉OID,拯救它。
(2)定义入库物品和出库物品的监控项目。
接口流量数据包(入站)
接口流量包(输出)
六、JMX接口1、介绍
1)简介
Java虚拟机(JVM)具有内置的工具,使您能够使用JMX来监控和管理它。您还可以使用JMX来监视被检测的应用程序。
(2)配置设置介绍
① zabbix-java-gateway主机设置:
安装zabbix-java-gateway包并启动服务;
yum -y安装zabbix-java-gateway
②zabbix-服务器设置(需要重启服务):
JavaGateway=172.16.0.70
JavaGatewayPort=10052
StartJavaPollers=5 #监控项目
③ tomcat主机设置:
监视器tomcat:
/etc/sysconfig/tomcat,添加
CATALINA _ OPTS = & # 34-DJ ava . RMI . SERVER . hostname = TOMCAT _ SERVER _ IP-DJ avax . management . builder . initial =-DCOM . sun . management . JMX remote = true-DCOM . sun . management . JMX remote . port = 12 345-DCOM . sun . management . JMX remote . SSL = false-DCOM . sun . management . JMX remote . authenticate = false & # 34;#启用JVM接口,默认情况下不启用添加监控项目:
JMX[对象名称,属性名称]
对象名——它表示MBean的对象名。
属性名MBean属性名和可选的复合数据字段名由点分隔。
示例:
JMX[& # 34;Java . lang:type = Memory & # 34;,”HeapMemoryUsage.used & # 34]
④JMX详细文档:https://docs . Oracle . com/javase/1 . 5 . 0/docs/guide/management/agent . html
2、配置JVM接口监控
(1)安装并配置tomcat
①下载安装tomcat,主要使用JVM。
yum-y install Java-1 . 8 . 0-open JDK-devel Tomcat-admin-web apps Tomcat-docs-web app
②添加CATALINA_OPTS= #启用JVM接口,默认不启用。
vim/etc/sys config/tomcatCATALINA _ OPTS = & # 34;-DJ ava . RMI . server . hostname = 192 . 168 . 30 . 2-DJ avax . management . builder . initial =-DCOM . sun . management . JMX remote = true-DCOM . sun . management . JMX remote . port = 123 45-DCOM . sun . management . JMX remote . SSL = false-DCOM . sun . management . JMX remote . authenticate = false & # 34;③开放服务。
systemctl启动tomcat
(2)在zabbix-server端,安装并配置java-gateway。
①安装和配置java网关
yum -y安装zabbix-java-gateway
安装/etc/zabbix/zabbix _ java _ gateway . conf后,会生成一个Java _ gateway的配置文件。
systemctlstart zabbix-Java-gateway . service可以直接启动,无需修改。
②修改服务器配置,打开java-gateway配置。
vim/etc/zabbix/zabbix _ server . conf
Java Gateway = 192 . 168 . 30 . 107 Java Gateway Port = 10052 start Java Pollers = 5 #打开5个监控项目
③system CTL restart zabbix-server restart zabbix-server服务
(3)在node2主机上添加JMX接口和实验模板
①增加JMX接口
②在节点2上连接tomcat JMX模板
③随便检查一个监测项目。
(4)基于JVM接口,自己定义一个堆内存使用的监控项(没必要,用个模板就行)
七、分布式监控1、介绍
1)简介
分布式监控概述
代理和节点
Zabbix的三种架构
服务器代理
服务器节点代理
服务器-代理-代理
监控Zabbix
(2)配置介绍
Zabbix代理的配置:
服务器节点代理
服务器-代理-代理
a)配置代理主机:
(1)安装软件包
zabbix-proxy-mysql zabbix-get
zabbix-代理人zabbix-发送者
(2)准备数据库
创建、授权用户和导入schema.sql。;
(3)修改配置文件。
服务器=
zabbix服务器主机的地址;
主机名=
当前代理服务器的名称;向服务器添加代理时,必须使用此处指定的名称。
=您需要确保服务器可以提前解析这个名称;
DBHost=
数据库名=
DBUser=
DBPassword=
配置频率=10
DataSenderFrequency=1
b)在服务器端添加此代理
管理->;委托书
c)在服务器端配置由该代理监控的主机;
注意:zabbix代理应该允许zabbix代理主机执行数据收集:
2、实现分布式zabbix proxy监控
实验前准备:
①NTP更新172.168.30.1同步时间
②关闭防火墙,selinux。
③设置主机名主机名CTL Set-主机名http://zbproxy.along.com。
④ vim /etc/hosts每台机器设置主机解析主机名;DNS没问题。
192 168 30 107 http://server.along.com
192 168 30 . 7 http://node1.along.com
192 168 30 . 2 http://node2.along.com
http://node3.along.com http://zbproxy.along.com
(1)环境配置(4台主机)
机器名称
IP配置
服务角色
zabbix-服务器
192.168.30.107
班长
代理节点1
192.168.30.7
监控端
代理节点2
192.168.30.2
监控端
节点3
192.168.30.3
代理人
Zabbix-server直接监控主机node1
Zabbix-server通过代理节点3监控节点2。
(2)在node3上配置mysql
①创建和配置mysql
vim /etc/my.cnf.d/server.cnf
[server]skip _ name _ resolve = on innodb _ file _ per _ table = on innodb _ buffer _ pool _ size = 256m max _ connections = 2000 log-bin = master-log
② systemctl start mariadb启动服务。
③创建数据库和授权用户。
MariaDB [(无)]& gt;创建数据库zbxproxydb字符集& # 39;utf8 & # 39;MariaDB [(无)]& gt;授予zbxproxydb上的所有权限。*到& # 39;zbxproxyuser & # 39@’192.168.30.%’由& # 39;zbxproxypass & # 39;MariaDB [(无)]& gt;刷新权限;
(3)在node3上下载zabbix相关的包,主要是代理包。
yum -y安装zabbix-proxy-MySQL zabbix-get zabbix-agent zabbix-sender
a)初始化数据库
Zabbix-proxy-mysql包包含用于导入数据的文件。
CP/usr/share/doc/zabbix-proxy-MySQL-3 . 4 . 4/schema . SQL . gz ./replication
schema.sql.gz拆包
MySQL-root-p zbxproxydb & lt;Schema.sql导入数据
b)检查数据是否已经生成。
(4)配置代理端。
①vim/etc/zabbix/zabbix _ proxy . conf
server = 192 . 168 . 30 . 107 # IP server port = 10051 # server = 10051 #服务器的端口主机名= http://zbxproxy.along.com #主机名ListenPort=10051 #代理自己的监听端口EnableRemoteCommands=1 #允许远程命令LogRemoteCommands=1 #记录远程命令的日志数据的配置需要多长时间db host = 192 . 168 . 30 . 3 dbname = zbxpydroxdbus = zbxproxuser db password = zbxprox去服务器把自己监控的操作配置拖过来。为了让实验更快见效,这里设置了30秒,默认值为3600s DataSenderFrequency=1 #。每秒向服务器发送数据,以及发送的频率。
② systemctl start zabbix-proxy启动服务
(5)配置节点2以允许代理监控。
vim/etc/zabbix/zabbix _ agentd . conf
服务器=192.168.30.107,192.168.30.3服务器活动=192.168.30.107,192.168.30.3
system CTL restart zabbix-代理启动服务
(6)将代理添加到监控服务器,并创建一个配置代理代理。
①创建代理agent。
②配置
(7)创建node2主机,并通过代理对其进行监控。
代理安装成功。
(8)创建项目监控项目。
①为实验创建一个监控项CPU开关。
②过程中的设置每秒都在变化。
③成功,图形图形生成
八、查询使用网上模板监控1、找官方的share 分享网站
搜索zabbix在https://cn.bing.com/的份额
比如我们要监控Nginx,我们会找一个模板。
以这个模板为例。
2、在node1 上使用此模板
(1)安装和配置nginx
① yum -y安装nginx
Vim /etc/nginx/nginx.conf按照网页的说明操作。
位置/stub _ status { stub _ status on;access _ log off#允许127 . 0 . 0 . 1;#为了操作方便,我取消了# deny all的访问控制;}
②开始服务。
systemctl重新启动nginx
(2)下载模板所依赖的脚本。
mkdir -p /srv/zabbix/libexec/
cd /srv/zabbix/libexec/
WGET https://raw . githubusercontent . com/oscm/zabbix/master/nginx/nginx . sh从网页获取脚本
Chmod +x nginx.sh加上执行权限
(3)配置代理的UserParameter用户参数
cd /etc/zabbix/zabbix_agentd.d/
WGET https://raw . githubusercontent . com/oscm/zabbix/master/nginx/user parameter _ nginx . conf很短,可以自己写。
(4)下载windows上的模板,导入到本服务器的模板中。
WGET https://raw . githubusercontent . com/oscm/zabbix/master/nginx/zbx _ export _ templates . XML现在可以在linux上下载,然后sz导出到windows。
①导入下载的模板。
②主机node1链接此模板。
③模板生效。
九、zabbix-server 监控自己,数据库,nginx1、下载安装,配置agent
vim/etc/zabbix/zabbix _ agent . conf配置代理
Bleremotecommands = 1允许远程命令LogRemoteCommands=1记录远程命令Server = 127 . 0 . 0 . 1 Server active = 127 . 0 . 0 . 1 hostname = http://server.along.com
2、自动生成Zabbix server 的主机3、在主机中添加模板4、启用Zabbix server5、监控到数据十、调优1、调优
①数据库:
历史数据不要保存太久;
尝试在数据库服务器的内存中缓存数据;
②触发器表达式:减少聚合函数min()、max()、avg()的使用;尽量使用last(),no data();
因为聚合函数,所以需要操作
③数据收集:轮询慢(减少使用SNMP/Agent less/Agent);尽量用诱捕(代理(主动)主动监控);
④数据类型:文本数据处理速度慢;尽量少收集文本或字符串类型的数据;使用多种类型的数字数据;
2、zabbix服务器的进程
(1)服务器组件的数量;
警报器,发现者,自动扶梯,http轮询器,hourekeeper,icmp pinger,ipmi轮询器,轮询器,捕获器,配置同步器,…
StartPollers=60
启动次数=10
…
StartDBSyncer=5
…
(2)设置合理的缓存大小。
缓存大小=8M
HistoryCacheSize=16M
HistoryIndexCacheSize=4M
TrendCacheSize=4M
ValueCacheSize=4M
(3)数据库优化
子表:
历史_*
趋势*
事件*
资料来源:https://www.cnblogs.com/along21/p/8119088.html
本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://51itzy.com/18422.html