记录关于Devops运维,虚拟化容器云计算,数据库,网络安全等各方面问题。
Docker and system monitoringdocker安装prometheus,grafana,cadvisor并监控容器与主机信息系统指标此仪表板(ID是893)显示 Docker 和系统指标,目的是将所有指标放在一个仪表板上。第一行表示带有仪表和文本/图形的系统度量(易于可视化和极简主义)。时间内存使用/交换磁盘使用情况负荷网络中央处理器使用率磁盘 I/O针对磁盘使用情况、内存使用情况和负载使用情况设置警报,以便在指标受到批评时发出警告。Docker 指标仪表板的第二部分是 Docker 指标,更详细地使用图形。每个容器的 CPU 使用率每个容器的已发送网络每个容器的接收网络每个容器的内存使用率/交换量每个容器的剩余内存(如果men_limit docker-compose.yml 中定义)服务器配置我使用 docker-compose 来设置我的监视:https://github.com/vegasbrianc/prometheus。我的仪表板使用此配置。服务运行:dockerprometheusnode-exporteralertmanagercadvisorgrafana v4使用 docker-compose.yml 安装 docker-compose.ymlprometheus:
image: prom/prometheus:latest
container_name: monitoring_prometheus
restart: unless-stopped
volumes:
- ./data/prometheus/config:/etc/prometh...
Prometheus基于文件的服务发现一,prometheus的服务发现简介。服务发现支持: endpoints,ingress,kubernetes,node,pod,service。Prometheus也提供了服务发现功能,可以从consul,dns,kubernetes,file等等多种来源发现新的目标。其中最简单的是从文件发现服务。• azure_sd_configs
• consul_sd_configs
• dns_sd_configs
• ec2_sd_configs
• openstack_sd_configs
• file_sd_configs
• gce_sd_configs
• kubernetes_sd_configs
• marathon_sd_configs
• nerve_sd_configs
• serverset_sd_configs
• triton_sd_configs二、具体过程。 1,环境介绍: 1),IP: 192.168.1.20,docker主机安装prometheus,node-exporter. 2),IP: 192.168.1.41 2,prometheus安装说明,docker容器的具体安装命令不再说了,比较简单,我这里修改了端口,其它的不变 具体可以看下图。 3,prometheus容器中的/etc/prometheus/prometheus.yml配置文件,具体内容如下: 编写配置文件:vim prometheus.yml# my global config
global:
scrape_inte...
ansible-playbook上传脚本执行并查找匹配文件下载一,环境说明。 1,IP:192.168.1.20,Centos6,ansible主机。 2,IP:192.168.1.25-28,Centos6,保存sim相关信息,受控机。 3,目标:提取受控机中产生登陆信息的sim号码,并排序去重后打包。 数据样本: /home/TrackFile/138/5555/6666/20211201.txt ,号码分段,有登陆信息后,每日一个文档二,脚本与YAML文件编写。 1,编写simcount.sh脚本,用来统计远程主机的sim号码,并排序去重后打包。 simpwd 是号码登陆信息的保存目录,simcount为上传的脚本保存目录。#!/bin/bash# 统计目录下产生信息的sim号码并去重排序,打包。simpwd='/home/aaaa/TrackFile' #sim信息保存目录simcount='/home/aaaa/simonline' #统计脚本保存目录hostip=`/sbin/ifconfig | grep 'inet addr:'| grep -v '127.0.0.1' | cut -d: -f2 | awk 'NR==1 { print $1}'`#找出轨迹目录下产生定位的sim号码find $simpwd -name "202112*.txt" |grep -v zip |awk 'BEGIN {FS="/"} {print $7$8$9}' > $simcount/$hostip-202112.txtfind $simpwd -name "202111*.txt" |grep -v zip |awk 'BEGIN {FS="/"} {print $7$8$...
docker安装prometheus+grafana监控平台一,环境说明。 1,主机IP:192.168.1.20,docker环境,安装prometheus, node-exporter,alertmanager。 2,主机IP:192.168.1.41,docker环境,安装pushgateway,grafana,node-exporter。二,各个组件的安装。 1,192.168.1.20主机中先建好相关挂载目录。 prometheus挂载文件 : /opt/prometheus/config/prometheus.yml ---> /etc/prometheus/prometheus.yml /opt/prometheus/work ---> /prometheus 2,prometheus.yml文件的具体内容。# my global configglobal: scrape_interval: 15s evaluation_interval: 15s # scrape_timeout is set to the global default (10s).# Alertmanager configurationalerting: alertmanagers: - static_configs: - targets: - 192.168.1.20:9093rule_files: # - "first_rules.yml" # - "second_rules.yml" # - "/etc/prometheus/rules/*.rules"scrape_configs:&nb...
ansible批量更新修改用户密码 一,问题背景因为服务器用户密码定期90天必须修改密码,因此需要进行批量化操作。使用有sudo权限的普通用户进行操作二,环境系统IP软件备注centos7192.168.11.140ansible2.9.7安装需要epel源centos7192.168.153.130nullnull三,操作步骤取消key验证[admin]# sudo sed -i 's/^#host_key_checking = False/host_key_checking = False/g' /etc/ansible/ansible.cfg
定义hosts文件[admin]# sudo vim /etc/ansible/hosts
[backsrvs]
192.168.153.130 ansible_ssh_user=admin ansible_ssh_pass=admin1234 ansible_become_pass=admin1234
ansible_ssh_user,ansible_ssh_pass 这两个是需要更新密码的主机的远程登陆账号与密码(如使用ssh互信就不用再写密码),ansible_become_pass是运行sudo命令的账号的密码,再运行命令时,如果 提示输入当前账号的密码,就需要使用此密码。 定义playbooks[admin]# sudo vim /etc/ansible/update_users_pd.yml
- name: 由于线上服务器普通账号三个月密码需要更新,这里采用普通用户登陆,再用sudo命令修改密码。
hosts: backsrvs
remote_user: admin
gather_facts: false
tasks:
- ...
docker安装gitlab-runner-ci构建项目时缓存使用方法一,环境说明。 1,docker中安装gitlab-runner。 2,gitab仓库中添加的项目中配置ci/cd流水线后,gitlab-runner会新建容器来构建部署项目。 3,gitlab-runner,如果不使用缓存,那么构建项目时速度比较慢。因为每次使用容器构建时,都要重新下载相关依赖。二,gitlab-runner在容器中使用缓存的项目中.gitlab-ci.yml配置具体内容。 1,具体内容如下:image: node:14masterbuild: tags: - cicdrunner stage: build cache: key: same-key paths: - node_modules/ script: - npm install --registry=https://registry.npm.taobao.org - npm run build only: - master &nbs...
ansible-playbook 执行剧本时的sudo-su使用方法 1,由于服务器基本上不能使用root登陆,只能使用普通账号, 使用sudo来管理系统,所以有些操作需要提取执行。 2,下面来个简单演示ansible-playbook执行sudo权限操作方法。 以下是YAML内容:- name: 启动rs组的所有主机的nginx服务。
hosts: rs
user: elk
tasks:
- name: 启动nginx命令.
become: yes
become_method: sudo
service:
name: nginx
state: started 3,从上面YAML文件内容可以看出来,这里是采用单个任务中sudo提取方法。 上面的切换主要使用的是become语句,其参数主要解释如下: become: yes #是否允许身份切换 become_method: sudo#切换用户身份的方式,有sudo、su、pbrun等方式,默认为sudo become_user: root #切换指定的用户 当然,如果你采用了sudo方法,可能需要使用visudo命令修改成无需提供密码方法, 并且上面的示例中 用户 elk,也要有sudo相关权限,比如Centos,RHEL加入wheel组。 4,become语句的使用,可以是在全局位置(见下面示例)。- name: 启动rs组的所有主机的nginx服务...
HAproxy健康检查的三种方式 1、通过监听端口进行健康检测 。这种检测方式,haproxy只会去检查后端server的端口,并不能保证服务的真正可用。 配置示例:listen http_proxy 0.0.0.0:80
mode http
cookie SERVERID
balance roundrobin
option httpchk
server web1 192.168.1.1:80 cookie server01 check
server web2 192.168.1.2:80 cookie server02 check inter 500 rise 1 fall 2 2、通过URI获取进行健康检测 。检测方式,是用过去GET后端server的的web页面,基本上可以代表后端服务的可用性。 配置示例:listen http_proxy 0.0.0.0:80
mode http
cookie SERVERID
balance roundrobin
option httpchk GET /index.html
server web1 192.168.1.1:80 cookie server01 check
server web2 192.168.1.2:80 cookie server02 check inter 500 rise 1 fall 2 3、通过request获取的头部信息进行匹配进行健康检测 。这种检测方式,则是基于高级,精细的一些监测需求。 通过对后端服务访问的头部信息进行匹配检测。 配置示例:liste...
HAproxy 负载均衡(对后端具备健康检测) 因为haproxy的包里有.spec文件,所以我们可以用rpm命令来自己构建ha的rpm包: 53 yum install rpm-build -y
57 rpmbuild -tb /usr/src/haproxy-1.7.3.tar.gz
58 yum install pcre-devel -y
59 rpmbuild -tb /usr/src/haproxy-1.7.3.tar.gz
60 yum install gcc -y
61 rpmbuild -tb /usr/src/haproxy-1.7.3.tar.gz
62 cd rpmbuild/RPMS/
[root@server1 x86_64]# lshaproxy-1.7.3-1.x86_64.rpm [root@server1 x86_64]# rpm -qpl haproxy-1.7.3-1.x86_64.rpm /etc/haproxy
/etc/rc.d/init.d/haproxy
/usr/sbin/haproxy
/usr/share/doc/haproxy-1.7.3/usr/share/doc/haproxy-1.7.3/CHANGELOG
/usr/share/doc/haproxy-1.7.3/README
/usr/share/doc/haproxy-1.7.3/architecture.txt
/usr/share/doc/haproxy-1.7.3/configuration.txt
/usr/share/doc/haproxy-1.7.3/intro.txt
/usr/share/doc/haproxy-1.7.3/management.txt
/usr/share/doc/haproxy-1.7.3/proxy-protocol.txt
/usr/share/man/man1/haproxy.1.gz [root@server1 x86_64]# rpm -ivh haprox...
基于Kubernetes+GitLab+Jenkins+动态slave-自动化项目部署 科技在进步,技术在更新,革命就不停止。 一、部署流程 开发人员把做好的项目代码通过git推送到gitlab,然后Jenkins通过 gitlab webhook (前提是配置好),自动从拉取gitlab上面拉取代码下来, 然后进行build,编译、生成镜像、然后把镜像推送到Harbor仓库;然后在部署的时候通过k8s拉取Harbor上面的代码进行创建容器和服务, 最终发布完成,然后可以用外网访问。 部署流程如下: (大佬的图,大概这个过程) 环境准备: IP 角色 172.25.0.30 master1、Jenkins 172.25.0.31 node1、Gitlab ...
最新评论