Zabbix(server,proxy,agent)安装实战操作讲解

一、概述

Zabbix 是一种开源的监控软件工具,旨在监测和跟踪各种网络服务、服务器和其他 IT 资源的性能和可用性。它用于监测网络设备、服务器硬件、应用程序和其他 IT 基础设施组件的状态。Zabbix 可以监测各种指标,包括 CPU 使用率、内存使用率、磁盘空间、网络流量等等。它支持多种监控方式,包括 SNMP、JMX、IPMI、SSH 等。Zabbix 还提供了实时监测、历史数据存储、图表和报告生成等功能,以便 IT 运维团队进行性能分析和故障排除。由于其灵活性和可扩展性,Zabbix 成为了企业级监控解决方案的主要选择之一。

二、zabbix 安装实战操作

  1. 操作系统:centos7
  2. zabbix版本: 4.4
  3. 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

  • 26
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值