使用最新的JFrog产品?hth华体会最新官方网站
JFrog平台用户指南


跳到元数据的末尾
转到元数据的开始

概述

本页面提供用户常见问题的解决方法。

配置文件夹

在一些情况下,解决方案需要访问Xray内部数据和配置文件。这些文件的位置可以通过运行/ x光信息。

例如:

./xray info服务器端口: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 >

导致 Xray已达到配置的磁盘使用限制(默认为80%)
决议 通过增加的值来增加磁盘使用限制maxDiskDataUsage在x光的xray_config.yaml配置文件

Xray无法与Artifactory通信

导致 x射线未配置为不安全模式
决议

通过设置如下参数来启用不安全模式x光的xray_config.yaml配置文件

sslInsecure:真

Xray不加载web UI或与REST API交互

导致 通常,这可能是由于一个或多个Xray的微服务没有启动造成的
决议

使用Xray sh脚本检查微服务的状态,并验证所有微服务都已完全启动和启动,例如:

./xray.sh status all

对于Docker来说:

/ xray.sh ps。

Xray的RabbitMQ的队列有大量的消息

导致

一个工作的x射线系统应该有它的RabbitMQ的队列计数相对水平(接近0),这将意味着并提供最好的性能和最快的结果。

大量的消息可能是由于以下原因造成的:

1.一个x射线服务/组件不能足够快地处理它的队列

2.在某个组件上发生了一些错误/意外行为,根据相应的RabbitMQ队列搜索日志将提供一个洞察力


决议

1.临时增加负责适当队列(例如分析)的工人数量或为机器分配更多资源;2022世界杯阿根廷预选赛赛程RAM和cpu更快的处理,SSD更快的磁盘I/O。

2.搜索适当的日志文件(例如xray-analysis.log),查找任何[error]或“Caused by”消息的原因。

x射线正在使用大量的空间,并且可能会停止索引

导致

这可能是由于(或综合):

1.$XRAY_DATA位置没有正确配置-从而阻止x射线磁盘采样器检查磁盘空间可用性的正确路径

2.磁盘利用率允许值过高。处理步骤

3.应该删除的临时文件(在$XRAY_HOME/data/data/下)正在消耗大量的空间

4.*主要是适用于大规模:其他数据库(RabbitMQ/PostgreSQL/MongoDB)占用大量空间


决议

1.在Event组件上启用调试日志,以查看检查的路径是什么,期望看到一个日志条目如下:数据文件夹,已使用:<%>,已配置阈值<%>。补救办法是修改xrayDataFolder根据xray_config.yaml文件到正确的位置。

2.xray_config.yamlmaxDiskDataUsage标志为较低的值。在大规模环境中,特别是在处理大文件时,将消耗更多的空间(临时)以允许递归索引过程完成。

3.Xray version 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的主数据文件夹位置是可以使用安装程序配置的

如果安装完成后需要移动,则可以跟随本指南-确保PostgreSQL已停止

蒙戈:

  • 停止Mongo(最好使用Xray .sh stop all命令停止所有Xray服务)
  • 编辑/etc/mongodb.conf,改变
    dbpath = / var / lib / mongo
    走你自己选择的路。

  • 将mongo数据文件夹复制到一个新位置—确保使用mongod用户设置权限(cp命令的-a标志应该负责保留权限)
    Cp -ra /var/lib/mongo /home/myuser/data/mongo

在系统故障事件或磁盘空间耗尽后,Xray不启动

导致

如果RabbitMQ没有成功启动(使用上面故障排除中的命令),可能是这个原因在意外的系统状态发生后,RabbitMQ会遇到数据损坏,并导致其消息和/或队列存储丢失完整性。

决议
  • 请注意,这可能会导致队列消息丢失——因此一些已经由Xray的微服务处理的消息将丢失。与已经索引的文件相关的数据持久化到PostgreSQL(在这里存储和构建影响图)将不会受到影响。
检查以下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@/recovery.dets"}}},…


在这种情况下,删除以下路径下的RabbitMQ队列相关文件会有所帮助:

/var/lib/rabbitmq/mnesia/ <用户名> @ < id > / recovery.dets

然后尝试重新启动Xray的微服务,使用:

美元./xray.sh restart all


  • 有时,单独重启RabbitMQ就足够了(例如使用$ service RabbitMQ -server restart)

如果这没有帮助,继续去除队列消息存储董事:


/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。

Xray无法发送电子邮件通知

导致 Xray未配置为在不安全模式下与电子邮件服务器一起工作
决议

启用不安全模式参数后面x光的xray_config.yaml配置文件

sslInsecure真正的

x射线在其日志文件中没有提供足够的信息

导致 缺省情况下,Xray被配置为INFO级别的日志记录。
决议

对于要分析的每个日志文件,请将日志级别设置为DEBUG。每个x射线服务的日志级别在下面的相应配置文件中设置/var/opt/jfrog/xray/data/config(对于Linux安装)。例如,分析器服务调试级别设置为analysis_log4go_config.xml,同时设置索引器服务调试级别indexer_log4go_config.xml其他x光服务也是一样。

x射线数据库迁移失败,需要重试

导致

升级完成后,Xray正在进行迁移。当迁移开始时,它会创建一个锁机制,以便在执行迁移时阻止对数据库的外部操作。

在迁移失败的情况下,锁将保留,锁定Xray,但是可以重试,并且可以在下次运行时成功。

决议

快速总结一下我们将要采取的步骤:

1.检查迁移失败的原因和原因。这是可选的,虽然不是强制性的,但对将来的避免是有用的。

2.删除锁,以便重新尝试迁移。


以下是需要采取的步骤:

1.停止所有x射线服务:

Non-Docker

$ ./xray.sh stop all .sh

码头工人:

$ ./xray.sh stop


2.只启动MongoDB和PostgreSQL:

Non-Docker:

$ service postgresql-9.5

$ service mongod start

码头工人:

$ docker start xray_mondb_1

$ docker start xray_postgres_1


3.执行操作MongoDB的一面:

a.连接MongoDB:

Non-Docker:

$ mongo -u xray -p password——authenticationDatabase xray

码头工人:

$ docker exec -it xray_mongodb_1 bash

在Docker的bash shell中连接MongoDB:

$ mongo -u xray -p password——authenticationDatabase xray


b.切换到x射线DB:

$使用x射线

查找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步。


4.用于分析和联系时JFrog支持,需要收集以下信息:

数据库仅说明信息:

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 xray

码头工人:

$ docker exec -it xray_postgres_1 /bin/bash

$ PSQL xraydb xray


*如果/当提示输入密码时,输入x光

xraydb是数据库的名称,x光是用户名


    1. 运行下面的查询(注意使用';'最后,如果没有它,它将不会执行):

$ SELECT * FROM schema_migrations

*将输出拷贝到一边


b.要退出,输入:

美元\问


c.迁移时间范围内的x射线服务日志:

xray_server.log

xray_persist.log

xray_event.log


5.重新启动所有x射线服务。这将触发迁移重新运行。



  • 没有标签