CentOS 安装 Zabbix 5.0
前言
说明:本文介绍CentOS 8.3 搭建 Zabbix5.0 监控平台安装及相关要求
一、安装要求
内存和磁盘
Zabbix同时需要物理内存和磁盘空间。刚开始使用Zabbix,建议128MB物理内存和256MB可用磁盘空间。然而, 具体需要的内存大小和磁盘空间要根据主机数量和监控参数而定。如果你计划对监控的参数进行长期保存,你应该考虑至少在数据库中预留几个GB的空间,以用来保留历史数据。 每个Zabbix的守护进程需要与数据库服务器建立多个连接。分配给连接的内存数量,取决于数据库引擎的配置。
CPU
根据监控参数及选择的数据库引擎,Zabbix,特别是Zabbix数据库,可能需要大量的CPU资源,
其他硬件
如果需要启用短信(SMS)通知功能,需要串行通讯口(serial communication port)和串行GSM调制解调器(serial GSM modem)。USB转串行转接器也同样可以工作。
关闭NFtables和SElinux
安装系统常用软件包
二、安装 Zabbix 服务端
Zabbix 官方源
替换为阿里云Zabbix源
安装 Zabbix 服务端
安装Apache和MariaDB并启动
数据库根用户添加密码及安全设置
步骤如下:
要求你配置VALIDATE PASSWORD component(验证密码组件): 输入y ,回车进入该配置
选择密码验证策略等级, 我这里选择0 (low),回车
输入新密码两次
确认是否继续使用提供的密码?输入y ,回车
移除匿名用户? 输入y ,回车
不允许root远程登陆? 不需要输入y,需要远程登陆输入n ,回车
移除test数据库? 输入y ,回车
重新载入权限表? 输入y ,回车
查询下root是否可以远程登陆,没有就配置一下
配置远程登陆
关闭MySQL主机查询dns
MySQL会反向解析远程连接地址的dns记录,如果MySQL主机无法连接外网,则dns可能无法解析成功,导致第一次连接MySQL速度很慢,所以在配置中可以关闭该功能。
给/etc/my.cnf
文件,添加配置
/etc/my.cnf
文件,添加配置重启服务
创建zabbix数据库,在数据库主机上运行以下内容。
在 Zabbix 服务端主机上导入初始架构和数据。
三、启动Zabbix Server进程
zabbix_server.conf 配置说明
ListenPort 监听端口,默认10051
SourceIP 源ip,默认为空,可以写机器ip地址
SourceIP=机器ip
LogType 日志类型,system\file\console,默认file
LogFile 日志路径,默认/var/log/zabbix/zabbix_server.log
LogFile=/var/log/zabbix/zabbix_server.log
LogFileSize 日志大小,0-1024MB,0禁用自动日志轮换
LogFileSize=0
DebugLevel 调试级别,0~5,默认为3显示waring信息
PidFile pid文件,默认/var/run/zabbix/zabbix_server.pid
PidFile=/var/run/zabbix/zabbix_server.pid
SockerDir socker文件夹,默认/var/run/zabbix
SocketDir=/var/run/zabbix
DBHOst 数据库地址,默认127.0.0.1
DBName 数据库名称,默认 zabbix
DBName=zabbix
DBSchema 数据库dschema,默认 空
DBUser 数据库用户,默认zabbix
DBUser=zabbix
DBPassword 数据库密码
DBPassword=zabbixmysql
DBSocket DBScoket地址
DBPort 数据库端口,默认为空,
HistoryStorageURL 历史存储的HTTP地址
HistoryStorageTypes 用逗号分隔的类型列表,uint\dbl\str\log\text
HistoryStorageDateIndex 是否历史记录预处理 0 disable,1 enable
ExportDir 导出路径
ExportFileSize 导出文件大小1M~1G,默认1G
StartPollers 预分叉的轮询器实例数,默认5
StartIPMIPollers IPMI轮询器数量
StartPreprocessors 启动预处理器数量,默认3
StartPollersUnreachable 无法访问是轮询次数
StartTrappers
StartPingers ICMP预习处理数
StartDiscoverers 发现者预处理数
StartHTTPPollers HTTP查询器预处理数
StartTimers 计时器数
JavaGateway zabbix网关ip地址或主机名,仅在启动java轮询器时需要
JavaGateway=机器当前ip
JavaGatewayPort zabbix网关的监听端口,默认10052
StartJavaPollers java轮询器预处理数
StartJavaPollers=5
StartVMwareCollectors 虚拟收集器的数量
SNMPTrapperFile SNMPtrapper文件,从snmp守护进程传递到服务器的临时文件
SNMPTrapperFile=/var/log/snmptrap/snmptrap.log
StartSNMPTrapper 为1,启动SNMPTrapper
ListenIP trapper监听的端口列表,用逗号分隔
CacheSize 缓存
Timeout SNMP服务和外部检查超时时间
Timeout=4
AlertScriptsPath 预警脚本位置
AlertScriptsPath=/usr/lib/zabbix/alertscripts
ExternalScripts 外部脚本路径
ExternalScripts=/usr/lib/zabbix/externalscripts
LogSlowQueries 定义数据库慢查询时长,单位毫秒
LogSlowQueries=3000
StatsAllowedIP 允许访问的ip列表,用逗号分隔0.0.0.0/0代表所有ipv4地址
StatsAllowedIP=0.0.0.0/0
在zabbix_server.conf中编辑配置
编辑Zabbix前端的PHP配置
PHP 优化,如有需要可根据相关参数进行优化
expose_php = Off
# 禁止显示php版本的信息short_open_tag = On
# 取消前面的;,修改为On。表示支持php短标签cgi.fix_pathinfo=1
# 将注释去掉,开启PHP的pathinfo伪静态功能。post_max_size = 100M
# 单提交的最大数据,此项不是限制上传单个文件的大小,而是针对整个表单的提交数据进行限制的,默认8Mupload_max_filesize = 50M
#上载文件的最大许可大小 ,默认2Mmax_execution_time = 600
# 脚本运行的最长时间,默认30秒max_input_time = 600
# 脚本可以消耗的时间,默认60秒memory_limit = 256M
# 脚本运行最大消耗的内存,根据你的需求更改数值,默认128Mdate.timezone = asia/shanghai
#设置时区
启动 Zabbix 服务器和代理进程,并设置开机自启动
Zabbix前端可以在浏览器中通过 http://localhost/zabbix 进行访问。
配置 Zabbix 前端
输入数据库连接端口,zabbix数据库密码,输入名称
默认的用户是Admin,密码为zabbix,该用户是超级用户,输入登录信息后,点击Sign In按钮,进行登录 左下角设置可以切换语言
数据库配置,输入数据库连接端口,zabbix数据库密码
Zabbix Server 配置,输入名称
确认配置信息
默认的用户是Admin,密码为zabbix
更换web页面显示语言,切换为zh_CN
解决Zabbix 图形中文乱码
字体文件目录:
php 脚本文件位置:
我这里安装的是zabbix5.0,进入到/usr/share/zabbix/assets/fonts
目录,可以看到一个graphfont.ttf
软连接,默认指向/etc/alternatives/zabbix-web-font
这个字体文件,由于php配置文件已经配置好了graphfont.ttf,所以这个软连接指向哪个字体文件就使用哪个文件
下载一个微软雅黑字体
四、安装 Zabbix 客户端
关闭NFtables和SElinux
安装系统常用软件包
注意:这里需要下载和Zabbix Server版本一致的Zabbix Agent 软件包和Yum源
Zabbix 官方源
替换为阿里云Zabbix源
安装 Zabbix 客户端
配置zabbix_agent.conf客户端
zabbix_agent.conf配置说明
PidFile Pid文件
PidFile=/var/run/zabbix/zabbix_agentd.pid
LogType 日志类型,system\file\console,默认file
LogFile 日志文件
LogFile=/var/log/zabbix/zabbix_agentd.log
LogFileSize 日志大小,0-1024MB,0禁用自动日志轮换
LogFileSize=0
DebugLevel 调试级别,0~5,默认为3显示waring信息
SourceIP 源IP,默认为空,可以写机器IP地址
SourceIP=机器IP
AllowKey 允许执行的项目键
DenyKey
Server zabbix-server的IP或名称,列出主机接受传入的连接
Server=服务端机器IP
ListenPort 监听端口,默认10050
ListenIP 监听IP,zabbix-agent的IP
ListenIP=机器IP
StartAgents 监听的服务,zabbix-server的IP地址
ServerActive=服务端机器IP:10051
Hostname 主机名zabbix-agent的IP,在zabbix-web上添加hosts时用这个名称
Hostname=机器的名称
UnsafeUserParameters=1 默认为0,不允许使用以下字符 ' " ` * ? [ ] { } ~ $ ! & ; ( ) < > | # @,此外,不允许换行符,修改为1,表示自定义脚本中可以包含特殊字符。
HostMetadataItem 主机元数据,默认是system.uname,当Agent程序向服务端发送自动注册请求时,会发送其主机名,在某些情况下,Zabbix服务器的主机名不足以区分发现的主机,主机元数据可将其他信息从Agent发送到服务端。
启动 Zabbix 代理进程,并设置开机自启动
五、Zabbix5.0 监控 Nginx
安装 Nginx
查看当前Nginx是否已安装内置运行状态模块
从命令返回值中出现“--with-http_stub_status_module
”这一个模块即代表内置运行状态模块已开启
开启运行状态模块,编辑Nginx配置文件
注意:stub_status模块只能应用在server或者location下
检查配置文件语法是否正确,然后重启nginx服务
浏览器访问运行状态页面
页面内容解析:
Active connections:当前活动的客户端连接数有多少(包括在等待阶段的)
accepts:接受的客户端连接总数
handled:已处理的连接总数(通常与accepts数量一致,但存在某些资源限制的情况导致数量不一致)
requests:客户端请求总数(包括接受请求或拒绝请求的)
Reading:nginx正在读取请求标头的当前连接数。
Writing:nginx正在将响应写回到客户端的当前连接数。
Waiting:当前等待请求的空闲客户端连接数。
编写监控脚本
创建自定义监控项
比如第一个自定义键值为:nginx.active
,要执行的命令为执行nginx_status.sh
这个脚本。
六、Zabbix Server Web界面添加被监控主机
配置——主机群组——创建主机群组——输入组名
要在Zabbix页面创建主机组,请执行以下步骤:
进入: 配置 → 主机组
单击页面右上角的创建主机群组
在表单中输入组的相关参数
配置——主机——创建主机
按照以下步骤在Zabbix前端创建一台主机:
进入: 配置 → 主机
单击页面右上角 创建主机 (或者在主机名上单击以编辑一台已有的主机)
在表单中输入主机的相关参数
配置——模板——创建模板
要创建模板,请执行以下操作:
转到配置→模板
点击创建模板
编辑模板属性
主机——监控项——创建监控项
要在Zabbix管理页面创建一个监控项,请执行以下操作:
进入到: 配置 → 主机
在主机所在的行单击 监控项
点击屏幕右上角的创建监控项
输入表单中监控项的参数
主机——触发器——创建触发器
配置一个触发器,进行下面步骤:
进入:配置 → 主机
点击主机一行的 触发器
点击右上角的 创建触发器(或者点击触发器名称去修改一个已存在的触发器)
在窗口中输入触发器的参数
主机——图形——创建图形
前往 配置 → 主机 (或模板) 页;
点击所要创建图形的主机或模板旁的 图形链接;
在跳转的图表页的上,点击创建图表按钮;
编辑图表的属性。
七、在Zabbix Server 中添加告警媒介
添加企业微信机器人告警脚本
进入该定义的脚本存放路径下,创建用来推送告警消息的脚本
赋予脚本执行权限
安装python3.9版本
Python3安装requests模块
测试脚本,告警推送
管理——报警媒介类型——创建媒介类型
新建一个企业微信的报警,脚本名称就是我们脚本名 wechat.py
参数:
{ALERT.SENDTO}
{ALERT.SUBJECT}
{ALERT.MESSAGE}
管理——报警媒介类型——Message templates
效果:
恢复故障模板
效果:
管理 --> 报警 --> 媒介类型 --> 企业微信报警 --> Message templates --> 编辑 --> 更新
用户设置——报警媒介——添加媒介类型
更新告警媒介
配置——动作——创建动作——添加触发器
配置动作
修改操作 --> 步骤 1-0(无穷大)
八、测试故障,查看报表是否已经推送成功
报表——动作日志
最后更新于