rsyslog日志服务介绍以及日志收集

rsyslog日志服务介绍以及日志收集 一、Rsyslog服务介绍 1.1 rsyslog简介 rsyslog,是Centos系统自带的很强大的一块系统日志工具。 /var/log/messages这个日志大家并不陌生,是我们出现问题经常去查看的一个日志记录文件,这个日志里面信息的填写是由rsyslog服务维护的。 以前旧版本Centos 5系列的时候,此服务叫做syslog,从Centos 6版本开始,更名为rsyslog服务。以前是两个进程,rsyslogd(系统日志包括用户空间的各应用程序相关的日志)进程,klogd(内核日志包括kernel相关的日志)进程但是此进程由rsyslogd代为管理。所以只看到了rsyslogd一个进程。 以前旧版本syslog不能进行并行数据存储、效率低,不能实现放在专用数据管理文件中,升级到rsyslog之后有了下面的优点: (1). 多线程的服务,并发性能好。 (2). 可以使用udp、tcp、ssl、tls、relp等协议完成信息收集,可以集中存储在远程日志服务器中,早期的syslog仅支持简单的文本传输模式实现日志发送,不安全。 (3). 支持将日志放到mysql,pgsql,oracle等多种数据库中,这种行级锁的存储形式,不仅可以让多主机的信息写入更快,而且可以为web的界面展示提供很好的支持。 (4). 强大的过滤器,自定义过滤器,可实现过滤系统信息中的任意部分。 (5). 支持完整的自定义格式的输出格式配置。 1.2 rsyslog日志格式 完整的rsyslog日志中包含产生日志的程序模块(Facility)、严重性(Severity或Level)、时间、主机名或IP、进程名、进程ID和正文。 按照RFC 3164格式的话,rsyslog包分为3个部分,RPI,HEADER以及MSG总长度不能超过1024个字节: PRI(代表了facility以及severity)此字段只存在于rsyslog报文包头部分在log中并不常见。 HEADER部分包含一个时间戳以及发送方的主机名或ip地址,并且HEADER部分必须是一些可打印字符,时间戳部分是格式为“Mmm dd hh:mm:ss”的本地时间,其中Mmm是3个字母的英文缩写,如果日期小于10,必须空格代替缺少的一个数字,主机部分一般使用主机名,如果没有的话可以使用IPv4或者IPv6的地址。需要注意的是主机名中不能包含任何空格,时间戳和主机名后面都各自跟一个空格。 MSG部分一般包含生成消息的进程信息(TAG field)以及消息正文(CONTENT field)。TAG部分主要是包含生成消息的进程信息,不能超过32个字符。消息体必须是一些可见字符,这部分就是消息正文。TAG与CONTENT之间的间隔用非字母表字母隔开,一般用[或者:或者空格隔开。 1.3  Facility 包含 Facility(产生日志的设施,从功能和程序上对日志收集进行分类)在rsyslog中指定了产生日志消息的子系统,可选值为: auth : 身份认证 aupriv : 授权 cron : 计划任务 daemon:守护进程 kern : 内核 lpr Read more…

webmin部署

部署webmin, 起因是要找一个管理bind和nginx的web ui界面, 找了一圈, 装了很多开源方案, 也没找着一个合适的, 后来发现webmin很强大, 完全符合需要, 现在把使用ansible部署webmin的方法记录一下. webmin官网地址:http://www.webmin.com/, 基本上所有包和使用文档都能从官网获取, 安装有两个方式, rpm包和tar包,  tar包方式是直接运行setup.sh, 方便自定义. webmin和virtualmin Virtualmin/Webmin其实是两个不同的管理系统。Webmin是一个基于WEB的用户界面,主要就是帮助服务器管理通过Web的界面方式来管理服务器,例如管理系统用户、配置Web服务器、DNS解析以及服务器之间的文件共享,是一个强大的Unix系统管理面板。而Virtualmin是Webmin的模块,从名字就可以看出来Virtualmin主要作用就是管理虚拟主机,也就是我们常用的建站主机。例如Virtualmin支持配置Apache、BIND DNS解析系统、MySQL数据库、 Sendmail 或者 Postfix邮箱和别名的创建和管理等等 部署 ansible版本需要2.9以上, 下面是ansible playbook脚本: webmin.yml

roles/webmin/defaults/main.yml

roles/webmin/handlers/main.yml

roles/webmin/templates/run_perl.j2

roles/webmin/templates/webmin.service.j2

roles/webmin/files/目录包括:authentic-theme mysql.wbm.gz nginx-0.11.wbm_.gz virtual-server-6.0.9.gpl.wbm.gz webmin-1.941.tar.gz roles/webmin/tasks/main.yml

roles/webmin/tasks/global.yml

roles/webmin/tasks/nginx.yml

roles/webmin/tasks/bind.yml

roles/webmin/tasks/rsyslog.yml

Read more…

docker: process_linux.go:297: getting the final child’s pid from pipe caused \”EOF\””: unknown报错

在centos7上运行容器时报错:

解决: 设置内核参数:

记录了允许创建的user namespace数量,我的centos7默认是0修改之后就好了。

申请免费SSL证书并配置网站

首先登录https://freessl.cn/, 填写域名, 免费的域名只能填一个, 不能填写多个, 选择亚洲诚信, 可以免费使用一年 下一步填写邮箱, 证书类型选择ECC, 验证类型选择文件验证(DNS验证不知为何不好使), CSR生成选择浏览器生成:   确认创建, 在网站服务器上临时更改一下nginx配置, 先下载文件, 将文件拷贝到服务器网站根目录的下面目录(需要创建文件夹) : .well-known/pki-validation/fileauth.txt, 确认网站可以访问此文件且记录值一致, 就可以直接点击验证, 验证通过后就可下载证书文件 证书文件下载解压完后有两个文件, 分别是full_chain.pem和private.key, 将此证书文件夹拷贝到服务器nginx目录: /usr/local/nginx/conf/cert/ (需要创建文件夹cert) 配置网站:

确认443端口没有被占用, 重启下nginx即可

安装python模块常见错误及解决方式

安装python模块常见错误 matplotlib报错_tkinter.TclError: no display name and no $DISPLAY environment variable

#交互式测试,此时报错 解决办法,在引用后添加下面这一行

例如:

报错: c/_cffi_backend.c:15:10: fatal error: ffi.h: 没有那个文件或目录 #include <ffi.h> ^~~~~~~ compilation terminated. error: command ‘gcc’ failed with exit status 1 解决:

报错:build/temp.linux-x86_64-3.4/_openssl.c:423:30: fatal error: openssl/opensslv.h: No such file or directory

安装MySQL-python时报错ModuleNotFoundError: No module Read more…

删除K8s Namespace时卡在Terminating状态

想要删除K8s里的一个Namespace,结果删除了所有该Namespace资源之后使用kubectl delete namespace test发现删除不掉,一直卡在Terminating状态,使用–force参数依然无法删除,报错: Error from server (Conflict): Operation cannot be fulfilled on namespaces “test”: The system is ensuring all content is removed from this namespace. Upon completion, this namespace will automatically be purged by the system. 找了一圈,发现这个Issue,里面有条评论 kubectl get namespace annoying-namespace-to-delete -o json > tmp.json then edit tmp.json and Read more…

pip 安装graphviz

pip安装graphviz时报如下错: ERROR: Could not install packages due to an EnvironmentError: HTTPSConnectionPool(host=’files.pythonhosted.org’, port=443): Max retries exceeded with url: /packages/17/51/d6de512dbbbab95f0adb53fb2a4396b79722f7c3fbe8ecc2d8c6ab7de00a/graphviz-0.12-py2.py3-none-any.whl (Caused by SSLError(SSLError(1, ‘[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:852)’),)) 解决: pip install graphviz –trusted-host=pypi.python.org –trusted-host=pypi.org –trusted-host=files.pythonhosted.org 参考: https://github.com/pypa/pip/issues/5363

OpsManage安装

项目地址: https://github.com/welliamcao/OpsManage 其中: 安装最新版Redis:

2. 生成数据表与管理员账户 其中, 执行以上时各种报错, 找不着模块, 解决如下:

 

常用 Git 命令清单

我每天使用 Git ,但是很多命令记不住。 一般来说,日常使用只要记住下图6个命令,就可以了。但是熟练使用,恐怕要记住60~100个命令。 下面是我整理的常用 Git 命令清单。几个专用名词的译名如下。 Workspace:工作区 Index / Stage:暂存区 Repository:仓库区(或本地仓库) Remote:远程仓库 一、新建代码库

  二、配置 Git的设置文件为.gitconfig,它可以在用户主目录下(全局配置),也可以在项目目录下(项目配置)。

  三、增加/删除文件

  四、代码提交

五、分支

  六、标签

  七、查看信息

  八、远程同步

  九、撤销

  十、其他

  转自: http://www.ruanyifeng.com/blog/2015/12/git-cheat-sheet.html