Zabbix搭建以及使用

本文详细介绍了Zabbix的搭建过程,包括安装Zabbix仓库、配置数据库、启动服务,以及设置监控主机、配置钉钉告警、监控MySQL主从状态。还涉及到Zabbix-agent的安装和配置,以及通过ping监控网络连通性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

原理:

五个组件:

1.server:核心引擎,负责收集和接收来自被监控设备的数据同事与其他组件进行通信,管理着所有

规则,包括触发器,告警,监控采集等

2.GUI:这是 web 管理界面

3.database:这是数据存储库

4.proxy:这是一个可选的组件,利用它来实现分布式监控架构或分担Zabbix Server的负载,提高

Zabbix Server的性能。它的主要功能是协助Zabbix Server从被监视的主机或设备收集数

据。Zabbix proxy收集的数据首先存放到本地临时数据库中,随后会定时发送到Zabbix

server中,即便Zabbix Server和Zabbix proxy的连接断开也不会导致数据的丢失(数据保

留的时间可在proxy的配置文件中设置)

5.agent:客户端

搭建以及使用:

1.安装 zabbix 仓库:rpm -Uvh https://repo.zabbix.com/zabbix/5.4/rhel/8/x86_64/zabbix-

release-5.4-1.el8.noarch.rpm

2.安装所需要的工具:dnf install zabbix-server-mysql zabbix-web-mysql zabbix-apache-conf zabbix-sql-scripts zabbix-agent @httpd @mariadb -y

3.创建初始化数据库:

        1.mysql -uroot(账户) -p123456(密码)

        2.创建数据库:create database zabbix character set utf8 collate utf8_bin;

        3.创建本地用户:create user zabbix@localhost identified by 'password';

        4.赋予权限:grant all privileges on zabbix.* to zabbix@localhost;

        5.退出:quit;

4.导入初始架构和数据,然后输入刚刚创建用户的密码(password)

编辑:vim /usr/share/doc/zabbix-sql-scripts/mysql/create.sql.gz

开头加入:use zabbix;

输入:zcat /usr/share/doc/zabbix-sql-scripts/mysql/create.sql.gz | mysql -uzabbix -pzabbix

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

DBPassword=password(刚刚的用户密码)

6.启动并开机自启:

systemctl restart zabbix-server zabbix-agent httpd php-fpm mariadb

systemctl enable zabbix-server zabbix-agent httpd php-fpm mariadb

7.进入 zabbix 界面:浏览器打开127.0.0.1/zabbix

8.默认账号密码是:Admin / zabbix

9.安装中文界面:dnf install langpacks-zh_CN.noarch glibc-common

10.编辑:vim /usr/share/zabbix/include/locales.inc.php ,找到zh_CN ,将 flase 改为 true

11.修改(注意:如果选择不了则安装 dnf install langpacks-zh_CN.noarch glibc-common -y)

12.有乱码的时候,复制 Windows 文件到这个路径:/usr/share/zabbix/assets/fonts

13.重命名:mv msyh.ttc msyh.ttf

14.编辑这两处:vim /usr/share/zabbix/include/defines.inc.php

监控主机:

1.被监控端安装 zabbix-agent:

        1.下载仓库:rpm -Uvh https://repo.zabbix.com/zabbix/5.4/rhel/8/x86_64/zabbix-release-

        5.4-1.el8.noarch.rpm

        2.安装:dnf install zabbix-agent -y

        3.编辑文件:vim /etc/zabbix/zabbix_agentd.conf

        Hostname=被监控主机 ip

        Server=zabbix服务器 ip

        4.启动:systemctl start zabbix-agent

        5.开机自启:systemctl enable zabbix-agent

        6.查看端口:netstat -tpln | grep 10050

2.创建被监控主机:

 

钉钉告警:

1.创建机器人

2.设置安全设置

3.保存链接

4.打开 zabbix-server,进入这个目录:cd /usr/lib/zabbix/alertscripts

5.编辑脚本:vim dingding.py

#!/usr/bin/env python

#coding:utf-8

#zabbix钉钉报警

import requests,json,sys,os,datetime

webhook="https://oapi.dingtalk.com/robot/send?access_token=fb93c68ef62a9ab9786520ccc259b0ccf6be6b867cf182302065cc645bfba8a8" #说明:这里改为自己创建的机器人的webhook的值

user=sys.argv[1]

text=sys.argv[3]

data={

"msgtype": "text",

"text": {

"content": text

},

"at": {

"atMobiles": [

user

],

"isAtAll": False

}

}

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

x=requests.post(url=webhook,data=json.dumps(data),headers=headers)

if os.path.exists("/var/log/zabbix/dingding.log"):

f=open("/var/log/zabbix/dingding.log","a+")

else:

f=open("/var/log/zabbix/dingding.log","w+")

f.write("\n"+"--"*30)

if x.json()["errcode"] == 0:

f.write("\n"+str(datetime.datetime.now())+" "+str(user)+" "+"发送成功"+"\n"+str(text))

f.close()

else:

f.write("\n"+str(datetime.datetime.now()) + " " + str(user) + " " + "发送失败" + "\n" + str(text))

f.close()

6.赋予执行权限:chmod +x dingding.py

7.创建日志目录:mkdir /var/log/zabbix/dingding.log

授权:chmod 755 /var/log/zabbix/dingding.log

8.授权:chown zabbix.zabbix /var/log/zabbix/dingding.log

9.主配置文件编辑:vim /etc/zabbix/zabbix_server.conf

AlertScriptsPath=/usr/lib/zabbix/alertscripts(刚刚脚本的路径)

10.测试脚本:./dingding.py test gaojing "测试下"

11.创建 zabbix 报警媒介

 

12.给用户添加报警媒介

 

13.创建动作

 

14.测试成功

监控 mysql 的主从:

1.被监控端安装 zabbix-agent:

        1.下载仓库:rpm -Uvh https://repo.zabbix.com/zabbix/5.4/rhel/8/x86_64/zabbix-release-

        5.4-1.el8.noarch.rpm

        2.安装:dnf install zabbix-agent2 -y

        3.编辑文件:vim /etc/zabbix/zabbix_agent2.conf

        Hostname=被监控主机 ip

        Server=zabbix服务器 ip

        ServerAcite = zabbix服务器 ip

        ListenIP=0.0.0.0

        ListenPort=端口

        4.启动:systemctl start zabbix-agent2

        5.开机自启:systemctl enable zabbix-agent2

        6.查看端口:netstat -tpln | grep 10050

2.创建目录:mkdir /etc/zabbix/test

3.编辑脚本:vim /etc/zabbix/test/mysql_slvae_status.sh

#!/bin/bash

USER="test"

PASSWD="123456"

NAME=$1

function IO {

Slave_IO_Running=`mysql -u $USER -p$PASSWD -h 172.17.0.2 -P 33007 -e "show slave status\G;" 2> /dev/null |grep Slave_IO_Running |awk '{print $2}'`

if [ $Slave_IO_Running == "Yes" ];then

echo 0

else

echo 1

fi

}

function SQL {

Slave_SQL_Running=`mysql -u $USER -p$PASSWD -h 172.17.0.2 -P 33007 -e "show slave status\G;" 2> /dev/null |grep Slave_SQL_Running: |awk '{print $2}'`

if [ $Slave_SQL_Running == "Yes" ];then

echo 0

else

echo 1

fi

}

case $NAME in

io)

IO

;;

sql)

SQL

;;

*)

echo -e "Usage: $0 [io | sql]"

esac

注意:需先创建一个 mysql 登录的账号,-h 的 ip 为 docker 映射的 ip ,-P 则是端口

4.授权:chmod +x mysql_slvae_status.sh

5.编辑文件:vim /etc/zabbix/zabbix_agent2.d/userparameter_mysql_slave.conf

UserParameter=mysql.slave[*],/etc/zabbix/test/mysql_slvae_status.sh $1 #注意路径

6.防火墙放行:iptables -I INPUT -p tcp -m tcp --dport 10050 -m comment --comment

"zabbix_agentd listen " -j ACCEPT

7.保存以及重启:service iptables save && service iptables restart

8.重启:systemctl restart zabbix-agent2

9.重启 docker:systemctl restart docker

10.重启容器:docker restart mm

11.在 server 上测试,能否成功:zabbix_get -s 218.75.249.55 -k mysql.slave[sql]

12.配置监控主机的监控项:

13.配置触发器:

 

14.配置动作:

监控 mysql 的状态:

1.被监控端安装 zabbix-agent:

        1.下载仓库:rpm -Uvh https://repo.zabbix.com/zabbix/5.4/rhel/8/x86_64/zabbix-release-

        5.4-1.el8.noarch.rpm

        2.安装:dnf install zabbix-agent2 -y

        3.编辑文件:vim /etc/zabbix/zabbix_agent2.conf

        Hostname=被监控主机 ip

        Server=zabbix服务器 ip

        ServerAcite = zabbix服务器 ip

        ListenIP=0.0.0.0

        ListenPort=端口

        4.启动:systemctl start zabbix-agent2

        5.开机自启:systemctl enable zabbix-agent2

        6.查看端口:netstat -tpln | grep 10050

2.防火墙放行:iptables -I INPUT -p tcp -m tcp --dport 10050 -m comment --comment

"zabbix_agentd listen " -j ACCEPT

3.保存以及重启:service iptables save && service iptables restart

4.重启 docker:systemctl restart docker

5.重启容器:docker restart mm

6.配置模板:

ping 监控:

1.安装工具:yum install zabbix-sender -y

2.编辑脚本:vim ping.sh

#!/bin/bash

PINGCMD=/usr/bin/ping

SENDCMD=/usr/bin/zabbix_sender

CHECKHOST=15.235.132.1 #ping 的地址

ZABBIXSERVER=103.138.75.5 #zabbix 服务器

ZABBIXPORT=10051 #zabbix 侦听端口

LOCALHOST=194.233.77.26 #被监控主机,zabbix 的名称

PAG_NUM=1

ZAX_KEY=ping #键值

check_ping() {

$PINGCMD -c $PAG_NUM $CHECKHOST >/dev/null 2>&1

if [ $? -eq 0 ];then

RESPONSE_TIME=`$PINGCMD -c $PAG_NUM -w 1 $CHECKHOST |head -2 |tail -1|awk '{print $(NF-1)}'|cut -d= -f2`

echo $RESPONSE_TIME

else

echo 0

fi

}

send_data() {

DATA=`check_ping`

$SENDCMD -z $ZABBIXSERVER -s $LOCALHOST -k $ZAX_KEY -o $DATA

}

while true

do

send_data

sleep 0.5

done

3.在被监控的主机上创建监控项:

4.创建图形:

5.运行:nohup /bin/bash ping.sh &

注意:需要隔段时间处理

### Zabbix 搭建教程 #### 设置环境准备 为了确保Zabbix能够正常运行,在开始安装之前,需完成一些必要的准备工作。这包括设置时钟同步、关闭防火墙和SELinux等措施[^3]。 #### 安装与配置Zabbix源 接着进入安装环节,首先是安装Zabbix的官方源,并将其替换为更稳定的阿里云镜像源以提高下载速度。对于YUM仓库而言,在`/etc/yum.repos.d/`目录下找到对应的repo文件修改即可;而对于APT,则是在`/etc/apt/sources.list`中添加或更改相应的行。 #### 数据库部署 选择合适的数据库作为后端存储至关重要。通常情况下会选用MariaDB来保存所有的监控数据。因此需要先安装好该数据库管理系统,再通过SQL脚本初始化所需的表结构。具体命令如下所示: ```bash zcat /usr/share/zabbix-sql-scripts/postgresql/server.sql.gz | sudo -u zabbix psql zabbix ``` 这条指令用于解压并执行位于指定路径下的SQL脚本来构建Zabbix所需的数据模型[^1]。 #### 配置Web界面 为了让用户可以通过浏览器访问管理平台,还需要单独安装PHP及其扩展包,并调整Apache/Nginx等相关参数使其能正确解析这些页面。最后一步就是按照向导提示输入刚才建立好的MySQL/MariaDB连接信息以及其他必要选项完成整个系统的初次设定过程。 --- ### 日常使用指南 当一切就绪之后就可以正式投入使用了。下面是一些关于如何高效利用这个工具来进行网络设备状态监测的小贴士: - **仪表盘定制化**:根据个人喜好或是业务需求自定义首页展示的内容板块; - **告警机制优化**:合理规划触发条件以及通知方式(邮件/SMS),以便及时响应异常情况; - **模板应用共享**:积极借鉴社区内已有的优秀案例,快速实现特定场景下的全面覆盖而不必重复造轮子; - **性能调优技巧**:定期审查历史记录中的瓶颈所在之处进而采取针对性改进措施提升整体效率; - **文档资料积累**:持续关注官方发布的最新动态和技术文章,保持知识更新不落后于时代潮流[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值