zabbix监控工具

作为一个运维,需要会使用监控系统查看服务器状态以及网站流量指标,利用监控系统的数据去了解上线发布的结果,和网站的健康状态

利用一个优秀的监控软件,我们可以:

  • 通过一个友好的界面进行浏览整个网站所有的服务器状态
  • 可以在web前端方便的查看监控数据
  • 可以回溯寻找事故发生时系统的问题和报警情况

zabbix是什么?

  • zabbix是一个基于 web界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。
  • zabbix能监视各种网络参数,保证服务器系统的安全运营,并提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问题。
  • zabbix由2部分构成,zabbix server与可选组件 zabbix agent。通过c/S模式采集数据,通过B/S模式在web端展示和配置。
  • zabbix server可以通过SNMP,zabbix agent,ping,端口监视等方法提供对远程服务器/网络状态的监视,数据收集等功能,它可以运行在 Linux等平台上。
  • zabbix agent需要安装在被监视的目标服务器上,它主要完成对硬件信息或与操作系统有关的内存,CP等信息
    的收集。

zabbix监控原理:

zabbix agent安装在被监控的主机上, zabbix agent负责定期收集客户端本地各项数据,并发送至zabbix server端,zabbix server收到数据后,将数据存储到数据库中,用户基于Zabbix WEB可以看到数据在前端展现图像。当zabbix 监控某个具体的项目,该项目会设置一个触发器阈值,当被监控的指标超过该触发器设定的阈值,会进行一些必要的动作,动作包括:发送信息(邮件、微信、短信)、发送命令(shell命令、reboot、restart、install 等)。

==zabbix监控部署在系统中,包含常见的五个程序: zabbix_server、zabbix_agent、zabbix_proxy、zabbix_get、zabbix_sender等。==

  • zabbix server: zabbix服务端守护进程,其中 zabbix agent、zabbix_get、zabbix sender、zabix proxy 的数据最终都提交给zabbix server;

  • zabbix agent:客户端守护进程,负责收集客户端数据,例如:收集CPU负载、内存、硬盘使用情况等;
  • zabbix proxy: zabbix分布式代理守护进程,通常大于500台主机,需要进行分布式监控架构部署;
  • zabbix get: zabbix数据接收工具,单独使用的命令,通常在 server 或者 proxy端执行获取远程客户端信息的命令;

  • zabbix sender: zabbix数据发送工具,用户发送数据给server或proxy端,通常用户耗时比较长的检查。

二、安装 zabbix 5.0

部署zabbix服务端

==zabbix-server 内存至少2G,推荐4G;==

systemctl disable --now firewalld
setenforce 0
hostnamectl set-hostname zbx-server

//获取zabbix的下载源

rpm -ivh https://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm

//更换zabbix.repo 为阿里源

cd /etc/yum.repos.d

sed -i 's#http://repo.zabbix.com#https://mirrors.aliyun.com/zabbix#' zabbix.repo

yum clean all && yum makecache

yum install -y zabbix-server-mysql zabbix-agent
//安装SCL(Software Collections),便于后续安装高版本的 php,默认yum 安装的 php版本为 5.4,版本过低,zabbix 5.0版本对php版本最低要7.2.0版本。SCI可以使得在同一台机器上使用多个版本的软件,而又不会影响整个系统的依赖环境。软件包会安装在/opt/rh目录下。

yum install -y centos-release-scl

修改 zabbix-front前端源,安装 zabbix前端环境到scl 环境下
vim zabbix.repo
......
[zabbix-frontend]
//添加数据库用户,以及zabbix所需的数据库信息mysql -u root -pabc123
CREATE DATABASE zabbix character set utf8 collate utf8 bin;GRANT all ON zabbix.* TO 'zabbix'@'%’IDENTIFIED BY 'zabbix';flush privileges;
//导入数据库信息
rpm -ql zabbix-server-mysql
#查询sql文件
的位置
zcat /usr/share/doc/zabbix-server-mysql-5.0.15/create.sql.gz l mysql -uroot -pabc123 zabbix//修改zabbix server 配置文件,修改数据库的密码
vim /etc/zabbix/zabbix server.conf
DBPassword=zabbix
#124行,指定zabbix数据库的密码
/修改zabbix的php配置文件
vim /etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf......
php_value [date.timezone] = Asia/Shanghai
#24行,取消注释,修改时区
//启动zabbix相关服务
systemctl restart zabbix-server zabbix-agent httpd rh-php72-php-fpmsystemctl enable zabbix-server zabbix-agent httpd rh-php72-php-fpm

浏览器访问: http://192.168.80.20/zabbix点击下一步,设置数据库的密码zabbix
安装完成后,默认的登录账号和密码为:Admin/zabbix设置文件界面:点击左边菜单栏的【User settings 】,
【Language 】选择 Chinese(zh_CN),再点击Update更新。
//解决 zabbix-server web页面中文乱码问题
yum install -y wqy-microhei-fonts
lcp -f /usr/share/fonts/wqy-microhei/wqy-microhei.ttc /usr/share/fonts/dejavu/DejaVuSans.ttf

部署zabbix客户端


zabbix 5.0版本采用golang语言开发的新版本客户端 agent2 。
zabbix服务端zabbix_server 默认使用10051端口,客户端zabbix_agent2默认使用10050端口。
systemctl disable --now firewalld
setenforce o
hostnamectl set-hostname zbx-agent01
//服务端和客户端都配置时间同步
yum install -y ntpdate
ntpdate -u ntp.aliyun . com
//客户端配置时区,与服务器保持一致mv letc/ localtime { ,.bak}
ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/ localtime
date
//设置zabbix的下载源,安装zabbix-agent2
rpm -ivh https : //mirrors.aliyun.com/zabbix/zabbix/ 5
.0/rhel/7/x8664/zabbix-release-5.0-1.el7.noarch.
rpm
cd /etc/ yum.repos.d
sed -i 's#http://repo.zabbix.comthttps://mirrors.aliyun.com/zabbix#' /etc/yum.repos.d/zabbix.repo
yum install -y zabbix-agent2
ntpdate -u ntp.aliyun. com
/客户端配置时区,与服务器保持一致mv /etc/ localtime { ,.bak}
ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/ localtime
date
/设置 zabbix 的下载源,安装 zabbix-agent2
rpm -ivh https: //mirrors.aliyun.com/zabbix/zabbix/ 5
.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
cd /etc/yum.repos.d
sed -i 's#http://repo.zabbix.comehttps://mirrors.aliyun.com/zabbix#'/etc/yum.repos.d/zabbix.repo
yum install -y zabbix-agent2
//修改agent2配置文件
vim /etc/zabbix/zabbix_agent2.conf
Server=192.168.80.20
#80行,指定zabbix服务端的IP地址
ServerActive=192.168.80.20
#120行,指定zabbix
服务端的IP地址
Hostname=zbx-agent01
#131行,指定当前zabbix客户端的主机名
//启动 zabbix-agent2
systemctl start zabbix-agent2systemctl enable zabbix-agent2
netstat -natp l grep zabbixtcp6
0
0 : : : 10050
LISTEN
43654/zabbix_agent2

总结:

自定义监控项
在 agent客户端编写监控数据采集脚本/命令
在agent2配置目录中添加监控项配置文件*.conf
UserParameter=<key>,<shell脚本/命令>

服务端
创建模板,应用集,监控项,触发器,图形等
将模板和主机进行关联

邮件报警:
设置报警媒介,动作添加触发器,开启动作
-—------ zabbix自动发现与自动注册----------llzabbix自动发现(对于agent2是被动模式)
zabbix server主动的去发现所有的客户端,然后将客户端的信息登记在服务端上。
缺点是如果定义的网段中的主机数量多,zabbix server登记耗时较久,且压力会较大。
1.确保客户端上的zabbix-agent2服务状态正常
systemctl is-active zabbix-agent2.serviceactive
2.在web页面删除原有的客户端主机
点击左边菜单栏【配置】中的【主机】,勾选原有的客户端主机,点击删除
3.在服务端和客户端上配置hosts 解析
vim /etc/ hosts
192.168.80.20 zbx-server192.168.80.30 zbx-agent01
4.在web页面配置自动发现
点击左边菜单栏【配置】中的【自动发现】,点击【创建发现规则】
【名称】设置成mynetwork
【IP范围】设置成192.168.80.1-254【更新间隔】设置成30s
【检查】点击【添加】,【检查类型】选择Zabbix客户端,【端口范围】设置成10050,【键值】设置成system
uname
【设备唯一性准则】选择IP地址
【主机名称】选择DNS名称
【可见的名称】选择主机名称
勾选【已启用】,点击【更新】

点击左边菜单栏【配置】中的【动作】,上方菜单选择
【Discovery actions 】

勾选【Auto discovery. Linux servers. 】,点击【启用】

点击左边菜单栏【配置】中的【主机】刷新,等待一段时间后即可刷新出自动发现的客户端主机