容器组里有个状态为未知的容器,去看了下它的日志 也是空的...于是乎尝试了下重启该容器,但没有效果...后来发现似乎是容器的network里的数据冲突导致的,于是乎先删除容器,然后执行
docker network disconnect --force 容器名
然后对应用进行重新部署...就解决掉了
Remember me to one who lives there
容器组里有个状态为未知的容器,去看了下它的日志 也是空的...于是乎尝试了下重启该容器,但没有效果...后来发现似乎是容器的network里的数据冲突导致的,于是乎先删除容器,然后执行
docker network disconnect --force 容器名
然后对应用进行重新部署...就解决掉了
最近开发小工具用到了WebKitBrowser,遇到了内存一直增加导致程序崩溃的问题。本篇将讲述如何优化WebKitBrowser内存使用量。
1、发现使用Navigate方法会比new Uri更加消耗内存,大概在20%左右。
2、在DocumentCompleted事件中使用Dispose()进行释放资源,如下
private void Browser_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
Getdata();
browser.Dispose();
}
忙完毕业季有空更新博客了,这里docker安装步骤就不重复了,请看 docs.xiz.im
1、运行DB容器
docker run --name db -e POSTGRES_USER=sonar -e POSTGRES_PASSWORD=sonar -d postgres
2、运行sonarqube容器,账号密码都为admin,地址为http://IP:9300
docker run --name sq --link db -e SONARQUBE_JDBC_URL=jdbc:postgresql://db:5432/sonar -p 9000:9000 -d sonarqube
3、jenkins安装sonar Scanner插件
4、新建job,在Post Steps中配置「Execute SonarQube Scanner」如下图内容
sonar.projectKey=标识
sonar.projectName=项目名
sonar.projectVersion=1.0
sonar.sources=.
sonar.java.binaries=.
sonar.sourceEncoding=UTF-8
sonar.language=java
PS:官方参数文档https://docs.sonarqube.org/latest/analysis/analysis-parameters/
效果图如下(结合了GitLab webhook):
架构图:
简述:Filebeat安装在各个跑Docker的服务器中,对接Elasticsearch和Logstash
本文中系统为:Centos7.5,跑ELK的服务器配置为4核8G内存 实验中吃了3.05G内存
第一步,安装docker
第二步,获取ELK images
docker pull sebp/elk
第三步,修改内存配置
sysctl -w vm.max_map_count=262144
vi /etc/sysctl.conf
#在尾部添加
vm.max_map_count=262144
第四步,允许IPV4转发
vim /usr/lib/sysctl.d/00-system.conf
#在最下面添加
net.ipv4.ip_forward=1
#重启网络服务
systemctl restart network
第五步,运行容器
docker run -p 5601:5601 -p 9200:9200 -p 5044:5044 -it --log-opt max-size=500m --log-opt max-file=1 --restart=always --name elk sebp/elk
#参数:开放5601、9200、5044端口,限制容器日志大小为500MB最多一个日志文件,随着Docker启动
第六步,进入容器 修改Logstash
docker exec it elk bash
vi /etc/logstash/conf.d/02-beats-input.conf
#删除关于SSL的配置信息,一共3条
第七步,到需要收集日志的服务器上安装「Filebeat」
curl -L -O https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-6.5.1-x86_64.rpm
rpm -vi filebeat-6.5.1-x86_64.rpm
第八步,编辑Filebeat的配置
vi /etc/filebeat/filebeat.yml
#24行,修改为true
enabled: true
#28行,修改为
- /var/lib/docker/containers/*/*-json.log
#128行,修改为如下配置,elk是域名 建议使用域名方式
host: "elk:5601"
在148行中的elasticsearch配置修改成如下,elk是域名 建议使用域名方式
第九步,启用并配置elasticsearch模块
filebeat modules enable elasticsearch
filebeat setup
service filebeat start
systemctl enable filebeat
第十步,在kibana中建立索引
「management」>「Index Patterns」
我弄了一个nginx的容器来测试日志传输,最后实验成果了,效果如下图
拓展
1.定期清除收集的日志,如7天清理一次
#设立定时任务
crontab -e
0 1 */7 * * sh~/clean.sh
#创建一个sh脚本
vi clean.sh
time=`date +%Y.%m.%d -d "7 days ago"`
echo $shijian
curl -XDELETE "http://10.140.10.51:9200/filebeat-6.5.1-${time}"
下载脚本
curl -o /root/redis.sh https://www.xiz.im/github/home/redis/redis.sh
编辑脚本,选择你Redis版本
vi redis.sh #
Redis_version="redis-5.0.0"
#默认是5.0.0
部署Redis(master)
sh redis.sh master
部署Slave
sh redis.sh slave 192.168.1.1
#注意 这里的ip是主redis的ip
部署哨兵
sh redis.sh sentinel 192.168.1.1
有时候海底线缆嗝屁了的时候可以从我的公共库中下载Redis的安装包,这时候就需要到 https://www.xiz.im/github/home/redis/中获取下载地址然后替换脚本中的下载地址