Zabbix-企业级监控的部署

zabbix 监控系统概述及部署

Zabbix是什么

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

Zabbix监控原理:

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

Zabbix的缺点:

  • 需在被监控主机上安装agent,所有数据都存在数据库里,产生的数据据很大,瓶颈主要在数据库。
  • 项目批量修改不方便。
  • 社区虽然成熟,但是中文资料相对较少,服务支持有限。
  • 入门容易,能实现基础的监控,但是深层次需求需要非常熟悉Zabbix并进行大量的二次定制开发难度较大。
  • 系统级别报警设置相对比较多,如果不筛选的话报警邮件会很多;且自定义的项目报警需要自己设置,过程比较繁琐。
  • 缺少数据汇 总功能,如无法查看-组服务器平均值, 需进行二次开发;

Zabbix的监控方式:

a)主动模式

主动检测:相对于agent而言; agent(active),agent向server请求与自己相关监控项配置, 主动地将server配置的监控项相关的数据发送给server;主动监控能极大节约监控server的资源。

b)被动模式

被动检测:相对于agent而言 ; agent, server向agent请求获取配置的各监控项相关的数据,agent接收请求、获取数据并响应给server。

Zabbix程序组件:

  • Zabbix_ server:服务端守护进程
  • Zabbix_ agentd:agent守 护进程
  • zabbix_ proxy: 代理服务器
  • zabbix database: 存储系统,mysql, pgsq|
  • Zabbix_ web:web GUI图形化界面
  • Zabbix_ get:命令行工具,测试向agent发起数据采集请求
  • Zabbix_ sender:命令行工具,测试向server发 送数据
  • Zabbix_ java_ gateway: java网关

Zabbix部署

注意事项:服务端之前不能已安装 mysql

 1 ---------- 部署 zabbix 服务端 ----------
 2 zabbix-server 内存至少 2G,推荐 4G;
 3  
 4 systemctl disable --now firewalld
 5 setenforce 0
 6 hostnamectl set-hostname zbx-server
 7  
 8 //获取 zabbix 的下载源
 9 rpm -ivh https://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
10  
11 //更换 zabbix.repo 为阿里源
12 cd /etc/yum.repos.d
13 sed -i 's#http://repo.zabbix.com#https://mirrors.aliyun.com/zabbix#' zabbix.repo
14  
15 yum clean all && yum makecache
16  
17 yum install -y zabbix-server-mysql zabbix-agent
18  
19 //安装SCL(Software Collections),便于后续安装高版本的 php,默认 yum 安装的 php 版本为 5.4,版本过低,zabbix 5.0 版本对 php 版本最低要 7.2.0 版本。SCL 可以使得在同一台机器上使用多个版本的软件,而又不会影响整个系统的依赖环境。软件包会安装在 /opt/rh 目录下。
20  
21 yum install -y centos-release-scl
22  
23 //修改 zabbix-front 前端源,安装 zabbix 前端环境到 scl 环境下
24 vim zabbix.repo
25 ......
26 [zabbix-frontend]
27 ......
28 enabled=1                          #开启安装源
29 ......
30  
31 yum install -y zabbix-web-mysql-scl zabbix-apache-conf-scl
32  
33 //安装 zabbix 所需的数据库
34 yum install -y mariadb-server mariadb
35  
36 systemctl enable --now mariadb
37  
38 mysql_secure_installation          #初始化数据库,并设置密码,如 abc123
39  
40 //添加数据库用户,以及 zabbix 所需的数据库信息
41 mysql -u root -pabc123
42  
43 CREATE DATABASE zabbix character set utf8 collate utf8_bin;
44 GRANT all ON zabbix.* TO 'zabbix'@'%' IDENTIFIED BY 'zabbix';
45 flush privileges;
46  
47 //导入数据库信息
48 rpm -ql zabbix-server-mysql        #查询 sql 文件的位置
49  
50 zcat /usr/share/doc/zabbix-server-mysql-5.0.15/create.sql.gz | mysql -uroot -pabc123 zabbix
51  
52 //修改 zabbix server 配置文件,修改数据库的密码
53 vim /etc/zabbix/zabbix_server.conf
54 ......
55 DBPassword=zabbix                  #124行,指定 zabbix 数据库的密码
56  
57 //修改 zabbix 的 php 配置文件
58 vim /etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf
59 ......
60 php_value[date.timezone] = Asia/Shanghai        #24行,取消注释,修改时区
61  
62 //启动 zabbix 相关服务
63 systemctl restart zabbix-server zabbix-agent httpd rh-php72-php-fpm
64 systemctl enable zabbix-server zabbix-agent httpd rh-php72-php-fpm
65  
66 浏览器访问:http://192.168.208.20/zabbix
67 点击下一步,设置数据库的密码 zabbix
68 安装完成后,默认的登录账号和密码为:Admin/zabbix
69 设置文件界面:点击左边菜单栏的【User settings】,【Language】选择 Chinese(zh_CN),再点击 Update 更新。
70  
71 //解决 zabbix-server Web页面中文乱码问题
72 yum install -y wqy-microhei-fonts
73  
74 \cp -f /usr/share/fonts/wqy-microhei/wqy-microhei.ttc /usr/share/fonts/dejavu/DejaVuSans.ttf

 

 

 

 

 

 

 

 

 1 ---------- 部署 zabbix 客户端 ----------
 2 zabbix 5.0 版本采用 golang 语言开发的新版本客户端 agent2 。
 3 zabbix 服务端 zabbix_server 默认使用 10051 端口,客户端 zabbix_agent2 默认使用 10050 端口。
 4  
 5  
 6 systemctl disable --now firewalld
 7 setenforce 0
 8 hostnamectl set-hostname zbx-agent01
 9  
10 //服务端和客户端都配置时间同步
11 yum install -y ntpdate
12 ntpdate -u ntp.aliyun.com
13  
14 //客户端配置时区,与服务器保持一致
15 mv /etc/localtime{,.bak}
16 ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
17  
18 date
19  
20 //设置 zabbix 的下载源,安装 zabbix-agent2
21 rpm -ivh https://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
22  
23 cd /etc/yum.repos.d
24 sed -i 's#http://repo.zabbix.com#https://mirrors.aliyun.com/zabbix#' /etc/yum.repos.d/zabbix.repo
25  
26 yum install -y zabbix-agent2
27  
28 //修改 agent2 配置文件
29 vim /etc/zabbix/zabbix_agent2.conf
30 ......
31 Server=192.168.208.20            #80行,指定 zabbix 服务端的 IP 地址
32 ServerActive=192.168.208.20      #120行,指定 zabbix 服务端的 IP 地址
33 Hostname=zbx-agent01             #131行,指定当前 zabbix 客户端的主机名
34  
35 //启动 zabbix-agent2
36 systemctl start zabbix-agent2
37 systemctl enable zabbix-agent2
38  
39 netstat -natp | grep zabbix
40 tcp6       0      0 :::10050                :::*                    LISTEN      43654/zabbix_agent2
41  
42 //在服务端验证 zabbix-agent2 的连通性
43 yum install -y zabbix-get        #安装 zabbix 主动获取数据的命令
44  
45 zabbix_get -s '192.168.208.30' -p 10050 -k 'agent.ping'
46 1
47  
48 zabbix_get -s '192.168.208.30' -p 10050 -k 'system.hostname'
49 zbx-agent01

  1 //在 Web 页面中添加 agent 主机
  2 点击左边菜单栏【配置】中的【主机】,点击【创建主机】
  3 【主机名称】设置成 zbx-agent01
  4 【可见的名称】设置成 zbx-agent01-192.168.208.30
  5 【群组】选择 Linux server
  6 【Interfaces】的【IP地址】设置成 192.168.208.30
  7  
  8 再点击上方菜单栏【模板】
  9 【Link new tamplates】搜索 Linux ,选择 Template OS Linux by Zabbix agent
 10 点击 【添加】
 11  
 12  
 13 ---------- 自定义监控内容 ----------
 14 案列:自定义监控客户端服务器登录的人数
 15 需求:限制登录人数不超过 3 个,超过 3 个就发出报警信息
 16  
 17 //在客户端创建自定义 key
 18 1.明确需要执行的 linux 命令
 19 who | wc -l
 20  
 21 2.创建 zabbix 的监控项配置文件,用于自定义 key
 22 vim /etc/zabbix/zabbix_agent2.conf
 23 #可以将自定义的监控项配置文件创建在 zabbix_agent2.d 目录中
 24 268 Include=/etc/zabbix/zabbix_agent2.d/*.conf
 25 #自定义监控项的格式如下
 26 291 #   Format: UserParameter=<key>,<shell command>
 27  
 28 cd /etc/zabbix/zabbix_agent2.d/
 29  
 30 vim UserParameter_login.conf
 31 UserParameter=login.user,who|wc -l
 32  
 33 systemctl restart zabbix-agent2
 34  
 35 3.在服务端验证新建的监控项
 36 zabbix_get -s '192.168.208.30' -p 10050 -k 'login.user'
 37  
 38  
 39 //在 Web 页面创建自定义监控项模板
 40 1.创建模板
 41 点击左边菜单栏【配置】中的【模板】,点击【创建模板】
 42 【模板名称】设置成 Template Login User
 43 【可见的名称】设置成 Template Login User
 44 【群组】选择 Template
 45 【描述】可自定义
 46 点击 【添加】,此时就可在【链接的模板】中搜索到 Template Login User 了
 47  
 48 2.创建应用集(用于管理监控项的)
 49 点击上方菜单栏【应用集】,点击【创建应用集】
 50 【名称】设置成 Login User
 51 点击 【添加】
 52  
 53 3.创建监控项
 54 点击上方菜单栏【监控项】,点击【创建监控项】
 55 【名称】设置成 Number of login users
 56 【键值】设置成 login.user          #键值必须要与自定义的监控项配置文件中设置的保持一致
 57 【更新间隔】设置成 10s
 58 【历史数据保留时长】Storage period    30d     #保留时间可自定义设置
 59 点击 【添加】
 60  
 61 4.创建触发器(当监控项获取到监控的值后和触发器预设的值进行对比,判断是否报警)
 62 点击上方菜单栏【触发器】,点击【创建触发器】
 63 【名称】设置成 Number of login users is greater than 3
 64 【严重性】设置成 一般严重
 65 【表达式】点击添加,【监控项】点击选择 Number of login users,【功能】选择 last(),【结果】选择 > 3,点击 【插入】
 66 点击 【添加】
 67  
 68 5.创建图形
 69 点击上方菜单栏【图形】,点击【创建图形】
 70 【名称】设置成 Number of login users
 71 【宽】、【高】可直接采用默认值
 72 【监控项】点击添加勾选相关监控项 Number of login users,【功能】选择 最大,其它可保持默认值
 73 点击 【添加】
 74  
 75 6.将主机与模板关联起来(一个主机可以关联多个模板)
 76 点击左边菜单栏【配置】中的【主机】,点击你要关联的主机
 77 点击上方菜单栏【模板】,【Link new tamplates】搜索 login,选择 Template Login User,点击【更新】
 78  
 79 此时就点击【监测】中的【主机】,点击你关联主机的【图形】,即可查看到相关的监控项指标
 208  
 81 7.设置邮件报警
 82 点击左边菜单栏【管理】中的【报警媒介类型】,点击【创建媒体类型】
 83 【名称】设置成 qq_Email
 84 【SMTP服务器】设置成 smtp.qq.com
 85 【SMTP服务器端口】设置成 25
 86 【SMTP HELO】设置成 qq.com
 87 【SMTP电邮】设置成 自己的邮箱地址,例如 qwe4546456@qq.com
 88 【认证】选择 用户名和密码
 89 【用户名称】设置成 自己的邮箱地址,例如 qwe4546456@qq.com
 90 【密码】可登录QQ邮箱页面,点击【设置】-->【账户】中的【生成授权码】,通过短信获取授权码
 91 【描述】可自定义
 92 点击上方菜单栏【Message templates】,点击【添加】,【Message type】选择 问题,点击【更新】
 93 点击 【添加】,并测试功能
 94  
 95 点击左边菜单栏【User settings】-->【报警媒介】,点击【添加】
 96 【类型】选择 qq_Email
 97 【收件人】设置成 qwe4546456@wo.cn
 98 【当启用时】设置成 1-7,00:00-24:00
 99 点击 【添加】
100 再点击 【更新】
101  
102 点击左边菜单栏【配置】中的【动作】,选择相对应的动作名称,点击【启用】
103  
104 //测试邮件报警
105 增加测试客户端的用户登录数超过触发器预设的值,查看【监测】-->【仪表盘】,确认报警
 1 ---------- zabbix 自动发现与自动注册 ----------
 2 //zabbix 自动发现(对于 agent2 是被动模式)
 3 zabbix server 主动的去发现所有的客户端,然后将客户端的信息登记在服务端上。
 4 缺点是如果定义的网段中的主机数量多,zabbix server 登记耗时较久,且压力会较大。
 5  
 6 1.确保客户端上的 zabbix-agent2 服务状态正常
 7 systemctl is-active zabbix-agent2.service
 8 active
 9  
10 2.在 Web 页面删除原有的客户端主机
11 点击左边菜单栏【配置】中的【主机】,勾选原有的客户端主机,点击 删除
12  
13 3.在服务端和客户端上配置 hosts 解析
14 vim /etc/hosts
15 192.168.208.20 zbx-server
16 192.168.208.30 zbx-agent01
17  
18 4.在 Web 页面配置自动发现
19 点击左边菜单栏【配置】中的【自动发现】,点击【创建发现规则】
20 【名称】设置成 mynetwork
21 【IP范围】设置成 192.168.208.1-254
22 【更新间隔】设置成 30s
23 【检查】点击【添加】,【检查类型】选择 Zabbix 客户端,【端口范围】设置成 10500,【键值】设置成 system.uname
24 【设备唯一性准则】选择 IP地址
25 【主机名称】选择 DNS名称
26 【可见的名称】选择 主机名称
27 勾选 【已启用】,点击 【更新】
28  
29 点击左边菜单栏【配置】中的【动作】,上方菜单选择 【Discovery actions】
30 勾选 【Auto discovery. Linux servers.】,点击 【启用】
31  
32 点击左边菜单栏【配置】中的【主机】刷新,等待一段时间后即可刷新出自动发现的客户端主机
33  
34 可在服务端查看 zabbix 日志
35 tail -f /var/log/zabbix/zabbix_server.log
36 ......
37   6601:20210922:225044.115 enabling Zabbix agent checks on host "zbx-agent01": host became available
38  
39  
40 //zabbix 自动注册(对于 agent2 是主动模式)
41 zabbix agent2 会主动上报自己的信息,发给 zabbix server。
42 缺点是可能因为配置文件配置错误或者网络不通等原因导致 zabbix agent2 可能找不到 zabbix server。
43  
44 1.环境准备
45 点击左边菜单栏【配置】中的【自动发现】,勾选发现规则,点击 禁用
46 点击左边菜单栏【配置】中的【主机】,勾选原有的客户端主机,点击 删除
47  
48 vim /etc/hosts
49 192.168.208.20 zbx-server
50 192.168.208.30 zbx-agent01
51  
52 2.修改 zabbix-agent2 配置文件
53 vim /etc/zabbix/zabbix_agent2.conf
54 ......
55 HostnameItem=system.hostname        #139行,取消注释
56  
57 egrep -v "^#|^$" /etc/zabbix/zabbix_agent2.conf
58 PidFile=/var/run/zabbix/zabbix_agent2.pid
59 LogFile=/var/log/zabbix/zabbix_agent2.log
60 LogFileSize=0
61 Server=192.168.208.20
62 ServerActive=192.168.208.20
63 Hostname=zbx-agent01
64 HostnameItem=system.hostname
65 Include=/etc/zabbix/zabbix_agent2.d/*.conf
66 ControlSocket=/tmp/agent.sock
67  
68 3.在 Web 页面配置自动注册
69 点击左边菜单栏【配置】中的【动作】,上方菜单选择 【Autoregistration actions】,点击【创建动作】
70 【名称】设置成 Auto registration
71 点击 【添加】,【类型】选择 主机名称,【操作者】选择 包含,【值】设置成 zbx-agent01
72 点击上方菜单栏【操作】,点击【添加】,【操作类型】选择 添加主机,点击 【add】
73 再点击【添加】,【操作类型】选择 添加到主机群组,【主机群组】选择 Linux servers,点击 【add】
74 再点击【添加】,【操作类型】选择 与模板关联,【模板】搜索 Linux,选择 Template OS Linux by Zabbix agent,点击 【add】
75 点击下方的【添加】
76  
77 点击左边菜单栏【配置】中的【主机】刷新,等待一段时间后即可刷新出自动发现的客户端主机
78  
79 在服务端查看 zabbix 日志
208 tail -f /var/log/zabbix/zabbix_server.log

部署zabbix代理服务器

分布式监控的作用

  • 分担 server 的集中式压力
  • 解决多机房之间的网络延时问题

数据传输流程

agent --> proxy --> server

 1 --------- 部署 zabbix 代理服务器 ----------
 2 分布式监控的作用:
 3 ●分担 server 的集中式压力
 4 ●解决多机房之间的网络延时问题
 5  
 6 agent --> proxy --> server
 7  
 8  
 9 systemctl disable --now firewalld
10 setenforce 0
11 hostnamectl set-hostname zbx-proxy
12  
13 //设置 zabbix 的下载源,按照 zabbix-proxy
14 rpm -ivh https://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
15  
16 cd /etc/yum.repos.d
17 sed -i 's#http://repo.zabbix.com#https://mirrors.aliyun.com/zabbix#' /etc/yum.repos.d/zabbix.repo
18  
19 yum install -y zabbix-proxy-mysql zabbix-get
20  
21 //安装 zabbix 所需的数据库
22 yum install -y mariadb-server mariadb
23  
24 systemctl enable --now mariadb
25  
26 mysql_secure_installation            #初始化数据库,并设置密码,如 abc123
27  
28 //添加数据库用户,以及 zabbix 所需的数据库信息
29 mysql -u root -pabc123
30  
31 CREATE DATABASE zabbix_proxy character set utf8 collate utf8_bin;
32 GRANT all ON zabbix_proxy.* TO 'zabbix'@'%' IDENTIFIED BY 'zabbix';
33 flush privileges;
34  
35 //导入数据库信息
36 rpm -ql zabbix-proxy-mysql          #查询 sql 文件的位置
37  
38 zcat /usr/share/doc/zabbix-proxy-mysql-5.0.15/schema.sql.gz | mysql -uroot -pabc123 zabbix_proxy
39  
40 //修改 zabbix-proxy 配置文件
41 vim /etc/zabbix/zabbix_proxy.conf
42 Server=192.168.208.20               #30行,指定 zabbix 服务端的 IP 地址
43 Hostname=zbx-proxy                  #49行,指定当前 zabbix 代理服务器的主机名
44 DBPassword=zabbix                   #196行,指定当前数据库 zabbix 用户的密码
45  
46 //启动 zabbix-proxy
47 systemctl start zabbix-proxy
48 systemctl enable zabbix-proxy
49  
50 //在所有主机上配置 hosts 解析
51 vim /etc/hosts
52 192.168.208.20 zbx-server
53 192.168.208.30 zbx-agent01
54 192.168.208.13 zbx-proxy
55  
56 //在 Web 页面配置 agent 代理
57 点击左边菜单栏【配置】中的【动作】,勾选自动注册规则,点击 禁用
58 点击左边菜单栏【配置】中的【主机】,勾选原有的客户端主机,点击 删除
59  
60 点击左边菜单栏【管理】中的【agent代理程序】,点击【创建代理】
61 【agent代理程序名称】设置为 zbx-proxy
62 【系统代理程序模式】选择 主动式
63 【代理地址】设置为 192.168.208.13
64 点击 【添加】
65  
66 //配置 agent 使用 proxy
67 1.在客户端修改 agent2 配置文件
68 vim /etc/zabbix/zabbix_agent2.conf
69 ......
70 Server=192.168.208.13            #80行,指定 zabbix 代理服务器的 IP 地址
71 ServerActive=192.168.208.13      #120行,指定 zabbix 代理服务器的 IP 地址
72  
73 2.在 Web 页面配置
74 点击左边菜单栏【配置】中的【主机】,点击【创建主机】
75 【主机名称】设置成 zbx-agent01
76 【可见的名称】设置成 zbx-agent01
77 【群组】选择 Linux server
78 【Interfaces】的【IP地址】设置成 192.168.208.30
79 【由agent代理程序监测】选择 zbx-proxy
208  
81 再点击上方菜单栏【模板】
82 【Link new tamplates】搜索 Linux ,选择 Template OS Linux by Zabbix agent
83 点击 【添加】
84  
85 3.分别在客户端和代理服务器上重启服务
86 systemctl restart zabbix-agent2
87  
88 systemctl restart zabbix-proxy
89  
90 点击左边菜单栏【配置】中的【主机】刷新,查看客户端主机监控状态正常
91  
92 在服务端查看日志
93 tail -f /var/log/zabbix/zabbix_proxy.log

 

 1 ---------- 设置 zabbix-snmp 监控 ----------
 2 SNMP,简单网络管理协议
 3  
 4 1.服务端安装 snmp 监控程序
 5 yum install -y net-snmp net-snmp-utils
 6  
 7 2.修改 snmp 的配置文件,并启动服务
 8 vim /etc/snmp/snmpd.conf
 9 ......
10 view    systemview    included   .1             #57行,添加此配置
11  
12 systemctl start snmpd
13  
14 3.使用 snmp 命令测试
15 snmpwalk -v 2c -c public 127.0.0.1 sysname
16 SNMPv2-MIB::sysName.0 = STRING: zbx-server
17 -------------------------------------------------------
18 –v 1|2c|3:指定SNMP协议版本
19 –c:指定共同体字符串
20 sysname:为 snmp 的 key
21 -------------------------------------------------------
22  
23 4.在 Web 页面配置 snmp 方式监控
24 点击左边菜单栏【配置】中的【主机】,点击 Zabbix server
25 【Interfaces】点击【添加】选择 SNMP ,端口设置成 161
26 点击上方菜单栏【模板】,【链接的模板】中的所有 agent 模板选择取消链接并清理
27 再在【Link new templates】中搜索 Linux SNMP,选择 Template OS Linux SNMP
28 点击 【更新】,等待一段时间后 Zabbix server   的可用性就变成了 SNMP 监控方式。

 

posted @ 2021-09-20 18:46  梨xyc  阅读(151)  评论(0编辑  收藏  举报