运维知识体系

运维知识体系

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

缓存知识体系

运维知识体系之缓存,分层多级缓存体系。
DevOps学院

DevOps学院

全新体系化课程,开启运维新征程!
基础设施实践指南

基础设施实践指南

KVM、OpenStack、Docker、Kubernetes

GOPS2016上海站-赵班长演讲PPT分享-中小企业自动化运维实践

赵班长 发表了文章 • 1 个评论 • 2986 次浏览 • 2016-09-26 11:10 • 来自相关话题

请查看附件,下载PPT 自动化运维发展历程 数据分析平台 ...查看全部
请查看附件,下载PPT

自动化运维发展历程
图片1.png


数据分析平台
图片2.png


智能化之-自动化扩容
图片3.png

 

Kafka快速入门

赵班长 发表了文章 • 0 个评论 • 3780 次浏览 • 2016-08-27 12:50 • 来自相关话题

        安装、配置、启动、测试。这就是学习所有东西快速入门的四大步骤。首先在开始Kafka快速入门之前你需要学习并部署好Zookeeper。或者在运维社区搜索"zookeeper"。 ...查看全部
        安装、配置、启动、测试。这就是学习所有东西快速入门的四大步骤。首先在开始Kafka快速入门之前你需要学习并部署好Zookeeper。或者在运维社区搜索"zookeeper"。

1.png


Kafka三大名词
  • 话题(Topic):是特定类型的消息流。消息是字节的有效负载(Payload),话题是消息的分类名或种子(Feed)名。
  • 生产者(Producer):是能够发布消息到话题的任何对象。已发布的消息保存在一组服务器中,它们被称为代理(Broker)或Kafka集群。
  • 消费者:可以订阅一个或多个话题,并从Broker拉数据,从而消费这些已发布的消息


Kafka安装
[root@ linux-node1 ~]# cd /usr/local/src
[root@ linux-node1 src]# wget http://www-eu.apache.org/dist/kafka/0.9.0.1/kafka_2.11-0.9.0.1.tgz
[root@hadoop-node1 src]# tar zxf kafka_2.11-0.9.0.1.tgz
[root@hadoop-node1 src]# mv kafka_2.11-0.9.0.1 /usr/local/
[root@hadoop-node1 src]# ln -s /usr/local/kafka_2.11-0.9.0.1/ /usr/local/kafka

Kafka配置:设置Zookeeper地址
[root@hadoop-node1 ~]# vim /usr/local/kafka/config/server.properties
zookeeper.connect=192.168.56.11:2181,192.168.56.12:2181,192.168.56.13:2181

Kafka启动
[root@hadoop-node1 kafka]# ./bin/kafka-server-start.sh ./config/server.properties

Kafka测试
创建一个topic名称为test,设置一个分区和一个备份
[root@hadoop-node1 ~]# cd /usr/local/kafka/bin/
[root@hadoop-node1 bin]# ./kafka-topics.sh --create --zookeeper 192.168.56.11:2181 --replication-factor 1 --partitions 1 --topic test
Created topic "test".



查看已经存在的topic
[root@hadoop-node1 bin]# ./kafka-topics.sh --list --zookeeper 192.168.56.11:2181
test



发送消息
Kafka提供了一个命令行的工具,可以从输入文件或者命令行中读取消息并发送给Kafka集群。每一行是一条消息。
[root@hadoop-node1 bin]# ./kafka-console-producer.sh --broker-list 192.168.56.11:9092 --topic test
This is a message
This is another message
消费消息
Kafka也提供了一个消费消息的命令行工具。
[root@hadoop-node1 bin]# ./kafka-console-consumer.sh --zookeeper 192.168.99.97:2181 --topic test --from-beginning
This is a message
This is another message
        好的。只要你不Ctrl+C关闭这个经常,现在你可以尝试不停的在发送消息的终端输入内容,你就会在消费消息的终端输出内容。

ELKStack快速安装

赵班长 发表了文章 • 2 个评论 • 6474 次浏览 • 2016-08-19 11:06 • 来自相关话题

ELKStack简介         对于日志来说,最常见的需求就是收集、存储、查询、展示,开源社区正好有相对应的开源项目:logstash(收集)、elasticsearch(存储+搜索)、kibana(展示),我们将这三个组合起来的技术称之为E ...查看全部
ELKStack简介
        对于日志来说,最常见的需求就是收集、存储、查询、展示,开源社区正好有相对应的开源项目:logstash(收集)、elasticsearch(存储+搜索)、kibana(展示),我们将这三个组合起来的技术称之为ELKStack,所以说ELKStack指的是Elasticsearch、Logstash、Kibana技术栈的结合,一个通用的架构如下图所示:

1.jpg


Elasticsearch部署
  Elasticsearch首先需要Java环境,所以需要提前安装好JDK,可以直接使用yum安装。也可以从Oracle官网下载JDK进行安装。开始之前要确保JDK正常安装并且环境变量也配置正确:

安装JDK
[root@linux-node1 ~]# yum install -y java
[root@linux-node1 ~]# java -version
openjdk version "1.8.0_65"
OpenJDK Runtime Environment (build 1.8.0_65-b17)
OpenJDK 64-Bit Server VM (build 25.65-b01, mixed mode)
YUM安装ElasticSearch

1.下载并安装GPG key
[root@hadoop-node1 ~]# rpm --import [url]https://packages.elastic.co/GPG-KEY-elasticsearch[/url] 

2.添加yum仓库
[root@hadoop-node1 ~]# vim /etc/yum.repos.d/elasticsearch.repo
[elasticsearch-2.x]
name=Elasticsearch repository for 2.x packages
baseurl=http://packages.elastic.co/elasticsearch/2.x/centos
gpgcheck=1
gpgkey=http://packages.elastic.co/GPG-KEY-elasticsearch
enabled=1

3.安装elasticsearch
[root@hadoop-node1 ~]# yum install -y elasticsearch

LogStash部署与配置
    和Elasticsearch一样,在开始部署LogStash之前也需要你的环境中正确的安装的JDK。可以下载安装Oracle的JDK或者使用 yum安装openjdk。

安装JDK
[root@linux-node1 ~]# yum install -y java
[root@linux-node1 ~]# java -version
openjdk version "1.8.0_65"
OpenJDK Runtime Environment (build 1.8.0_65-b17)
OpenJDK 64-Bit Server VM (build 25.65-b01, mixed mode)

YUM部署LogStash

1.下载并安装GPG key
[root@linux-node2 ~]# rpm --import https://packages.elastic.co/GPG-KEY-elasticsearch
2.添加yum仓库
[root@linux-node2 ~]# vim /etc/yum.repos.d/logstash.repo
[logstash-2.3]
name=Logstash repository for 2.3.x packages
baseurl=https://packages.elastic.co/logstash/2.3/centos
gpgcheck=1
gpgkey=https://packages.elastic.co/GPG-KEY-elasticsearch
enabled=1
3.安装logstash
[root@linux-node2 ~]# yum install -y logstash

Kibana简介
        Kibana 是为 Elasticsearch 设计的开源分析和可视化平台。你可以使用 Kibana 来搜索,查看存储在 Elasticsearch 索引中的数据并与之交互。你可以很容易实现高级的数据分析和可视化,以图表的形式展现出来。

Yum安装Kibana
1.下载并安装GPG key
[root@linux-node2 ~]# rpm --import https://packages.elastic.co/GPG-KEY-elasticsearch
2.添加yum仓库
[root@test ~]# vim /etc/yum.repos.d/kibana.repo 
[kibana-4.5]
name=Kibana repository for 4.5.x packages
baseurl=http://packages.elastic.co/kibana/4.5/centos
gpgcheck=1
gpgkey=http://packages.elastic.co/GPG-KEY-elasticsearch
enabled=1
3.安装kibana
[root@test ~]# yum install -y kibana

使用Cobbler创建ELKStack仓库
当然生产环境,肯定不能使用外网的YUM仓库,可以使用Cobbler来创建自己的yum仓库。
[root@log-node1 ~]# cobbler repo add --name=logstash-2.3 --mirror=http://packages.elastic.co/logstash/2.3/centos --arch=x86_64 --breed=yum
[root@log-node1 ~]# cobbler repo add --name=elasticsearch2 --mirror=http://packages.elastic.co/elasticsearch/2.x/centos --arch=x86_64 --breed=yum
[root@log-node1 ~]# cobbler repo add --name=kibana4.5 --mirror=http://packages.elastic.co/kibana/4.5/centos --arch=x86_64 --breed=yum
[root@log-node1 ~]# cobbler reposync

持续集成、持续交付、持续部署简介

赵班长 发表了文章 • 1 个评论 • 4290 次浏览 • 2016-08-13 10:55 • 来自相关话题

我相信你一定听过持续集成、持续交付、持续部署这些名词。  持续集成Continuous Integration持续交付Continuous Delivery持续部署Continuous Deployment 持续集成 ...查看全部
我相信你一定听过持续集成、持续交付、持续部署这些名词。
  •  持续集成Continuous Integration
  • 持续交付Continuous Delivery
  • 持续部署Continuous Deployment


持续集成
持续集成是指在软件开发过程中,频繁地将代码集成到主干上,然后进行自动化测试。

1.png


持续交付
    持续交付是指在持续集成的基础上,将集成后的代码部署到更贴近真实运行环境的「类生产环境」(production-like environments)中。比如,我们完成单元测试后,可以把代码部署到连接数据库的 Staging 环境中更多的测试。如果代码没有问题,可以继续手动部署到生产环境中。

2.png


持续部署
   在持续交付的基础上,把部署到生产环境的过程自动化。如果你对比上图持续部署就可以发现持续部署和持续交付的区别就是最终部署到生产环境是自动化的。

3.png


 

持续代码质量管理-Sonar部署

赵班长 发表了文章 • 2 个评论 • 6152 次浏览 • 2016-08-08 10:46 • 来自相关话题

      Sonar 是一个用于代码质量管理的开放平台。通过插件机制,Sonar 可以集成不同的测试工具,代码分析工具,以及持续集成工具。与持续集成工具(例如 Hudson/Jenkins 等)不同,Sonar 并不是简单地把不同的代码检查工具结果(例如 F ...查看全部
      Sonar 是一个用于代码质量管理的开放平台。通过插件机制,Sonar 可以集成不同的测试工具,代码分析工具,以及持续集成工具。与持续集成工具(例如 Hudson/Jenkins 等)不同,Sonar 并不是简单地把不同的代码检查工具结果(例如 FindBugs,PMD 等)直接显示在 Web 页面上,而是通过不同的插件对这些结果进行再加工处理,通过量化的方式度量代码质量的变化,从而可以方便地对不同规模和种类的工程进行代码质量管理。
        在对其他工具的支持方面,Sonar 不仅提供了对 IDE 的支持,可以在 Eclipse 和 IntelliJ IDEA 这些工具里联机查看结果;同时 Sonar 还对大量的持续集成工具提供了接口支持,可以很方便地在持续集成中使用 Sonar。
此外,Sonar 的插件还可以对 Java 以外的其他编程语言提供支持,对国际化以及报告文档化也有良好的支持。

Sonar部署
    Sonar的相关下载和文档可以在下面的链接中找到:http://www.sonarqube.org/downloads/。需要注意最新版的Sonar需要至少JDK 1.8及以上版本。
   
[root@linux-node2 ~]# yum install -y java-1.8.0
[root@linux-node2 ~]# cd /usr/local/src
# wget https://sonarsource.bintray.com/Distribution/sonarqube/sonarqube-5.6.zip
[root@linux-node2 src]# unzip sonarqube-5.6.zip
[root@linux-node2 src]# mv sonarqube-5.6 /usr/local/
[root@linux-node2 src]# ln -s /usr/local/sonarqube-5.6/ /usr/local/sonarqube
准备Sonar数据库
mysql> CREATE DATABASE sonar CHARACTER SET utf8 COLLATE utf8_general_ci;
mysql> GRANT ALL ON sonar.* TO 'sonar'@'localhost' IDENTIFIED BY 'sonar@pw';
mysql> GRANT ALL ON sonar.* TO 'sonar'@'%' IDENTIFIED BY 'sonar@pw';
mysql> FLUSH PRIVILEGES;
配置Sonar
[root@linx-node2 ~]# cd /usr/local/sonarqube/conf/
[root@linx-node2 conf]# ls
sonar.properties wrapper.conf
编写配置文件,修改数据库配置
[root@linx-node2 conf]# vim sonar.properties
sonar.jdbc.username=sonar
sonar.jdbc.password=sonae@pw
sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance
配置Java访问数据库驱动(可选)
    默认情况Sonar有自带的嵌入的数据库,那么你如果使用类是Oracle数据库,必须手动复制驱动类到${SONAR_HOME}/extensions/jdbc-driver/oracle/目录下,其它支持的数据库默认提供了驱动。其它数据库的配置可以参考官方文档:
http://docs.sonarqube.org/display/HOME/SonarQube+Platform

启动Sonar
    你可以在Sonar的配置文件来配置Sonar Web监听的IP地址和端口,默认是9000端口。
[root@linx-node2 conf]# vim sonar.properties
sonar.web.host=0.0.0.0
sonar.web.port=9000
[root@linx-node2 ~]# /usr/local/sonarqube/bin/linux-x86-64/sonar.sh start
访问Sonar
    http://IP:9000

dashboard.png


 

老师问个学习上面的问题

topstargogo 回复了问题 • 2 人关注 • 2 个回复 • 1566 次浏览 • 2016-08-07 08:10 • 来自相关话题

持续集成之Jenkins安装部署

赵班长 发表了文章 • 1 个评论 • 8650 次浏览 • 2016-08-05 11:23 • 来自相关话题

安装JDK     Jenkins是Java编写的,所以需要先安装JDK,这里采用yum安装,如果对版本有需求,可以直接在Oracle官网下载JDK。[root@linux-node1 ~]# yum install -y java-1.8.0安装 ...查看全部
安装JDK
    Jenkins是Java编写的,所以需要先安装JDK,这里采用yum安装,如果对版本有需求,可以直接在Oracle官网下载JDK。
[root@linux-node1 ~]# yum install -y java-1.8.0
安装Jekins
[root@linux-node1 ~]# cd /etc/yum.repos.d/
[root@linux-node1 yum.repos.d]# wget http://pkg.jenkins.io/redhat/jenkins.repo
[root@linux-node1 ~]# rpm --import http://pkg.jenkins.io/redhat/jenkins.io.key
[root@linux-node1 ~]# yum install -y jenkins
[root@linux-node1 ~]# systemctl start jenkins
访问Jenkins


在浏览器输入http://192.168.56.11:8080来访问jenkins。


1.png


为了安全考虑,首先需要解锁Jenkins,请在/var/lib/jenkins/secrets/initialAdminPassword中查看文件。
[root@linux-node1 ~]# cat /var/lib/jenkins/secrets/initialAdminPassword
98dc4fdeb47641bf93bfbd884d0d9b7f
选择需要安装的插件:
    选择默认即可,会安装通用的社区插件,剩下的可以在使用的时候再进行安装。

2.png


    由于网络原因,有一些插件会安装失败。
3.png


设置Admin用户和密码
5.png


登陆Jenkins
6.png

 

老师,生产环境的一个日志文件无法被echo >清空。

赵班长 回复了问题 • 2 人关注 • 1 个回复 • 2181 次浏览 • 2016-08-01 11:40 • 来自相关话题