精华内容
下载资源
问答
  • 文章目录实验基础指定本地yum仓库创建数据库(用于zabbix-server)编写/srv/salt/top.sls文件为ser4部署zabbix-server为ser3ser4部署zabbix-agent为ser4部署zabbix-web界面编写pillar目录部署测试及排错添加zabbix-...

    实验基础

    实验目的:

    利用saltstack构建server-agent架构的zabbix环境,主要指定server端,并添加一个agent端, 其他的agent端可根据需要多添加几个。

    在本篇文章里,搭建的zabbix环境中,ser4是zabbix-server,ser3是zabbix-agent。

    实验环境:

    172.25.2.3  ser2  saltstack-master端(提前做好)
    172.25.2.4  ser3  saltstack-minion端 (提前做好)
    172.25.2.5  ser4 saltstack-minion端 (提前做好)
    
    172.25.2.2 真机 构建zabbix软件包的本地仓库
    关闭几台虚拟机的firewalld selinux
    写好各自的/etc/hosts解析文件
    

    实验前的准备:

    1.在真机中,将所需的zabbix的软件包放在/var/www/html/zabbix目录中,并进行依赖性创建。

    在这里插入图片描述

    在这里插入图片描述在这里插入图片描述在这里插入图片描述
    2.在实验中需要用到4个配置文件,因此我是先手动部署了一遍zabbix,获得了配置文件,大家可以自行下载,但是文件是必需的。

    指定本地yum仓库

    在部署中,也可以选择网络安装,但是这里为了加快效率,选择本地yum,所需的包之前已经放在真机。

    [root@ser2 salt]# cd repos/
    [root@ser2 repos]# ls
    zabbix.sls
    [root@ser2 repos]# cat zabbix.sls 
    zabbix:
      pkgrepo.managed:
        - baseurl: http://172.25.2.250/zabbix/
        - gpgcheck: 0
    

    在这里插入图片描述在这里插入图片描述2.在这里插入图片描述在这里插入图片描述

    创建数据库(用于zabbix-server)

    db-install:
      pkg.installed:
        - pkgs:
          - mariadb-server
          - mariadb
          - MySQL-python
    
    
      service.running:
        - name: mariadb
     
      cmd.run:
        - name: mysql -e "DELETE FROM mysql.user WHERE User='';" && mysql -e "DELETE FROM mysql.user WHERE User='root' AND Host NOT IN ('localhost', '127.0.0.1', '::1');" && mysql -e "DROP DATABASE IF EXISTS test;" && mysql -e "DELETE FROM mysql.db WHERE Db='test' OR Db='test\\_%'" && mysql -e "FLUSH PRIVILEGES;"
        - onlyif: mysql -e "show databases;"
    
      mysql_user.present:
        - name: root
        - password: westos
    
    db-configure:
      file.managed:
        - name: /mnt/create.sql.gz
        - source: salt://mariadb/files/create.sql.gz
    
      mysql_database.present:
        - name: zabbix
        - character_set: utf8
        - collate: utf8_bin
        - connection_user: root
        - connection_pass: westos
    
      mysql_user.present:
        - name: zabbix
        - host: localhost
        - password: westos
        - connection_user: root
        - connection_pass: westos
    
      mysql_grants.present:
        - grant: all privileges
        - database: zabbix.*
        - user: zabbix
        - connection_user: root
        - connection_pass: westos
    
      cmd.wait:
        - name: zcat /mnt/create.sql.gz | mysql -pwestos zabbix
        - watch:
          - mysql_database: db-configure
    

    在这里,我们需要提前得到create.sql.gz 并且放指定目录

    1.在这里插入图片描述在这里插入图片描述2.尝试将mariadb数据库安装在ser4
    在这里插入图片描述在这里插入图片描述3.在ser4中发现推过去的目录
    在这里插入图片描述

    编写/srv/salt/top.sls文件

    此文件作用是将后面的软件等进行一次推。(高级推)

    base:
      'ser4':
        - mariadb.install
        - zabbix-server.install
        - zabbix-web.install
    
      'ser3':
        - zabbix-agent.install
    

    1.在这里插入图片描述在这里插入图片描述

    为ser4部署zabbix-server

    创建目录zabbix-server,里面写zabbix-server的sls文件和所需的配置文件

    [root@ser2 zabbix-server]# ls
    files  install.sls
    [root@ser2 zabbix-server]# cat install.sls 
    include:
      - repos.zabbix
    
    server-install:
      pkg.installed:
        - pkgs:
          - zabbix-server-mysql
          - zabbix-agent
    
      file.managed:
        - name: /etc/zabbix/zabbix_server.conf
        - source: salt://zabbix-server/files/zabbix_server.conf
        - template: jinja
        - context:
          dbpasswd: {{ pillar['DBPASSWD'] }}
    
      service.running:
        - name: zabbix-server
        - watch:
          - file: server-install
    
    zabbix-agent:
      service.running
    

    1.在这里插入图片描述
    在这里插入图片描述在这里插入图片描述2.
    在这里插入图片描述
    vim zabbix_agentd.conf 修改zabbix-server配置文件(jinja模板形式)

    DBPassword={{ dbpasswd }}
    

    在这里插入图片描述

    为ser3和ser4部署zabbix-agent

    [root@ser2 zabbix-agent]# cat install.sls 
    include:
      - repos.zabbix
    
    agent-install:
      pkg.installed:
        - name: zabbix-agent
    
      file.managed:
        - name: /etc/zabbix/zabbix_agentd.conf
        - source: salt://zabbix-agent/files/zabbix_agentd.conf
        - template: jinja
        - context:
          zabbixserver: {{ pillar['ZABBIX-SERVER'] }}
          hostname: {{ grains['fqdn'] }}
    
      service.running:
        - name: zabbix-agent
        - watch:
          - file: agent-install
    

    1.在这里插入图片描述

    在这里插入图片描述2.修改配置文件

     98 Server={{ zabbixserver }}
    139 ServerActive={{ zabbixserver }}
    150 Hostname={{ hostname }}
    

    在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

    为ser4部署zabbix-web界面

    [root@ser2 zabbix-web]# cat install.sls 
    include:
      - repos.zabbix
    
    web-install:
      pkg.installed:
        - pkgs:
          - zabbix-web-mysql
          - zabbix-web
          - httpd
          - php
          - php-mysql
    
      file.managed:
        - name: /etc/httpd/conf.d/zabbix.conf
        - source: salt://zabbix-web/files/zabbix.conf
    
      service.running:
        - name: httpd
        - watch:
          - file: web-install
    

    在这里插入图片描述在这里插入图片描述在这里插入图片描述2.vim install.sls
    在这里插入图片描述在这里插入图片描述在这里插入图片描述编写配置文件,更改时区就可以
    在这里插入图片描述

    编写pillar目录

    [root@ser2 pillar]# ls
    top.sls  zabbix.sls
    [root@ser2 pillar]# cat top.sls 
    base:
      '*':
        - zabbix
    [root@ser2 pillar]# cat zabbix.sls 
    {% if grains['fqdn'] == 'ser4' %}
    DBPASSWD: westos
    {% else %}
    ZABBIX-SERVER: 172.25.2.5   //zabbix-server的主机ip
    {% endif %}
    

    1.在这里插入图片描述在这里插入图片描述2.vim zabbix.sls

    在这里插入图片描述
    至此,配置文件编写完成,现在进行部署测试。

    部署测试及排错

    在这里插入图片描述发现报错
    在这里插入图片描述原因是实验开始前,已经向ser4装了mariadb,手动删除之后再次测试。
    在这里插入图片描述在这里插入图片描述
    再次测试,成功部署。

    在这里插入图片描述在这里插入图片描述在这里插入图片描述
    默认的密码是zabbix
    在这里插入图片描述
    进入监控页面发现zabbix-server处于非运行状态,在ser4上查看端口也没有发现10051,但是查看zabbix-server的状态是running的,查看日志发现问题,原来是数据没有连接成功。

    在这里插入图片描述在这里插入图片描述
    在ser2上查看配置文件,发现是自己的数据库密码设置错误,将密码更改为westos,之后,删除ser4上的数据库及其配置文件,重新推送一次。
    在这里插入图片描述再次测试,发现恢复正常。
    在这里插入图片描述

    添加zabbix-agent

    将ser3添加至zabbix系统中。
    1.添加主机ser3
    在这里插入图片描述2.添加模板
    在这里插入图片描述3.监控成功
    在这里插入图片描述在这里插入图片描述

    展开全文
  • jumpserver一键安装部署和简单配置、跳板机简单测试jumpserver 跳板机简介一、准备环境和服务流程二、自动部署一键安装三、浏览器访问基本设置四、通过跳板机测试 jumpserver 跳板机简介 Jumpserver 是全球首款完全...

    jumpserver 跳板机简介

    Jumpserver 是全球首款完全开源的堡垒机, 使用 GNU GPL v2.0 开源协议, 是符合 4A 的专业运维审计系统。

    Jumpserver 使用 Python / Django 进行开发, 遵循 Web 2.0 规范, 配备了业界领先的 Web Terminal 解决方案, 交互界面美观、用户体验好。

    Jumpserver 采纳分布式架构, 支持多机房跨区域部署, 中心节点提供 API, 各机房部署登录节点, 可横向扩展、无并发访问限制。

    Jumpserver 现已支持管理 SSH、 Telnet、 RDP、 VNC 协议资产。


    跳板机是什么?
    跳板机是运维堡垒主机的另个称呼。作为技术或者运维人员应该不会陌生。企业为了服务器的安全,通常所有的ssh连接都是通过跳板机来完成,以便于对ssh连接进行验证和管理。

    运维堡垒机的理念起源于跳板机。2000年左右,高端行业用户为了对运维人员的远程登录进行集中管理,会在机房里部署跳板机。跳板机就是一台服务器,维护人员在维护过程中,首先要统一登录到这台服务器上,然后从这台服务器再登录到目标设备进行维护。

    一、准备环境和服务流程

    全新安装的 Centos7 (7.x)
    需要连接 互联网
    使用 root 用户执行
    

    在这里插入图片描述

    二、自动部署一键安装

    curl -sSL https://github.com/jumpserver/jumpserver/releases/download/v2.6.1/quick_start.sh | sh
    

    在这里插入图片描述

    安装完成后的效果展示
    启动:
    cd /opt/jumpserver-installer-v2.6.1/
    ./jmsctl.sh start
    

    在这里插入图片描述

    三、浏览器访问基本设置

    在这里插入图片描述

    默认账号:admin
    密码:admin
    

    资产管理<创建管理用户<创建系统用户<资产列表添加主机
    权限管理<资产授权<把资产列表的主机都授权一下
    在这里插入图片描述
    测试连接
    在这里插入图片描述

    四、通过跳板机测试

    [root@localhost ~]# ssh admin@192.168.131.80 -p2222
    
    

    流程:
    本地PC通过远程连接 连接到跳板机,在通过跳板机去连接后端开发的机器,批量管理操作。
    在这里插入图片描述

    展开全文
  • 测试突破瓶颈,学习Python的必要性Python就业前景,未来发展方向Python安装开发环境多平台部署第2课:一个半小时搞定基本Python程序-上Python变量Python基本数据类型第3课:一个半小时搞定基本Python程序-下Python...

    测试突破瓶颈,学习Python的必要性

    Python就业前景,未来发展方向

    Python安装和开发环境多平台部署

    第2课:一个半小时搞定基本Python程序-上

    Python变量

    Python基本数据类型

    第3课:一个半小时搞定基本Python程序-下

    Python分支与循环

    Python字典与集合

    Python高阶特性

    第4课:我们一起面向对象-上

    Python函数及函数使用

    Python模块

    第5课:我们一起面向对象-下

    Python类与实例

    Python继承与修饰器

    第6课:程序出错怎么办?

    Python异常处理

    Python断言机制

    第7课:测试也可以做web开发之初识小Django

    web框架介绍

    Django环境搭建

    第8课:测试也可以做web开发之我们的第一个小网页

    Django工作流

    MTV开发模式

    第9课:测试也可以做web开发之一起来写个登录

    Python实现Get和Post请求

    Django认证系统

    第10课:测试也可以做web开发之完整的后台当然要

    Django模型

    第11课:测试可以做web开发之数据库也得有

    配置MySQL数据库

    基本数据库访问

    本期课程将于9月15日开始。课程持续时间大约为13周。

    运维工程师、测试工程师、自动化测试工程师、测试开发工程师、测试管理人员、对Python有兴趣软件从业人员

    掌握Python基础知识,能独立完成简单的python web 项目,清楚Web开发原理及流程;掌握自动化测试的概念,能独立进行UI、接口、单元自动化测试,能完成自动化测试框架的设计及维护工作,掌握Python自动化运维知识,能进行自动化运维工作。

    课程环境:

    Python 3.6

    Pycharm

    centos 7.0

    讲师介绍:

    Mango

    八年软件开发、软件测试、测试开发工作经验,就职于证券、银行软件行业,担任测试主管、测试开发等职位,主要负责项目的管理、自动化测试、接口测试工作,性能测试、安全测试也有涉猎。声音甜美,对待学员温柔细致,深受学员喜爱。

    展开全文
  • 结合我工作中碰到的运维问题,总结一下Linux下server常见的运维问题以及定位方式。...逻辑server一般是自主开发的,虽然在上线前大都经过功能压力测试,但放到现网环境部署后还是难免会出现一些问题...

      结合我工作中碰到的运维问题,总结一下Linux下server常见的运维问题以及定位方式。这里的server主要指自主开发的逻辑server,web srv因为通常采用通用的架构所以问题比较少。

        逻辑server通常的处理能力在3k/s - 1w/s之间,因业务特点而不同。逻辑server一般是自主开发的,虽然在上线前大都经过功能和压力测试,但放到现网环境上部署后还是难免会出现一些问题,有些问题是在灰度发布时就可以发现,而有些问题则是一个漫长的暴露过程。下面先总结一下大致的问题分类和定位方法。

     

        1. 程序BUG如fd泄漏或内存泄漏

        业务上线前一定要做压测,同时查看进程消耗的内存与fd数,结合业务特性分析fd使用量是否合理,同时观察内存使用是不是最终会趋于稳定的值,如果一直增加,就肯定有泄漏。

        fd泄漏确认方法是:ls /proc/pid/fd -al | wc,可以看到单个进程使用的fd数,观察是否一直在涨长,如果没有最终达到一个稳定值,则可以确认存在泄漏。同时可以cat /proc/net/sockstat观察整体的fd使用数量是否一直在涨长,通常32位的机器,fd超过10W时系统会到达瓶颈。

        内存泄漏确认方法是:top 看进程使用的RES 和 SHR,观察是否一直在涨长,如果没有最终达到一个稳定值,则可以确认存在泄漏。同时可以看下mem的使用量是否一直在增加。内存泄漏最终的结果是使用到的swap分区,一旦出现这种情况,cpu的wa字段会出现远大于0的情况,表明cpu阻塞在等待输入输出上。

     

        2. 业务自然增长

        这一点依赖于对请求数的统计,通过对前后几天的对比,不难确认是否是业务自然增长,单机请求量上升使系统出现瓶颈,这种问题通过扩容可以轻松解决,但最好的办法是对系统的容量和关键参数如cpu/mem/eth加上监控,能够做到提前告警,这样不至于在出问题的时候紧急扩容。

     

        3. 特性变更导致用户行为异常

        举个例子,有一次我在升级server时,基于性能的考虑,少返回了一个已无效的字段,灰度升级一台机器后,发现系统负载升高了3倍,当时的第一反应是有bug,使到cpu的使用突增,但vmstat发现 升级前cpu使用率 usr 和 sys大致是 14  7,升级后为 42 21,大致同比增长了3倍,再看一下请求数,发现请求数也同比增长,可见,是某些原因达致用户在重试。

        因为上线前经过功能测试,所以正常用户的功能应该没有问题,对比这些的版本发更,发现有可能是少返回了一个字段,使外挂用户解析失败而不停重试,因此重新加上字段后再次发布,问题解决。从那次之后,总结了一点,当返回给用户侧的数据出现字段变更时,一定要灰度发布确认是否影响到外挂用户,如果有影响的话可以返回通过假数据解决。

     

        4. 系统参数配置不当

        举个例子,一段时间发现在访问高峰时段,进程会出现申请fd失败的情况,由于某些接口采用短连接,每次处理都需要申请fd、处理、释放fd,后来查看了系统参数,发现/proc/sys/net/ipv4/tcp_tw_recycle 和 /proc/sys/net/ipv4/tcp_tw_reuse都配的是0,0表示不开启加快回收fd和复用time_wait状态的fd,导致短连接关闭后,fd大面积处在time_wait状态,因些新的请求由于申请不到fd而失败,通过调整系统参数后问题解决。

     

        5. 编码问题导致系统处理能力较差

         其实这个范畴的不能算是运营问题,但是处理能力较差的系统会很容易到达瓶颈。在编码过程中,一定要注意避免无谓的开销,特别是系统调用等。这里我总结了几条供大家参考:配置只解析一次,然后常驻内存或共享内存;常用的工具类如上报、写日志等,使用static或单件模式,保证只初始化一个;尽量采用长连接,减少fd申请、建连接、释放带来的开销;通知等非关键可丢失的消息使用udp,只发不收;不打印不必要的日志,而且要循环写,防止日志文件过大时出错;外部接口超时尽量短,防止进程因外部接口问题被挂住;单个进程的设定最大处理时长,保证系统最差情况时的处理能力;少用time、stat等系统调用。

        系统调用方面,可以通过strace -c统计系统调用次数和耗时,从而对业务逻辑优化。strace -c的使用方法

        这里举个例子,我有一次strace -c了一个处理进程,发现stat函数的cpu使用率非常高,然后strace跟踪了一下进程的系统调用发现,该进程用到了一个统计上报的类,类本身是用static初始化的,但类的上报接口中,每次都会初始化一个对象,对采样进行分析,并进行上报,这时会解析一次采样配置文件同时再解析一次上报配置文件,所以虽然类本身是static但是已经没有意义了,对象还是每次都会初始化,后来改造了一下,把接口中的对象用指针代替,只在第一次接口调用时初始化,再次调用时,判断指针非NULL,则直接使用。优化后,发现系统的cpu使用下降了近20%,可见,减少无谓的系统调用对系统的处理能力是有很大提升的。

     

        以上总结了常见的运维问题和定位方法,相信大家大致有一套自已定位问题的方法,这里我谈下我定位问题的基本流程,供大家参考:

        1. 查看日志

        通过查看系统日志,可以第一时间确定是不是业务逻辑或外部接口出了问题,并可以结合代码进程核实。

     

        2. 是否fd>10W

        cat /proc/net/sockstat,观察tcp_use字段,如果持续增长而不趋于稳定说明fd泄漏或连接数过多,>10w时系统会出现异常。

     

        3. 负载分析

        首先用vmstat 1,观察cpu 、swap和r字段,大致可以分为以下几种情况:

        cpu的wa字段远>0,并且swap的si字段远>0,说明已经用到了交换分区,这时通过top观察进程的RES和SHR字段,如果RES字段很大,并且持续增长,可以确认是存在内存泄漏。

        cpu的usr和sys成比例比较高,r字段值也比较高,而swap使用量为0,说明可能是请求量有变化,这时核对请求量数据,是否成比例增长,如果是成比例增长的话,可以确认是请求量增大的原因,这时要根据几天的请求量数据确认是突增还是自然增长。

       

        运维无小事,在系统运维过程中,出现的问题可能五花八门,但系统的接入和处理能力相关的关键指标其实并不多,只要把握的关键点,就不难定位出问题所在。更多的方法、心得与体会,欢迎大家一起探讨。

    转载于:https://www.cnblogs.com/wajika/p/6414842.html

    展开全文
  • 比如本人公司的项目,目前有6个web和4个windows service,同时本地有两套环境:开发自测试环境和QA测试环境。每次版本发布,需要先部署开发自测试环境;开发人员自测试通过以后,将部署的版本部署到QA测试环境;QA...
  • 一. Docker概述 Docker是一个开源的应用容器引擎,基于Go语言开发。Docker可以让开发者打包他们的应用, 1.1 Docker的应用场景: ...使用Docker可以实现开发人员的开发环境、测试人员的测试环境运维人员的生产环
  •  高级工程师的基本职责说明1 职责: 1、负责开发环境、测试环境、预发环境生产环境的搭建,维护故障排除; 2、规范发版流程以及操作规范,保障生产环境的安全稳定; 3、建立应用数据库的自动化的部署运维...
  • 偶尔,会参与项目的测试环境搭建、项目部署和运维。 有很多命令,是经常遇到的,今天特别整理一次,加深下印象,免得下次又忘记。 1.SSH登录远程主机。 -p参数主要用来指明端口号,有的时候并不需要。 ssh -p 7116 ...
  • ​简介:DVWA是一个用来进行安全脆弱性鉴定的PHP/MySQL Web应用程序,其主要目标是帮助安全专业人员在法律环境测试他们的技能工具,帮助运维人员掌握基本的安全测试知识,帮助Web开发人员更好地了解保护Web应用...
  • JumpServer堡垒机助力中手游提升多云环境下安全运维能力; 中通快递:JumpServer主机安全运维实践; 东方明珠:JumpServer高效管控异构化、分布式云端资产; 江苏农信:JumpServer堡垒机助力行业云安全运维。 ...
  • #本文欢迎转载,转载请注明出处作者。前面介绍了通过tomcat+mysql以及apache+mysql,然后在网上搜索一些开源...开发人员将代码提交给测试人员,测试人员测试通过后,开发将最后要发布的程序与部署手册给到运维,运...
  • 这是开发和运维之间经常会出现的问题,就像有的时候在本地上测试的没有问题,但是一放在服务器上就会出现各种各样的问题。而且同一个应用在不同的地方部署,需要部署很多次,非常的麻烦,这对运维人员是一项非常大的...
  • 支持部署到本地云平台环境。使用Docker有很多好处,比如更快的交付和部署,更高效的资源利用,更轻松的迁移。它的应用场景包括Web应用的自动化打包部署,自动化测试,持续集成等。balabala一大堆,无论你是一个开发、...
  • 它可以使部署和扩展web应用程序、数据库和后端服务像搭积木一样容易,而不依赖特定技术栈或提供商。它主要是由开发、运维工程师使用的,因为它简单、快速和方便,可以用来测试和辅助开发他们产品,但是我们也可以在...
  • WeCMDB使用JavaVue进行开发,数据存储于MySQL,并依赖Tomcat Web容器运行。 请参考文档进行开发环境配置WeCMDB开发环境配置 WeCMDB代码贡献指引 关于WeCMDB代码贡献, 请查看文档 WeCMDB代码贡献指引 API说明 ...
  • 2.4. 开发工具和环境 Eclipse 4.5.0(Mars),自带maven插件,需要手工安装svn插件。 Maven 3.3.3(开发工具自带) Tomcat 7.0.53(Maven Tomcat Plugin) JDK 1.7 Mysql 5.6 Nginx 1.8.0 Redis 3.0.0 Win7 ...
  • 部署成本 Redis多机(Redis-Sentinel, Redis-Cluster)部署和配置相对比较复杂,较容易出错。例如:100个redis数据节点组成的redis-cluster集群,如果单纯手工安装,既耗时又容易出错。2.实例碎片化 作为一个Redis...
  • 程序员提交代码到仓库,jenkins拉取git中的代码,并进行构建,然后部署到对应的tomcat中,发布项目,测试反馈结果到开发产品那 这个环节就是jenkins要做的,实现之后,开发只要提交代码到git仓库即可,运维将CI/...

空空如也

空空如也

1 2 3 4
收藏数 66
精华内容 26
关键字:

web测试环境部署和运维