记录自己一次搭建Zabbix及微信报警过程

前言

2020/9/6 周日
接到领导任务,为期五天,大致就是在CentOS7服务器上部署一个Zabbix服务器,用了监控几个IP是否能够ping通,一旦网络异常就回报给监管者。
对于这个了解确实较少,尝试开一篇日志记录自己的操作流程,可能是只记录正确步骤,也可能会记录错误步骤然后加以修改总结,全看心情。说不准半途而废,写两天就结束了,也有可能存在问题实在无法进行下去,走一步是一步吧。

第一天

2020/9/7 周一
还没拿到虚拟机,首先分析一下,我们需要做的。由于是新系统,在拿到手后要先将各种配置优化好,例如网络信息等。然后是zabbix的安装部署,实现报警。最后连接到微信公众号或者企业微信,因为我司没有企业微信,只能微信公众号。
十点多,终于收到服务器和密码了,先配置本地yum源。
第一部分 系统优化
一、使用ISO搭建本地yum源
1.创建挂载路径

mkdir -p /mnt/iso

2.创建挂载点

mount -o loop -t iso9660 CentOS-7-x86_64-Everything-1810.iso /mnt/iso

然后提示:
mount: /dev/loop0 is write-protected, mounting read-only.
3.修改repo文件

cd /etc/yum.repos.d/
mkdir bak
mv CentOS* bak/
vi /etc/yum.repos.d/CentOS-Media.repo

编辑CentOS-Media.repo文件

[c7-media]
name=CentOS-$releasever - Media
baseurl=file:///mnt/iso/
gpgcheck=1
enable=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

4.清除cache

yum clean all

提示:
Loaded plugins: fastestmirror
Cleaning repos: c7-media
5.验证

yum repolist

能够安装
二、备份
这一步应该先做的,给忘了
1.备份

cd /
tar -zcvpf centos7.tgz --exclude=/proc --exclude=/lost+found --exclude=/mnt --exclude=/sys --exclude=centos7.tgz /

时间较长,耐心等待
2.恢复

tar -zxvpf centos7.tgz -C /

三、网络信息配置
1.安装net-tools
使用ifconfig无用,需要先安装net-tools

yum -y install net-tools

这样就可以使用ifconfig了,不安装的话可以使用ip addr
2.编写配置文件
为了方便编写配置文件,先安装vim,或者用linux自带的vi也可以

yum -y install vim

通过ifconfig确定要修改的网卡名,这里为eth0

vim /etc/sysconfig/network-scripts/ifcfg-eth0

编辑此网卡配置文件

TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=eth0
UUID=812b73cb-0bee-4a6f-816d-170e52216513
DEVICE=eth0
ONBOOT=yes
IPADDR=172.16.3.98
PREFIX=24
NETMASK=255.255.255.0
GATEWAY=172.16.3.1
DNS1=8.8.8.8

3.重启网络

service network restart

四、关闭selinux、防火墙、iptables
1.关闭防火墙
临时关闭防火墙

systemctl stop firewalld

永久防火墙开机自关闭

systemctl disable firewalld

临时打开防火墙

systemctl start firewalld

防火墙开机启动

systemctl enable firewalld

2.关闭selinux
临时关闭SELinux

setenforce 0

临时打开SELinux

setenforce 1

查看SELinux状态

getenforce

开机关闭SELinux
编辑/etc/selinux/config文件,将SELINUX的值设置为disabled
五、去除系统及内核版本登录前的屏幕显示

>/etc/issue
>/etc/redhat-release

六、锁定关键文件系统

chattr +i /etc/passwd
chattr +i /etc/inittab
chattr +i /etc/group
chattr +i /etc/shadow
chattr +i /etc/gshadow
lsattr +i /etc/passwd 1>>~/install.ok 2>>install.bug
lsattr +i /etc/inittab 1>>~/install.ok 2>>install.bug
lsattr +i /etc/group 1>>~/install.ok 2>>install.bug
lsattr +i /etc/shadow 1>>~/install.ok 2>>install.bug
lsattr +i /etc/gshadow 1>>~/install.ok 2>>install.bug

使用chattr命令后,为了安全我们需要将其改名

mv /usr/bin/chattr /usr/bin/改的名字

七、时间同步

yum install -y ntpdate  
ntpdate ntp1.aliyun.com 

八、定时自动清理 cat /var/spool/postfix/maildrop/目录垃圾文件(直接抄的)
centos7默认安装了postfix邮件服务,因此邮件位置 /var/spool/postfix/maildrop/会存在垃圾文件,如果长时间不清理,会导致inode数量不够用,从而无法存放文件

mkdir /server/scripts -p
vi /server/scripts/spool_clean.sh

编辑文档

find /var/spool/clientmqueue/-typef -mtime +30|xargsrm-f

然后将其加入到crontab定时任务中

echo '*/30 * * * * /bin/sh /server/scripts/spool_clean.sh >/dev/null 2>&1' >> /var/spool/cron/root

九、调整文件描述符大小(直接抄的)
文件描述符是由无符号整数表示的句柄,进程使用它来标识打开的文件。文件描述符与包括相关信息(文件的打开模式,文件的位置类型,文件的出始类型等)的文件对象相关联,这些信息被称作文件的上下文。文件描述符的有效范围是0到OPEN_MAX
对于内核而言,所有打开的文件都是通过文件描述符引用的,当打开一个现有文件或创建一个新文件时,内核向进程返回一个文件描述符。当读或写一个文件时,使用open或create返回的文件描述符标识该文件,并将其作为参数传递给read或write。
可通过ulimit -a查看当前设置
ulimit -n 1024 默认打开的文件描述符就是1024
对于高并发业务来讲,默认值肯定不够

vim /etc/security/limits.conf

65535是最大支持的文件描述符

root soft nofile 65535
root hard nofile 65535

可以使用下面一行来替代上面

* - nofile 65535

第二天

2020/9/8 周二
这天可以不用看!!!!!!!!!!!!!
今天打算安装部署好zabbix。
一、安装部署zabbix
1.安装zabbix源、aliyun YUM源

curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo
curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo
rpm -ivh http://repo.zabbix.com/zabbix/3.0/rhel/7/x86_64/zabbix-release-3.0-1.el7.noarch.rpm

2.安装zabbix服务程序及依赖组件

yum install -y zabbix-server-mysql zabbix-web-mysql  zabbix-agent httpd php mariadb-server
yum install net-snmp-devel libevent-devel -y

3.添加组和用户

groupadd zabbix
useradd -r -g zabbix zabbix

操作时报错:groupadd: cannot open /etc/group
需要修改权限:

chattr -i /etc/gshadow
chattr -i /etc/shadow
chattr -i /etc/group
chattr -i /etc/passwd

4.启动服务
在启动服务的时候失败,然后就全崩了,尝试各种方法无果,只能恢复到备份,在修改网络信息后ssh连接不上,求助领导,明天再搞了

第三天

2020/9/9 周三
领导那终于搞好了,关闭selinux就好了,我恢复备份后忘掉selinux也重置了,今天跟着官方手册走一遍
1.打开官网www.zabbix.com
目前没有5.0的中文文档,所以语言选择英文
进入5.0的官方文档,选择4.Installation->4.Installation from packages->1.Red Hat Enterprise Linux/CentOS中的CentOS7的Download
或者在首页右上角直接点击download
在Choose your platform正确选择5.0 LTS->CentOS->7->MySQL->Apache
2.安装仓库

rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
yum clean all

3.修改源
源来自阿里云开源镜像站https://developer.aliyun.com/mirror/
打开zabbix官方文档

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

将文档里所有镜像源的路径(http://repo.zabbix.com/)修改为https://mirrors.aliyun.com/zabbix/
末行命令下执行

%s@http://repo.zabbix.com/@http://mirrors.aliyun.com/zabbix/

完成后保存退出

yum clean all

4.安装Zabbix server

yum install -y zabbix-server-mysql

5.安装Zabbix前端

yum install -y centos-release-scl

编辑配置文件

vim /etc/yum.repos.d/zabbix.repo
[zabbix-frontend]
...
enabled=1
...

安装前端包

yum install -y zabbix-web-mysql-scl zabbix-apache-conf-scl

6.安装配置mysql
到mysql的官网https://dev.mysql.com/
https://downloads.mysql.com/archives/community/
选择Archives,版本选择5.7.30,系统选择Linux - Generic,版本选择64位
下载Compressed TAR Archive
这边可以下载了解压过去,也可以复制下载的链接到linux里下载
可以使用wget或者curl
wget要下载

yum install -y wget
cd /tmp/
wget  https://cdn.mysql.com/archives/mysql-5.7/mysql-5.7.30-linux-glibc2.12-x86_64.tar.gz

解压mysql

tar -zxvf mysql-5.7.30-linux-glibc2.12-x86_64.tar.gz

安装libaio

yum install -y libaio

配置mysql,到imysql.cn,点击MY.CNF生成工具,根据需求填写,我的my.cnf文件内容是:

[client]
port= 3306
socket= /data/mysql/mysql.sock

[mysql]
prompt="\u@mysqldb \R:\m:\s [\d]> "
no-auto-rehash

[mysqld]
user= mysql
port= 3306
basedir= /usr/local/mysql
datadir= /data/mysql
socket= /data/mysql/mysql.sock
pid-file = mysqldb.pid
character-set-server = utf8mb4
skip_name_resolve = 1

#若你的MySQL数据库主要运行在境外,请务必根据实际情况调整本参数
default_time_zone = "+8:00"

open_files_limit    = 65535
back_log = 1024
max_connections = 512
max_connect_errors = 1000000
table_open_cache = 1024
table_definition_cache = 1024
table_open_cache_instances = 64
thread_stack = 512K
external-locking = FALSE
max_allowed_packet = 32M
sort_buffer_size = 4M
join_buffer_size = 4M
thread_cache_size = 768
interactive_timeout = 600
wait_timeout = 600
tmp_table_size = 32M
max_heap_table_size = 32M
slow_query_log = 1
log_timestamps = SYSTEM
slow_query_log_file = /data/mysql/slow.log
log-error = /data/mysql/error.log
long_query_time = 0.1
log_queries_not_using_indexes =1
log_throttle_queries_not_using_indexes = 60
min_examined_row_limit = 100
log_slow_admin_statements = 1
log_slow_slave_statements = 1
server-id = 3306
log-bin = /data/mysql/mybinlog
sync_binlog = 1
binlog_cache_size = 4M
max_binlog_cache_size = 2G
max_binlog_size = 1G

#注意:MySQL 8.0开始,binlog_expire_logs_seconds选项也存在的话,会忽略expire_logs_days选项
expire_logs_days = 7

master_info_repository = TABLE
relay_log_info_repository = TABLE
gtid_mode = on
enforce_gtid_consistency = 1
log_slave_updates
slave-rows-search-algorithms = 'INDEX_SCAN,HASH_SCAN'
binlog_format = row
binlog_checksum = 1
relay_log_recovery = 1
relay-log-purge = 1
key_buffer_size = 15M
read_buffer_size = 8M
read_rnd_buffer_size = 4M
bulk_insert_buffer_size = 64M
myisam_sort_buffer_size = 128M
myisam_max_sort_file_size = 10G
myisam_repair_threads = 1
lock_wait_timeout = 3600
explicit_defaults_for_timestamp = 1
innodb_thread_concurrency = 0
innodb_sync_spin_loops = 100
innodb_spin_wait_delay = 30

transaction_isolation = REPEATABLE-READ
#innodb_additional_mem_pool_size = 16M
innodb_buffer_pool_size = 502M
innodb_buffer_pool_instances = 4
innodb_buffer_pool_load_at_startup = 1
innodb_buffer_pool_dump_at_shutdown = 1
innodb_data_file_path = ibdata1:1G:autoextend
innodb_flush_log_at_trx_commit = 1
innodb_log_buffer_size = 32M
innodb_log_file_size = 2G
innodb_log_files_in_group = 2
innodb_max_undo_log_size = 4G
innodb_undo_directory = /data/mysql/undolog
innodb_undo_tablespaces = 95

# 根据您的服务器IOPS能力适当调整
# 一般配普通SSD盘的话,可以调整到 10000 - 20000
# 配置高端PCIe SSD卡的话,则可以调整的更高,比如 50000 - 80000
innodb_io_capacity = 4000
innodb_io_capacity_max = 8000
innodb_flush_sync = 0
innodb_flush_neighbors = 0
innodb_write_io_threads = 8
innodb_read_io_threads = 8
innodb_purge_threads = 4
innodb_page_cleaners = 4
innodb_open_files = 65535
innodb_max_dirty_pages_pct = 50
innodb_flush_method = O_DIRECT
innodb_lru_scan_depth = 4000
innodb_checksum_algorithm = crc32
innodb_lock_wait_timeout = 10
innodb_rollback_on_timeout = 1
innodb_print_all_deadlocks = 1
innodb_file_per_table = 1
innodb_online_alter_log_max_size = 4G
innodb_stats_on_metadata = 0
innodb_undo_log_truncate = 1

# some var for MySQL 5.7
innodb_checksums = 1
#innodb_file_format = Barracuda
#innodb_file_format_max = Barracuda
query_cache_size = 0
query_cache_type = 0
innodb_undo_logs = 128

#注意:MySQL 8.0.16开始删除该选项
internal_tmp_disk_storage_engine = InnoDB

innodb_status_file = 1
#注意: 开启 innodb_status_output & innodb_status_output_locks 后, 可能会导致log-error文件增长较快
innodb_status_output = 0
innodb_status_output_locks = 0

#performance_schema
performance_schema = 1
performance_schema_instrument = '%memory%=on'
performance_schema_instrument = '%lock%=on'

#innodb monitor
innodb_monitor_enable="module_innodb"
innodb_monitor_enable="module_server"
innodb_monitor_enable="module_dml"
innodb_monitor_enable="module_ddl"
innodb_monitor_enable="module_trx"
innodb_monitor_enable="module_os"
innodb_monitor_enable="module_purge"
innodb_monitor_enable="module_log"
innodb_monitor_enable="module_lock"
innodb_monitor_enable="module_buffer"
innodb_monitor_enable="module_index"
innodb_monitor_enable="module_ibuf_system"
innodb_monitor_enable="module_buffer_page"
innodb_monitor_enable="module_adaptive_hash"

[mysqldump]
quick
max_allowed_packet = 32M

将生成的内容覆盖进去

vi /etc/my.cnf

增加mysql组、用户

groupadd mysql
useradd -r -g mysql -s /bin/false mysql

移动

mkdir /usr/local/mysql -p
mkdir /data/mysql -p
mv /tmp/mysql-5.7/mysql-5.7.30-linux-glibc2.12-x86_64 /usr/local/mysql

改变属主,给予权限

chown -R mysql.mysql /usr/local/mysql /data/mysql

初始化

/usr/local/mysql/bin/mysqld --initialize --user=mysql

软链接,启动

ln -s /usr/local/mysql/support-files/mysql
ln -s /usr/local/mysql/support-files/mysql/mysql.server /etc/init.d/mysqld
service mysqld start
chkconfig mysqld on

配置环境变量

vim /etc/profile

文件末尾加上

export PATH=$PATH:/usr/local/mysql/bin
source /etc/profile

进入mysql

cat /data/mysql/error.log

寻找A temporary password is generated for root@localhost:后的为初始密码

mysql -uroot -p

修改密码

alter user ‘root’@‘localhost’ identified by ‘zabbix’;
flush privileges;

数据库操作
如果数据库和zabbix server不在一台服务器上,localhost这边需要指定zabbix server的ip地址

create database zabbix character set utf8 collate utf8_bin;
create user zabbix@localhost identified by 'zabbix';   
grant all privileges on zabbix.* to zabbix@localhost;
quit;

初始化zabbix库表,不加-h默认是localhost登录

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

7.编辑zabbxi server数据库

vim /etc/zabbix/zabbix_server.conf
DBName=zabbix
DBUser=zabbix
DBPassword=zabbix
DBPort=3306
DBHost=localhost    #前面用ip地址的话这边用ip地址
DBSocket=/data/mysql/mysql.sock

8.配置php,修改时区

vim /etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf
php_value[date.timezone] = Asia/Shanghai

9.启动zabbix server

systemctl restart zabbix-server httpd rh-php72-php-fpm
systemctl enable zabbix-server httpd rh-php72-php-fpm

10.访问zabbix前端
http://server_ip_or_name/zabbix
根据自己的配置填写,点击next step
Database port填写3306
zabbix初始用户密码为Admin、zabbix
在这里我存在了一些问题,这里写下问题和解决方法
主要是在Configure DB connection这一块的Database host那
①Database填写hocalhosst报错Error connecting to database: No such file or directory
因为当时配置文件里面DBHost写的是ip地址,且没选择DBSocket,将DBHost修改成回localhost

ss -nltp

发现10051端口不存在,检查后发现zabbix server已经开启了
查看日志cat/var/log/zabbix/zabbix_server.log,当时发现是socket没指定,上面的配置文件是修改后正确的
如果还不行可以尝试
修改php的ini,之后重新启动php-fpm

mysqli.default_socket = /data/mysql/mysql.sock

②is not allowed to connect tothis mmysql server

mysql -u root -p
update user set host = '%' where user ='root';
flush privileges;

③ERROR 1044 (42000): Access denied for user ‘zabbix’@’%’ to database ‘zabbix’

grant all privileges on zabbix.* to 'zabbix'@'%';

11.安装配置Zabbix agent

yum install -y zabbix-agent 

打开配置文件

vim /etc/zabbix/zabbix_agentd.conf

文档中需要修改如下,根据具体IP和配置修改

Server=127.0.0.1               
ServerActive=127.0.0.1
Hostname=Zabbix server

其中Server和ServerActive都指定Zabbix server的IP地址,不同的是,前者是被动后者是主动。
也就是说Server这个配置是用来允许127.0.0.1这个ip来我这取数据。
而ServerActive的127.0.0.1的意思是,客户端主动提交数据给他。
Hostname 待监控的服务器的名称(主动获取数据使用 后面页面配置主机的时候需要)
12.启动Zabbix-agent

systemctl enable zabbix-agent
systemctl start zabbix-agent

第四天

2020/9/10 周四
今天做zabbix配置和微信报警这方面的内容。
1.将zabbix修改为中文
进入zabbix网址选择User settings,language选择Chinese,我们会发现可能存在中文无法显示
需要从网上下载一个微软雅黑,或者C:\Windows\Fonts中选择微软雅黑,双击选择微软雅黑 常规,复制出来,msyh.ttc
将此文件上传至root下

cd /usr/share/zabbix/assets/fonts/

备份原字体文件

mv graphfont.ttf graphfont.ttf.bak

移动下载的字体文件

mv /root/msyh.ttc graphfont.ttf 

如果还存在字体缺失,是无法避免的了
2.创建主机、监控项、触发器等
这边简单带过了,直接看截图吧
点击配置->主机
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
这边基础操作而且各人需求不同,顺便一提
直接快进到微信报警
3.首先你需要到https://work.weixin.qq.com/注册一个企业微信,或者加入一个企业微信
点击我的企业,记住后面的企业ID,corpid
在这里插入图片描述
4.注册好后进入通讯录,可以像我一个创建一个子部门
在这里插入图片描述
点击运维旁边的三个点,记住这个部门ID:2
在这里插入图片描述
将需要收到报警通知的人放近运维部门中
4.选择应用管理,选择自建中的创建应用
在这里插入图片描述
填写应用名称等,可见范围选择运维部
在这里插入图片描述
进入Zabbix报警这个自建应用,记住AgentId:1000002和后面的Secret
测试一下是否能够群发消息,进入Zabbix报警这个自建应用中,选择发送消息,看看企业微信是否能收到
5.这一步不是必须的,只是用来了解
获取access_token
https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=ID&corpsecret=SECRET
用corpid和应用的secret把链接中的ID和SECRET替换了
得到
在这里插入图片描述
"access_token"后就是我们需要的
接口定义
https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=ACCESS_TOKEN
用获取的access_token替换掉链接中的ACCESS_TOKEN
得到
在这里插入图片描述
6.接着开始写脚本了

vim /etc/zabbix/zabbix_server.conf

修改

AlertScriptsPath=/usr/lib/zabbix/alertscripts
vim /usr/lib/zabbix/alertscripts/weixin.sh
#!/bin/bash
#Function:sendmessages to wechat app
#set variables
CropID='这边写你的企业ID'
Secret='这边写你的应用Sercet'
GURL="https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=$CropID&corpsecret=$Secret"
#get access_token
Gtoken=$(/usr/bin/curl -s -G $GURL | awk -F\" '{print $10}')
PURL="https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=$Gtoken"
#
function body(){
local int AppID=这边写你的应用ID
local UserID="@all"这边写你的部门成员ID,@all为部门里所有人
local PartyID=这边写你的部门ID
local Msg=$(echo "$@" | cut -d" " -f3-) 
printf '{\n'
        printf '\t"touser":"'"$UserID"\"",\n"
        printf '\t"toparty":"'"$PartyID"\"",\n"
        printf '\t"msgtype": "text",'"\n"
        printf '\t"agentid":"'"$AppID"\"",\n"
        printf '\t"text":{\n'
        printf '\t\t"content":"'"$Msg"\"
        printf '\n\t},\n'
        printf '\t"safe":"0"\n'
        printf '}\n'
}
#body $1 $2 $3
/usr/bin/curl --data-ascii "$(body $! $2 $3)" $PURL

测试脚本是否有效

./weixin.sh test HelloWorld

看看是否能收到
7.创建报警媒介
进入zabbix选择管理->报警媒介类型,选择创建媒体类型
如图创建
在这里插入图片描述
8.创建用户和用户组
管理->用户群组
在这里插入图片描述
在这里插入图片描述
选择旁边的报警媒介,添加
在这里插入图片描述
9.选择配置->动作
添加触发器
在这里插入图片描述
选择上方的操作
如图添加操作和恢复操作
在这里插入图片描述
①操作:
在这里插入图片描述
故障:{TRIGGER.STATUS},服务器:{HOSTNAME1}发生:{TRIGGER.NAME}故障!
告警主机:{HOSTNAME1}
告警时间:{EVENT.DATE}{EVENT.TIME}
告警等级:{TRIGGER.SEVERITY}
告警信息:{TRIGGER.NAME}
告警项目:{TRIGGER.KEY1}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}
事件ID:{EVENT.ID}
②恢复操作:
在这里插入图片描述
恢复:{TRIGGER.STATUS},服务器:{HOSTNAME1}已经恢复!:{TRIGGER.NAME}
告警主机:{HOSTNAME1}
告警时间:{EVENT.DATE}{EVENT.TIME}
告警等级:{TRIGGER.SEVERITY}
告警信息:{TRIGGER.NAME}
告警项目:{TRIGGER.KEY1}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}
事件ID:{EVENT.ID}
10.测试

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值