目 录CONTENT

文章目录

Ubuntu 20.04安装Zabbix6.0 LTS监控服务

yyzq
2022-08-25 / 12 评论 / 25 点赞 / 8,374 阅读 / 2,184 字

zabbix简介:

zabbix([`zæbiks])是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案
zabbix由2部分构成,zabbix server与可选组件zabbix agent。

演示服务器类型:

Ubuntu 20.04.4 LTS x86

cat /etc/lsb-release#可以用此命令查看

大体的流程就是

装包-配置-起服务

安装zabbix-server

一、进入zabbix官方网站

https://www.zabbix.com/cn/download
zabbix1

选择适合自己的版本

二、安装和配置服务

1).安装zabbix仓库

wget https://repo.zabbix.com/zabbix/6.2/ubuntu/pool/main/z/zabbix-release/zabbix-release_6.2-1%2Bubuntu20.04_all.deb #下载仓库文件
dpkg -i zabbix-release_6.2-1+ubuntu20.04_all.deb #配置仓库
apt update  #更新系统

2).安装Zabbix server,Web前端,agent

apt install zabbix-server-mysql zabbix-frontend-php zabbix-apache-conf zabbix-sql-scripts zabbix-agent #安装zabbix服务端,web端,agent代理

3).创建初始数据库

确保你已经成功安装mysal数据库,并成功运行

sudo apt install mysql-server #如没成功这样在安装一遍MySQL

在数据库主机上运行以下代码。

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

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

zcat /usr/share/doc/zabbix-sql-scripts/mysql/server.sql.gz | mysql -uzabbix -p zabbix

导入数据库架构后,禁用log_bin_trust_function_creators选项。

mysql -uroot -p
password
mysql> set global log_bin_trust_function_creators = 0;
mysql> quit;

4).为Zabbix server配置数据库

编辑配置文件

vim /etc/zabbix/zabbix_server.conf
DBPassword=password #将此处填写成自己配置的密码(大约在127行)

5).启动Zabbix server和agent进程

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

systemctl restart zabbix-server zabbix-agent apache2 #启动服务
systemctl enable zabbix-server zabbix-agent apache2 #设置开机自启
systemctl status zabbix-server zabbix-agent apache2 #确保服务都是运行(running)状态

三、开始使用

对于 Apache:http://<server_ip_or_name>/zabbix
对于 Nginx:http://<server_ip_or_name>

1).不出意外的话你会看到下图安装界面

Foxmail20220825101641

2)如果没有中文需要下载中文包

确保中文(如果有的话)已经显示

vi /usr/share/zabbix/include/locales.inc.php #打开此文件确认中文已经打开显示(true)

如果没有中文需要下载

apt-get install language-pack-zh-hant language-pack-zh-hans #安装中文

打开环境变量添加以下代码

vi /etc/environment 
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin"
LANG="zh_CN.UTF-8"  #添加此行
LANGUAGE="zh_CN:zh:en_US:en" #添加此行

重载配置

dpkg-reconfigure locales 

选择自己要安装的语音
空格选择回车确定
Foxmail20220827114647
重启服务

systemctl restart zabbix-server zabbix-agent apache2

默认

用户名:Admin
密码:zabbix

3)防止中文乱码

为了防止中文乱码还需要配置字体
首先找到zabbix字体所在目录

find / -name fonts 

进入此目录

cd /usr/share/zabbix/assets/fonts
ls
graphfont.ttf

下载字体

wget https://alist.yyzq.cf/d/%20%E6%9C%AC%E5%9C%B0%E7%BD%91%E7%9B%98/software%20/fonts/simkai.ttf #下载新字体
mv graphfont.ttf graphfont.ttfbak #备份原字体
mv simkai.ttf graphfont.ttf #使用新字体

重启服务

systemctl restart zabbix-server.service apache2

此时再次进入安装界面即可正常显示字体

安装zabbix-agent

再次进入zabbix官方网站

https://www.zabbix.com/cn/download
Foxmail20220827011641

四、在你的平台安装Zabbix-Agent服务

1).安装zabbix仓库

rpm -Uvh https://repo.zabbix.com/zabbix/6.0/rhel/7/x86_64/zabbix-release-6.0-2.el7.noarch.rpm  #下载zabbix的官方yum源
yum clean all #清除仓库缓存

2).安装Zabbix agent

yum install zabbix-agent #yum安装

3).开始 Zabbix agent 进程

systemctl restart zabbix-agent  #开启服务
systemctl enable zabbix-agent #开机自启动

4).修改配置文件

vim /etc/zabbix/zabbix_agentd.conf   #打开此配置文件
................
Server=zabbix.yyzq.cf  #此处改为服务端的ip或者域名即可
................

5).重启 Zabbix agent 服务

systemctl restart zabbix-agent  #开启服务

添加被监控端

五、按照如下图添加即可

Foxmas
等一会这里灰色变成绿色就可以了(端口默认10050,如果长时间不变的话记得开端口)
Foxmail20220827032301

配置报警方式

zabbix的常见报警方式有邮件,短信,微信,电报(Telegram),等等
由于短信需要花钱,邮件感觉不怎么好用,所以就剩下微信和电报的方式了 以下是我实践的这两种方式的配置方式。

微信报警

微信报警,好多都是需要注册企业微信的方式,经过我多次尝试,感觉比较复杂,可能是腾讯官方升级了验证方式,最后都以失败告终,这个时候我想到,我之前用过pushplus推送青龙面板的消息,就抱着试一试的态度,发现pushplus果然可以使用,以下是我的折腾过程

①、注册pushplus账号

点我直达pushplus官网
打开以后直接用微信扫码登录即可注册成功
image
然后打开-发送消息-一对多消息
image-1673229523513
新增群组-填写好群组编码-等等一些信息,内容大家自定义即可
image-1673231764915
好了以后-点击查看二维码-用微信扫码即可加入群组,哪个微信扫码哪个微信可以收到告警信息-点击订阅人即可
查看当前群组中的所有人
image-1673232033012
经过以上操作步骤我们可以得到这两个值

key
token 0d05deda622343eb3e8239ddfdobe01
群组编号 zabbix

②、zabbix服务端配置

首先在你的zabbix服务器找到这个目录alertscripts
可以用find查找

find / -name 'alertscripts'#查找alertscripts目录
cd /usr/lib/zabbix/alertscripts #找到此目录并进入此目录

创建一个pushplus.sh脚本

vim pushplus. sh

脚本内容(注意只需要替换token为你自己的token即可

#!/bin/bash
##########################
# pushplus推送zabbix告警 #
#########################
topic=$1    #topic为你的群组
title=$2    #title你要的标题内容
content=$3  #你要的具体消息内容
token=0d05dqqq6d82473eb3e8239ddfd0be01 #替换自己的token
url=http://www.pushplus.plus/send #pushplus POST和PUT请求接口
json="{\"token\":  \"$token\", \"title\": \"$title\", \"content\": \"$3\", \"template\": \"html\", \"topic\": \"$topic\"}"
curl -H "Content-Type: application/json" -X POST -d "$json" $url

好了以后保存退出
赋予脚本执行权限

chmod +x pushplus.sh #给脚本执行权限

此时可以测试下脚本是否可以推送消息,看到请求成功说明成功了

./pushplus.sh zabbix 标题 测试内容

image-1673232900698
此时你微信上就会收到一个测试消息如下图
image-1673233051874

③、 zabbix web端配置

1)创建报警媒介类型

登录zabbix web端点击管理-报警媒介类型, 创建媒体类型
image-1673233260316
名称: 随意填写如(pushplus)

类型:选择脚本

脚本名称:按照实际名称填写(pushplus.sh)

脚本参数:

{ALERT.SENDTO}
{ALERT.SUBJECT}
{ALERT.MESSAGE}

image-1673233780719

2)创建动作

点击配置-动作-Trigger actions-创建动作
image-1673233941808
动作
名称:随意写(pushplus)
条件:根据自己的告警需求填写
image-1673234248640
操作
默认操作步骤持续时间:1h
image-1673234609717
默认细节:如下图
image-1673234739166
主题:

故障{TRIGGER.STATUS},服务器:{HOSTNAME1}发生:{TRIGGER.NAME}故障! 故障通知!!

消息:

告警主机:{HOSTNAME1}<br>
IP地址:{HOST.CONN} <br>
告警时间:{EVENT.DATE} {EVENT.TIME}(UTC)<br>
告警等级:{TRIGGER.SEVERITY}<br>
告警信息: {TRIGGER.NAME}<br>
告警项目:{TRIGGER.KEY1}<br>
问题详情:{ITEM.NAME}:{ITEM.VALUE}<br>
当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}<br>
事件ID:{EVENT.ID}<br>

image-1673234876318
恢复操作
选择Recovery operations
image-1673234951235
同样配置
image-1673235040640
主题

恢复{TRIGGER.STATUS},服务器:{HOSTNAME1}:{TRIGGER.NAME}已恢复!!

消息

告警主机:{HOSTNAME1}<br>
IP地址:{HOST.CONN} <br>
告警时间:{EVENT.DATE} {EVENT.TIME}(UTC)<br>
告警等级:{TRIGGER.SEVERITY}<br>
告警信息: {TRIGGER.NAME}<br>
告警项目:{TRIGGER.KEY1}<br>
问题详情:{ITEM.NAME}:{ITEM.VALUE}<br>
当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}<br>
事件ID:{EVENT.ID}<br>

3)创建用户报警媒介

选择管理-用户-Admin
image-1673235227168
选择报警媒介-添加
image-1673235311967
注意收件人这里一定要填自己的群组编号
至此搞定
以下是实际微信收到的消息
故障
image-1673235635466
故障恢复
image-1673235727143

25

评论区