Rootop 服务器运维与web架构

2019-01-08
发表者 Venus
fluentd收集容器stdout日志已关闭评论

fluentd收集容器stdout日志

docker支持fluentd日志格式。

--log-driver="json-file|syslog|journald|gelf|fluentd|awslogs|splunk|etwlogs|gcplogs|none"

# 起一个fluentd容器,容器发送过来的日志存到宿主机的/fluentd/log目录下

[root@localhost ~]# docker pull docker.io/fluent/fluentd
[root@localhost ~]# docker run -dit --name fluentd -p 24224:24224 -p 24224:24224/udp -v /fluentd/log:/fluentd/log docker.io/fluent/fluentd

# 起一个容器,日志发往fluentd。

[root@localhost ~]# docker run -dit --name test --log-driver=fluentd --log-opt fluentd-address=127.0.0.1:24224 --log-opt tag='test-1' centos ping www.baidu.com

# 指定日志格式后,就不再支持docker logs查看日志了。

[root@localhost log]# docker logs test
"logs" command is supported only for "json-file" and "journald" logging drivers (got: fluentd)

# 配置filebeat,把日志发往elasticsearch

安装 https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-6.5.4-x86_64.rpm
编辑配置文件,修改:
[root@localhost ~]# vi /etc/filebeat/filebeat.yml 
# 需要收集的日志路径
filebeat.inputs:

# Each - is an input. Most options can be set at the input level, so
# you can use different inputs for various configurations.
# Below are the input specific configurations.

- type: log

  # Change to true to enable this input configuration.
  enabled: true

  # Paths that should be crawled and fetched. Glob based paths.
  paths:
    - /fluentd/log/*.log
    
# 发往elasticsearch地址
output.elasticsearch:
  # Array of hosts to connect to.
  hosts: ["192.168.10.17:9200"]

# 注意
如果paths中指定了一个软连接文件,filebeat是不会收集的。(因为这个问题查了半天)

# 重启filebeat

[root@localhost ~]# systemctl restart filebeat

这样es中就自动创建了索引,以filebeat-6.5.4-日期 开头。

2018-12-29
发表者 Venus
查找垃圾弹窗广告是哪个进程启动的已关闭评论

查找垃圾弹窗广告是哪个进程启动的

下载微软的Microsoft Spy++ 这个软件,直接百度搜。

具体操作步骤参考:https://blog.csdn.net/jszj/article/details/78390008

测试了一下,这个软件可以找到整个桌面操作窗口的弹窗广告,对于通知栏的闪动广告还无法查到。

2018-12-14
发表者 Venus
docker ps格式化输出显示指定列已关闭评论

docker ps格式化输出显示指定列

目的:实现docker ps时显示指定列
有时候映射的端口多了,或者容器名字过长,docker ps时,屏幕太小会换行。通过去掉一些不看的列,让其显示为一行,方便查找。
通过 man docker ps 帮助文档可以看到–format参数可以实现格式化输出自定义列。

支持的列名如下:

--format="TEMPLATE"
Pretty-print containers using a Go template.
Valid placeholders:
.ID - Container ID
.Image - Image ID
.Command - Quoted command
.CreatedAt - Time when the container was created.
.RunningFor - Elapsed time since the container was started.
.Ports - Exposed ports.
.Status - Container status.
.Size - Container disk size.
.Names - Container names.
.Labels - All labels assigned to the container.
.Label - Value of a specific label for this container. For example {{.Label "com.docker.swarm.cpu"}}
.Mounts - Names of the volumes mounted in this container.

table实现第一行打印列名,后面是GO语言里template语法(docker是基于go语言开发的)

[root@host ~]# docker ps -a --format "table {{.ID}}\t{{.Image}}\t{{.Names}}\t{{.Status}}"
CONTAINER ID        IMAGE                           NAMES               STATUS
a640a8b3c0d2        docker.io/rabbitmq:management   rabbitmq            Up 9 days
a814698e6c4d        centos                          new_guanwang        Up 2 weeks
06f722c239b6        c7j8t8                          guanwang            Exited (137) 2 weeks ago

这样就达到想要的格式效果了。

2018-12-13
发表者 Venus
logstalgia实现nginx访问日志可视化已关闭评论

logstalgia实现nginx访问日志可视化

支持nginx、apache标准日志。生成图形动态效果,非常炫酷。
支持linux及windows客户端。

ubuntu下安装:

root@venus:~# apt install logstalgia

# 读取本地日志

root@venus:/usr/local/openresty/nginx/logs# logstalgia access.log

日志读取完会退出程序。

# 动态读取本地日志

root@venus:/usr/local/openresty/nginx/logs# tail -f access.log | logstalgia --sync

# 动态读取远程日志并设置一个标题

root@venus:~# ssh root@HOST tail -f /var/log/nginx/api_access.log  | logstalgia --sync --title sych-api

# 更多参数通过-h查看。

root@venus:~# logstalgia -h