Zabbix 安装部署

目录

一、Zabbix 简介

用途:开源的分布式监控系统,用于监控服务器、网络设备、应用程序等。

特点:

提问:主动模式和被动模式有什么区别?

Zabbix 架构组件:

二、Zabbix 安装部署

1、MySQL8.0.30 部署

2、nginx 部署 

3、php 部署

4、zabbix-server 部署 

5、web端初始化

三、解决中文乱码问题:


一、Zabbix 简介

用途开源的分布式监控系统用于监控服务器、网络设备、应用程序等

特点:

(1)支持主动/被动监控模式

(2)提供实时告警、可视化图标、自动发现等功能

(3)支持 SNMP、JMX、IPMI、HTTP等多种协议

提问:主动模式和被动模式有什么区别?

主动检测: 相对于agent而言; agent(active),agent向server请求与自己相关监控项配置, 主动地将server配置的监控项相关的数据发送给server;主动监控能极大节约监控server的资源。

被动检测:相对于agent而言 ; agent, server向agent请求获取配置的各监控项相关的数据;agent接收请求、获取数据并响应给server

Zabbix 架构组件

Zabbix Server(服务器):核心组件,管理所有监控任务,负责处理监控数据、触发警报、执行自动化任务等。它接收来自 Zabbix Agent 和 Zabbix Proxy 的数据,并将监控数据存储到 Zabbix Database 中,还提供 Web 前端接口,方便用户查看监控数据和配置监控项 。

Zabbix Agent(代理):安装在被监控的主机上,负责收集主机的性能数据,如 CPU 使用率、内存使用率、磁盘空间等。它支持主动和被动两种模式:

主动模式:主动周期性地向 Zabbix Server 或 Zabbix Proxy 发送收集到的数据。

被动模式:接收来自 Zabbix Server 的请求,并根据请求返回相应的监控数据。

Zabbix Proxy(代理):分布式监控环境中的可选组件,可代替 Zabbix Server 收集数据,将数据汇总后发送给 Zabbix Server。在监控大量主机时,能够有效减轻 Zabbix Server 的负载,还适用于网络隔离等无法直接与 Zabbix Server 通信的环境 。

Zabbix Database(数据库):用于存储所有的监控数据、配置信息、历史数据等,支持 MySQL、PostgreSQL、Oracle 等多种数据库。数据库的性能和容量对 Zabbix 的整体性能影响较大 。

Zabbix Web Interface(Web 界面):基于 Web 的用户界面,用户可通过浏览器访问,用于配置监控项、查看监控数据、管理警报等。同时提供丰富的图表和报表功能,以帮助用户分析和可视化监控数据,还具备配置管理、用户管理、权限管理等功能。

二、Zabbix 安装部署

本实验是在 关闭系统防火墙的 情况下进行:

1、MySQL8.0.30 部署

[root@zabbix-40 ~]# cd /usr/local/src/
[root@zabbix-40 /usr/local/src]# wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.30-1.el7.x86_64.rpm-bundle.tar

[root@zabbix-40 /usr/local/src]# tar -xf mysql-8.0.30-1.el7.x86_64.rpm-bundle.tar
# 忽略依赖检查强制安装,因为捆绑包里已经带依赖了,所以只要全部安装就可以,检查的话分先后顺序很麻烦的
[root@zabbix-40 /usr/local/src]# sudo rpm -ivh mysql-community-*  --force --nodeps
#创建数据存储目录
[root@zabbix-40 ~]# mkdir -p /data/mysql
[root@zabbix-40 ~]# chown mysql:mysql /data/mysql

#修改配置文件
[root@zabbix-40 ~]# vim /etc/my.cnf
[mysqld]
datadir=/data/mysql
socket=/var/lib/mysql/mysql.sock

log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
character-set-server=utf8mb4
collation-server=utf8mb4_general_ci
port=3306
lower_case_table_names=1
max_connections=500

#启动数据库
[root@zabbix-40 ~]# systemctl enable mysqld
[root@zabbix-40 ~]# systemctl start mysqld
#启动失败的话可以查看日志 /var/log/mysqld.log

#获取密码登录MySQL
[root@zabbix-40 /data]# awk '/password/ {print $NF}' /var/log/mysqld.log 
z-Tp1q+/8J.7
[root@zabbix-40 /data]# mysql -uroot -p'z-Tp1q+/8J.7'
mysql> alter user 'root'@'localhost' identified by '@MySQL123';
mysql> grant all privileges on zabbix.* to 'zabbix'@'localhost';
mysql> flush privileges;

2、nginx 部署 

[root@zabbix-40 ~]# rpm -Uvh http://nginx.org/packages/centos/7/x86_64/RPMS/nginx-1.20.0-1.el7.ngx.x86_64.rpm

[root@zabbix-40 ~]# mkdir /data/web
[root@zabbix-40 ~]# vim /etc/nginx/conf.d/haha.conf
  server {
      listen       80;
      server_name  localhost;
      root         /data/web;
      location / {
        index  index.php index.html index.htm;
      }
      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;
      }
    }
 #启动nginx
[root@zabbix-40 ~]# systemctl  enable nginx 
[root@zabbix-40 ~]# systemctl  start nginx 

#验证端口(能看到nginx的 80 端口开始监听了)
[root@zabbix-40 ~]# netstat -ntlp
Proto Recv-Q  Send-Q   Local Address   Foreign Address      State        PID/Program name
tcp    0       0       0.0.0.0:80      0.0.0.0:*            LISTEN      2507/nginx: master  

3、php 部署

[root@zabbix-40 ~]# curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
[root@zabbix-40 ~]# yum -y install epel-release
[root@zabbix-40 ~]# curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
[root@zabbix-40 ~]# rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
#webtatic源,一个web服务的源
#安装php7及其它依赖软件
[root@zabbix-40 ~]# yum -y install gcc gcc-c++ php72w-cli php72w-fpm php72w-gd php72w-mbstring php72w-bcmath php72w-xml php72w-ldap php72w-mysqlnd
[root@zabbix-40 ~]# vim /etc/php.ini 
368:max_execution_time = 300
378:max_input_time = 300
656:post_max_size = 16M
[root@zabbix-40 ~]# cd /data/web/
[root@zabbix-40 ~]# vim index.php   #创建php测试页面,这一步可以省略
<?php
phpinfo();
?>
[root@zabbix-40 ~]# systemctl  enable php-fpm
[root@zabbix-40 ~]# systemctl  start php-fpm

#验证端口(能看到php的 9000 端口开始监听了)
[root@zabbix-40 ~]# netstat -ntlp
Proto Recv-Q  Send-Q   Local Address      Foreign Address      State        PID/Program name
tcp    0      0        127.0.0.1:9000       0.0.0.0:*          LISTEN      8450/php-fpm: maste

4、zabbix-server 部署 

#创建用户
[root@zabbix-40 ~]# groupadd zabbix
[root@zabbix-40 ~]# useradd -g zabbix -M -s /sbin/nologin zabbix
#下载安装
[root@zabbix-40 ~]# cd /usr/local/src
[root@zabbix-40 /usr/local/src]# wget https://cdn.zabbix.com/zabbix/sources/stable/6.0/zabbix-6.0.1.tar.gz
[root@zabbix-40 /usr/local/src]# tar -xf zabbix-6.0.1.tar.gz
[root@zabbix-40 /usr/local/src]# cd zabbix-6.0.1/
#安装依赖
[root@zabbix-40 /usr/local/src/zabbix-6.0.1]# yum -y install  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
#编译安装
[root@zabbix-40 /usr/local/src/zabbix-6.0.1]# ./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
[root@zabbix-40 /usr/local/src/zabbix-6.0.1]# make && make install

[root@zabbix-40 ~]# vim /etc/zabbix/zabbix_server.conf
比如12行:ListenPort=10051
38:LogFile=/tmp/zabbix_server.log
87:DBHost=localhost
99:DBName=zabbix
115:DBUser=zabbix
123:DBPassword=123123
507:Timeout=4
593:LogSlowQueries=3000
708:StatsAllowedIP=127.0.0.1

#向数据库中导入zabbix的库表及数据(注意导入的顺序)
[root@zabbix-40 ~]# mysql -uzabbix -p@Mysql123 zabbix < /usr/local/src/zabbix-6.0.1/database/mysql/schema.sql
[root@zabbix-40 ~]# mysql -uzabbix -p@Mysql123 zabbix < /usr/local/src/zabbix-6.0.1/database/mysql/images.sql
[root@zabbix-40 ~]# mysql -uzabbix -p@Mysql123 zabbix < /usr/local/src/zabbix-6.0.1/database/mysql/data.sql
#如果上面那种方法经常出现报错,不妨进入到MySQL里面再进行导入
[root@zabbix-40 ~]# mysql -uzabbix -p@Mysql123
mysql> SOURCE /usr/local/src/zabbix-6.0.1/database/mysql/schema.sql;
mysql> SOURCE /usr/local/src/zabbix-6.0.1/database/mysql/images.sql;
mysql> SOURCE /usr/local/src/zabbix-6.0.1/database/mysql/data.sql;


#移动zabbix前端页面到网站根目录
[root@zabbix-40 ~]# cp -rp /usr/local/src/zabbix-6.0.1/ui/* /data/web/
cp:是否覆盖"/data/web/index.php"? y

#配置zabbix系统启停命令(注意这个文件是新增的)
[root@zabbix-40 ~]# vim /usr/lib/systemd/system/zabbix-server.service
[Unit]
Description=Zabbix Server with MySQL DB
After=syslog.target network.target mysqld.service
[Service]
Type=simple
ExecStart=/usr/local/sbin/zabbix_server -f
User=zabbix
[Install]
WantedBy=multi-user.target

#重新加载system文件
[root@zabbix-40 ~]# systemctl daemon-reload
[root@zabbix-40 ~]# systemctl enable zabbix-server
Created symlink from /etc/systemd/system/multi-user.target.wants/zabbix-server.service to /usr/lib/systemd/system/zabbix.service.
[root@zabbix-40 ~]# systemctl start zabbix-server

5、web端初始化

下面这一步是需要根据提示 下载配置文件,然后上传到 /data/web/conf 目录,才能完成安装

三、解决中文乱码问题:

可以将Windows 下的C盘 :/Windows/Fonts 路径下的任一字体的 ttf 文件复制到 Linux 下的 /data/web/assets/fonts 目录 


[root@zabbix-40 ~]# cd /data/web/assets/fonts

[root@zabbix-40 fonts]# ll
总用量 740
-rw-r--r-- 1 test test 756072 2月  28 2022 DejaVuSans.ttf
#ttf 文件复制到 Linux 下的 /data/web/assets/fonts 目录 
-rw-r--r-- 1 test test   756072 2月  28 2022 DejaVuSans.ttf
-rw-r--r-- 1 root root 11787328 3月   7 16:57 simkai.ttf
[root@zabbix-40 fonts]# mv DejaVuSans.ttf{,.bak}
[root@zabbix-40 fonts]# mv simkai.ttf DejaVuSans.ttf

最后效果: 

### 使用 Zabbix 监控服务器状态的方法与配置 #### 1. **Zabbix 的基本架构** Zabbix 是一种开源的企业级分布式监控解决方案,其核心组件包括 Zabbix Server 和 Zabbix Agent。Zabbix Server 负责集中管理所有的监控数据并提供 Web 接口以便用户查看和分析;而 Zabbix Agent 则安装在目标服务器上,负责采集本地系统的各种性能指标并将它们发送回 Zabbix Server[^1]。 #### 2. **Zabbix Agent 配置过程** ##### 初始化设置 首先需要将 Zabbix Agent 的启动脚本复制到 `/etc/init.d/` 下面,并赋予可执行权限: ```bash [root@xuegod63 zabbix-2.0.8]# cp /root/zabbix-2.0.8/misc/init.d/fedora/core/zabbix_agentd /etc/init.d/ ``` 之后可以通过如下命令重新加载服务或者直接重启该服务使其生效[^3]: ```bash /etc/init.d/zabbix_agentd restart ``` #### 3. **Zabbix 对 Nginx 状态的监控** 对于像 Nginx 这样的 web 服务程序来说,我们通常会借助 `stub_status` 模块来获取当前连接数等相关统计信息。具体步骤如下所示: - 编辑 nginx.conf 文件启用 stub_status 功能。 - 设置防火墙允许外部访问指定端口上的 URI 地址(比如默认的是 `/ngx_status`)。 - 测试能否正常返回预期的结果集: ```bash curl http://127.0.0.1/ngx_status Active connections: 1 server accepts handled requests 16214 16214 8269 Reading: 0 Writing: 1 Waiting: 0 ``` 最后一步就是把这些数值导入至 Zabbix 中进行长期记录与报警处理了[^4]。 #### 4. **扩展:硬件层面的深入检测——RAID 卡状态为例** 某些情况下仅依靠软件层面上的信息可能不足以满足实际运维工作的全部需求,因此还需要引入额外手段去捕获更底层的一些细节。下面给出了一种针对戴尔品牌设备风扇运转状况判断健康的自定义参数例子: ```bash UserParameter=hardware_fan_health,awk -v hardware_fan_number=`omreport chassis fans|grep -c "^Index"` \ -v hardware_fan=`omreport chassis fans|awk '/^Status/{if($NF=="Ok") count+=1}END{print count}'` \ 'BEGIN{if(hardware_fan_number==hardware_fan) {print 1} else {print 0}}' ``` 此 UserParameter 将会在每次触发时计算总共有多少个风扇处于良好工作状态下并与总数对比得出最终结论(即要么完全匹配输出‘1’代表一切正常; 否则就报错为‘0’) [^5]. --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值