monitor日志排查思路
1 排查思路
monitor日志收集展示依赖于elasticsearch(es)、logstash、kafka服务。苍穹日志收集链路为:苍穹服务 --> kafka --> logstash --> elasticsearch --> monitor
首先对常见的错误进行排查:
1.1 检查kafka、logstash、es服务是否正常运行
以下为服务正常运行截图:
systemctl status kafka netstat -nalp|grep 9092|grep -i listen
若状态为inactive,重启kafka。
systemctl restart kafka
systemctl status logstash netstat -nalp|grep 9600|grep -i listen
若状态为inactive,重启logstash。
systemctl restart logstash
systemctl status es netstat -nalp|grep 9200|grep -i listen
若状态为inactive,重启es。
systemctl restart es
1.2 检查elk服务安装目录的磁盘占用
检查磁盘占用是否超过85%(超过85%,es进入只读状态无法写入日志)。
df -h
(1) 若超过了85%,先查看是否是es数据占用了太多磁盘空间(esdata目录),若是,可以
选择给磁盘扩容(磁盘空间较小)或者手动删除es日志索引,若是其他大文件占用的磁盘
空间,自行判断进行清理或者扩容。
查看esdata目录大小。
du -sh esdata
查看索引。
curl http://127.0.0.1:9200/_cat/indices -uelastic:Cosmic@2020
删除对应日期的es索引数据,比如*2021-04*会匹配到21年4月份的日志,*2021-04-22*可以匹配到4月22日的日志,根据以下命令进行修改,若需要删除全部日志,清空esdata下内容并重启es。
curl -X DELETE http://127.0.0.1:9200/*2021-04* -u elastic:Cosmic@2020
(2) 针对以上es数据大的问题。
① 检查是否设置了定时清理任务。
若没有设置,使用crontab -uelsearch -e 设置定时任务。
crontab -uelsearch -e 0 1 * * * sh /home/elsearch/autoclear.sh
② 检查/home/elsearch/autoclear.sh文件中指定的账号密码是否有误。
可以使用以下命令重置账号密码(其中elastic处填写账号,Cosmic@2020为密码):
curl -u kdadmin:Kdes_2019 -XPUT 'http://127.0.0.1:9200/_xpack/security/user/'elastic'/_password?pretty' -H 'Content-Type: application/json' -d '{ "password" : "'Cosmic@2020'" }'
(3) 磁盘超过85%,清理空间之后需要使用命令解除索引只读状态。
curl -XPUT -H "Content-Type: application/json" http://127.0.0.1:9200/_all/_settings -d '{"index.blocks.read_only_allow_delete": null}' -uelastic:Cosmic@2020
(4) 以上操作后,仍无法显示日志,重启下服务。
systemctl restart es logstash kafka
1.3 检查日志有没有输出到kafka和es
(1) 检查日志有没有输出到kafka。
① 切换到kafka的bin目录下,执行以下命令查看是否有topic产生,有”集群编码-log”的topic才是正常的。
./kafka-topics.sh --list --zookeeper zookeeperip:2181
例:
./kafka-topics.sh --list --zookeeper 10.203.12.8:2181
② 执行以下命令查看日志是否输出到kafka。
./kafka-console-consumer.sh --bootstrap-server kafkaip:9092 --from-beginning --topic [TopicName]
例:
./kafka-console-consumer.sh --bootstrap-server 10.203.12.20:9092 --from-beginning --topic ierp-log
若有输出类似以下结果,说明日志已经输出到kafka。
③ 若日志没有输出到kafka,检查MC中的配置。
检查MC群管理配置信息中kafka的ip和端口是否配置有误。
检查公共配置项log.config中,日志输出到kafka的配置:
注意事项:修改完正确配置后,若还没有日志,需重启苍穹服务mservice
(2) 检查日志有没有输出到es。
① 用以下命令查看索引。
curl 127.0.0.1:9200/_cat/indices -uelastic:Cosmic@2020
上面说明正常输出到es,这时候一般monitor可查看到日志了。
② 若通过上述命令没有查到ierp-log-*这样的记录(ierp对应集群编码),说明没有输出到es,需检查logstash配置文件javalog.conf, ,检查topics、ip和es用户密码有没有配置正确,topics值前面部分对应集群编码,修改配置正确之后,重启logstash服务,再执行步骤①。
2 常见报错
切换经典版查看,http://ip:port/monitor/
登录之后将url修改为http://ip:port/monitor/?version=old
2.1 elasticsearch服务未正常启动
2.2 mc集群配置中elasticsearch的用户密码不正确
MC集群管理中es用户密码配置项如下:
注意事项:修改es用户名密码后,除了集群发布还需要重启苍穹服务
2.3 kafka或logstash服务未正常启动
3 自动清理脚本优化
es索引清理脚本/home/elsearch/autoclear.sh配置了linux定时任务定时执行。可通过crontab -uelsearch -l 查看。
旧的清理脚本只会清理几天前的当天的日志,不会清理之前的日志,新的脚本会将7天以前的所有日志都清理,es_user,es_password对应es的用户和密码,修改“7 days ago” 可以修改日志保留时间,比如修改为”5 days ago”。
#!/bin/bash es_user=elastic es_password="Kingdee@2020" retain_time=`date +%Y%m%d -d "7 days ago"` function delete_indices() { time_num=`echo $1|sed 's/-//g'` if [ ${time_num} -lt ${retain_time} ];then curl -X DELETE http://127.0.0.1:9200/*$1* -u ${es_user}:${es_password} >>/dev/null 2>&1 fi } curl -XGET http://127.0.0.1:9200/_cat/indices -u ${es_user}:${es_password} |awk '{print $3}' |grep '[0-9]\{4\}-[0-9]\{2\}-[0-9]\{2\}'|awk '{print substr($0,length($0)-9)}'|sort -n|uniq|while read line; do delete_indices $line; done
monitor日志排查思路
本文2024-09-23 01:14:15发表“云苍穹知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-cangqiong-144658.html
- 鼎捷EAI整合規範文件V3.1.07 (集團).pdf
- 鼎捷OpenAPI應用場景說明_基礎資料.pdf
- 鼎捷OpenAPI應用場景說明_財務管理.pdf
- 鼎捷T100 API設計器使用手冊T100 APIDesigner(V1.0).docx
- 鼎新e-GoB2雲端ERP B2 線上課程E6-2應付票據整批郵寄 領取.pdf
- 鼎新e-GoB2雲端ERP B2 線上課程A4使用者建立權限設定.pdf
- 鼎新e-GoB2雲端ERP B2 線上課程C3會計開帳與會計傳票.pdf
- 鼎新e-GoB2雲端ERP B2 線上課程E6-1應付票據.pdf
- 鼎新e-GoB2雲端ERP B2 線上課程A5-1進銷存參數設定(初階篇).pdf
- 鼎新e-GoB2雲端ERP B2 線上課程D2帳款開帳與票據開帳.pdf