JOBCHER BLOG
prometheus grafana alertmanager 安装配置
prometheus+grafana+alertmanager 安装配置 服务器监控告警系统搭建,通过 exporter 获取节点信息到 prometheus。prometheus 配置规则,使 garfana 和 alertmanager 能够接受到数据,分别展示数据和发送告警 参数 VM :192.168.99.78 端口 服务 9100 node_exporter 3000 grafana 9090 prometheus 9115 blackbox_exporter 安装 grafa 安装 docker 安装 1docker run -d -p 3000:3000 \ 2--name=grafana \ 3-v grafana-storage:/var/lib/grafana \ 4grafana/grafana:8.3.3 prometheus 安装 下载 1wget https://github.com/prometheus/prometheus/releases/download/v2.32.1/prometheus-2.32.1.linux-amd64.tar.gz 2tar -zxvf prometheus-2.32.1.linux-amd64.tar.gz 3cd prometheus-2.32.1.linux-amd64 4mkdir -p file_sd 5mkdir -p rules 运行 prometheus 1killall prometheus 2nohup ./prometheus --config.file=prometheus.yml & 3# 查看运行状况 4tail -f nohup.out node_exporter 安装 docker-compose 安装 1version: "3" 2services: 3 node-exporter: 4 image: prom/node-exporter:v1.
JOBCHER BLOG
prometheus 配置
prometheus 配置 Prometheus 是由 SoundCloud 开源监控告警解决方案 组件 Prometheus Server, 主要用于抓取数据和存储时序数据,另外还提供查询和 Alert Rule 配置管理。 client libraries,用于对接 Prometheus Server, 可以查询和上报数据。 push gateway ,用于批量,短期的监控数据的汇总节点,主要用于业务数据汇报等。 各种汇报数据的 exporters ,例如汇报机器数据的 node_exporter, 汇报 MongoDB 信息的 MongoDB exporter 等等。 用于告警通知管理的 alertmanager 。 运行逻辑 Prometheus server 定期从静态配置的 targets 或者服务发现的 targets 拉取数据。 当新拉取的数据大于配置内存缓存区的时候,Prometheus 会将数据持久化到磁盘(如果使用 remote storage 将持久化到云端)。 Prometheus 可以配置 rules,然后定时查询数据,当条件触发的时候,会将 alert 推送到配置的 Alertmanager。 Alertmanager 收到警告的时候,可以根据配置,聚合,去重,降噪,最后发送警告。 可以使用 API, Prometheus Console 或者 Grafana 查询和聚合数据。 安装 prometheus 使用预编译的二进制文件安装 1wget https://github.com/prometheus/prometheus/releases/download/v2.32.1/prometheus-2.32.1.linux-amd64.tar.gz 2tar -zxvf prometheus-2.32.1.linux-amd64.tar.gz 3cd prometheus-2.
JOBCHER BLOG
centos7.9 网络配置
centos7.9 网络配置 解决 centos 新机器网络不通的问题,CentOS7 默认不启动网卡的。CentOS 安装成功后,进行一下 ping 的操作,验证网络是否联通. 1ping 1.1.1.1 2ip addr 3# 查看ip网络名称 启用网卡 进入 /etc/sysconfig/network-scipts 文件夹下,找到 IP 网卡名称 1cd /etc/sysconfig/network-scipts 2vim ifcfg-eth0 启用 ONBOOT 1#vim ifcfg-eth0 2#修改 3ONBOOT=YES 4# esc 并:wq退出保存 重启机器 1shutdown -r now 结尾 centos 用的挺别扭,不考虑性能和性价比,我还是喜欢用 ubuntu……,简单的配置,初学者我建议还是先用 ubuntu,会少踩很多坑。当然了,用 x86 不然初学者用树莓派和 arm 设备,会碰到很多兼容性的问题。
安装 docker 出现 ERROR: Unsupported distribution 'ol' 问题
安装 docker 出现 ERROR: Unsupported distribution 'ol' 问题
安装 docker 出现 ERROR: Unsupported distribution ‘ol’ 问题 部署 docker 安装出现 ERROR: Unsupported distribution ‘ol’ 确认是不是 arm 架构 1uname -r 确认使用的是不是 oracle 服务器系统,如果是请继续操作,安装依赖: 1dnf install -y dnf-utils zip unzip 2dnf config-manager --add-repo=https://download.docker.com/linux/centos/docker-ce.repo 安装 docker 1dnf remove -y runc 2dnf install -y docker-ce --nobest 完成 docker 安装并检查 1systemctl enable docker.service 2systemctl start docker.service 1#检查 2systemctl status docker.service 3docker info 4docker version 结尾 该问题主要是 oracle 没有支持依赖导致的~oracle 还是很不错的~
JOBCHER BLOG
Kubernetes 实验手册(1)
Kubernetes 实验手册(1) 通过在 pve 创建 5 台虚拟机: 节点 IP 作用 node0 192.168.99.69 k8s-master01 node1 192.168.99.9 k8s-master02 node2 192.168.99.53 k8s-master03 node3 192.168.99.41 k8s-node01 node4 192.168.99.219 k8s-node02 node5 192.168.99.42 k8s-master-lb 配置信息 备注 系统版本 Ubuntu Docker 20.10.12 pod 网段 172.168.0.0/12 service 网段 10.96.0.0/12 VIP 不要和内网 IP 重复,VIP 需要和主机在同一个局域网内 更新 ansible 连接 1ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.99.155 2ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.99.199 3ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.99.87 4#ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.99.41 5#ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.99.219 1vim /etc/hosts 2192.
JOBCHER BLOG
RocketMQ 安装和启动
RocketMQ 安装和部署 部署 RocketMQ 单机安装构建 安装 JDK 1.8.0 1yum install java-1.8.0-openjdk* 安装 Maven 1wget http://dlcdn.apache.org/maven/maven-3/3.8.4/binaries/apache-maven-3.8.4-bin.tar.gz 2tar -zxvf apache-maven-3.8.4-bin.tar.gz 3mv -f apache-maven-3.8.4 /usr/local/ 4vim /etc/profile 5# 末尾添加 6export MAVEN_HOME=/usr/local/apache-maven-3.8.4 7export PATH=${PATH}:${MAVEN_HOME}/bin 8# 保存 9source /etc/profile 10# 查看maven是否正常 11mvn -v 快速部署 1#构建 DLedger 2git clone https://github.com/openmessaging/openmessaging-storage-dledger.git 3cd openmessaging-storage-dledger 4mvn clean install -DskipTests 5# 构建 RocketMQ 6git clone https://github.com/apache/rocketmq.git 7cd rocketmq 8git checkout -b store_with_dledger origin/store_with_dledger 9mvn -Prelease-all -DskipTests clean install -U 10# 部署 11cd rocketmq/distribution/target/apache-rocketmq 12sh bin/dledger/fast-try.
JOBCHER BLOG
安装 minIO Azure S3网关
安装 minIO 通过 docker 安装 1docker run -p 9000:9000 -p 41863:41863 -d --name azure-s3 \ 2 -e "MINIO_ACCESS_KEY=azure存储账户" \ 3 -e "MINIO_SECRET_KEY=azure存储密码" \ 4 minio/minio gateway azure --console-address ":41863" 通过 docker-compose 安装 1version: "3" 2services: 3 minio: 4 image: "minio/minio:RELEASE.2022-01-04T07-41-07Z.fips" 5 container_name: "minio" 6 restart: "always" 7 volumes: 8 - "/etc/localtime:/etc/localtime" 9 ports: 10 - "9000:9000" 11 - "9001:9001" 12 environment: 13 - "MINIO_ROOT_USER=azure存储账户" 14 - "MINIO_ROOT_PASSWORD=azure存储密码" 15 command: 16 - --console-address ":41863"
JOBCHER BLOG
Keepalived高可用
Keepalived 高可用 配置文件存放位置:/usr/share/doc/keepalived/samples VVRP 虚拟路由冗余协议 组成 LB 集群:Load Balancing,负载均衡集群,平均分配给多个节点 HA 集群:High Availability,高可用集群,保证服务可用 HPC 集群:High Performance Computing,高性能集群 配置 keepalived+LVS+nginx 各节点时间必须同步:ntp, chrony 关闭防火墙及 SELinux 同步各节点时间 1#安装ntpdate 2apt install ntpdate 3#更改时区 4timedatectl set-timezone 'Asia/Shanghai' 5#查看时间 6timedatectl 7datetime 安装 keepalived 1#安装 2apt install keepalived 3#更改模板 4cd /usr/share/doc/keepalived/samples
JOBCHER BLOG
ansible 安装和部署
ansible 安装和部署 Ansible 默认通过 SSH 协议管理机器. 安装 ansible 下载安装 1# ubuntu 安装 2apt-get install software-properties-common 3apt-add-repository ppa:ansible/ansible 4apt-get update 5apt-get install ansible 6# centos 安装 7yum install ansible 检查文件 1#检查 2ansible --version ansible 配置 添加主机 1vim /etc/ansible/hosts 2#添加你需要添加的被控主机地址和IP 配置 SSH key 授权访问 1# 控制主机生成ssh 密钥对(一路回车) 2ssh-keygen -t rsa 3# 复制公钥IP到被控主机 4ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.0.2 5ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.0.3 6ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.0.4 7# ssh-copy-id命令会自动将id_rsa.pub文件的内容追加到远程主机root用户下.ssh/authorized_keys文件中。 更改 ansible 配置 1vim /etc/ansible/ansible.cfg 2 3#禁用每次执行ansbile命令检查ssh key host 4host_key_checking = False 5# 开启日志记录 6log_path = /var/log/ansible.
JOBCHER BLOG
yaml 语法
yaml 语法 我们使用 YAML 是因为它像 XML 或 JSON 是一种利于人们读写的数据格式. 此外在大多数变成语言中有使用 YAML 的库.YAML 语法的基本概述, 它被用来描述一个 playbooks(我们的配置管理语言). 基本的 YAML 对于 Ansible, 每一个 YAML 文件都是从一个列表开始. 列表中的每一项都是一个键值对, 通常它们被称为一个 “哈希” 或 “字典”. 所以, 我们需要知道如何在 YAML 中编写列表和字典. YAML 还有一个小的怪癖. 所有的 YAML 文件(无论和 Ansible 有没有关系)开始行都应该是 —. 这是 YAML 格式的一部分, 表明一个文件的开始. 1--- 2# 一个美味水果的列表 3- Apple 4- Orange 5- Strawberry 6- Mango
JOBCHER BLOG
logrotate 日志滚动的使用
logrotate 日志滚动的使用 logrotate 日志滚动切割工具,是 linux 默认安装的工具,配置文件位置: 1/etc/logrotate.conf 2/etc/logrotate.d/ 参数 以 nginx 配置为例 1/opt/log/nginx/*.log { 2 daily 3 missingok 4 rotate 14 5 errors "nb@nbtyfood.com" 6 compress 7 delaycompress 8 notifempty 9 create 0640 www-data adm 10 sharedscripts 11 prerotate 12 if [ -d /etc/logrotate.d/httpd-prerotate ]; then \ 13 run-parts /etc/logrotate.d/httpd-prerotate; \ 14 fi \ 15 endscript 16 postrotate 17 invoke-rc.d nginx rotate >/dev/null 2>&1 18 endscript 19} 参数 作用 compress 压缩日志文件的所有非当前版本 daily,weekly,monthly 按指定计划轮换日志文件 delaycompress 压缩所有版本,除了当前和下一个最近的 endscript 标记 prerotate 或 postrotate 脚本的结束 errors “emailid” 给指定邮箱发送错误通知 missingok 如果日志文件丢失,不要显示错误 notifempty 如果日志文件为空,则不轮换日志文件 olddir “dir” 指定日志文件的旧版本放在 “dir” 中 postrotate 引入一个在日志被轮换后执行的脚本 prerotate 引入一个在日志被轮换前执行的脚本 rotate ’n' 在轮换方案中包含日志的 n 个版本 sharedscripts 对于整个日志组只运行一次脚本 size=‘logsize’ 在日志大小大于 logsize(例如 100K,4M)时轮换
JOBCHER BLOG
docker 和 docker-compose 安装
安装 docker 通过 docker 脚本安装 1curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun 1curl -sSL https://get.daocloud.io/docker | sh CentOS 手动安装 卸载之前相关的依赖 1sudo yum remove docker \ 2 docker-client \ 3 docker-client-latest \ 4 docker-common \ 5 docker-latest \ 6 docker-latest-logrotate \ 7 docker-logrotate \ 8 docker-engine 下载依赖包 1sudo yum install -y yum-utils 选择国内阿里云镜像 1sudo yum-config-manager \ 2 --add-repo \ 3 https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo 安装 Docker Engine-Community 1sudo yum install docker-ce docker-ce-cli containerd.