如何在 Ubuntu 22.04 上安装和保护 Grafana

2023-11-05

介绍

Grafana是一种开源数据可视化和监控工具,可与来自以下来源的复杂数据集成普罗米修斯, InfluxDB, Graphite, and 弹性搜索。 Grafana 允许您为数据创建警报、通知和临时过滤器,同时还可以通过内置共享功能更轻松地与团队成员协作。

在本教程中,您将安装 Grafana 并使用SSL证书 and an Nginx 反向代理。设置 Grafana 后,您可以选择通过 GitHub 配置用户身份验证,以便您更好地组织团队权限。

先决条件

要学习本教程,您将需要:

  • 按照以下步骤设置一台 Ubuntu 22.04 服务器Ubuntu 22.04 初始服务器设置指南,包括非 root 用户sudo权限和防火墙配置ufw.
  • A fully registered domain name. This tutorial uses your_domain throughout. You can purchase a domain name on Namecheap, get one for free on Freenom, or use the domain registrar of your choice.
  • The following DNS records set up for your server. You can follow the How To Add Domains article for details on how to add them if you are using DigitalOcean.
    • An A record with your_domain pointing to your server’s public IP address.
    • An A record with www.your_domain pointing to your server’s public IP address.
  • Nginx 设置如下如何在 Ubuntu 22.04 上安装 Nginx教程,包括服务器块为您的域名。
  • 配置了 Let's Encrypt 的 Nginx 服务器块,您可以通过以下方式进行设置如何在 Ubuntu 22.04 上使用 Let’s Encrypt 保护 Nginx.
  • 可选地,设置GitHub身份验证,您需要一个与组织关联的 GitHub 帐户.

第 1 步 — 安装 Grafana

在第一步中,您将把 Grafana 安装到 Ubuntu 22.04 服务器上。您可以通过以下方式安装 Grafana直接从其官方网站下载或者通过APT 存储库。由于 APT 存储库可以更轻松地安装和管理 Grafana 的更新,因此您将在本教程中使用该方法。

Download the Grafana GPG key with wget, then pipe the output to gpg. This will convert the GPG key from base64 to binary format. Then pipe the output to tee to store the key in the /usr/share/keyrings/grafana.gpg file.

  1. wget -q -O - https://packages.grafana.com/gpg.key | gpg --dearmor | sudo tee /usr/share/keyrings/grafana.gpg > /dev/null

在此命令中,选项-q关闭状态更新消息wget, and -O输出您下载到终端的文件。这两个选项可确保仅对下载文件的内容进行管道传输。这> /dev/null 出于安全原因,选项将隐藏终端的输出。

接下来,将 Grafana 存储库添加到您的 APT 源:

  1. echo "deb [signed-by=/usr/share/keyrings/grafana.gpg] https://packages.grafana.com/oss/deb stable main" | sudo tee -a /etc/apt/sources.list.d/grafana.list

刷新 APT 缓存以更新包列表:

  1. sudo apt update

您现在可以继续安装:

  1. sudo apt install格拉法纳

安装 Grafana 后,使用systemctl启动 Grafana 服务器:

  1. sudosystemctl 启动 grafana-server

接下来,通过检查服务的状态来验证 Grafana 是否正在运行:

  1. sudosystemctl 状态 grafana 服务器

您将收到与此类似的输出:

Output
● grafana-server.service - Grafana instance Loaded: loaded (/lib/systemd/system/grafana-server.service; disabled; vendor preset: enabled) Active: active (running) since Tue 2022-09-27 14:42:15 UTC; 6s ago Docs: http://docs.grafana.org Main PID: 4132 (grafana-server) Tasks: 7 (limit: 515) ...

This output contains information about Grafana’s process, including its status, Main Process Identifier (PID), and more. active (running) shows that the process is running correctly.

最后,启用服务在启动时自动启动 Grafana:

  1. sudo系统控制enablegrafana服务器

您将收到以下输出:

Output
Synchronizing state of grafana-server.service with SysV service script with /lib/systemd/systemd-sysv-install. Executing: /lib/systemd/systemd-sysv-install enable grafana-server Created symlink /etc/systemd/system/multi-user.target.wants/grafana-server.service → /usr/lib/systemd/system/grafana-server.service.

这证实了systemd已创建自动启动 Grafana 所需的符号链接。

Grafana 现已安装并可供使用。接下来,您将使用反向代理和 SSL 证书来保护与 Grafana 的连接。

第 2 步 — 设置反向代理

使用 SSL 证书将通过加密与 Grafana 的连接来确保您的数据安全。但是,要使用此连接,您首先需要将 Nginx 重新配置为 Grafana 的反向代理。

打开您在使用 Let’s Encrypt 设置 Nginx 服务器块时创建的 Nginx 配置文件先决条件。您可以使用任何文本编辑器,但在本教程中我们将使用nano:

  1. sudo nano /etc/nginx/sites-available/your_domain

找到以下块:

/etc/nginx/sites-available/your_domain
...
	location / {
        try_files $uri $uri/ =404;
	}
...

因为您已经将 Nginx 配置为通过 SSL 进行通信,并且由于到您服务器的所有 Web 流量都已通过 Nginx,所以您只需告诉 Nginx 将所有请求转发到在端口上运行的 Grafana3000默认情况下。

删除现有的try_files在此行location block并将其替换为以下选项:

/etc/nginx/sites-available/your_domain
...
	location / {
	   proxy_set_header Host $http_host;
	   proxy_pass http://localhost:3000;
	}
...

这会将代理映射到适当的端口,并在标头中传递服务器名称。

另外,为了格拉法纳现场要使 WebSocket 连接正常工作,请在server部分:

/etc/nginx/sites-available/your_domain
map $http_upgrade $connection_upgrade {
  default upgrade;
  '' close;
}

server {
    ...

然后添加以下内容location服务器块的部分:

/etc/nginx/sites-available/your_domain
server {
...
	location /api/live {
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection $connection_upgrade;
        proxy_set_header Host $http_host;
        proxy_pass http://localhost:3000;
	}
...

标头Upgrade and Connection不会从客户端发送到代理服务器。因此,为了让代理服务器了解客户端将协议更改为 WebSocket 的意图,应该显式传递这些标头。

最终配置将如下所示:

/etc/nginx/sites-available/your_domain
map $http_upgrade $connection_upgrade {
	default upgrade;
	'' close;
}

server {
	...

	root /var/www/your_domain/html;
	index index.html index.htm index.nginx-debian.html;

	server_name your_domain www.your_domain;

	location / {
		proxy_set_header Host $http_host;
		proxy_pass http://localhost:3000;
	}

	location /api/live {
		proxy_http_version 1.1;
		proxy_set_header Upgrade $http_upgrade;
		proxy_set_header Connection $connection_upgrade;
		proxy_set_header Host $http_host;
		proxy_pass http://localhost:3000;
	}

   ...
}

Note:如果您使用了certbot工具来设置 Let’s Encrypt SSL 证书,那么您的配置文件可能包含由 Certbot 添加的其他行和服务器块。

完成后,按保存并关闭文件CTRL+X, Y, 进而ENTER如果你正在使用nano.

现在,测试新设置以确保一切配置正确:

  1. sudo nginx -t

您将收到以下输出:

Output
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful

最后,通过重新加载 Nginx 来激活更改:

  1. sudosystemctl 重新加载 nginx

You can now access the default Grafana login screen by pointing your web browser to https://your_domain. If you’re unable to reach Grafana, verify that your firewall is set to allow traffic on port 443 and then re-trace the previous instructions.

通过加密与 Grafana 的连接,您现在可以实施额外的安全措施,首先是更改 Grafana 的默认管理凭据。

第 3 步 — 更新凭证

由于默认情况下每个 Grafana 安装都使用相同的管理凭据,因此最佳实践是尽快更改您的登录信息。在此步骤中,您将更新凭据以提高安全性。

Start by navigating to https://your_domain from your web browser. This will bring up the default login screen where you’ll see the Grafana logo, a form asking you to enter an Email or username and Password, a Log in button, and a Forgot your password? link.

Grafana Login

Enter admin进入两个电子邮件或用户名 and Password字段,然后单击Log in button.

在下一个屏幕上,系统会要求您通过更改默认密码来提高帐户的安全性:

Change Password

输入您要开始使用的密码新密码 and 确认新密码 fields.

从这里,您可以单击Submit保存新信息或按Skip跳过此步骤。如果跳过,下次登录时系统会提示您更改密码。

为了提高 Grafana 设置的安全性,请单击Submit。您将前往欢迎来到格拉法纳仪表板:

Home Dashboard

现在,您已通过更改默认凭据来保护您的帐户。接下来,您将更改 Grafana 配置,以便没有人可以在未经您许可的情况下创建新的 Grafana 帐户。

第 4 步 — 禁用 Grafana 注册和匿名访问

Grafana 提供的选项允许访问者为自己创建用户帐户并预览仪表板而无需注册。当 Grafana 无法通过互联网访问或正在处理服务状态等公开数据时,您可能需要允许这些功能。然而,当在线使用 Grafana 处理敏感数据时,匿名访问可能会出现安全问题。要解决此问题,您需要对 Grafana 配置进行一些更改。

首先打开 Grafana 的主配置文件进行编辑:

  1. sudo nano/etc/grafana/grafana.ini

找到以下内容allow_sign_up指令下的[users]标题:

/etc/grafana/grafana.ini
...
[users]
# disable user signup / registration
;allow_sign_up = true
...

启用该指令true adds a Sign Up按钮到登录屏幕,允许用户自行注册并访问 Grafana。

禁用该指令false删除Sign Up按钮并增强 Grafana 的安全性和隐私性。

通过删除来取消注释该指令;在行的开头,然后将选项设置为false:

/etc/grafana/grafana.ini
...
[users]
# disable user signup / registration
allow_sign_up = false
...

接下来,找到以下内容enabled指令下的[auth.anonymous]标题:

/etc/grafana/grafana.ini
...
[auth.anonymous]
# enable anonymous access
;enabled = false
...

Setting enabled to true允许非注册用户访问您的仪表板;将此选项设置为false仅限注册用户访问仪表板。

通过删除来取消注释该指令;在行的开头,然后将选项设置为false.

/etc/grafana/grafana.ini
...
[auth.anonymous]
# enable anonymous access
enabled = false
...

保存文件并退出文本编辑器。

要激活更改,请重新启动 Grafana:

  1. sudosystemctl 重新启动 grafana-server

通过检查 Grafana 的服务状态来验证一切正常:

  1. sudosystemctl 状态 grafana 服务器

和以前一样,输出将报告 Grafana 是active (running).

Now, point your web browser to https://your_domain. To return to the Sign Up screen, bring your cursor to your avatar in the lower left of the screen and click on the Sign out option that appears.

退出后,请确认没有Sign Up按钮,并且如果不输入登录凭据,您将无法登录。

至此,Grafana 已完全配置并可供使用。接下来,您可以通过 GitHub 进行身份验证来简化组织的登录过程。

(可选)步骤 5 — 设置 GitHub OAuth 应用程序

对于登录的替代方法,您可以将 Grafana 配置为通过 GitHub 进行身份验证,这为授权 GitHub 组织的所有成员提供登录访问权限。当您希望允许多个开发人员协作和访问指标而无需创建 Grafana 特定的凭据时,这尤其有用。

首先登录与您的组织关联的 GitHub 帐户,然后导航到您的GitHub 个人资料页面.

通过单击切换设置上下文切换到另一个帐户屏幕顶部的链接,然后在下拉菜单中选择您的组织。这将切换上下文个人设置 to 组织设置.

在下一个屏幕上,您将看到您的组织简介您可以在其中更改设置,例如您的组织显示名称, 组织Email和组织URL.

因为 Grafana 使用OAuth— 授予远程第三方访问本地资源的开放标准 — 要通过 GitHub 对用户进行身份验证,您需要创建一个新的GitHub 中的 OAuth 应用程序.

点击OAuth 应用程序链接下开发者设置在屏幕的左下侧。

如果您在 GitHub 上还没有与您的组织关联的任何 OAuth 应用程序,系统会告诉您有没有组织拥有的应用程序。否则,您将看到已连接到您的帐户的 OAuth 应用程序的列表。

点击注册申请按钮继续。

在下一个屏幕上,填写有关 Grafana 安装的以下详细信息:

  • 应用名称:这可以帮助您区分不同的 OAuth 应用程序。
  • Homepage URL: This tells GitHub where to find Grafana. Type https://your_domain into this field, replacing your_domain with your domain.
  • 应用说明:这提供了 OAuth 应用程序用途的描述。
  • Application callback URL: This is the address where users will be sent once successfully authenticated. For Grafana, this field must be set to https://your_domain/login/github.

请记住,通过 GitHub 登录的 Grafana 用户将看到您在前三个字段中输入的值,因此请务必输入有意义且适当的内容。

完成后,表格将如下所示:

GitHub Register OAuth Application

点击注册申请 button.

您现在将被重定向到一个页面,其中包含有关新 OAuth 应用程序的一般信息,包括客户ID。然后单击生成新的客户端密钥按钮获取新的客户秘密。记下这两个值,因为您需要将它们添加到 Grafana 的主配置文件中才能完成设置。

Warning:请务必保留您的客户ID and 客户秘密在安全且非公共的位置,因为它们可以用作攻击的基础。

创建 GitHub OAuth 应用程序后,您现在可以重新配置 Grafana 以使用 GitHub 进行身份验证。

(可选)第 6 步 — 将 Grafana 配置为 GitHub OAuth 应用程序

要完成 Grafana 设置的 GitHub 身份验证,您现在将对 Grafana 配置文件进行一些更改。

首先,打开 Grafana 主配置文件:

  1. sudo nano/etc/grafana/grafana.ini

找到[auth.github]标题,并通过删除;除以下内容外,在每一行的开头,本教程中不会更改这些内容:

  • ;allowed_domains =
  • ;team_ids =
  • ;role_attribute_path =
  • ;role_attribute_strict = false
  • ;allow_assign_grafana_admin = false

接下来,进行以下更改:

  • Set enabled and allow_sign_up to true。这将启用 GitHub 身份验证并允许允许组织的成员自己创建帐户。请注意,此设置与allow_sign_up下的财产[users]你改变了Step 4.
  • Set client_id and client_secret为您在创建 GitHub OAuth 应用程序时获得的值。
  • Set allowed_organizations添加到您的组织名称,以确保只有您组织的成员才能注册并登录 Grafana。

完整的配置将如下所示:

/etc/grafana/grafana.ini
...
[auth.github]
enabled = true
allow_sign_up = true
client_id = your_client_id_from_github
client_secret = your_client_secret_from_github
scopes = user:email,read:org
auth_url = https://github.com/login/oauth/authorize
token_url = https://github.com/login/oauth/access_token
api_url = https://api.github.com/user
;allowed_domains =
;team_ids =
allowed_organizations = your_organization_name
;role_attribute_path =
;role_attribute_strict = false
;allow_assign_grafana_admin = false
...

您现在已经告诉 Grafana 它需要了解的有关 GitHub 的所有信息。要完成设置,您需要启用反向代理后面的重定向。这是通过设置一个来完成的root_url下的值[server]标题。

/etc/grafana/grafana.ini
...
[server]
root_url = https://your_domain
...

保存您的配置并关闭文件。

然后,重新启动 Grafana 以激活更改:

  1. sudosystemctl 重新启动 grafana-server

最后,验证服务是否已启动并正在运行:

  1. sudosystemctl 状态 grafana 服务器

输出将表明该服务是active (running).

Now, test your new authentication system by navigating to https://your_domain. If you are already logged in to Grafana, hover your mouse over the avatar log in the lower left-hand corner of the screen, and click on Sign out in the secondary menu that appears next to your name.

在登录页面上,您将在原始页面下看到一个新部分Log in按钮,其中包括使用 GitHub 登录带有 GitHub 徽标的按钮。

Grafana Login page with GitHub

单击使用 GitHub 登录按钮将重定向到 GitHub,您将在其中登录您的 GitHub 帐户并确认您的意图授权Grafana.

Click the green Authorize your_github_organization button.

Note:确保您的 GitHub 帐户是您批准的组织的成员,并且您的 Grafana 电子邮件地址与您的 GitHub 电子邮件地址匹配。如果您尝试使用不属于您批准的组织成员的 GitHub 帐户进行身份验证,您将收到登录失败消息告诉你用户不是所需组织之一的成员.

您现在将使用现有的 Grafana 帐户登录。如果您登录的用户尚不存在 Grafana 帐户,Grafana 将使用以下命令创建一个新用户帐户Viewer权限,确保新用户只能使用现有的仪表板。

要更改新用户的默认权限,请打开主 Grafana 配置文件进行编辑。

  1. sudo nano/etc/grafana/grafana.ini

找到auto_assign_org_role指令下的[users]标题,并通过删除来取消注释设置;在该行的开头。

将指令设置为以下值之一:

  • Viewer:只能使用现有的仪表板。
  • Editor:可以使用、修改和添加仪表板。
  • Admin: 有权做任何事情。

本教程将自动分配设置为Viewer:

/etc/grafana/grafana.ini
...
[users]
...
auto_assign_org_role = Viewer
...

保存更改后,关闭文件并重新启动 Grafana:

  1. sudosystemctl 重新启动 grafana-server

检查服务的状态:

  1. sudosystemctl 状态 grafana 服务器

像以前一样,状态将显示为active (running).

此时,您已完全配置 Grafana,以允许 GitHub 组织的成员注册和使用您的 Grafana 安装。

结论

在本教程中,您安装、配置并保护了 Grafana,还了解了如何允许组织成员通过 GitHub 进行身份验证。

要扩展您当前的 Grafana 安装,请参阅官方和社区构建的列表仪表板 and plugins。要了解有关使用 Grafana 的更多信息,请参阅Grafana 官方文档,或查看我们的其他监控教程.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 Ubuntu 22.04 上安装和保护 Grafana 的相关文章

  • Hpa 未获取现有自定义指标?

    我在用着mongodb exporter用于存储 查询指标prometheus 我已经设置了一个自定义指标服务器并为其存储值 这就是证据prometheus exporter and custom metric server作品兼容 Que
  • 如何持续监控LogCat文件?

    我需要以某种方式监视 LogCat 日志 这意味着当我的服务运行时 我需要读取 LogCat 中的新条目 目前我只知道如何检索一次日志 Process mLogcatProc null BufferedReader reader null
  • 使用 WMI 和 C# 检测机器是否在线或离线

    我使用vs2008 winxp 在局域网中使用Win2003服务器 我想要在winxp中安装一个应用程序来检测win2003机器是否在线或离线 以及启动时是否离线 我有这个参考资料 还有更多参考资料 代码示例和最佳实践吗 http dani
  • 最好的流量/性能/使用情况监控模块?

    是否有任何开源 或者我猜是商业 软件包可以插入您的站点以进行监控 我想要一些可以连接到我们的 ASP NET 站点并用于提供以下内容的报告的东西 随着时间的推移表现 电流负载 页面流量 SQL性能 PU时间监控 最好是用 C 加上一些性感的
  • 实时监控 PostgreSQL 查询的应用程序?

    我想监视从应用程序发送到我的数据库的查询 为此 我发现pg stat activity 但更常见的是 返回的行读取为 事务中 我要么做错了什么 要么速度不够快 无法看到查询的结果 要么感到困惑 要么是以上所有情况 有人可以推荐最简单的方法来
  • 将石墨指标偏移当前时间范围内的最低值

    我有带有 Graphite 指标的 Grafana 我有一个图表显示EnqueueCountActiveMQ 中的某些特定队列 问题是EnqueueCount显示自创建队列以来的所有值 因此当我将 Grafana 中的时间范围缩小到 今天到
  • 如何监控Python文件的变化?

    如果代码发生更改 我想重新启动我的 Python Web 应用程序 但是可能有大量文件可以更改 因为导入模块中的文件可能会更改 如何从导入的包 模块中获取实际的文件名 如何高效检测修改过的Python文件 有图书馆可以做到这一点吗 无耻的插
  • 如何使用prometheus获取pod的CPU和内存使用百分比

    我想使用 promql Prometheus 以以下格式显示 pod 详细信息 此外 我想使用 promql 以以下格式显示应用程序 组件的 CPU 和内存利用率 promql 查询 sum container memory working
  • Spring Boot 生产监控

    Spring Boot Actuator公开了已部署容器的大量指标和信息 然而 生产操作人员可能不想在浏览器上盯着纯 JSON 对象 在生产中监控这一点的良好 标准 工具是什么 这包括图表 警报触发器等 spring boot admin
  • 在 Visual Studio 中监视调用堆栈大小

    有没有办法监视 Visual Studio 中的调用堆栈大小 运行时会提供一个调用堆栈窗口 但不显示堆栈的大小 我正在使用 C 并面临堆栈溢出问题 我知道我正在使用的某些递归函数可能有问题 但在解决这些问题之前 我想监视调用堆栈大小以了解发
  • Spark Metrics:如何访问执行器和工作器数据?

    注意 我在 YARN 上使用 Spark 我一直在尝试公制 https spark apache org docs latest monitoring html metrics在 Spark 中实现 我启用了 ConsoleSink 和 C
  • Prometheus 中的最小 scrape_interval 是多少?

    我想知道普罗米修斯的最短时间是多少scrape interval范围 根据普罗米修斯文档 https prometheus io docs prometheus latest configuration configuration 此参数的
  • 监控显卡使用情况[关闭]

    Closed 这个问题是与编程或软件开发无关 help closed questions 目前不接受答案 当我运行某个应用程序时 如何监控显卡的使用情况 我想查看我的应用程序使用 GPU 的情况 如果您在 Visual Studio 201
  • 监控 Commons DBCP?

    我的 Tomcat 中的一个巨大的 Web 应用程序有时会开始使用过多的 DBCP 连接 从而导致问题 为了进行调查 我想准确地知道每个时间点哪个线程 方法正在持有池的连接 不需要实时 事后分析就可以了 我一直在寻找这样的DBCP监控工具
  • 如何保护/监控您的网站免遭恶意用户抓取

    情况 网站内容受用户名 密码保护 并非全部受控 因为他们可以是试用 测试用户 由于用户名 密码限制 普通搜索引擎无法获取它 恶意用户仍然可以登录并将会话 cookie 传递给 wget r 或其他东西 问题是监控此类活动并对其做出响应的最佳
  • 如何从 Nagios-Report Perl 模块打印 Nagios 服务 UP 时间百分比

    我可以打印出来HostUP 时间百分比从Nagios 报告 Perl 模块 http search cpan org hopcrofts Nagios Report 0 003 与以下代码 usr bin perl use strict u
  • 在 Android 中开发 Web 监视器

    我想监控 过滤用户在 Android 中打开的网站 我知道如何使用浏览器历史记录中的 ContentObserver 检索上次访问的 URL 在 Android 默认浏览器中 private static class BrowserObse
  • 如果过去 60 分钟的交易量小于 x,如何在 Seyren with Graphite 中发出警报?

    我正在使用 Graphite Statsd 带有 Python 客户端 从 Web 应用程序收集自定义指标 成功交易的计数器 假设计数器是stats transactions count 还有一个每秒速率指标stats transactio
  • 如何查看Azure应用服务内存使用情况?

    我们通过云服务提供商 CSP 订阅了 Azure 这对我们在 Azure 中获取和查看的内容造成了一些限制 尽管如此 我们还是可以看到每个CPU和内存的使用情况应用服务计划 我们如何才能看到特定的相同内容应用服务根据计划 如果我发现计划的
  • 普罗米修斯警报中缺少标签

    我对 Prometheus 警报规则有疑问 我设置了各种 cAdvisor 特定警报 例如 alert ContainerCpuUsage expr sum rate container cpu usage seconds total 3m

随机推荐

  • 如何在 Raspberry Pi 上安装 Node.js 和 npm

    Node js 是一个基于 Chrome 的 JavaScript 引擎构建的开源跨平台 JavaScript 运行时环境 允许服务器端执行 JavaScript 代码 它主要用于构建服务器端应用程序 但作为全栈和前端解决方案也非常流行 n
  • 如何在 Debian 9 上安装 Tomcat 9

    Apache Tomcat 是一个开源应用程序服务器 支持 Java Servlet JavaServer Pages Java 表达式语言和 Java WebSocket 技术 它是当今世界上使用最广泛的应用程序和 Web 服务器之一 本
  • 如何在 Ubuntu 18.04 上安装 PrestaShop

    普斯塔商店是一个免费开源的电子商务平台 它基于 PHP 和 MySQL 可以通过免费和高级插件和主题进行扩展 PrestaShop 具有直观的管理界面 多个支付网关 多语言 分析和报告等功能 是许多在线商家的首选平台 在本教程中 我们将向您
  • 如何在 Ubuntu 18.04 上安装 Jenkins

    Jenkins是一个开源自动化服务器 提供了一种设置持续集成和持续交付 CI CD 管道的简单方法 持续集成 CI 是一种 DevOps 实践 团队成员定期将代码更改提交到版本控制存储库 然后运行自动化构建和测试 持续交付 CD 是自动构建
  • 如何在 CentOS 7 上安装 Yarn

    Yarn 是一个与 npm 兼容的 JavaScript 包管理器 可帮助您自动执行安装 更新 配置和删除 npm 包的过程 它的创建是为了解决 npm 的一系列问题 例如通过并行操作加快软件包安装过程并减少与网络连接相关的错误 在本教程中
  • Linux 中的 Pgrep 命令

    本文涵盖了 Linux 的基础知识pgrep命令 pgrep是一个命令行实用程序 允许您根据给定条件查找正在运行的程序的进程 ID 它可以是完整或部分进程名称 运行进程的用户或其他属性 The pgrep命令是的一部分procps or p
  • 安装和配置 Postfix 和 Dovecot

    这是我们的第二篇文章设置和配置邮件服务器系列 在这篇文章中 我们将向您展示如何安装和配置 Postfix 和 Dovecot 这是我们邮件系统的两个主要组件 Postfix 是一个开源邮件传输代理 MTA 是一种用于发送和接收电子邮件的服务
  • 如何在 Debian 10 上安装 Memcached

    Memcached 是一个免费开源的高性能内存键值数据存储 它通常用于通过缓存 API 和数据库调用结果中的各种对象来加速应用程序 本文介绍如何在 Debian 10 上安装和配置 Memcached 先决条件 您需要以以下身份登录具有 s
  • Linux 中的剪切命令

    Linux 和 Unix 系统中有许多实用程序可让您处理和过滤文本文件 cut是一个命令行实用程序 允许您从指定文件或管道数据中剪切部分行并将结果打印到标准输出 它可用于按分隔符 字节位置和字符来剪切行的各个部分 在本文中 我们将向您展示如
  • 如何在 Ubuntu 12.04 x64 上安装 iRedMail

    Status 已弃用 本文介绍不再受支持的 Ubuntu 版本 如果您当前运行的服务器运行 Ubuntu 12 04 我们强烈建议您升级或迁移到受支持的 Ubuntu 版本 升级到Ubuntu 14 04 从 Ubuntu 14 04 升级
  • Spring框架

    Spring 框架是最流行的 Java EE 框架之一 在本文中 我们将了解以下内容 Spring框架架构 Spring的核心组件 spring 框架下的各种项目 我查看了 Spring Framework Servlet JSP 和 JS
  • 如何在 Ubuntu 16.04 上使用 uWSGI 和 Nginx 为 Django 应用程序提供服务

    介绍 Django 是一个功能强大的 Web 框架 可以帮助您启动 Python 应用程序或网站 Django 包含一个简化的开发服务器 用于在本地测试代码 但对于任何与生产稍微相关的事情 都需要更安全 更强大的 Web 服务器 在本指南中
  • ThreadPoolExecutor - Java 线程池示例

    Java线程池管理工作线程池 它包含一个队列 使任务等待执行 我们可以用ThreadPoolExecutor在Java中创建线程池 Java线程池管理Runnable线程的集合 工作线程执行队列中的可运行线程 java util concu
  • 使用 Docker Compose 将 Node.js 应用程序容器化以进行开发

    介绍 如果您正在积极开发应用程序 请使用Docker可以简化您的工作流程以及将应用程序部署到生产的过程 在开发中使用容器可以带来以下好处 环境是一致的 这意味着您可以为项目选择所需的语言和依赖项 而不必担心系统冲突 环境是隔离的 可以更轻松
  • 在 JavaScript 中使用位运算符

    介绍 虽然 Javascript 中的按位运算符几乎没有受到任何关注 但它们实际上非常强大并且用途广泛 它们被认为可以更快地进行数值计算和转换 我们可以利用它们来替代某些复杂的编码场景 并使我们的代码更具可读性 在本教程结束时 您将基本了解
  • 命令设计模式

    命令模式是行为设计 模式之一 命令设计模式用于实现松耦合在请求 响应模型中 命令模式 In command pattern the request is send to the invoker and invoker pass it to
  • 如何在 CentOS 6 上设置 Apache 虚拟主机

    Status 已弃用 本文介绍不再受支持的 CentOS 版本 如果您当前运行的服务器运行 CentOS 6 我们强烈建议您升级或迁移到受支持的 CentOS 版本 Reason CentOS 6 于 2020 年 11 月 30 日达到生
  • 如何在 Ubuntu 18.04 上安装 Anaconda [快速入门]

    介绍 Anaconda 专为数据科学和机器学习工作流程而设计 是一款开源包管理器 环境管理器以及 Python 和 R 编程语言的分发版 本教程将指导您在 Ubuntu 18 04 服务器上安装 Anaconda 有关本教程的更详细版本以及
  • 如何在 Ubuntu 14.04 上安装和配置 OSSEC 安全通知

    介绍 您如何跟踪服务器上的授权和未经授权的活动 OSSEC 是一种可以安装在服务器上以跟踪其活动的工具 OSSEC 是一种开源 基于主机的入侵检测系统 HIDS 它执行日志分析 完整性检查 Windows 注册表监控 rootkit 检测
  • 如何在 Ubuntu 22.04 上安装和保护 Grafana

    介绍 Grafana是一种开源数据可视化和监控工具 可与来自以下来源的复杂数据集成普罗米修斯 InfluxDB Graphite and 弹性搜索 Grafana 允许您为数据创建警报 通知和临时过滤器 同时还可以通过内置共享功能更轻松地与