自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(14)
  • 资源 (1)
  • 收藏
  • 关注

原创 配置 Nginx 缓存

Nginx 不仅仅是一个 Web 服务器,它还可以作为一个缓存服务器使用。通过 Nginx 缓存,可以对一些静态资源或者数据更新频率较低的后端服务做缓存,降低静态资源或后端服务的响应时间,同时也会降低后端的负载。

2022-11-25 22:56:36 9334 1

原创 OpenSSH: 通过 LDAP 做认证

在运维工作中,如何对服务器的帐号做管理是一个需要考虑的问题,尤其是当服务器数量较多或者用户较多时,如果没有做好服务器的帐号管理,像用户的服务器密码重置、服务器密码修改这种操作就会变得很麻烦。LDAP 可以用作集中的帐号管理,提供统一的帐号认证服务。将 LDAP 用作 SSH 服务的认证方式,是对服务器帐号做管理的一种思路。在接下来的文章中,我们将介绍如何将 LDAP 用作 SSH 认证。

2022-11-16 18:35:36 1458

原创 golang: make 与 new 的区别

如果用 new() 来创建 slice,那么创建的 header 中的 pointer 做0值处理,就会被初始化为 nil,而 length 和 capacity 也会被初始化为0,这样显然是不正确的。像slice、map、chan这样的引用类型,在创建这样类型的值后,会创建一个称作 header 的值,它其实是一个数据结构,这个数据结构中,包含一个指向底层数据结构的的指针,另外根据引用类型的不同,还会包含不同的字段用来管理底层数据结构。可以看到,new_int 的类型是一个指向int类型的指针;

2022-09-25 13:10:22 1627

原创 如何在 go 程序中暴露 Prometheus 指标

在这篇文章中,我们介绍了使用Golang的github.com/prometheus/client_golang模块,创建Counter类型的指标来统计不同接口的访问次数。github.com/prometheus/client_golang模块除了支持Counter类型的指标外,还支持gauge,summary,histogram类型的metric,使用方法都类似,详细的使用说明可以参考prometheus_client模块的文档说明[2]。............

2022-07-30 19:15:54 1022

原创 如何在 Python 程序中暴露 Prometheus 指标

prometheus_client模块除了支持Counter类型的指标外,还支持gauge,summary,histogram类型的metric,使用方法都类似,详细的使用说明可以参考prometheus_client模块的文档说明[4]。在下面的例子中,我们在程序中定义了'/login','/logout'两个API,然后在metric上添加'endpoint'Label来区分这两个API的统计信息。如果你喜欢我的文章,欢迎关注我的微信公众号。...

2022-07-23 18:26:13 1130

原创 在Perl程序中暴露Prometheus指标

SLI(服务质量指标)指的是一个服务的某项服务质量的一个具体量化指标(如请求延迟、错误率、QPS)。

2022-07-16 17:02:45 90

原创 Ubuntu 中安装 OpenLDAP

OpenLDAP 是 LDAP(Lightweight Directory Access Protocol) 协议的一个免费、开源的实现。通常在公司中用来做集中帐号管理。

2022-07-09 16:38:48 1996

原创 MySQL: 提高最大连接数

有时候,在连接 MySQL 数据库时,会连接失败,并返回"too many connections"的报错信息。这是由于当前 MySQL 的连接数太多,超过了允许的最大连接数。此时,可以多尝试几次连接 MySQL 数据库或者等待一会儿后再连接。如果一直无法连接到数据库,就需要重启 MySQL 了。如果尝试几次后,可以连接上 MySQL 数据库了,可以通过如下命令查看当前的连接数:SHOWSTATUS WHERE`variable_name`='Threads_connected';...

2022-05-29 09:49:34 914

原创 Zabbix: 将收集到值映射为易读的语句

Zabbix 是运维中常用的一款开源监控系统。在 Zabbix 中,要从被监控的主机收集数据,需要创建 Item。Zabbix 内置了很多不同类型的 Item,常用的 Item 类型为Zabbix agent,这种类型的 Item 通过与部署在被监控主机上的 Zabbix agent 通信来收集数据。Zabbix agent类型的 Item支持很多Item keys, 不同的Item keys用来收集不同的数据。例如 agent.hostname 用来收集被监控主机的主机名,proc.mem...

2022-05-22 09:26:09 264

原创 查看服务器重启前的 dmesg 日志

注: 文章中的示例代码都在 Ubuntu 系统中执行,其他 Linux 发行版操作类似。场景描述在日常的运维工作中,不可避免的会遇到服务器故障的问题。虽然在应用运维或SRE岗,不必亲自去维修服务器,但是有必要去排查导致问题的原因,以便后续提交报修工单。在各种类型的服务器故障中,有一种是这样的:某一天,服务器突然无法登录,服务器重启后又恢复正常。服务器重启恢复正常后,我们登录到服务器上,需要去判断这次故障是否是由于硬件问题导致的,如果是硬件有问题的话,通常会在 dmesg 日志中有所.

2022-05-14 08:30:31 9038 1

原创 Ubuntu: 安装最新版本的 Nginx

Ubuntu 默认 apt 源中的 Nginx 版本比较旧,今天介绍下如何在 Ubuntu 中安装最新版本的 Nginx。要安装较新版本的 Nginx, 可以使用 Nginx 的 APT 源。执行如下脚本来添加 Nginx APT 源:#!/bin/bashrelease=$(lsb_release -cs)cat <<EOF > /etc/apt/sources.list.d/nginx.listdeb https://nginx.org/packages/ubunt

2022-04-17 11:24:21 3628

原创 Perl: 将要执行的外部命令拆分为多行

注: 文章中的示例代码都在 Linux 平台下运行。在 Perl 中,可以通过 `` 或 qx// 函数方便的执行一些外部命令,并获取到命令的执行结果,例如下面的 Perl 代码片段可以获取到当前的时间:#!/usr/bin/perluse strict;use warnings;my $now = `date`;print "now: $now";输出结果示例:now: 2022年 04月 09日 星期六 09:09:00 CST有时候,要执行的外部命令参数比较多,都

2022-04-09 10:14:20 228

原创 Ubuntu: 将bing主页的背景图片设置为桌面壁纸

Bing虽然不是最好用的搜索引擎,但是对于 Bing 有一点我特别喜欢,那就是 Bing 每天都会在其主页展示一张高质量的、优美的图片。对于喜欢 Bing 主页的优美图片的人来说,可能会想要将 Bing 主页的背景图片设置为自己的桌面壁纸(例如我就是这样),这需要你手动下载 Bing 主页的背景图片,并将下载的图片手动设置为桌面的壁纸。然而,对于 Linux 用户而言,你不必每天都进行这样重复的操作。我为 Ubuntu 用户写了一个小程序 ——bingWallpaper, 这是一个可以运行在 Ubu..

2022-04-09 09:57:44 992

原创 Bash: 创建返回布尔类型值的函数

场景描述在写 Shell 脚本的时候,有时候会遇到比较复杂的逻辑判断,只有当这些的复杂的逻辑判断返回 true 或 false 时才执行某些操作,这时如果把这些复杂的逻辑判断直接写在 if 后面,会显得比较乱,可读性很差,而且后期不容易维护。解决方法对于上面描述的场景,我们可以把复杂的逻辑判断写到一个函数里,根据这些复杂逻辑判断的结果,我们希望这个函数能够返回 true 或 false。但是,Bash 中并没有布尔类型的值,参考 bash 的 man 手册,函数中的 return 只能返

2022-04-04 19:41:20 2065

Unicode Table

Unicode参考表

2017-05-16

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除