运维知识体系

运维知识体系

运维知识体系总结,持续更新,欢迎转载。
缓存知识体系

缓存知识体系

运维知识体系之缓存,分层多级缓存体系。
K8S实践指南

K8S实践指南

Docker和Kubernetes实践指南(每周更新)
新运维课堂

新运维课堂

全新体系化课程,开启运维新征程!

Windows定时任务0*1

回复

运维杂谈a86552544 发起了问题 • 1 人关注 • 0 个回复 • 245 次浏览 • 2019-06-21 20:34 • 来自相关话题

zabbix 3.4版本被攻击

Zabbix赵班长 回复了问题 • 2 人关注 • 1 个回复 • 755 次浏览 • 2019-06-03 15:36 • 来自相关话题

客户端访问服务器偶现慢

Web架构zzdwilliam 回复了问题 • 4 人关注 • 4 个回复 • 1355 次浏览 • 2019-06-03 15:35 • 来自相关话题

Windows 客户端访问 NFS 服务端很慢的问题

回复

文件存储qq_3322 发起了问题 • 1 人关注 • 0 个回复 • 972 次浏览 • 2019-06-03 15:35 • 来自相关话题

kolla-ansible安装openstack高可用企业级集群

OpenStackweillee 发表了文章 • 0 个评论 • 1237 次浏览 • 2019-05-03 12:26 • 来自相关话题

一.环境准备1.hosts设置 每台设备两块网卡: 第一块:NAT模式,用于下载软件包,设置好IP可以上网 第二块:桥接模式,用于External网络,用于虚拟机连接外部网络,不用设置IP   hos ...查看全部
一.环境准备1.hosts设置
每台设备两块网卡:
第一块:NAT模式,用于下载软件包,设置好IP可以上网
第二块:桥接模式,用于External网络,用于虚拟机连接外部网络,不用设置IP
 
hosts:hosteth0eth1deploy9.110.187.130 controller019.110.187.131不需要IPcontroller029.110.187.132不需要IPcompute019.110.187.133不需要IPcompute029.110.187.134不需要IPstorage9.110.187.135不需要IP2.ssh免密登录
ssh-keygen
ssh-copy-id root@controller01
ssh-copy-id root@controller02
ssh-copy-id root@compute01
ssh-copy-id root@compute02
ssh-copy-id root@storage
3.存储节点配置
  1. 要启动cinder存储服务,需先添加一块新的硬盘,然后创建pv、vg

[root@storage ~]# pvcreate /dev/sdb
[root@storage ~]# vgcreate cinder-volumes /dev/sdb //vg名取名为 cinder-volumes,这里主要跟 kolla配置文件里vg名一致

  1. 只允许vm实例访问块存储卷,对LVM可能出现异常做设置

vim /etc/lvm/lvm.conf
#修改 devices 下面的,有多少块硬盘就写多少块,如果不想使用系统盘,则不写a|sda
filter = [ "a|sda|", "a|sdb|", "r|.*|" ]

#重启lvm服务
systemctl restart lvm2-lvmetad.service
4.配置国内PIP源
所有节点都需要配置
mkdir ~/.pip

cat << EOF > ~/.pip/pip.conf
[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple/
[install]
trusted-host=pypi.tuna.tsinghua.edu.cn
EOF
5.安装PIP
#安装依赖
yum install -y python-devel libffi-devel gcc openssl-devel libselinux-python

#安装PIP
yum install -y python-pip
pip install --upgrade pip
6.安装docker
  1. 所有节点都安装

yum install -y yum-utils device-mapper-persistent-data lvm2
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum install docker-ce

  1. 配置Docker共享挂载

mkdir /etc/systemd/system/docker.service.d 
tee /etc/systemd/system/docker.service.d/kolla.conf << 'EOF'
[Service]
MountFlags=shared
EOF

  1. 使用阿里加速地址

mkdir -p /etc/docker

systemctl daemon-reload && systemctl enable docker && systemctl restart docker
systemctl status docker
二.部署节点安装1.安装docker模块
pip install docker   //这个其它节点也需要安装,否则后面会报错
2.ansible安装
yum install -y ansible
pip install -U ansible
3.安装kolla和kolla-ansible
  • Kolla-Ansible 可以从pip安装,也可以从git安装,这里演示从pip安装
pip install kolla kolla-ansible

错误解决方案[list=1]

  • Cannot uninstall 'PyYAML'. It is a distutils installed project and thus we cannot accurately determine which files belong to it which would lead to only a partial uninstall.
  • 解决:强制更新
    pip install --ignore-installed PyYAML
    [list=1]
  • 如果出现
    requests 2.20.0 has requirement idna<2.8,>=2.5, but you'll have idna 2.4 which is incompatible.
    错误,则强制更新
    requets
  • pip install --ignore-installed requests

    • 配置kolla-ansible1)拷贝globals.yml 和passwords.yml 到 /etc/kolla 目录
      cp -r /usr/share/kolla-ansible/etc_examples/kolla /etc/
      2)拷贝kolla-ansible的主机清单文件(all-in-one和multinode)
      cp /usr/share/kolla-ansible/ansible/inventory/* /home/​

    注:如果是在虚拟机里再启动虚拟机,那么需要把virt_type=qemu,默认是kvm

    mkdir -p /etc/kolla/config/nova cat << EOF > /etc/kolla/config/nova/nova-compute.conf [libvirt] virt_type=qemu cpu_mode = none EOF

    4.生成密码文件
    kolla-genpwd
    修改下面字段,使用方便的密码
    vim /etc/kolla/passwords.yml    keystone_admin_password: devops
    5.修改配置文件[list=1]
  • grep -Ev "^$|^[#;]" /etc/kolla/globals.yml
  • kolla_base_distro: "centos"kolla_install_type: "source"openstack_release: "rocky"kolla_internal_vip_address: "9.110.187.180"network_interface: "eth0"api_interface: "{{ network_interface }}"neutron_external_interface: "eth1"neutron_plugin_agent: "openvswitch"enable_cinder: "yes"enable_cinder_backend_iscsi: "yes"enable_cinder_backend_lvm: "no"enable_haproxy: "yes"enable_heat: "yes"glance_enable_rolling_upgrade: "no"ironic_dnsmasq_dhcp_range:tempest_image_id:tempest_flavor_ref_id:tempest_public_network_id:tempest_floating_network_name:
    [list=1]
  • 编辑/home/multinode文件
  • [control]controller01controller02​[network]controller01controller02​[inner-compute]​[external-compute]compute01compute02​[compute:children]inner-computeexternal-compute​[monitoring]deploy​[storage]storage​[deployment]localhost       ansible_connection=local........
    6.网关配置这里physnet1是对外网络的名字,在dashboard里创建供应商网络的名字要和这里对应vim /usr/share/kolla-ansible/ansible/roles/neutron/templates/ml2_conf.ini.j2
    [ml2_type_vlan]{% if enable_ironic | bool %}network_vlan_ranges = physnet1{% else %}network_vlan_ranges = physnet1{% endif %}
     三.openstack集群安装1.提前拉取镜像
    kolla-ansible -i ./multinode pull -vvv
    2.确认inventory配置文件是否正确
    ansible -m ping all -i ./multinode
    3.Bootstrap服务的依赖安装
    kolla-ansible -i ./multinode bootstrap-servers
    4.检查
    kolla-ansible -i ./multinode prechecks
    5.部署
    kolla-ansible -i ./multinode deploy​注:可以加-vvv,显示更多
    6.使用openstack
    • 生成环境变量和脚本
    kolla-ansible -i ./multinode post-deploy此时会在/etc/kolla下面生成admin-openrc.sh脚本,执行一下
    至此multinodes部署完成,浏览器输入外网访问地址:http://9.110.187.180,即可访问Openstack的登陆页面,用户名和密码都是之前设置的 
    • 各节点上服务常用目录

    /etc/kolla 服务配置目录
    /var/lib/docker/volumes/kolla_logs/_data 服务日志目录
    /var/lib/docker/volumes 服务数据映射的目录销毁openstack
    kolla-ansible destroy -i ./multinode  --yes-i-really-really-mean-it

     

    zabbix 4.0安装

    回复

    Zabbixzzx123 发起了问题 • 1 人关注 • 0 个回复 • 805 次浏览 • 2019-04-01 11:21 • 来自相关话题

    MongoDB集群搭建:副本+分片

    默认分类weillee 发表了文章 • 0 个评论 • 1417 次浏览 • 2019-03-08 15:43 • 来自相关话题

    环境规划服务器规划 192.168.3.167                    192.168.3.168                    192.168.3.170 mongos                       ...查看全部
    环境规划服务器规划
    192.168.3.167                    192.168.3.168                    192.168.3.170
    mongos                             mongos                              mongos
    config server                     config server                       config server
    shard server1 主节点         shard server1 副节点           shard server1 仲裁
    shard server2 仲裁            shard server2 主节点           shard server2 副节点
    shard server3 副节点         shard server3 仲裁              shard server3 主节点
    端口分配:
    mongos:20000 
    config:27017
    shard1:27001 
    shard2:27002 
    shard3:27003
     
    配置yum源并安装mongodb3.6
    cat > /etc/yum.repos.d/mongodb-org-3.6.repo << EOF
    [mongodb-org-3.6]
    name=MongoDB Repository
    baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.6/x86_64/
    gpgcheck=1
    enabled=1
    gpgkey=https://www.mongodb.org/static/pgp/server-3.6.asc
    EOF

    yum install mongodb-org -y
    目录创建:
    分别在每台机器建立conf、mongos、config、shard1、shard2、shard3目录,因为mongos不存储数据,只需要建立日志文件目录即可
    配置服务:
    可以根据业务需求创建相应目录,此文档按yum安装所产生的/etc/mongo.ocnf文件默认配置,如果自行创建记得修改目录权限
    chown -R mongod:mongod /var/lib/mongo
    vim /etc/mongod.conf
    systemLog:
    destination: file
    logAppend: true
    path: /var/log/mongodb/mongod.log
    storage:
    dbPath: /var/lib/mongo
    journal:
    enabled: true
    processManagement:
    fork: true # fork and run in background
    pidFilePath: /var/run/mongodb/mongod.pid # location of pidfile
    timeZoneInfo: /usr/share/zoneinfo
    net:
    port: 27017
    bindIp: 0.0.0.0
    replication:
    replSetName: csReplSet
    sharding:
    clusterRole: configsvr
    启动所有的mongo config server服务
    mongod --config /etc/mongod.conf

     副本服务登录任意一台配置服务器,初始化配置副本集
    mongo --port 27017
    #创建配置
    config = {
    _id : "csReplSet",
    members : [
    {_id : 1, host : "192.168.3.167:27017" },
    {_id : 2, host : "192.168.3.168:27017" },
    {_id : 3, host : "192.168.3.170:27017" }
    ]
    }
    #初始化副本集
    rs.initiate(config)
    #查看状态
    rs.status()

    其中,"_id" : " csReplSet "应与配置文件中配置的 replicaction.replSetName 一致,"members" 中的 "host" 为三个节点的 ip 和 port
     
    分片服务:
    配置分片副本集(三台机器)
    1.设置第一个分片副本集
    vim /etc/shard1.conf
    systemLog:
    destination: file
    logAppend: true
    path: /var/log/mongodb/shard1.log
    storage:
    dbPath: /var/lib/mongo/shard1/data
    journal:
    enabled: true
    processManagement:
    fork: true
    pidFilePath: /var/run/mongodb/shard1.pid
    timeZoneInfo: /usr/share/zoneinfo
    net:
    port: 27001
    bindIp: 0.0.0.0
    maxIncomingConnections: 20000
    replication:
    replSetName: shard1
    sharding:
    clusterRole: shardsvr

    #启动所有的shard1 server
    mongod --config /etc/shard1.conf

    #登陆任意一台shard1服务器,初始化副本集
    mongo --port 27001
    use admin
    #定义副本集配置
    config = {
    _id : "shard1",
    members : [
    {_id : 1, host : "192.168.3.167:27001",priority:2 },
    {_id : 2, host : "192.168.3.168:27001",priority:1 },
    {_id : 3, host : "192.168.3.170:27001",arbiterOnly: true }
    ]
    }
    #初始化副本集配置
    rs.initiate(config);

    #查看分区状态
    rs.status()

    ====================
    #配置第二个分片和副本集
    vim /etc/shard2.conf
    systemLog:
    destination: file
    logAppend: true
    path: /var/log/mongodb/shard2.log
    storage:
    dbPath: /var/lib/mongo/shard2/data
    journal:
    enabled: true
    processManagement:
    fork: true
    pidFilePath: /var/run/mongodb/shard2.pid
    timeZoneInfo: /usr/share/zoneinfo
    net:
    port: 27002
    bindIp: 0.0.0.0
    maxIncomingConnections: 20000
    replication:
    replSetName: shard2
    sharding:
    clusterRole: shardsvr

    #启动所有的shard2 server
    mongod --config /etc/shard2.conf

    #登陆任意一台非仲裁节点服务器,初始化副本集
    mongo --port 27002
    use admin

    #定义副本集配置
    config = {
    _id : "shard2",
    members : [
    {_id : 1, host : "192.168.3.167:27002",arbiterOnly: true },
    {_id : 2, host : "192.168.3.168:27002",priority:2 },
    {_id : 3, host : "192.168.3.170:27002",priority:1 }
    ]
    }
    #初始化副本集配置
    rs.initiate(config);

    #查看分区状态
    rs.status()

    #配置第三个分片和副本集
    vim /etc/shard3.conf
    systemLog:
    destination: file
    logAppend: true
    path: /var/log/mongodb/shard3.log
    storage:
    dbPath: /var/lib/mongo/shard3/data
    journal:
    enabled: true
    processManagement:
    fork: true
    pidFilePath: /var/run/mongodb/shard3.pid
    timeZoneInfo: /usr/share/zoneinfo
    net:
    port: 27003
    bindIp: 0.0.0.0
    maxIncomingConnections: 20000
    replication:
    replSetName: shard3
    sharding:
    clusterRole: shardsvr

    #启动所有的shard3 server
    mongod --config /etc/shard3.conf

    #初始化副本集配置
    rs.initiate(config)

    #查看分区状态
    rs.status()

    路由服务:
    配置路由服务器 mongos
    先启动配置服务器和分片服务器,后启动路由实例启动路由实例:(三台机器)
    vim /etc/mongos.conf
    systemLog:
    destination: file
    logAppend: true
    path: /var/log/mongodb/mongos.log
    processManagement:
    fork: true
    pidFilePath: /var/run/mongodb/mongos.pid
    timeZoneInfo: /usr/share/zoneinfo
    net:
    port: 20000
    bindIp: 0.0.0.0
    maxIncomingConnections: 20000
    sharding:
    configDB: csReplSet/192.168.3.167:27017,192.168.3.168:27017,192.168.3.170:27017

    #注意监听的配置服务器,只能有1个或者3个 csReplSet为配置服务器的副本集名字
    configDB: csReplSet/192.168.3.167:21000, 192.168.3.168:21000, 192.168.3.170:21000

    #启动路由服务器
    mongos --config /etc/mongos.conf

    #检查状态
    netstat -tunlp | grep mongo
    tcp 0 0 0.0.0.0:27001 0.0.0.0:* LISTEN 8810/mongod
    tcp 0 0 0.0.0.0:27002 0.0.0.0:* LISTEN 6962/mongod
    tcp 0 0 0.0.0.0:27003 0.0.0.0:* LISTEN 12671/mongod tcp 0 0 0.0.0.0:20000 0.0.0.0:* LISTEN 13577/mongos tcp 0 0 0.0.0.0:27017 0.0.0.0:* LISTEN 10328/mongod
    启用分片
    目前搭建了mongodb配置服务器、路由服务器,各个分片服务器,不过应用程序连接到mongos路由服务器并不能使用分片机制,还需要在程序里设置分片配置,让分片生效
    #登录其中的一台路由节点,手动启用分片
    mongo --port 20000
    use admin
    #添加分片到mongos
    sh.addShard("shard1/192.168.3.167:27001,192.168.3.168:27001,192.168.3.170:27001")
    sh.addShard("shard2/192.168.3.167:27002,192.168.3.168:27002,192.168.3.170:27002")
    sh.addShard("shard3/192.168.3.167:27003,192.168.3.168:27003,192.168.3.170:27003")

    #查看集群状态
    sh.status()

    filebeat+logstash的架构下,logstash如何针对json文件和多行文件分别使用codec解析?

    回复

    ELK不系之舟 发起了问题 • 1 人关注 • 0 个回复 • 1233 次浏览 • 2019-03-08 15:43 • 来自相关话题

    ansible远程执行.exe文件,不弹出UI界面

    回复

    自动化运维googlei 发起了问题 • 1 人关注 • 0 个回复 • 784 次浏览 • 2019-03-08 15:43 • 来自相关话题