“运维规划2018-2024”的版本间的差异

来自linux中国网wiki
跳到导航 跳到搜索
→‎2021
第176行: 第176行:
 
=ruby=
 
=ruby=
 
[[Learn ruby]]
 
[[Learn ruby]]
 
=tomcat=
 
[http://blog.51cto.com/jowin/1739400 Linux运维 第三阶段 (十九) tomcat]
 
 
[https://blog.csdn.net/lifetragedy/article/details/7708724 通向架构师的道路(第四天)之Tomcat性能调优]
 
 
[https://www.jianshu.com/p/d45e12241af4 Tomcat性能调优-JVM监控与调优]
 
 
[https://blog.csdn.net/xyang81/article/details/51530979 Tomcat配置与优化(内存、并发、管理)]
 
 
 
[https://www.centos.bz/2017/08/tomcat-jvm-performance-tuning/ Tomcat和JVM的性能调优总结]
 
 
[https://www.oschina.net/translate/tomcat-performance-tuning Tomcat 生产服务器性能优化 【已翻译100%】]
 
 
[http://yunzhu.iteye.com/blog/953387 监控Tomcat解决方案(监控应用服务器系列文章)]
 
 
==tomcat优化==
 
 
[https://blog.csdn.net/coolwzjcool/article/details/2544448 TOMCAT内存大小调整]
 
 
[http://elf8848.iteye.com/blog/378805 Tomcat内存设置详解]
 
 
[https://blog.csdn.net/xyang81/article/details/51530979 Tomcat配置与优化(内存、并发、管理)]
 
 
[https://blog.csdn.net/lifetragedy/article/details/7708724 通向架构师的道路(第四天)之Tomcat性能调优-让小猫飞奔]
 
 
==tomcat 启动脚本==
 
<pre>
 
#!/bin/bash
 
#cat /etc/init.d/pp-col  在centos7上试过 可运行
 
# chkconfig: 345 99 28
 
# description: Starts/Stops Apache Tomcat
 
 
#by evan
 
#修改几个目录
 
##export JAVA_HOME=/usr/java/jdk1.8.0_121/
 
#sed -i "s/JAVA_HOME=\/usr\/java\/default\//JAVA_HOME=\/usr\/java\/jdk1.8.0_121\//g" pp-collector.init
 
#sed -i "s/CATALINA_HOME=\/data\/service\/pinpoint-collector\//CATALINA_HOME=\/data\/pp-col\//g" pp-collector.init
 
#sed -i "s/CATALINA_BASE=\/data\/service\/pinpoint-collector\//CATALINA_BASE=\/data\/pp-col\//g" pp-collector.init
 
#by evan
 
 
# Tomcat  start/stop/status script
 
# Forked from: https://gist.github.com/valotas/1000094
 
# @author: Miglen Evlogiev <[email protected]>
 
#
 
# Release updates:
 
# Updated method for gathering pid of the current proccess
 
# Added usage of CATALINA_BASE
 
# Added coloring and additional status
 
# Added check for existence of the tomcat user
 
#
 
 
#Location of JAVA_HOME (bin files)
 
export JAVA_HOME=/usr/java/jdk1.8.0_121/
 
 
#Add Java binary files to PATH
 
export PATH=$JAVA_HOME/bin:$PATH
 
 
#CATALINA_HOME is the location of the bin files of Tomcat 
 
export CATALINA_HOME=/data/pp-col/
 
 
#CATALINA_BASE is the location of the configuration files of this instance of Tomcat
 
export CATALINA_BASE=/data/pp-col/
 
 
#TOMCAT_USER is the default user of tomcat
 
export TOMCAT_USER=root
 
 
#TOMCAT_USAGE is the message if this script is called without any options
 
TOMCAT_USAGE="Usage: $0 {\e[00;32mstart\e[00m|\e[00;31mstop\e[00m|\e[00;32mstatus\e[00m|\e[00;31mrestart\e[00m}"
 
 
#SHUTDOWN_WAIT is wait time in seconds for java proccess to stop
 
SHUTDOWN_WAIT=3
 
 
tomcat_pid() {
 
        echo `ps -fe | grep $CATALINA_BASE | grep -v grep | tr -s " "|cut -d" " -f2`
 
}
 
 
start() {
 
  pid=$(tomcat_pid)
 
  if [ -n "$pid" ]
 
  then
 
    echo -e "\e[00;31mTomcat is already running (pid: $pid)\e[00m"
 
  else
 
    # Start tomcat
 
    echo -e "\e[00;32mStarting tomcat\e[00m"
 
    #ulimit -n 100000
 
    #umask 007
 
    #/bin/su -p -s /bin/sh tomcat
 
        if [ `user_exists $TOMCAT_USER` = "1" ]
 
        then
 
                su $TOMCAT_USER -c $CATALINA_HOME/bin/startup.sh
 
        else
 
                sh $CATALINA_HOME/bin/startup.sh
 
        fi
 
        status
 
  fi
 
  return 0
 
}
 
 
status(){
 
          pid=$(tomcat_pid)
 
          if [ -n "$pid" ]; then echo -e "\e[00;32mTomcat is running with pid: $pid\e[00m"
 
          else echo -e "\e[00;31mTomcat is not running\e[00m"
 
          fi
 
}
 
 
stop() {
 
  pid=$(tomcat_pid)
 
  if [ -n "$pid" ]
 
  then
 
    echo -e "\e[00;31mStoping Tomcat\e[00m"
 
    #/bin/su -p -s /bin/sh tomcat
 
        sh $CATALINA_HOME/bin/shutdown.sh
 
 
    let kwait=$SHUTDOWN_WAIT
 
    count=0;
 
    until [ `ps -p $pid | grep -c $pid` = '0' ] || [ $count -gt $kwait ]
 
    do
 
      echo -n -e "\n\e[00;31mwaiting for processes to exit\e[00m";
 
      sleep 1
 
      let count=$count+1;
 
    done
 
 
    if [ $count -gt $kwait ]; then
 
      echo -n -e "\n\e[00;31mkilling processes which didn't stop after $SHUTDOWN_WAIT seconds\e[00m"
 
      kill -9 $pid
 
    fi
 
  else
 
    echo -e "\e[00;31mTomcat is not running\e[00m"
 
  fi
 
 
  return 0
 
}
 
 
user_exists(){
 
        if id -u $1 >/dev/null 2>&1; then
 
        echo "1"
 
        else
 
                echo "0"
 
        fi
 
}
 
 
case $1 in
 
 
        start)
 
          start
 
        ;;
 
     
 
        stop) 
 
          stop
 
        ;;
 
     
 
        restart)
 
          stop
 
          start
 
        ;;
 
     
 
        status)
 
                status
 
             
 
        ;;
 
     
 
        *)
 
                echo -e $TOMCAT_USAGE
 
        ;;
 
esac   
 
exit 0
 
 
</pre>
 
 
<pre>[root@node2 tomcat]# vim /etc/init.d/tomcat(tomcat启动脚本)
 
 
------------script start--------------
 
 
#!/bin/sh
 
 
# Tomcat init script for Linux.
 
 
#
 
 
# chkconfig: 2345 96 14
 
 
# description: The Apache Tomcatservlet/JSP container.
 
 
export JAVA_HOME=/usr/java/latest
 
 
export CATALINA_HOME=/usr/local/tomcat
 
 
exec $CATALINA_HOME/bin/catalina.sh $*
 
 
--------------script end---------------
 
 
[root@node2 tomcat]# chmod +x !$
 
 
chmod +x /etc/init.d/tomcat
 
 
[root@node2 tomcat]# chkconfig --add tomcat
 
 
[root@node2 tomcat]# chkconfig tomcat on
 
 
[root@node2 tomcat]# chkconfig --list tomcat
 
 
tomcat            0:关闭      1:关闭      2:启用      3:启用      4:启用      5:启用      6:关闭
 
 
[root@node2 tomcat]# service tomcat stop
 
 
……
 
 
[root@node2 tomcat]# service tomcat start</pre>
 
  
 
=safe=
 
=safe=

2022年8月5日 (五) 01:46的版本

站内相关

职业规划

Learn list学习列表

Python笔记2019-2021

运维 (英文:Ops),又称运维工程师,是对技术类运营维护人员的统称。运维人员的职责是根据业务需要规划信息、网络、服务,通过网络监控、事件预警、业务调度、排障升级等手段,使服务处于长期稳定可用状态。

2022

Booklist 要看的书

面试

运维开发Devops

运维怎么才能面试上运维开发的工作

请见 Devops

terraform

功能:terraform 用于各类基础设施资源初始化,支持多种云平台,支持第三方服务对接

Terraform aliyun

简历

Linux运维工程师简历项目经验

大龄运维

go ,cmdb, js devops

https://www.v2ex.com/t/598440?__cf_chl_jschl_tk__=4fd0e10bc1ee83eb05176806d9433076e1fa08e8-1597039021-0-Af0TkNavo215SSTNLsdKOV9tqmTbckqd9aV_DrcqROga2l0U_TbpmLo5RYrY1VFEtsDNtYp82uGAiF9rOj-5LQw_8R9ic8SMnnk-lvBz1VxXZnlc4af3Qr6KC5Rqe9v1nX3W3hmXhO6NtxE8dgXbs13Wo5-xE5wgt5At15GuUC8UDd6v0W2w6eGdw9VBxks5jXlk-nZ2sc9xycmrjEwl6l4HZYVEvLnNdBRJpV9Aa6LG8T7qnoAvGeT-eQYqbUN0b7T6fRXFkjxqNbTOgOLm_xuL7sou1BKNe9zd1kNNfFtgcoKekkuwYNFcMP9ve9PTKRddmq1E5ELO8PzFSOZWMB8


什么是运维?运维工程师这个职位有多重要?

k8s

搞个国内的吧 debian 主要就是这下面三个站内资源

Kubernetes 镜像 aliyun


Install and Configure Kubernetes (k8s) on debian10


使用kubeadm离线部署kubernetesv1.9.0 on centos7


2018k8s


kubernetes安装(国内环境)


国内环境安装k8s


国内k8s集群部署的几种方式 部署方式

目前我所了解有以下几种方式:

    使用kubeadmin通过离线镜像的方式,网上教程和镜像包挺多的

    通过厂商集成的方式如:rancher
    这里推荐一篇blog:CentOS7环境安装Kubernetes四部曲https://blog.csdn.net/boling_cavalry/article/details/79613037

    直接使用类似阿里云这样的公有云平台k8s 。只要有钱,一键搞定 : )

    通过yum官方仓库安装,需要启用extras仓库。
    不过里面版本都比较老,目前最新的也只是1.5.2版本,对于想学新的东西,比如k8s角色管理、helm等来说不太方便,因此也不建议使用。

    通过二进制包的形式进行安装,这里推荐一个repo:kubeasz https://github.com/gjmzj/kubeasz
    里面文档也很丰富清晰,对于初学者来说很有帮助。 

原文链接:https://blog.csdn.net/lusyoe/article/details/80217291

服务器费用

自动续费 ?

工单

基于Gin + Vue + Element UI前后端分离的工单系统

cmdb

Cmdb

Base Admin一套简单通用的后台管理系统

搞在xk intra 然后 frp到外面

前聚美优品运维负责人谈CMDB

CMDB和运维自动化

(深度好文)重构CMDB,避免运维之耻

开源CMDB

运维自动化

小团队如何从零搭建一个自动化运维体系

如何做好自动化运维?自动化运维必备技能有哪些

python 自动化

请见 Devops

Spug是面向中小型企业设计的轻量级无Agent的自动化运维平台,整合了主机管理、主机批量执行、主机在线终端、应用发布部署、在线任务计划、配置中心、监控、报警等一系列功能

Spug是面向中小型企业设计的轻量级无Agent的自动化运维平台

利用python实现批量自动化运维脚本案例

早下班时回家记得看书和动手例子

。我平时的工作不仅会用到python和shell,而且还会用到js和golang和c++。使用场景如下:1.shell:日常工具脚本编写,不多说2.python,js:技术栈为vue.js+django的运营系统开发和维护,好处是开发效率高。3.golang,c艹:与业务系统有交互的运营模块开发和维护,以及较在意执行效率的工作,如机器管控平台,agent诸如此类,主要是为了和业务系统的rpc协议兼容,所以用业务系统的框架开发偏运维类的系统

作者:运维不LOW 链接:https://www.zhihu.com/question/399160308/answer/1263092889 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

我之前管理主机资产信息都是用的wiki或者是excel. 每次添加或下线机器 都需要主动的去手动修改.我觉得太麻烦了, 参考过市面上的一些cmdb产品,比如腾讯的蓝鲸等等 ,都觉得有不满意的地方.所以想自己搞一个非常简单的CMDB系统. 只需要实现 能自动获取现有接入salt管理的主机就可以了.salt有现成的pythonAPI, 我需要做的就是用python 写个脚本,来获取想要的主机信息 ,然后存入数据库,再用django+vue实现展示和管理就行了, 这就是python实际应用的一个例子.其实python的用处还有很多的. 还有阿里云oss ,ecs都有现成的pythonAPI,python用熟了以后,有写脚本写起来确实要比shell得劲.


链接:https://www.zhihu.com/question/399160308/answer/1263538144

Python 的练手项目有哪些值得推荐

Yearning SQL 审核平台

Yearning SQL 审核平台

监控

zabbix

Zabbix报警

action_email 还有报警前执行脚本

email 报警 短信报警 wechat 报警

zabbix new server docker 化 服务器监控(包括性能指标与web应用程序)

pinpoint

Nightingale

nightingale-didi

Open-Falcon 是小米运维团队开源的企业级监控解决方案,在国内广泛使用。

Nightingale 采用 Apache-2.0 开源协议,Copyright © 滴滴 2020

python

python常用运维脚本实例


python用于系统运维管理和灰度发布部署

基于python的一个运维自动化的项目(进度更新)【已开源】

django

Gunicorn

ruby

Learn ruby

safe

fail2ban阻止SSH暴力破解

清空/etc/issue,去除系统及内核版本登录前的屏幕显示

safe dns

http://www.freenom.world/zh/index.html?lang=zh

Freenom是世界上第一个也是唯一的免费域名提供商。 我们的使命是把互联网带给世界人民,帮助各国发展自己的数字经济。

通过打破壁垒、整合免费域名与最新网站建设和托管技术,Freenom让企业或个人建立网站和管理内容很容易,没有任何成本。

docker k8s

intra

内网穿透打洞

内网穿透打洞

内网环境

oracle 17

nginx other 11

frp

但是没有开机自启动呢

apps

7.1redis

公司的redis要 HA

redis架构演变与redis-cluster群集读写方案

7.2 nginx

redis lua+ cc Nginx Lua Redis防止CC攻击

7.3 mysql

mysql gpt

7.4 dns

Linux运维实战之DNS基础

7.5 CI jenkins

备份

关键文件备份

passwd etc

更新

包 mysql 文件 这个尽量做成自动化 接下何焱的活

db备份

2020

english

redis

wiki上相关的可以看看先

Redis运维

lua

Lua基础

golang

Zookeeper

https://www.jianshu.com/u/3829416c7065

see also

运维超级好用工具大PK


on

  1. 内网开发环境
  2. jenkins 自动化更新 (dev test)
  3. zabbix 报警
  4. pinpoint
  5. 有序列表项
  6. 有序列表项
  7. 有序列表项