一. 部署架构图

二. 安装环境及版本信息
操作系统:centos7
zabbix版本: 4.4
mysql: 5.7.28
三.zabbix server安装(192.168.182.132)
rpm -Uvh https://repo.zabbix.com/zabbix/4.4/rhel/7/x86_64/zabbix-release-4.4-1.el7.noarch.rpmyum-config-manager --enable rhel-7-server-optional-rpmsyum install epel-release numactlyum 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/$basearchenabled=1gpgcheck=1gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX-A14FE591skip_if_unavailable = 1keepcache = 0[zabbix-debuginfo]name=Zabbix Official Repository debuginfo - $basearchbaseurl=http://repo.zabbix.com/zabbix/4.4/rhel/7/$basearch/debuginfo/enabled=0gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX-A14FE591gpgcheck=1
四. mysql安装(192.168.182.132)
wget https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-5.7.28-linux-glibc2.12-x86_64.tar.gztar -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 mysqlmkdir app/mysql/{data,logs}groupadd mysqluseradd -g mysql mysqlchown mysql:mysql app/mysql -R1、配置mysql 配置文件:复制代码[client]port = 3306socket = tmp/mysql.sockdefault-character-set = utf8# 配置账号密码、ip;实现命令行直接"免密码"登录[mysql]host=192.168.182.132user=zabbixpassword=zabbix[mysqladmin]host=192.168.182.132user=zabbixpassword=zabbix[mysqld]port = 3306socket = tmp/mysql.sockbasedir = app/mysqldatadir = app/mysql/datapid-file = app/mysql/mysql.piduser = mysqlbind-address = 0.0.0.0server-id = 1init-connect = 'SET NAMES utf8'character-set-server = utf8log_timestamps=SYSTEMskip-name-resolveback_log = 300max_connections = 613max_connect_errors = 6000open_files_limit = 65535table_open_cache = 256max_allowed_packet = 500Mbinlog_cache_size = 1Mmax_heap_table_size = 8Mtmp_table_size = 32Mread_buffer_size = 2Mread_rnd_buffer_size = 8Msort_buffer_size = 8Mjoin_buffer_size = 8Mkey_buffer_size = 16Mthread_cache_size = 16query_cache_type = 1query_cache_size = 16Mquery_cache_limit = 2Mft_min_word_len = 4log_bin = mysql-binbinlog_format = mixedexpire_logs_days = 7log_error = app/mysql/logs/mysql-error.logslow_query_log = 1long_query_time = 1slow_query_log_file = app/mysql/logs/mysql-slow.logperformance_schema = 0explicit_defaults_for_timestampskip-external-lockingdefault_storage_engine = InnoDBinnodb_file_per_table = 1innodb_open_files = 500innodb_buffer_pool_size = 128Minnodb_write_io_threads = 4innodb_read_io_threads = 4innodb_thread_concurrency = 0innodb_purge_threads = 1innodb_flush_log_at_trx_commit = 2innodb_log_buffer_size = 2Minnodb_log_file_size = 32Minnodb_log_files_in_group = 3innodb_max_dirty_pages_pct = 90innodb_lock_wait_timeout = 120bulk_insert_buffer_size = 8Mmyisam_sort_buffer_size = 16Mmyisam_max_sort_file_size = 10Gmyisam_repair_threads = 1interactive_timeout = 28800wait_timeout = 28800[mysqldump]quickmax_allowed_packet = 500M[myisamchk]key_buffer_size = 16Msort_buffer_size = 8Mread_buffer = 4Mwrite_buffer = 4M复制代码2、数据库初始化: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/mysqlecho "export PATH=/app/mysql/bin:$PATH" >> etc/profilesource etc/profile# 启动mysql/etc/init.d/mysql start# 使用日志中的临时密码(Jm=%mM7w)UBq)登录mysqlmysql -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;# 导入数据到zabbixzcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uroot -p zabbix
五.配置zabbix_server
1、修改配置# vi /etc/zabbix/zabbix_server.conf复制代码LogFile=/app/zabbix/logs/zabbix_server.logLogFileSize=0PidFile=/var/run/zabbix/zabbix_server.pidSocketDir=/var/run/zabbixDBHost=192.168.182.132DBName=zabbixDBUser=zabbixDBPassword=zabbixDBSocket=/tmp/mysql.sockSNMPTrapperFile=/app/zabbix/logs/snmptrap/snmptrap.logTimeout=4AlertScriptsPath=/app/zabbix/alertscriptsExternalScripts=/app/zabbix/externalscriptsLogSlowQueries=3000StatsAllowedIP=127.0.0.1复制代码2、创建相关目录:mkdir -p /app/zabbix/logs/snmptrapmkdir /app/zabbix/{alertscripts,externalscripts}chown zabbix:zabbix /app/zabbix/ -R3、修改时区:# vim /etc/httpd/conf.d/zabbix.conf# 添加/修改配置:php_value date.timezone Asia/Shanghai4、启动apachesystemctl start httpd.service5、启动phpsystemctl start php-fpm.service6、启动zabbix serversystemctl 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.patchyum install -y patchcp -a /usr/share/zabbix /usr/share/zabbix.bakmv graphtree3.0.4.patch /usr/share/zabbix/cd /usr/share/zabbixpatch -Np0 <graphtree3.0.4.patchchown apache:apache oneoaas -R添加配置:vim /etc/httpd/conf.d/zabbix.confAlias /oneoaas /usr/share/zabbix/oneoaassystemctl restart httpd.service zabbix-server.service
八.zabbix proxy(192.168.182.130) 部署:
8.1、yum安装
rpm -Uvh https://repo.zabbix.com/zabbix/4.4/rhel/7/x86_64/zabbix-release-4.4-1.el7.noarch.rpmyum clean all# 先查找zabbix-proxy,yum search zabbix-proxyyum install zabbix-proxy-mysql.x86_64 zabbix-agent.x86_64curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repoyum clean allyum makecache# 再执行yum install zabbix-proxy-mysql.x86_64 zabbix-agent.x86_64# 创建zabbix库: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# 修改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端发送数据的时间,单位是秒,几乎等于实时同步# 启动zabbix-proxysystemctl start zabbix-proxy.service
8.2 、源码安装
yum -y install curl-devel libevent-devel libevent curl libxml2-devel libxml2 pcre pcre-develyum install mysql-devel -yyum 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.gztar -xzvf zabbix-4.4.0.tar.gzcd 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-opensslln -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
8.2 、web端配置代理
8.2.1、web配置zabbix代理


添加主机时选择代理

如果出现如下图,则zabbix server不能与zabbix proxy正常通信

正常通信如图:

九.zabbix客户端安装
9.1、yum安装
# 添加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
9.2、源码安装
yum -y install curl-devel libevent-devel libevent curl libxml2-devel libxml2 pcre pcre-develyum install mysql-devel -yyum 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.gztar -xzvf zabbix-4.4.0.tar.gzcd 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
9.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
9.4、安装zabbix-get,并测试agent端是否server端连通
# 安装yum install -y zabbix-get# 在服务端测试(192.168.182.132),-s --host:agent端ip;-p,--port:端口;-k,--key:监控项keyzabbix_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
文章转载自大数据与云原生技术分享,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




