Zabbix监控

Zabbix 是一个企业级的开源监控解决方案,可用于监控各种 IT 组件,包括网络设备、服务器、虚拟机、数据库和服务等。它支持主动和被动监控方式,具备告警、图形、报表、自动化等强大功能。

一、Zabbix 架构组件介绍

组件作用说明
Zabbix Server核心组件,负责收集并处理来自 Agent、Trapper 或其他源的数据,生成告警等
Zabbix Agent安装在被监控主机上,收集本地 CPU、内存、磁盘、进程等信息
Zabbix Proxy中转代理,适用于大规模分布式监控场景
数据库存储所有配置数据、历史数据等(如 MySQL、PostgreSQL)
前端 Web UIPHP 开发的界面,用于配置、查看监控图、事件、告警等

二、 安装方式(常见方式)

  • 官方提供的 yum/rpm 包安装(适合生产)

  • Docker 容器部署(适合测试)

  • 源码编译安装(适合自定义)

  • 使用 Ansible Playbook 一键部署

1、推荐使用 yum 安装,如:

# 安装Zabbix仓库
rpm -Uvh https://repo.zabbix.com/zabbix/6.0/rhel/7/x86_64/zabbix-release-6.0-1.el7.noarch.rpm
yum clean all

# 安装 Zabbix Server, Web, Agent 和数据库(这里以MySQL为例)
yum install zabbix-server-mysql zabbix-web-mysql zabbix-agent

2、创建数据库(MySQL 示例)

CREATE DATABASE zabbix CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;
CREATE USER zabbix@localhost IDENTIFIED BY 'zabbix_password';
GRANT ALL PRIVILEGES ON zabbix.* TO zabbix@localhost;

3、导入初始数据库结构

zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p zabbix

4、配置文件修改

##编辑vim /etc/zabbix/zabbix_server.conf

DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=zabbix_password

5、启动服务

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

6、Web 安装向导访问

http://你的ip/zabbix

默认账户:

  • 用户名:Admin

  • 密码:zabbix

三、另一种方法(加php)

1、部署ngx+php环境并测试

nginx

vim /etc/yum.repos.d/nginx.repo

[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true

[root@zabbix.com yum.repos.d]# yum install -y nginx

php

安装 EPEL & Remi 源(推荐使用)
yum install epel-release -y
yum install -y https://rpms.remirepo.net/enterprise/remi-release-7.rpm
yum install -y yum-utils

# 启用 PHP 7.4
yum-config-manager --enable remi-php74

# 安装 Zabbix 6.0 所需的 PHP 组件
yum install -y php php-fpm php-mysqlnd php-gd php-xml php-bcmath php-mbstring php-ldap php-gettext php-json php-opcache php-sockets php-curl

##检查安装结果
[root@zabbix.com ~]# rpm -qa |egrep 'nginx|php'
php72w-cli-7.2.34-1.w7.x86_64
php72w-xml-7.2.34-1.w7.x86_64
nginx-1.26.1-2.el7.ngx.x86_64
php72w-common-7.2.34-1.w7.x86_64
php72w-pdo-7.2.34-1.w7.x86_64
php72w-gd-7.2.34-1.w7.x86_64
php72w-fpm-7.2.34-1.w7.x86_64
php72w-bcmath-7.2.34-1.w7.x86_64
php72w-mbstring-7.2.34-1.w7.x86_64
php72w-mysqlnd-7.2.34-1.w7.x86_64
php72w-ldap-7.2.34-1.w7.x86_64

1.2、nginx配置

[root@zabbix.com ~]# cat /etc/nginx/conf.d/zabbix-nginx.conf
server {
    listen 80;
    server_name xiaozbx.com;
    root /app/code/zbx;

    location / {
        index index.php;
    }

    location ~ \.php$ {
        fastcgi_pass 127.0.0.1:9000;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
}


#创建项目文件
mkdir -p /app/code/zbx

1.3、php配置

用户名
1. 进行替换
sed -ri  '/^(user|group)/s#apache#nginx#g' /etc/php-fpm.d/www.conf
2. 进行检查
egrep '^(user|group)' /etc/php-fpm.d/www.conf
user = nginx
group = nginx

#或者进文件修改
[root@zabbix.com php-fpm.d]# vim www.conf 
[root@zabbix.com php-fpm.d]# egrep '^(user|group)' /etc/php-fpm.d/www.conf
user = nginx
group = nginx

1.4、禁用SElinux

#如果你的系统启用了 SELinux,它可能会阻止 nginx 访问这些文件。你可以暂时禁用 SELinux 来排除这个问题:
setenforce 0

#永久禁用 SELinux(如果需要):
vim /etc/selinux/config
# 将 SELINUX 设置为 disabled
SELINUX=disabled

1.5、启动

systemctl  enable --now nginx
systemctl start nginx

systemctl  enable --now php-fpm
systemctl start php-fpm

ps -ef | grep nginx

2、部署数据库

2.1、配置maraidb yum源

[root@zabbix.com ~]# cat /etc/yum.repos.d/mariadb.repo 
[mariadb]
name = MariaDB
baseurl = http://mirrors.aliyun.com/mariadb/yum/10.5/centos7-amd64/
gpgkey = http://mirrors.aliyun.com/mariadb/yum/RPM-GPG-KEY-MariaDB
gpgcheck = 1
enabled=1

#yum install -y  mariadb-server

[root@zabbix.com ~]# rpm -qa |grep -i mariadb
MariaDB-client-10.5.26-1.el7.centos.x86_64
MariaDB-common-10.5.26-1.el7.centos.x86_64
MariaDB-server-10.5.26-1.el7.centos.x86_64
MariaDB-compat-10.5.26-1.el7.centos.x86_64

2.2、启动

systemctl enable mariadb
systemctl start mariadb

2.3、基本配置

#数据库初始化
mysql_secure_installation      --仅1次。
 
 Enter current password for root (enter for none): 
回车
 Switch to unix_socket authentication [Y/n]  #输入n
 Change the root password? [Y/n]  #输入n 不设置root密码
 Remove anonymous users? [Y/n]   #输入Y
 Disallow root login remotely? [Y/n]   #输入Y
 Remove test database and access to it? [Y/n]  #输入Y
 Reload privilege tables now? [Y/n]  #输入Y
 
 Thanks for using MariaDB! 表示完成

2.4、创建库,创建用户

#1. 创建数据库要指定字符集
mysql -uroot -p
create database zabbix charset utf8 collate utf8_bin;

#2. 创建zabbix用户
grant all on zabbix.* to 'zabbix'@'localhost' identified by 'zabbix'; 

#如果数据库与zbx,php不在一起
#grant all on zabbix.* to 'zabbix'@'172.16.1.%' identified by 'zabbix' ;#设置一个网段

MariaDB [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| zabbix             |
+--------------------+
4 rows in set (0.001 sec)
##sql文件在源代码中.     我这里要自己的包
tar xf zabbix-6.0.14.tar.gz
    
cd zabbix-6.0.14/database/mysql/
    
[root@zabbix.com mysql]# ll
total 20072
-rw-r--r--. 1 1000 1000 18376626 Jan 27 16:24 data.sql
-rw-r--r--. 1 1000 1000  1978341 Jan 24 21:00 images.sql
-rw-r--r--. 1 1000 1000      573 Jan 27 16:24 Makefile.am
-rw-r--r--. 1 1000 1000    22972 Jan 27 16:24 Makefile.in
drwxr-xr-x. 2 1000 1000       92 Jan 27 16:24 option-patches
-rw-r--r--. 1 1000 1000   166646 Jan 27 16:24 schema.sql
[root@zabbix.com mysql]# 
          
mysql zabbix <schema.sql
mysql zabbix <images.sql
mysql zabbix <data.sql

    
MariaDB [(none)]> show tables from zabbix;
173 rows in set (0.002 sec)

四、编译安装zabbix-server

1. 安装依赖(软件包中已经包含)
yum install -y mysql-devel pcre-devel openssl-devel zlib-devel libxml2-devel net-snmp-devel   net-snmp libssh2-devel OpenIPMI-devel libevent-devel openldap-devel   libcurl-devel

2. 进行配置
在源代码目录并且ls 可以看见configure文件
#--sysconfdir 指定配置文件目录
#--enable-server 服务端
./configure --sysconfdir=/etc/zabbix/ --enable-server --with-mysql --with-net-snmp --with-libxml2 --with-ssh2 --with-openipmi --with-zlib --with-libpthread --with-libevent --with-openssl --with-ldap --with-libcurl --with-libpcre

3. 根据提示执行make install 
make install 
4. 检查是否成功
[root@m03-zabbix-server-lidao996 ~/zabbix-6.0.5]# 
echo $?
0

[root@zabbix.com zabbix-6.0.38]# zabbix_server --version
zabbix_server (Zabbix) 6.0.38

1、修改zbx服务端配置文件(DB相关)

vim /etc/zabbix/zabbix_server.conf
[root@zabbix.com zabbix-6.0.38]# egrep  -v '^$|#' /etc/zabbix/zabbix_server.conf
LogFile=/tmp/zabbix_server.log      
DBName=zabbix
DBUser=zabbix
Timeout=4
LogSlowQueries=3000
StatsAllowedIP=127.0.0.1

修改
LogFile=/var/log/zabbix/zabbix_server.log
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=zabbix

mkdir -p /var/log/zabbix/
useradd -s /sbin/nologin -M zabbix
chown -R zabbix.zabbix /var/log/zabbix

#启动zbx服务端
zabbix_server 
#检查端口
ss -lntup|grep 10051
#检查进程
ps -ef |grep zabbix

2、书写systemctl 配置文件

vim /usr/lib/systemd/system/zabbix-server.service

[Unit]
Description=Zabbix Server with MySQL DB
After=syslog.target network.target 
[Service]
Type=simple
ExecStart=/usr/local/sbin/zabbix_server -f
User=zabbix
[Install]
WantedBy=multi-user.target


#加载配置文件
systemctl daemon-reload
#关闭手动启动的zbx server
pkill zabbix_server
#检查是否关闭成功
ps -ef |grep zabbix
#启动与检查	
systemctl enable zabbix-server
systemctl start zabbix-server
systemctl status zabbix-server

3、部署前端代码代码进行访问

[root@zabbix.com zabbix-6.0.38]# cp -r ui/* /app/code/zbx/
chown -R nginx.nginx /app/code/zbx/

修改php.ini

vim /etc/php.ini

/etc/php.ini:388:max_execution_time = 300
/etc/php.ini:398:max_input_time = 600
/etc/php.ini:694:post_max_size = 80M
重启php
systemctl restart php-fpm

用户密码登陆
Admin
zabbix

五、安装客户端、

1.配置zbx源

rpm -ivh https://repo.zabbix.com/zabbix/6.0/rhel/7/x86_64/zabbix-release-6.0-4.el7.noarch.rpm

yum clean all
yum makecache

2.安装客户端

yum install -y zabbix-agent2

3.配置客户端

vim /etc/zabbix/zabbix_agent2.conf

PidFile=/var/run/zabbix/zabbix_agent2.pid
LogFile=/var/log/zabbix/zabbix_agent2.log
LogFileSize=0
Server=127.0.0.1
ServerActive=127.0.0.1
Hostname=Zabbix server
Include=/etc/zabbix/zabbix_agent2.d/*.conf
ControlSocket=/tmp/agent.sock
Include=./zabbix_agent2.d/plugins.d/*.conf

4.启动

systemctl enable zabbix-agent2.service
systemctl start zabbix-agent2.service

ps -ef |grep agent2
ss -lntup |grep agent2

六、服务的配置

文件和目录
/etc/zabbix/zabbix_server.conf                  配置文件
/var/log/zabbix/zabbix_server.log               当前放在/tmp/下面
/usr/lib/systemd/system/zabbix-server.service   手写的systemctl管理文件
                                                如果yum、rpm安装自带
                                                  
/usr/local/share/zabbix/alertscripts/           用于实现告警的脚本。
[root@xiaozbx conf]# grep '^[a-Z]'   /etc/zabbix/zabbix_server.conf
/etc/zabbix/zabbix_server.conf:LogFile=/var/log/zabbix/zabbix_server.log
/etc/zabbix/zabbix_server.conf:DBName=zabbix
/etc/zabbix/zabbix_server.conf:DBUser=zabbix
/etc/zabbix/zabbix_server.conf:DBPassword=zabbix
/etc/zabbix/zabbix_server.conf:Timeout=4
/etc/zabbix/zabbix_server.conf:LogSlowQueries=3000
/etc/zabbix/zabbix_server.conf:StatsAllowedIP=127.0.0.1

#zbx服务端配置文件详解                           #说明
ListenPort=10051                               服务端端口
LogFile=/var/log/zabbix/zabbix_server.log      日志文件
DBHost=localhost                               数据库地址
DBName=zabbix                                  数据库名字
DBUser=zabbix                                  数据库用户名
DBPassword=zabbix                              数据密码
Timeout=4                                      超时时间

七、客户端配置

/etc/zabbix/zabbix_agent2.conf          配置文件
/etc/zabbix/zabbix_agent2.d/            子配置文件目录,用于自定义监控。
/var/log/zabbix                         日志

八、监控任意主机流程

配置客户端

1. 安装
rpm -ivh https://repo.zabbix.com/zabbix/6.0/rhel/7/x86_64/zabbix-release-6.0-4.el7.noarch.rpm

yum install -y zabbix-agent2

2. 配置
vim /etc/zabbix/zabbix_agent2.conf
sed  -i 's#Server=127.0.0.1#Server=172.16.1.63#g' /etc/zabbix/zabbix_agent2.conf

3. 启动
systemctl enable zabbix-agent2
systemctl start zabbix-agent2
systemctl restart zabbix-agent2

web页面添加主机

填写主机信息

​​​​​​​

#####待续

### Zabbix 监控系统的使用与配置 #### 自定义监控及模板 Zabbix 提供了强大的自定义功能,允许用户创建特定于业务需求的监控项和模板。通过这些自定义设置,可以实现对各种硬件设备、软件应用程序和服务状态的有效监测[^1]。 #### 安装与启动服务 为了使 Zabbix 正常运行,在完成初始安装之后需要启用并启动几个关键的服务组件,比如 `zabbix-server` 和 `zabbix-agent` 。可以通过命令行工具如 systemd 来管理这些服务的状态。例如,下面展示了如何激活必要的服务并将它们设为开机自启: ```bash systemctl enable zabbix-server zabbix-agent httpd rh-php72-php-fpm ``` 随后可通过浏览器访问指定 IP 地址下的 `/zabbix` 虚拟目录进入图形化安装向导页面,如下所示: 192.168.105.70/zabbix 这一步骤对于初次部署非常重要[^2]。 #### 主动模式配置 当涉及到远程节点或者网络环境复杂的情况下,“主动”模式成为一种优选方案因为它减少了防火墙规则设定上的麻烦。具体操作上就是修改 agent 的配置文件使其仅响应来自预定义服务器地址发起的数据请求而不是等待被动连接尝试。这里给出了一段典型场景下 web2 设备切换到完全主动模式的例子: 编辑路径位于 `/etc/zabbix/zabbix_agentd.conf` 文件中的几处重要参数: ```bash ServerActive=192.168.88.5 RefreshActiveChecks=120 StartAgents=0 ``` 接着重新加载服务以应用更改,并验证端口监听情况确认转换成功与否[^3]: ```bash systemctl restart zabbix-agent.service ss -tlnp | grep :10050 ``` 如果一切正常的话原本开放给外部联系使用的 TCP/UDP 10050 将不再可见表明进入了纯粹主动汇报的工作方式之下。 #### 扩展特性支持 除了基础架构层面之外,Zabbix 还能够很好地与其他可视化平台集成在一起提供更加直观丰富的展示效果;另外针对大规模生产环境中常见的高可用性和负载均衡等问题也有对应的解决方案可供选用. ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值