一、概述
Zabbix 是一种开源的监控软件工具,旨在监测和跟踪各种网络服务、服务器和其他 IT 资源的性能和可用性。它用于监测网络设备、服务器硬件、应用程序和其他 IT 基础设施组件的状态。Zabbix 可以监测各种指标,包括 CPU 使用率、内存使用率、磁盘空间、网络流量等等。它支持多种监控方式,包括 SNMP、JMX、IPMI、SSH 等。Zabbix 还提供了实时监测、历史数据存储、图表和报告生成等功能,以便 IT 运维团队进行性能分析和故障排除。由于其灵活性和可扩展性,Zabbix 成为了企业级监控解决方案的主要选择之一。
二、zabbix 安装实战操作
操作系统:centos7
zabbix版本: 4.4
mysql: 5.7.28
1)zabbix server 安装
rpm -Uvh https://repo.zabbix.com/zabbix/4.4/rhel/7/x86_64/zabbix-release-4.4-1.el7.noarch.rpm
yum-config-manager --enable rhel-7-server-optional-rpms
yum install epel-release numactl
yum install zabbix-server-mysql zabbix-web-mysql zabbix-nginx-conf -y复制
注意:如果出现yum安装不了,则可以修改/etc/yum.repos.d/zabbix.repo
[zabbix]
name=Zabbix Official Repository - $basearch
#baseurl=http://repo.zabbix.com/zabbix/4.4/rhel/7/$basearch/
baseurl=https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/4.4/rhel/7/$basearch
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX-A14FE591
skip_if_unavailable = 1
keepcache = 0
[zabbix-debuginfo]
name=Zabbix Official Repository debuginfo - $basearch
baseurl=http://repo.zabbix.com/zabbix/4.4/rhel/7/$basearch/debuginfo/
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX-A14FE591
gpgcheck=1复制
2)mysql 安装
1、前期准备
wget https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-5.7.28-linux-glibc2.12-x86_64.tar.gz
tar -xzvf mysql-5.7.28-linux-glibc2.12-x86_64.tar.gz -C app/
cd app/
mv mysql-5.7.28-linux-glibc2.12-x86_64 mysql
mkdir app/mysql/{data,logs}
groupadd mysql
useradd -g mysql mysql
chown mysql:mysql app/mysql -R复制
2、配置mysql 配置文件
[client]
port = 3306
socket = tmp/mysql.sock
default-character-set = utf8
# 配置账号密码、ip;实现命令行直接"免密码"登录
[mysql]
host=192.168.182.132user=zabbixpassword=zabbix[mysqladmin]host=192.168.182.132user=zabbixpassword=zabbix
[mysqld]
port = 3306
socket = tmp/mysql.sock
basedir = app/mysql
datadir = app/mysql/data
pid-file = app/mysql/mysql.pid
user = mysql
bind-address = 0.0.0.0
server-id = 1
init-connect = 'SET NAMES utf8'
character-set-server = utf8
log_timestamps=SYSTEM
skip-name-resolve
back_log = 300
max_connections = 613
max_connect_errors = 6000
open_files_limit = 65535
table_open_cache = 256
max_allowed_packet = 500M
binlog_cache_size = 1M
max_heap_table_size = 8M
tmp_table_size = 32M
read_buffer_size = 2M
read_rnd_buffer_size = 8M
sort_buffer_size = 8M
join_buffer_size = 8M
key_buffer_size = 16M
thread_cache_size = 16
query_cache_type = 1
query_cache_size = 16M
query_cache_limit = 2M
ft_min_word_len = 4
log_bin = mysql-bin
binlog_format = mixed
expire_logs_days = 7
log_error = app/mysql/logs/mysql-error.log
slow_query_log = 1
long_query_time = 1
slow_query_log_file = app/mysql/logs/mysql-slow.log
performance_schema = 0
explicit_defaults_for_timestamp
skip-external-locking
default_storage_engine = InnoDB
innodb_file_per_table = 1
innodb_open_files = 500
innodb_buffer_pool_size = 128M
innodb_write_io_threads = 4
innodb_read_io_threads = 4
innodb_thread_concurrency = 0
innodb_purge_threads = 1
innodb_flush_log_at_trx_commit = 2
innodb_log_buffer_size = 2M
innodb_log_file_size = 32M
innodb_log_files_in_group = 3
innodb_max_dirty_pages_pct = 90
innodb_lock_wait_timeout = 120
bulk_insert_buffer_size = 8M
myisam_sort_buffer_size = 16M
myisam_max_sort_file_size = 10G
myisam_repair_threads = 1
interactive_timeout = 28800
wait_timeout = 28800
[mysqldump]
quick
max_allowed_packet = 500M
[myisamchk]
key_buffer_size = 16M
sort_buffer_size = 8M
read_buffer = 4M
write_buffer = 4M复制
3、数据库初始化
cd app/mysql/
bin/mysqld --initialize --user=mysql --basedir=/app/mysql --datadir=/app/mysql/data --innodb_undo_tablespaces=3 --explicit_defaults_for_timestamp
登录的临时密码在error文件中(/app/mysql/logs/mysql-error.log)
##
porary password is generated for root@localhost: Jm=%mM7w)UBq
##
cp -a app/mysql/support-files/mysql.server etc/init.d/mysql
echo "export PATH=/app/mysql/bin:$PATH" >> etc/profile
source etc/profile
# 启动mysql
/etc/init.d/mysql start
# 使用日志中的临时密码(Jm=%mM7w)UBq)登录mysql
mysql -u root -p
# 设置root密码:
mysql>set password for root@localhost = password('root');
# 创建zabbix库:
create database zabbix character set utf8 collate utf8_bin;
# 授权:
grant all privileges on *.* to zabbix@'%' identified by 'zabbix';
# 刷新权限
flush privileges;
# 导入数据到zabbix
zcat usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uroot -p zabbix复制
3)配置zabbix_server
1、修改配置
# vi etc/zabbix/zabbix_server.conf
LogFile=/app/zabbix/logs/zabbix_server.log
LogFileSize=0
PidFile=/var/run/zabbix/zabbix_server.pid
SocketDir=/var/run/zabbix
DBHost=192.168.182.132
DBName=zabbix
DBUser=zabbix
DBPassword=zabbix
DBSocket=/tmp/mysql.sock
SNMPTrapperFile=/app/zabbix/logs/snmptrap/snmptrap.log
Timeout=4
AlertScriptsPath=/app/zabbix/alertscripts
ExternalScripts=/app/zabbix/externalscripts
LogSlowQueries=3000
StatsAllowedIP=127.0.0.1复制
2、创建相关目录
mkdir -p app/zabbix/logs/snmptrap
mkdir app/zabbix/{alertscripts,externalscripts}
chown zabbix:zabbix app/zabbix/ -R复制
3、修改时区
# vim etc/httpd/conf.d/zabbix.conf
# 添加/修改配置:
php_value date.timezone Asia/Shanghai复制
4、启动apache
systemctl start httpd.service
复制
5、启动php
systemctl start php-fpm.service
复制
6、启动zabbix server
systemctl start zabbix-server.service
# 访问: http:ip/zabbix
# 注意:第一次登录填写mysql连接信息时候地址需要填0.0.0.0复制
三、修改字体
# 上传windows中的字体MSYH.TTC(微软雅黑) 到/home/wwwroot/default/zabbix/fonts目录
ln -s home/wwwroot/default/zabbix/fonts/MSYH.TTC etc/alternatives/zabbix-web-font复制
四、安装graphtree插件(可选)
# graphtree是一个图形展示插件
wget https://raw.githubusercontent.com/OneOaaS/graphtrees/master/graphtree3.0.4.patch
yum install -y patch
cp -a usr/share/zabbix usr/share/zabbix.bak
mv graphtree3.0.4.patch usr/share/zabbix/
cd usr/share/zabbix
patch -Np0 <graphtree3.0.4.patch
chown apache:apache oneoaas -R
#添加配置:vim etc/httpd/conf.d/zabbix.conf
Alias oneoaas usr/share/zabbix/oneoaas
# 重启服务
systemctl restart httpd.service zabbix-server.service复制
五、安装 zabbix-proxy 详解过程
1)通过 yum 安装 zabbix-proxy
1、安装 zabbix-proxy 和 zabbix-agent
rpm -Uvh https://repo.zabbix.com/zabbix/4.4/rhel/7/x86_64/zabbix-release-4.4-1.el7.noarch.rpm
yum clean all
# 先查找zabbix-proxy,yum search zabbix-proxy
yum install zabbix-proxy-mysql.x86_64 zabbix-agent.x86_64复制
【问题】如果出现如下错误
Error: Package: zabbix-proxy-mysql-4.4.3-1.el7.x86_64 (zabbix)
Requires: fping
You could try using --skip-broken to work around the problem
You could try running: rpm -Va --nofiles --nodigest复制
【解决】根据错误提示,需要安装fping命令这个依赖,在进行yum安装之后显示该安装包不存在,因此进行推测应该是epel源配置出现问题,因此在阿里源中配置epel源
curl -o etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
yum clean all
yum makecache
# 再执行
yum install zabbix-proxy-mysql.x86_64 zabbix-agent.x86_64复制
2、创建 zabbix_proxy 库
create database zabbix_proxy character set utf8 collate utf8_bin;
# 授权:
grant all privileges on zabbix_proxy.* to zabbix@'%' identified by 'zabbix';
# 刷新权限
flush privileges;
# 部署mysql 步骤和在zabbix server中部署一样,区别在导入数据时候不一样:
# zcat usr/share/doc/zabbix-proxy-mysql*/schema.sql.gz | mysql -uroot -p zabbix_proxy复制
3、修改zabbix-proxy配置
# vim etc/zabbix/zabbix_proxy.conf
Server=192.168.182.132 # 真正的服务端(zabbix server)
ServerPort=10051 # 根据个人需要修改,一般可以不改,默认端口是10051,要实现转发的话使用这个选项(zabbix server)
ListenPort=10051 # zabbix-proxy服务监听的端口,默认就好
Hostname=Zabbix proxy # proxy的hostname,在web端网页配置时需要用到
DBHost=192.168.182.130 # 数据库,使用本地,也可以使用ip,我喜欢使用localhost,因为我授权就是本地,也因为配置ip失败踩过坑
DBName=zabbix_proxy # 数据库名称,创建zabbix-proxy的mysql的数据库名称
DBUser=zabbix # 用户
DBPassword=zabbix # 密码
DBPort=3306 # 当DBHost填写localhost时,默认是使用socket通信的,这里配置一下也无碍
#HeartbeatFrequency=60 # 心跳线(具体作用网了,看配置文件吧,这个默认就是60)
ConfigFrequency=600 # 这个好像是同步配置文件的时间
DataSenderFrequency=1 # 这个是proxy端向server端发送数据的时间,单位是秒,几乎等于实时同步复制
4、启动 zabbix-proxy
systemctl start zabbix-proxy.service
复制
2)通过源码安装 zabbix-proxy
yum -y install curl-devel libevent-devel libevent curl libxml2-devel libxml2 pcre pcre-devel
yum install mysql-devel -y
yum install -y net-snmp-devel
# 编译安装zabbix proxy:
wget https://nchc.dl.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/4.4.0/zabbix-4.4.0.tar.gz
tar -xzvf zabbix-4.4.0.tar.gz
cd zabbix-4.4.0
# proxy:
./configure --prefix=/app/zabbix_proxy_4.4 --enable-proxy --with-mysql --with-libcurl --with-libxml2 --enable-ipv6 --with-net-snmp --with-openssl
ln -s /app/mysql/lib/libmysqlclient.so.20 /usr/lib64/libmysqlclient.so.20
# 启动:
/app/zabbix_proxy_4.4/sbin/zabbix_proxy -c /app/zabbix_proxy_4.4/etc/zabbix_proxy.conf复制
六、通过 web 端配置代理
创建代理
配置代理信息
添加主机时选择代理
如果出现如下图,则zabbix server不能与zabbix proxy正常通信
正常通信如图:
七、zabbix-agent 安装
被监控的机器上必须安装 zabbix-agent,通过 zabbix-agent 与zabbix-proxy或者zabbix-server通信
1)yum 安装 zabbix-agent
# 添加yum源rpm -Uvh https://repo.zabbix.com/zabbix/4.4/rhel/7/x86_64/zabbix-release-4.4-1.el7.noarch.rpm
# 安装yum install zabbix-agent# 启动
service zabbix-agent start复制
2)源码安装 zabbix-agent
yum -y install curl-devel libevent-devel libevent curl libxml2-devel libxml2 pcre pcre-devel
yum install mysql-devel -y
yum install -y net-snmp-devel
# 编译安装zabbix客户端:
wget https://nchc.dl.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/4.4.0/zabbix-4.4.0.tar.gz
tar -xzvf zabbix-4.4.0.tar.gz
cd zabbix-4.4.0
# agent:
./configure --prefix=/app/zabbix_agent_4.4 --enable-agent --enable-ipv6 --with-net-snmp --with-openssl
# 启动:
/app/zabbix_agent_4.4/sbin/zabbix_agentd -c /app/zabbix_agent_4.4/etc/zabbix_agentd.conf复制
3)修改配置(/etc/zabbix/zabbix_agentd.conf)
Server=[zabbix server/zabbix proxy ip]
ServerActive=[zabbix server/zabbix proxy ip]
Hostname=[ Hostname of client system ]# 例:Server=192.168.182.130ServerActive=192.168.182.130Hostname=192.168.182.129复制
4)安装 zabbix-get,并测试agent端是否server端连通
# 安装
yum install -y zabbix-get
# 在服务端测试(192.168.182.132),-s --host:agent端ip;-p,--port:端口;-k,--key:监控项key
zabbix_get -s 192.168.182.130 -p 10050 -k system.hostname
# zabbix server与zabbix proxy的配置的同步是有延时的,如果需要立即同步可以手动执行命令:
zabbix_proxy -c /etc/zabbix/zabbix_proxy.conf -R config_cache_reload复制
zabbix 详细部署过程就先到这里了,有任何疑问欢迎给我留言或私信哦,也可关注我的公众号【大数据与云原生技术分享】加群交流哦~
文章转载自大数据与云原生技术分享,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
评论
相关阅读
【MySQL 30周年庆】MySQL 8.0 OCP考试限时免费!教你免费领考券
墨天轮小教习
3029次阅读
2025-04-25 18:53:11
MySQL 30 周年庆!MySQL 8.4 认证免费考!这次是认真的。。。
严少安
860次阅读
2025-04-25 15:30:58
openGauss荣获中国软件行业协会多奖项,技术升级再创行业新高度
openGauss
532次阅读
2025-04-30 14:30:58
【活动】分享你的压箱底干货文档,三篇解锁进阶奖励!
墨天轮编辑部
503次阅读
2025-04-17 17:02:24
MySQL 9.3 正式 GA,我却大失所望,新特性亮点与隐忧并存?
JiekeXu
439次阅读
2025-04-15 23:49:58
3月“墨力原创作者计划”获奖名单公布
墨天轮编辑部
377次阅读
2025-04-15 14:48:05
MySQL 8.0 OCP 1Z0-908 考试解析指南(二)
JiekeXu
308次阅读
2025-04-30 17:37:37
SQL优化 - explain查看SQL执行计划(下)
金同学
285次阅读
2025-05-06 14:40:00
记录MySQL数据库的一些奇怪的迁移需求!
陈举超
283次阅读
2025-04-15 15:27:53
MySQL 8.0 OCP 1Z0-908 考试题解析指南
青年数据库学习互助会
266次阅读
2025-04-30 12:17:54