zabbix5.0搭建配置
●简介
zabbix监控需要安装服务端和客户端,需要监控的机器需要安装客户端把数据上报给服务端。服务端搭建完成后进入web管理页面进行监控配置。
本次搭建使用centos7环境yum方式安装,安装不复杂配置的内容比较多,做下操作记录方便后续使用查看,在新环境能够快速搭建部署一套可用
的监控。
●安装服务端
1、关闭selinux
1 2 | sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config setenforce 0 |
2、配置yum源
1 2 3 | rpm -Uvh https: //mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm yum clean all |
3、安装zabbix server 、agent
1 | yum install zabbix-server-mysql zabbix-agent -y |
4、安装zabbix前端源
1 | yum install centos-release-scl -y |
启用 zabbix 前端源,将[zabbix-frontend]下的 enabled 改为 1
修改/etc/yum.repos.d/zabbix.repo
1 2 3 4 5 6 7 8 | [root@zabbix ~]# vim /etc/yum.repos.d/zabbix.repo [zabbix-frontend] name=Zabbix Official Repository frontend - $basearch baseurl=https: //mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/$basearch/frontend enabled=1 gpgcheck=1 gpgkey=file: ///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX-A14FE591 |
5、安装 zabbix 前端和相关环境
1 | yum install zabbix-web-mysql-scl zabbix-apache-conf-scl -y |
6、安装数据库
使用 yum 安装 centos7 默认的 mariadb 数据库 (mysql也一样,已安装过数据库可以略过)
1 2 3 | yum install mariadb mariadb-server mariadb-devel -y systemctl enable --now mariadb #启动数据库,并配置开机自动启动 mysql_secure_installation #初始化 mariadb 并配置 root 密码 |
7、创建初始数据库
1 2 3 4 5 6 | # mysql -uroot -p password mysql> create database zabbix character set utf8 collate utf8_bin; mysql> create user zabbix@localhost identified by 'password' ; mysql> grant all privileges on zabbix.* to zabbix@localhost; mysql> quit; |
导入 zabbix 数据库,zabbix 数据库用户为 zabbix,密码为 password
zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p 若出现报错ERROR 1046 (3D000) at line 1: No database selected vim /usr/share/doc/zabbix-server-mysql*/create.sql.gz 在首行添加下 use zabbix;
8、为Zabbix server配置数据库
编辑配置文件 /etc/zabbix/zabbix_server.conf
1 | DBPassword=password |
9、为Zabbix前端配置PHP文件里的时区
编辑配置文件 /etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf
1 2 | vim /etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf php_value[date.timezone] = Asia/Shanghai |
10、启动相关服务,并配置开机自动启动
1 2 | systemctl restart zabbix-server zabbix-agent httpd rh-php72-php-fpm systemctl enable zabbix-server zabbix-agent httpd rh-php72-php-fpm |
11、浏览器测试访问zabbix 的 web 页面,格式http://ip/zabbix
●安装客户端
1、查看yum是否有zabbix-agent5.0
1 | yum list |grep zabbix |
如果有就不用安装zabbix源了,安装zabbix源
1 2 | rpm -Uvh https: //repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm yum clean all #清除缓存 |
2、安装zabbix-agent
1 | yum install -y zabbix50-agent.x86_64 |
3、修改客户端配置并启动
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | vim /etc/zabbix_agentd.conf 修改: Server= 101.132.159.46 #服务端ip ServerActive= 101.132.159.46 #服务端ip Hostname=xxxx_server #机器服务命名,服务端配置时需要填写此信息 #启动 systemctl start zabbix-agent 开机自启 systemctl enable zabbix-agent |
●配置监控
1、配置群组
配置--主机群组--创建主机群组--填写群组名称--添加
2、配置模板
配置--模板--创建模板--填写模板名称--选择主机群组--添加
添加完可在末班中添加监控项、触发器等,每次添加主机时选择模板即可拥有模板中的监控项和触发器了。
3、添加主机
配置--主机--填写主机名称(客户端配置文件中的Hostname)--选择主机群组--填写客户端机器ip、端口--上方选择模板选择使用的模板(可选)--添加
4、配置邮件告警
①编写脚本vim /usr/lib/zabbix/alertscripts/zabbix_sendmail.py (/usr/lib/zabbix/alertscripts告警脚本存放路径)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | #!/usr/bin/python #coding:utf-8 import smtplib from email.header import Header from email.mime.text import MIMEText import sys mail_host = 'smtp.exmail.qq.com' mail_user = 'xxxxx@xxxxx.com' #邮箱账号 mail_pass = 'RZVDjFLJVxxxxxxx' #邮箱管理后台获取的授权码 mail_postfix = 'qq.com' def send_mail(to_list,subject,content): me = ( "%s<%s>" )%(Header( '运维告警信息' , 'utf-8' ), mail_user) msg = MIMEText(content, 'plain' , 'utf-8' ) msg[ 'Subject' ] = subject msg[ 'From' ] = me msg[ 'to' ] = to_list try : s = smtplib.SMTP_SSL(mail_host,465) s.connect(mail_host) s.login(mail_user,mail_pass) s.sendmail(me,to_list,msg.as_string()) s.close() return True except Exception as e: print( 'Exception' ,e) return False if __name__ == "__main__" : send_mail(sys.argv[1], sys.argv[2], sys.argv[3]) |
②配置报警媒介
管理--报警媒介类型--创建媒介类型--填写名称--类型选择脚本--填写脚本名称(zabbix_sendmail.py)--脚本参数填写(见下图)--添加
脚本参数:
1 2 3 | {ALERT.SENDTO} {ALERT.SUBJECT} {ALERT.MESSAGE} |
③配置用户的告警媒介
用户--选择用户--报警媒介--添加告警人邮件--选择告警类型(自己第②步创建的)--填写收件人邮箱--添加--添加
④配置动作
配置--动作--创建动作--填写名称--添加条件--选择触发器--添加--操作--添加操作--选择用户--添加--添加恢复操作--选择用户--添加--添加
5、配置自动注册
zabbix客户端自动注册设置,实现客户端自动向服务端发送请求,从而添加主机、添加模板等操作。
web设置步骤:
配置--动作--选择自动注册动作--填写名称--添加条件--选择主机元数据--选择匹配--填写值(可以根据值分类1、默认的使用一个值 2、mysql数据库的一个值 3、等等)
--点击添加--点击操作--添加操作--添加主机--添加主机群组--添加模板--点击添加
zabbix客户端配置步骤:
vim /etc/zabbix_agentd.conf
添加HostMetadata=(这里填web设置步骤中主机元数据的值)
保存退出,重启zabbix-agent服务就会发现页面中已经添加了此客户端的主机了。
●常见问题处理
1、cpu、内存异常捕捉进程的方法
以下脚本当cpu、内存可用率小于30查看占用最高的5个进程记录到文件里
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 | #!/bin/bash while true domem_free=`free -m | grep '^Mem:' | awk '{print $4 }' ` mem_buff_cache=`free -m | grep '^Mem:' | awk '{print $6 }' ` mem_total=`free -m | grep '^Mem:' | awk '{print $2 }' ` mem_percent=$(((mem_free+mem_buff_cache)*100/mem_total)) # 输出信息的文件 echo_file= "/root/Mem.txt" echo_file2= "/root/cpu.txt" cpu=`top -b|head -3|grep '%Cpu' |awk '{print $8}' ` cpu_percent=`echo ${cpu%.*}`<br> #内存监控留档 if [ $mem_percent -lt 30 ] ;then echo "`date +%F-%H` memory: ${mem_percent}%" >> $echo_file echo "最高的进程:" >> $echo_file echo "`ps aux|head -1;ps aux|grep -v PID|sort -rn -k +4|head -5`" >> $echo_file echo "=========================end========================" >> $echo_file sleep 10 echo "`date +%F-%H` memory: ${mem_percent}%" >> $echo_file echo "最高的进程:" >> $echo_file echo "`ps aux|head -1;ps aux|grep -v PID|sort -rn -k +4|head -5`" >> $echo_file echo "=========================end========================" >> $echo_file fi #cpu监控留档 if [ $cpu_percent -lt 30 ] ;then echo "`date +%F-%H` cpu: ${cpu}%" >> $echo_file2 echo "最高的进程:" >> $echo_file2 echo "`ps aux|head -1;ps aux|grep -v PID|sort -rn -k +3|head -5`" >> $echo_file2 echo "=========================end========================" >> $echo_file2 sleep 10 echo "`date +%F-%H` cpu: ${cpu}%" >> $echo_file2 echo "最高的进程:" >> $echo_file2 echo "`ps aux|head -1;ps aux|grep -v PID|sort -rn -k +3|head -5`" >> $echo_file2 echo "=========================end========================" >> $echo_file2 fi sleep 60 done |

【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)