Zabbix6.4监控安装之Ubuntu22.04
本文最后更新于18 天前,其中的信息可能已经过时,如有错误请发送邮件到1979007616@qq.com

版本选择

首先进入Zabbix官网选择你需要安装的zabbix版本,如下:

安装Zabbix

安装zabbix仓库

wget https://repo.zabbix.com/zabbix/6.4/ubuntu/pool/main/z/zabbix-release/zabbix-release_6.4-1+ubuntu22.04_all.deb
dpkg -i zabbix-release_6.4-1+ubuntu22.04_all.deb
apt update

安装Zabbix server,Web前端,agent

apt install zabbix-server-mysql zabbix-frontend-php zabbix-apache-conf zabbix-sql-scripts zabbix-agent

初始化数据库

首先确保你安装了mysql数据库,并且服务正常启动,可参考文章:Linux安装mysql服务

mysql -uroot -p
password
mysql> create database zabbix character set utf8mb4 collate utf8mb4_bin;
mysql> create user zabbix@localhost identified by '123456';
mysql> grant all privileges on zabbix.* to zabbix@localhost;
mysql> set global log_bin_trust_function_creators = 1;
mysql> FLUSH PRIVILEGES;
mysql> quit;

log_bin_trust_function_creators 是 MySQL 中的一个系统变量,用于控制是否允许没有 SUPER 权限的用户创建或更改包含特权操作的存储函数或触发器。当这个变量设置为 0 时,仅具有 SUPER 权限的用户可以创建这些对象。

# 检查当前设置
SHOW VARIABLES LIKE 'log_bin_trust_function_creators';

如果你不想创建zabbix用户,像我一样使用root用户,可仅创建数据库,导入初始架构和数据使用以下命令:

zcat /usr/share/zabbix-sql-scripts/mysql/server.sql.gz | mysql --default-character-set=utf8mb4 -uroot -p zabbix

导入初始架构和数据,系统将提示您输入新创建的密码。

//耗费时间较长,耐心等待(十多分钟)
zcat /usr/share/zabbix-sql-scripts/mysql/server.sql.gz | mysql --default-character-set=utf8mb4 -uzabbix -p zabbix
mysql -uroot -p
password
mysql> set global log_bin_trust_function_creators = 0;
mysql> quit;

为Zabbix server配置数据库

编辑配置文件 /etc/zabbix/zabbix_server.conf

DBPassword=123456

启动Zabbix server和agent进程

启动Zabbix server和agent进程,并为它们设置开机自启:

systemctl restart zabbix-server zabbix-agent apache2
systemctl enable zabbix-server zabbix-agent apache2

登录Zabbix WEB前端配置

如果你出现必要条件检查不通过的问题,可根据对应选项进行修改,都是PHP配置项的修改,PHP配置文件:vim /etc/php/8.3/fpm/php.ini

最后还有一项System locale:Web服务器语言的区域设置,编辑配置文件:vim /etc/default/locale,加入一行LANG=zh_CN.UTF-8

修改完重启相关服务:systemctl restart php8.3-fpm nginx

数据库连接使用默认配置,只需要填密码

访问:ip地址/zabbix,使用账号:Admin,密码:zabbix登录使用。

安装中文包

Zabbix部署好之后,登录上去看如果英文的,看设置是否可以修改成中文,如果不行就要安装中文包。

#安装中文包
sudo apt install language-pack-zh-hans
#或者
apt-get install language-pack-zh* -y

刷新WEB界面就可以选择简体中文了。

中文乱码问题

在Windows 系统中找到 C:\Windows\Fonts中的楷体(常规)复制到 windows 桌面上,通过rz命令(没有就安装:yum -y install lrzsz)上传到/usr/share/zabbix/assets/fonts/目录下。

cd /usr/share/zabbix/assets/fonts/
#上传字体文件
rz
#修改楷体权限
chmod 777 simkai.ttf

备份原来的语言文件:cp graphfont.ttf graphfont.ttf.bak

将上传的楷体文件名修改为之前的:mv simkai.ttf graphfont.ttf

重启zabbix服务生效:sudo systemctl restart zabbix-server zabbix-agent apache2

zabbix服务迁移

在不丢失数据的情况下从一台服务器迁移到另一台服务器。

准备工作

  • 备份现有数据: 在进行任何操作之前,确保备份数据库和Zabbix配置文件。
  • 新环境准备: 安装与当前Zabbix版本相同的新Zabbix服务器,并确保所有必要的软件和服务都已安装。

备份原始服务器

停止Zabbix服务: 在原服务器上停止Zabbix服务器进程。

systemctl stop zabbix-server

备份数据库: 使用合适的工具(如mysqldump)备份Zabbix数据库。

mysqldump -u root -p zabbix > zabbix_backup.sql

备份配置文件: 备份Zabbix配置文件,通常位于/etc/zabbix目录下。

tar -czvf zabbix_configs_backup.tar.gz /etc/zabbix

新服务器环境准备

参照安装zabbix步骤执行:

  • 安装zabbix仓库
  • 安装Zabbix server,Web前端,agent
  • 初始化数据库(这一步貌似不用执行,如果执行了记得把log_bin_trust_function_creators改为0)

在新服务器上恢复数据

传输备份文件: 将数据库备份和配置文件备份传输到新服务器。

scp zabbix_configs_backup.tar.gz root@10.10.166.213:/DockerFile/Zabbix

还原数据库: 在新服务器上使用MySQL或其他数据库管理工具恢复数据库。

mysql -u root -p zabbix < zabbix_backup.sql

恢复配置文件: 解压并恢复Zabbix配置文件。

tar -xzvf zabbix_configs_backup.tar.gz -C /

配置新服务器

更新配置文件: 确保配置文件中的数据库连接信息、Zabbix服务器IP地址等参数已更新为新环境的值。可参考上面的安装步骤。

启动Zabbix服务: 启动新服务器上的Zabbix服务。

systemctl start zabbix-server

检查日志: 检查Zabbix服务器日志,确保没有错误。

tail -f /var/log/zabbix/zabbix_server.log

更新前端配置

配置Web前端: 如果Zabbix Web前端在不同的服务器上运行,确保其配置文件(通常是/etc/zabbix/web/zabbix.conf.php)中的数据库连接信息已更新。

验证迁移

登录Zabbix前端: 登录Zabbix Web界面,检查所有主机、触发器、图表等数据是否正确显示。

测试监控功能: 确认新服务器能正确接收数据并生成警报。

拓展

zabbix怎么从apache2切换到nginx

思路比较简单,就是参考官网教程,补上nginx的相关配置即可,并且停止apache相关服务。

首先停用Apache2服务。

# 停止Apache2服务
systemctl stop apache2
# 禁用Apache2自启
systemctl disable apache2

安装WEB前端即nginx服务。

apt install zabbix-nginx-conf

为Zabbix前端配置PHP,编辑配置文件:vim /etc/zabbix/nginx.conf。去掉注释,修改成你的实际数据。

启动nginx和php进程(注意php版本),并为它们设置开机自启。

systemctl restart nginx php8.1-fpm
systemctl enable nginx php8.1-fpm

邮件告警配置

原本我记得这个设置挺简单的,获取专用密码就直接测试通过了,不知道为什么QQ邮箱、139邮箱总是测试不通过,换成163邮箱就可以,原因找不到。

并且想要发送告警邮件,需要启用触发器动作,设置条件和操作

消息模版可设置成HTML(报警媒介设置成html),进行美化

<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
  <style>
    body { font-family: "Arial", sans-serif; font-size: 14px; color: #333; }
    .header { background-color: #f44336; color: white; padding: 10px; font-size: 18px; }
    .content { border: 1px solid #ddd; padding: 10px; margin-top: 10px; }
    table { border-collapse: collapse; width: 100%; }
    td, th { border: 1px solid #ddd; padding: 8px; }
    th { background-color: #f2f2f2; text-align: left; }
  </style>
</head>
<body>

<div class="header">
  【Zabbix 告警通知】问题发生
</div>

<div class="content">
  <table>
    <tr><th>告警等级</th><td>{EVENT.SEVERITY}</td></tr>
    <tr><th>主机名称</th><td>{HOST.NAME}</td></tr>
    <tr><th>主机 IP</th><td>{HOST.IP}</td></tr>
    <tr><th>问题详情</th><td>{EVENT.NAME}</td></tr>
    <tr><th>事件时间</th><td>{EVENT.DATE} {EVENT.TIME}</td></tr>
    <tr><th>当前状态</th><td>{TRIGGER.STATUS}</td></tr>
    <tr><th>监控数值</th><td>{ITEM.VALUE}</td></tr>
    <tr><th>事件ID</th><td>{EVENT.ID}</td></tr>
  </table>
</div>

<div style="margin-top: 10px; font-size: 12px; color: #888;">
  此邮件由 Zabbix 系统自动发送,请勿直接回复。
</div>

</body>
</html>
<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
  <style>
    body { font-family: "Arial", sans-serif; font-size: 14px; color: #333; }
    .header { background-color: #4CAF50; color: white; padding: 10px; font-size: 18px; }
    .content { border: 1px solid #ddd; padding: 10px; margin-top: 10px; }
    table { border-collapse: collapse; width: 100%; }
    td, th { border: 1px solid #ddd; padding: 8px; }
    th { background-color: #f2f2f2; text-align: left; }
  </style>
</head>
<body>

<div class="header">
  ✅【Zabbix 告警通知】问题已恢复
</div>

<div class="content">
  <table>
    <tr><th>告警等级</th><td>{EVENT.SEVERITY}</td></tr>
    <tr><th>主机名称</th><td>{HOST.NAME}</td></tr>
    <tr><th>主机 IP</th><td>{HOST.IP}</td></tr>
    <tr><th>问题详情</th><td>{EVENT.NAME}</td></tr>
    <tr><th>事件时间</th><td>{EVENT.DATE} {EVENT.TIME}</td></tr>
    <tr><th>恢复时间</th><td>{EVENT.RECOVERY.DATE} {EVENT.RECOVERY.TIME}</td></tr>
    <tr><th>恢复状态</th><td>{TRIGGER.STATUS}</td></tr>
    <tr><th>事件ID</th><td>{EVENT.ID}</td></tr>
  </table>
</div>

<div style="margin-top: 10px; font-size: 12px; color: #888;">
  此邮件由 Zabbix 系统自动发送,请勿直接回复。
</div>

</body>
</html>

如果你必须要使用QQ邮箱来发送告警邮件,这也是有办法的。在 Zabbix 里用swaks脚本作为邮件媒介,自动发邮件通知

# 安装swaks
apt install swaks

准备脚本,建议放到 Zabbix server 的 AlertScriptsPath 目录,默认是/usr/lib/zabbix/alertscripts,新建一个脚本文件swaks.sh

#!/bin/bash

# 参数
TO="$1"
SUBJECT="$2"
BODY="$3"

# QQ邮箱配置
SMTP_SERVER="smtp.qq.com"
SMTP_PORT="465"
SMTP_USER="1979007616@qq.com"
SMTP_PASS="ytguungfnzadedcg"   # 注意:这里要填 QQ 邮箱的授权码,不是邮箱密码

# 发送邮件
swaks --server "$SMTP_SERVER":"$SMTP_PORT" \
      --from "$SMTP_USER" \
      --to "$TO" \
      --auth LOGIN \
      --auth-user "$SMTP_USER" \
      --auth-password "$SMTP_PASS" \
      --tls-on-connect \
      --h-Subject "$SUBJECT" \
      --body "$BODY"
      
if [ $? -eq 0 ]; then
	exit 0
else
	exit 1
fi

然后执行:chmod +x /usr/lib/zabbix/alertscripts/swaks.sh

在zabbix服务器上就可以通过命令./swaks.sh进行测试了,输入收件人和主题,如下:

邮箱收到邮件就标识脚本设置正确。接下来在Zabbix中添加媒介类型

脚本名称:swaks.sh(必须和你放的脚本文件名一样)

脚本参数:{ALERT.SENDTO}、{ALERT.MESSAGE}、{ALERT.SUBJECT},这三个参数会自动传递给脚本的 $1$2$3

注意:在zabbix网页进行测试会显示失败,但是邮件会发出去,原因应该是zabbix无法对swaks返回的信息进行处理,由于没多大影响所以暂时忽略。

监控模版配置

自定义打印机监控模版

自定义模版监控打印机信息,如打印数量、剩余碳粉量等,需要打印机支持snmp协议。

监控模版(导出):富士施乐打印机监控模版,导入即可使用。

富士施乐打印机OID

.1.3.6.1.2.1.2.2.1.6.1     macaddress
.1.3.6.1.2.1.1.1.0              设备型号
.1.3.6.1.4.1.297.1.111.1.61.1.1.6.770.57   设备IP
.1.3.6.1.2.1.43.5.1.1.17.1      设备sn号
SNMPv2-MIB::sysUpTime.0         运行时间


#黑色碳粉
.1.3.6.1.2.1.43.12.1.1.4.1.1   BlackColorCategory    颜色类别(黑)
.1.3.6.1.2.1.43.11.1.1.9.1.1   BlackBalance         剩余容量(黑)
.1.3.6.1.2.1.43.11.1.1.8.1.1   BlackMaximum         碳粉最大容量(黑)
100*last(//BlackBalance)/last(//BlackMaximum)  BlackBalancePercent  碳粉剩余百分比(黑)

#黄色碳粉
.1.3.6.1.2.1.43.12.1.1.4.1.2   YellowColorCategory    颜色类别(黄)
.1.3.6.1.2.1.43.11.1.1.9.1.2   YellowBalance       剩余容量(黄)
.1.3.6.1.2.1.43.11.1.1.8.1.2   YellowMaximum       碳粉最大容量(黄)  
100*last(//YellowBalance)/last(//YellowMaximum) YellowBalancePercent  碳粉剩余百分比(黄)

#品红碳粉
.1.3.6.1.2.1.43.12.1.1.4.1.3   MagentaColorCategory   颜色类别(品红)
.1.3.6.1.2.1.43.11.1.1.9.1.3   MagentaBalance      剩余容量(品红)
.1.3.6.1.2.1.43.11.1.1.8.1.3   MagentaMaximum      碳粉最大容量(品红)
100*last(//MagentaBalance)/last(//MagentaMaximum) MagentaBalancePercent  碳粉剩余百分比(品红)

#青色碳粉
.1.3.6.1.2.1.43.12.1.1.4.1.4   CyanColorCategory     颜色类别(青)
.1.3.6.1.2.1.43.11.1.1.9.1.4   CyanBalance        剩余容量(青)
.1.3.6.1.2.1.43.11.1.1.8.1.4   CyanMaximum          碳粉最大容量(青)
100*last(//CyanBalance)/last(//CyanMaximum)        CyanBalancePercent     碳粉剩余百分比(青)

验证一下是否能获得对应值

apt install snmp -y
snmpwalk -v 2c -c public 10.10.165.13 .1.3.6.1.2.1.1.1.0

新增监控项

在数据采集→模版中创建一个模版,添加监控项,如下图

添加触发器

华为交换机监控模版

相关链接

Zabbix官网:https://www.zabbix.com/cn/download

小提示:您可以通过RSS订阅本站文章更新,订阅地址:https://blog.xmhweb.cn/feed

评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
下一篇