-
下载资源后解压,以管理员身份运行pycharm-professional-2024.1.exe
云服务器上运行了很多的docker服务,大多数服务都是没有验证的,可以通过nginx做集中的代理,并在nginx上配置用户名密码验证,避免非授权访问。
遇到的问题如下:
Q1 容器的IP是不固定的,如何配置nginx的代理?
A1 通过创建docker网络,使nginx容器与业务容器在同一个网络中,这样就可以通过容器名称进行代理,不需要关注容器的IP地址
Q2 新上线的业务容器/修改了业务容器端口,要修改nginx代理文件,又要重新加载nginx配置,有没有便捷的方式?
话不多说,直接给出示例,相信一眼就能看到怎么用了
1 | - name: hostStatsAlert300s |
主机名(nodename)
在指标node_uname_info
中,且node_uname_info
的值恰巧为1,所以我们可以在PromQL
中通过node_uname_info
提取,只需要在原有PromQL
后添加
1 | * on(instance) group_left(nodename) (node_uname_info) |
这样,在prometheus告警的labels中,就可以通过nodename获取主机名了
比如原先的expr为
1 | node_filesystem_size_bytes - node_filesystem_avail_bytes) / node_filesystem_size_bytes > 0.7 |
如果每次修改配置文件都需要重启服务,那就太操蛋了。
必要条件:Prometheus在2.0版本后hot reload
功能是默认关闭的,如需开启,需要在启动Prometheus
的时候,添加 --web.enable-lifecycle
参数。
以网易163邮箱为例
修改alertmanager.yml
文件
1 | global: |
每次修改Prometheus
配置文件都需要重载服务,未免有些麻烦,而自动发现服务就是为了解决这种麻烦事儿的,自动发现服务又分为好几种,其中基于文件的服务发现是最通用的方式。这种方式不需要依赖于任何的平台或者第三方服务。Prometheus
会定时从文件中读取最新的Target
信息,因此,我们可以通过任意的方式将监控Target
的信息写入即可。
prometheus.yml
文件1 | - job_name: 'file_sd_default' |
ACK
从集群稳定性、集群节点异常、集群节点水位、应用容器副本异常、工作负载异常、存储异常、网络异常等多个方面,通过集群、应用的运维经验沉淀,总结梳理出以下Prometheus
重要报警规则配置。
报警规则包含容器副本异常、工作负载异常等内容,分为以下级别。