使用最新的JFrog产品?hth华体会最新官方网站
JFrog平台用户指南
JFrog x射线x文档
要获得最新版本,请访问JFrog统一平台
- 由Adi Atzmony,最后修改为未知用户(eliezerb)在2020年2月10日
概述
本页面提供用户遇到的常见问题的解决方法。
配置文件夹
在一些情况下,解决方案需要访问Xray内部数据和配置文件。这些文件的位置可以通过运行/ x光信息。
.
例如:
./xray信息服务器端口:8000 docker挂载文件夹:/home/vagrant/.jfrog/xray
x射线不是索引工件
导致 | RabbitMQ消息代理可能有问题 |
决议 | 检查RabbitMQ事件、索引或持久队列中的消息。你可以通过RabbitMQ控制台访问队列:http://localhost:15672/#/queues 如果您无法访问RabbitMQ界面,您可以尝试使用SSH -L15672:127.0.0.1:15672创建一个SSH隧道root@<机器ip > |
导致 | x射线已达到配置的磁盘使用限制(默认为80%) |
决议 | 的值可以增加磁盘使用限制maxDiskDataUsage 在x光的xray_config.yaml 配置文件. |
x射线无法与Artifactory通信
导致 | x射线未配置为不安全模式 |
决议 | 中设置以下参数,启用不安全模式x光的
|
Xray不加载web UI,也不与REST API交互
导致 | 通常,这可能是由于一个或多个Xray的微服务没有启动 |
决议 | 使用Xray sh脚本检查微服务的状态,并确认所有的微服务都已完全启动,例如: ./xray.sh所有状态 或者Docker: / xray.sh ps。 |
Xray的RabbitMQ队列中有大量的消息
导致 | 一个正常工作的Xray系统的RabbitMQ队列的计数应该是相对水平的(接近0),这将表示并提供最好的性能和最快的结果。 大量的消息云可能发生是由于: 1.一个x射线服务/组件的工作速度不够快,无法处理它的队列 2.在某个组件上发生了一些错误/意外行为,根据相应的RabbitMQ队列搜索日志将提供深入了解 |
决议 | 1.临时增加负责适当队列(例如分析)的工作人员的数量,或为机器分配更多的资源;2022世界杯阿根廷预选赛赛程RAM和cpu用于更快的处理,SSD用于更快的磁盘I/O。 2.搜索适当的日志文件(例如x射线-analysis.log),寻找任何[error]或“Caused by”消息作为原因。 |
x射线正在使用大量的空间,并可能停止索引
导致 | 这可能是由于其中之一(或两者的结合): 1.$XRAY_DATA位置没有正确配置-因此阻止x射线磁盘采样器检查磁盘空间可用性的正确路径 2.允许的磁盘利用率设置过高 3.应该删除的临时文件(在$XRAY_HOME/data/data/下)正在消耗大量的空间 4.*主要是适用于大规模场景:其他数据库(RabbitMQ/PostgreSQL/MongoDB)占用空间较大 |
决议 | 1.在事件组件上启用调试日志记录,以查看检查的路径,期望看到一个日志条目说明:"数据文件夹<位置>,已使用:<%>,已配置阈值<%>。通过改变xrayDataFolder根据xray_config.yaml文件到正确的位置。 2.在xray_config.yaml的maxDiskDataUsage标志到一个较低的值。在大规模环境中,特别是在处理大型文件时,将消耗更多的空间(临时)以允许递归索引过程完成。 3.Xray版本1.9在处理由于意外错误(例如与文件损坏有关的错误)导致索引失败的情况方面有了显著改进,并将自动删除这些错误。 也可以检查RabbitMQ的重试队列内容(获取消息)来检查消息并将它们的位置关联到xray_indexer.log*文件下。这将为重试操作提供洞察。 4.配置RabbitMQ数据库(mnesia)和$XRAY_HOME (两者应位于同一坐垫下)到一个大的挂载(通常是1-2TB) /etc/rabbitmq/rabbitmq-env.conf(默认没有创建): rabbitmq RABBITMQ_MNESIA_BASE = / home / / mnesia 从RabbitMQ & $XRAY_HOME中分离Mongo和PostgreSQL(可以和/或应该在同一个挂载下配对,但要分开): Postgres:
如果要在安装完成后进行移动,是可以跟随的本指南-确保PostgreSQL已停止
|
在系统故障事件或磁盘空间耗尽后,x射线无法启动
导致 | 如果RabbitMQ没有成功启动(使用上面故障排除中的命令),可能是这个原因在意外的系统状态发生后,RabbitMQ遇到数据损坏,导致其消息和/或队列存储丢失完整性。 |
决议 |
检查以下RabbitMQ文件诊断原因:
/var/log/rabbitmq/startup_log
/var/log/rabbitmq/startup_err
这些日志文件在诊断RabbitMQ相关问题时特别有用。
下面是指示a的常见错误bad_match错误(摘录):
BOOT FAILED ===========错误描述:{could_not_start,rabbit, {{badmatch, {Error, {{badmatch, {Error, {not_a_dets_file, "/var/lib/rabbitmq/mnesia/rabbit@
在这种情况下,删除下面路径下的RabbitMQ队列相关文件会有所帮助:
/var/lib/rabbitmq/mnesia/ <用户名> @ < id > / recovery.dets 然后尝试重新启动Xray的微服务,使用:
$./xray.sh重启所有
如果这没有帮助的话,进行去除队列消息存储董事:
/var/lib/rabbitmq/mnesia/ <用户名> @ < id > /msg_store_transient
/var/lib/rabbitmq/mnesia/ <用户名> @ < id > / msg_store_persistent
/var/lib/rabbitmq/mnesia/ <用户名> @ < id > /队列
再次,重启Xray的微服务,并使用web UI访问Xray。
|
x射线不能发送电子邮件通知
导致 | x射线未配置为在不安全模式下与电子邮件服务器一起工作 |
决议 | 启用不安全模式中的以下参数x光的
|
x射线在其日志文件中没有提供足够的信息
导致 | 默认情况下,Xray配置为INFO级日志记录。 |
决议 | 对于要分析的每个日志文件,将日志级别设置为DEBUG。每个x射线服务的日志级别设置在下面的对应配置文件中 |
x射线数据库迁移失败,需要重试
导致 | 升级完成后,Xray正在进行迁移。当迁移开始时,它会创建一个锁定机制,以便在执行迁移时阻止对数据库的外部操作。 如果迁移失败,锁将保留,锁定x射线,但可以重试,并在下次运行时成功。 |
决议 | 快速总结一下我们将要采取的步骤: 1.检查迁移失败的原因和原因。这是可选的,尽管不是强制性的,但对未来的避税很有用。 2.删除锁,以便重新尝试迁移。
1.停止所有x射线服务: Non-Docker $ ./xray.sh停止所有 码头工人: $ ./xray.sh stop 2.仅启动MongoDB和PostgreSQL: Non-Docker: 启动postgresql-9.5 $ service mongod start 码头工人: $ docker start xray_mongodb_1 $ docker start xray_postgres_1 3.执行操作MongoDB的一面: a.连接MongoDB: Non-Docker: $ mongo -u x射线-p password——authenticationDatabase x射线 码头工人: $ docker exec -它xray_mongodb_1 bash 在Docker bash shell中连接到MongoDB: $ mongo -u x射线-p password——authenticationDatabase x射线 b.切换到x射线DB: $ use x射线 c找到当前DB迁移的状态,包括失败的迁移(对理解DB模式迁移版本很重要): 美元db.db_migrations_running.find ({}) .pretty () e.将输出复制到一边以供研究: 美元db.db_migrations.find ({}) .sort({“版本”:1}).limit (1) 输出的示例(对4这样做。分析步骤如下): {"_id": ObjectId("5a4bd9be95e701000100c37b"), "version": NumberLong(27)} *上面的行将告诉我们正在运行的迁移的ID f。使用以下命令移除所有迁移锁: 美元db.db_migrations_running.deleteMany ({}) 在这一点上,你可以跳到步骤5。
数据库只有状态信息: MongoDB。,复制两个命令的输出(在上面的步骤3中提供): 美元的。db.db_migrations_running.find ({}) .pretty () b。美元db.db_migrations.find ({}) .sort({“版本”:1}).limit (1) b。PostgreSQL,收集以下信息PostgreSQL数据库: 连接到PostgreSQL数据库: Non-Docker: $ PSQL xraydb x射线 码头工人: $ docker exec -it xray_postgres_1 /bin/bash $ PSQL xraydb x射线 *如果/当提示输入密码时,输入x光 *xraydb是数据库的名称,x光是用户名
$ SELECT * FROM schema_migrations; *将输出复制到一边 b.输入: 美元\问 c.迁移时间段的Xray Services日志: xray_server.log xray_persist.log xray_event.log 5.重新启动所有x射线服务。这将触发迁移重新运行。 |
- 没有标签