阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

如何使用 Cachet 部署自承载系统状态页面

581次阅读
没有评论

共计 6482 个字符,预计需要花费 17 分钟才能阅读完成。

如果你是一个系统管理员,负责关键的 IT 基础设置或公司的服务,你将明白有效的沟通在日常任务中的重要性。假设你的线上存储服务器故障了。你希望团队所有人达成共识你好尽快的解决问题。当你忙来忙去时,你不会想一半的人问你为什么他们不能访问他们的文档。当一个维护计划快到时间了你想在计划前提醒相关人员,这样避免了不必要的开销。

这一切的要求或多或少改进了你、你的团队、和你服务的用户之间沟通渠道。一个实现它的方法是维护一个集中的系统状态页面,报告和记录故障停机详情、进度更新和维护计划等。这样,在故障期间你避免了不必要的打扰,也可以提醒一些相关方,以及加入一些可选的状态更新。

有一个不错的 开源, 自承载系统状态页解决方案 叫做 Cachet。在这个教程,我将要描述如何用 Cachet 部署一个自承载系统状态页面。

如何使用 Cachet 部署自承载系统状态页面

Cachet 特性

在详细的配置 Cachet 之前,让我简单的介绍一下它的主要特性。

  • 全 JSON API:Cachet API 可以让你使用任意的外部程序或脚本(例如,uptime 脚本)连接到 Cachet 来自动报告突发事件或更新状态。
  • 认证:Cachet 支持基础认证和 JSON API 的 API 令牌,所以只有认证用户可以更新状态页面。
  • 衡量系统:这通常用来展现随着时间推移的自定义数据(例如,服务器负载或者响应时间)。
  • 通知:可选地,你可以给任一注册了状态页面的人发送突发事件的提示邮件。
  • 多语言:状态页被翻译为 11 种不同的语言。
  • 双因子认证:这允许你使用 Google 的双因子认证来提升 Cachet 管理账户的安全性。
  • 跨数据库支持:你可以选择 MySQL,SQLite,Redis,APC 和 PostgreSQL 作为后端存储。

剩下的教程,我会说明如何在 Linux 上安装配置 Cachet。

第一步:下载和安装 Cachet

Cachet 需要一个 web 服务器和一个后端数据库来运转。在这个教程中,我将使用 LAMP 架构。以下是一些特定发行版上安装 Cachet 和 LAMP 架构的指令。

Debian,Ubuntu 或者 Linux Mint

  1. $ sudo apt-get install curl git apache2 mysql-server mysql-client php5 php5-mysql
  2. $ sudo git clone https://github.com/cachethq/Cachet.git /var/www/cachet
  3. $ cd /var/www/cachet
  4. $ sudo git checkout v1.1.1
  5. $ sudo chown -R www-data:www-data .

在基于 Debian 的系统上设置 LAMP 架构的更多细节,参考。

CentOS 7 下搭建 LAMP 平台环境  http://www.linuxidc.com/Linux/2015-06/118818.htm

CentOS 6.5 系统安装配置 LAMP(Apache+PHP5+MySQL)服务器环境 http://www.linuxidc.com/Linux/2014-12/111030.htm

Ubuntu 14.04 配置 LAMP+phpMyAdmin PHP(5.5.9)开发环境  http://www.linuxidc.com/Linux/2014-10/107924.htm

Ubuntu 14.10 下安装 LAMP 服务图文详解  http://www.linuxidc.com/Linux/2014-12/110082.htm

LAMP 结合 NFS 构建小型博客站点  http://www.linuxidc.com/Linux/2015-08/121029.htm

Fedora,CentOS 或 RHEL

在基于 Red Hat 系统上,你首先需要设置 REMI 软件库(以满足 PHP 的版本需求)。然后执行下面命令。

  1. $ sudo yum install curl git httpd mariadb-server
  2. $ sudo yum --enablerepo=remi-php56 install php php-mysql php-mbstring
  3. $ sudo git clone https://github.com/cachethq/Cachet.git /var/www/cachet
  4. $ cd /var/www/cachet
  5. $ sudo git checkout v1.1.1
  6. $ sudo chown -R apache:apache .
  7. $ sudo firewall-cmd --permanent --zone=public--add-service=http
  8. $ sudo firewall-cmd --reload
  9. $ sudo systemctl enable httpd.service; sudo systemctl start httpd.service
  10. $ sudo systemctl enable mariadb.service; sudo systemctl start mariadb.service

在基于 Red Hat 系统上设置 LAMP 的更多细节,参考 下面关于 LAMP 相关 的内容

http://www.linuxidc.com/Linux/2013-03/81672.htm

http://www.linuxidc.com/Linux/2012-10/72484.htm

LAMP 平台安装 Xcache 和 Memcached 加速网站运行  http://www.linuxidc.com/Linux/2015-06/118835.htm 

配置 Cachet 的后端数据库

下一步是配置后端数据库。

登录到 MySQL/MariaDB 服务,然后创建一个空的数据库称为‘cachet’。

  1. $ sudo mysql -uroot -p
  1. mysql> create database cachet;
  2. mysql> quit

现在用一个示例配置文件创建一个 Cachet 配置文件。

  1. $ cd /var/www/cachet
  2. $ sudo mv .env.example .env

在 .env 文件里,填写你自己设置的数据库信息(例如,DB_*)。其他的字段先不改变。

  1. APP_ENV=production
  2. APP_DEBUG=false
  3. APP_URL=http://localhost
  4. APP_KEY=SomeRandomString
  5. DB_DRIVER=mysql
  6. DB_HOST=localhost
  7. DB_DATABASE=cachet
  8. DB_USERNAME=root
  9. DB_PASSWORD=<root-password>
  10. CACHE_DRIVER=apc
  11. SESSION_DRIVER=apc
  12. QUEUE_DRIVER=database
  13. MAIL_DRIVER=smtp
  14. MAIL_HOST=mailtrap.io
  15. MAIL_PORT=2525
  16. MAIL_USERNAME=null
  17. MAIL_PASSWORD=null
  18. MAIL_ADDRESS=null
  19. MAIL_NAME=null
  20. REDIS_HOST=null
  21. REDIS_DATABASE=null
  22. REDIS_PORT=null

第三步:安装 PHP 依赖和执行数据库迁移

下面,我们将要安装必要的 PHP 依赖包。我们会使用 composer 来安装。如果你的系统还没有安装 composer,先安装它:

  1. $ curl -sS https://getcomposer.org/installer | sudo php -- --install-dir=/usr/local/bin --filename=composer

现在开始用 composer 安装 PHP 依赖包。

  1. $ cd /var/www/cachet
  2. $ sudo composer install --no-dev -o

下面执行一次性的数据库迁移。这一步会在我们之前创建的数据库里面创建那些所需的表。

  1. $ sudo php artisan migrate

假设在 /var/www/cachet/.env 的数据库配置无误,数据库迁移应该像下面显示一样成功完成。

如何使用 Cachet 部署自承载系统状态页面

下面,创建一个密钥,它将用来加密进入 Cachet 的数据。

  1. $ sudo php artisan key:generate
  2. $ sudo php artisan config:cache

如何使用 Cachet 部署自承载系统状态页面

生成的应用密钥将自动添加到你的 .env 文件 APP_KEY 变量中。你不需要自己编辑 .env。

第四步:配置 Apache HTTP 服务

现在到了配置运行 Cachet 的 web 服务的时候了。我们使用 Apache HTTP 服务器,为 Cachet 创建一个新的虚拟主机,如下:

Debian,Ubuntu 或 Linux Mint

  1. $ sudo vi /etc/apache2/sites-available/cachet.conf
  1. <VirtualHost *:80>
  2. ServerName cachethost
  3. ServerAlias cachethost
  4. DocumentRoot "/var/www/cachet/public"
  5. <Directory"/var/www/cachet/public">
  6. Require all granted
  7. Options Indexes FollowSymLinks
  8. AllowOverride All
  9. Order allow,deny
  10. Allow from all
  11. </Directory>
  12. </VirtualHost>

启用新虚拟主机和 mod_rewrite:

  1. $ sudo a2ensite cachet.conf
  2. $ sudo a2enmod rewrite
  3. $ sudo service apache2 restart

Fedora,CentOS 或 RHEL

在基于 Red Hat 系统上,创建一个虚拟主机文件,如下:

  1. $ sudo vi /etc/httpd/conf.d/cachet.conf
  1. <VirtualHost *:80>
  2. ServerName cachethost
  3. ServerAlias cachethost
  4. DocumentRoot "/var/www/cachet/public"
  5. <Directory"/var/www/cachet/public">
  6. Require all granted
  7. Options Indexes FollowSymLinks
  8. AllowOverride All
  9. Order allow,deny
  10. Allow from all
  11. </Directory>
  12. </VirtualHost>

现在重载 Apache 配置:

  1. $ sudo systemctl reload httpd.service

第五步:配置 /etc/hosts 来测试 Cachet

这时候,初始的 Cachet 状态页面应该启动运行了,现在测试一下。

由于 Cachet 被配置为 Apache HTTP 服务的虚拟主机,我们需要调整你的客户机的 /etc/hosts 来访问他。你将从这个客户端电脑访问 Cachet 页面。(LCTT 译注:如果你给了这个页面一个正式的主机地址,则不需要这一步。)

打开 /etc/hosts,加入如下行:

  1. $ sudo vi /etc/hosts
  1. <cachet 服务器的 IP 地址> cachethost

上面名为“cachethost”必须匹配 Cachet 的 Apache 虚拟主机文件的 ServerName。

测试 Cachet 状态页面

现在你准备好访问 Cachet 状态页面。在你浏览器地址栏输入 http://cachethost。你将被转到如下的 Cachet 状态页的初始化设置页面。

如何使用 Cachet 部署自承载系统状态页面

选择 cache/session 驱动。这里 cache 和 session 驱动两个都选“File”。

下一步,输入关于状态页面的基本信息(例如,站点名称、域名、时区和语言),以及管理员认证账户。

如何使用 Cachet 部署自承载系统状态页面

如何使用 Cachet 部署自承载系统状态页面

如何使用 Cachet 部署自承载系统状态页面

你的状态页初始化就要完成了。

如何使用 Cachet 部署自承载系统状态页面

继续创建组件(你的系统单元)、事件或者任意你要做的维护计划。

例如,增加一个组件:

如何使用 Cachet 部署自承载系统状态页面

增加一个维护计划:

公共 Cachet 状态页就像这样:

如何使用 Cachet 部署自承载系统状态页面

集成了 SMTP,你可以在状态更新时发送邮件给订阅者。并且你可以使用 CSS 和 markdown 格式来完全自定义布局和状态页面。

结论

Cachet 是一个相当易于使用,自托管的状态页面软件。Cachet 一个高级特性是支持全 JSON API。使用它的 RESTful API,Cachet 可以轻松连接单独的监控后端(例如,Nagios),然后回馈给 Cachet 事件报告并自动更新状态。比起手工管理一个状态页它更快和有效率。

最后一句,我喜欢提及一个事。用 Cachet 设置一个漂亮的状态页面是很简单的,但要将这个软件用好并不像安装它那么容易。你需要完全保障所有 IT 团队习惯准确及时的更新状态页,从而建立公共信息的准确性。同时,你需要教用户去查看状态页面。最后,如果没有很好的填充数据,部署状态页面就没有意义,并且 / 或者没有一个人查看它。记住这个,尤其是当你考虑在你的工作环境中部署 Cachet 时。

故障排查

补充,万一你安装 Cachet 时遇到问题,这有一些有用的故障排查的技巧。

  1. Cachet 页面没有加载任何东西,并且你看到如下报错。

    1. production.ERROR: exception 'RuntimeException'with message 'No supported encrypter found. The cipher and / or key length are invalid.'in/var/www/cachet/bootstrap/cache/compiled.php:6695

    解决方案:确保你创建了一个应用密钥,以及明确配置缓存如下所述。

    1. $ cd /path/to/cachet
    2. $ sudo php artisan key:generate
    3. $ sudo php artisan config:cache
  2. 调用 composer 命令时有如下报错。

    1. - danielstjules/stringy 1.10.0 requires ext-mbstring *-the requested PHP extension mbstring is missing from your system.
    2. - laravel/framework v5.1.8 requires ext-mbstring *-the requested PHP extension mbstring is missing from your system.
    3. - league/commonmark 0.10.0 requires ext-mbstring *-the requested PHP extension mbstring is missing from your system.

    解决方案:确保在你的系统上安装了必要的 PHP 扩展 mbstring,并且兼容你的 PHP 版本。在基于 Red Hat 的系统上,由于我们从 REMI-56 库安装 PHP,所以要从同一个库安装扩展。

    1. $ sudo yum --enablerepo=remi-php56 install php-mbstring
  3. 你访问 Cachet 状态页面时得到一个白屏。HTTP 日志显示如下错误。

    1. PHP Fatal error:Uncaught exception 'UnexpectedValueException'with message 'The stream or file"/var/www/cachet/storage/logs/laravel-2015-08-21.log"could not be opened: failed to open stream: Permission denied'in/var/www/cachet/bootstrap/cache/compiled.php:12851

    解决方案:尝试如下命令。

    1. $ cd /var/www/cachet
    2. $ sudo php artisan cache:clear
    3. $ sudo chmod -R 777 storage
    4. $ sudo composer dump-autoload

    如果上面的方法不起作用,试试禁止 SELinux:

    1. $ sudo setenforce 0

via: http://xmodulo.com/setup-system-status-page.html

作者:Dan Nanni 译者:wyangsun 校对:wxy

本文由 LCTT 原创翻译,Linux 中国 荣誉推出

本文永久更新链接地址:http://www.linuxidc.com/Linux/2015-09/122684.htm

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-21发表,共计6482字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中

星哥玩云

星哥玩云
星哥玩云
分享互联网知识
用户数
4
文章数
19350
评论数
4
阅读量
7963082
文章搜索
热门文章
星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛 NAS-6:抖音视频同步工具,视频下载自动下载保存 前言 各位玩 NAS 的朋友好,我是星哥!...
星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛 NAS-3:安装飞牛 NAS 后的很有必要的操作 前言 如果你已经有了飞牛 NAS 系统,之前...
我把用了20年的360安全卫士卸载了

我把用了20年的360安全卫士卸载了

我把用了 20 年的 360 安全卫士卸载了 是的,正如标题你看到的。 原因 偷摸安装自家的软件 莫名其妙安装...
再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见 zabbix!轻量级自建服务器监控神器在 Linux 的完整部署指南 在日常运维中,服务器监控是绕不开的...
飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛 NAS 中安装 Navidrome 音乐文件中文标签乱码问题解决、安装 FntermX 终端 问题背景 ...
阿里云CDN
阿里云CDN-提高用户访问的响应速度和成功率
随机文章
星哥带你玩飞牛NAS硬件03:五盘位+N5105+双网口的成品NAS值得入手吗

星哥带你玩飞牛NAS硬件03:五盘位+N5105+双网口的成品NAS值得入手吗

星哥带你玩飞牛 NAS 硬件 03:五盘位 +N5105+ 双网口的成品 NAS 值得入手吗 前言 大家好,我...
星哥带你玩飞牛NAS-14:解锁公网自由!Lucky功能工具安装使用保姆级教程

星哥带你玩飞牛NAS-14:解锁公网自由!Lucky功能工具安装使用保姆级教程

星哥带你玩飞牛 NAS-14:解锁公网自由!Lucky 功能工具安装使用保姆级教程 作为 NAS 玩家,咱们最...
国产开源公众号AI知识库 Agent:突破未认证号限制,一键搞定自动回复,重构运营效率

国产开源公众号AI知识库 Agent:突破未认证号限制,一键搞定自动回复,重构运营效率

国产开源公众号 AI 知识库 Agent:突破未认证号限制,一键搞定自动回复,重构运营效率 大家好,我是星哥,...
星哥带你玩飞牛 NAS-10:备份微信聊天记录、数据到你的NAS中!

星哥带你玩飞牛 NAS-10:备份微信聊天记录、数据到你的NAS中!

星哥带你玩飞牛 NAS-10:备份微信聊天记录、数据到你的 NAS 中! 大家对「数据安全感」的需求越来越高 ...
我用AI做了一个1978年至2019年中国大陆企业注册的查询网站

我用AI做了一个1978年至2019年中国大陆企业注册的查询网站

我用 AI 做了一个 1978 年至 2019 年中国大陆企业注册的查询网站 最近星哥在 GitHub 上偶然...

免费图片视频管理工具让灵感库告别混乱

一言一句话
-「
手气不错
还在找免费服务器?无广告免费主机,新手也能轻松上手!

还在找免费服务器?无广告免费主机,新手也能轻松上手!

还在找免费服务器?无广告免费主机,新手也能轻松上手! 前言 对于个人开发者、建站新手或是想搭建测试站点的从业者...
每天一个好玩的网站-手机博物馆-CHAZ 3D Experience

每天一个好玩的网站-手机博物馆-CHAZ 3D Experience

每天一个好玩的网站 - 手机博物馆 -CHAZ 3D Experience 一句话介绍:一个用 3D 方式重温...
星哥带你玩飞牛NAS-14:解锁公网自由!Lucky功能工具安装使用保姆级教程

星哥带你玩飞牛NAS-14:解锁公网自由!Lucky功能工具安装使用保姆级教程

星哥带你玩飞牛 NAS-14:解锁公网自由!Lucky 功能工具安装使用保姆级教程 作为 NAS 玩家,咱们最...
星哥带你玩飞牛NAS硬件02:某鱼6张左右就可拿下5盘位的飞牛圣体NAS

星哥带你玩飞牛NAS硬件02:某鱼6张左右就可拿下5盘位的飞牛圣体NAS

星哥带你玩飞牛 NAS 硬件 02:某鱼 6 张左右就可拿下 5 盘位的飞牛圣体 NAS 前言 大家好,我是星...
240 元左右!五盘位 NAS主机,7 代U硬解4K稳如狗,拓展性碾压同价位

240 元左右!五盘位 NAS主机,7 代U硬解4K稳如狗,拓展性碾压同价位

  240 元左右!五盘位 NAS 主机,7 代 U 硬解 4K 稳如狗,拓展性碾压同价位 在 NA...