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
选择适合自己的版本
二、安装和配置服务
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).不出意外的话你会看到下图安装界面
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
选择自己要安装的语音
空格选择回车确定
重启服务
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
四、在你的平台安装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 #开启服务
添加被监控端
五、按照如下图添加即可
等一会这里灰色变成绿色就可以了(端口默认10050,如果长时间不变的话记得开端口)
配置报警方式
zabbix的常见报警方式有邮件,短信,微信,电报(Telegram),等等
由于短信需要花钱,邮件感觉不怎么好用,所以就剩下微信和电报的方式了 以下是我实践的这两种方式的配置方式。
微信报警
微信报警,好多都是需要注册企业微信的方式,经过我多次尝试,感觉比较复杂,可能是腾讯官方升级了验证方式,最后都以失败告终,这个时候我想到,我之前用过pushplus推送青龙面板的消息,就抱着试一试的态度,发现pushplus果然可以使用,以下是我的折腾过程
①、注册pushplus账号
点我直达pushplus官网
打开以后直接用微信扫码登录即可注册成功
然后打开-发送消息-一对多消息
新增群组-填写好群组编码-等等一些信息,内容大家自定义即可
好了以后-点击查看二维码-用微信扫码即可加入群组,哪个微信扫码哪个微信可以收到告警信息-点击订阅人即可
查看当前群组中的所有人
经过以上操作步骤我们可以得到这两个值
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 标题 测试内容
此时你微信上就会收到一个测试消息如下图
③、 zabbix web端配置
1)创建报警媒介类型
登录zabbix web端点击管理-报警媒介类型, 创建媒体类型
名称: 随意填写如(pushplus)
类型:选择脚本
脚本名称:按照实际名称填写(pushplus.sh)
脚本参数:
{ALERT.SENDTO}
{ALERT.SUBJECT}
{ALERT.MESSAGE}
2)创建动作
点击配置-动作-Trigger actions-创建动作
动作
名称:随意写(pushplus)
条件:根据自己的告警需求填写
操作
默认操作步骤持续时间:1h
默认细节:如下图
主题:
故障{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>
恢复操作
选择Recovery operations
同样配置
主题
恢复{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
选择报警媒介-添加
注意收件人这里一定要填自己的群组编号
至此搞定
以下是实际微信收到的消息
故障
故障恢复
评论区