给esxi中的Ubuntu虚拟机扩展硬盘容量小结

前面给CentOS7做了扩容,顺手将一台Ubuntu的机子也扩下容量。
本次使用图形化的 GParted 来操作,
首先在esxi中对Ubuntu机器硬盘容量扩容,下载GParted的镜像,在esxi中作为启动光盘启动。
进入GParted界面,
首先删除后面的 Swap分区,再删除Extended分区,
然后将剩下的分区拉伸扩展容量(一般是/dev/sda1,记得留下一些未分配空间作为Swap分区使用)
将剩下的预留未分配空间,先新建Extended分区,再在Extended分区中建Swap分区
在GParted中应用变更,然后重启Ubuntu
这个时候新建的swap分区没有起作用,使用 free -m 可以看到swap为0,
为了使swap生效,需要修改一下/etc/fstab中swap分区的uuid
首先使用 sudo blkid 命令查看swap分区的uuid,一般对应 /dev/sda5
使用 sudo vi /etc/fstab 将swap分区的uuid修改为新看到的值
重启Ubuntu

Popularity: 2% [?]

Random Posts

给esxi中的CentOS7虚拟机扩展硬盘容量小结

测试用的CentOS7虚拟机空间不够了,需要给他增加一些容量,在esxi中给虚拟机增大了硬盘容量发现系统中并没有增加,网上搜索了一下,还需要在CentOS7中将增加的容量添加进来
参考了 https://blog.csdn.net/QIU176161650/article/details/118379783 这篇文章,主要在CentOS中有几个阶段
1. 查看现有分区情况

#查看目前磁盘使用情况
df -Th
#查看当前系统分区情况,初始系统安装后,应该存在 sda1,sda2两个分区,
#增加了容量后,应该会看到sda盘的容量大于sda1,sda2两个分区的容量和,
#缺少的容量需要新建分区利用起来
lsblk

2.新建分区,将esxi中增加的容量放到新分区中

#查看磁盘情况,可忽略,前面的 lsblk 已经大致有分区信息
fdisk -l
#新增分区,对 /dev/sda 盘新建分区
fdisk /dev/sda
输入 p
新建分区输入 n
回车(默认为主分区 primary)
分区号,起始扇区,结束扇区都默认(回车),直接将剩余空间都划分到这个空间去
设置分区格式输入:t
分区号默认(回车) 对应最后一个数字为新增加的这个分区
Hex代码为 8e (8e代表Linux LVM分区类型)
w (写入分区表)
等待分区完成

使用命令fdisk -l 或 lsblk 查看确认新建的分区已经建好,
第一次新增应该为 /dev/sda3,分区格式为Linux LVM类型

3.格式化新建分区并作合并
重启一下虚拟机或者使用 partprobe 命令通知系统内核重新加载分区信息

#开始格式化分区, /dev/sda3 为新建的分区,
#如果是其他编号(比如第二次扩展容量)需要修改对应值,
#命令mkfs.ext3 还有其他值,比如 mkfs.xfs, mkfs.ext4 等,按照自己需要建立
mkfs.ext3 /dev/sda3

#合并分区,先执行 lvm 命令,在lvm控制台中进行
#lvm
lvm>pvcreate /dev/sda3
# centos为分组名,对应lsblk命令看到的 centos-root 之类减号前的部分,通常为centos
# 或者使用 lvdisplay 查看,为VG Name对应的值
lvm>vgextend centos /dev/sda3
# 输入y确认
# 查看下当前卷信息,记录下 /dev/sda3 新建卷的 Total PE/Free PE的值
lvm>vgdisplay -v

#将sda3的余量合并到系统盘root (/dev/mapper/centos-root)
#或其他盘,比如home (/dev/mapper/centos-home) 下
#参数 -l+112639 为上面一步看看到的FreePE值
lvm>lvextend -l+112639 /dev/mapper/centos-root
lvm>quit

#最后将文件系统扩容,让系统识别到容量
xfs_growfs /dev/mapper/centos-root

4. 再次使用 fdisk -l 或 lsblk 命令确认分区大小情况

Popularity: 2% [?]

Random Posts

使用Dynatrace的ADK对C++服务代码做注入修改小结

因为要用Dynatrace监测C++写的服务,因此使用了ADK开发包做代码注入:
主要修改的注入点有:
1. 服务端接受请求的入口
先通过http头信息获取传递过来的tag, 使用DYNATRACE_SET_TAG_FROM_STRING宏设置tag值
然后放入 DYNATRACE_START_SERVER_PUREPATH, DYNATRACE_END_SERVER_PUREPATH 宏对

在具体的处理点放入 DYNATRACE_AUTO_PUREPATH 标志入口点,如果要捕获参数,采用 DYNATRACE_AUTO_PUREPATH_CAPTURE(DYNATRACE_CAPTURE << param)
在需要监测时间消耗的函数入口位置放入 DYNATRACE_AUTO_NODE,如果需要捕获参数,则使用 DYNATRACE_AUTO_NODE_CAPTURE(DYNATRACE_CAPTURE << param)

2. 服务内部发起的http请求
首先在入口函数处放入 DYNATRACE_AUTO_PUREPATH_CAPTURE(DYNATRACE_CAPTURE << url.c_str()) 宏,可以捕获请求的地址参数
然后使用 DYNATRACE_GET_TAG_AS_STRING 宏获取Dynatrace 自动创建的tag, 并将其放入http的请求头传递给服务端
再通过 DYNATRACE_LINK_CLIENT_PUREPATH_BY_STRING 将这个tag和PUREPATH关联起来

3. 服务内部发起的数据库请求
在发起数据库请求的地方,放入 DYNATRACE_AUTO_NODE(DYNATRACE_CAPTURE << sql.c_str()) 捕获SQL执行时间消耗情况

碰到问题:
1. Dynatrace界面中看到的入口purepath是函数名称,不是 /xxx/yyy这样的请求地址样式
2. 内部请求的数据库,没有在界面上像PHP监测那样被拆分到Database,作为ADK内部的API划分
3. 使用DYNATRACE_CAPTURE << strparam 捕获的utf8中文字符串会显示乱码

解决方法
1.2 解决方法未知
3. 替换使用 DYNATRACE_CAPTURE_STRING_WITH_CHARSET(strparam, strlen(strparam), DYNATRACE_CCSID_UTF8) 方式捕获参数值

特别注意
DYNATRACE_API设置的不是具体函数方法名,而是注入点分类名,比如Serv, HttpClient, Database这样的注入点分类,用于在界面上的API分布查看各自的时间消耗比

Popularity: 3% [?]

Random Posts

给使用Minimal方式安装的Centos系统补充gcc开发环境和java运行环境

为节省空间,在虚拟机中使用Minimal方式安装了CentOS的最小系统
使用yum安装补充,首先使用ifconfig命令看不到ip,提示命令不存在,使用
ip addr show
可以看到当前地址,确认有可以上网的ip(安装时可选择dhcp方式获取ip,确保在网络中启动后有ip地址),
否则自己修改/etc/sysconfig/network-scripts/目录下的接口配置文件修改ip地址信息后,重启虚拟机
使用命令

yum install net-tools -y

安装ifconfig相关命令工具
使用命令

yum install gcc g++ gdb -y

安装gcc环境
使用命令

yum install java-1.8.0-openjdk* -y

安装jdk1.8版本
也可以使用

yum install java-11-openjdk* -y

安装Jdk11版本

Popularity: 3% [?]

Random Posts

Dynatrace 本地部署安装以及Linux下Nginx+PHP配置使用

搞到一份Dyanatrace的本地部署安装包,安装试了一下,体验全链路监测

监测Linux下的PHP配置过程
首先看到新建配置的界面

首先建立一个名字为Test的配置,出现如下选择界面,选择PHP

然后出现针对PHP环境的设置步骤,

按照提示来,首先选择UEM

点击上面的图标,出现的是到dynatrace的连接,因为程序比较老,打开的链接已经是404出错,点击WEB按钮,按照地址名称重新找了一下链接,大约是
https://www.dynatrace.com/support/help/platform-modules/digital-experience/web-applications 可以对照着看一下
选择第二步骤,添加PHP环境,出现如下界面,因为是Linux下的Nginx,所以选第二个

出来机器和版本选择

因为是非本机的64位Linux,所以选择远程64位

按照提示将下载的文件上传到运行php的linux服务器上,我放到了/opt目录下解压,执行命令
/bin/sh dynatrace-wsagent-7.2.0.1697-linux-x64.sh
按照运行命令后出现的提示,修改文件 /opt/dynatrace-7.2/init.d/dynaTraceWebServerAgent 校对其中的 DT_HOME 值,然后将这个文件拷贝到/etc/init.d目录下
执行命令 chkconfig –add dynaTraceWebServerAgent 添加到机器开机启动服务中去
可以使用 chkconfig –level 2345 dynaTraceWebServerAgent on 做调整

按照提示,修改/opt/dynatrace-7.2/agent/conf/dtwsagent.ini
修改其中的Name 和 Server 值设置 (可以拷贝粘贴过去,记得将原始值删除掉)

按照提示修改nginx的启动命令,我这里修改为
LD_PRELOAD=/opt/dynatrace-7.2/agent/lib64/libdtagent.so nginx
再修改php.ini文件,其中添加一行
extension=/opt/dynatrace-7.2/agent/lib64/libdtagent.so
关闭nginx重新启动
配置数据库

连接测试时出错

按照提示检查数据库,缺少sys库,然后查了一下MySQL库在5.7版本以上才有这个库,所以要监测MySQL库,就必须先将MySQL库升级到5.7版本以上

Popularity: 3% [?]

Random Posts

在exsi中将来自其他机器的盘注册加载

换机器,将原先exsi机器上的盘放到新机器上,没能自动注册到存储列表中,需要手工注册登记

首先开启exsi的ssh服务,使用ssh连接到esxi机器上
先执行

esxcfg-volume -l

命令查看丢失的卷标
Scanning for VMFS-6 host activity (4096 bytes/HB, 1024 HBs).
VMFS UUID/label: 64982e42-f1ffaaaa-7963-04d9f504022b/ssddisk_1
Can mount: Yes
Can resignature: Yes

注意蓝色的值和后面标的名称,正是丢失的数据存储标签名
执行

esxcfg-volume -m 64982e42-f1ffaaaa-7963-04d9f504022b 

或者直接使用标签名

esxcfg-volume -m ssddisk_1 

挂载磁盘
挂载后再执行

esxcfg-volume -l 

应该看不到磁盘数据,因为盘已经被挂载了
执行

ls /vmfs/volumes 

查看验证磁盘已经挂载,在管理界面刷新可见新挂载的盘

Popularity: 4% [?]

Random Posts

给MindManager的免费插件MindReader做了一下中文支持处理

https://www.activityowner.com/ 提供的免费插件 MindReader开源了,仓库在 https://github.com/activityowner
下载下来源码,将期望已久的一个类似 XXX打电话 这样的中文描述特性扩展了一下,
在配置文件mindreadconfig.mmap中以 (.{1..8})打电话 这样的正则描述配置项目即可
顺手将菜单按钮界面中文化了了一下

设置 zh-Hans 后,重新启动MindManager,可以看到 MindReader 的中文菜单 如下

Popularity: 4% [?]

Random Posts

LoadRunner 2023 出来了

转眼LoadRunner 2023发布了,

添加脚本

延续了10来年的授权许可证在2023版发生了变化,这次采用了xml格式的许可证书,安装新格式证书拓展 50 默认社区许可

Popularity: 4% [?]

Random Posts

在EA中通过代码画流程图

最近要写文档画流程图,因为是补充文档,代码已经存在,希望从代码中直接生成流程图,网上找了一下,比如Understand之类工具可以画图,但是只是在他们软件内画,导出为图片格式,用它们来写文档麻烦且不实用用,EA的插件找到了一个开源的hoReverse,看介绍可以根据代码部分绘制流程图,可惜下载他做好的安装包安装后在EA中插件不可用,下载的他的源码试了VS2017和VS2019以及VS2022都未能直接编译通过。于是乎参考他的画图代码,自己写了一个在EA中画流程图的插件,绘制效果如下。

画出效果

目前支持如下一些逻辑的绘制
if () {}
if () {} else {}
while () { }
for () {}
switch () {case xx: break; case yy: break; default: zz}
等代码逻辑的流程图自动绘制,默认是c like 的语法代码,钩上pas like开关,可以识别pas的if xx then begin end 等pas语言特征的语句绘制

if while for switch 等语句段要用 {} 围起来,否则会当作一条分支直接到底,画的结果不正确

Popularity: 5% [?]

Random Posts

一个好用的EA模型文件版本管理插件

EA工具自带了版本库接口集成,但是都是一些相对老旧的版本库,比如SCC,SVN,CVS,TFS,在模型中提供包级别的版本库控制,包签出后,是锁定状态,不能同时修改,不能像现在流行的git分布式管理,可以多人同时签出修改。

德国 lieberlieber 公司的lemotree插件解决了这个问题,https://www.lieberlieber.com/lemontree/en/product/ 在使用git版本库时,这个插件产品支持git开发流程。
插件可以对模型文件做比较和合并,这样可以使用现有各种自己习惯的版本库控制软件管理自己的模型文件,然后通过这个插件做比较合并(像通常的代码文本文件比较合并一样)

在perforce(p4)版本库客户端中设置对模型文件使用 lemontree 做比较合并

打开p4客户端的Preferences界面,

选择Diff标签界面,在Specify diff application by extension(overrides default): 右边的Add按钮点击一下,

弹出 Add File Type 对话框,

输入模型文件的后缀 .qeax,其他后缀的要分别添加进去(添加多次, qea, eap, eapx)
Application 中输入lemontree的执行文件全路径
C:\Program Files\LieberLieber\LemonTree\LemonTree.Starter.exe
Parameters 中输入
diff –base=”%1″ –mine=”%2″

选择Merge标签界面,在Specify merge application by extension(overrides default): 右边的Add按钮点击一下,

弹出 Add File Type 对话框,

输入模型文件的后缀 .qeax,其他后缀的要分别添加进去(添加多次, qea, eap, eapx)
Application 中输入lemontree的执行文件全路径
C:\Program Files\LieberLieber\LemonTree\LemonTree.Starter.exe
Parameters 中输入
merge –theirs=”%r” –mine=”%1″ –base=”%b” –out=”%2″

Popularity: 5% [?]

Random Posts

Next Page →