saltstack 常用命令总结(持续更新)

版权声明 本站原创文章 由 萌叔 发表 转载请注明 萌叔 | http://vearne.cc 起因: 工作中经常要用到,就列在这儿,方便查看。 1. file server 1.1 更新state文件(针对master) fileserver.update backend=roots,git 1.2 清除本地state文件(针对master) salt-run fileserver.clear_cache 1.3 列出fileserver目录(针对master) 列出文件夹 salt-run fileserver.dir_list 列出文件 salt-run fileserver.file_list 2. Pillar 2.1 更新pillar 如果你设定git作为external pillar salt-run git_pillar.update branch='branch'repo='https://foo.com/bar.git' 2.2 查看pillar 查看特定 salt "*" pillar.get disk_type 查看所有 salt "*" pillar.items 2.3 刷新目标机器的pillar salt '*' saltutil.refresh_pillar 3. grains 3.1 查看grains 查看特定 salt '*' grains.item os osrelease oscodename 查看所有 salt '*' grains.items 3.2 同步自定义的grains 脚本放在salt://_grains 目录中 Sync grains modules from salt://_grains to the minion ...

January 1, 2018 · 1 min

SaltStack 重要配置

版权声明 本站原创文章 由 萌叔 发表 转载请注明 萌叔 | http://vearne.cc 当整个saltstack的负载比较高的时候需要修改如果配置参数 1. Minion By default, the Salt fileserver recurses fully into all defined environments to attempt to find files. To limit this behavior so that the fileserver only traverses directories with SLS files and special Salt directories like _modules, enable the option below. This might be useful for installations where a file root has a very large number of files and performance is negatively impacted. Default is False. ...

January 1, 2018 · 1 min

业务日志收集方案

版权声明 本站原创文章 由 萌叔 发表 转载请注明 萌叔 | http://vearne.cc 起因: 我们线上的业务通常会部署到10几台或者几十台机器上,线上的日志如果用salt执行命令远程的grep已经是越来越不方便了,所以我们决定对日志进行统一收集,管理 1. 选择方案 我们业务日志不算特别的多,因此不想方案过于复杂,并且公司内部已经有ES和kafaka集群 因此可以选方案有 1) rsyslog + kafka + elasticsearch 2)fluentd + kafka + elasticsearch 我最终选择了方案1: a) 由于公司的服务器主要是centos, 默认已经安装了rsyslog b) Fluentd是JRuby开发的,而rsyslog是二进制程序 以前有过logstash的使用经历,当日志量较大时,logstash会把CPU打的很高 感受:rsyslog的功能其实非常强大, 它所有配置都是从某个input获取数据再发送到output(和logstask很像) 支持: 1) 文件 –> kafka 2) 文件 –> elasticsearch 3) tcp/udp –> 文件 4)文件 –> 其它主机(TCP/UDP) input 和 output 是可以任意组合的 如果你不想搭建Elasticsearch和Kafka,完全可以把所有日志收集到某个文件服务器 然后在这台文件服务器上再使用logrotate,完全可以满足日常的开销 kafka只是用来做缓冲的,如果日志没有明显的波峰,可以不使用kafka 2. 实施 2.1 统一日志字段 我们多个业务项目,并且有Golang、Python等多种语言,为了保证,入ES的数据格式一致,我们统一了日志的字段,如下 所有字段都是比选的,如果没有请留成空字符串* 字段 类型 是否必填 说明 备注 service string 是 业务标识 使用英文字符和下划线,中划线 name string 是 logger名称 level string 是 日志级别 ERROR/INFO/DEBUG/WARNING pathname string 是 文件全路径 lineno int 是 在文件中的行号 如果没有, 给默认值-1 msg string 是 消息体 task_id string 是 任务ID log_date string 是 日志时间 ES上的字段类型为datetime 2017-01-01T00:00:00+0800 不同的业务和项目之间通过service字段区分 ...

December 31, 2017 · 1 min