-
2018-11-03 11:08:26
此文章图片所使用的图床有不显示的问题,
原文已迁移至:https://www.clxz.top/2019/03/30/113021/更多相关内容 -
zabbix 使用教程
2018-08-07 15:51:55第1章 zabbix监控 1.1 为什么要监控 在需要的时刻,提前提醒我们服务器出问题了 当出问题之后,可以找到问题的根源 网站/服务器 的可用性 1.1.1 网站可用性 在软件系统的高可靠性(也称为可用性,英文...第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 -h total 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 daemon Loaded: 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 服务端快速安装脚本
#!/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-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/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-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/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
1.切换到zabbix脚本目录(如何查看zabbix脚本目录):
cd /usr/local/zabbix-server/share/zabbix/alertscripts #查看zabbix脚本目录 vi /etc/zabbix/zabbix_server.conf 查看AlertScriptsPath
2.获取OneITSM agent包:
wget http://www.onealert.com/agent/release/oneitsm_zabbix_release-1.0.1.tar.gz
3.解压、安装。
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管理员密码:
4.当提示"安装成功"时表示安装成功!
验证告警集成 产生新的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 应用服务监控
1. 监控备份服务器,简单方法是监控rsync端口,如果有其他更佳方案可以说明;
方法1:监控873端口net.tcp.port[,873] 方法2:模拟推送拉取文件
2. 监控NFS服务器,使用监控NFS进程来判断NFS服务器正常,如果有其他更佳方案可以说明;
方法1:端口(通过111的rpc端口获取nfs端口) net.tcp.port[,111] 方法2:showmount -e ip|wc -l
3. 监控MySQL服务器,简单方法监控mysql的3306端口,或者使用zabbix提供的Mysql模板,如果有其他更佳方案可以说明;
方法1:端口(通过3306的mysql端口) net.tcp.port[,3306] 方法2:mysql远程登录 方法3:使用zabbix agent自带的模板及key
4. 监控2台web服务器,简单方法监控80端口,如果有其他更佳方案可以说明;
方法1:端口(通过80的web端口) net.tcp.port[,80] 方法2:看网页状态码、返回内容==zabbix 自带WEB检测
5. 监控URL地址来更精确的监控我们的网站运行正常;
使用zabbix自带的监控Web监测 进行监控
6. 监控反向代理服务器,PPTP服务器等你在期中架构部署的服务。
nginx,pptp ntp 端口udp 123
7. 监控Nginx的7种连接状态。
自定义监控
5.3.3 监控服务通用方法
1. 监控端口 netstat ss lsof ==》 wc -l
2. 监控进程 ps -ef|grep 进程|wc -l 试运行一下
3. 模拟客户端的使用方式监控服务端
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.rpm yum 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[<name>,<user>,<state>,<cmdline>] 键值,检测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[<ip>,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种连接状态
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 requests 73 73 69 Reading: 0 Writing: 1 Waiting: 0 Active connections: 1 server accepts handled requests 134 134 127 Reading: 0 Writing: 1 Waiting: 0 Active connections: 1 server accepts handled requests 7 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) 添加主机与启用主机
然后等待者客户端自动上门就好
-
zabbix 5.0所有依赖包_最详细的 Zabbix 使用教程
2020-10-22 17:33:31作者:惨绿少年来源:https://www.cnblogs.com/clsn/p/7885990.html目录[-]一、监控概述二、安装Zabbix三、Web界面操作四、自定义监控与监控报警五、监控全网服务器六、自动发现与自动注册七、分布式监控与SNMP监控 ...作者:惨绿少年
来源:https://www.cnblogs.com/clsn/p/7885990.html
目录[-]
一、监控概述
二、安装Zabbix
三、Web界面操作
四、自定义监控与监控报警
五、监控全网服务器
六、自动发现与自动注册
七、分布式监控与SNMP监控
一、监控概述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实现对服务器的命令行远程管理
1.3.3 查看cpu相关
lscpu、uptime、top、htop vmstat mpstat
其中htop需要安装,安装依赖与epel源。
1.3.4 内存够不够可以用
free
1.3.5 磁盘剩多少写的快不快可以用
df、dd、iotop
1.3.6 监控网络
iftop 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监控
二、安装Zabbix
2.1 环境检查
2.2 安装zabbix过程
2.2.1 安装方式选择
编译安装 (服务较多,环境复杂)
yum安装(干净环境)
使用yum 需要镜像yum源 http://www.cnblogs.com/clsn/p/7866643.html
2.2.2 服务端快速安装脚本
2.2.3 客户端快速部署脚本
2.3 检测连通性
2.3.1 服务端安装zabbix-get检测工具
yum install zabbix-get
2.3.2 在服务端进行测试
三、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.1 自定义监控
4.1.1 说明
zabbix自带模板Template OS Linux (Template App Zabbix Agent)提供CPU、内存、磁盘、网卡等常规监控,只要新加主机关联此模板,就可自动添加这些监控项。
需求:服务器登陆人数不能超过三人,超过三人报警
4.1.2 预备知识
4.2 实现自定义监控
4.2.1 自定义语法
4.2.2 agent注册
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
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.1 需求说明
实际需求:
公司已经有了100台服务器,现在需要使用zabbix全部监控起来。
5.2 规划方案
常规监控:cpu,内存,磁盘,网卡 问题:怎样快速添加100台机器
方法1:使用克隆的方式
方法2:自动注册和自动发现
方法3:调用zabbix api接口 curl 、python
开发自己的运维平台兼容zabbix的通道
服务监控,url监控等特殊监控:自定义监控
5.2.1 api接口使用(curl)
5.3 具体实施规划
5.3.1 硬件、系统、网络监控
所有集群节点(所有虚拟机)都监控上
交换机,路由器监控(简单方法:换成端口对应服务器网卡流量监控;标准方法:监控交换机的网卡)
snmp监控
5.3.2 应用服务监控
1. 监控备份服务器,简单方法是监控rsync端口,如果有其他更佳方案可以说明;
方法1:监控873端口net.tcp.port[,873] 方法2:模拟推送拉取文件
2. 监控NFS服务器,使用监控NFS进程来判断NFS服务器正常,如果有其他更佳方案可以说明;
方法1:端口(通过111的rpc端口获取nfs端口) net.tcp.port[,111] 方法2:showmount -e ip|wc -l
3. 监控MySQL服务器,简单方法监控mysql的3306端口,或者使用zabbix提供的Mysql模板,如果有其他更佳方案可以说明;
方法1:端口(通过3306的mysql端口) net.tcp.port[,3306]
方法2:mysql远程登录
方法3:使用zabbix agent自带的模板及key4. 监控2台web服务器,简单方法监控80端口,如果有其他更佳方案可以说明;
方法1:端口(通过80的web端口) net.tcp.port[,80]
方法2:看网页状态码、返回内容==zabbix 自带WEB检测5. 监控URL地址来更精确的监控我们的网站运行正常;
使用zabbix自带的监控Web监测 进行监控
6. 监控反向代理服务器,PPTP服务器等你在期中架构部署的服务。
nginx,pptp
ntp 端口udp 1237. 监控Nginx的7种连接状态。
自定义监控
5.3.3 监控服务通用方法
1. 监控端口 netstat ss lsof ==》 wc -l
2. 监控进程 ps -ef|grep 进程|wc -l 试运行一下
3. 模拟客户端的使用方式监控服务端
web ==》 curl
mysql ==》 select insert
memcache ==》 set再get
5.4 实施全网监控
安装客户端脚本,for centos6
5.4.1 使用自动发现规则
添加自动发现规则
创建发现动作
查看自动发现的机器。
5.4.2 监控备份服务器
利用系统自带键值进行监控net.tcp.listen[port] 创建新的模板
在服务端进行测试
将模板添加到主机
5.4.3 监控NFS服务器
创建nfs监控模板
使用 proc.num[,,,] 键值,检测nfs进程的数量
在服务端进行测试
将模板绑定到主机
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[,,,]进程数。返回整数
net.tcp.port[,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 ;doneok
ok
ok创建web监测模板
创建应用集
创建Web场景
创建图形
将模板关联到主机
监测结果
5.4.7 监控反向代理服务器
创建自定义key
[root@lb01 ~]
# cat /etc/zabbix/zabbix_agentd.d/userparameter_nk.confUserParameter=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种连接状态
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 ;doneActive connections: 1server accepts handled requests 73 73 69Reading: 0 Writing: 1 Waiting: 0
Active connections: 1server accepts handled requests 134 134 127Reading: 0 Writing: 1 Waiting: 0
Active connections: 1server accepts handled requests 7 7 7Reading: 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.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 serverHostnameItem=system.hostname
systemctl restart zabbix-agent.service
netstat -tunlp|grep zabbix源文件与修改后对比
第三个里程碑:在web见面上进行配置
1 配置 >> 动作 >> 事件源(自动注册) >> 创建动作
创建动作,添加名称即可
条件中也无需修改
在动作中添加动作
(添加主机、添加到主机群组、链接到模板)
添加完动作后,等待就行了
注意:重启客户端可以加速发现。但是在生产环境中勿用。
七、分布式监控与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/247.1.2 环境说明
zabbix server m01
zabbix proxy cache01
zabbix agent cache017.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 zabbixtcp 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.confServer=172.16.1.61ServerActive=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.confServer=172.16.1.21ServerActive=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.service7.2.4 测试snmp
[root@m01 ~]# snmpwalk -v 2c -c public 127.0.0.1 sysnameSNMPv2-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监控对的主机
END
往期推荐阅读:学习 Ansible Playbook,有这篇文章就够了!16 张图带你快速入门 Ansible值得一看的运维技能图谱常见面试题:Java 应用如何调优?Kubernetes + Jenkins + Helm + Springboot 实践Kubeadm 部署高可用 K8S 集群10 个Linux Awk文本处理经典案例30个Linux Shell脚本经典案例(下)一文搞懂蓝绿发布、灰度发布和滚动发布让运维简单高效,轻松搞定运维管理平台Kubernetes 企业容器云平台实战
年轻时偷的懒,迟早是要还的。点亮
-
CentOS7 安装 zabbix 4.0 教程(图文详解)
2021-01-10 04:12:58关闭SeLinux setenforce 0 永久关闭: vi /etc/selinux/config 关闭防火墙 systemctl stop firewalld.service ...zabbix要将数据存入数据库,所以要安装Mysql : https://blog.csdn.net/qq_43059674/article/detail -
Zabbix安装教程
2018-06-26 14:15:42Zabbix安装教程Zabbix安装教程Zabbix安装教程Zabbix安装教程 -
zabbix教程:zabbix从放弃到入门
2019-04-14 12:21:48zabbix教程:zabbix从放弃到入门(1):zabbix概念 zabbix教程:zabbix从放弃到入门(2):安装zabbix zabbix教程:zabbix从放弃到入门(3):在zabbix中添加主机 zabbix教程:zabbix从放弃到入门(4):在zabbix中... -
Zabbix的基本使用
2022-03-23 17:53:22文章目录一、概述二、项目1、软件安装和环境部署2、Zabbix工具的使用(1)、创建被控主机(2)、中文乱码修复(3)、自动发现主机(4)、自动注册主机3、zabbix的API调用4、zabbix自定义监控项5、zabbix监控数据库6...文章目录
一、认识Zabbix
1、简介
Zabbix 是由 Alexei Vladishev 创建,目前是由 Zabbix SIA 在持续开发和提供支持。
Zabbix 是一种企业级的分布式开源监控解决方案。
Zabbix 是一款能够监控众多网络参数和服务器的健康度和完整性的软件。Zabbix 使用灵活的通知机制,允许用户为几乎任何事件配置基于邮件的警报。这样可以快速相应服务器问题。Zabbix 基于存储的数据提供出色的报告和数据可视化。这些功能使得 Zabbix 成为容量规划的理想选择。
Zabbix 支持轮询和被动捕获。所有的 Zabbix 报告、统计信息和配置参数都可以通过基于 Web 的前端页面进行访问。基于 Web 的前端页面确保您的网络状态和服务器健康状况可以从任何地方进行评估。在经过适当的配置后,Zabbix 可以在监控 IT 基础设施方面发挥重要作用。无论是对于拥有少量服务器的小型组织,还是拥有大量服务器的大型公司而言,同样适用。
2、功能
数据采集
可用性和性能采集;
支持 SNMP(包括主动轮询和被动捕获)、IPMI、JMX、VMware 监控;
自定义检查;
按照自定义的时间间隔采集需要的数据;
通过 Server/Proxy 和 Agents 来执行数据采集。
灵活的阈值定义
您可以定义非常灵活的告警阈值,称之为触发器,触发器从后端数据库获得参考值。
高度可配置化的告警
可以根据递增计划、接收者、媒介类型自定义发送告警通知;
使用宏变量可以使告警通知变得更加高效有益;
自动动作包含远程命令。
实时图形
使用内置图形功能可实以将监控项绘制成图形。
Web 监控功能
Zabbix 可以追踪模拟鼠标在 Web 网站上的点击操作,来检查 Web 网站的功能和响应时间。
丰富的可视化选项
能够创建可以将多个监控项组合到单个视图中的自定义图形;
网络拓扑图;
以仪表盘样式展示自定义聚合图形和幻灯片演示;
报表;
监控资源的高层次(业务)视图。
历史数据存储
存储在数据库中的数据;
可配置的历史数据;
内置数据管理机制(housekeeping)。
配置简单
将被监控设备添加为主机;
主机一旦添加到数据库中,就会采集主机数据用于监控;
将模板用于监控设备。
套用模板
在模板中分组检查;
模板可以关联其他模板,获得继承。
网络发现
自动发现网络设备;
Zabbix Agent 发现设备后自动注册;
自动发现文件系统、网络接口和 SNMP OIDs 值。
快捷的 Web 界面
基于 PHP 的 Web 前端;
可以从任何地方访问;
您可以定制自己的操作方式;
审计日志。
Zabbix API
Zabbix API 为 Zabbix 提供可编程接口,用于批量操作、第三方软件集成和其他用途。
权限管理系统
安全的用户身份验证;
将特定用户限制于访问特定的视图。
功能强大且易于扩展的 Zabbix Agent
部署于被监控对象上;
完美支持 Linux 和 Windows ;
二进制守护进程
为了更好的性能和更少的内存占用,采用 C 语言编写;
便于移植。
适应更复杂的环境
使用 Zabbix Proxy 代理,可以轻松实现分布式远程监控。3、架构
Zabbix 由几个主要的功能组件组成,其职责如下所示。
Server
Zabbix server 是 Zabbix agent 向其报告可用性、系统完整性信息和统计信息的核心组件。是存储所有配置信息、统计信息和操作信息的核心存储库。
数据库
所有配置信息以及 Zabbix 收集到的数据都被存储在数据库中。
Web 界面
为了从任何地方和任何平台轻松访问 Zabbix ,我们提供了基于 web 的界面。该界面是 Zabbix server 的一部分,通常(但不一定)和 Zabbix server 运行在同一台物理机器上。
Proxy
Zabbix proxy 可以替 Zabbix server 收集性能和可用性数据。Zabbix proxy 是 Zabbix 环境部署的可选部分;然而,它对于单个 Zabbix server 负载的分担是非常有益的。
Agent
Zabbix agents 部署在被监控目标上,用于主动监控本地资源和应用程序,并将收集的数据发送给 Zabbix server。4、数据流
此外,重要的是,需要回过头来了解下 Zabbix 内部的整体数据流。首先,为了创建一个采集数据的监控项,您就必须先创建主机。其次,必须有一个监控项来创建触发器。最后,您必须有一个触发器来创建一个动作,这几个点构成了一个完整的数据流。因此,如果您想要收到 CPU load it too high on Server X 的告警,您必须首先为 Server X 创建一个主机条目,其次创建一个用于监视其 CPU 的监控项,最后创建一个触发器,用来触发 CPU is too high 这个动作,并将其发送到您的邮箱里。虽然这些步骤看起来很繁琐,但是使用模板的话,其实并不复杂。也正是由于这种设计,使得 Zabbix 的配置变得更加灵活易用。
二、项目
1、软件安装和环境部署
在Zabbix官方网站zabbix.com查找需要部署的主机的类型
根据官网提示部署:
安装Zabbix仓库Install Zabbix repositoryrpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm #线上联网才能下载安装 yum clean all #清除之前的安装记录
编辑/etc/yum.repos.d/zabbix.repo并使其生效,需要修改的地方:
仓库搭建好查看仓库内容
安装Zabbix的前端包yum install zabbix-web-mysql-scl zabbix-apache-conf-scl
安装Zabbix服务端和代理端Install Zabbix server and agent
yum install zabbix-server-mysql zabbix-agent -y
安装Zabbix前端服务Install Zabbix frontend
yum install centos-release-scl -y
将repo文件的releasever改称7vim中的技巧 :%s/$需要被替换的内容/替换的内容/ 回车即可实现替换
创建并初始化数据库
下载mysql系列压缩包并解压
网址戳这里
tar xf mysql-5.7.37-1.el7.x86_64.rpm-bundle.tar yum install -y mysql-community-common-5.7.37-1.el7.x86_64.rpm mysql-community-client-5.7.37-1.el7.x86_64.rpm mysql-community-libs-5.7.37-1.el7.x86_64.rpm mysql-community-libs-compat-5.7.37-1.el7.x86_64.rpm mysql-community-server-5.7.37-1.el7.x86_64.rpm systemctl start mysqld cat /var/log/mysqld.log
初始密码在日志中会有,要耐心找:
mysql_secure_installation#初始化数据库
先复制之前日志的密码再设置密码,这里注意再次设置的密码需要包括字母大小写数字符号的8位密码,否则会…进入循环
设置完成要记住密码,之后的问题除了下面的回答NO,其他全是YES
接着使用密码进入数据库,可以执行一两条测试# mysql -uroot -p password #创建zabbix数据库,创建数据库用户并授权 mysql> create database zabbix character set utf8 collate utf8_bin; mysql> create user zabbix@localhost identified by 'password写自己的密码'; mysql> grant all privileges on zabbix.* to zabbix@localhost; mysql> quit;
#导入初始架构和数据 zcat create.sql.gz | mysql -uzabbix -p zabbix #该命令很长,会执行一小会儿,中间不要打断
为Zabbix服务器配置数据库Configure the database for Zabbix servervim /etc/zabbix/zabbix_server.conf DBPassword=password
#修改时区 vim /etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf php_value[date.timezone] = Asia/Shanghai
#重启并设置zabbix-server,zabbix-agent,httpd,rh-php72-php-fpm这几个服务为开机自启 systemctl restart zabbix-server zabbix-agent httpd rh-php72-php-fpm systemctl enable zabbix-server zabbix-agent httpd rh-php72-php-fpm
测试 在真机浏览器访问
serverIP/zabbix
即进入zabbix网页安装模式
输入设置好的数据库密码
注意:默认的登陆界面中,用户为Admin,密码为zabbix
安装成功进入zabbix的界面,语言在User settings里可以修改
2、Zabbix工具的使用
(1)、创建被控主机
在代理主机1和代理主机2分别安装代理服务
先复制服务端的ZABBIX.repo仓库文件
修改.repo文件 将所有的GPGCHECK关闭 gpgcheck=0
否则会出现报错如下:
(报错的原因:yum仓库设置gpgcheck=1,下载安装时会去校验GPG key,本地找不到file:///etc/pki/rpm-gpg/RPM-GPG-KEY-zabbix就会报此错误。)
修改配置文件:(配置服务端主机IP)
配置代理端IP和hostname
添加成功效果展示
全绿才算添加成功。如果有红色需要查看具体的报错,如:Get value from agent failed: cannot connect to [[172.25.76.2]:10050]: [113] No route to host 113号报错,无法连接到主机
先考虑网络,这里网络是通畅的,再考虑火墙,这里火墙没有关闭,关闭后再重启服务即可成功。
(2)、中文乱码修复
在界面切换至中文时,一些地方会出现乱码现象
浏览器刷新后,中文可正常显示(3)、自动发现主机
自动发现主机功能:由服务端主动发起,Zabbix Server开启发现进程,定时扫描并设别局域网中IP服务器和设备
配置agebt2主机的zabbix-agent服务yum install -y zabbix-agent systemctl enable --now zabbix-agent vim /etc/zabbix/zabbix-agent.conf
创建自动发现规则
配置–自动发现–创建发现规则
为自动发现规则设置相应的动作配置–动作–Tigger actions
动作和操作都完成才能创建成功
设置完成后静静等待一分钟,自动发现了agent2,证明自动发现规则生效
(4)、自动注册主机
自动注册主机由客户端主动发起,客户端必须安装并启动Agentd,否则无法被自动注册添加至主机列表;对于使用SNMP的就要采用自动发现了
为实现本实验效果并不浪费本人PC的资源,删除上一个实验创建的自动发现规则并删除主机agebt2
创建动作和操作
这次选择Autoregister actions
静静等待一会儿agent2会注册成功,证明该自动注册动作设置生效
3、zabbix的API调用
Zabbix API允许你以编程方式检索和修改Zabbix的配置,并提供对历史数据的访问。它广泛用于:
- 创建新的应用程序以使用Zabbix;
- 将Zabbix与第三方软件集成;
- 自动执行常规任务
Zabbix API是基于Web的API,作为Web前端的一部分提供。它使用JSON-RPC 2.0协议,这意味着两点:
- 该API包含一组独立的方法;
- 客户端和API之间的请求和响应使用JSON格式进行编码
具体API调用实验:
当完成了前端的安装配置后,可以使用远程HTTP请求来调用API;为此,需要向位于前端目录中的 api_jsonrpc.php 文件发送HTTP POST请求验证
在访问Zabbix中的任何数据之前,你需要登录并获取身份验证令牌。这可以使用该 user.login 方法完成。让我们假设你想要以标准Zabbix Admin用户身份登录。vim zabbix_api.sh --- #!/bin/bash curl -s -XPOST -H 'Content-Type:application/json-rpc' -d ' { "jsonrpc": "2.0", "method": "user.login", "params": { "user": "Admin", "password": "zabbix" }, "id": 1, "auth": null }' http://172.25.76.1/zabbix/api_jsonrpc.php | python -m json.tool --- 其中 { "jsonrpc": "2.0", "method": "user.login", "params": { "user": "Admin", "password": "zabbix" }, "id": 1, "auth": null }是json请求的内容
细看看示例请求对象。它具有以下属性:
- jsonrpc - API使用的JSON-RPC协议的版本; Zabbix API实现的JSON-RPC版本是2.0;
- method - 被调用的API方法名;
- params - 将被传递给API方法的参数;
- id - 请求的任意标识符;
- auth -用户认证令牌; 如果没有的话可以设置为null
如果你正确提供了凭据,API返回的响应将包含用户身份验证令牌:
响应对象包含以下属性:- jsonrpc - JSON-RPC协议的版本;
- result - 请求返回的数据;
- id - 相应请求的id。
检索主机
现在有一个有效的用户身份验证令牌,可以用来访问Zabbix中的数据。
例如,可以使用 host.get 方法检索所有已配置主机的ID,主机名和接口vim zabbix_api_1.sh --- { "jsonrpc": "2.0", "method": "host.get", "params": { "output": [ "hostid", "host" ], "selectInterfaces": [ "interfaceid", "ip" ] }, "id": 2, "auth": "0424bd59b807674191e7d77572075f33" }
注意, auth 属性现在设置为通过调用user.login方法获得的身份验证令牌
响应对象将包含有关主机的请求的数据:
删除主机vim zabbix_api_del.sh --- #!/bin/bash curl -s -XPOST -H 'Content-Type:application/json-rpc' -d ' { "jsonrpc": "2.0", "method": "host.delete", "params": [ ##这里是需要爱删除的主机的hostid "10440" ], ##这里是之前的身份验证令牌 "auth":"9e379f59399c2e02335d024ce64a1519", ##这里是主机名hostname所带的数字 "id": 2 }' http://172.25.76.1/zabbix/api_jsonrpc.php | python -m json.tool ---
响应对象的显示
再次查看服务端及其代理端,发现agent已被删除
图形监控界面得到的效果:成功删除agent1主机
创建主机vim zabbix_api_create.sh --- #!/bin/bash curl -s -XPOST -H 'Content-Type:application/json-rpc' -d ' { "jsonrpc": "2.0", "method": "host.create", "params": { "host": "agent2", "interfaces": [ { "type": 1, "main": 1, "useip": 1, "ip": "172.25.76.3", "dns": "", "port": "10050" } ], "groups": [ { ####这里群组的ID需要在zabbix主页查看 "groupid": "2" } ], "tags": [ { "tag": "Host name", "value": "Linux server" } ], "templates": [ { ##这里模板的ID需要在zabbix主页的url处查看 "templateid": "10001" } ] }, "auth": "9e379f59399c2e02335d024ce64a1519", "id": 3 }' http://172.25.76.1/zabbix/api_jsonrpc.php | python -m json.tool
查看群组ID
查看模板ID
图形监控界面得到的效果:成功添加agent2主机,特定的设置也有显示
4、zabbix自定义监控项
这里监控agent2的nginx服务,首先在agent2上配置nginx服务
在被监控主机agent2配置被监控项目在图形界面创建监控项:主机–boke3–监控项–创建监控项
在zabbix服务器端server使用zabbix_get查看效果
安装zabbix-get工具的步骤
5、zabbix监控数据库
mysql服务器所在主机已安装zabbix agent;与在zabbix agent端自定义监控项类似,监控项类型为“zabbix 客户端(被动型)”,由mysql服务器上的zabbix agent执行登录检查命令,并将结果回传给zabbix server
配置zabbix-agent的mysql参数文件重启zabbix-agent稍候查看监控效果
6、zabbix结合percona监控数据库
percona zabbix mysql-plugin是percona发布的一个使用zabbix监控mysql数据库的工具,这款工具比zabbix自带的监控模板要强大的多,毕竟percona是Mysql的一个重要分支,专业做数据库的,所以,采集的数据比较全面;percona的监控插件是php编写的,通过php连接mysql来获取相关的数据,所以需要在安装zabbix agent的同时,部署php和php-mysql
yum install -y php php-mysql
安装percona监控模板插件
wget http://jaminzhang.github.io/soft-conf/Zabbix/zbx_percona_mysql_template.xml
-
Zabbix 超级详细的教你配置主动模式教程
2021-05-12 10:43:18内容简介本文将介绍如何配置主动模式监控,实验环境为...[root@localhost ~]# zabbix_server -V --这里我的zabbix是4.0版本需要手工创建主动监控模板zabbix_server (Zabbix) 4.0.17Revision a528a0a4bc 28 January 2... -
Zabbix 3.0 从入门到精通(zabbix使用详解)
2021-08-11 14:43:50第1章 zabbix监控 1.1 为什么要监控 在需要的时刻,提前提醒我们服务器出问题了 当出问题之后,可以找到问题的根源 网站/服务器 的可用性 1.1.1 网站可用性 在软件系统的高可靠性(也称为可用性,... -
Zabbix中文使用手册.pdf
2021-08-11 22:09:50Zabbix中文使用手册 -
zabbix3.4.1使用教程 - zabbix搭建到使用看这一篇就够了
2019-08-21 13:53:02zabbix概念 zabbix安装 zabbix使用 其他 -
zabbix3.4详细安装教程
2022-02-10 13:45:30Zabbix使用灵活的通知机制,允许用户为几乎任何事件配置基于邮件的告警。这样可以快速反馈服务器的问题。基于已存储的数据,Zabbix提供了出色的报告和数据可视化功能。这些功能使得Zabbix成为容量规划的理想方案。 ... -
Zabbix视频教程
2020-07-10 16:37:00Zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案,课程详细讲解了Zabbix的使用 -
运维监控软件zabbix 5.0教程(一):安装及配置
2022-05-14 08:48:25这是官方文档链接,不懂的地方可以回来查官方文档。 https://www.zabbix.com/documentation/5.0/zh/manual 废话不多说,直接开始搭建安装。 一、zabbix 5.0搭建 1.由于要监控多台服务器,为了...[root@zabbix ~]# host -
zabbix学习教程,
2018-10-11 16:31:42zabbix学习教程,从安装到精通。有挂接,短信挂接等 -
zabbix4.4.3使用postgresql数据库
2020-12-14 16:29:52一、安装postgresql数据库 win64安装postgresql10 下载 ...安装 打开安装包,傻瓜式默认安装,请谨记 “数据库密码” 和 “端口号” ,安装完成后,打开任务管理器,打开任务,看到postgresql服务存在,并启动,说明... -
zabbix 安装教程
2014-09-24 16:57:20zabbix 安装 教程 配置 使用 进过测试可以很好用 -
zabbix3.4中文教程
2017-09-01 10:38:41zabbix3.4中文教程 从官网进行复制粘贴来的 好辛苦 Zabbix是一款能够监控各种网络参数以及服务器健康性和完整性的软件。Zabbix使用灵活的通知机制,允许用户为几乎任何事件配置基于邮件的告警。这样可以快速反馈... -
zabbix使用手册详细配置-零基础入门
2020-06-27 10:55:19remote |grep zabbix (查看zabbix对应的插件) grafana-cli plugins install alexanderzobnin-zabbinx-app service grafana-server restart (想要插件生效,需要重启) 访问 http://IP:3000/ (后续配置及使用,... -
Kubernetes+Zabbix视频教程.rar
2021-10-23 11:01:59│ └ zabbix.docx ├ 2.资料 │ │ centos6.8.tar │ │ kubeadm-basic.images.tar.gz │ │ ThinkServer-RAID卡用户手册-V1.3.pdf │ │ yum.zip │ │ 第一节 环境安装部署.pdf │ ├ hadoop │ │ └ hadoop.tar... -
Kubernetes+Zabbix视频教程.zip
2022-05-27 09:11:19目录网盘文件永久链接 1 笔记 zabbix Kubernetes 2 资料 hadoop helm kafka nfs文件 ThinkServer-RAID卡用户手册-V1.3 yum kubeadm-basic.images.tar 第一节 环境安装部署 centos6.8 3 视频 K8s -
zabbix监控教程
2021-12-30 18:48:035、重启zabbix-agent(两个机器都重启) service zabbix-agent restart 6、 zabbix服务端使用zabbix_get 测试获取数据 zabbix_get -s (nginx服务器IP) -k nginx_status[active] 注意点:nginx_status为键值,需要... -
zabbix使用手册(共7份)
2018-06-25 11:52:511、ZABBIX从入门到精通v3.0.1 - 运维生存时间(2016).pdf 2、zabbix监控2.6安装部署...4、Zabbix教程从入门到精通v1.0(TTLSA官方出品).pdf 5、Zabbix企业完整.pdf 6、Zabbix使用说明.pdf 7、Zabbix使用手册V2.0.pdf -
Zabbix配置教程
2020-06-09 21:45:18Zabbix配置教程 -
手把手搭建zabbix教程所需资源包(全部附带教程)
2019-08-25 20:57:31手把手搭建zabbix教程 搭建zabbx平台https://blog.csdn.net/liuxiangyang_/article/details/97390270 监控window 监控linux-ubuntu https://blog.csdn.net/liuxiangyang_/article/details/100051584 监控linux-... -
zabbix安装教程
2018-07-06 17:35:05zabbix搭建的全过程,很详细的介绍的在centos6.5下搭建zabbix -
Zabbix2.0使用手册.pdf
2021-08-20 00:09:44Zabbix2.0使用手册.pdf -
zabbix5.0安装使用教程(详细版)
2020-11-03 15:41:16zabbix5.0安装使用教程(详细版) 前言:SQL: 5.7以上、PHP: 7.2以上、web默认账号Admin密码zabbix 服务器需关闭SELinux、开通防火墙相应端口或关闭防火墙 客户端需开通防火墙相应端口 服务器端口10051 客户端agent... -
CentOS 7.2安装Zabbix 3.2教程详解
2021-01-20 15:27:46安装环境:VMware虚拟机 [root@localhost ~]# cat /etc/redhat-release CentOS Linux release 7.2.1511 (Core) [root@localhost ~]# uname -a Linux localhost....https://www.zabbix.com/documentation/3.2/