当前位置: 首页 > news >正文

mysql 视频网站开发博达高校网站群建设教程

mysql 视频网站开发,博达高校网站群建设教程,个人电脑建立网站,合肥生态建设职业培训学校网站前言很多次去面试#xff0c;有经验的面试官都会问一个问题#xff0c;你是怎么去定位日常遇到的问题#xff1f;平常跟同行分享自己遇到的问题#xff0c;事后他会问我#xff0c;这种看起来毫无头绪的问题#xff0c;你是怎么去定位解决的#xff1f;其实我们平常不知… 前言很多次去面试有经验的面试官都会问一个问题你是怎么去定位日常遇到的问题平常跟同行分享自己遇到的问题事后他会问我这种看起来毫无头绪的问题你是怎么去定位解决的其实我们平常不知道怎么问题出在哪主要是所了解的信息量不足那么怎么才能提高给咱们定位问题的信息量呢其实上面两个问题的答案都是同一个日志、指标、跟踪。有日志记录才能清楚知道当前系统的运行状况和具体问题指标是给与后续做优化和定位偶发性问题的一些参考没指标参考就没标准我们平常做得多的调试、查看调用栈也是跟踪的一种但是在分布式时代更多考量的是跨进程通信的调用链路。日志、指标、跟踪三者结合起来有一种统称——可观测性运维是架构的地基我第一次看到这句是在张辉清写的《小团队构建大网站中小研发团队架构实践》说实话我非常的认同。不少小团队的运维都是由开发兼职的而团队的运维能力决定了日后架构选型与日常维护。有良好的运维监控体系就有足够的信息量提供给开发人员进行定位排错。可观测性可观测性的意思是可以由系统的外部输出推断其内部状态的程度在软件系统中可观察性是指能够收集有关程序执行、模块内部状态以及组件之间通信的数据。分别由三个方向组成日志logging、跟踪 tracing、指标Metrics《Metrics, tracing, and logging》日志logging日志的定义特征是它记录离散事件目的是通过这些记录后分析出程序的行为。例如应用程序调试或错误消息通过转换文件描述通过 syslog 发送到 Elasticsearch审计跟踪事件通过 Kafka 推送到 BigTable 等数据存储或从服务调用中提取并发送到错误跟踪服务如 NewRelic的特定于请求的元数据。跟踪 tracing跟踪的定义特征是它处理请求范围内的信息目的是排查故障。在系统中执行的单个事务对象生命周期里所绑定的数据或元数据。例如RPC远程服务调用的持续时间请求到数据库的实际 SQL 查询语句HTTP 请求入站的关联 ID。指标Metrics指标的定义特征是它们是可聚合的目的是监控和预警。这些指标在一段时间内能组成单个逻辑仪表、计数器或直方图。例如队列的当前长度可以被建模为一个量规HTTP 请求的数量可以建模为一个计数器更新后通过简单的加法聚合计算并且可以将观察到的请求持续时间建模为直方图更新汇总到某个时间段中并建立统计摘要。代表性产品日志logging基本上是ELK (ElasticSearch, Logstash, Kibana) 技术栈一家独大了但是Logstash比较重量级的而轻量级的Filebeat可能更加受大家的青睐。下文里的实战部分我是以EFK(ElasticSearch, Filebeat, Kibana)演示。跟踪 tracing相比于日志就是百花齐放了Skywalking、zipkin、鹰眼、jeager、Datadog等等……但是在.Net的技术栈里能提供出SDK的相对会少所以选择也会少一些我在之前的实战和下文的演示都是用Skywalking主要优势无侵入。指标Metrics在云生时代Prometheus比Zabbix更加受大家欢迎同时Prometheus社区活跃度也占非常大的优势。下文实战部分我以Prometheus 作为演示。ElasticSearch部署与安装后面的Skywaking和日志都需要用到ElasticSearch所以我把部署流程优先提了出来。导入 GPG keyrpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch添加源vim /etc/yum.repos.d/elasticsearch.repo[elasticsearch] nameElasticsearch repository for 7.x packages baseurlhttps://artifacts.elastic.co/packages/7.x/yum gpgcheck1 gpgkeyhttps://artifacts.elastic.co/GPG-KEY-elasticsearch enabled0 autorefresh1 typerpm-md重新加载yum makecache安装sudo yum install -y --enablerepoelasticsearch elasticsearch修改配置vim /etc/elasticsearch/elasticsearch.ymlnetwork.host: 0.0.0.0discovery.type: single-node启动/sbin/chkconfig --add elasticsearchsudo -i service elasticsearch start systemctl enable elasticsearch.service用浏览器访问能出现下图就是可以了Prometheus与Grafana实现指标架构简析核心组件Prometheus serverPrometheus的主程序本身也是一个时序数据库它来负责整个监控集群的数据拉取、处理、计算和存储是使用pull方式由服务端主动拉取监控数据。AlertmanagerPrometheus的告警组件负责整个集群的告警发送、分组、调度、警告抑制等功能。 需要知道的是alertmanager本身是不做告警规则计算的简单来说就是alertmanager不去计算当前的监控取值是否达到我设定的阈值上面已经提过该部分规则计算是prometheus server来计算的alertmanager监听prometheus server发来的消息然后在结合自己的配置比如等待周期重复发送告警时间路由匹配等配置项然后把接收到的消息发送到指定的接收者。同时他还支持多种告警接收方式常见的如邮件、企业微信、钉钉等。1.3PushgatewayPushgateway 它是prometheus的一个中间网管组件类似于zabbix的zabbix-proxy。它主要解决的问题是一些不支持pull方式获取数据的场景比如自定义shell脚本来监控服务的健康状态这个就没办法直接让prometheus来拉数据这时就可以借助pushgateway它是支持推送数据的我们可以把对应的数据按照prometheus的格式推送到pushgateway然后配置prometheus server拉取pushgateway即可。UI Grafana、prometheus-ui是用来图形化展示数据的组件其中prometheus-ui是prometheus项目原生的ui界面但是在数据展示方面不太好用因此推荐grafana来展示你的数据grafana支持prometheus的PromQL语法能够和prometheus数据库交互加上grafana强大的ui功能我们可以很轻松的获取到很多好看的界面同时也有很多做好的模版可以使用。Prometheus Target采集指标的API有不同的Exporter如果redis、mysql、server nodel提供给Prometheus server定时pull数据到数据库。安装Prometheusmkdir /var/prometheus docker run -d --nameprometheus -p 9090:9090 prom/prometheus docker cp prometheus:/etc/prometheus/prometheus.yml /var/prometheus/删除之前的容器docker run -d --nameprometheus -p 9090:9090 -v /var/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml prom/prometheus到浏览器输入地址访问出现以下页面则成功 安装Grafanadocker run -d --namegrafana -p 3000:3000 grafana/grafana安装完成后使用admin/admin登录安装Node Exporterdocker run -d -p 9100:9100 \-v /proc:/host/proc:ro \-v /sys:/host/sys:ro \-v /:/rootfs:ro \--nethost \--restart always \prom/node-exporter到浏览器输入地址访问http://192.168.184.129:9100/metrics出现以下页面则成功配置Prometheusvim /var/prometheus/prometheus.yml添加以下配置 注意格式  - job_name: service-a    static_configs:      - targets: [192.168.88.138:9100]        labels:          instance: node  - job_name: service-b    static_configs:      - targets: [192.168.88.146:9100]        labels:          instance: node  - job_name: service-c    static_configs:      - targets: [192.168.88.144:9100]        labels:          instance: node重新启动Prometheus打开浏览器可以见下图配置Grafana添加数据源导入模板其他模板可以到 https://grafana.com/grafana/dashboards 查看 确认后则生成注意修改主机名 到这里完整的一次监控就完成我们可以根据上诉的步骤添加容器和docker的监控。使用Docker Exporter监控容器用docker进行安装docker run --name docker_exporter --detach --restart always --volume /var/run/docker.sock:/var/run/docker.sock --publish 9417:9417 prometheusnet/docker_exporter在Prometheus进行配置添加下面配置项vim /var/prometheus/prometheus.yml- job_name: containerstatic_configs:- targets: [192.168.88.138:9417]在grafana根据上面node-exporter的步骤进行导入对应的模板 https://grafana.com/grafana/dashboards/11467使用docker metrics 监控docker开启metricsvim /etc/docker/daemon.json{metrics-addr : 192.168.88.146:9323,experimental : true }重启dockersystemctl daemon-reload service docker restart配置Prometheus- job_name: dockerstatic_configs:- targets: [192.168.88.138:9323, 192.168.88.146:9323, 192.168.88.146:9323]导入模板https://grafana.com/grafana/dashboards/1229SkyWalking实现跟踪架构简析核心组件Skywalking OAP ServerSkywalking收集器接受写入请求与UI数据查询。Skywalking UI有调用链路记录、网络拓扑图、性能指标展示等。Skywalking客户端代理提供了多种语言的SDKJava, .NET Core, NodeJS, PHP,  Python等在应用程序进行网络请求的时候进行埋点拦截整理成需要的指标发送到Skywalking OAP Server,安装SkyWalking的收集器docker run --name skywalking-oap-server -p 12800:12800 -p 11800:11800 -p 1234:1234 --restart always -d -e SW_STORAGEelasticsearch7 -e SW_STORAGE_ES_CLUSTER_NODES192.168.184.129:9200 apache/skywalking-oap-server:8.4.0-es7启动成功后去ES查看多了很多的Index安装SkyWalking UIdocker run --name skywalking-ui -p 8888:8080 --restart always -d -e SW_OAP_ADDRESS192.168.184.129:12800 apache/skywalking-ui:8.4.0使用时注意调整右下角的时区 我们到Github下载源码 https://github.com/SkyAPM/SkyAPM-dotnet根据how-to-build文档进行编译- Prepare git and .NET Core SDK. - git clone https://github.com/SkyAPM/SkyAPM-dotnet.git - cd SkyAPM-dotnet/ - Switch to the tag by using git checkout [tagname] (Optional, switch if want to build a release from source codes) - git submodule init - git submodule update - Run dotnet restore - Run dotnet build src/SkyApm.Transport.Grpc.Protocol - Run dotnet build skyapm-dotnet.sln启动SkyApm.Sample.Frontend与SkyApm.Sample.Backend两个项目浏览器访问http://localhost:5001/api/values/postin 就可以见到下面的调用链了。我在19年的时候使用0.9版本http.request_body和http.response_body都是没记录需要自己扩展而现在最新版已经有记录省了不少的事。EFKElasticSearchFilebeatKibana实现日志安装Nginx主要用来测试的添加源rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm安装yum install -y nginx修改配置vim /etc/nginx/nginx.conf把圈起来的配置改动一下log_format json {timestamp:$time_iso8601,host: $server_addr,clientip: $remote_addr,request_body: $request_body,responsetime: $request_time,upstreamtime: $upstream_response_time,upstreamhost: $upstream_addr,http_host: $host,url: $uri,referer: $http_referer,agent: $http_user_agent,status: $status};access_log /var/log/nginx/access.log json;开机启动systemctl start nginx.service systemctl enable nginx.service用浏览器访问刷新几次执行cat /var/log/nginx/access.log 就可以看到json格式的日志了安装Filebeat导入安装源sudo rpm --import https://packages.elastic.co/GPG-KEY-elasticsearchvim /etc/yum.repos.d/elastic.repo保存下面文案[elastic-7.x] nameElastic repository for 7.x packages baseurlhttps://artifacts.elastic.co/packages/7.x/yum gpgcheck1 gpgkeyhttps://artifacts.elastic.co/GPG-KEY-elasticsearch enabled1 autorefresh1 typerpm-md执行安装指令yum install -y filebeat添加配置vim /etc/filebeat/filebeat.ymlfilebeat.inputs:  - type: log    enabled: true    paths:      - /var/log/nginx/access.log    json.key_under_root: true    json.overwrite_keys: true    json.message_key: log    tags: [nginx-access]  - type: log    enabled: true    paths:      - /var/log/nginx/error.log    json.key_under_root: true    json.overwrite_keys: true    json.message_key: log    tags: [nginx-error]filebeat.config.modules:  path: ${path.config}/modules.d/*.yml  reload.enabled: falsesetup.ilm.enabled: falsesetup.template:  name: nginx  pattern: nginx-*setup.template.overwrite: truesetup.template.enabled: falseoutput.elasticsearch:  hosts: [192.168.184.129:9200]  indices:    - index: nginx-access-%{yyyy.MM.dd}      when.contains:        tags: nginx-access    - index: nginx-error-%{yyyy.MM.dd}      when.contains:        tags: nginx-error启动systemctl start filebeat systemctl enable filebeat 安装kibanadocker run --name kibana -d -p 5601:5601 kibana:7.7.0mkdir /var/kibana docker cp kibana:/usr/share/kibana/config /var/kibana/config删除之前的容器再安装一次docker run --name kibana -d -v /var/kibana/config:/usr/share/kibana/config -p 5601:5601 kibana:7.7.0修改配置后重启容器vim /var/kibana/config/kibana.yml 打开浏览器访问创建索引填写nginx-access-*最后的展示UI.Net的日志同样可以使用Json保存然后通过Filebeat进行采集。
http://wiki.neutronadmin.com/news/255322/

相关文章:

  • 什么网站教做美食上海优刻得官网
  • 广州省建设厅官方网站西安广告设计与制作公司
  • 重庆做商城网站jsp网站开发难吗
  • 建设网站是哪个部门负责计算机专业毕业设计怎么做
  • 朋友做的网站图片不显示网站模版制作
  • 株洲第三方网站建设哪家好gif放网站有锯齿
  • html5网站模板 站长网网站建设维护与推广
  • 网站网站制作网站的网站建设要用到编程吗
  • 简洁网站模板素材个人网站开发盈利模式
  • 东莞哪里有做企业网站的网站开发维护面试
  • 河南公司网站可以做天津备案吗网站建设公司挣钱吗
  • 1688外贸网站调用wordpress搜索代码
  • 998元网站建设优化郑州网站建设哪家好怎么样
  • 中学网站管理系统下载如何制作境外网站
  • 我是这样做网站的米课做招聘网站的客户想退钱
  • 示范校建设平台网站wordpress数据库导出网址链接
  • wordpress网站测速天津网站建设wangzhii
  • seo优化网站模板电子商务网站建设工资
  • 建设电商网站多少钱网站建设设计书任务书
  • 精通网站建设 100免费软件下载网站app
  • 淄博网站建设找卓迅平台官网入口
  • 一个主机放几个网站网站备案查询不到说明啥
  • 北京建设执业网站广州宣传片制作
  • 莲湖免费做网站网站怎么集成支付宝
  • 深圳建网站seo怎么做电影流量网站
  • 免费网站应用软件网站开发后端技术
  • 织梦网站建设网页wordpress mu插件
  • 手机网站方案.docwordpress启用摘要失效
  • asp.net做网站有何意义楚雄自助建站系统
  • 做视频网站 买带宽重庆企业建站系统模板