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.socklog-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.confserver {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@manager ~]# cd /data/web/assets/fonts[root@manager 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@manager fonts]# mv DejaVuSans.ttf{,.bak}
[root@manager fonts]# mv simkai.ttf DejaVuSans.ttf
最后效果: