docker调整时区
docker调整时区简介通过运行的服务,发现定时任务执行的时间与预期时间相差8小时,猜测是时区原因。对服务的定时任务进行了重新配置,更改了时区也不生效,猜测是docker容器的时区异常。
错误配置一在网上找了一个配置docker时区的方法,在运行的时候挂在本地时区配置文件。
1-v /etc/timezone:/etc/timezone:ro -v /etc/localtime:/etc/localtime:ro
结果发现启动后有报错。
1tzlocal.utils.ZoneInfoNotFoundError: 'Multiple conflicting time zone configurations found:\n/etc/timezone: Asia/Shanghai\n/etc/localtime is a symlink to: UCT\nFix the configuration, or set the time zone in a TZ environment variable.\n'
正确配置通过传递环境变量的方式进行了配置。
1-e TZ=As ...
prometheus实战-监控个人阿里云服务器
项目背景因为服务器部署的服务有点多,偶尔会有因为内存不足导致服务挂死的情况。再者一直想做一个url的监控,来确认自己的服务运行正常。之前本来想自己通过py写一个小的监控程序,后来考虑了一下之后觉得还是使用prometheus直接做监控。
前期问题之所以最初想要自己写一个小程序是有以下两个原因:
服务器性能一般,内存吃紧。
外网带宽只有1m,在服务器上部署grafana,访问的时候加载速度很慢。经过实际使用,发现整个prometheus组件对资源的使用程度很低。至于数据展示,选择了在本地部署grafana的方式避免加载。目前来看整个系统运行正常。
整体架构结合自己使用需求,总计在服务器上部署了prometheus的四个组件。
prometheus
node_exporter
blackbox_exporter
alertmanger
实际操作安装步骤略过,基本就是下载解压运行。为了方便管理服务,将所有服务都加到了系统服务中。具体可以参考prometheus部署并配置成系统服务
node_exporter 和 blackbox_exporter这两个本身未进行配置。node_exp ...
Centos 7 安装 elasticsearch 8 及添加密码认证
Centos 7 安装 elasticsearch 8 及添加密码认证安装可以使用yum安装或使用压缩包直接启动。为了方便启停,我这里使用了yum安装
1234567891011121314rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearchvim /etc/yum.repos.d/es.repo #内容如下cat /etc/yum.repos.d/es.repo[elasticsearch]name=Elasticsearch repository for 8.x packagesbaseurl=https://artifacts.elastic.co/packages/8.x/yumgpgcheck=1gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearchenabled=0autorefresh=1type=rpm-mdsudo yum install --enablerepo=elasticsearch elasticsearch
调整系统配 ...
面试问题记录 五/二 - redis 主从
Redis 主从架构单机的 redis,能够承载的 QPS 大概就在上万到几万不等。对于缓存来说,一般都是用来支撑读高并发的。因此架构做成主从(master-slave)架构,一主多从,主负责写,并且将数据复制到其它的 slave 节点,从节点负责读。所有的读请求全部走从节点。这样也可以很轻松实现水平扩容,支撑读高并发。
redis replication 的核心机制
redis 采用异步方式复制数据到 slave 节点,不过 redis2.8 开始,slave node 会周期性地确认自己每次复制的数据量;
一个 master node 是可以配置多个 slave node 的;
slave node 也可以连接其他的 slave node;
slave node 做复制的时候,不会 block master node 的正常工作;
slave node 在做复制的时候,也不会 block 对自己的查询操作,它会用旧的数据集来提供服务;但是复制完成的时候,需要删除旧数据集,加载新据集,这个时候就会暂停对外服务了;
slave node 主要用来进行横向扩容,做读写分离,扩容的 sla ...
面试问题记录 五/三 - redis 哨兵
Redis 哨兵作用主从复制当master出现故障时,需要手动切换master。哨兵模式就是为了解决手动切换这个问题。Redis2.8中提供了哨兵工具,来实现自动化的系统监控和故障恢复。哨兵是一个独立的进程,作为进程,它会独立运行。其原理是哨兵通过发送命令,等待Redis服务器响应,从而监控运行多个Redis实例。
哨兵通过发送命令,让Redis服务器返回运行状态,包括master和slave。当哨兵(Sentinel)检测到master宕机,会自动将slave切换成master。然后通过发布订阅模式通知其他的slave。让其他slave切换主机。
故障自动切换假设主服务器宕机,哨兵1先检测到这个结果,系统并不会马上进行 failover 过程,仅仅是哨兵1主观的认为主服务器不可用,这个现象成为主观下线。当后面的哨兵也检测到主服务器不可用,并且数量达到一定值时,那么哨兵之间就会进行一次投票,投票的结果由一个哨兵发起,进行 failover 操作。切换成功后,就会通过发布订阅模式,让各个哨兵把自己监控的从服务器实现切换主机,这个过程称为客观下线。这样对于客户端而言,一切都是透明的。
...