小白带你学习linux的监控平台zabbix

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS PostgreSQL,集群系列 2核4GB
简介: 小白带你学习linux的监控平台zabbix



一、环境搭建

1. zabbix程序结构

zabbix-server:用于数据处理及写入到数据库

zabbix-agent:用于获取被监控端的性能检测数据

zabbix-web:用于数据的展示及远程操控

数据库:用于存储监控数据

zabbix-proxy:实现zabbix分布式监控

2. zabbix-agent支持的协议

1) ssh

2) snmp:用于交换机路由器流量监控(OID)

3) IPMI:硬件监控

4) JMX:   专用于java服务监控

5) 结合procona:实现针对数据库监控

3. zabbix监控环境搭建

安装方式

1)yum自动化安装

2)源码编译安装

3)二进制包

3.1 配置zabbix官方yum源
rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
yum list|grep zabbix

3.2 安装服务端与客户端
yum install zabbix-server-mysql zabbix-agent  -y

3.3 安装zabbix-web

1) cd /etc/yum.repos.d/

repos.d]# vim zabbix.repo  

cd /etc/yum.repos.d/
vim zabbix.repo 
在/etc/yum.repos.d/zabbix.repo文件中打开zabbix-frontend
[zabbix-frontend]
enabled=1

 

2) 安装依赖源

yum install -y epel-release centos-release-scl

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

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

安装存储数据库    

yum install -y mariadb-server mariadb

yum install -y mariadb-server mariadb

安装完成启动数据库

systemctl start mariadb                #启动数据库

systemctl enable mariadb            #设置开机自启

数据库配置

进入数据库

mysql

 

创建存储数据的库,并支持中文(库名:zabbix)

MariaDB [(none)]> create database zabbix character set utf8 collate utf8_bin;

 

#授权连接数据库的用户,并设置密码(用户名:zabbix)

MariaDB [(none)]> create user zabbix@localhost identified by '123456';

 

#数据库授权

MariaDB [(none)]> grant all privileges on zabbix.* to zabbix@localhost;

 

#查看所有库

MariaDB [(none)]> show databases;

+--------------------+

| Database    |

+--------------------+

| information_schema |

| mysql    |

| performance_schema |

| test    |

| zabbix    |

+--------------------+

5 rows in set (0.01 sec)

 

#进入zabbix库

MariaDB [(none)]> use zabbix;

Database changed

 

#查看当前库下表

MariaDB [zabbix]> show tables;

Empty set (0.00 sec)    #空

 

#在Zabbix服务器主机上,导入初始架构和数据。系统将提示您输

入新创建的密码

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

Enter password: password    #输入zabbix用户密码

 

#Zabbix服务器配置数据库

vim /etc/zabbix/zabbix_server.conf

100 DBName=zabbix         #存储监控数据的库名

116 DBUser=zabbix             #连接数据库的用户

124 DBPassword=123456     #设置zabbix用户密码

 

#为Zabbix配置正确的时区

vim /etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf

php_value[date.timezone] = Asia/Shanghai    #亚洲/上海

进入数据库

mysql
create database zabbix character set utf8 collate utf8_bin;
create user zabbix@localhost identified by "123456";
grant all privileges on zabbix.* to zabbix@localhost;
show databases;

创建存储数据的库,并支持中文(库名:zabbix)

在Zabbix服务器主机上,导入初始架构和数据。系统将提示您输入新创建的密码(要先退出数据库)

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

#Zabbix服务器配置数据库
vim /etc/zabbix/zabbix_server.conf
100 DBName=zabbix         #存储监控数据的库名
116 DBUser=zabbix             #连接数据库的用户
124 DBPassword=123456     #设置zabbix用户密码

#为Zabbix配置正确的时区
vim /etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf
php_value[date.timezone] = Asia/Shanghai    #亚洲/上海

进入数据库

mysql
show databases;
use zabbix;
show tables;
exit
启动并查看
systemctl restart zabbix-server zabbix-agent httpd rh-php72-php-fpm.service 
systemctl enable zabbix-server zabbix-agent httpd rh-php72-php-fpm.service 
netstat -anptu |grep zabbix
#启动所有服务
systemctl restart zabbix-server zabbix-agent httpd rh-php72-php-fpm
#设置服务随机自启
systemctl enable zabbix-server zabbix-agent httpd rh-php72-php-fpm
#查看zabbix服务占用端口信息
netstat -anptul | grep zabbix
tcp    LISTEN    0    128    *:10051
#zabbix-server端口
tcp    LISTEN    0    128    *:10050
#zabbix-agent端口

web服务访问

服务器输入

192.168.28.4/zabbix

web界面登陆

zabbix前端已经安装完成!超级用户名是Admin,密码是zabbix

为了防止暴力破解和词典攻击,如果发生连续五次尝试登陆失败,Zabbix接口将暂停30秒。

在下次成功登陆后,将会在界面上显示登录尝试失败的IP地址。

修改界面的语言

修改登录密码(此处我设置为123456)

4. 配置客户端添加监控主机

客户端安装zabbix-agent

客户端配置服务端信息即可

# 配置源

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

# 安装客户端

yum install zabbix-agent -y

# 配置客户端

server=服务端IP

# 添加监控主机

web页面→ 配置→ 主机→ 添加主机

添加相应的信息

添加模板监控

5. zabbix中核心的资源介绍

监控项→触发器→动作→ 模板、

6. 监控项配置

首先规划风险值

通过设计取值命令 :

配置监控项

vim /etc/zabbix/zabbix_agent.conf

UserParameter=User_num,w |awk 'NR>2{print $3}'|uniq |wc -l

客户端测试监控项

zabbix_agent2 -t User_num

User_num                                      [s|2]

重启客户端

web端添加监控项

1)选择需要添加监控项的主机

2)根据客户端所自定义的监控项添加即可

slave1的主机创建一个

主机下载zabbix-get

zabbix_get -s 192.168.28.4 -k memUser

3)注意:添加监控项页面中的值要和监控项的key名一致

回到zabbix监控平台配置主机选择

配置触发器

出图形了就OK了,自定义完事

二、触发器及报警

1. 监控项获取失败排查(面试)

1)web添加监控项页面测试获取监控项值

2)服务端安装zabbix_get

yum install zabbix-get -y

zabbix_get 用于服务端测试获取客户端中自定义的监控项

zabbix_get -s 指定客户端IP  -k 监控项名

3)在客户端通过zabbix-agent -t 检测获取监控项

如果能获取到则,客户端定义配置有问题,如果获取不到,则自定义监控项定义有问题

三、zabbix监控nginx

1、配置

slave1安装nginx

yum -y install nginx
nginx -v

vim /etc/nginx/nginx.conf
 location /status {
                stub_status on;
                access_log off;
                allow 192.168.28.0/24;
                deny all;
        }
上面的代码是 Nginx 虚拟主机配置,它可以用来配置一个名为 status 的路径,来检查 Nginx 的运行状态。它包括:
stub_status on:启用 Nginx 的 stub_status 功能,可用于检查 Nginx 的运行状态。
access_log off:关闭访问日志,防止大量的日志数据记录。
allow 192.168.28.0/24:允许 192.168.28.0 网段的访问,可以通过这个网段来检查 Nginx 的运行状态。
deny all:禁止其他 IP 地址访问 status 路径。
此外,请确保 Nginx 支持 stub_status 功能,要启用 stub_status 功能,需要添加 --with-http_stub_status_module 参数到 nginx 的编译参数列表中。

systemctl restart nginx
重启之后看一下有没有这个统计结果

2、编写脚本

[root@slave1 ~]# cd /etc/zabbix
[root@slave1 zabbix]# vim chk_nginx.sh
编写脚本
#!/bin/bash
#function: monitor nginx1.16 for zabbix5.0
#blog: www.qiufeng5.cn
#version: 1.0
#date: 2020-09-17
#定义Nginx status页面
ngx_status="http://127.0.0.1/status"
#判断status页面是否存活
ngx_status_code() {
        http_code=`curl -o /dev/null -s -w %{http_code} ${ngx_status}`
        if [ ${http_code} == "200" ];then
                return 1
        else
                echo "Nginx status is not running."
        fi
}
#获取当前活动的客户端连接数
active() {
        ngx_status_code || curl -s ${ngx_status} | grep "Active" | awk '{print $NF}'
}
#获取接收客户端连接的总数量
accepts() {
        ngx_status_code || curl -s ${ngx_status} | awk NR==3 | awk '{print $1}'
}
#获取已处理的连接总数量
handled() {
        ngx_status_code || curl -s ${ngx_status} | awk NR==3 | awk '{print $2}'
}
#获取客户端请求总数量
requests() {
        ngx_status_code || curl -s ${ngx_status} | awk NR==3 | awk '{print $3}'
}
#获取正在读取请求标头的当前连接数量
reading() {
        ngx_status_code || curl -s ${ngx_status} | grep "Reading" | awk '{print $2}'
}
#获取正在将响应写回到客户端的当前连接数量
writing() {
        ngx_status_code || curl -s ${ngx_status} | grep "Writing" | awk '{print $2}'
}
#获取当前正在等待响应的客户端连接数量
waiting() {
        ngx_status_code || curl -s ${ngx_status} | grep "Waiting" | awk '{print $2}'
}
#使用位置变量控制脚本输出
case $1 in
        active)
                active;;
        accepts)
                accepts;;
        handled)
                handled;;
        requests)
                requests;;
        reading)
                reading;;
        writing)
                writing;;
        waiting)
                waiting;;
        *)
                echo "Unknown options"
esac
给权限
[root@slave1 zabbix]# chmod +x chk_nginx.sh 
测试一下
[root@slave1 zabbix]# ./chk_nginx.sh active
[root@slave1 zabbix]# ./chk_nginx.sh accepts

3、配置一下zabbix-agent

PidFile=/var/run/zabbix/zabbix_agentd.pid
LogFile=/var/log/zabbix/zabbix_agentd.log
LogFileSize=0
Server=192.168.28.3
ServerActive=192.168.28.3
Hostname=master
Timeout=10
Include=/etc/zabbix/zabbix_agentd.d/*.conf
UnsafeUserParameters=1

cd /etc/zabbix/zabbix_agentd.d/
 vim userparameter_nginx.conf 
UserParameter=nginx.active,bash /etc/zabbix/ngx_status.sh active
UserParameter=nginx.accepts,bash /etc/zabbix/ngx_status.sh accepts
UserParameter=nginx.handled,bash /etc/zabbix/ngx_status.sh handled
UserParameter=nginx.requests,bash /etc/zabbix/ngx_status.sh requests
UserParameter=nginx.reading,bash /etc/zabbix/ngx_status.sh reading
UserParameter=nginx.writing,bash /etc/zabbix/ngx_status.sh writing
UserParameter=nginx.waiting,bash /etc/zabbix/ngx_status.sh waiting

全篇替换多行字符%s#script/##g

改完之后重启一下

systemctl restart zabbix-agent
回主机验证一下
 zabbix_get  -s 192.168.28.4 -k nginx.active
出来了下列东西就算OK了

回监控台

在对应模板中创建相关监控项

4、创建监控主机,链接模板

创建监控主机

点击图形看值

解决图形乱码的办法

打开主机输入

打开监控端进入目录

把字体脱进服务器覆盖就OK了

四、zabbix监控mysql

1、配置

在slave1上安装mariadb

yum -y install mariadb-server mariadb

启动一下数据库

systemctl start mariadb
mysql
CREATE USER 'zabbix'@'%' IDENTIFIED BY "123456";
GRANT USAGE,REPLICATION CLIENT,PROCESS,SHOW DATABASES,SHOW VIEW ON *.* TO 'zabbix'@'%';

2、添加一条数据

 在zabbix客户端默认配置路径下 /etc/zabbix 目录下新建  .my.cnf 文件,然后新增一个监控帐号,上面我们新建了一个zabbix帐号

[client]

user='zabbix'

password='123456'


3、复制模板

  将原有的mysql模板先备份,然后复制新模板

cd /etc/zabbix/zabbix_agentd.d
mv userparameter_mysql.conf userparameter_mysql.conf.bak
cp /usr/share/doc/zabbix-agent-5.0.4/userparameter_mysql.conf  .

修改模板中的默认路径

在命令行新增默认路径 HOME=/etc/zabbix/

vim userparameter_mysql.conf 
#template_db_mysql.conf created by Zabbix for "Template DB MySQL" and Zabbix 4.2
#For OS Linux: You need create .my.cnf in zabbix-agent home directory (/var/lib/zabbix by default) 
#For OS Windows: You need add PATH to mysql and mysqladmin and create my.cnf in %WINDIR%\my.cnf,C:\my.cnf,BASEDIR\my.cnf https://dev.mysql.com/doc/refman/5.7/en/option-files.html
#The file must have three strings:
#[client]
#user=zbx_monitor
#password=<password>
#
UserParameter=mysql.ping[*],HOME=/etc/zabbix/ mysqladmin -h"$1" -P"$2" ping
UserParameter=mysql.get_status_variables[*],HOME=/etc/zabbix/ mysql -h"$1" -P"$2" -sNX -e "show global status"
UserParameter=mysql.version[*],HOME=/etc/zabbix/ mysqladmin -s -h"$1" -P"$2" version
UserParameter=mysql.db.discovery[*],HOME=/etc/zabbix/ mysql -h"$1" -P"$2" -sN -e "show databases"
UserParameter=mysql.dbsize[*],HOME=/etc/zabbix/ mysql -h"$1" -P"$2" -sN -e "SELECT SUM(DATA_LENGTH + INDEX_LENGTH) FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA='$3'"
UserParameter=mysql.replication.discovery[*],HOME=/etc/zabbix/ mysql -h"$1" -P"$2" -sNX -e "show slave status"
UserParameter=mysql.slave_status[*],HOME=/etc/zabbix/ mysql -h"$1" -P"$2" -sNX -e "show slave status"
"userparameter_mysql.conf" 15L, 1200C    
重启zabbix客户端
systemctl restart zabbix-agent

重启完毕去服务器上验证一下

[root@master zabbix]# zabbix_get -s 192.168.28.4 -k  mysql.ping[192.168.28.4,3306]
mysqld is alive
出现这个就说明没有问题了

4、添加zabbix的模版

查看模版的宏

更新完毕查看图形就OK了

五、zabbix报警系统连接网易邮箱

1、开启网易邮箱的监听功能

2、配置server的服务

yum -y install mailx dos2unix

vim /etc/mail.rc
set from=17533611657@163.com smtp=smtp.163.com
set smtp-auth-user=17533611657@163.com smtp-auth-password=输入上面的密码
set smtp-auth=login
 echo "test mail from zabbix.server.com" | mail -s "test mail" m17533611657@163.com

3、上网易邮箱查看

回机子上创建脚本

vim /etc/mail.rc
echo "test mail from zabbix.server.com" | mail -s "test mail" m17533611657@163.com
cd /etc/zabbix/
mkdir alertscripts
cd alertscripts/
vim mail.sh
#!/bin/bash
#export.UTF-8
bt=$2
sjr=$1
FILE=/tmp/mailtmp.txt
echo "$3" >$FILE
/usr/bin/dos2unix -k $FILE
/bin/mail -s "$bt" "$sjr" <$FILE
[root@master alertscripts]# touch /tmp/mailtmp.txt
[root@master alertscripts]# chmod 777 /tmp/mailtmp.txt 
[root@master alertscripts]# chown zabbix.zabbix /tmp/mailtmp.txt 
[root@master alertscripts]# ./mail.sh 17533611657@163.com  "bbbb" "qwetryr"

在配置文件添加一条命令

cd ..
vim zabbix_server.conf 
AlertScriptsPath=/etc/zabbix/alertscripts
systemctl restart zabbix-server

4、创建发送邮件动作

邮件主题:

故障:{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}

slave1关闭mariadb

看zabbix的监控出现掉了就OK了

六、zabbix监控钉钉邮件报警

1、zabbix 钉钉告警机制

群机器人是钉钉群的高级扩展功能,群机器人可以将第三方服务的信息聚合到群聊中,实现自动化的信息同步。例如:通过聚合GitHub,GitLab等源码管理服务,实现源码更新同步;通过聚合Trello,JIRA等项目协调服务,实现项目信息同步。不仅如此,群机器人支持Webhook协议的自定义接入,支持更多可能性. 比如我们可将Zabbix运维报警提醒通过自定义机器人聚合到钉钉群中,以实现钉钉告警。

2、钉钉配置

注册钉钉
到钉钉官网下载pc版钉钉,安装、注册、登陆:
钉钉下载地址:https://www.dingtalk.com/创建群聊和钉钉机器人

进入群聊添加机器人

【复制webhook,这个链接很重要,后面钉钉脚本需要用到此链接】

2、配置master

报警脚本配置

取消注释AlertScriptsPath
# grep -Ev '^$|#' /etc/zabbix/zabbix_server.conf | grep ^A
AlertScriptsPath=/usr/lib/zabbix/alertscripts
创建脚本
入该定义的脚本存放路径下创建用来推送告警消息的脚本,使用自己的webhook
# cd /etc/zabbix/alertscripts/
# vim dingding.py
#!/usr/bin/env python
#coding:utf-8
#zabbix钉钉报警
import requests,json,sys,os,datetime
webhook="https://oapi.dingtalk.com/robot/send?access_token=3a7191b12c8e8f5580b9bedc9e48938421845e7629c8ff0fe2833f1ede9e8b30" (修改为自己的webhook)
user=sys.argv[1]
text=sys.argv[3]
data={
    "msgtype": "text",
    "text": {
        "content": text
    },
    "at": {
        "atMobiles": [
            user
        ],
        "isAtAll": False
    }
}
headers = {'Content-Type': 'application/json'}
x=requests.post(url=webhook,data=json.dumps(data),headers=headers)
if os.path.exists("/var/log/zabbix/dingding.log"):
    f=open("/var/log/zabbix/dingding.log","a+")
else:
    f=open("/var/log/zabbix/dingding.log","w+")
f.write("\n"+"--"*30)
if x.json()["errcode"] == 0:
    f.write("\n"+str(datetime.datetime.now())+"    "+str(user)+"    "+"发送成功"+"\n"+str(text))
    f.close()
else:
    f.write("\n"+str(datetime.datetime.now()) + "    " + str(user) + "    " + "发送失败" + "\n" + str(text))
    f.close()
安装完事之后下载一个 yum -y install python-requests python

脚本赋予可执行权限

cd /etc/zabbix/alertscripts/
chmod +x dingding.py 
touch /var/log/zabbix/dingding.log
chown zabbix.zabbix /var/log/zabbix/dingding.log 
发送一条告警信息测试
[root@master alertscripts]# ./dingding.py xiejin test "这是一条告警测试信息,请忽略"

3、zabbix监控台配置

创建报警媒介

【管理——报警媒介类型——创建媒体类型】

添加媒介名称,类型脚本,脚本名称为刚创建的dingding.py,点击更新

添加动作

配置——动作——创建动作

创建动作名称,并添加一个条件,触发报警条件为大于等于警告

添加操作和恢复操作

告警操作

主题:

Problem: {EVENT.NAME}

消息:

-=【告警啦】=-

告警组:{TRIGGER.HOSTGROUP.NAME}

告警主机:{HOSTNAME1}

告警主机别名:{HOST.NAME}

主机IP:{HOST.IP}

主机描述:{HOST.DESCRIPTION}

告警时间:{EVENT.DATE} {EVENT.TIME}

告警等级:{TRIGGER.SEVERITY}

警报类别:{TRIGGER.NAME}

当前状态:{ITEM.LASTVALUE}

告警平台:http://192.168.28.3/zabbix

 

告警恢复

主题:

Problem: {EVENT.NAME}

消息:

-=【告警啦】=-

告警组:{TRIGGER.HOSTGROUP.NAME}

告警主机:{HOSTNAME1}

告警主机别名:{HOST.NAME}

主机IP:{HOST.IP}

主机描述:{HOST.DESCRIPTION}

告警时间:{EVENT.DATE} {EVENT.TIME}

告警等级:{TRIGGER.SEVERITY}

警报类别:{TRIGGER.NAME}

当前状态:{ITEM.LASTVALUE}

告警平台:http://192.168.28.3/zabbix

点击添加

可以看到新加的动作

定义需发送消息的告警级别

配置完成即可。

4、测试报警效果

将一台监控主机关闭

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
2月前
|
NoSQL 关系型数据库 MySQL
Linux学习记录---(1、基本命令)
该博客文章提供了Linux系统中基本命令的使用记录,包括文件和目录操作、Redis服务管理、MySQL数据库操作以及Tomcat服务器的启动和检查。
Linux学习记录---(1、基本命令)
|
2月前
|
监控 安全 Linux
在Linux中,zabbix如何监控脑裂?
在Linux中,zabbix如何监控脑裂?
|
1月前
|
监控 关系型数据库 MySQL
zabbix agent集成percona监控MySQL的插件实战案例
这篇文章是关于如何使用Percona监控插件集成Zabbix agent来监控MySQL的实战案例。
31 2
zabbix agent集成percona监控MySQL的插件实战案例
|
11天前
|
编解码 Linux 开发工具
Linux平台x86_64|aarch64架构RTMP推送|轻量级RTSP服务模块集成说明
支持x64_64架构、aarch64架构(需要glibc-2.21及以上版本的Linux系统, 需要libX11.so.6, 需要GLib–2.0, 需安装 libstdc++.so.6.0.21、GLIBCXX_3.4.21、 CXXABI_1.3.9)。
|
2月前
|
NoSQL Ubuntu Linux
Linux内核学习
Linux内核学习
54 3
|
2月前
|
编解码 Linux 数据安全/隐私保护
Linux平台x86_64|aarch64架构如何实现轻量级RTSP服务
为满足在Linux平台(x86_64与aarch64架构)上实现轻量级RTSP服务的需求,我们开发了一套解决方案。该方案通过调用`start_rtsp_server()`函数启动RTSP服务,并设置端口号及认证信息。支持AAC音频和H.264视频编码,可推送纯音频、纯视频或音视频流。此外,还支持X11屏幕采集、部分V4L2摄像头采集、帧率/GOP/码率调整、摄像头设备选择与预览等功能。对于音频采集,支持alsa-lib和libpulse接口。整体设计旨在提供150-400ms的低延迟体验,适用于多种应用场景。
|
1月前
|
Linux
使用qemu来学习Linux的休眠和唤醒
使用qemu来学习Linux的休眠和唤醒
|
1月前
|
Linux
linux内核原子操作学习
linux内核原子操作学习
|
1月前
|
Ubuntu Linux
用crash工具学习Linux内核 —— 查看cgroup_roots
用crash工具学习Linux内核 —— 查看cgroup_roots
|
1月前
|
Ubuntu Linux 调度
Linux内核学习
Linux内核学习
下一篇
无影云桌面