做Linux运维要学哪些东西?什么顺序?主要需要什么能力?
运维需要用到的东西很杂,从硬件设备到软件维护。
硬件设备 比如服务器的安装 网络的部署布局 ,最好能够了解防火墙,路由器,交换机的设置。
linux系统的深入了解。最好能够深入到内核和代码层面
部署在linux服务器上的应用的了解和维护,比如tomcat apache weblogic nagios cacti等。包括开发人员编写的软件,都需要去进行维护和调优建议,最好了解js和java语言。服务器的各种使用情况的监控,如磁盘,cpu,mem,io等。
架构设计的了解,以及自动化运维的脚本编写。
比如搭建集群或负载模式的架构等,实现服务器的多机热备高可用。
脚本编写,以减少人力操作来提高执行效率和准确性,一般需要shell,python,perl一类的语言基础,也包括awk,except等小语种使用。
数据库的维护
熟悉主流的数据库操作,主要是添删改查的操作。
oracle,mysql,芒果db,db2,memcache,redis等
入口安全优化
ssh配置优化
修改之前,需要将/etc/ssh/sshd_config备份一个,比如/etc/ssh/sshd_configold, 主要优化如下参数:
Port 12011
PermitRootLogin no
UseDNS no
#防止ssh客户端超时#
ClientAliveInterval 30
ClientAliveCountMax 99
GSSAuthentication no
主要目的更改ssh远程端口、禁用root远程登录(本地还是可以root登录的)、禁用dns、防止ssh超时、解决ssh慢,当然也可以启用密钥登录,这个根据公司需求。
注意:修改以后需重启ssh生效,另外需要iptables放行最新ssh端口。
iptables优化
原则:用到哪些放行哪些,不用的一律禁止。
举下简单的例子:敏感服务比如mysql这种3306控制,默认禁止远程,确实有必要可以放行自己指定IP连接或者通过***拨号做跳板连接,不可直接放置于公网; 如单位有自己的公网IP或固定IP,那只允许自己的公网IP进行连接ssh或者指定服务端口就更好了。
用户权限以及系统安全优化
非root用户添加以及sudo权限控制
用户配置文件锁定
服务控制
默认无关服务都禁止运行并chkconfig xxx off,只保留有用服务。这种如果是云计算厂商提供的,一般都是优化过。如果是自己安装的虚拟机或者托管的机器,那就需要优化下,默认只保留network、sshd、iptables、crond、以及rsyslog等必要服务,一些无关紧要的服务就可以off掉了,
内核参数优化
进程级文件以及系统级文件句柄数量参数优化
默认ulinit -n看到的是1024,这种如果系统文件开销量非常大,那么就会遇到各种报错比如:
localhost kernel: VFS: file-max limit 65535 reached 或者too many open files 等等,那就是文件句柄打开数量已经超过系统限制,就需要优化了。
这个参数我们进程级优化文件如下:
vim /etc/security/limitsconf
# End of file
soft nofile 65535
hard nofile 65535
soft nproc 65535
hard nproc 65535
好了,退出当前终端以后重新登录可以看到ulimit -n已经改成了65535。另外需要注意,进程级参数优化还需要修改文件:
/etc/security/limitsd/90-nprocconf 这个会影响到参数。查看某一个进程的limits可以通过cat /proc/pid/limits查看。默认这个文件参数推荐设置:
[root@21yunwei 9001]# cat /etc/security/limitsd/90-nprocconf
soft nproc 65535
root soft nproc unlimited
系统级文件句柄优化
修改/etc/sysctlconf添加如下参数:
fsfile-max=65535
内核参数优化(这个是非常重要的)。具体优化的文件为/etc/sysctlconf,后尾追加优化参数:
netipv4neighdefaultgc_stale_time=120
netipv4confallrp_filter=0
netipv4confdefaultrp_filter=0
netipv4confdefaultarp_announce = 2
netipv4confallarp_announce=2
netcorenetdev_max_backlog = 32768
netcoresomaxconn = 32768
netcorewmem_default = 8388608
netcorermem_default = 8388608
netcorermem_max = 16777216
netcorewmem_max = 16777216
netipv4confloarp_announce=2
netipv4tcp_synack_retries = 2
#参数的值决定了内核放弃连接之前发送SYN+ACK包的数量。
netipv4tcp_syn_retries = 1
#表示在内核放弃建立连接之前发送SYN包的数量。
netipv4tcp_max_syn_backlog = 262144
#这个参数表示TCP三次握手建立阶段接受SYN请求列队的最大长度,默认1024,将其设置的大一些可以使出现Nginx繁忙来不及accept新连接的情况时,Linux不至于丢失客户端发起的链接请求。
设置完以后执行命令sysctl -p使得配置新配置的内核参数生效。系统优化这个内核对系统本身安全以及高并发都非常的有效(可以解决大量TIME_WAIT带来的无法访问使用、系统文件句柄数量超出等等)。
netipv4tcp_timestamps = 1 #开启时间戳,配合tcp复用。如遇到局域网内的其他机器由于时间戳不同导致无法连接服务器,有可能是这个参数导致。注:阿里的slb会清理掉tcp_timestamps
netipv4tcp_tw_recycle = 1 #这个参数用于设置启用timewait快速回收
netipv4tcp_max_tw_buckets = 6000 #参数设置为 1 ,表示允许将TIME_WAIT状态的socket重新用于新的TCP链接,该参数默认为180000,过多的TIME_WAIT套接字会使Web服务器变慢。
netipv4tcp_mem = 94500000 915000000 927000000
netipv4tcp_fin_timeout = 1 #当服务器主动关闭链接时,选项决定了套接字保持在FIN-WAIT-2状态的时间。默认值是60秒。
netipv4tcp_keepalive_time = 600 #当keepalive启动时,TCP发送keepalive消息的频度;默认是2小时,将其设置为10分钟,可以更快的清理无效链接。
netipv4ip_local_port_range = 1024 65000#定义UDP和TCP链接的本地端口的取值范围。
fsfile-max=65535 #表示最大可以打开的句柄数;
设置完以后执行命令sysctl -p使得配置新配置的内核参数生效。这个内核对系统本身安全以及高并发都非常的有效(可以解决大量TIME_WAIT带来的无法访问使用、系统文件句柄数量超出等等)。
呵呵,你的问题还真不少。
学习Linux当然有用了,学习linux后,如果还想学编程语言的话,有如下选择:可以学C,因为Linux内核就是C编出来的,学好了C能更好的理解Linux;或者python,一种很强大的面向对象编程语言,学好了,进行Linux服务器管理相当的方便;还有就是php,现在很多公司招Linux方向的人员时,都会问你会不会php编程,如果你精通linux,还有php编程,那就很厉害了,至少找工作绝对没问题。编程语言都是相同的,VB是一种很好的编程语言,同时它也给微软造成了很大的安全隐患,但是这几年好像用的少了,java虽然好学,但是人才太多了,顶尖的不多。C++挺不好学的,但是它的用途很广,搞图形开发常用它。至于重新学习,完全不用,如果你VB非常熟练,再学其他的编程语言,会很轻松,刚开始可能有点费劲,一旦你深入进去了,就什么都不怕了。
“学了这个能做哪方面的工作”你指哪一方面,Linux还是编程?记着,它们是不同的行业。Linux的话,一般是服务器运行维护人员,或者做系统管理员。如果你能够在Linux下编程的话,而且编的不错,可以搞Linux的开发;至于编程方面,做网站开发,程序开发。
要去什么样的公司,看你的兴趣爱好。现在的IT公司很多很多,无论是大的,还是小的。只要你有能力,你有实力,什么公司都可以去。要说具体去什么样的公司,在咱们身边的就有很多,如百度、新浪、搜狐等。建议你去智联招聘或者51job看一下,那上面的公司很多的,你会发现每天都有需求。
可以自学或参加培训都可以,现在Linux运维学习正是好时机学历要求低,薪资还不错
1) Linux运维岗位及工作内容
互联网Linux运维工程师是一个融合多学科(网络、系统、开发、数据库、安全、存储等)的综合性技术岗位,甚至还需要沟通、为人处世、培训、销售、管理等非技术能力,这给运维工程师提供了一个广阔的发展空间。
2) Linux运维工程师岗位职责
一般从企业入门到中级Linux运维工程师的工作大致有:挑选IDC机房及带宽、购买物理服务器或云服务、购买及使用CDN服务、搭建部署程序开发及用户的访问系统环境(例如:网站运行环境)、对数据进行备份及恢复、处理网站运行中的各种故障(例如:硬件故障、软件故障、服务故障、数据损坏及丢失等)、对网站的故障进行监控、解决网站运行的潜在安全问题、开发自动化脚本程序提高工作效率、规划网站架构、程序发布流程和规范,制定运维工作制度和规范、配合开发人员部署及调试产品研发需要的测试环境、代码发布等工作需求,公司如果较小可能还会兼职网管、网络工程师、数据库管理员、安全工程师、技术支持等职责。
涉及到的Linux平台上的运维工具有:Linux系统,Linux基础命令,Nginx,Apache,MySQL,PHP,Tomcat,Lvs,Keepalived,SSH,Ansible,Rsync,NFS,Inotify,Sersync,Drbd,PPTP,Open***,NTP,Kickstart/Cobbler,KVM,OpenStack,Docker,,K8S,Mongodb,Redis,Memcached,Iptables,SVN,GIT,Jenkins,网络基础,Shell/Python开发基础等,除此之外还可能涉及到交换机、路由器、存储、安全、开发等知识。
运维工程师还包括一些低端的岗位,例:网络管理员、监控运维、IDC运维,值班运维
职业发展方向:Linux运维工程师、系统架构师、数据库工程师、运维开发工程师、系统网络安全工程师、运维经理、运维总监
3) Linux中级运维工程师应用软件阶段。
Linux系统,Linux基础命令,Nginx,Apache,MySQL,PHP,Tomcat,Lvs,Keepalived,SSH,Ansible,Rsync,NFS,Inotify,Sersync,Drbd,PPTP,Open***,NTP,Kickstart/Cobbler,KVM,OpenStack,Docker,Mongodb,Redis,Memcached,Iptables,SVN,GIT,Jenkins,网络基础,Shell/Python开发基础
4)Linux运维架构师岗位职责
运维架构师是运维工程师的高级阶段,并没有明确的岗位界限区分,运维架构师一般来说是除了对运维工程师应用的开源工具熟练掌握之外,更多的是用思想来运维了,即DevOps的落地,各种企业运行过程中的解决方案提出和执行,例如:根据公司的现状可以设计各类运维解决方案的能力:
1、自动化代码上线(SVN/GIT+Jenkins+MVN)解决方案;
2、云计算部署架构及Docker微服务架构方案;
3、服务自动化扩容方案(KVM/OpenStack/Docker+Ansible+Zabbix);
4、10万并发的网站架构、秒杀系统的架构及解决发你个案;
5、多IDC机房互联方案、全网数据备份解决方案、账号统一认证方案;
6、数据库、存储及各重要服务节点的集群和高可用方案。
7、各网络服务的极端优化方案、服务解耦/拆分。
8、运维流程、制度、规范等的建设和推行。
9、沟通能力、培训能力、项目管理、业务需求分析及落地执行力等。
这里仅举几个例子,实际工作中会有更多,运维架构师的工作,其实就是解决企业中的用户访问量不断增大带来的痛点,最终达到高效、优质的为客户提供网站及业务服务。
总的来说:Linux运维架构师更多的是根据企业日益增长的访问量需求,利用若干运维工具组合加上经验思想,形成解决业务需求方案的阶段,当然也不排除对运维工具进行二次开发以及可视化展示运维数据的阶段(开发软件平台),这个阶段涉及的工具会非常多,几乎市面好用的开源工具都在备选之列,在一线城市互联网公司的薪资范围15000-50000/月。
职业方向:高级数据库工程师、运维开发工程师、运维经理、运维总监、技术总监
运维架构师:将多个工具组合,加上思想经验,形成方案,用思想和经验赚钱的阶段。
技术的提升仅是量的积累,思想的提升才是质的飞跃!——老男孩
5)数据库运维工程师
众所周知,数据几乎是所有企业的生命线,所以数据库工程师的地位和薪水一般会比普通运维工程师高一些,主要工作内容就是保证数据库数据的安全以及高效地为用户提供各种服务。工作内容主要有:数据库环境搭建、数据库优化、数据库
负责您服务器和网站的各方面技术处理和日常维护(除网站程序代码的修改和内容的更新外)。
2、WEB服务器环境配置Apache,PHP,MySQL,Zend,各类组件等的安装和配置升级。例如:LAMP(linux+apache+mysql+php)环境的安装配置及优化;nginx+mysql/sqlserver+Resin环境的安装配置及优化;apache+mysql/sqlserver+tomcat环境的安装配置及优化;mysql、postgresql数据库的安装配置维护及优化及数据库同步设置;
3、其它应用程序安装配置按客户的特殊需求安装和调试其他程序和升级;postfix邮件服务器的配置维护及优化;***专线拨入的安装配置及优化;智能DNS分步式解析系统架设;各种负载均衡、集群、双机的配置维护及优化;
4、PHP网站安全检测和清马Unix系统各类网站安全漏洞的检测和被黑后的修复、清理木马后门等措施、防火墙配置,主要针对独立网站。
0条评论