1. 首页 > WebSphere教程 > 正文

WebSphere教程FG006-WebSphere应用服务器配置与基础运维实战

本文档风哥主要介绍WebSphere Application Server 9.0.5应用服务器的配置与基础运维,包括服务器概述、组件说明、配置结构、端口说明、启动停止、配置管理、日志管理、故障处理等内容,风哥教程参考WebSphere官方文档服务器管理章节,适合WebSphere管理员在学习和测试中使用,如果要应用于生产环境则需要自行确认。更多视频教程www.fgedu.net.cn

Part01-基础概念与理论知识

1.1 WebSphere应用服务器概述

WebSphere应用服务器是IBM提供的Java EE应用运行平台,提供完整的企业级应用运行环境。WebSphere 9.0.5支持Java EE 7规范,提供Servlet、JSP、EJB、JPA等核心功能。学习交流加群风哥微信: itpux-com

WebSphere应用服务器核心功能:

  • Web容器:运行Servlet和JSP应用
  • EJB容器:运行企业级Java Bean
  • JPA持久化:数据持久化支持
  • JMS消息:消息队列服务
  • JTA事务:分布式事务管理
  • 安全管理:认证授权服务

1.2 WebSphere服务器组件

WebSphere应用服务器由多个组件构成:

1.2.1 核心组件

# WebSphere应用服务器核心组件

Web容器:
– Servlet引擎
– JSP编译器
– 会话管理
– Web服务支持

EJB容器:
– 会话Bean管理
– 消息驱动Bean
– 事务管理
– 安全拦截

服务组件:
– 命名服务(JNDI)
– 事务服务(JTA)
– 消息服务(JMS)
– 连接池服务
– 安全服务

管理组件:
– 管理控制台
– wsadmin脚本
– JMX管理接口
– 性能监控

# 组件交互关系
客户端请求 -> Web容器 -> EJB容器 -> 数据库

安全服务

事务服务

连接池

1.2.2 Profile结构

# WebSphere Profile结构

Profile目录结构:
/WebSphere/app/profiles/AppSrv01/
├── bin/ # 启动停止脚本
│ ├── startServer.sh
│ ├── stopServer.sh
│ └── serverStatus.sh
├── config/ # 配置文件
│ ├── cells/
│ └── nodes/
├── logs/ # 日志文件
│ ├── server1/
│ │ ├── SystemOut.log
│ │ └── SystemErr.log
│ └── ffdc/
├── installedApps/ # 已安装应用
├── installedConnectors/ # 已安装连接器
├── properties/ # 属性文件
└── temp/ # 临时文件

# Profile类型
default:独立应用服务器Profile
managed:受管理应用服务器Profile(ND环境)
management:部署管理器Profile(ND环境)

1.3 WebSphere服务器配置结构

WebSphere服务器配置采用XML文档存储:

1.3.1 配置文件结构

# WebSphere服务器配置文件

主要配置文件:
/WebSphere/app/profiles/AppSrv01/config/cells/fgeduCell01/

server.xml:服务器配置
├── processDefinitions:进程定义
├── jvmEntries:JVM参数
├── webContainer:Web容器配置
├── sessionManager:会话管理
└── logAndTrace:日志配置

resources.xml:资源配置
├── JDBCProvider:数据源提供者
├── J2CResourceAdapter:JCA适配器
├── JMSProvider:JMS提供者
└── MailProvider:邮件提供者

security.xml:安全配置
├── authDataEntries:认证数据
├── userRegistry:用户注册表
└── sslConfig:SSL配置

virtualhosts.xml:虚拟主机配置
├── VirtualHost:虚拟主机定义
└── HostAlias:主机别名

# 配置文件位置
服务器配置:config/cells/CellName/nodes/NodeName/servers/ServerName/
节点配置:config/cells/CellName/nodes/NodeName/
单元配置:config/cells/CellName/

1.4 WebSphere服务器端口说明

WebSphere服务器使用多个端口提供服务:

1.4.1 默认端口列表

# WebSphere服务器默认端口

端口名称 默认端口 用途
─────────────────────────────────────────────────
WC_defaulthost 9080 HTTP服务端口
WC_defaulthost_secure 9443 HTTPS服务端口
SAS_SSL_SERVERAUTH 9401 SAS SSL端口
CSIV2_SSL_SERVERAUTH 9402 CSIv2 SSL端口
CSIV2_SSL_MUTUALAUTH 9403 CSIv2双向SSL端口
ORB_LISTENER_ADDRESS 9100 ORB监听端口
DRS_CLIENT_ADDRESS 9101 DRS客户端端口
SIB_ENDPOINT_ADDRESS 7276 SIB端点端口
SIB_ENDPOINT_SECURE 7286 SIB安全端点端口
SIB_MQ_ENDPOINT 5558 SIB MQ端点端口
SIB_MQ_ENDPOINT_SSL 5578 SIB MQ SSL端口
BOOTCOMMIT_PORT 2809 引导端口
DCS_UNICAST_PORT 9352 DCS单播端口
IPC_CONNECTOR_PORT 9632 IPC连接器端口
SOAP_CONNECTOR_PORT 8880 SOAP连接器端口
ADMIN_HOST 9060 管理控制台HTTP
ADMIN_HOST_SECURE 9043 管理控制台HTTPS

# 查看端口配置
/WebSphere/app/profiles/AppSrv01/bin/wsadmin.sh -lang jython \
-c “print AdminConfig.list(‘EndPoint’)”

# 修改端口
# 通过管理控制台:服务器 > 服务器类型 > WebSphere应用程序服务器 > server1 > 端口

风哥提示:WebSphere端口配置是运维的重要工作,生产环境建议修改默认端口以增强安全性。端口冲突是常见的启动失败原因,需要仔细检查端口占用情况。

Part02-生产环境规划与建议

2.1 WebSphere服务器规划

WebSphere服务器规划需要考虑多个因素:

2.1.1 服务器规划要素

# WebSphere服务器规划要素

1. 业务需求
– 应用类型和数量
– 并发用户数
– 响应时间要求
– 数据处理量

2. 资源需求
– CPU核心数
– 内存大小
– 磁盘空间
– 网络带宽

3. 可用性需求
– 服务可用性要求
– 故障恢复时间
– 数据一致性要求

4. 安全需求
– 访问控制要求
– 数据加密要求
– 审计要求

# 服务器规划模板
项目 小型环境 中型环境 大型环境
─────────────────────────────────────────────
CPU核心 4-8核 16-32核 64核+
内存 16-32GB 64-128GB 256GB+
磁盘 100GB 500GB 1TB+
应用服务器数 1-2 3-5 5+

2.2 WebSphere服务器资源配置

WebSphere服务器资源配置建议:

2.2.1 JVM内存配置

# WebSphere JVM内存配置建议

内存配置原则:
– 堆内存不超过物理内存的50%
– 新生代大小为堆内存的1/3-1/2
– 元空间大小根据应用需求设置
– 预留足够的系统内存

# 不同规模配置示例

小型应用(8GB物理内存):
-Xms2048m -Xmx4096m
-Xmn1024m
-XX:MetaspaceSize=256m -XX:MaxMetaspaceSize=512m

中型应用(32GB物理内存):
-Xms8192m -Xmx16384m
-Xmn4096m
-XX:MetaspaceSize=512m -XX:MaxMetaspaceSize=1024m

大型应用(128GB物理内存):
-Xms32768m -Xmx65536m
-Xmn16384m
-XX:MetaspaceSize=1024m -XX:MaxMetaspaceSize=2048m

# 配置方法
# 管理控制台:服务器 > 服务器类型 > WebSphere应用程序服务器 > server1 > Java和进程管理 > 进程定义 > Java虚拟机

2.2.2 线程池配置

# WebSphere线程池配置

Web容器线程池:
– 最小线程数:10-50
– 最大线程数:50-200
– 线程超时:60秒

ORB线程池:
– 最小线程数:10
– 最大线程数:50

# 配置方法
# 管理控制台:服务器 > 服务器类型 > WebSphere应用程序服务器 > server1 > 线程池

# 查看线程池配置
/WebSphere/app/profiles/AppSrv01/bin/wsadmin.sh -lang jython \
-c “print AdminConfig.list(‘ThreadPool’)”

# 线程池监控
# 性能监控基础设施(PMI) -> 线程池统计信息

2.3 WebSphere服务器安全配置

WebSphere服务器安全配置要点:

2.3.1 安全配置清单

# WebSphere服务器安全配置清单

1. 启用管理安全
– 启用全局安全
– 配置用户注册表
– 设置强密码策略

2. 启用应用安全
– 配置应用认证
– 配置角色授权

3. SSL/TLS配置
– 启用SSL
– 配置证书
– 禁用弱加密算法

4. 端口安全
– 修改默认端口
– 配置防火墙规则
– 限制管理端口访问

5. 日志安全
– 配置审计日志
– 日志文件权限
– 日志保留策略

# 启用管理安全
# 管理控制台:安全 > 全局安全

# 查看安全配置
/WebSphere/app/profiles/AppSrv01/bin/wsadmin.sh -lang jython \
-c “print AdminConfig.showAttribute(AdminConfig.read(‘Security.xml’), ‘enabled’)”

2.4 WebSphere服务器监控规划

WebSphere服务器监控规划:

2.4.1 监控指标

# WebSphere服务器监控指标

系统级指标:
– CPU使用率
– 内存使用率
– 磁盘I/O
– 网络流量

JVM指标:
– 堆内存使用
– GC频率和时间
– 线程数量
– 类加载数量

Web容器指标:
– 请求数量
– 响应时间
– 错误率
– 会话数量

连接池指标:
– 连接数量
– 等待时间
– 使用率

# 监控工具
1. WebSphere PMI(性能监控基础设施)
2. IBM Tivoli Performance Viewer
3. JMX监控
4. 第三方监控工具

# 启用PMI
# 管理控制台:服务器 > 服务器类型 > WebSphere应用程序服务器 > server1 > 性能监控基础设施(PMI)

Part03-生产环境项目实施方案

3.1 WebSphere服务器启动与停止

WebSphere服务器的启动和停止操作:

3.1.1 启动服务器

# WebSphere服务器启动

1. 启动独立服务器
# 使用startServer命令
/WebSphere/app/profiles/AppSrv01/bin/startServer.sh server1

ADMU0116I: 正在记录工具信息
ADMU3100I: 正在读取配置
ADMU3200I: 已设置端口
ADMU0500I: 正在启动应用程序服务器
ADMU2400I: 正在启动服务器: server1
ADMU0026I: 完成启动服务器: server1

2. 启动DMgr(ND环境)
/WebSphere/app/profiles/Dmgr01/bin/startManager.sh

ADMU0116I: 正在记录工具信息
ADMU3100I: 正在读取配置
ADMU0500I: 正在启动部署管理器
ADMU2400I: 正在启动服务器: dmgr
ADMU0026I: 完成启动服务器: dmgr

3. 启动节点代理
/WebSphere/app/profiles/AppSrv01/bin/startNode.sh

ADMU0116I: 正在记录工具信息
ADMU3100I: 正在读取配置
ADMU0500I: 正在启动节点代理
ADMU2400I: 正在启动服务器: nodeagent
ADMU0026I: 完成启动服务器: nodeagent

4. 启动集群
/WebSphere/app/profiles/Dmgr01/bin/wsadmin.sh -lang jython \
-username fgeduadmin -password fgedu123 \
-c “AdminClusterManagement.startCluster(‘fgeduCluster’)”

启动集群成员: server1
启动集群成员: server2
启动集群成员: server3

3.1.2 停止服务器

# WebSphere服务器停止

1. 停止独立服务器
# 正常停止
/WebSphere/app/profiles/AppSrv01/bin/stopServer.sh server1

ADMU0116I: 正在记录工具信息
ADMU3100I: 正在读取配置
ADMU0500I: 正在停止应用程序服务器
ADMU2400I: 正在停止服务器: server1
ADMU0026I: 完成停止服务器: server1

# 强制停止
/WebSphere/app/profiles/AppSrv01/bin/stopServer.sh server1 -immediate

# 停止并生成转储
/WebSphere/app/profiles/AppSrv01/bin/stopServer.sh server1 -dump

2. 停止DMgr
/WebSphere/app/profiles/Dmgr01/bin/stopManager.sh

3. 停止节点代理
/WebSphere/app/profiles/AppSrv01/bin/stopNode.sh

4. 停止集群
/WebSphere/app/profiles/Dmgr01/bin/wsadmin.sh -lang jython \
-username fgeduadmin -password fgedu123 \
-c “AdminClusterManagement.stopCluster(‘fgeduCluster’)”

停止集群成员: server1
停止集群成员: server2
停止集群成员: server3

3.1.3 查看服务器状态

# WebSphere服务器状态查看

1. 查看服务器状态
/WebSphere/app/profiles/AppSrv01/bin/serverStatus.sh server1

ADMU0505I: 服务器 server1 的状态为 STARTED

# 查看所有服务器状态
/WebSphere/app/profiles/AppSrv01/bin/serverStatus.sh -all

ADMU0505I: 服务器 server1 的状态为 STARTED
ADMU0505I: 服务器 nodeagent 的状态为 STARTED

2. 查看进程
ps -ef | grep java | grep WebSphere

websphere 12345 1 5 10:00 ? 00:01:23 /WebSphere/app/java/bin/java -Xms2048m -Xmx4096m …

3. 查看端口
netstat -tlnp | grep java

tcp6 0 0 :::9080 :::* LISTEN 12345/java
tcp6 0 0 :::9443 :::* LISTEN 12345/java
tcp6 0 0 :::9060 :::* LISTEN 12345/java

4. 查看日志
tail -f /WebSphere/app/profiles/AppSrv01/logs/server1/SystemOut.log

3.2 WebSphere服务器配置实战

WebSphere服务器配置操作:

3.2.1 JVM参数配置

# WebSphere JVM参数配置

1. 通过管理控制台配置
# 导航:服务器 > 服务器类型 > WebSphere应用程序服务器 > server1 > Java和进程管理 > 进程定义 > Java虚拟机

# 配置项:
初始堆大小:4096
最大堆大小:8192
通用JVM参数:-Xmn2048m -XX:+UseG1GC

2. 通过wsadmin配置
/WebSphere/app/profiles/AppSrv01/bin/wsadmin.sh -lang jython \
-username fgeduadmin -password fgedu123

# 获取JVM配置
jvm = AdminConfig.list(‘JavaVirtualMachine’, AdminConfig.getid(‘/Cell:fgeduCell01/Node:fgeduNode01/Server:server1/’))

# 设置堆大小
AdminConfig.modify(jvm, ‘[[initialHeapSize 4096] [maximumHeapSize 8192]]’)

# 设置通用JVM参数
AdminConfig.modify(jvm, ‘[[genericJvmArguments “-Xmn2048m -XX:+UseG1GC”]]’)

# 保存配置
AdminConfig.save()

3. 验证配置
cat /WebSphere/app/profiles/AppSrv01/config/cells/fgeduCell01/nodes/fgeduNode01/servers/server1/server.xml | grep -A5 jvmEntries


3.2.2 Web容器配置

# WebSphere Web容器配置

1. 配置线程池
# 管理控制台:服务器 > server1 > 线程池 > WebContainer

# 最小大小:50
# 最大大小:200
# 超时:60秒

# 通过wsadmin配置
tp = AdminConfig.list(‘ThreadPool’, AdminConfig.getid(‘/Cell:fgeduCell01/Node:fgeduNode01/Server:server1/’))
AdminConfig.modify(tp, ‘[[minimumSize 50] [maximumSize 200] [inactivityTimeout 60]]’)
AdminConfig.save()

2. 配置会话管理
# 管理控制台:服务器 > server1 > 容器设置 > Web容器设置 > 会话管理

# 启用会话跟踪
# 会话超时:30分钟
# 启用Cookie

3. 配置虚拟主机
# 管理控制台:环境 > 虚拟主机 > default_host > 主机别名

# 添加主机别名
# 主机名:*
# 端口:9080

# 通过wsadmin配置
vh = AdminConfig.getid(‘/VirtualHost:default_host/’)
AdminConfig.create(‘HostAlias’, vh, ‘[[hostname “*”] [port 9080]]’)
AdminConfig.save()

4. 重启服务器使配置生效
/WebSphere/app/profiles/AppSrv01/bin/stopServer.sh server1
/WebSphere/app/profiles/AppSrv01/bin/startServer.sh server1

3.3 WebSphere服务器日志管理

WebSphere服务器日志管理:

3.3.1 日志文件说明

# WebSphere服务器日志文件

日志目录:/WebSphere/app/profiles/AppSrv01/logs/server1/

主要日志文件:
SystemOut.log:标准输出日志
– 应用输出信息
– 系统消息
– 启动信息

SystemErr.log:标准错误日志
– 错误信息
– 异常堆栈

trace.log:跟踪日志
– 详细调试信息
– 需要启用跟踪

activity.log:活动日志
– 管理操作记录
– 配置变更记录

ffdc/:故障诊断日志
– 自动生成的诊断信息
– 用于问题分析

# 日志文件大小
ls -lh /WebSphere/app/profiles/AppSrv01/logs/server1/

-rw-r–r– 1 websphere websphere 50M Apr 10 10:00 SystemOut.log
-rw-r–r– 1 websphere websphere 10M Apr 10 10:00 SystemErr.log
-rw-r–r– 1 websphere websphere 100M Apr 10 10:00 trace.log
-rw-r–r– 1 websphere websphere 20M Apr 10 10:00 activity.log

3.3.2 日志配置

# WebSphere日志配置

1. 配置日志输出
# 管理控制台:故障诊断 > 日志和跟踪 > server1 > JVM日志

# 配置项:
SystemOut日志文件名:${SERVER_LOG_ROOT}/SystemOut.log
SystemErr日志文件名:${SERVER_LOG_ROOT}/SystemErr.log
文件最大大小:100MB
历史文件数:10

2. 配置跟踪日志
# 管理控制台:故障诊断 > 日志和跟踪 > server1 > 诊断跟踪

# 启用跟踪
# 跟踪字符串:*=info:com.ibm.ws.webcontainer*=all

# 通过wsadmin配置
ts = AdminConfig.list(‘TraceService’, AdminConfig.getid(‘/Cell:fgeduCell01/Node:fgeduNode01/Server:server1/’))
AdminConfig.modify(ts, ‘[[startupTraceSpecification “*=info:com.ibm.ws.webcontainer*=all”]]’)
AdminConfig.save()

3. 日志轮转配置
# 日志文件达到最大大小时自动轮转
# 保留历史文件

4. 日志分析
# 查看最近的错误
grep -i error /WebSphere/app/profiles/AppSrv01/logs/server1/SystemOut.log | tail -20

# 查看异常堆栈
grep -A 20 “Exception” /WebSphere/app/profiles/AppSrv01/logs/server1/SystemErr.log | tail -50

3.4 WebSphere服务器故障处理

WebSphere服务器常见故障处理:

3.4.1 启动失败处理

# WebSphere服务器启动失败处理

1. 检查日志
tail -100 /WebSphere/app/profiles/AppSrv01/logs/server1/SystemOut.log

# 常见错误:
# – 端口被占用
# – 内存不足
# – 配置错误
# – 许可证问题

2. 检查端口占用
netstat -tlnp | grep 9080

tcp6 0 0 :::9080 :::* LISTEN 12345/java

# 如果端口被占用,停止占用进程或修改端口

3. 检查内存
free -m

total used free shared buff/cache available
Mem: 16000 8000 2000 1000 5000 6000

# 如果内存不足,调整JVM参数或增加物理内存

4. 检查配置文件
# 验证配置文件语法
/WebSphere/app/bin/validateConfig.sh /WebSphere/app/profiles/AppSrv01/config

5. 清理临时文件
rm -rf /WebSphere/app/profiles/AppSrv01/temp/*
rm -rf /WebSphere/app/profiles/AppSrv01/wstemp/*

6. 重新启动
/WebSphere/app/profiles/AppSrv01/bin/startServer.sh server1

3.4.2 性能问题处理

# WebSphere服务器性能问题处理

1. 检查CPU使用
top -p $(pgrep -f “WebSphere”)

# 高CPU使用率可能原因:
# – 应用代码问题
# – GC频繁
# – 线程死锁

2. 检查内存使用
jmap -heap $(pgrep -f “server1”)

Attaching to process ID 12345, please wait…
Debugger attached successfully.
Server compiler detected.
JVM version is 2.9

using thread-local object allocation.
Garbage-First (G1) GC with 4 thread(s)

Heap Configuration:
MinHeapFreeRatio = 40
MaxHeapFreeRatio = 70
MaxHeapSize = 8589934592 (8192.0MB)
NewSize = 2147483648 (2048.0MB)

3. 检查GC日志
# 启用GC日志
# JVM参数添加:-Xverbosegclog:/WebSphere/logs/gc.log

# 分析GC日志
tail -100 /WebSphere/logs/gc.log

4. 线程转储分析
# 生成线程转储
kill -3 $(pgrep -f “server1”)

# 或使用wsadmin
/WebSphere/app/profiles/AppSrv01/bin/wsadmin.sh -lang jython \
-c “AdminTask.generateHeapDump(‘[-nodeName fgeduNode01 -serverName server1]’)”

# 查看线程转储
ls -lh /WebSphere/app/profiles/AppSrv01/*.hprof

5. 性能调优
# 调整JVM参数
# 调整线程池
# 调整连接池

风哥提示:WebSphere服务器故障处理需要系统化的方法,首先检查日志定位问题,然后根据具体情况进行处理。建议建立故障处理知识库,记录常见问题和解决方案。学习交流加群风哥QQ113257174

Part04-生产案例与实战讲解

4.1 WebSphere服务器配置案例

某企业WebSphere服务器配置案例:

4.1.1 案例背景

# WebSphere服务器配置案例

企业背景:
– 应用类型:企业门户系统
– 并发用户:5000
– 服务器配置:16核CPU,64GB内存
– WebSphere版本:9.0.5.15

配置目标:
– 优化JVM参数
– 配置线程池
– 配置连接池
– 启用监控

# 配置方案
JVM参数:
– 初始堆:16GB
– 最大堆:32GB
– 新生代:8GB
– GC算法:G1GC

线程池:
– WebContainer:最小50,最大200
– ORB:最小10,最大50

连接池:
– 最大连接数:100
– 最小连接数:20

4.1.2 配置实施

# 配置实施步骤

1. JVM参数配置
/WebSphere/app/profiles/AppSrv01/bin/wsadmin.sh -lang jython \
-username fgeduadmin -password fgedu123

# 设置JVM参数
jvm = AdminConfig.list(‘JavaVirtualMachine’, AdminConfig.getid(‘/Cell:fgeduCell01/Node:fgeduNode01/Server:server1/’))
AdminConfig.modify(jvm, ‘[[initialHeapSize 16384] [maximumHeapSize 32768]]’)
AdminConfig.modify(jvm, ‘[[genericJvmArguments “-Xmn8192m -XX:+UseG1GC -XX:MaxGCPauseMillis=200”]]’)

# 保存配置
AdminConfig.save()

2. 线程池配置
tp = AdminConfig.list(‘ThreadPool’, AdminConfig.getid(‘/Cell:fgeduCell01/Node:fgeduNode01/Server:server1/’))
for t in tp.split(‘\n’):
if ‘WebContainer’ in t:
AdminConfig.modify(t, ‘[[minimumSize 50] [maximumSize 200] [inactivityTimeout 60]]’)
AdminConfig.save()

3. 重启服务器
exit

/WebSphere/app/profiles/AppSrv01/bin/stopServer.sh server1
/WebSphere/app/profiles/AppSrv01/bin/startServer.sh server1

4. 验证配置
# 检查JVM参数
ps -ef | grep java | grep server1

/WebSphere/app/java/bin/java -Xms16384m -Xmx32768m -Xmn8192m -XX:+UseG1GC …

# 检查内存使用
jmap -heap $(pgrep -f “server1”)

Heap Configuration:
MaxHeapSize = 34359738368 (32768.0MB)
NewSize = 8589934592 (8192.0MB)

4.2 WebSphere服务器运维案例

WebSphere服务器日常运维案例:

4.2.1 日常运维脚本

# WebSphere日常运维脚本

#!/bin/bash
# was_daily_check.sh
# from:www.itpux.com.qq113257174.wx:itpux-com
# web: http://www.fgedu.net.cn

echo “=== WebSphere日常巡检 ===”
echo “日期: $(date)”

# 1. 检查服务器状态
echo “1. 服务器状态:”
/WebSphere/app/profiles/AppSrv01/bin/serverStatus.sh server1

# 2. 检查进程
echo “2. 进程信息:”
ps -ef | grep java | grep WebSphere | grep -v grep

# 3. 检查端口
echo “3. 端口监听:”
netstat -tlnp | grep java | head -10

# 4. 检查内存
echo “4. 内存使用:”
free -m

# 5. 检查磁盘
echo “5. 磁盘使用:”
df -h /WebSphere

# 6. 检查日志错误
echo “6. 最近错误:”
grep -i error /WebSphere/app/profiles/AppSrv01/logs/server1/SystemOut.log | tail -5

# 7. 检查应用状态
echo “7. 应用状态:”
/WebSphere/app/profiles/AppSrv01/bin/wsadmin.sh -lang jython \
-username fgeduadmin -password fgedu123 \
-c “print AdminApp.list()” 2>/dev/null

# 8. 检查JVM使用
echo “8. JVM内存使用:”
jstat -gc $(pgrep -f “server1”) 2>/dev/null | tail -1

echo “=== 巡检完成 ===”

4.2.2 日志清理脚本

# WebSphere日志清理脚本

#!/bin/bash
# log_cleanup.sh
# from:www.itpux.com.qq113257174.wx:itpux-com
# web: http://www.fgedu.net.cn

LOG_DIR=/WebSphere/app/profiles/AppSrv01/logs/server1
RETENTION_DAYS=30

echo “=== WebSphere日志清理 ===”
echo “日志目录: $LOG_DIR”
echo “保留天数: $RETENTION_DAYS”

# 清理旧日志文件
find $LOG_DIR -name “*.log.*” -mtime +$RETENTION_DAYS -delete
find $LOG_DIR -name “*.hprof” -mtime +7 -delete
find $LOG_DIR -name “javacore*” -mtime +7 -delete
find $LOG_DIR -name “Snap*” -mtime +7 -delete

# 清理FFDC日志
find $LOG_DIR/ffdc -name “*.txt” -mtime +$RETENTION_DAYS -delete

# 显示清理结果
echo “清理后日志大小:”
du -sh $LOG_DIR

echo “=== 清理完成 ===”

4.3 WebSphere服务器故障处理案例

WebSphere服务器故障处理案例:

4.3.1 内存溢出故障

# 故障现象:服务器频繁崩溃

错误信息:
java.lang.OutOfMemoryError: Java heap space

# 问题分析
1. 检查堆内存使用
jmap -heap $(pgrep -f “server1”)

Heap Configuration:
MaxHeapSize = 4294967296 (4096.0MB) # 堆内存偏小

2. 分析堆转储
# 生成堆转储
jmap -dump:format=b,file=/WebSphere/logs/heap.hprof $(pgrep -f “server1”)

# 使用MAT分析堆转储
# 发现大量对象未释放

3. 检查应用代码
# 发现应用存在内存泄漏

# 解决方案
1. 增加堆内存
AdminConfig.modify(jvm, ‘[[maximumHeapSize 8192]]’)

2. 修复应用内存泄漏
# 修改应用代码

3. 配置OOM时自动转储
AdminConfig.modify(jvm, ‘[[genericJvmArguments “-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/WebSphere/logs/”]]’)

4. 重启服务器
/WebSphere/app/profiles/AppSrv01/bin/stopServer.sh server1
/WebSphere/app/profiles/AppSrv01/bin/startServer.sh server1

# 验证结果
# 服务器稳定运行,无OOM错误

4.3.2 端口冲突故障

# 故障现象:服务器启动失败

错误信息:
ADMU3027E: 服务器无法启动。端口 9080 已在使用中。

# 问题分析
netstat -tlnp | grep 9080

tcp6 0 0 :::9080 :::* LISTEN 12345/java

# 发现端口被其他进程占用

# 解决方案1:停止占用进程
kill 12345

# 解决方案2:修改WebSphere端口
# 管理控制台:服务器 > server1 > 端口 > WC_defaulthost
# 修改为:9081

# 通过wsadmin修改
ports = AdminConfig.list(‘NamedEndPoint’, AdminConfig.getid(‘/Cell:fgeduCell01/Node:fgeduNode01/Server:server1/’))
for p in ports.split(‘\n’):
if ‘WC_defaulthost’ in p:
AdminConfig.modify(p, ‘[[port 9081]]’)
AdminConfig.save()

# 重启服务器
/WebSphere/app/profiles/AppSrv01/bin/startServer.sh server1

# 验证
netstat -tlnp | grep 9081

tcp6 0 0 :::9081 :::* LISTEN 23456/java

Part05-风哥经验总结与分享

5.1 WebSphere服务器运维检查清单

WebSphere服务器运维检查清单:

# WebSphere服务器运维检查清单

每日检查:
□ 服务器运行状态
□ 应用访问正常
□ 日志错误检查
□ 磁盘空间检查
□ 备份执行状态

每周检查:
□ 性能指标分析
□ JVM内存使用
□ 线程池使用率
□ 连接池使用率
□ 日志文件清理

每月检查:
□ 安全审计
□ 配置备份
□ 补丁评估
□ 容量规划
□ 性能调优

# 检查脚本模板
#!/bin/bash
# daily_check.sh
# from:www.itpux.com.qq113257174.wx:itpux-com
# web: http://www.fgedu.net.cn

# 服务器状态
# 应用状态
# 资源使用
# 日志检查
# 备份检查

5.2 WebSphere服务器常见问题

WebSphere服务器常见问题及解决方案:

5.2.1 常见问题汇总

# WebSphere服务器常见问题

问题1:服务器启动慢
原因:应用过多、内存不足、磁盘IO慢
解决:优化应用、增加内存、使用SSD

问题2:服务器响应慢
原因:线程池不足、数据库慢、网络延迟
解决:调整线程池、优化数据库、检查网络

问题3:内存溢出
原因:堆内存不足、内存泄漏
解决:增加堆内存、修复内存泄漏

问题4:连接池耗尽
原因:连接泄漏、并发过高
解决:修复连接泄漏、增加连接池

问题5:会话丢失
原因:会话超时、会话复制失败
解决:调整超时、检查会话复制

问题6:日志文件过大
原因:日志级别过高、未配置轮转
解决:调整日志级别、配置日志轮转

5.3 WebSphere服务器运维最佳实践

基于多年WebSphere运维经验,总结服务器运维最佳实践:

5.3.1 运维原则

  • 监控先行:建立完善的监控体系,及时发现异常
  • 日志规范:规范日志管理,便于问题排查
  • 定期巡检:定期检查系统状态,预防问题发生
  • 文档完善:记录配置变更和问题处理过程

5.3.2 运维建议

  • 自动化运维:使用脚本自动化日常运维任务
  • 容量规划:定期评估资源使用,提前规划扩容
  • 应急演练:定期进行故障演练,提高应急能力
  • 知识积累:建立运维知识库,积累经验
生产环境建议:WebSphere服务器运维需要建立完善的流程和制度,包括日常巡检、故障处理、变更管理等。建议使用自动化工具提高运维效率,同时建立完善的监控和告警体系,确保系统稳定运行。from WebSphere视频:www.itpux.com

本文档详细介绍了WebSphere 9.0.5应用服务器的配置与基础运维,包括服务器概述、组件说明、配置结构、端口说明、启动停止、配置管理、日志管理、故障处理等内容。通过学习本文档,读者可以掌握WebSphere应用服务器的日常运维技能,确保系统稳定运行。更多视频教程www.fgedu.net.cn

本文由风哥教程整理发布,仅用于学习测试使用,转载注明出处:http://www.fgedu.net.cn/10327.html

联系我们

在线咨询:点击这里给我发消息

微信号:itpux-com

工作日:9:30-18:30,节假日休息