CentOS 安装 Zabbix 5.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

/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 # 单提交的最大数据,此项不是限制上传单个文件的大小,而是针对整个表单的提交数据进行限制的,默认8M

  • upload_max_filesize = 50M #上载文件的最大许可大小 ,默认2M

  • max_execution_time = 600 # 脚本运行的最长时间,默认30秒

  • max_input_time = 600 # 脚本可以消耗的时间,默认60秒

  • memory_limit = 256M # 脚本运行最大消耗的内存,根据你的需求更改数值,默认128M

  • date.timezone = asia/shanghai #设置时区

启动 Zabbix 服务器和代理进程,并设置开机自启动

Zabbix前端可以在浏览器中通过 http://localhost/zabbix 进行访问。

配置 Zabbix 前端

  1. 输入数据库连接端口,zabbix数据库密码,输入名称

  2. 默认的用户是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 官方源

替换为阿里云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配置文件

检查配置文件语法是否正确,然后重启nginx服务

浏览器访问运行状态页面

http://IP/status

页面内容解析:

  • Active connections:当前活动的客户端连接数有多少(包括在等待阶段的)

  • accepts:接受的客户端连接总数

  • handled:已处理的连接总数(通常与accepts数量一致,但存在某些资源限制的情况导致数量不一致)

  • requests:客户端请求总数(包括接受请求或拒绝请求的)

  • Reading:nginx正在读取请求标头的当前连接数。

  • Writing:nginx正在将响应写回到客户端的当前连接数。

  • Waiting:当前等待请求的空闲客户端连接数。

具体stub_status模块信息可查看官方文档

编写监控脚本

创建自定义监控项

说明:自定义监控项,格式为:UserParameter=<键值>,<命令>。

比如第一个自定义键值为:nginx.active,要执行的命令为执行nginx_status.sh这个脚本。

说明:添加完成以后,重启zabbix_agentd才会生效。

六、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(无穷大)

八、测试故障,查看报表是否已经推送成功

报表——动作日志

最后更新于

这有帮助吗?