zabbix6.0.26安装部署文档-ubuntu20.04

系统环境版本信息

一、zabbix-server安装

1、安装zabbix-server仓库

2、安装Zabbix server,Web前端,agent

3、创建初始数据库

4、配置zabbix_server.conf

5、运行zabbix_server

二、grafana安装

1、安装grafana源仓库

2、安装grafana服务

3、grafana启动

4、zabbix插件安装

三、zabbix-agent 安装

1、安装

1.1、CentOS 7.9

1.2、Ubuntu 18.04 / 20.04 / 22.04

1.3、debain 10 / debain 11 / debain 12

2、 配置修改

3、启动zabbix-agent

4、开启防火墙

4.1、CentOS 7.9

4.2、Ubuntu 18.04 / 20.04 / 22.04 或 debain 10/11/12

四、zabbix-agent2 安装

1、安装

2、配置修改

2.1、docker插件配置

2.2、zabbix_agent2配置

2.3、gpu_id脚本

2.4、gpu_idel脚本

2.5、zabbix用户添加到docker组

2.6、启动

3、开启防火墙

五、zabbix界面操作

1、主机自动发现添加

1.1、新建主机群组

1.2、创建自动发现规则

1.3、创建发现动作

2、自定义监控项添加

2.1、新建模板

2.2、新建自动发现规则

2.3、新建监控项原型

2.4、新建触发器原型

六、微信机器人告警

1、微信机器人添加

2、zabbix配置

2.1、添加报警媒介

2.2、添加用户组

2.3、添加用户

2.4、添加动作

2.5、微信告警脚本

系统环境版本信息

项目

版本

规格

系统环境

Ubuntu 20.04.6 LTS

48C65G256G系统盘

4T数据盘

Zabbix-server

6.0.26

192.168.2.20

Grafana

10.0.3

192.168.2.20

Zabbix-agent

6.0.26/6.0.28

小版本不影响

Zabbix-agent2

6.0.27

小版本不影响

Nginx

1.18.0

192.168.2.20

Mysql

8.0.36

192.168.2.20

PHP

7.4.3

192.168.2.20

一、zabbix-server安装

1、安装zabbix-server仓库

wget https://repo.zabbix.com/zabbix/6.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_6.0-4+ubuntu20.04_all.deb

dpkg -i zabbix-release_6.0-4+ubuntu20.04_all.deb

apt update

2、安装Zabbix server,Web前端,agent

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

3、创建初始数据库

登录数据库:

create database zabbix character set utf8mb4 collate utf8mb4_bin;

create user zabbix@localhost identified by 'password';

grant all privileges on zabbix.* to zabbix@localhost;

set global log_bin_trust_function_creators = 1;

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

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

禁止bin_log日志

登录数据库:

set global log_bin_trust_function_creators = 0;

4、配置zabbix_server.conf

目录:/etc/zabbix/zabbix_server.conf

LogFile=/var/log/zabbix/zabbix_server.log

LogFileSize=0

PidFile=/run/zabbix/zabbix_server.pid

SocketDir=/run/zabbix

DBHost=localhost

DBName=zabbix

DBUser=zabbix

DBPassword=test@123

StartPollers=10

StartPollersUnreachable=5

StartTrappers=5

StartPinge

5、运行zabbix_server

systemctl restart zabbix-server zabbix-agent nginx php7.4-fpm

systemctl enable zabbix-server zabbix-agent nginx php7.4-fpm

二、grafana安装

1、安装grafana源仓

echo "deb https://packages.grafana.com/oss/deb stable main" | sudo tee -a /etc/apt/sources.list.d/grafana.list

wget -q -O - https://packages.grafana.com/gpg.key | sudo apt-key add -

sudo apt-update

2、安装grafana服务

sudo apt-get install grafana=10.0.3

3、grafana启动

sudo systemctl start grafana-server

sudo systemctl enable grafana-server

4、zabbix插件安装

grafana-cli plugins install alexanderzobnin-zabbix-app

三、zabbix-agent 安装

1、安装

1.1、CentOS 7.9

依赖:

wget http://mirror.centos.org/centos/7/os/x86_64/Packages/pcre2-10.23-2.el7.x86_64.rpm

rpm -ivh pcre2-10.23-2.el7.x86_64.rpm

rpm包:

wget https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/6.0/rhel/7/x86_64/zabbix-agent-6.0.26-release1.el7.x86_64.rpm

rpm -ivh zabbix-agent-6.0.26-release1.el7.x86_64.rpm

1.2、Ubuntu 18.04 / 20.04 / 22.04

需要替换版本如:18.04换成20.04、22.04

依赖:

apt-get -y install libpcre2-8-0 // apt -y install libpcre2-8-0

deb包:

wget https://repo.zabbix.com/zabbix/6.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_6.0-4+ubuntu18.04_all.deb

dpkg -i zabbix-release_6.0-4+ubuntu18.04_all.deb

apt update

apt install zabbix-agent

1.3、debain 10 / debain 11 / debain 12

需要替换版本如:10换成11、12

wget https://repo.zabbix.com/zabbix/6.0/debian/pool/main/z/zabbix-release/zabbix-release_6.0-1+debian10_all.deb

dpkg -i zabbix-release_6.0-1+debian10_all.deb

apt -y install zabbix-agent

  1. 配置修改

目录: /etc/zabbix/zabbix_agentd.conf

PidFile=/var/run/zabbix/zabbix_agentd.pid

LogFile=/var/log/zabbix-agent/zabbix_agentd.log

LogFileSize=0

Server=192.168.2.20

ServerActive=192.168.2.20

Include=/etc/zabbix/zabbix_agentd.conf.d/*.conf

3、启动zabbix-agent

systemctl start zabbix-agent

systemctl status zabbix-agent

systemctl enable zabbix-agent

4、开启防火墙

4.1、CentOS 7.9

firewall-cmd --permanent --add-rich-rule 'rule family=ipv4 source address=192.168.2.20/24 port

port=10050 protocol=tcp accept'

firewall-cmd --reload

firewall-cmd --list-all

4.2、Ubuntu 18.04 / 20.04 / 22.04 或 debain 10/11/12 

ufw allow proto tcp from 192.168.2.20/32 to any port 10050

ufw status

四、zabbix-agent2 安装

算法服务器,监控GPU

1、安装

Ubuntu 18.04 / 20.04 / 22.04

需要替换版本如:18.04换成20.04、22.04

wget https://repo.zabbix.com/zabbix/6.2/ubuntu/pool/main/z/zabbix-release/zabbix-release_6.2-4%2Bubuntu22.04_all.deb

sudo dpkg -i zabbix-release_6.2-4+ubuntu22.04_all.deb

sudo apt update

apt install zabbix-agent2

2、配置修改

2.1、docker插件配置

目录:/etc/zabbix/zabbix_agent2.d/plugins.d/docker.conf

Plugins.Docker.Endpoint=unix:///var/run/docker.sock

2.2、zabbix_agent2配置

目录:/etc/zabbix/zabbix_agent2.conf

PidFile=/var/run/zabbix/zabbix_agent2.pid

LogFile=/var/log/zabbix/zabbix_agent2.log

LogFileSize=0

Server=192.168.2.20

ServerActive=192.168.2.20

Hostname=cr10

Include=/etc/zabbix/zabbix_agent2.d/*.conf

PluginSocket=/run/zabbix/agent.plugin.sock

ControlSocket=/run/zabbix/agent.sock

Include=./zabbix_agent2.d/plugins.d/*.conf

UnsafeUserParameters=1

UserParameter=GPU.ID,/etc/zabbix/gpu_id.sh

UserParameter=GPU.Utilization[*],nvidia-smi -i $1 --query-gpu=utilization.$2 --format=csv,noheader,nounits

UserParameter=GPU.Memory[*],nvidia-smi -i $1 --query-gpu=memory.$2 --format=csv,noheader,nounits

UserParameter=GPU.Fan[*],nvidia-smi -i $1 --query-gpu=fan.speed --format=csv,noheader,nounits

UserParameter=GPU.Temp[*],nvidia-smi -i $1 --query-gpu=temperature.gpu --format=csv,noheader,nounits

UserParameter=GPU.Pid[*],nvidia-smi -i $1 --query-compute-apps=pid,process_name,used_gpu_memory --format=csv,noheader,nounits | awk -v OFS="," '{print "PID:"$(NF-2), "Process_name:"$(NF-1), "Used GPU Memory (MiB):"$NF}'

UserParameter=GPU.Idel.Utilization[*],/etc/zabbix/gpu_idel.sh $1

UserParameter=GPU.Process.count[*],nvidia-smi -i $1 --query-compute-apps=pid --format=csv,noheader | wc -l

UserParameter=GPU.Process,nvidia-smi --query-compute-apps=pid,process_name,used_gpu_memory --format=csv,noheader,nounits |wc -l

2.3、gpu_id脚本

目录:/etc/zabbix/gpu_id.sh

#!/bin/bash

GPUS=(`nvidia-smi -L | awk -F ' |:' '{print $2}'`)

LENGTH=${#GPUS[*]}

printf "{\n"

printf '\t'"\"id\":["

for ((i=0;i<$LENGTH;i++))

do

 printf '\n\t\t{'

 printf "\"{#GPU_ID}\":\"${GPUS[$i]}\"}"

 if [ $i -lt $[$LENGTH-1] ];then

 printf ','

 fi

done

printf "\n\t]\n"

printf "}\n"

2.4、gpu_idel脚本

目录:/etc/zabbix/gpu_idel.sh

#!/bin/bash

 gpu_util=$(nvidia-smi -i $1--query-gpu=utilization.gpu --format=csv,noheader,nounits)

 gpu_idle_util=$((100 - gpu_util))

 echo "$gpu_idle_util"

2.5、zabbix用户添加到docker组

usermod -aG docker zabbix

2.6、启动

systemctl start zabbix-agent2

systemctl status zabbix-agent2

systemctl enable zabbix-agent2

3、开启防火墙

Ubuntu 18.04 / 20.04 / 22.04

ufw allow proto tcp from 192.168.2.20/32 to any port 10050

ufw status

五、zabbix界面操作

1、主机自动发现添加

1.1、新建主机群组

zabbi界面"配置"—"主机群组"—"创建主机群组"

组名:cr-group

1.2、创建自动发现规则

zabbi界面"配置"—"自动发现"—"创建发现规则"

名称:CR

IP范围:192.168.2.23-200

更新间隔:30S

检查:{下图}

设备唯一性准则:IP地址

主机名称:DNS名称

可见的主机名称: 主机名称

检查:

键值: system.uname

1.3、创建发现动作

zabbi界面"配置"—"动作"—"发现动作"—"创建动作"

名称:CR

添加:自动发现规则等于CR 、主机IP地址等于192.168.2.1-254

操作:

执行内容:"添加主机"、"添加到主机群组"、"链接到模板"、"启用主机"、"设置主机清单模式"

2、自定义监控项添加

2.1、新建模板

zabbi界面"配置"—"模板"—"创建模板"

模板名称:GPU

群组:cr-group

2.2、新建自动发现规则

zabbi界面"配置"—"模板"—选中"GPU"—点击"自动发现"

点击"创建发现规则"

名称:GPU discovery

键值:GPU.ID

2.3、新建监控项原型

选择"监控项原型"—选中"创建监控项原型"

名称:GPU {#GPU.ID} Utilization

键值:GPU.Utilization[{#GPU.ID},gpu]

信息类型:数字(无正负)

单位:%

更新间隔:1m

2.4、新建触发器原型

选择"触发器原型"—选中"创建触发器原型"

名称:GPU {#GPU_ID} Mem Utilization too High

严重性:一般严重

表达式:min(/GPU/GPU.Utilization[{#GPU_ID},memory],5m)>=90

六、微信机器人告警

1、微信机器人添加

登录微信:任意选中一个群聊,打开群设置,点击"添加机器人",然后选择"新创建一个机器人"

机器人名称:监控告警机器人,选择"添加机器人"

添加机器人成功,复制Webhook地址

2、zabbix配置

2.1、添加报警媒介

zabbi界面"管理"—"报警媒介类型"—"创建媒体类型"

名称:wx_alter

类型:脚本

脚本名称:wx_alter.py

脚本参数:{ALERT.SUBJECT} {ALERT.MESSAGE}

2.2、添加用户组

zabbi界面"管理"—"用户群组"—"创建用户群组"

组名:wx_alter

2.3、添加用户

zabbi界面"管理"—"用户"—"创建用户"

用户名称:IT-Alter

群组:wx_alter

报警媒介:

类型: wx_alter

收件人:IT-Alter

当启用时:1-5,09:00-19:00

如果存在严重性则使用:一般严重、严重、灾难

2.4、添加动作

zabbi界面"配置"—"动作"—"Trigger actions"—"创建动作"

名称:wx_alter_actione

条件: Value of tag GPU 等于 Idel 触发器示警度 大于等于 警告

触发动作后的操作、恢复操作

操作细节:

Send to user groups : wx_alter 

Send to user users :IT-Alter

仅发送: wx_alter 

自定义消息内容: 勾上

主题:故障 {TRIGGER.STATUS}: {HOSTNAME1} "{TRIGGER.NAME}"

消息:

当前状态:{TRIGGER.STATUS}

告警主机:{HOSTNAME1}

告警地址:{HOST.IP}

告警时间:{EVENT.DATE} {EVENT.TIME}

告警等级:{TRIGGER.SEVERITY}

告警信息:{TRIGGER.NAME}

问题详情:{ITEM.NAME}:{ITEM.VALUE}

事件ID:{EVENT.ID}

恢复操作细节

Send to user groups : wx_alter 

Send to user users :IT-Alter

仅发送: wx_alter

自定义消息内容: 勾上

主题:已恢复 {TRIGGER.STATUS}: {HOSTNAME1} "{TRIGGER.NAME}"

消息:

当前状态:{TRIGGER.STATUS}

告警主机:{HOSTNAME1}

告警地址:{HOST.IP}

告警时间:{EVENT.DATE} {EVENT.TIME}

恢复时间:{EVENT.RECOVERY.DATE} {EVENT.RECOVERY.TIME}

持续时间:{EVENT.AGE}

告警等级:{TRIGGER.SEVERITY}

当前取值:{ITEM.NAME}:{ITEM.VALUE}

事件ID:{EVENTRECOVERY.ID}

2.5、微信告警脚本

服务器192.168.2.20

目录:/etc/zabbix/alertscripts/wx_alter.py

#!/usr/bin/env python3

#_*_coding:utf-8_*_

import requests

import json

import sys

webhook_url = ''

alert_subject = sys.argv[1]

alert_message = sys.argv[2]

if 'PROBLEM' in alert_subject:

 data = {

 "msgtype": "markdown",

 "markdown": {

 "content": "# <font color=\"warning\">**%s**</font> \n"% (alert_subject) +

 f"{alert_message}"

 }

 }

elif 'OK' in alert_subject:

 data = {

 "msgtype": "markdown",

 "markdown": {

 "content": "# <font color=\"info\">**%s**</font> \n"% (alert_subject) +

 f"{alert_message}"

 }

 }

headers = {'Content-Type': 'application/json'}

response = requests.post(webhook_url, headers=headers, data=json.dumps(data))

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值