zabbix 快速入门
zabbix介绍
Zabbix是由 Alexei Vladishev 开发的一种网络监视,管理系统,基于Server-Client架构。可以使用多种方式监视。可以只使用 Simple Check 不需要安装 Client 端,亦可基于 SMTP 或 HTTP … 各种协议定制监视。
zabbix的优势
zabbix是可以满足理想化的监控系统需求
提供需要输出的值即可支持自定义监控脚本
zabbix存储的数据库表结构稍有复杂但是逻辑清晰
zabbix存在模板的概念,可以方便的将一组监控项进行部署
zabbix每一个项目item都可以看到历史记录,且web界面友好
zabbix有强大的Trigger触发器定义规则,可以定义复杂的报警逻辑
zabbix提供了ack报警确认机制
zabbix支持邮件,断线,微信等告警
zabbix在触发告警后,可以远程执行系统目录
zabbix有原生的PHP绘图模块
zabbix程序组件
zabbix_server 服务端守护进程
zabbix_agentd,agent 守护进程
zabbix_porxy 代理服务器
zabbix_database 存储系统 ,mysql,pgsql
zabbix_web web GUI图形化界面
zabbix_get 命令工具行,测试向agent发起数据采集请求
zabbix_sender 命令行工具,测试向server发送数据
zabbix_Java_geteway,Java网关
zabbix安装(5.0)
5.0版本对基础环境要求有很大的变化,最大的就是对php版本的要求,最低要求7.2版本。对php扩展组件版本也有要求,详情参考官方文档:https://www.zabbix.com/documentation/current/manual/installation/requirements
安装zabbix服务端配置
官网安装文档:
https://www.zabbix.com/download?zabbix=5.0&os_distribution=red_hat_enterprise_linux&os_version=7&db=mysql&ws=apache
1.环境准备,配置yum源,安装基础命令,配置防火墙,同步时间等
[root@zabbix ~]# ifconfig |awk 'NR==2{print $2}'
192.168.178.3
[root@zabbix ~]# iptables -F
[root@zabbix ~]# getenforce
Disabled
[root@zabbix ~]# ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
[root@zabbix ~]# ntpdate -u ntp.aliyun.com && date
2.获取zabbix官方源
rpm -Uvh https://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
#替换阿里源为官方源
sed -i 's#http://repo.zabbix.com#https://mirrors.aliyun.com/zabbix#' /etc/yum.repos.d/zabbix.repo
#清除缓存
yum clean all
3.安装zabbix server 和 agent
yum install zabbix-server-mysql zabbix-agent -y
安装Sofware,Collections,便于后续安装高版本的php,默认yum安装的php版本为5.4过低。
SCL(Software Collections)可以让同一个操作系统上安装和使用多个版本的软件,而不会影响整个系统的安装包。
软件包会安装在/opt/rh目录下,为了避免系统发生冲突,/opt/rh包安装在目录中例如,这允许你在CentOS 7机器上安装Python 3.5,而不会删除或干扰Python 2.7。
/etc/opt/rh/软件包的所有配置文件都存储在目录中相应的目录中,SCL包提供了定义使用所包含应用程序所需的环境变量的shell脚本,例如,PATH,LD_LIBRARY_PATH和MANPATH ,这些脚本存储在文件系统中,作为 /opt/rh/package-name/enable 。
#启用scl
yum install centos-release-scl -y
4.修改zabbix前端源
vim /etc/yum.repos.d/zabbix.repo
修改前:
[zabbix-frontend]
name=Zabbix Official Repository frontend - $basearch
baseurl=https://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/$basearch/frontend
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX-A14FE591
修改后:
[zabbix-frontend]
name=Zabbix Official Repository frontend - $basearch
baseurl=https://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/$basearch/frontend
enabled=1 #此处0修改为1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX-A14FE591
5.安装zabbix前端环境
yum install zabbix-web-mysql-scl zabbix-apache-conf-scl -y
6.安装zabbix所需要的数据库,可以直接使用centos7自带的mariadb
yum install mariadb-server -y
7.启动数据库,且配置开机启动
systemctl enable --now mariadb
8.初始化mariadb,设置root密码,123456
mysql_secure_installation
#默认密码为空,直接回车,然后Y确认修改密码,在输入密码,根据提示输入:
...
Disallow root login remotely? [Y/n] n #注意此处输入n,禁止远程登录,选择no,
... skipping.
...
#其他根据需求设置
9.使用root用户登录mariadb,建立zabbix数据库
#登录
mysql -uroot -p
#设置字符集
create database zabbix character set utf8 collate utf8_bin;
#创建zabbix用户并设置密码为123456
create user zabbix@localhost identified by '123456';
#授权zabbix相关用户
grant all privileges on zabbix.* to zabbix@localhost;
#刷新
flush privileges;
#使用select语句查看
select user,host,password from mysql.user;
#退出
qiut;
10.使用一些命令导入zabbix数据库,zabbix数据库用户为zabbix,密码为123456
zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p zabbix
11.修改zabbix server配置文件 /etc/zabbix/zabbix_server.conf里面的数据库密码
vim /etc/zabbix/zabbix_server.conf
#查看
[root@zabbix ~]# grep '^DBPassword' /etc/zabbix/zabbix_server.conf
DBPassword=123456
12.修改zabbix的php配置文件 vim /etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf 里的时区
[root@zabbix ~]# vim /etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf
[root@zabbix ~]# grep 'timezone' /etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf
php_value[date.timezone] = Asia/Shanghai
13.启动相关服务
systemctl restart zabbix-server zabbix-agent httpd rh-php72-php-fpm
systemctl enable zabbix-server zabbix-agent httpd rh-php72-php-fpm
14.访问zabbix入口
http://192.168.178.3/zabbix/setup.php
15.进入页面后,点击next setp检查组件是否正常
16.点击next setp,输入配置数据库zabbix用户,密码123456
17.继续点击下一步,安装成功即可使用
18.登录账号为Admin,密码:zabbix,注意大小写,登录后即可进入首页
修改zabbix语言
点击User settings,选择中文(zh_CN);点击Upadate更新。
主页仪表盘是可以编辑,随意拖动修改大小的。
部署zabbix客户端
zabbix5.0版本使用go语言重写了Agent2,也是5.0版本新特性,Agent2y有如下特性:
- 完成插件框架支持,可扩展服务以及应用监控
- 支持灵活的采集周期调度
- 更高效的数据采集及传输
- 可以完全替换先有的agent
特性较多推荐使用,由于使用go语言编写,编译安装与之前版本有所区别。
Agent2 默认使用100050端口,与zabbix Agent端口一样,不修改端口情况下,同一台机器不能同时启动zbbix Agent 与zabbix Agent2。
1.在准备一台linux虚拟机,配置号专有的Yum源,配置好防火墙和实时同步
[root@m01 ~]# ifconfig |awk 'NR==2{print $2}'
192.168.178.120
[root@m01 ~]# getenforce
Disabled
#同步时间
yum install ntpdate -y
mv /etc/localtime{,.bak}
ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
ntpdate -u ntp.aliyun.com && date
2.这一步很重要,把zabbix官方源替换为阿里云的zabbix源
rpm -Uvh https://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
sed -i 's#http://repo.zabbix.com#https://mirrors.aliyun.com/zabbix#' /etc/yum.repos.d/zabbix.repo
清除缓存
yum clean all
3.安装agent2
yum install zabbix-agent2 -y
# 配置文件了解
默认配置危机为/etc/zabbix/zabbix_agent2.conf
[root@m01 ~]# ls /etc/zabbix/zabbix_agent2.conf
/etc/zabbix/zabbix_agent2.conf
默认二进制文件为/usr/bin/zabbix_agent2
[root@m01 ~]# ls /usr/sbin/zabbix_agent2
/usr/sbin/zabbix_agent2
4.启动agent2且开机自启
systemctl enable --now zabbix-agent2
5.检查端口
[root@m01 ~]# netstat -tunlp |grep zabbix
tcp6 0 0 :::10050 :::* LISTEN 2170/zabbix_agent2
6.查看systemctl管理的单元文件,
[root@m01 ~]# cat /lib/systemd/system/zabbix-agent2.service
#可以自己定义一个这样的文件使用systemctl去管理
7.修改agent2配置文件,填写zabbix-server主机IP和主机名
修改前:
[root@m01 ~]# grep -Ev '^#|^$' /etc/zabbix/zabbix_agent2.conf
PidFile=/var/run/zabbix/zabbix_agent2.pid
LogFile=/var/log/zabbix/zabbix_agent2.log
LogFileSize=0
Server=127.0.0.1
ServerActive=127.0.0.1
Hostname=Zabbix server
Include=/etc/zabbix/zabbix_agent2.d/*.conf
ControlSocket=/tmp/agent.sock
修改后:
[root@m01 ~]# vim /etc/zabbix/zabbix_agent2.conf
[root@m01 ~]# grep -Ev '^#|^$' /etc/zabbix/zabbix_agent2.conf
PidFile=/var/run/zabbix/zabbix_agent2.pid
LogFile=/var/log/zabbix/zabbix_agent2.log
LogFileSize=0
Server=192.168.178.3
ServerActive=192.168.178.3
Hostname=m01 #本机hostname
Include=/etc/zabbix/zabbix_agent2.d/*.conf
ControlSocket=/tmp/agent.sock
Agent2没有组件依赖,可以直接拷贝编译号的二进制文件和配置文件在其他主机上运行即可
8.修改后重启agent2
systemctl restart zabbix-agent2
9.检查server-client连通性
# zabbix服务端
安装客户端命令
[root@zabbix ~]# yum install zabbix-get -y
#测试结果必须为1
[root@zabbix ~]# zabbix_get -s '192.168.178.120' -p 10050 -k "agent.ping"
1
#使用主机名测试
[root@zabbix ~]# zabbix_get -s '192.168.178.120' -p 10050 -k "system.hostname"
m01
zabbix-server监控主机
默认zabbix5.0已经监控了自己。
一,服务器可视化指标
点击对应主机的图形即可看见,获欧洲点击主机名选择图形。
二,解决zabbix乱码问题
在第一步的图形中下面的小白框表示乱码,是因为修改了zabbix的语言为中,服务器需要安装字体
[root@zabbix ~]# yum -y install wqy-microhei-fonts
[root@zabbix ~]# \cp /usr/share/fonts/wqy-microhei/wqy-microhei.ttc /usr/share/fonts/dejavu/DejaVuSans.ttf
此时乱码已经消失
三,添加agent主机(m01)
1.依次点击 配置–主机–选择创建主机
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xe8Btbw7-1614342915574)(https://i.loli.net/2021/02/25/ukm3sli2ZGUFLIK.png)]
2.点击创建主机后进入新的页面,让填写主机名,群组,IP地址等信息。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xHaC0PyQ-1614342915576)(https://i.loli.net/2021/02/25/3hYHC2qNOvEZRLM.png)]
3.稍做等待后结果如下,zabbix即正确监控看m01–192.169.178.120机器
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vA3VPPj2-1614342915578)(https://i.loli.net/2021/02/25/YJOrZUybV8aFTtD.png)]
4.点击第三步中的主机名,在填写完主机信息后还需要添加模板,输入Linux,有自动搜索功能
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-59DjIrqh-1614342915580)(C:%5CUsers%5Cdw%5CAppData%5CRoaming%5CTypora%5Ctypora-user-images%5Cimage-20210225162322254.png)]
5.可以点击检查,选择最新数据查看
在最新数据中,可以进行筛选,输入ip或主机名都可以搜索出来
6.可始化监控agent的cpu动态
1.在m01机器是,执行程序,消耗CPU,利用shell或python皆可。
[root@m01 ~]# python
Python 2.7.5 (default, Nov 16 2020, 22:23:17)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-44)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> while 1:
... print 6666 #注意print有四个空格,然后回车回车,一直循环打印666,调用c'pu
2.依次点击监测--最新数据,选择要查看的主机,选择应用集,勾选需要检测的选项,如CPU,内存等,然后点击显示数据图(或者在m01机器选择图形检测CPU与内存动态),然后选择需要查看的时间段。
3,情况如下:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LlfCJVXO-1614342915582)(https://i.loli.net/2021/02/25/6NyRgZzkdnapuCJ.png)]
zabbix自带模板
zabbix自带模板Template OS Linux (Template App Zabbix Agent),提供了CPU,内存,磁盘,网卡等常规监控,只要新加主机关联此模板,就可以自带添加这些监控项。
#zabbix有自带的key
[root@zabbix ~]# zabbix_get -s 192.168.178.120 -p 10050 -k "system.uname"
Linux m01 3.10.0-862.el7.x86_64 #1 SMP Fri Apr 20 16:44:24 UTC 2018 x86_64
[root@zabbix ~]# zabbix_get -s 192.168.178.120 -p 10050 -k "system.hostname"
m01
#热是写错了key,则会报错--未知的指标
[root@zabbix ~]# zabbix_get -s 192.168.178.120 -p 10050 -k "system.hostname1"
ZBX_NOTSUPPORTED: Unknown metric system.hostname1
#未登记,自定义的key,未知的指标
[root@zabbix ~]# zabbix_get -s 192.168.178.120 -p 10050 -k "login.user"
ZBX_NOTSUPPORTED: Unknown metric login.user
参数解释:
-s --host 指定主机名或ip
-p --port 指定主机上运行的代理的端口号,默认值为10050
-k --key 指定要为其检索值的项目键
详情参考官网,搜索zabbix相关命令
查看模板-监控项
![image-20210225191913105](https://i-blog.csdnimg.cn/blog_migrate/c55684528086b1c184ee02558175b7a7.png)
监控项的键值就是zabbix-get 使用的key
例如:检测客户端存活
[root@zabbix ~]# zabbix_get -s 192.168.178.120 -p 10050 -k "agent.ping"
1
#检测文件系统空间大小
[root@zabbix ~]# zabbix_get -s 192.168.178.120 -p 10050 -k "vfs.fs.size[/,used]"
1815965696
[root@zabbix ~]# zabbix_get -s 192.168.178.120 -p 10050 -k "vfs.fs.size[/,total]"
38735400960
自定义监控与项语法
当zabbix自带模板,无法满足我们的需求,就需要自定义监控,自定义监控其实就是添加监控key,监控的命令
案例
制作模板(监控登录人数)
需求:限制登录人数不超过三个,超过三人则发出报警
1.首先显示用户登录命令
who
who | wc -l #显示登录人数
2.需要添加监控项配置文件,路径
/etc/zabbix/zabbix_agent2.d/
#zabbix配置文件,大多数软件配置都会使用include形式来优化配置文件
[root@m01 ~]# grep -i '^include' /etc/zabbix/zabbix_agent2.conf
Include=/etc/zabbix/zabbix_agent2.d/*.conf
3.自定义的配置文件语法是:
UserParameter=<key>,<shell command>
UserParameter=login-user,who|wc -l
UserParameter=login-user,/bin/sh /server/scripts/login.sh
4.创建配置文件,key名要唯一,可以写入多个key
[root@m01 ~]# vim /etc/zabbix/zabbix_agent2.d/userparameter_login.conf
UserParameter=login.user,who|wc -l
UserParameter=login.user2,who|wc -l
#查看
[root@m01 ~]# cat /etc/zabbix/zabbix_agent2.d/userparameter_login.conf
UserParameter=login.user,who|wc -l
UserParameter=login.user2,who|wc -l
# login.user是key值的名称,最好是见名知意,who|wc -l 输出的值才是服务端检测的
5.重启m01
systemctl restart zabbix-agent2
6.在服务端zabbix用命令检测自定义的key
[root@zabbix ~]# zabbix_get -s 192.168.178.120 -k "login.user"
1
#开启多个窗口再次检测
[root@zabbix ~]# zabbix_get -s 192.168.178.120 -k "login.user"
4
[root@zabbix ~]# zabbix_get -s 192.168.178.120 -k "login.user2"
4
#此时自定义key已经完成
zabbix-server 注册模板
在命令行添加完配置,并检测成功后,需要在web界面操作注册模板
整个流程是:
-- 创建模板
-- 创建应用集:对监控项分类
-- 创建监控项:定义item,监控的内容
-- 创建触发器:当监控项或者到值,达到触发条件便告警
-- 创建图形
-- 主机进行模板关联
创建模板
依次点击:
配置--模板--创建模板 进入如下页面:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Knon9G0a-1614342915584)(https://i.loli.net/2021/02/25/vUPVBbcopRlwInz.png)]
找到自己添加的模板,填入信息后进入下一步。
创建应用集
应用集作用好比文件夹分类,作用是给监控项分类。
依次点击:
配置--主机--找到对应主机--点击应用集--右上角创建应用集
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Y73gEYls-1614342915585)(https://i.loli.net/2021/02/25/NhyUZYIwQ43loTD.png)]
添加监控项
依次点击:
配置--主机--选择对应主机--监控项--创建监控项
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bCRQ5sW0-1614342915586)(C:%5CUsers%5Cdw%5CAppData%5CRoaming%5CTypora%5Ctypora-user-images%5Cimage-20210225221321000.png)]
创建触发器
可以直接在上一个页面添加完成后,直接点击触发器-然后右上角点击创建触发器。其他类同。
也可以依次点击:配置-主机-选择对应主机-点击触发器-创建触发器
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LS1ICOoS-1614342915587)(https://i.loli.net/2021/02/25/APzfEBGcnjKQiv8.png)]
创建图形
同样的操作,进入图形-点击创建图形
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zlp8ml0L-1614342915588)(C:%5CUsers%5Cdw%5CAppData%5CRoaming%5CTypora%5Ctypora-user-images%5Cimage-20210225202900078.png)]
关联模板
上述所有配置都是把登录用户监控的模板添加好,以及图形展现,但是还未绑定具体的服务器
依次点击:
配置-主机-选择对应主机-点击模板-添加 "login.user"后更新
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-z9bwSbmE-1614342915588)(https://i.loli.net/2021/02/25/FhoVAgxbTNHJ5ES.png)]
一个主机可以关联多个监控模板
查看监测-最新数据-图形;查看zabbix监控中的用户登录数,然后多登录几个看是否会告警
[root@zabbix ~]# zabbix_get -s 192.168.178.120 -k "login.user"
4
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lhStfSDN-1614342915589)(https://i.loli.net/2021/02/25/D25KEyhfYzi7WTx.png)]
最新仪表盘数据–已经出现告警信息
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gTNseklY-1614342915590)(C:%5CUsers%5Cdw%5CAppData%5CRoaming%5CTypora%5Ctypora-user-images%5Cimage-20210225204141316.png)]
继续添加用户,查看图形监控
[root@zabbix ~]# zabbix_get -s 192.168.178.120 -k "login.user"
7
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7DqIrdhy-1614342915591)(C:%5CUsers%5Cdw%5CAppData%5CRoaming%5CTypora%5Ctypora-user-images%5Cimage-20210225221958713.png)]
确认问题
管理员可以在下确认问题,修改描述,也可以修复问题,如剔除多余登录的用户等。如果想要手动关闭该问题,可以在触发器里设置,允许手动关闭该问题。
依次点击:
监测--问题--勾选问题--批量更新--填写消息--更改严重性--勾选确认--确认更新
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tFmIR2bd-1614342915592)(C:%5CUsers%5Cdw%5CAppData%5CRoaming%5CTypora%5Ctypora-user-images%5Cimage-20210225211746511.png)]
确认后报警消失。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-499vArAx-1614342915594)(C:%5CUsers%5Cdw%5CAppData%5CRoaming%5CTypora%5Ctypora-user-images%5Cimage-20210225222315196.png)]
zabbix 自定义监控nginx
zabbix本身有监控nginx的模板,可以直接使用该模板,也可以再针对nginx做一些自定义的监控,主要是结合nginx的status模块添加监控。此处zabbix自带的nginx监控模板,暂时不用。
在m01机器部署nginx
1.直接yum快速安装nginx
[root@m01 ~]# yum install nginx -y
2.添加nginx的status状态功能
[root@m01 ~]# vim /etc/nginx/nginx.conf
在server标签下写入如下内容开启status功能
location /status {
stub_status on;
access_log off;
}
4.启动nginx,查看状态页
[root@m01 ~]# nginx
[root@m01 ~]# curl http://192.168.178.120/status
Active connections: 3
server accepts handled requests
3 3 3
Reading: 0 Writing: 1 Waiting: 2
4.监控内容解释
Active connections:当前所有处于打开状态的活动连接数(TCP连接数,即三次握手四次挥手次数)
accepts : 已经接收连接数
handled : 已经处理过的连接数
requests : 已经处理过的请求数,在保持连接模式下,请求数量可能会大于连接数量
Reading: 正处于接收请求的连接数
Writing: 请求已经接收完成,处于响应过程的连接数
Waiting : 保持连接模式,处于活动状态的连接数
5.添加nginx监控项,需要自定义
[root@m01 ~]# vim /etc/zabbix/zabbix_agent2.d/userparameter_nginx.conf
[root@m01 ~]# cat /etc/zabbix/zabbix_agent2.d/userparameter_nginx.conf
UserParameter=nginx.active,curl -s http://127.0.0.1/status 2>/dev/null| grep 'Active' | awk '{print $NF}'
UserParameter=nginx.reading,curl -s http://127.0.0.1/status 2>/dev/null| grep 'Reading' | awk '{print $2}'
UserParameter=nginx.writing,curl -s http://127.0.0.1/status 2>/dev/null| grep 'Writing' | awk '{print $4}'
UserParameter=nginx.waiting,curl -s http://127.0.0.1/status 2>/dev/null| grep 'Waiting' | awk '{print $6}'
UserParameter=nginx.accepts,curl -s http://127.0.0.1/status 2>/dev/null| awk NR==3 | awk '{print $1}'
UserParameter=nginx.handled,curl -s http://127.0.0.1/status 2>/dev/null| awk NR==3 | awk '{print $2}'
UserParameter=nginx.requests,curl -s http://127.0.0.1/status 2>/dev/null| awk NR==3 | awk '{print $3}'
6.启动nginx和重启zabbix-agent2服务
[root@m01 ~]# nginx -s reload
[root@m01 ~]# systemctl restart zabbix-agent2
创建模板
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TNa1NAqO-1614342915596)(https://i.loli.net/2021/02/25/ZRWBKmGYQl9oOg5.png)]
创建应用集
配置-主机-选择主机m01-应用集-创建应用集nginx
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-AVWeTWH0-1614342915597)(https://i.loli.net/2021/02/25/3wzcLifGorHA7x2.png)]
依次添加7个监控项
和上面操作一样,不做复述,进入监控项界面,根据配置文件设定的键值名称,依次添加七个监控项
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hDG3asKo-1614342915599)(https://i.loli.net/2021/02/26/KhO6zIT1vMCmcFX.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gALd4aX2-1614342915600)(https://i.loli.net/2021/02/26/cs1LOI5Mkv2RrWh.png)]
添加完毕后结果如下:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8I3lqqnx-1614342915602)(https://i.loli.net/2021/02/26/PGbeDJwACSZUtln.png)]
创建图形
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Z55Mb7eT-1614342915603)(C:%5CUsers%5Cdw%5CAppData%5CRoaming%5CTypora%5Ctypora-user-images%5Cimage-20210226003149520.png)]
查看图形效果
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Qo4Y431E-1614342915604)(C:%5CUsers%5Cdw%5CAppData%5CRoaming%5CTypora%5Ctypora-user-images%5Cimage-20210226003600891.png)]
测试
通过ab压测命令,增大网站压力,查看zabbix图形监控
[root@m01 ~]# yum install httpd-tools -y
[root@m01 ~]# ab -c 100 -n 1000000 http://127.0.0.1/
[root@m01 ~]# ab -c 100 -n 10000000 http://127.0.0.1/
查看图形效果
依次点击--监测--最新数据--选择主机群组--选择主机m01--选择应用集--勾选7个监控项目--显示数据图
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FAGN4uF3-1614342915606)(C:%5CUsers%5Cdw%5CAppData%5CRoaming%5CTypora%5Ctypora-user-images%5Cimage-20210226095912011.png)]
zabbix进阶
邮件报警
依次点击管理,报警媒介类型,创建媒体类型,配置完毕后测试是否能正确发送
设置收件人邮箱,点击更新
此时主机出现问题时,会发生邮件给指定的用户
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-sQTecYRM-1614342915607)(https://i.loli.net/2021/02/25/ftodLQgYPMla2ye.png)]
添加完毕后必须测试通过才能使用
聚合图形与幻灯片
zabbix还支持聚合图形,依次点击--监测--聚合图形--创建聚合图形--填入相应信息--点击添加
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xBK7IcZp-1614342915609)(https://i.loli.net/2021/02/25/fzL6UeFRdGxV5pB.png)]
自动发现和自动注册
1.部署两台客户端机器,web01,lb01
#两台机器同时操作如下命令:
yum install ntpdate -y
mv /etc/localtime{,.bak}
ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
ntpdate -u ntp.aliyun.com && date
rpm -Uvh https://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
sed -i 's#http://repo.zabbix.com#https://mirrors.aliyun.com/zabbix#' /etc/yum.repos.d/zabbix.repo
yum clean all
yum install zabbix-agent2 -y
systemctl enable --now zabbix-agent2
#修改以下三项
vim /etc/zabbix/zabbix_agent2.conf
Server=192.168.178.3
ServerActive=192.168.178.3
Hostname=zabbix
#查看lb01,web01
[root@lb01 ~]# grep -Ev '^#|^$' /etc/zabbix/zabbix_agent2.conf
PidFile=/var/run/zabbix/zabbix_agent2.pid
LogFile=/var/log/zabbix/zabbix_agent2.log
LogFileSize=0
Server=192.168.178.3
ServerActive=192.168.178.3
Hostname=lb01 #填写本机名称
Include=/etc/zabbix/zabbix_agent2.d/*.conf
ControlSocket=/tmp/agent.sock
[root@web01 ~]# grep -Ev '^#|^$' /etc/zabbix/zabbix_agent2.conf
PidFile=/var/run/zabbix/zabbix_agent2.pid
LogFile=/var/log/zabbix/zabbix_agent2.log
LogFileSize=0
Server=192.168.178.3
ServerActive=192.168.178.3
Hostname=web01 #填写本机名称
Include=/etc/zabbix/zabbix_agent2.d/*.conf
ControlSocket=/tmp/agent.sock
#重启zabbix-agent2服务
systemctl restart zabbix-agent2
#检测启动情况
[root@web01 ~]# systemctl is-active zabbix-agent2
active
[root@lb01 ~]# systemctl is-active zabbix-agent2
active
3.服务端检测连通性
[root@zabbix ~]# zabbix_get -s '192.168.178.140' -p 10050 -k "agent.ping"
1
[root@zabbix ~]# zabbix_get -s '192.168.178.130' -p 10050 -k "agent.ping"
1
[root@zabbix ~]# zabbix_get -s '192.168.178.140' -p 10050 -k "system.hostname"
web01
[root@zabbix ~]# zabbix_get -s '192.168.178.130' -p 10050 -k "system.hostname"
lb01
自动发现/自动注册两种模式
zabbix server 主动发现所有客户端,然后对客户端进行登记,缺点:当客户端多是,网段大,zabbix server 压力也大,消耗时间多。
zabbix agent 主动添加,登记。缺点:agent有可能找不到server(配置出错)。
-
被动模式:默认,agent被server抓取数据
-
主动模式:agent主动将数据发到server端
注意: 两种模式都是在agent上进行配置
hosts文件解析
cat /etc/hosts
192.168.178.3 zabbix
192.168.178.130 lb01
192.168.178.140 web01
自动发现–被动模式
准备好:
zabbix 192.168.178.3
lb01 192.168.178.130
web01 192.168.178.140
启动好zabbix-agent2
[root@web01 ~]# netstat -tunlp |grep agent2
tcp6 0 0 :::10050 :::* LISTEN 18962/zabbix_agent2
[root@lb01 ~]# netstat -tunlp |grep agent2
tcp6 0 0 :::10050 :::* LISTEN 18817/zabbix_agent2
自动发现设置
依次点击:
配置--自动发现--自己创建发现规则,填写IP地址或者网段范围(或者修改默认的local networl)--启用--更新
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TCiTXM54-1614342915610)(https://i.loli.net/2021/02/26/PXRKWl1eZhu2OaQ.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gTR4YzbL-1614342915613)(https://i.loli.net/2021/02/26/Yv5SmAWrEw8lRTu.png)]
再依次点击--配置--动作--选择Trigger actions中的Discovery acctions--勾选名称(Auto discovery.linux servers)--启用
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-oXwIBBKW-1614342915614)(https://i.loli.net/2021/02/26/AkjUt5ZFX8dzM29.png)]
启用后进入如下画面
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YHLhQARh-1614342915614)(C:%5CUsers%5Cdw%5CAppData%5CRoaming%5CTypora%5Ctypora-user-images%5Cimage-20210226153308208.png)]
点击名称(Auto discovery. Linux servers.)--选择操作--更新
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8aUR8R3s-1614342915615)(C:%5CUsers%5Cdw%5CAppData%5CRoaming%5CTypora%5Ctypora-user-images%5Cimage-20210226153614310.png)]
等待客户端自动出现
点击--配置--主机或者监测主机都能看到
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YIHb8beh-1614342915616)(https://i.loli.net/2021/02/26/KsQEOJdkNz4w2SU.png)]
自动注册–主动模式
1.准备一台linux机器
docker01 192.168.178.10 安装 zabbix-agent2
准备相关环境,切记同步时间
yum install ntpdate -y
mv /etc/localtime{,.bak}
ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
ntpdate -u ntp.aliyun.com && date
rpm -Uvh https://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
sed -i 's#http://repo.zabbix.com#https://mirrors.aliyun.com/zabbix#' /etc/yum.repos.d/zabbix.repo
yum clean all
yum install zabbix-agent2 -y
systemctl enable --now zabbix-agent2
2.修改以下四项
vim /etc/zabbix/zabbix_agent2.conf
Server=192.168.178.3
ServerActive=192.168.178.3
Hostname=docker01 # 此处填写本机名称
HostnameItem=system.hostname #比之前多了这一行配置
[root@docker01 ~]# vim /etc/zabbix/zabbix_agent2.conf
[root@docker01 ~]# grep -Ev '^#|^$' /etc/zabbix/zabbix_agent2.conf
PidFile=/var/run/zabbix/zabbix_agent2.pid
LogFile=/var/log/zabbix/zabbix_agent2.log
LogFileSize=0
Server=192.168.178.3
ServerActive=192.168.178.3
Hostname=docker01
HostMetadataItem=system.hostname
Include=/etc/zabbix/zabbix_agent2.d/*.conf
ControlSocket=/tmp/agent.sock
3.互相配置hosts文件
4.重启zabbix-agent2
systemctl restart zabbix-agent2
5.去服务端验证
[root@zabbix ~]# zabbix_get -s '192.168.178.79' -p 10050 -k "agent.ping"
1
[root@zabbix ~]# zabbix_get -s '192.168.178.79' -p 10050 -k "system.hostname"
docker01
在zabbix-server上配置
创建动作:配置--动作--选择Autoregistration actions--创建动作
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OhXdKqPG-1614342915617)(C:%5CUsers%5Cdw%5CAppData%5CRoaming%5CTypora%5Ctypora-user-images%5Cimage-20210226155934364.png)]
添加操作
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bYQLkYaC-1614342915618)(C:%5CUsers%5Cdw%5CAppData%5CRoaming%5CTypora%5Ctypora-user-images%5Cimage-20210226160311555.png)]
最后等待客户端,自动被添加即可
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BEemQHgb-1614342915619)(C:%5CUsers%5Cdw%5CAppData%5CRoaming%5CTypora%5Ctypora-user-images%5Cimage-20210226162313349.png)]
可以监测zabbix日志和agent2日志
[root@zabbix ~]# tail -f /var/log/zabbix/zabbix_server.log
[root@docker01 ~]# tail -f /var/log/zabbix/zabbix_agent2.log
全网监控方案
如何利用zabbix去监控整个web集群,假如有50台,100台机器,该怎么去监控。
问题:如何快速添加100台机器
思路:
克隆监控模板
自动注册和自动发现
使用zabbix的API接口,利用crul,或者python进行开发自己的运维监控平台
#
API(Application Programming Interface,应用程序接口)是一些预先定义的接口(如函数、HTTP接口),或指软件系统不同组成部分衔接的约定。 [1] 用来提供应用程序与开发人员基于某软件或硬件得以访问的一组例程,而又无需访问源码,或理解内部工作机制的细节。
050 -k “agent.ping”
1
[root@zabbix ~]# zabbix_get -s ‘192.168.178.79’ -p 10050 -k “system.hostname”
docker01
**在zabbix-server上配置**
创建动作:配置–动作–选择Autoregistration actions–创建动作
[外链图片转存中...(img-OhXdKqPG-1614342915617)]
**添加操作**
[外链图片转存中...(img-bYQLkYaC-1614342915618)]
**最后等待客户端,自动被添加即可**
[外链图片转存中...(img-BEemQHgb-1614342915619)]
**可以监测zabbix日志和agent2日志**
[root@zabbix ~]# tail -f /var/log/zabbix/zabbix_server.log
[root@docker01 ~]# tail -f /var/log/zabbix/zabbix_agent2.log
###
### 全网监控方案
```bash
如何利用zabbix去监控整个web集群,假如有50台,100台机器,该怎么去监控。
问题:如何快速添加100台机器
思路:
克隆监控模板
自动注册和自动发现
使用zabbix的API接口,利用crul,或者python进行开发自己的运维监控平台
#
API(Application Programming Interface,应用程序接口)是一些预先定义的接口(如函数、HTTP接口),或指软件系统不同组成部分衔接的约定。 [1] 用来提供应用程序与开发人员基于某软件或硬件得以访问的一组例程,而又无需访问源码,或理解内部工作机制的细节。