运维知识体系

运维知识体系

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

缓存知识体系

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

DevOps实践

云计算与自动化运维
Web架构

Web架构

高性能Web架构与运维
51CTO-培训视频

51CTO-培训视频

空杯心态,技术沉淀,技术成就梦想!
腾讯课堂-培训视频

腾讯课堂-培训视频

新加入腾讯课堂,欢迎来赞!
GitHub-运维社区

GitHub-运维社区

运维社区的GitHub,欢迎Star!
SaltStack官方文档

SaltStack官方文档

用于国内访问,每小时更新一次。

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

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

请查看附件,下载PPT

自动化运维发展历程





数据分析平台





智能化之-自动化扩容




  查看全部
请查看附件,下载PPT

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


数据分析平台
图片2.png


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

 

在Windows上使用rsync同步文件出现invalid argument

默认分类miaocbin 回复了问题 • 3 人关注 • 4 个回复 • 326 次浏览 • 2016-09-23 08:22 • 来自相关话题

GOPS2016全球运维大会攻略(门票+时间+地点)

回复

运维杂谈匿名用户 发起了问题 • 1 人关注 • 0 个回复 • 302 次浏览 • 2016-08-31 10:59 • 来自相关话题

Kafka快速入门

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

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






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/ ... 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关闭这个经常,现在你可以尝试不停的在发送消息的终端输入内容,你就会在消费消息的终端输出内容。 查看全部
        安装、配置、启动、测试。这就是学习所有东西快速入门的四大步骤。首先在开始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/ ... 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关闭这个经常,现在你可以尝试不停的在发送消息的终端输入内容,你就会在消费消息的终端输出内容。

如何不耍流氓的做运维之-SHELL脚本小技巧

脚本编程赵班长 发表了文章 • 1 个评论 • 638 次浏览 • 2016-08-26 21:24 • 来自相关话题

直接上脚本吧,详情请关注微信公众号吧,每天一篇小干货!




#!/bin/bash
#######################################################
# $Name: shell_template.sh
# $Version: v1.0
# $Function: Backup MySQL Databases Template Script
# $Author: Jason Zhao
# $organization: https://www.unixhot.com/
# $Create Date: 2016-08-27
# $Description: You know what i mean,hehe
#######################################################

# Shell Env
SHELL_NAME="shell_template.sh"
SHELL_DIR="/opt/shell"
SHELL_LOG="${SHELL_DIR}/${SHELL_NAME}.log"
LOCK_FILE="/tmp/${SHELL_NAME}.lock"

#Write Log
shell_log(){
LOG_INFO=$1
echo "$(date "+%Y-%m-%d") $(date "+%H-%M-%S") : ${SHELL_NAME} : ${LOG_INFO}" >> ${SHELL_LOG}
}

# Shell Usage
shell_usage(){
echo $"Usage: $0 {backup}"
}

shell_lock(){
touch ${LOCK_FILE}
}

shell_unlock(){
rm -f ${LOCK_FILE}
}

# Backup MySQL All Database with mysqldump or innobackupex
mysql_backup(){
if [ -f "$LOCK_FILE" ];then
shell_log "${SHELL_NAME} is running"
echo "${SHELL_NAME}" is running && exit
fi
shell_log "mysql backup start"
shell_lock
sleep 10
shell_log "mysql backup stop"
shell_unlock
}

# Main Function
main(){
case $1 in
backup)
mysql_backup
;;
*)
shell_usage;
esac
}

#Exec
main $1 查看全部
直接上脚本吧,详情请关注微信公众号吧,每天一篇小干货!

1.png
#!/bin/bash
#######################################################
# $Name: shell_template.sh
# $Version: v1.0
# $Function: Backup MySQL Databases Template Script
# $Author: Jason Zhao
# $organization: https://www.unixhot.com/
# $Create Date: 2016-08-27
# $Description: You know what i mean,hehe
#######################################################

# Shell Env
SHELL_NAME="shell_template.sh"
SHELL_DIR="/opt/shell"
SHELL_LOG="${SHELL_DIR}/${SHELL_NAME}.log"
LOCK_FILE="/tmp/${SHELL_NAME}.lock"

#Write Log
shell_log(){
LOG_INFO=$1
echo "$(date "+%Y-%m-%d") $(date "+%H-%M-%S") : ${SHELL_NAME} : ${LOG_INFO}" >> ${SHELL_LOG}
}

# Shell Usage
shell_usage(){
echo $"Usage: $0 {backup}"
}

shell_lock(){
touch ${LOCK_FILE}
}

shell_unlock(){
rm -f ${LOCK_FILE}
}

# Backup MySQL All Database with mysqldump or innobackupex
mysql_backup(){
if [ -f "$LOCK_FILE" ];then
shell_log "${SHELL_NAME} is running"
echo "${SHELL_NAME}" is running && exit
fi
shell_log "mysql backup start"
shell_lock
sleep 10
shell_log "mysql backup stop"
shell_unlock
}

# Main Function
main(){
case $1 in
backup)
mysql_backup
;;
*)
shell_usage;
esac
}

#Exec
main $1

菜鸟运维怎么从月薪2000做到年薪50w(含运维成长必备技能)

运维杂谈赵班长 回复了问题 • 19 人关注 • 10 个回复 • 3799 次浏览 • 2016-08-25 20:54 • 来自相关话题

logstash file to file的问题?

Web集群赵班长 回复了问题 • 3 人关注 • 1 个回复 • 335 次浏览 • 2016-08-24 17:49 • 来自相关话题

ELKStack快速安装

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

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






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/ela ... entos
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-elasticsearch2.添加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=13.安装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-elasticsearch2.添加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=13.安装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/ela ... entos --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 查看全部
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/ela ... entos
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/ela ... entos --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

Java进程CPU使用率高排查

Web服务器赵班长 发表了文章 • 0 个评论 • 625 次浏览 • 2016-08-14 07:43 • 来自相关话题

生产java应用,CPU使用率一直很高,经常达到100%,通过以下步骤完美解决,分享一下。

1.jps 获取Java进程的PID。

2.jstack pid >> java.txt 导出CPU占用高进程的线程栈。

3.top -H -p PID 查看对应进程的哪个线程占用CPU过高。

4.echo “obase=16; PID” | bc 将线程的PID转换为16进制。

5.在第二步导出的Java.txt中查找转换成为16进制的线程PID。找到对应的线程栈。

6.分析负载高的线程栈都是什么业务操作。优化程序并处理问题。 查看全部
生产java应用,CPU使用率一直很高,经常达到100%,通过以下步骤完美解决,分享一下。

1.jps 获取Java进程的PID。

2.jstack pid >> java.txt 导出CPU占用高进程的线程栈。

3.top -H -p PID 查看对应进程的哪个线程占用CPU过高。

4.echo “obase=16; PID” | bc 将线程的PID转换为16进制。

5.在第二步导出的Java.txt中查找转换成为16进制的线程PID。找到对应的线程栈。

6.分析负载高的线程栈都是什么业务操作。优化程序并处理问题。

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

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

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

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






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






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






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


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

1.png


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

2.png


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

3.png