Rootop 服务器运维与web架构

2018-01-04
发表者 Venus
django初试已关闭评论

django初试

版本 python2.7 需要django 1.11.x版本

https://github.com/django/django

解压
安装
python setup.py install

创建一个项目:
[root@localhost home]# django-admin startproject djtest

启动服务:
[root@localhost djtest]# python manage.py runserver
Performing system checks…

System check identified no issues (0 silenced).
# 报错
You have 13 unapplied migration(s). Your project may not work properly until you apply the migrations for app(s): admin, auth, contenttypes, sessions.
Run ‘python manage.py migrate’ to apply them.

解决:
[root@localhost djtest]# python manage.py migrate
Operations to perform:
Apply all migrations: admin, auth, contenttypes, sessions
Running migrations:
Applying contenttypes.0001_initial… OK
Applying auth.0001_initial… OK
Applying admin.0001_initial… OK
Applying admin.0002_logentry_remove_auto_add… OK
Applying contenttypes.0002_remove_content_type_name… OK
Applying auth.0002_alter_permission_name_max_length… OK
Applying auth.0003_alter_user_email_max_length… OK
Applying auth.0004_alter_user_username_opts… OK
Applying auth.0005_alter_user_last_login_null… OK
Applying auth.0006_require_contenttypes_0002… OK
Applying auth.0007_alter_validators_add_error_messages… OK
Applying auth.0008_alter_user_username_max_length… OK
Applying sessions.0001_initial… OK

[root@localhost djtest]# python manage.py runserver 0.0.0.0:9999
监听所有ip的9999端口

2、访问django报错
Invalid HTTP_HOST header: ‘192.168.1.41:9999’. You may need to add u’192.168.1.41′ to ALLOWED_HOSTS.
修改 settings.pyALLOWED_HOSTS = []ALLOWED_HOSTS = [‘*’]

2017-12-26
发表者 Venus
logstash中多个日志监控及日志多行匹配 multiline 插件已关闭评论

logstash中多个日志监控及日志多行匹配 multiline 插件

问题1:一个服务中可能会有2个以上的日志
问题2:一个日志中,一条完整的日志会包含多行,默认logstash匹配是一行一条,这就需要把多行合并为一条,这样才是一条完整的日志。

日志格式:

日志开头都是以 [日志级别] 开始,如果不是,可以让开发改一下,否则就自己修改正则。

例:

input {

	## 锦衣卫接口日志
	file {
		type => "jinyiweiapi" # 稍后说作用
		path => "/home/dockermount/jinyiwei/logs/catalina.out" # 日志路径
		codec => multiline {
			pattern => "^\["  # 正则表达式,匹配开头为 "[" 的为一条日志的开始
			negate => true	  # true向前匹配,false向后匹配,默认false
			what => previous  # 未匹配的内容是向前合并还是向后合并, previous/next
		}
	}

	# 锦衣卫后台日志
	file {
		type => "jinyiweimgmt"
		path => "/home/dockermount/jinyiwei/logs_manager/catalina.out"
		codec => multiline {
			pattern => "^\["
			negate => true
			what => previous
		}
	}

}

output {

	# 根据上面的type不同,建立不同索引
	if [type] == "jinyiweiapi" {
		elasticsearch {
			action => "index"
			hosts  => "119.x.x.x:9200"
			index => "jinyiwei-tomcat-api-%{+YYYY.MM.dd}" # 为 type 为 jinyiweiapi 的创建索引
			codec => "json"
		}
	}

	# 根据上面的type不同,建立不同索引
	if [type] == "jinyiweimgmt" {
		elasticsearch {
			action => "index"
			hosts  => "119.x.x.x:9200"
			index => "jinyiwei-tomcat-manage-%{+YYYY.MM.dd}" # 为 type 为 jinyiweimgmt 的创建索引
			codec => "json"
		}
	}

	# 调试模式
	stdout {
		codec => rubydebug
	}

}

这样,在elasticsearch中就会出现2个索引,即两个不同的日志,创建独立的索引。便于kibana中查看。

2017-12-19
发表者 Venus
利用sonar分析代码质量已关闭评论

利用sonar分析代码质量

官网:https://www.sonarqube.org
目前最新版为:sonarqube-6.7

1、安装jdk必须1.8以上。过程略。。。
2、安装mysql5.6版本以上并且为InnoDB引擎,建议直接安装解压版,编译速度太慢,yum版本又过低(要么自己改yum源)。过程略。。。
设置允许mysql远程连接,登陆,创建一个名为 sonar 的数据库,字符集utf8、校对规则utf8_general_ci 。

3、安装sonar:

[root@localhost ~]# wget -c https://sonarsource.bintray.com/Distribution/sonarqube/sonarqube-6.7.zip
[root@localhost ~]# unzip sonarqube-6.7.zip
[root@localhost ~]# mv sonarqube-6.7 /usr/local/
[root@localhost ~]# cd /usr/local/sonarqube-6.7/
[root@localhost sonarqube-6.7]# ll
# 启动脚本目录
drwxr-xr-x 8 root root 136 Nov 7 15:16 bin
# 配置文件目录
drwxr-xr-x 2 root root 50 Nov 7 15:06 conf
-rw-r--r-- 1 root root 7651 Nov 7 15:06 COPYING
drwxr-xr-x 2 root root 24 Nov 7 15:06 data
drwxr-xr-x 7 root root 150 Nov 7 15:16 elasticsearch
drwxr-xr-x 4 root root 40 Nov 7 15:06 extensions
drwxr-xr-x 9 root root 138 Nov 7 15:16 lib
# sonar及es、web等日志,排错很有用
drwxr-xr-x 2 root root 6 Nov 7 15:06 logs
drwxr-xr-x 2 root root 24 Nov 7 15:06 temp
drwxr-xr-x 9 root root 4096 Nov 7 15:16 web

解压完,就可以用了,不过启动sonar必须用普通用户,root用户因为权限太高,不让用。
添加一个普通用户,如 venus,添加用户过程略。

修改sonar配置文件:

[root@localhost sonarqube-6.7]# vi conf/sonar.properties
# 数据库用户名
sonar.jdbc.username=root
# 数据库密码
sonar.jdbc.password=root
# 连接数据库参数
sonar.jdbc.url=jdbc:mysql://192.168.1.145:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance&useSSL=false
# sonar监听地址及端口
sonar.web.host=0.0.0.0
sonar.web.port=9000

修改 sonar 目录属主属组为 venus,否则服务无法启动

[root@localhost ~]# chown -R venus:venus /usr/local/sonarqube-6.7
[root@localhost ~]# cd /usr/local/
[root@localhost local]# ll
total 0
drwxr-xr-x. 2 root root 6 Nov 5 2016 bin
drwxr-xr-x. 2 root root 6 Nov 5 2016 etc
drwxr-xr-x. 2 root root 6 Nov 5 2016 games
drwxr-xr-x. 2 root root 6 Nov 5 2016 include
lrwxrwxrwx 1 root root 23 Dec 19 09:17 jdk -> /usr/local/jdk1.8.0_131
drwxr-xr-x 8 10 143 255 Mar 15 2017 jdk1.8.0_131
drwxr-xr-x. 2 root root 6 Nov 5 2016 lib
drwxr-xr-x. 2 root root 6 Nov 5 2016 lib64
drwxr-xr-x. 2 root root 6 Nov 5 2016 libexec
drwxr-xr-x. 2 root root 6 Nov 5 2016 sbin
drwxr-xr-x. 5 root root 49 Jun 28 10:19 share
drwxr-xr-x 11 venus venus 141 Dec 19 09:35 sonarqube-6.7
drwxr-xr-x. 2 root root 6 Nov 5 2016 src

切换到venus账号

[root@localhost local]# su venus
[venus@localhost local]$ cd

启动脚本 cat start.sh :

#!/bin/bash

# 必须用jdk1.8
# mysql5.6以上
# 必须用普通用户启动
export JAVA_HOME=/usr/local/jdk
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export SONAR_HOME=/usr/local/sonarqube-6.7
$SONAR_HOME/bin/linux-x86-64/sonar.sh start

检查9000端口是否启动:

[venus@localhost conf]$ netstat -tnlp | grep 9000
tcp6 0 0 :::9000 :::* LISTEN 13426/java

用浏览器访问 http://192.168.10.41:9000,默认用户名密码都是 admin


根据下面提示,安装中文支持。


会提示重启服务,这样,服务端就安装完了。下一步安装扫描器。

安装sonar-scanner 代码扫描器:

https://docs.sonarqube.org/display/SCAN/Analyzing+with+SonarQube+Scanner 这个页面可以找到下载地址。

[root@localhost ~]# wget -c https://sonarsource.bintray.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-3.0.3.778-linux.zip
[root@localhost ~]# unzip sonar-scanner-cli-3.0.3.778-linux.zip
[root@localhost ~]# mv sonar-scanner-3.0.3.778-linux/ /usr/local/

编辑扫描器配置文件:

[root@localhost ~]# vi /usr/local/sonar-scanner-3.0.3.778-linux/conf/sonar-scanner.properties
#Configure here general information about the environment, such as SonarQube DB details for example
#No information about specific project should appear here

#----- Default SonarQube server
sonar.host.url=http://192.168.10.41:9000

#----- Default source code encoding
sonar.sourceEncoding=UTF-8
# mysql配置为跟sonar服务端一样
sonar.jdbc.username=root
sonar.jdbc.password=root
sonar.jdbc.url=jdbc:mysql://192.168.1.145:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance
# sonar web用户名密码
sonar.login=admin
sonar.password=admin

在你的项目源码下创建一个 sonar-project.properties ,默认会找这个文件

# 项目id,不出现重复就好。
# 这个值会体现在 /dashboard?id=jyw
sonar.projectKey=jyw
# 项目名
sonar.projectName=jinyiwei
# 版本号
sonar.projectVersion=1.0
# 下面是代码源码目录
sonar.sources=src
# 下面指定编译后的classes目录,需要maven打包后解压。
sonar.java.binaries=/mnt/jinyiwei/manager/WEB-INF/classes
#sonar.tests=tests
# 我这个是java项目
sonar.language=java
sonar.sourceEncoding=UTF-8

开始扫描:

[root@localhost jyw-manager]# /usr/local/sonar-scanner-3.0.3.778-linux/bin/sonar-scanner
最后会提示分析结果
INFO: ANALYSIS SUCCESSFUL, you can browse http://192.168.10.41:9000/dashboard/index/jyw
INFO: Note that you will be able to access the updated dashboard once the server has processed the submitted analysis report
INFO: More about the report processing at http://192.168.10.41:9000/api/ce/task?id=AWBsmROLiL1iVAE9Rh8k
INFO: Task total time: 42.256 s
INFO: ------------------------------------------------------------------------
INFO: EXECUTION SUCCESS
INFO: ------------------------------------------------------------------------
INFO: Total time: 43.613s
INFO: Final Memory: 119M/2550M
INFO: ------------------------------------------------------------------------

去web界面就可以看到分析报告了。

2017-12-14
发表者 Venus
windows mysql5.7修改数据目录后无法启动已关闭评论

windows mysql5.7修改数据目录后无法启动

windows下 默认mysql5.7装完以后,数据目录是在 C:\ProgramData\MySQL\MySQL Server 5.7\Data
可以通过mysql命令行下执行:

show variables like '%datadir%';

查看数据data存储目录。


为了防止系统损坏,导致丢失,把数据目录修改到D盘下,比如 D:\mysql\data。
修改my.ini ,此文件默认在 C:\ProgramData\MySQL\MySQL Server 5.7

1、关闭mysql服务
2、编辑my.ini
[mysqld]
# 修改数据目录
# datadir=C:/ProgramData/MySQL/MySQL Server 5.7/Data
datadir=D:/mysql/data    # 注意是用 / 不是 \

3、把原先C:/ProgramData/MySQL/MySQL Server 5.7/Data目录下的数据复制到D:/mysql/data路径下。
修改D:\mysql\data目录权限,添加 network service 账号权限
(如果不加权限,启动服务会报错)


启动mysql服务。
再次进mysql查看路径。

2017-12-04
发表者 Venus
windows 设置开机自动进入桌面并启动指定程序已关闭评论

windows 设置开机自动进入桌面并启动指定程序

第一步:
需要设置不需要密码就可以登录到windows
打开 运行 -> 输入 “control userpasswords2
去掉勾选 “要使用本计算机,用户必须输入用户名和密码(E)”,如下图。

打开 “启动” 目录,在server 2008中可以从开始菜单找。

2008以上版本(2012、2016)以后开始菜单里就没有了,可以通过环境变量打开。
打开 运行 -> 输入 “%programdata%\Microsoft\Windows\Start Menu\Programs\Startup” 回车打开启动目录。
把要运行的程序的快捷方式放到这里面即可。

这样重启服务器后,程序也会启动。

虽然取消了要使用本计算机,用户必须输入用户名和密码,但是在远程连接的时候还是需要提供用户名密码。

如果是物理机,非云主机,可以设置屏幕保护程序锁定屏幕。即 提示输入密码的这步才能登陆服务器。

这样,过一分钟后,就锁屏了。