故障现象
页面无明显报错,没有数据。
故障影响
审计日志无法正常查看。
应急处理
- 页面无明显报错,没有数据,一般是支撑es或kakfa异常导致查询不到数据。
#进去pod内 ----租户端举例,运营端相同查询方法
kubectl exec -it -n tce tcloud-cloudaudit-cloudtrail-xxxx
cd /data/log/cloudtrail/detail
#查看最新日志,是否es相关报错
tail -f daily_2025xxxx.log
#进去pod内 ----租户端举例,运营端相同查询方法
kubectl exec -it -n tce tcloud-cloudaudit-auditreport-xxxx
cd /data/log/audit
#查看最新日志,是否有kafka相关报错
tail -f audit_report.logger.log
- 检查es状态、索引。
租户端
ip=`kubectl get secret -n tce es-cloudaudit -oyaml | grep ipv4 | awk -F ' ' '{print $2}' | base64 -d`
port=`kubectl get secret -n tce es-cloudaudit -oyaml | grep port | awk -F ' ' '{print $2}' | base64 -d`
user=`kubectl get secret -n tce es-cloudaudit -oyaml -oyaml | grep -w user | awk -F ' ' '{print $2}' | base64 -d`
pass=`kubectl get secret -n tce es-cloudaudit -oyaml | grep -w password | awk -F ' ' '{print $2}' | base64 -d`
#查看es集群状态是否正常
curl -u $user:$pass -s http://$ip:$port/_cluster/health?pretty
#查看es集群是否只读
curl -u $user:$pass -s http://$ip:$port/_cluster/settings | python -m json.tool | grep -i read_only
#查看索引
curl -u $user:$pass -s http://$ip:$port/_cat/indices?v | grep traillog_server_log
运营端
ip=`kubectl get secret -n tce es-ocloud-cloudaudit -oyaml | grep ipv4 | awk -F ' ' '{print $2}' | base64 -d`
port=`kubectl get secret -n tce es-ocloud-cloudaudit -oyaml | grep port | awk -F ' ' '{print $2}' | base64 -d`
user=`kubectl get secret -n tce es-ocloud-cloudaudit -oyaml -oyaml | grep -w user | awk -F ' ' '{print $2}' | base64 -d`
pass=`kubectl get secret -n tce es-ocloud-cloudaudit -oyaml | grep -w password | awk -F ' ' '{print $2}' | base64 -d`
#查看es集群状态是否正常
curl -u $user:$pass -s http://$ip:$port/_cluster/health?pretty
#查看es集群是否只读
curl -u $user:$pass -s http://$ip:$port/_cluster/settings | python -m json.tool | grep -i read_only
#查看索引
curl -u $user:$pass -s http://$ip:$port/_cat/indices?v | grep traillog_server_log
- es集群正常,出现只读,一般是es集群磁盘满了,需要清理审计索引。
#查看索引
curl -u $user:$pass -s http://$ip:$port/_cat/indices?v | grep traillog_server_log
#清理时间旧的索引
#关闭es只读状态
curl -u $user:$pass -H "Content-Type:application/json" -XPUT http://$ip:$port/_cluster/settings -d '{
"persistent": {
"cluster.blocks.read_only_allow_delete": false
}
}'
curl -H "Content-Type: application/json" -u $user:$pass -XPUT http://$ip:$port/_all/_settings' -d '{"index":{"blocks":{"read_only_allow_delete":null}}}
#开启批量删除模式吧
curl -H "Content-Type: application/json" -XPUT http://$ip:$port/_cluster/settings -d '{
"persistent": {
"action.destructive_requires_name": false
}
}'
#最后删除索引
curl -XDELETE http://$ip:$port/traillog_server_log-2022*
- 如果es集群状态异常,需要找支撑队列处理es问题。
- 如果es集群状态正常,没有出现只读,则再检查kafka状态。
检查kafka状态、topic是否创建。
- 参考kafka状态检查方法:
# 检查kafka实例pod状态 kubectl get pod -n sso | grep kafka-kafka # 登录kafka pod内,检查审计服务的topic是否正常创建 kubectl exec -it -n sso $(kubectl get pod -n sso | grep `kubectl get sb -n tce | grep kafka-cam | grep -v exporter | awk '{print $2}'` | head -n 1 | awk '{print $1}') bash unset JMX_PORT # 获取zk地址 zk=$(grep '^zookeeper.connect=' /etc/kafka/server.properties | awk -F= '{print $NF}') # 减少控制台日志输出 export KAFKA_LOG4J_OPTS=-Dlog4j.rootLogger=INFO cd /opt/kafka_2.11-1.1.1/bin/ ./kafka-topics.sh --list --zookeeper $zk | grep -E 'cloudaudit|req_production' #对比需要创建的kafka topic kubectl get sb -n tce kafka-cam -ojson | jq .spec.parameters.topicList kubectl get sb -n tce kafka-tcenter-ocloud-cam -ojson | jq .spec.parameters.topicList- 正常topic

- 如果kafka状态异常,需要找支撑队列处理kafka问题。
缺少审计使用的topic,删除审计使用的sb,重建topic,再检查topic是否正常创建。
kubectl delete sb -n tce kafka-cam/kafka-tcenter-ocloud-cam
