Zabbix

目录

1.安装Zabbix步骤

  • 安装Zabbix仓库
bash 复制代码
#[10:50:04root@ubuntu fonts]# wget https://repo.zabbix.com/zabbix/6.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_6.0-4+ubuntu22.04_all.deb
#下载包
[10:50:21root@ubuntu fonts]# dpkg -i zabbix-release_6.0-4+ubuntu22.04_all.deb
#安装包
[10:52:53root@ubuntu fonts]# apt update
#更新仓库
  • 安装Zabbix server, frontend, agent
bash 复制代码
[10:54:53root@ubuntu fonts]# apt install zabbix-server-mysql zabbix-frontend-php zabbix-nginx-conf zabbix-sql-scripts zabbix-agent
  • 初始化数据库
bash 复制代码
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;
  • 执行mysql脚本
bash 复制代码
[10:56:26root@ubuntu fonts]# zcat /usr/share/zabbix-sql-scripts/mysql/server.sql.gz | mysql --default-character-set=utf8mb4 -uzabbix -p zabbix
###
禁用非 SUPER 权限用户创建和更改函数和存储过程的能力
mysql> set global log_bin_trust_function_creators = 0;
  • 修改配置文件
bash 复制代码
[10:59:03root@ubuntu fonts]# vim /etc/zabbix/zabbix_server.conf
DBPassword=123456
[10:59:38root@ubuntu fonts]# vim /etc/zabbix/nginx.conf
         listen          80;
         server_name     www.luomu.com;
  • 重启服务设置开启启动
bash 复制代码
[11:00:21root@ubuntu fonts]# systemctl restart zabbix-server zabbix-agent nginx php8.1-fpm
[11:00:21root@ubuntu fonts]# systemctl enable zabbix-server zabbix-agent nginx php8.1-fpm
  • 安装中文语言包
bash 复制代码
[11:11:06root@ubuntu ~]# apt install language-pack-zh-hans language-pack-zh-hans-base


  • 填写数据库信息


  • 登录ZABBIX
  • 解决乱码

1.打开windows

2.找到需要的字体

3.复制到linux主机

bash 复制代码
[11:18:53root@ubuntu ~]# rz -E
rz waiting to receive.
[11:18:57root@ubuntu ~]# ls
msyhbd.ttc  snap  zabbix-release_6.0-4+ubuntu22.04_all.deb
##
[11:19:51root@ubuntu ~]# cd /usr/share/zabbix/assets/fonts
[11:19:56root@ubuntu fonts]# ls
graphfont.ttf
##修改原本的文件
[11:20:48root@ubuntu fonts]# mv graphfont.ttf graphfont.ttf.bak
#替换
[11:21:27root@ubuntu fonts]# mv ~/msyhbd.ttc graphfont.ttf
[11:21:30root@ubuntu fonts]# ls
graphfont.ttf  graphfont.ttf.bak
#注意:字体文件路径和名称的定义在文件/usr/share/zabbix/include/defines.inc.php中配置
#可以修改下面FONT_NAME指定新字体件,注意不需加文件后缀
[root@zabbix-server ~]#grep FONT_NAME /usr/share/zabbix/include/defines.inc.php
define('ZBX_GRAPH_FONT_NAME', 'graphfont'); // font file name
define('ZBX_FONT_NAME', 'graphfont');

4.刷新界面解决乱码

2.zabbix实现邮件告警

  • 安装agentd
bash 复制代码
OS_ID=`sed -rn '/^NAME=/s@.*="([[:alpha:]]+).*"$@\1@p' /etc/os-release`
OS_NAME=`sed -rn '/^NAME=/s@.*="([[:alpha:]]+) (.*)"$@\1@p' /etc/os-release`
zabbix_server='10.0.0.201'
color () {
    RES_COL=60
    MOVE_TO_COL="echo -en \\033[${RES_COL}G"
    SETCOLOR_SUCCESS="echo -en \\033[1;32m"
    SETCOLOR_FAILURE="echo -en \\033[1;31m"
    SETCOLOR_WARNING="echo -en \\033[1;33m"
    SETCOLOR_NORMAL="echo -en \E[0m"
    echo -n "$1" && $MOVE_TO_COL
    echo -n "["
    if [ $2 = "success" -o $2 = "0" ] ;then
        ${SETCOLOR_SUCCESS}
        echo -n $"  OK  "    
    elif [ $2 = "failure" -o $2 = "1"  ] ;then 
        ${SETCOLOR_FAILURE}
        echo -n $"FAILED"
    else
        ${SETCOLOR_WARNING}
        echo -n $"WARNING"
    fi
    ${SETCOLOR_NORMAL}
    echo -n "]"
    echo 
}

install_wrap () {
    if [[ $OS_ID =~ Rocky|Centos  ]];then
        rpm -q wget &>/dev/null || yum -y install wget &>/dev/null
        rpm -Uvh https://repo.zabbix.com/zabbix/6.4/rhel/8/x86_64/zabbix-release-6.4-1.el8.noarch.rpm || { color 下载失败 1; exit; }
        yum clean all && yum install -y zabbix-agent 
        sed -ri.bak 's/^(Server=).*/\1${zabbix_server}/' /etc/zabbix/zabbix_agentd.conf
        systemctl restart zabbix-agent
        systemctl enable zabbix-agent
        color 安装完成 0
    elif [[ $OS_ID =~ Ubuntu  ]];then
        wget https://repo.zabbix.com/zabbix/6.4/ubuntu/pool/main/z/zabbix-release/zabbix-release_6.4-1+ubuntu20.04_all.deb || { color 下载失败 1; exit; }
        dpkg -i zabbix-release_6.4-1+ubuntu20.04_all.deb && apt update && apt install -y zabbix-agent 
        sed -ri.bak 's/^(Server=).*/\1${zabbix_server}/' /etc/zabbix/zabbix_agentd.conf
        systemctl restart zabbix-agent
        systemctl enable zabbix-agent
        color 安装完成 0
    fi
}
install_wrap
  • 在agentd主机上安装NGINX服务
bash 复制代码
[10:52:26root@ubuntu ~]# apt -y install nginx 
  • 在web配置监控nginx模板和触发器
    1.监控项
    2.触发器
  • 创建邮件报警媒介
  • 指定发送到的邮件账户

  • 配置动作

  • 模拟nginx宕机

    查看

    收到邮件

3.zabbix主动模式的简介实现

3.1 主动模式

  • 在主动模式下,监控代理程序定期连接到 Zabbix 服务器,并主动发送数据
  • 代理程序会主动请求配置和任务,并发送监控数据到服务器
  • 这种模式适用于网络环境中代理程序能够访问 Zabbix 服务器的情况,例如,代理程序在内部网络,而服务器在外部网络

3.1.1主动模式实现

在Zabbix Agent 实现主动模式流程

  • 在 Zabbix Agent 配置主机模式相关配置
  • 在 Zabbix Server 创建配置有主动模式监控项的模板
  • 关联主动模板至支持主动模式的 Agent 主机
bash 复制代码
[12:00:56root@ubuntu ~]# grep '^[^#]' /etc/zabbix/zabbix_agentd.conf
PidFile=/run/zabbix/zabbix_agentd.pid
LogFile=/var/log/zabbix/zabbix_agentd.log
LogFileSize=0
Server=10.0.0.202   #被动模式必须指向zabbix_server主机
ServerActive=10.0.0.202 #主动模式必须指向zabbix_server主机
Hostname=10.0.0.203 #当前主机的IP,此项必须和Zabbix_Server中设置的主机名称相同
Timeout=30
Include=/etc/zabbix/zabbix_agentd.d/*.conf

[12:01:04root@ubuntu ~]# systemctl restart zabbix-agent.service

更改现有模板的监控项为主动模式

  • 查看数据

4.zabbix proxy主动及被动案例

Zabbix Proxy在Zabbix监控系统中扮演着重要的角色,可以用于分布式监控环境中的数据收集和处理。它既可以以主动模式与Zabbix Server通信,也可以以被动模式接收来自监控设备的数据

注意: Zabbix Proxy 的主动模式和被动模式和Agent的主动被动模式没有关系

  • zabbix Proxy 安装和配置
    注意:所有主机的主机名要唯一,否则被动模式可能会影响数据采集
地址 角色
10.0.0.28 Zabbix Server,MySQL
10.0.0.202 Zabbix Proxy主动模式,MySQL
10.0.0.48 Zabbix agent 主动模式,MySQL
10.0.0.38 Zabbix Server,MySQL
10.0.0.22 Zabbix Proxy被动模式,MySQL
10.0.0.8 Zabbix agent 被动模式,MySQL
  • zabbix服务配置
    数据库和zabbix_server配置
bash 复制代码
MYSQL_USER="root"
MYSQL_PASSWORD="123456"
ZABBIX_PASSWORD="123456"
MYSQL_DATABASE="zabbix"
rpm -Uvh https://repo.zabbix.com/zabbix/6.0/rhel/8/x86_64/zabbix-release-6.0-4.el8.noarch.rpm
dnf clean all
dnf install zabbix-server-mysql zabbix-web-mysql zabbix-nginx-conf zabbix-sql-scripts zabbix-selinux-policy zabbix-agent mysql-server -y
mysql -u$MYSQL_USER -e \
"CREATE DATABASE $MYSQL_DATABASE CHARACTER SET utf8mb4 COLLATE utf8mb4_bin; \
CREATE USER 'zabbix'@'localhost' IDENTIFIED BY '123456'; \
GRANT ALL PRIVILEGES ON $MYSQL_DATABASE.* TO 'zabbix'@'localhost'; \
SET GLOBAL log_bin_trust_function_creators = 1;"
cat /usr/share/zabbix-sql-scripts/mysql/server.sql.gz | mysql --default-character-set=utf8mb4 -uzabbix -p$ZABBIX_PASSWORD $MYSQL_DATABASE
mysql -u$MYSQL_USER  -e "SET GLOBAL log_bin_trust_function_creators = 0;"
sed -ri.bak "s/^# (DBPassword=)/\1$ZABBIX_PASSWORD/" /etc/zabbix/zabbix_server.conf
systemctl restart zabbix-proxy
  • 主动模式Proxy
bash 复制代码
[14:52:14root@ubuntu ~]# grep ^[^#] /etc/zabbix/zabbix_proxy.conf
ProxyMode=0    #主动模式为0
Server=10.0.0.28  #必须指向zabbix_server服务器
Hostname=Zabbix-proxy  #需要和web上一致
LogFile=/var/log/zabbix/zabbix_proxy.log
LogFileSize=0
PidFile=/run/zabbix/zabbix_proxy.pid
SocketDir=/run/zabbix
DBName=zabbix_proxy #数据库名字
DBUser=zabbix  #数据库账户
DBPassword=123456 #数据库密码
ProxyLocalBuffer=0
SNMPTrapperFile=/var/log/snmptrap/snmptrap.log
Timeout=4
FpingLocation=/usr/bin/fping
Fping6Location=/usr/bin/fping6
LogSlowQueries=3000
StatsAllowedIP=127.0.0.1
  • 被动模式Proxy
bash 复制代码
[11:58:25root@ubuntu ~]# grep ^[^#] /etc/zabbix/zabbix_proxy.conf
ProxyMode=1  #被动模式为1
Server=10.0.0.38 #必须指向zabbix_server服务器
Hostname=Zabbix-proxy  #不用一致
LogFile=/var/log/zabbix/zabbix_proxy.log
LogFileSize=0
PidFile=/run/zabbix/zabbix_proxy.pid
SocketDir=/run/zabbix
DBName=zabbix_proxy
DBUser=zabbix
DBPassword=123456
ProxyLocalBuffer=0
SNMPTrapperFile=/var/log/snmptrap/snmptrap.log
Timeout=4
FpingLocation=/usr/bin/fping
Fping6Location=/usr/bin/fping6
LogSlowQueries=3000
StatsAllowedIP=127.0.0.1
  • 主动模式agent
bash 复制代码
[14:57:43root@localhost ~]# grep ^[^#] /etc/zabbix/zabbix_agentd.conf
PidFile=/run/zabbix/zabbix_agentd.pid
LogFile=/var/log/zabbix/zabbix_agentd.log
LogFileSize=0
Server=10.0.0.202   #必须指向Proxy
ServerActive=10.0.0.202 #必须指向Proxy
Hostname=10.0.0.48 #在web上配置需要一致
Include=/etc/zabbix/zabbix_agentd.d/*.conf
  • 被动模式agent
bash 复制代码
[12:01:49root@localhost ~]# grep ^[^#] /etc/zabbix/zabbix_agentd.conf
PidFile=/run/zabbix/zabbix_agentd.pid
LogFile=/var/log/zabbix/zabbix_agentd.log
LogFileSize=0
Server=10.0.0.202 #指向Proxy
Hostname=Zabbix server
Include=/etc/zabbix/zabbix_agentd.d/*.conf

5.完成脚本api添加主机

bash 复制代码
#!/bin/bash
#
#**********************************************************************************************
#Author:        luomu
#QQ:            2754835633
#Date:          2024-05-12
#FileName:      tianjia.sh
#MIRROR:        www.xswhsy.cn
#Description:   The test script
#Copyright (C): 2024 All rights reserved
#*********************************************************************************************
ZABBIX_URL="http://luomu.cn/api_jsonrpc.php"
USERNAME="Admin"
PASSWORD="zabbix"

# 登录Zabbix API并获取认证令牌
auth_token=$(curl -s -X POST -H 'Content-Type: application/json' -d '{
    "jsonrpc": "2.0",
    "method": "user.login",
    "params": {
        "user": "'$USERNAME'",
        "password": "'$PASSWORD'"
    },
    "id": 1
}' $ZABBIX_URL | jq -r '.result')

if [ -z "$auth_token" ]; then
    echo "认证失败!"
    exit 1
fi

echo "认证成功,认证令牌: $auth_token"

# 主机信息
hostname="10.0.0.8"
ip_address="10.0.0.8"

# 要添加到的主机组ID和模板ID
group_id="2"
template_id="10001"

# 创建主机
response=$(curl -s -X POST -H 'Content-Type: application/json' -d '{
    "jsonrpc": "2.0",
    "method": "host.create",
    "params": {
        "host": "'$hostname'",
        "interfaces": [
            {
                "type": 1,
                "main": 1,
                "useip": 1,
                "ip": "'$ip_address'",
                "dns": "",
                "port": "10050"
            }
        ],
        "groups": [{"groupid": "'$group_id'"}],
        "templates": [{"templateid": "'$template_id'"}]
    },
    "auth": "'$auth_token'",
    "id": 1
}' $ZABBIX_URL | jq -r '.result')

if [ -n "$response" ]; then
    echo "主机添加成功!"
else
    echo "主机添加失败!"
fi
  • 查看是否添加
  • 运行脚本添加
bash 复制代码
[15:20:27root@localhost ~]# bash host.sh 
认证成功,认证令牌: 14098e814f79f60ca26814f9064463d7
主机添加成功!

6.构建一个漂亮的granfana大盘

下载地址:https://grafana.com/grafana/download

bash 复制代码
[20:53:00root@localhost ~]# yum install -y https://dl.grafana.com/enterprise/release/grafana-enterprise-10.4.2-1.x86_64.rpm
Complete!
[20:55:01root@localhost ~]# systemctl start grafana-server.service #启动grafana
  • 查看初始界面

  • 安装zabbix插件
bash 复制代码
[21:35:55root@localhost ~]# grafana-cli plugins list-remote |grep zabbix #列出插件
[21:08:04root@localhost ~]# grafana-cli plugins install alexanderzobnin-zabbix-app #安装zabbix插件
✔ Downloaded and extracted alexanderzobnin-zabbix-app v4.4.9 zip successfully to /var/lib/grafana/plugins/alexanderzobnin-zabbix-app

Please restart Grafana after installing or removing plugins. Refer to Grafana documentation for instructions if necessary. 
[21:11:18root@localhost ~]# systemctl restart grafana-server.service  #重启服务
[21:45:10root@localhost ~]# grafana-cli plugins list-remote |grep zabbix  #列出插件
id: alexanderzobnin-zabbix-app version: 4.4.9
  • 设置插件


    添加数据源





    图形更改
  • 简易大盘
相关推荐
Karoku06613 小时前
【企业级分布式系统】Zabbix监控系统与部署安装
运维·服务器·数据库·redis·mysql·zabbix
川石课堂软件测试20 小时前
性能测试|docker容器下搭建JMeter+Grafana+Influxdb监控可视化平台
运维·javascript·深度学习·jmeter·docker·容器·grafana
Walden-20202 天前
构建基于 DCGM-Exporter, Node exporter,PROMETHEUS 和 GRAFANA 构建算力监控系统
docker·容器·grafana·prometheus
LuckyTHP2 天前
zabbix 7.0 安装(服务器、前端、代理等)
zabbix
牛角上的男孩3 天前
部署Prometheus、Grafana、Zipkin、Kiali监控度量Istio
grafana·prometheus·istio
与君共勉121383 天前
Zabbix proxy 主动模式的实现
运维·学习·zabbix
Amrian_robot4 天前
Zabbix 6.0 部署
运维·zabbix
小安运维日记6 天前
Linux云计算 |【第五阶段】CLOUD-DAY10
linux·运维·云计算·k8s·grafana·prometheus
川石课堂软件测试7 天前
性能测试|linux服务器搭建JMeter+Grafana+Influxdb监控可视化平台
linux·服务器·python·jmeter·机器学习·grafana·1024程序员节
無爲謂8 天前
入门 | Kafka数据使用vector消费到Loki中使用grafana展示
分布式·kafka·vector·grafana·loki·日志存储·es限制解决办法