Zabbix 3.0 从入门到精通(zabbix使用详解)
Zabbix 3.0 从入门到精通(zabbix使用详解)
第1章 zabbix监控
1.1 为什么要监控
在需要的时刻,提前提醒我们服务器出问题了
当出问题之后,可以找到问题的根源
网站/服务器 的可用性
1.1.1 网站可用性
在软件系统的高可靠性(也称为可用性,英文描述为HA,High Available)里有个衡量其可靠性的标准——X个9,这个X是代表数字3~5。X个9表示在软件系统1年时间的使用过程中,系统可以正常使用时间与总时间(1年)之比,我们通过下面的计算来感受下X个9在不同级别的可靠性差异。
1个9:(1-90%)*365=36.5天,表示该软件系统在连续运行1年时间里最多可能的业务中断时间是36.5天
2个9:(1-99%)*365=3.65天 , 表示该软件系统在连续运行1年时间里最多可能的业务中断时间是3.65天
3个9:(1-99.9%)*365*24=8.76小时,表示该软件系统在连续运行1年时间里最多可能的业务中断时间是8.76小时。
4个9:(1-99.99%)*365*24=0.876小时=52.6分钟,表示该软件系统在连续运行1年时间里最多可能的业务中断时间是52.6分钟。
5个9:(1-99.999%)*365*24*60=5.26分钟,表示该软件系统在连续运行1年时间里最多可能的业务中断时间是5.26分钟。
6个9:(1-99.9999%)*365*24*60*60=31秒, 示该软件系统在连续运行1年时间里最多可能的业务中断时间是31秒
1.2 监控什么东西
监控一切需要监控的东西,只要能够想到,能够用命令实现的都能用来监控
1.2.1 监控范畴
1.3 怎么来监控
1.3.1 远程管理服务器
如果想远程管理服务器就有远程管理卡,比如Dell idRAC,HP ILO,IBM IMM
1.3.2 监控硬件
查看硬件的温度/风扇转速,电脑有鲁大师,服务器就有ipmitool。
使用ipmitool实现对服务器的命令行远程管理
yum -y install OpenIPMI ipmitool #\->IPMI在物理机可以成功,虚拟机不行
\[root@KVM ~\]# ipmitool sdr type Temperature
Temp | 01h | ns | 3.1 | Disabled
Temp | 02h | ns | 3.2 | Disabled
Temp | 05h | ns | 10.1 | Disabled
Temp | 06h | ns | 10.2 | Disabled
Ambient Temp | 0Eh | ok | 7.1 | 22 degrees C
Planar Temp | 0Fh | ns | 7.1 | Disabled
IOH THERMTRIP | 5Dh | ns | 7.1 | Disabled
CPU Temp Interf | 76h | ns | 7.1 | Disabled
Temp | 0Ah | ns | 8.1 | Disabled
Temp | 0Bh | ns | 8.1 | Disabled
Temp | 0Ch | ns | 8.1 | Disabled
1.3.3 查看cpu相关
lscpu
、uptime
、top
、htop vmstat mpstat
其中htop需要安装,安装依赖与epel源。
[znix@clsn ~]$lscpu
Architecture: x86\_64
CPU op\-mode(s): 32-bit, 64-bit
Byte Order: Little Endian
CPU(s): 1
On\-line CPU(s) list: 0
Thread(s) per core: 1
Core(s) per socket: 1
Socket(s): 1
NUMA node(s): 1
Vendor ID: GenuineIntel
CPU family: 6
Model: 85
Model name: Intel(R) Xeon(R) Platinum 8163 CPU @ 2.50GHz
Stepping: 4
CPU MHz: 2494.150
BogoMIPS: 4988.30
Hypervisor vendor: KVM
Virtualization type: full
L1d cache: 32K
L1i cache: 32K
L2 cache: 1024K
L3 cache: 33792K
NUMA node0 CPU(s): 0
1.3.4 内存够不够可以用
free
[znix@clsn ~]$free -htotal used free shared buffers cached
Mem: 996M 867M 128M 712K 145M 450M
\-/+ buffers/cache: 271M 725M
Swap: 1.0G 0B 1.0G
1.3.5 磁盘剩多少写的快不快可以用
df
、dd
、iotop
[znix@clsn ~]$df -h
Filesystem Size Used Avail Use% Mounted on
/dev/vda1 40G 24G 15G 62% /
tmpfs 499M 20K 499M 1% /dev/shm
/dev/vdb1 20G 4.4G 15G 24% /data
1.3.6 监控网络
iftop
nethogs
iftop
监控主机间流量 -i 指定监控网卡
nethogs
监控进程流量
1.4 监控工具总览
mrtg
流量监控出图
nagios
监控
cacti
流量监控出图
zabbix **监控+**出图
1.5 zabbix介绍
Zabbix 是由 Alexei Vladishev 开发的一种网络监视、管理系统,基于 Server-Client 架构。可用于监视各种网络服务、服务器和网络机器等状态。
使用各种 Database-end 如 MySQL, PostgreSQL, SQLite, Oracle 或 IBM DB2 储存资料。Server 端基于 C语言、Web 管理端 frontend 则是基于 PHP 所制作的。Zabbix 可以使用多种方式监视。可以只使用 Simple Check 不需要安装 Client 端,亦可基于 SMTP 或 HTTP … 各种协定做死活监视。
在客户端如 UNIX, Windows 中安装 Zabbix Agent 之后,可监视 CPU Load、网络使用状况、硬盘容量等各种状态。而就算没有安装 Agent 在监视对象中,Zabbix 也可以经由 SNMP、TCP、ICMP、利用 IPMI、SSH、telnet 对目标进行监视。
另外,Zabbix 包含 XMPP 等各种 Item 警示功能。
1.5.1 zabbix的组成
zabbix官网: https://www.zabbix.com
zabbix 主要由2部分构成 zabbix server和 zabbix agent
zabbix proxy是用来管理其他的agent,作为代理
1.5.2 zabbix监控范畴
² 硬件监控 :Zabbix IPMI Interface
² 系统监控 :Zabbix Agent Interface
² Java 监控:ZabbixJMX Interface
² 网络设备监抟:Zabbix SNMP Interface
² 应用服务监控:Zabbix Agent UserParameter
² MySQL 数据库监控:percona-monitoring-pldlgins
² URL监控:Zabbix Web监控
第2章 安装zabbix
2.1 环境检查
\[root@m01 ~\]# cat /etc/redhat-release
CentOS Linux release 7.4.1708 (Core)\[root@m01 ~\]# uname -r
3.10.0-693.el7.x86\_64\[root@m01 ~\]# getenforce
Disabled\[root@m01 ~\]# systemctl status firewalld.service
● firewalld.service - firewalld - dynamic firewall daemonLoaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)Active: inactive (dead)Docs: man:firewalld(1)
2.2 安装zabbix过程
2.2.1 安装方式选择
编译安装 (服务较多,环境复杂)
yum安装(干净环境)
使用yum 需要镜像yum源 http://www.cnblogs.com/clsn/p/7866643.html
2.2.2 服务端快速安装脚本
注意:在导入sql文件时,注意文件地址,因版本差异,地址中的版本号会不一样
#!/bin/bash
#clsn#设置解析 注意:网络条件较好时,可以不用自建yum源
#echo '10.0.0.1 mirrors.aliyuncs.com mirrors.aliyun.com repo.zabbix.com' >> /etc/hosts#安装zabbix源、aliyun YUM源
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
curl \-o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
rpm \-ivh http://repo.zabbix.com/zabbix/3.0/rhel/7/x86\_64/zabbix-release-3.0-1.el7.noarch.rpm#安装zabbix
yum install -y zabbix-server-mysql zabbix-web-mysql#安装启动 mariadb数据库
yum install -y mariadb-server
systemctl start mariadb.service#创建数据库
mysql -e 'create database zabbix character set utf8 collate utf8\_bin;'
mysql \-e 'grant all privileges on zabbix.\* to zabbix@localhost identified by "zabbix";'#导入数据
zcat /usr/share/doc/zabbix-server-mysql-3.0.13/create.sql.gz|mysql -uzabbix -pzabbix zabbix#配置zabbixserver连接mysql
sed -i.ori '115a DBPassword=zabbix' /etc/zabbix/zabbix\_server.conf#添加时区
sed -i.ori '18a php\_value date.timezone Asia/Shanghai' /etc/httpd/conf.d/zabbix.conf#解决中文乱码
yum -y install wqy-microhei-fonts
\\cp /usr/share/fonts/wqy-microhei/wqy-microhei.ttc /usr/share/fonts/dejavu/DejaVuSans.ttf#启动服务
systemctl start zabbix-server
systemctl start httpd#写入开机自启动
chmod +x /etc/rc.d/rc.local
cat \>>/etc/rc.d/rc.local<<EOF
systemctl start mariadb.service
systemctl start httpd
systemctl start zabbix\-server
EOF#输出信息
echo "浏览器访问 http://\`hostname -I|awk '{print $1}'\`/zabbix"
2.2.3 客户端快速部署脚本
#!/bin/bash
#clsn#设置解析
echo '10.0.0.1 mirrors.aliyuncs.com mirrors.aliyun.com repo.zabbix.com' >> /etc/hosts#安装zabbix源、aliyu nYUM源
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
curl \-o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
rpm \-ivh http://repo.zabbix.com/zabbix/3.0/rhel/7/x86\_64/zabbix-release-3.0-1.el7.noarch.rpm#安装zabbix客户端
yum install zabbix-agent -y
sed \-i.ori 's#Server=127.0.0.1#Server=172.16.1.61#' /etc/zabbix/zabbix\_agentd.conf
systemctl start zabbix\-agent.service#写入开机自启动
chmod +x /etc/rc.d/rc.local
cat \>>/etc/rc.d/rc.local<<EOF
systemctl start zabbix\-agent.service
EOF
2.3 检测连通性
2.3.1 服务端安装zabbix-get检测工具
yum install zabbix-get
2.3.2 在服务端进行测试
注意:只能在服务端进行测试
zabbix\_get -s 172.16.1.61 -p 10050 -k "system.cpu.load\[all,avg1\]"
zabbix\_get \-s 172.16.1.21 -p 10050 -k "system.cpu.load\[all,avg1\]"
测试结果
\[root@m01 ~\]# zabbix\_get -s 172.16.1.61 -p 10050 -k "system.cpu.load\[all,avg1\]"
0.000000\[root@m01 ~\]# zabbix\_get -s 172.16.1.21 -p 10050 -k "system.cpu.load\[all,avg1\]"
0.000000
第3章 web界面操作
3.1 zabbix的web安装
3.1.1 使用浏览器访问
http://10.0.0.61/zabbix/setup.php
在检测信息时,可查看具体的报错信息进行不同的解决
选择mysql数据库,输入密码即可
host与port不需要修改,name自定义
确认信息,正确点击下一步
安装完成、点击finsh
进入登陆界面 账号Admin
密码zabbix
,注意A大写
3.2 添加监控信息
3.2.1 修改监控管理机zabbix server
配置 >> 主机
主机名称: 要与主机名相同,这是zabbix server程序用的
可见名称: 显示在zabbix网页上的,给我们看的
修改后,要将下面的已启用要勾上
添加完成就有了管理机的监控主机
3.2.2 添加新的主机
配置 >> 主机 >> 创建主机
注意勾选以启用
然后添加模板,选择linux OS ,先点小添加,再点大添加。
添加完成,将会又两条监控主机信息
3.2.3 查看监控内容
检测中 >> 最新数据
在最新数据中需要筛选,
输入ip或者名字都能够搜索出来
在下面就会列出所有的监控项
3.2.4 查看图像
检测中 >> 图形
选择正确的主机。选择要查看的图形即可出图
第4章 自定义监控与监控报警
4.1 自定义监控
4.1.1 说明
zabbix自带模板Template OS Linux (Template App Zabbix Agent)提供CPU、内存、磁盘、网卡等常规监控,只要新加主机关联此模板,就可自动添加这些监控项。
**需求:**服务器登陆人数不能超过三人,超过三人报警
4.1.2 预备知识
自定义key能被server和agent认可
正确的key
\[root@m01 ~\]# zabbix\_get -s 172.16.1.21 -p 10050 -k "system.uname"
Linux cache01 3.10.0-693.el7.x86\_64 #1 SMP Tue Aug 22 21:09:27 UTC 2017 x86\_64
没有登记的,自定义的key
\[root@m01 ~\]# zabbix\_get -s 172.16.1.21 -p 10050 -k "login-user"
ZBX\_NOTSUPPORTED: Unsupported item key.
写错的key
\[root@m01 ~\]# zabbix\_get -s 172.16.1.21 -p 10050 -k "system.uname1"
ZBX\_NOTSUPPORTED: Unsupported item key.
4.2 实现自定义监控
4.2.1 自定义语法
UserParameter=<key>,<shell command>
UserParameter\=login-user,who|wc -l
UserParameter\=login-user,/bin/sh /server/scripts/login.sh
4.2.2 agent注册
\[root@cache01 ~\]# cd /etc/zabbix/zabbix\_agentd.d/
\[root@cache01 zabbix\_agentd.d\]# vim userparameter\_login.conf
UserParameter=login-user,who|wc -l
UserParameter\=login-user2,who|wc -l
UserParameter\=login-user3,who|wc -l
注意:key名字要唯一,多个key以行为分割
修改完成后重启服务
[root@cache01 zabbix_agentd.d]# systemctl restart zabbix-agent.service
在server端进行get测试
\[root@m01 ~\]# zabbix\_get -s 172.16.1.21 -p 10050 -k "login-user"
3\[root@m01 ~\]# zabbix\_get -s 172.16.1.21 -p 10050 -k "login-user2"
3\[root@m01 ~\]# zabbix\_get -s 172.16.1.21 -p 10050 -k "login-user3"
3\[root@m01 ~\]# zabbix\_get -s 172.16.1.21 -p 10050 -k "login-user4"
ZBX\_NOTSUPPORTED: Unsupported item key.
4.2.3 在server端注册(web操作)
① 创建模板
配置 >> 模板 >> 创建模板
点击添加,即可创建出来模板
查看创建出来的模板。↑
② 创建应用集
应用集类似(目录/文件夹),其作用是给监控项分类。
点击 应用集 >> 创建应用集
自定义应用集的名称,然后点击添加
③ 创建监控项
监控项 >> 创建监控项
键值 – key,即前面出创建的login-user。
注意:创建监控项的时候,注意选择上应用集,即之前创建的安全。
④ 创建触发器
触发器的作用:当监控项获取到的值达到一定条件时就触发报警
*(*根据需求创建)
触发器 >> 创建触发器
创建触发器,自定义名称,该名称是报警时显示的名称。
表达式,点击右边的添加,选择表达式。
严重性自定义。
表达式的定义 ↓ ,选择之前创建的监控项,
最新的T值为当前获取到的值。
添加完成,能够在触发器中看到添加的情况
⑤ 创建图形
以图形的方式展示出来监控信息
图形 >> 创建图形
名称自定义,关联上监控项。
⑥ 主机关联模板
配置 >> 主机
一个主机可以关联多个模板
4.2.4 查看监控的图形
4.3 监控报警
4.3.1 第三方报警平台
http://www.onealert.com
通过 OneAlert 提供的通知分派与排班策略,以及全方位的短信、微信、QQ、电话提醒服务,您可以在最合适的时间,将最重要的信息推送给最合适的人员。
4.3.2 onealert配置
添加应用,注意添加的是zabbix
实现微信报警需要关注微信公众号即可。
4.3.3 安装 onealert Agent
- 切换到zabbix脚本目录(如何查看zabbix脚本目录):
cd /usr/local/zabbix-server/share/zabbix/alertscripts#查看zabbix脚本目录
vi /etc/zabbix/zabbix\_server.conf
查看AlertScriptsPath
- 获取OneITSM agent包:
wget http://www.onealert.com/agent/release/oneitsm\_zabbix\_release-1.0.1.tar.gz
- 解压、安装。
tar -zxf oneitsm\_zabbix\_release-1.0.1.tar.gz
cd oneitsm/bin
bash install.sh \--#个人生成的key
注:在安装过程中根据安装提示,输入zabbix管理地址、管理员用户名、密码。
Zabbix管理地址: http://10.0.0.61/zabbix/
Zabbix管理员账号: Admin
Zabbix管理员密码: zabbix
- 当提示"安装成功"时表示安装成功!
验证告警集成
产生新的zabbix告警(problem),动作状态为“已送达”表示集成成功。
4.3.1 如何删除onealert Agent
① 删除报警媒介类型中的脚本
② 删除创建的用户
③ 删除用户群组
④ 删除创建的动作
4.3.2 触发器响应,发送报警信息
在微信和邮件中,均能收到报警信息。
注意:当状态改变的时候才会发邮件
好–>坏
坏–>好
4.4 监控可视化
4.4.1 聚合图形
最新数据 >> 图形
自定义名称
点击聚合图形的名称,进行更改,添加要显示的图形即可。
4.4.2 幻灯片
添加幻灯片
监测中 >> 复合图形 >> 幻灯片演示
创建幻灯片,名称自定,选择要显示的
幻灯片根据设定的时间自动播放
4.5 模板的共享
4.5.1 主机共享
在主机页打开,全选后点击导出
导入
4.5.2 模板共享
https://github.com/zhangyao8/zabbix-community-repos
第5章 监控全网服务器
5.1 需求说明
实际需求:
公司已经有了100台服务器,现在需要使用zabbix全部监控起来。
5.2 规划方案
常规监控:cpu,内存,磁盘,网卡 问题:怎样快速添加100台机器
方法1:使用克隆的方式
方法2:自动注册和自动发现
方法3:调用zabbix api接口 curl 、python
开发自己的运维平台兼容zabbix的通道
服务监控,url****监控等特殊监控:自定义监控
5.2.1 api接口使用(curl)
curl -i -X POST -H 'Content-Type:application/json' -d'{"jsonrpc": "2.0","method":"user.login","params":{"user":"Admin","password":"zabbix"},"auth": null,"id":0}' "http://10.0.0.61/zabbix/api\_jsonrpc.php"curl \-i -X POST -H 'Content-Type:application/json' -d'
{"jsonrpc": "2.0","method": "host.get","params": {"output": \["hostid","host"\],"selectInterfaces": \["interfaceid","ip"\]},"id": 2,"auth": "6a450a8fc3dce71fd310cfe338746578"
}' "http://10.0.0.61/zabbix/api\_jsonrpc.php"
5.3 具体实施规划
5.3.1 硬件、系统、网络监控
所有集群节点(所有虚拟机)都监控上
交换机,路由器监控(简单方法:换成端口对应服务器网卡流量监控;标准方法:监控交换机的网卡)
snmp监控
5.3.2 应用服务监控
-
监控备份服务器,简单方法是监控rsync端口,如果有其他更佳方案可以说明;
方法1:监控873端口
net.tcp.port[,873]
方法2:模拟推送拉取文件 -
监控NFS服务器,使用监控NFS进程来判断NFS服务器正常,如果有其他更佳方案可以说明;
方法1:端口(通过111的rpc端口获取nfs端口)
net.tcp.port[,111]
方法2:showmount \-e ip|wc -l
-
监控MySQL服务器,简单方法监控mysql的3306端口,或者使用zabbix提供的Mysql模板,如果有其他更佳方案可以说明;
方法1:端口(通过3306的mysql端口)
net.tcp.port[,3306]
方法2:mysql远程登录
方法3:使用zabbix agent自带的模板及key -
监控2台web服务器,简单方法监控80端口,如果有其他更佳方案可以说明;
方法1:端口(通过80的web端口)
net.tcp.port[,80]
方法2:看网页状态码、返回内容==zabbix 自带WEB检测 -
监控URL地址来更精确的监控我们的网站运行正常;
使用zabbix自带的监控Web监测 进行监控
-
监控反向代理服务器,PPTP服务器等你在期中架构部署的服务。
nginx,pptp
ntp 端口udp 123
-
监控Nginx的7种连接状态。
自定义监控
5.3.3 监控服务通用方法
-
监控端口 netstat ss lsof ==》 wc -l
-
监控进程 ps -ef|grep 进程|wc -l 试运行一下
-
模拟客户端的使用方式监控服务端
web ==》 curl
mysql ==》 select insert
memcache ==》 set再get
5.4 实施全网监控
安装客户端脚本,for centos6
#!/bin/bash#设置解析
# echo '10.0.0.1 mirrors.aliyuncs.com mirrors.aliyun.com repo.zabbix.com' >> /etc/hosts#安装zabbix源、aliyu nYUM源
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo
curl \-o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo
rpm \-ivh http://repo.zabbix.com/zabbix/3.0/rhel/6/x86\_64/zabbix-release-3.0-1.el6.noarch.rpmyum clean all
yum clean all
#安装zabbix客户端
yum install zabbix-agent -y
sed \-i.ori 's#Server=127.0.0.1#Server=172.16.1.61#' /etc/zabbix/zabbix\_agentd.conf
/etc/init.d/zabbix-agent start#写入开机自启动
chmod +x /etc/rc.d/rc.local
cat \>>/etc/rc.d/rc.local<<EOF
/etc/init.d/zabbix-agent start
EOF
5.4.1 使用自动发现规则
添加自动发现规则
创建发现动作
查看自动发现的机器。
5.4.2 监控备份服务器
利用系统自带键值进行监控net.tcp.listen[port] 创建新的模板
在服务端进行测试
\[root@m01 ~\]# zabbix\_get -s 172.16.1.41 -p 10050 -k "net.tcp.listen\[873\]"
1
1为端口在监听 0为端口未监听
将模板添加到主机
5.4.3 监控NFS服务器
创建nfs监控模板
使用 proc.num[,,,] 键值,检测nfs进程的数量
在服务端进行测试
\[root@m01 ~\]# zabbix\_get -s 172.16.1.31 -p 10050 -k "proc.num\[,,,rpc\]"
5\[root@m01 ~\]# zabbix\_get -s 172.16.1.31 -p 10050 -k "proc.num\[nfsd,,,\]
8
将模板绑定到主机
5.4.4 监控MySQL服务器
将自带的mysqlkey值加上mysql的账户密码,否则不能获取到数据。
使用系统自带模板 net.tcp.port[,port] 利用自带的监控端口键值进行监控
添加新的mysql监控项端口
\[root@m01 ~\]# zabbix\_get -s 172.16.1.51 -p 10050 -k "net.tcp.port\[,3306\]"
1
#检查是否能建立 TCP 连接到指定端口。返回 0 - 不能连接;1 - 可以连接
将模板关联到主机
5.4.5 监控web服务器
创建监控模板 监控 nginx服务与 80 端口
proc.num\[<name>,<user>,<state>,<cmdline>\] 进程数。返回整数
net.tcp.port\[<ip>,port\] 检查是否能建立 TCP 连接到指定端口。返回 0 - 不能连接;1 - 可以连接
\[root@m01 ~\]# zabbix\_get -s 172.16.1.8 -p 10050 -k "proc.num\[,,,nginx\]"
2\[root@m01 ~\]# zabbix\_get -s 172.16.1.8 -p 10050 -k "net.tcp.port\[,80\]"
1
将模板关联到主机
5.4.6 监控URL地址
创建监测页面
echo ok >> /application/nginx/html/www/check.html
测试监控面页
\[root@web03 ~\]# for ip in 7 8 9 ;do curl 10.0.0.$ip/check.html ;done
ok
ok
ok
创建web监测模板
创建应用集
创建Web**场景
创建图形
将模板关联到主机
监测结果
5.4.7 监控反向代理服务器
创建自定义key
\[root@lb01 ~\]# cat /etc/zabbix/zabbix\_agentd.d/userparameter\_nk.conf
UserParameter=keep-ip,ip a |grep 10.0.0.3|wc -l
在服务端测试
\[root@m01 ~\]# zabbix\_get -s 172.16.1.5 -p 10050 -k "keep-ip"
1\[root@m01 ~\]# zabbix\_get -s 172.16.1.6 -p 10050 -k "keep-ip"
0
在web界面添加模板
将模板关联到主机
5.4.8 监控Nginx的7种连接状态
[[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-duExnAHj-1676428691194)(//common.cnblogs.com/images/copycode.gif)]](javascript:void(0); “复制代码”)
nginx服务器显示status
location /status {stub_status on;access_log off;
}
\[root@web01 ~\]# for ip in 7 8 9 ;do curl 172.16.1.$ip/status ;done
Active connections: 1
server accepts handled requests73 73 69
Reading: 0 Writing: 1 Waiting: 0Active connections: 1
server accepts handled requests134 134 127
Reading: 0 Writing: 1 Waiting: 0Active connections: 1
server accepts handled requests7 7 7
Reading: 0 Writing: 1 Waiting: 0
在nginx服务器上添加key
cat >/etc/zabbix/zabbix\_agentd.d/userparameter\_nginx\_status.conf <<'EOF'
UserParameter\=nginx\_active,curl -s 127.0.0.1/status|awk '/Active/ {print $NF}'
UserParameter\=nginx\_accepts,curl -s 127.0.0.1/status|awk 'NR==3 {print $1}'
UserParameter\=nginx\_handled,curl -s 127.0.0.1/status|awk 'NR==3 {print $2}'
UserParameter\=nginx\_requests,curl -s 127.0.0.1/status|awk 'NR==3 {print $3}'
UserParameter\=nginx\_reading,curl -s 127.0.0.1/status|awk 'NR==4 {print $2}'
UserParameter\=nginx\_writing,curl -s 127.0.0.1/status|awk 'NR==4 {print $4}'
UserParameter\=nginx\_waiting,curl -s 127.0.0.1/status|awk 'NR==4 {print $6}'
EOF
服务端测试
\[root@m01 ~\]# zabbix\_get -s 172.16.1.7 -p 10050 -k "nginx\_waiting"
0\[root@m01 ~\]# zabbix\_get -s 172.16.1.8 -p 10050 -k "nginx\_waiting"
0\[root@m01 ~\]# zabbix\_get -s 172.16.1.9 -p 10050 -k "nginx\_waiting"
0
在zabbix-web上添加
监控项
添加图形
将模板关联到主机
查看添加的图形
第6章 自动发现与自动注册
6.1 自动注册与自动注册
6.1.1 简介
自动发现:
zabbix Server主动发现所有客户端,然后将客户端登记自己的小本本上,缺点zabbix server压力山大(网段大,客户端多),时间消耗多。
自动注册:
zabbix agent主动到zabbix Server上报到,登记;缺点agent有可能找不到Server(配置出错)
6.1.2 两种模式
被动模式:默认 agent被server抓取数据 (都是在agent的立场上说)
主动模式:agent主动将数据发到server端 (都是在agent的立场上说)
**注意:** **两种模式都是在agent****上进行配置****zabbix** **的使用要在hosts****文件中预先做好主机名的解析**
6.2 自动发现–被动模式
第一个里程碑:完成之前的安装
zabbix Server安装完毕
第二个里程碑:配置agent客户端
zabbix agent安装完毕,注意配置Server=172.16.1.61
第三个里程碑:在web界面上进行配置
web界面:配置 >> 自动发现 >> Local network使用自带的自动发现规则(进行修改)即可
在ip范围内输入ip,注意格式;
延迟在实际的生产环境中要大一些,实验环境可以小一些
创建发现动作
配置 >> 动作 >> Auto discovery. Linux servers.
① 配置动作
② 在条件中添加条件,让添加更准确
③ 在操作中添加
a) 添加主机与启用主机
然后等待者客户端自动上门就好😏
6.3 自动注册–主动模式
第一个里程碑:zabbix Server安装完毕 (完成)
zabbix Server安装完毕
第二个里程碑:zabbix agent安装完毕,需要额外增加的配置
vim /etc/zabbix/zabbix\_agentd.conf
ServerActive\=172.16.1.61
# Hostname=Zabbix server
HostnameItem=system.hostnamesystemctl restart zabbix\-agent.service
netstat \-tunlp|grep zabbix
源文件与修改后对比
第三个里程碑:在web见面上进行配置
1 配置 >> 动作 >> 事件源(自动注册) >> 创建动作
创建动作,添加名称即可
条件中也无需修改
在动作中添加动作
(添加主机、添加到主机群组、链接到模板)
添加完动作后,等待就行了注意:重启客户端可以加速发现。但是在生产环境中勿用。
第7章 分布式监控与SNMP监控
7.1 分布式监控
7.1.1 作用
分担压力,减轻负载
多机房监控
zabbix Server ===》 zabbix agent (只能同一个局域网监控)
分担压力,降低负载
zabbix Server ===》 zabbix proxy ===》zabbix agent1 agent2 agent3 。。。
172.16.1.61 172.16.1.21 172.16.1.0/24
===》 zabbix proxy ===》zabbix agent4 agent5 agent6 。。。
多机房监控
zabbix Server(北京) ==》 zabbix proxy(每个机房搭建) ==》 zabbix agent
122.71.240.233/172.16.1.61 122.71.241.11/172.16.2.21 172.16.2.0/24
7.1.2 环境说明
zabbix server m01
zabbix proxy cache01
zabbix agent cache01
7.1.3 配置zabbix proxy
第一个里程碑:配置zabbix yum源,并安装proxy
rpm -ivh http://repo.zabbix.com/zabbix/3.0/rhel/7/x86_64/zabbix-release-3.0-1.el7.noarch.rpm
yum install zabbix-proxy-mysql -y
第二个里程碑:安装数据库
zabbix proxy也需要数据库,这个数据库不是用于存储监控数据的 只是用于存储配置信息
#安装数据库
yum -y install mariadb-server
systemctl start mariadb.service
#建立数据库
mysql
create database zabbix\_proxy character set utf8 collate utf8\_bin;
grant all privileges on zabbix\_proxy.\* to zabbix@'localhost' identified by 'zabbix';
exit
#导入数据文件
zcat /usr/share/doc/zabbix-proxy-mysql-3.0.13/schema.sql.gz |mysql -uzabbix -pzabbix zabbix\_proxy
#配置zabbix proxy 连接数据库
sed -i.ori '162a DBPassword=zabbix' /etc/zabbix/zabbix\_proxy.conf
sed \-i 's#Server=127.0.0.1#Server=172.16.1.61#' /etc/zabbix/zabbix\_proxy.conf
sed \-i 's#Hostname=Zabbix proxy#Hostname=cache01#' /etc/zabbix/zabbix\_proxy.conf
Hostname 作为后面添加的代理程序名称,要保持一致
#启动
systemctl restart zabbix-proxy.service
#检查端口
\[root@cache01 ~\]# netstat -lntup |grep zabbix
tcp 0 0 0.0.0.0:10050 0.0.0.0:\* LISTEN 105762/zabbix\_agent
tcp 0 0 0.0.0.0:10051 0.0.0.0:\* LISTEN 85273/zabbix\_proxy
tcp6 0 0 :::10050 :::\* LISTEN 105762/zabbix\_agent
tcp6 0 0 :::10051 :::\* LISTEN 85273/zabbix\_proxy
**第三个里程碑:**修改agent配置指向 proxy
\[root@cache01 ~\]# grep ^Server /etc/zabbix/zabbix\_agentd.conf
Server=172.16.1.61
ServerActive\=172.16.1.61\[root@cache01 ~\]# sed -i 's#172.16.1.61#172.16.1.21#g' /etc/zabbix/zabbix\_agentd.conf
\[root@cache01 ~\]# grep ^Server /etc/zabbix/zabbix\_agentd.conf
Server=172.16.1.21
ServerActive\=172.16.1.21\[root@cache01 ~\]# systemctl restart zabbix-agent.service
**第四个里程碑:**web界面添加代理
管理 >> agent代理程序 >> 创建代理
代理程序名称要填写主机名
稍等片刻就能在程序中出现代理
在主机中能发现主机代理
7.2 SNMP监控
7.2.1 使用范围
无法安装agent 很多前辈的监控软件都可以监控各种设备 都是通过snmp监控
snmp simple network manager protocol 简单网络管理协议
简单网络管理协议(SNMP),由一组网络管理的标准组成,包含一个应用层协议(application layer protocol)、数据库模型(database schema)和一组资源对象。该协议能够支持网络管理系统,用以监测连接到网络上的设备是否有任何引起管理上关注的情况。
7.2.2 安装snmp程序
yum -y install net-snmp net-snmp-utils
7.2.3 配置snmp程序
sed -i.ori '57a view systemview included .1' /etc/snmp/snmpd.conf
systemctl start snmpd.service
7.2.4 测试snmp
\[root@m01 ~\]# snmpwalk -v 2c -c public 127.0.0.1 sysname
SNMPv2-MIB::sysName.0 = STRING: m01
说明:
# snmpwalk 类似 zabbix_get
# -v 2c 指定使用snmp协议的版本 snmp分为v1 v2 v3
# -c public 指定暗号
# sysname 类似zabbix的key
7.2.5 在web界面进行配置
添加新的主机,注意使用snmp接口
选择模板,注意使用SNMP的模板
添加完成就能够在主机中看到snmp监控对的主机
7.2.6 附录
##SNMP OID列表 监控需要用到的OID
http://www.ttlsa.com/monitor/snmp-oid/
cmdb 资源管理系统
转载至:https://www.cnblogs.com/clsn/p/7885990.html
相关文章:

Zabbix 3.0 从入门到精通(zabbix使用详解)
Zabbix 3.0 从入门到精通(zabbix使用详解) 第1章 zabbix监控 1.1 为什么要监控 在需要的时刻,提前提醒我们服务器出问题了 当出问题之后,可以找到问题的根源 网站/服务器 的可用性 1.1.1 网站可用性 在软件系统的高可靠性(也称为可用性…...

基于JDBC框架的事务管理
事务: Transaction, 是数据库中的一种能够保证多个写操作要么全部成功, 要么全部失败的机制在基于Spring JDBC的数据库编程中, 在业务方法上添加Transactional注解, 即可使得这个业务方法是事务性的举例, 一个银行转账操作, 转账时需要执行的sql语句大致是:UPDATE 存款表 SET 余…...

使用IPV6+DDNS连接内网主机
0、前言 IPV6已经普及多年,但是作为互联网用户好像并没有在实用性上有更多感受,或者说IPV6并没有让普通用户感觉到改变。我作为网络从业者其实也没有过多关注。在工作中普遍遇到的还是基于IPV4的网络,比如各个行业的网络、单位的内网区域和互…...

【新2023】华为OD机试 - 高效的任务规划(Python)
华为 OD 清单查看地址:blog.csdn.net/hihell/category_12199275.html 高效的任务规划 题目 你有 n 台机器编号为1-n,每台都需要完成一项工作, 机器经过配置后都能独立完成一项工作。 假设第i台机器你需要花 Bi 分钟进行设置, 然后开始运行,Ji分钟后完成任务。 现在,你…...

sql复习(数据处理、约束)
一、DML(数据操纵语言) DML(Data Manipulation Language – 数据操纵语言) 可以在下列条件下执行: –向表中插入数据 –修改现存数据 –删除现存数据 事务是由完成若干项工作的DML语句组成的 1.insert语句 使用 INSERT 语句向表中插入数据…...

前端入门~
我们应该怎样理解前端呢?前端即网站前台部分,运行在PC端,移动端等浏览器上展现给用户浏览的网页。随着互联网技术的发展,HTML5,CSS3,前端框架的应用,跨平台响应式网页设计能够适应各种屏幕分辨率…...

工业网关控制器CK-GW06-E01与欧姆龙 PLC配置说明
工业网关控制器CK-GW06-E01是一款工业级网关控制器,以太网通信接口,支持 EtherNet IP|Modbus TCP 工业协议。可实现一拖六,同时带有六组输入 检测 IO 和六组输出控制 IO。 本文将重点介绍工业网关控制器CK-GW06-E01与欧姆龙 PLC配置说明。 工…...

uni-app前端H5页面底部内容被tabbar遮挡
如果你想在原生 tabbar 上方悬浮一个菜单,之前写 bottom:0。这样的写法编译到 h5 后,这个菜单会和 tabbar 重叠,位于屏幕底部。 原码: <view style"position: fixed;bottom:0;left: 0;background-color: #007AFF;right: …...

昇腾CANN算子开发揭秘
开发者在利用昇腾硬件进行神经网络模型训练或者推理的过程中,可能会遇到以下场景:1、训练场景下,将第三方框架(例如TensorFlow、PyTorch等)的网络训练脚本迁移到昇腾AI处理器时遇到了不支持的算子。2、推理场景下&…...

华为OD机试注意事项,备考思路,刷题要点,答疑,od Base 提供
华为 OD 机试是华为公司用于招聘岗位的一种在线编程测试,通常要求应聘者在规定的时间内完成一定数量的编程题目,以测试其编程能力和解决问题的能力。 本篇博客就华为 OD 机试注意事项,备考思路,刷题要点,答疑为大家一一…...

Python 自己简单地造一个轮子.whl文件
造轮子引言准备文件原始文件打包轮子文件运行验证引言 平时使用的python第三方库很顺手,这第三方库一般都是大家一起努力的结果,那我们是不是也可以贡献一点力量呢?首先从造一个本地的.whl文件开始。 在python中,引用第三方库时…...

NVIDIA Tesla V100部署与使用
在先前的实验过程中,使用了腾讯云提供的nvidia T4GPU,尽管其性能较博主的笔记本有了极大提升,但总感觉仍有些美中不足,因此本次博主租赁了nvidia V100 GPU,看看它的性能表现如何。 和先前一样,只需要将服务…...

网络知识点梳理与总结
作者简介:一名云计算网络运维人员、每天分享网络与运维的技术与干货。 座右铭:低头赶路,敬事如仪 个人主页:网络豆的主页 目录 前言 一.知识点梳理 前言 本章将会对高级网络应用一些知识点进行梳理。 一.知识点梳理 1.单臂的缺陷有哪些?...

我工作5年测试才8K,应届生刚毕业就拿16K?凭什么
我从事手工测试五年了,还拿着8K的死工资,家里还几张嘴需要喂养,我很累,也很迷茫…【某个粉丝跟我的诉说】 为什么手工测试会迷茫呢? 自动化测试、性能测试倒是不会迷茫。 我认为手工测试的迷茫基于两个原因…...

【QT】UDP通信QUdpSocket(单播、广播、组播)
目录1. UDP通信概述2. UDP消息传送的三种模式3. QUdpSocket类的接口函数4. UDP单播和广播代码示例4.1 测试说明4.2 MainWindow.h4.3 MainWindow.cpp4.4 界面展示5. UDP组播代码示例5.1 组播的特性5.2 MainWindow.h5.3 MainWindow.cpp5.4 界面展示1. UDP通信概述 UDP是无连接、…...

【Java】properties 和 yml 的区别
文章目录properties和yml的区别① 定义和定位不同② 语法不同③ yml更好的配置多种数据类型④ yml可以跨语言⑤ 总结properties和yml的区别 这几天刚好看到Spring Boot当中有两种配置文件的方式,但是这两种配置方式有什么区别呢? properties和yml都是S…...

percona软件介绍 、 innobackupex备份与恢复
1. 常用的mysql备份工具 物理备份缺点: 跨平台差。备份时间长、冗余备份、浪费存储空间。 解释如下:如Linux操作系统和Windows操作系统之间,由于文件系统不一样,如Linux操作系统的文件系统是ext4、xfs,Windows操作系统…...

Towards Adversarial Attack on Vision-Language Pre-training Models
摘要虽然视觉-语言预训练模型(VLP)在各种视觉-语言(VL)任务上表现出革命性的改进,但关于其对抗鲁棒性的研究在很大程度上仍未被探索。本文研究了常用VLP模型和VL任务的对抗性攻击。首先,我们分析了不同设置下对抗性攻击的性能。通过研究不同扰动对象和攻…...

2022年最新数据库调查报告:超八成DBA月薪过万,你拖后腿了吗?
数据库管理员属于IT行业高薪职业的一种,近几年关于数据库管理员的薪资统计文章也层出不穷,那么当前,DBA们的薪资究竟到达了怎样的水平呢?墨天轮数据社区发布最新《2022年墨天轮数据库大调查报告》,数据显示超八成DBA月…...

ESP-C3入门10. 创建TCP Client
ESP-C3入门10. 创建TCP Client一、创建 tcp client的一般步骤1. 创建 tcp 套接字2. 配置服务器地址3. 连接服务器4. 发送数据5. 接收数据6. 关闭套接字二、创建tcp_client任务三、示例代码1. tcpClient.h2. tcpClient.c3. main.c一、创建 tcp client的一般步骤 本文示例使用的…...

【Vue】浅谈vue2、vue3响应式原理,vue中数组的响应式,响应式常见问题分析
前言:此处响应式指的是数据响应式变化,而不是页面的响应式布局,页面的响应式布局在我的其他文章中有提到。 一、什么是vue响应式 Vue 最标志性的功能就是其低侵入性的响应式系统。组件状态都是由响应式的 JavaScript 对象组成的。当更改它们…...

股航顶峰先锋一号
{选股} TT:MA(C,30)>MA(C,60) AND MA(C,60)>MA(C,120);{均线多头} DD:C>REF(C,1);{收阳线} QQ:V>REF(V,1);{放量}; TT1:COUNT(L<MA(C,13),5)1; TT2:(C-REF(C,1))/REF(C,1)*100>3; DD1:V>REF(V,1)*2 AND C>REF(C,1); DD2:TT1 AND 0<MA(C,13)AND TT2 …...

MYSQL安装部署--Linux 仓库安装
声明 :# 此次我们安装的 MYSQL 版本是 8.0.32 版本 我们本次安装 MYSQL 总共要介绍 四种方式 # 仓库安装# 本地安装# 容器安装# 源码安装我们本篇介绍的是 仓库安装 仓库安装 下载 MYSQL 安装包 # MYSQL 安装,我们都是基于 MYSQL 官方网站里进行下载~&a…...

NFS服务器搭建
NFS服务器搭建1. NFS简介2. NFS工作原理3. 配置NFS服务端3.1 启动服务3.2 修改配置文件4. 配置NFS客户端1. NFS简介 NFS是Network File System的简写,即网络文件系统. 网络文件系统是FreeBSD支持的文件系统中的一种,也被称为NFS。 NFS允许一个系统在网络上与他人共…...

【数据挖掘实战】——航空公司客户价值分析(K-Means聚类案例)
目录 一、背景和挖掘目标 1、RFM模型缺点分析 2、原始数据情况 3、挖掘目标 二、分析方法与过程 1、初步分析:提出适用航空公司的LRFMC模型 2、总体流程 第一步:数据抽取 第二步:探索性分析 第三步:数据预处理 第四步&…...

AnlogicFPGA-IO引脚约束设置
(https://www.eefocus.com/article/472120.html此链接是一篇关于XillinxFPGA的IO的状态分析,希望自己也要能了解到AnLogic的IO状态并有对此问题的分析能力) 1、DriveStrength: 驱动强度,即最大能驱动的电流大小(见带负…...

Java SSM 笔记(一)重置版
Spring核心技术 **前置课程要求:**请各位小伙伴先完成《JavaWeb》篇、《Java 9-17新特性》篇视频教程之后,再来观看此教程。 **建议:**对Java开发还不是很熟悉的同学,最好先花费半个月到一个月时间大量地去编写小项目࿰…...

centos安装java,目录授权
centos安装java (1)查看可安装版本: yum -y list java* 安装:sudo yum -y install java-17-openjdk.x86_64 验证:java –version (2)二进制安装:下载:wget https://download.oracle.com/java/17/latest/jdk-17_linux-x64_bin.…...

【大数据】HADOOP-YARN容量调度器多队列配置详解实战
简介 Capacity调度器具有以下的几个特性: 层次化的队列设计,这种层次化的队列设计保证了子队列可以使用父队列设置的全部资源。这样通过层次化的管理,更容易合理分配和限制资源的使用。容量保证,队列上都会设置一个资源的占比&a…...

加密技术在android系统安全中的应用
前言android 系统安全内容总结 1、算法基础 算法基础参照linux的全盘加密与文件系统加密在android中的应用的2、预备知识 android系统安全特性用到加密算法的如下表:...