安装openssh-server
sudo apt-get update
sudo apt-get install openssh-server
查看ssh服务
sudo ps -e|grep ssh #是否存在sshd进程
如果没有sshd进程,执行:
sudo service ssh start
查看ubuntu IP
ifconfig
使用ssh客户端工具连接
ssh 你的ip
安装openssh-server
sudo apt-get update
sudo apt-get install openssh-server
查看ssh服务
sudo ps -e|grep ssh #是否存在sshd进程
如果没有sshd进程,执行:
sudo service ssh start
查看ubuntu IP
ifconfig
使用ssh客户端工具连接
ssh 你的ip
19-30,mins 讲解linux下的安装和搭建测试代码
不要忘记配置阿里云3000端口!!!
`ubuntu 的安装node`
linux ubuntu 安装node
Ubuntu apt-get命令安装
命令格式如下:
sudo apt-get install nodejs
sudo apt-get install npm
ubuntu 测试nodejs
nodejs -v
显示4.* ++ 的版本
升级nodejs 到最新版本
如果node不是最新的,node有一个模块叫n,是专门用来管理node.js的版本的。使用npm(NPM是随同nodejs一起安装的包管理工具)安装n模块
$ sudo npm install -g n
然后,升级node.js到最新稳定版
$ sudo n stable
旧版本的 npm,也可以很容易地通过 npm 命令来升级,命令如下:
$ sudo npm install npm -g
使用n模块安装的最新node
已经配置好环境变量
node 和 npm
测试nodejs
node -v
8.7.* 版本
raylog 是一个开源的日志管理系统,集中式收集、索引、分析其它服务器发来的日志。它是由 Java 语言编写的,能够接收 TCP、UDP、AMQP 协议发送的日志信息,并且使用 Mongodb 做为后台数据库。它还有一个使用 Ruby 编写的 Web 管理接口,可以轻松管理 Graylog 和查询日志。
Graylog 可以收集监控多种不同应用的日志。本文只是会为了示范说明,会把用到的组件全部安装到一个单独的服务器上。对于大型、生产系统你可以把组件分开安装在不同的服务器上,这样可以提高效率。
Graylog 2 有 4 个基本组件:
Elasticsearch:存储所有的日志,它的性能依赖内存和硬盘IO。
MongoDB:存储数据。
Web接口:用户接口。
下面是 Graylog 2 各组件之间的关系图
环境依赖
Graylog 2 需要以下环境依赖:
Elasticsearch (>= 2.x,推荐使用最新稳定版本。)
MongoDB (>= 2.4,推荐使用最新稳定版本。)
Oracle Java SE 或 OpenJDK (>= 8,推荐使用最新稳定版本。)
如果你的 Ubuntu Server 是最小化安装的,还需要提前安装以下软件包:
$ sudo apt-get install apt-transport-https uuid-runtime pwgen
Elasticsearch 是基于 Java 的应用,我们首先需要安装 OpenJDK 或 Oracle JDK。这里我们选择安装 OpenJDK 8:
$ sudo apt-get update && sudo apt-get install openjdk-8-jdk
如果你的系统上存在多个 Java 版本,可使用以下指令设置默认使用版本。
$ update-alternatives --config java
Elasticsearch 是 Graylog 一个主要的组件,负责分析和索引日志。Graylog 2.3.x 开始支持 Elasticsearch 5.x, 这里我们就安装 Elasticsearch 5.x 版本。
# 添加 GPG 签名密钥
$ wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
# 添加 Eleasticsearch 源
$ echo "deb https://artifacts.elastic.co/packages/5.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-5.x.list
# 安装 Elasticsearch
$ sudo apt-get update && sudo apt-get install elasticsearch
编辑 Elasticsearch 配置文件:
$ sudo vim /etc/elasticsearch/elasticsearch.yml
# 把 cluster.name 设置为 graylog。
cluster.name: graylog
修改配置后,你需要重启 Elasticsearch:
$ sudo systemctl daemon-reload
$ sudo systemctl restart elasticsearch.service
如果要把 Elasticsearch 服务加入随系统启动,可以执行以下命令:
$ sudo systemctl enable elasticsearch.service
测试 Elastisearch 工作是否正常
Elastisearch 默认使用 9200 端口接收 http 请求,这里使用 curl 指令进行一个简单的请求测试。
$ curl -X GET http://localhost:9200
{
"name" : "V8jWSvJ",
"cluster_name" : "graylog",
"cluster_uuid" : "8cnTgvEzRZ2U81LTYq5nEw",
"version" : {
"number" : "5.6.3",
"build_hash" : "1a2f265",
"build_date" : "2017-10-06T20:33:39.012Z",
"build_snapshot" : false,
"lucene_version" : "6.6.1"
},
"tagline" : "You Know, for Search"
}
查看 Elasticsearch 的健康状态
$ curl -XGET 'http://localhost:9200/_cluster/health?pretty=true'
{
"cluster_name" : "graylog",
"status" : "green",
"timed_out" : false,
"number_of_nodes" : 1,
"number_of_data_nodes" : 1,
"active_primary_shards" : 0,
"active_shards" : 0,
"relocating_shards" : 0,
"initializing_shards" : 0,
"unassigned_shards" : 0,
"delayed_unassigned_shards" : 0,
"number_of_pending_tasks" : 0,
"number_of_in_flight_fetch" : 0,
"task_max_waiting_in_queue_millis" : 0,
"active_shards_percent_as_number" : 100.0
}
Ubuntu 16.04 默认安装源中包含的 MongoDB (目前版本是 2.6.10) 是支持 Graylog 2.3.x 或更高版本的。
$ sudo apt-get install mongodb-server
启动 MongoDB 服务
$ sudo systemctl start mongodb
如果要把 MongoDB 服务加入随系统启动,可以执行以下命令:
$ sudo systemctl enable mongodb
Graylog Server 负责接收和处理日志。
# 下载安装 Graylog Server 仓库
$ wget https://packages.graylog2.org/repo/packages/graylog-2.3-repository_latest.deb
$ sudo dpkg -i graylog-2.3-repository_latest.deb
# 安装 Graylog Server
$ sudo apt-get update && sudo apt-get install graylog-server
编辑 Graylog Server 配置文件:
设置 password_secret,首先使用 pwgen 命令生成密码:
$ pwgen -N 1 -s 96
1jfPjMRn5XRsCdVWArjy1nulgXbUJJ8khuW0xQGrqUvJ1iXefhqSh12xsp1dZgkKVsOwiOuDLArh6TYafQE8QFDjEzUIU1tS
修改 password_secret 参数值:
$ sudo vim /etc/graylog/server/server.conf
password_secret = 1jfPjMRn5XRsCdVWArjy1nulgXbUJJ8khuW0xQGrqUvJ1iXefhqSh12xsp1dZgkKVsOwiOuDLArh6TYafQE8QFDjEzUIU1tS
设置 Graylog Server 管理员密码 root_password_sha2,这个密码用来登录 Web 管理页面。
假如你要把密码设置为 000000 ,可以使用 sha256sum 命令来生成:
$ echo -n 000000 | sha256sum
91b4d142823f7d20c5f08df69122de43f35f057a988d9619f6d3138485c9a203
修改 root_password_sha2 参数值:
$ sudo vim /etc/graylog/server/server.conf
root_password_sha2 = 91b4d142823f7d20c5f08df69122de43f35f057a988d9619f6d3138485c9a203
注:password_secret 和 root_password_sha2 参数是必须设定的,否则 Graylog Server 将无法启动。
如果你要设置管理员邮箱和时区,可以使用以下参数值:
$ sudo vim /etc/graylog/server/server.conf
root_email = "[email protected]"
root_timezone = UTC
设置 Elasticsearch 节点:
$ sudo vim /etc/graylog/server/server.conf
# Default: http://127.0.0.1:9200
elasticsearch_hosts = http://192.168.100.212:9200
如果需要配置多个 Elasticsearch 节点或是需要认证的节点,可按以下格式配置:
elasticsearch_hosts = http://node1:9200,http://user:password@node2:19200
注:如不配置,默认是连接到本机的 Elasticsearch 节点。
其它一些和 Elasticsearch 的相关设置:
elasticsearch_index_prefix = graylog
elasticsearch_connect_timeout = 10s
elasticsearch_max_docs_per_index = 20000000
elasticsearch_max_total_connections = 20
elasticsearch_max_number_of_indices = 20
elasticsearch_shards = 1
elasticsearch_replicas = 0
从 Graylog 2.x 版本开始,Graylog 已经默认集成了 Web 接口。
配置 Graylog Web 接口
$ sudo vim /etc/graylog/server/server.conf
# 配置rest Api 的 URI
rest_listen_uri = http://your_ip_or_domain:9001/
# 配置 Web 界面的 URI
web_listen_uri = http://your_ip_or_domain:9000/
注: your_ip_or_domain 为你实际服务器 IP 或域名。
启动 Graylog Server 服务:
$ sudo systemctl daemon-reload
$ sudo systemctl start graylog-server.service
如果要把 Graylog Server 服务加入随系统启动,可以执行以下命令:
$ sudo systemctl enable graylog-server.service
访问 Graylog Web
使用浏览器访问 http://your_ip_or_doamin:9000,能成功看到如下界面则表示安装成功。默认用户名为:admin,密码为:root_password_sha2 参数中设置的。
创建 Syslog UDP 输入
Ubuntu 系统自带 Rsyslog 服务无需安装,只需要配置一下即可。
打开 Graylog Web 页面,选择 System->Inputs->Syslog UDP->Launch new input,添加一个要接收 Syslog 日志的服务器。
在弹出的窗口上输入如下信息:
Title: Linux Server Logs
Port: 8514
Bind address: 0.0.0.0
点击 Save
配置完成后就生成了一个监听在 8514 端口上的 Syslog 服务端,下面可以用它来收集其它服务器上的日志。
本次测试采用同一台服务器做演示,所以绑定到所有网卡接口。如只在特定网络中访问,请按实际情况填写 Bind address 的 IP 地址。
现在,我们的 Graylog Server 服务器已经做好了接收其它服务器发来日志的准备。下面我们还需要配置需收集日志服务器,让这些服务器给 Graylog Server 服务器发送日志。
创建 rsyslog 配置文件 /etc/rsyslog.d/90-graylog.conf。
如果你的 rsyslog 版本 > 5.10,请按以下格式配置:
*.* @graylog_server_ip:8514;RSYSLOG_SyslogProtocol23Format
如果你的 rsyslog 版本 < 5.10,请按以下格式配置:
$template GRAYLOGRFC5424,"<%PRI%>%PROTOCOL-VERSION% %TIMESTAMP:::date-rfc3339% %HOSTNAME% %APP-NAME% %PROCID% %MSGID% %STRUCTURED-DATA% %msg%n"
*.* @graylog_server_ip:8514;GRAYLOGRFC5424
注:把 graylog_server_ip 替换为 Graylog 服务器 IP 地址。
我这里使用的是 rsyslog 8.16 版本,修改后类似下面:
$ sudo vim /etc/rsyslog.d/90-graylog.conf
*.* @192.168.100.212:8514;RSYSLOG_SyslogProtocol23Format
重启 rsyslog 服务使生效
$ sudo systemctl restart rsyslog
配置完成之后,回到 Graylog Web,点击 Sources,查看是否有新添加 Rsyslog 来源的图形。
在 Graylog Web 上,点击 Search 可以访问 Graylog 搜索页面。 在这里可以根据条件查询指定的日志。
假如你要搜索 ssh 的活动日志,输入关键字 sshd,点搜索图标:
ssh
ssh login
"ssh login"
type:ssh
type:(ssh login)
type:"ssh login"
更详细搜索语法可参考官方文档:
http://docs.graylog.org/en/2.3/pages/queries.html
到此为止,就完成了一个基本的可以从其它服务器收集日志的 Graylog 服务器部署。当然 Graylog 还提供了其它一系列的丰富功能,比如仪表板、警报和流等功能,期待我们下次进一步的探索吧。
在虚拟机中使用centos的时候,经常进行挂起等操作,这样导致时间经常不准确,于是进行自动时间同步的设置,服务器同理。
安装ntpdate
yum install ntp
安装完成后,无需其他配置,直接执行
ntpdate time.nist.gov
如果出现以下内容,说明同步成功了。
15 Jan 11:40:25 ntpdate[804]: adjust time server 132.163.4.101 offset 0.093992 sec
然后在crontab里面加上以下内容
*/10 * * * * ntpdate time.nist.gov #域名或IP
在开发中,需要经常频繁的对测试服务器进行部署,而且在多人协同中开发经常遇到的问题就是别人更新了他的代码,而你去更新你的代码时并没有更新到别人的代码,导致测试环境的代码不是最新,当然这个问题也好解决,那就是每次更新的时候先获取版本控制器上面的代码,然后更新,当然每次这样操作都是耗时耗力的,如果是整个项目更新,一般项目至少3、40M上传到服务器也需要一定的时间,而部分更新,也需要找到指定的文件或者整个代码覆盖,然后重启服务器(Tomcat里面直接覆盖class虽然可以配置热加载,但是容易内存溢出),就我工作中的情况而言,是每次都需要先把代码上传到服务器-解压-找到Tomcat进程id(Linux)-kill线程-启动Tomcat,每次下来就需要最少几分钟时间,而且每天有可能多次部署,所以对整个工作效率是有一定影响的。正是因为以上种种,所以才有了本文,而本文最终的结果就是一旦代码上传到Git或者svn的时候,代码能自动部署到服务器上面去,这样我们就只需要吧正确的代码提交的版本控制器,就不用理会服务器的更新了。
Jenkins是基于Java开发的一种持续集成工具,用于监控持续重复的工作,功能包括:
监控外部调用执行的工作。
Jenkins能做的东西有很多,不过本文只介绍一个简单的自动编译打包部署,首先下载Jenkins,推荐下载war包, 下载地址: https://jenkins.io/download/
配置jdk+tomcat: http://www.okay686.cn/628.html
关闭selinux 以及 firewall 服务。
本文是基于Centos 7,war环境部署的,把下载好的war文件直接放到Tomcat中,然后启动Tomcat,启动成功后访问tomcat的jenkins项目如:
war包下载: http://mirrors.jenkins.io/war-stable/latest/jenkins.war
http://192.168.96.129:8080/jenkins 会看到以下界面:
注意红色框中的红色文字,那个是初始密码的路径,直接根据路径找到initialAdminPassword文件并打开,把密码复制出来,输入到页面中点击continue按钮,进入下一步: ( /root/.jenkins/secrets/initialAdminPassword )
Jenkins拥有很多插件,一般在开始我们并不清楚需要什么插件的时候,可以选择自定义安装,把所有基本的插件全部安装好,此页面第一个按钮是安装推荐插件,第二个是自己选择安装,这里我选择第二个按钮。
此界面是初始化安装插件的界面,先选择All插件,然后点击install
在这个界面需要多等一下,因为是在网上下载插件,而且是外国的网站,所以经常有下载失败的情况,最好打开V梯P子N,当所有插件安装完成后会有continue按钮出现,如果没有则刷新一下页面,当然也可能存在有插件安装失败,根据自己是否需要自行选择retry或continue,这里因为我的都已经安装完成了,所以进入到了下一个页面.
在此页面设置用户名和密码,记得点击save and finish按钮,如果选择了Continue as admin,会把用户名重置admin,然后密码也是你设置的密码,而是初始化文件中的密码,设置完成之后的页面.
点击Start using Jenkins 即可
Jenkins主界面
创建项目之前先要对Jenkins进行基本的配置,比如jdk的目录,git命令的目录和maven的目录等等
首先点击 系统管理
进入管理页面后如图:
点击 Global Tool Configuration 进入插件配置页面
(不晓得安装位置,好办,打开 vim /etc/profile 就可以找到!)
点击新增JDK按钮,会显示jdk配置form,如果电脑上已经安装了jdk则可以去掉自动安装,不过如果是用Tomcat运行的Jenkins那么是肯定已经安装了的,这里我们只需要配置好 jdk别名 和 JAVA_HOME 即可
需要将git的正确路径配置到Path to Git executable中。
跟jdk相同,配置好名字和路径即可,当然也可以选择自动安装,不过还是推荐手动安装然后配置,配置好了之后点击save即可
当然还有现在很火的Gradle (有空写个教程,在此,我没有配置)
由于新版默认没有将war部署到Tomcat的插件,所以需要手动安装,在系统管理中选择管理插件,再选择可选插件,搜索 Deploy to Container Plugin ,然后勾选点击直接安装
点击开始创建一个新任务进入任务创建页面:
先输入项目名字,然后选择构建一个maven项目,最后点击ok按钮
页面中找到源码管理模块,根据项目使用的版本控制器选择,如我们使用的git,则选择git
如果是git的话,可以直接通过GitLab(WebHooks)来实现触发,这样你每次提交到配置编译的分支就会git就会通知,不过目前我知道的是git.oschina.NET的钩子没有作用,当然如果不是git或者钩子没有作用的时候,可以用最简单的,定时查询。
这样是每10分钟查询一次,如果有更新就构建,具体Poll SCM的参数可以百度,那里更加详细
编译命令我们可以直接配置最简单的命令编译:
选择Execute shell,在出来的界面中配置maven命令就行了,比如
mvn install
点击新增构建后操作,选择 Deploy war/ear to a container ,然后配置 WAR/EAR files ,这个war的地址,一般都 target/xxx.war ,xxx是war的文件名。
然后点击Add Container,添加Tomcat服务器:
配置好Tomcat的管理员用户和密码以To及mcat的访问地址就ok了,这样只要你上传了代码,并且是配置编译的分支,一般过几分钟就会自动编译然后部署到Tomcat中了,当然最好还是用git,然后通过GitLab实现,这样不仅不用每隔几分钟查询一次,而且延迟很小!!
这篇文章主要给大家介绍了关于在Centos 6中编译配置httpd2.4的多种方法,文中分别利用了分别编译法和一次编译法两种方法实现,文中将实现的方法一步步介绍的非常详细,需要的朋友可以参考借鉴,下面来一起看看吧。
我们使用linux的过程中,一定会用到httpd这个服务,在centos7上,默认安装的httpd就是2.4版本,大家都知道,2.4版本相对之前的版本已经做了改进,用起来更加方便,但是我们的centos6上,默认安装的版本是2.2,那么,如果我们想要在centos6上安装httpd2.4版本的话,我们要如何做呢?
本文中,小编会给大家介绍两种方法,来实现在centos6上编译安装httpd2.4版本。
我们可以使用yum info httpd和yum info apr来查看这两个服务的官网,然后我们去官网下载最新的稳定版本:
下面附上官网地址:
httpd官网:http://httpd.apache.org/
apr官网:http://apr.apache.org/
我们可以去官网下载最新的稳定版本,这里,小编下载的是apr-1.6.2.tar.gz,apr-util-1.6.0.tar.gz,httpd-2.4.28.tar.bz2,接下来的实验,就以小编下载的版本为示范,给大家演示如何安装。
我们使用rz命令,将我们下载好的源码包上传至我们的centos6虚拟机,我们可以查看一下:
[root@centos6 temp]# ll
total 8004
-rw-r--r-- 1 root root 1071074 Sep 29 12:27 apr-1.6.2.tar.gz
-rw-r--r-- 1 root root 565507 Sep 29 12:27 apr-util-1.6.0.tar.gz
-rw-r--r-- 1 root root 6553163 Oct 15 12:35 httpd-2.4.28.tar.bz2
接下来就是解压缩:
tar xvf httpd-2.4.28.tar.bz2
tar xvf apr-util-1.6.0.tar.gz
tar xvf apr-1.6.2.tar.gz
解压缩以后,我们照例查看一下:
[root@centos6 temp]# ls
apr-1.6.2 apr-1.6.2.tar.gz apr-util-1.6.0
apr-util-1.6.0.tar.gz httpd-2.4.28 httpd-2.4.28.tar.bz2
我们发现,现在已经有了三个文件夹,该步骤完成。
在编译安装开始之前,我们要先把所依赖的包组安装上,不然在接下来的编译安装过程中会出错。
安装命令如下:
yum groupinstall "development tools" -y
yum install pcre-devel -y
yum install openssl-devel -y
yum install expat-devel -y
安装成功后,我们就可以对apr的分别编译了。
我们对apr-1.6.2进行编译安装,首先要保证我们所有的操作都是在该文件夹内进行的!
首先,我们进入目录
[root@centos6 temp]# cd apr-1.6.2/
[root@centos6 apr-1.6.2]# ls
apr-config.in CMakeLists.txt libapr.mak poll
apr.dep config.layout libapr.rc random
apr.dsp configure LICENSE README
apr.dsw configure.in locks README.cmake
apr.mak docs Makefile.in shmem
apr.pc.in dso Makefile.win strings
apr.spec emacs-mode memory support
atomic encoding misc tables
build file_io mmap test
buildconf helpers network_io threadproc
build.conf include NOTICE time
build-outputs.mk libapr.dep NWGNUmakefile tools
CHANGES libapr.dsp passwd user
然后我们对其进行编译安装即可:
[root@centos6 apr-1.6.2]# ./configure --prefix=/app/apr
[root@centos6 apr-1.6.2]# make && make install
编译的命令很简单,只需要指定一个目录,要记住这个目录0.0,接下来我们还会用到。
编译安装完成后,我们来查看一下/app目录,看是不是已经生成了apr这个文件夹:
[root@centos6 apr-1.6.2]# ls /app/
apr
可以看到已经有了这个文件夹,所以这一步骤我们完成。
跟上一步骤很是相似,但是有一个需要注意的地方就是,编译apr-util-1.6.0的时候,需要依赖apr-1.6.2包,所以还要跟上apr-1.6.2的目录。下面我们就来说说具体操作。
首先,我们还是也要进入该目录下:
[root@centos6 temp]# cd apr-util-1.6.0
[root@centos6 apr-util-1.6.0]# ls
aprutil.dep configure.in Makefile.win
aprutil.dsp crypto memcache
aprutil.dsw dbd misc
aprutil.mak dbm NOTICE
apr-util.pc.in docs NWGNUmakefile
apr-util.spec encoding README
apu-config.in export_vars.sh.in README.cmake
buckets hooks README.FREETDS
build include redis
buildconf ldap renames_pending
build.conf libaprutil.dep strmatch
build-outputs.mk libaprutil.dsp test
CHANGES libaprutil.mak uri
CMakeLists.txt libaprutil.rc xlate
config.layout LICENSE xml
configure Makefile.in
接着,我们就可以对它进行编译安装了,注意,编译时的代码与刚刚略有不同,需要加上apr-1.6.2的目录:
[root@centos6 apr-util-1.6.0]# ./configure --prefix=/app/apr-util --with-apr=/app/apr/
[root@centos6 apr-util-1.6.0]# make && make install
编译的命令很简单,只需要指定一个目录,要记住这个目录0.0,接下来我们还会用到。
编译安装完成后,我们来查看一下/app目录,看是不是已经生成了apr-util这个文件夹:
[root@centos6 apr-1.6.2]# ls /app/
apr apr-util
可以看到已经有了这个文件夹,所以这一步骤我们完成。
同样的,首先我们要进入这个目录:
[root@centos6 temp]# cd httpd-2.4.28/
[root@centos6 httpd-2.4.28]# ls
ABOUT_APACHE docs Makefile.win
acinclude.m4 emacs-style modules
Apache-apr2.dsw httpd.dep NOTICE
Apache.dsw httpd.dsp NWGNUmakefile
apache_probes.d httpd.mak os
ap.d httpd.spec README
build include README.cmake
BuildAll.dsp INSTALL README.platforms
BuildBin.dsp InstallBin.dsp ROADMAP
buildconf LAYOUT server
CHANGES libhttpd.dep srclib
CMakeLists.txt libhttpd.dsp support
config.layout libhttpd.mak test
configure LICENSE VERSIONING
configure.in Makefile.in
接着,我们就进行编译安装,编译的命令有些长,大家写的时候要注意不要少写了东西,不然就会报错报错报错!或者就像小编这样,把代码分行写,但是一定要加符号才可以诺。
[root@centos6 httpd-2.4.28]#./configure --prefix=/app/httpd24
> --enable-so
> --enable-ssl
> --enable-cgi
> --enable-rewrite
> --with-zlib
> --with-pcre
> --with-apr=/app/apr/
> --with-apr-util=/app/apr-util/
> --enable-modules=most
> --enable-mpms-shared=all
> --with-mpm=prefork
[root@centos6 httpd-2.4.28]# make && make install
至此,编译安装的步骤全部结束。我们可以来测试了
首先,我们先来查看一下,我们的80端口是否处于没有开启的状态
[root@centos6 ~]# ss -tnl
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 128 :::22 :::*
LISTEN 0 128 *:22 *:*
LISTEN 0 128 127.0.0.1:631 *:*
LISTEN 0 128 ::1:631 :::*
LISTEN 0 100 ::1:25 :::*
LISTEN 0 100 127.0.0.1:25 *:*
可以看出我们的80端口并未开启,强烈建议大家一定要查看,如果我们之前的机器上装过httpd服务,就把他卸载,至少至少也要停止服务,保证我们的80端口是关闭的状态,不然我们新安装的2.4版本是启动不起来的!
接着,我们进入/app/httpd24/bin/这个目录,把服务开启一下:
[root@localhost ~]# cd /app/httpd24/bin/
[root@localhost bin]# ./apachectl start
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using localhost.localdomain. Set the 'ServerName' directive globally to suppress this message
现在,我们再来查看一下端口开启情况:
[root@localhost bin]# ss -tnl
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 128 :::80 :::*
LISTEN 0 128 :::22 :::*
LISTEN 0 128 *:22 *:*
LISTEN 0 128 127.0.0.1:631 *:*
LISTEN 0 128 ::1:631 :::*
LISTEN 0 100 ::1:25 :::*
LISTEN 0 100 127.0.0.1:25 *:*
可以看出,我们的80端口已经开启,接着我们就可以用其他的机器来测试一下了:
我们在centos7上使用curl命令来测试:
[root@centos7 ~]# curl 192.168.191.128
<html><body><h1>It works!</h1></body></html>
测试成功。
至此,我们的实验已经圆满完成,已经成功的在centos6上安装上了httpd2.4版本。
在上一个实验中,我们使用分别编译的方法把httpd2.4版本安装到了centos6上,但是分别编译的方法还是略有麻烦,那有没有一次就可以完成编译的方法呢?小编很负责任的告诉你,当然是有的!接下来我们就来看一看如何才能一次编译安装所有的东西~
我们可以使用yum info httpd和yum info apr来查看这两个服务的官网,然后我们去官网下载最新的稳定版本:
下面附上官网地址:
httpd官网:http://httpd.apache.org/
apr官网:http://apr.apache.org/
我们可以去官网下载最新的稳定版本,这里,小编下载的是apr-1.6.2.tar.gz,apr-util-1.6.0.tar.gz,httpd-2.4.28.tar.bz2,接下来的实验,就以小编下载的版本为示范,给大家演示如何安装。
我们使用rz命令,将我们下载好的源码包上传至我们的centos6虚拟机,我们可以查看一下:
[root@centos6 temp]# ll
total 8004
-rw-r--r-- 1 root root 1071074 Sep 29 12:27 apr-1.6.2.tar.gz
-rw-r--r-- 1 root root 565507 Sep 29 12:27 apr-util-1.6.0.tar.gz
-rw-r--r-- 1 root root 6553163 Oct 15 12:35 httpd-2.4.28.tar.bz2
该步骤完成。
在编译安装开始之前,我们要先把所依赖的包组安装上,不然在接下来的编译安装过程中会出错。
安装命令如下:
yum groupinstall "development tools" -y
yum install pcre-devel -y
yum install openssl-devel -y
yum install expat-devel -y
安装成功后,我们就可以对apr的分别编译了。
第一步中,我们已经把源码上传到了我们的虚拟机上,但是还没有进行任何操作,这一步骤中,我们就需要把源码进行解压缩,并放入指定的文件夹中,来创造一次编译安装的条件,具体操作如下:
首先,对三个包分别进行解压:
tar xvf httpd-2.4.28.tar.bz2
tar xvf apr-util-1.6.0.tar.gz
tar xvf apr-1.6.2.tar.gz
解压完成后,我们把xvf apr-1.6.2.tar.gz和apr-util-1.6.0.tar.gz分别复制到httpd-2.4.28.tar.bz2这个目录下的指定文件夹中并改名字:
[root@centos6 temp]# cp -a apr-1.6.2 httpd-2.4.28/srclib/apr
[root@centos6 temp]# cp -a apr-util-1.6.0 httpd-2.4.28/srclib/apr-util
[root@centos6 temp]# ls httpd-2.4.28/srclib/
apr apr-util Makefile.in
我们可以看出,在httpd-2.4.28/srclib/目录下已经有了apr和apr-util这两个文件夹了。本步骤完成。
准备工作都做好了,接下来就是编译安装了。
一样的,需要先进入到httpd-2.4.28/这个目录下。由于代码很长,希望大家仔细仔细再仔细,或者像小编一样分行写:
[root@centos6 temp]# cd httpd-2.4.28
[root@centos6 httpd-2.4.28]# ./configure --prefix=/app/httpd24
--enable-so
--enable-ssl
--enable-cgi
--enable-rewrite
--with-zlib
--with-pcre
--with-included-apr
--enable-modules=most
--enable-mpms-shared=all
--with-mpm=prefork
[root@centos6 httpd-2.4.28]# make -j 4 && make install
安装的make -j 4 && make install这一行代码意思是开启4个进程同时工作,进行安装,这样速度比较快一些。
以上,编译安装完成,接着,我们可以进行测试,并进行一些配置的修改。
首先,进入/app/httpd24这个文件夹,查看一下内容:
[root@centos6 httpd24]# ls
bin build cgi-bin conf error htdocs icons include lib logs man manual modules
上一个实验我们是进入bin/目录下,然后使用apachectl来启动我们的服务的,但是如果每次都这样启动服务,无疑很麻烦,因为要加上路径,所以我们干脆把这个路径设置到PATH变量里面,这样我们使用服务就会变得比较方便,具体操作如下:
[root@centos6 bin]# vim /etc/profile.d/httpd24.sh
PATH=/app/httpd24/bin:$PATH
然后我们运行一下使它生效:
[root@centos6 bin]# . /etc/profile.d/httpd24.sh
现在我们在任意页面都可以启动我们的服务。
[root@centos6 bin]# apachectl start
我们现在可以在另一台机器上测试一下我们的服务:
[root@centos7 ~]# curl 192.168.191.128
<html><body><h1>It works!</h1></body></html>
我们的页面是保存在/app/httpd24/htdocs/这个文件夹里的,我们也可以根据自己的需要,把这个页面修改一下~:
[root@centos6 httpd24]# cd htdocs/
[root@centos6 htdocs]# ls
index.html
[root@centos6 htdocs]# vim index.html
<html><body><h1>Welcome to keer'home!</h1></body></html>
然后我们再去centos7上查看一下:
[root@centos7 ~]# curl 192.168.191.128
<html><body><h1>Welcome to keer'home!</h1></body></html>
已经是我们修改过后的样子了。
当然,我们还是希望能够写成服务脚本,这样的话,我们使用起来就更加便利,现在我们的服务已经启动起来了,我们可以用ps aux来查看一下:
[root@centos6 htdocs]# ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.0 19348 1560 ? Ss 00:22 0:01 /sbin/init
root 2 0.0 0.0 0 0 ? S 00:22 0:00 [kthreadd]
……
daemon 35258 0.0 0.0 76416 1436 ? S 00:53 0:00 /app/httpd24/bin/httpd -k start
daemon 35259 0.0 0.0 76416 1436 ? S 00:53 0:00 /app/httpd24/bin/httpd -k start
daemon 35260 0.0 0.1 76416 2104 ? S 00:53 0:00 /app/httpd24/bin/httpd -k start
daemon 35261 0.0 0.1 76416 2084 ? S 00:53 0:00 /app/httpd24/bin/httpd -k start
daemon 35262 0.0 0.1 76416 2084 ? S 00:53 0:00 /app/httpd24/bin/httpd -k start
daemon 35264 0.0 0.0 76416 1440 ? S 00:54 0:00 /app/httpd24/bin/httpd -k start
root 35326 13.0 0.0 110260 1152 pts/0 R+ 01:22 0:00 ps aux
在这里我们又发现了一个问题,此时的httpd是以daemon的身份运行的,我们当然是希望它是由apache的身份来运行,所以我们可以来修改一下:
我们先来查看一下apache这个用户是否存在:
[root@centos6 htdocs]# id apache
uid=48(apache) gid=48(apache) groups=48(apache)
如果不存在的话,我们可以使用useradd -r apache来创建,因为apache是系统的服务用的账号,所以需要加上-r
然后我们就可以来修改配置文件了,配置文件在/app/httpd24/conf/这个文件夹里,我们进去并把文件修改一下:
[root@centos6 ~]# cd /app/httpd24/conf/
[root@centos6 conf]# ls
extra httpd.conf magic mime.types original
[root@centos6 conf]# vim httpd.conf
打开这个文件以后,我们把:
User daemon
Group daemon
改成这样:
User apache
Group apache
这样就可以了,我们现在把服务停止,重新打开,然后再用ps aux来查看一下:
[root@centos6 conf]# apachectl stop
[root@centos6 conf]# apachectl start
[root@centos6 conf]# ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.0 19348 1560 ? Ss 00:22 0:01 /sbin/init
root 2 0.0 0.0 0 0 ? S 00:22 0:00 [kthreadd]
……
apache 35352 0.0 0.0 76416 1436 ? S 01:33 0:00 /app/httpd24/bin/httpd -k start
apache 35353 0.0 0.0 76416 1436 ? S 01:33 0:00 /app/httpd24/bin/httpd -k start
apache 35354 0.0 0.0 76416 1436 ? S 01:33 0:00 /app/httpd24/bin/httpd -k start
apache 35355 0.0 0.0 76416 1436 ? S 01:33 0:00 /app/httpd24/bin/httpd -k start
apache 35356 0.0 0.0 76416 1436 ? S 01:33 0:00 /app/httpd24/bin/httpd -k start
root 35357 3.0 0.0 110260 1152 pts/0 R+ 01:33 0:00 ps aux
这样,我们的httpd就是以apache的身份来运行的了。
当然,我们还可以直接做成服务,服务脚本也不需要我们自己写,直接把系统自带的httpd的服务脚本复制一份,修改一下就可以了,具体操作步骤如下:
[root@centos6 ~]# cd /etc/init.d
[root@centos6 init.d]# ls
abrt-ccpp cpuspeed htcacheclean lvm2-monitor ntpd rdma spice-vdagentd winbind
abrtd crond httpd mdmonitor ntpdate restorecond sshd wpa_supplicant
abrt-oops cups ip6tables messagebus portreserve rngd svnserve
acpid dnsmasq iptables netconsole postfix rsyslog sysstat
atd firstboot irqbalance netfs pppoe-server sandbox udev-post
auditd functions kdump network psacct saslauthd vmware-tools
blk-availability haldaemon killall NetworkManager quota_nld single vmware-tools-thinprint
bluetooth halt lvm2-lvmetad nfs-rdma rdisc smartd wdaemon
[root@centos6 init.d]# cp httpd httpd24
[root@centos6 init.d]# vim httpd24
文件里上面的内容不需要改动,我们只需要修改一下路径就可以了,也就是把
# Path to the apachectl script, server binary, and short-form for messages.
apachectl=/usr/sbin/apachectl
httpd=${HTTPD-/usr/sbin/httpd}
prog=httpd
pidfile=${PIDFILE-/var/run/httpd/httpd.pid}
lockfile=${LOCKFILE-/var/lock/subsys/httpd}
RETVAL=0
STOP_TIMEOUT=${STOP_TIMEOUT-10}
修改为:
# Path to the apachectl script, server binary, and short-form for messages.
apachectl=/app/httpd24/bin/apachectl
httpd=${HTTPD-/app/httpd24/bin/httpd}
prog=httpd
pidfile=${PIDFILE-/app/httpd24/logs/httpd.pid}
lockfile=${LOCKFILE-/var/lock/subsys/httpd24}
RETVAL=0
STOP_TIMEOUT=${STOP_TIMEOUT-10}
然后保存退出就可以了。
接下来,就可以把这个服务添加到服务列表里了:
[root@centos6 init.d]# chkconfig --add httpd24
[root@centos6 init.d]# chkconfig httpd24 on
[root@centos6 init.d]# chkconfig --list httpd24
httpd24 0:off 1:off 2:on 3:on 4:on 5:on 6:off
这样,我们的httpd2.4版本就可以通过service来控制了。
至此,我们的服务的主要功能就实现了。
我们的实验圆满完成。
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对脚本之家的支持。
ngrok 是一款用 go 语言开发的开源软件,它是一个反向代理,通过在公共的端点和本地运行的 Web 服务器之间建立一个安全的通道.ngrok 可以做 TCP 端口转发,对于 Linux 可以将其映射到 22 端口进行 SSH 连接,Windows 的远程桌面可以将其映射到 3389 端口来实现.同理,如果要做 MySQL 的远程连接,只需映射 3306 端口即可. 最重要的是可以本地调试微信开发,极其方便
编译客户端及服务器时要注意系统是32位和64位,不能编译错了,否则将无法使用.
除了ngrok是需要git下来安装 其他都通过yum安装(方便管理)
域名设置
假设你的域名是xxx.com,服务器地址是123.123.123.123则你需要解析2条A记录值到服务器
这样就可以任意二级域名就是作为你ngrok客户端的地址了
如果想使用二级域名则解析以下2个A记录值到服务器,假设你想使用的二级域名是ngrok.xxx.com
这样 子域名.ngrok.xx.com的三级域名就是作为你ngrok客户端的地址了
说明:
主机记录就是域名前缀,常见用法有:
www:解析后的域名为www.aliyun.com。
@:直接解析主域名 aliyun.com。
*:泛解析,匹配其他所有域名 *.aliyun.com。
mail:将域名解析为mail.aliyun.com,通常用于解析邮箱服务器。
二级域名:如:abc.aliyun.com,填写abc。
手机网站:如:m.aliyun.com,填写m。
显性URL:不支持泛解析(泛解析:将所有子域名解析到同一地址)
我使用的是二级域名解析 也就是ngrok.xxx.com
下载常用依赖库
yum -y install zlib-devel openssl-devel perl hg cpio expat-devel gettext-devel curl curl-devel perl-ExtUtils-MakeMaker hg wget gcc gcc-c++
安装go和git
yum -y install go git
我的是centos7.2 yum安装下来的git版本是1.8.3.1 go版本是1.8.3
要注意git版本必须大于1.7.9,go版本必须大于1.4,否则可能有意想不到的错误
个人习惯安装到/usr/local/目录下 如果你想安装到其他目录 则进入你想安装的目录
cd /usr/local/
git clone https://github.com/inconshreveable/ngrok.git ngrok
cd ngrok #进入ngrok目录,后面操作都是在ngrok目录下完成!
#生成并替换源码里默认的证书,注意域名要修改为你自己的,这里是一个虚拟的测试域名
NGROK_DOMAIN="ngrok.xxx.com"
#测试一下有没有设置成功
echo $NGROK_DOMAIN #输出ngrok.xxx.com表示成功
openssl genrsa -out rootCA.key 2048
openssl req -x509 -new -nodes -key rootCA.key -subj "/CN=$NGROK_DOMAIN" -days 5000 -out rootCA.pem
openssl genrsa -out device.key 2048
openssl req -new -key device.key -subj "/CN=$NGROK_DOMAIN" -out device.csr
openssl x509 -req -in device.csr -CA rootCA.pem -CAkey rootCA.key -CAcreateserial -out device.crt -days 5000
之后会在 ngrok 目录下生成 root,device 等六个文件。 然后需要拷贝到配置的目录中,在编译的时候会使用这些文件。
cp -r rootCA.pem assets/client/tls/ngrokroot.crt
cp -r device.crt assets/server/tls/snakeoil.crt
cp -r device.key assets/server/tls/snakeoil.key
到这个地方,证书生成已经复制的准备工作就已经完成了。
make release-server
这样就会在bin目录下生成ngrokd 这个文件,就是我们ngrok的服务器程序
64位linux客户端: GOOS=linux GOARCH=amd64 make release-client
32位windows客户端: GOOS=windows GOARCH=386 make release-client
64位windows客户端: GOOS=windows GOARCH=amd64 make release-client
32位mac平台客户端:GOOS=darwin GOARCH=386 make release-client
64位mac平台客户端:GOOS=darwin GOARCH=amd64 make release-client
ARM平台linux客户端: GOOS=linux GOARCH=arm make release-client
我这里是64位linux和64位windows客户端编译
GOOS=linux GOARCH=amd64 make release-client
GOOS=windows GOARCH=amd64 make release-client
依次执行这2个命令之后就会在bin目录里面生成所有的客户端文件,客户端平台是文件夹的名字,客户端放在对应的目录下,当前Linux平台客户端就直接在bin目录下一个ngrok的程序
httpsAddr 是访问的https使用的端口号,同上,只不过是需要https的服务访问才用这个端口(一般用不上)
tunnelAddr 是ngrok通道的端口号,这个端口是Ngrok用来通信的,所以这个端口在服务器上和客户端上设置必须要对应才可以正常的链接,默认端口是4443
完整命令
bin/ngrokd -domain="$NGROK_DOMAIN" -httpAddr=":80" -httpsAddr=":443" -tunnelAddr=":4443"
我使用的
bin/ngrokd -domain="$NGROK_DOMAIN" -httpAddr=":80"
其中NGROK_DOMAIN对应的就是一开始设置过的域名地址。
要注意我这里使用的是80端口。要确保服务器上没有apache或nginx占用80端口,后面会介绍使用其他端口的方式
首先先把bin目录下windows_amd64文件夹ftp或者sftp传到windows下并进入
然后新建一个 ngrok.cfg,在里面填写以下内容
server_addr: "ngrok.xxx.com:4443"
trust_host_root_certs: false
server_addr地址和服务器设置的 NGROK_DOMAIN=”ngrok.xxx.com” 中的地址保持一致,如果你服务器启动的时候设置了tunnelAddr端口则把4443也改成你设置的端口
启动客户端
完整命令
ngrok.exe -log=ngrok_log.txt -subdomain=test -config="ngrok.cfg" 80
我的命令
ngrok.exe -subdomain=test -config="ngrok.cfg" 80
子域名: -subdomain=test 是定义访问的时候的子域名,现在访问 test.ngrok.xxx.com 就可以访问到这一台机器上80端口的服务
ngrok
Tunnel Status online
Version 1.7/1.7
Forwarding https://test.ngrok.xxx.com -> 127.0.0.1:80
Forwarding http://test.ngrok.xxx.com -> 127.0.0.1:80
Web Interface 127.0.0.1:4040
# Conn 0
Avg Conn Time 0.00ms
online是绿色的 表示连接成功!
到这里不出意外的话就会启动成功了,访问test.ngrok.xxx.com的时候就是你本地的ip了.你可以通过apache或nginx配置test.ngrok.xxx.com域名指定你的目录开始使用啦~
你可以访问127.0.0.1:4040来看到所有对test.ngrok.xxx.com的请求~
停止firewall服务
systemctl stop firewalld.service
禁止firewall开机启动
systemctl disable firewalld.service
1、关闭防火墙:
systemctl stop firewalld.service
2、开启防火墙:
systemctl start firewalld.service
3、关闭开机启动:
systemctl disable firewalld.service
4、开启开机启动:
systemctl enable firewalld.service
中午一客户的ssl证书到期了,
原本以为照着之前设定好的计划任务脚本执行一次,
就可以顺利地把letsencrypt的证书续期,
谁曾想。。。
本想温柔地进入,却一搞就是差不多4个小时!!
一下掉坑里了!
先贴执行续期命令后的报错截图:
CentOS 6.5 certbot-auto renew找不到argparse==1.4.0
首先我们来仔细看这个错误输出,
不但指出了错误原因,还给出了解决方法,以及参考文档,
看来certbot官方的同学没少做工作。
错误原因
No matching distribution found for argparse==1.4.0
建议的解决办法(小坑)
You are using pip version 8.0.3, however version 9.0.1 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
更多的参考资料
Consult https://certbot.eff.org/docs/install.html#problems-with-python-virtual-environment
for possible solutions.
看看这个参考页面打开后的截图:
内存不够,增加swap交换分区
作者特意用红色文字标出与这种情况相对应的错误提示:
internal compiler error: Killed (program cc1)
看来我可以跳过了(不过因为服务器没有配置swap分区,看内存剩余也不多了,就顺便配置了一个)。
百度、谷歌了一圈,汇总三种解决办法如下(看来我遇到的是第四种)
创建swap分区并启用(跟官方参考文档中的方法一致)
修改~/.pip/pip.conf,一种直接改名,另一种修改里面的源地址为另一个,说阿里云的源非最新的
上述三种都尝试了,先把python从2.6.6升级到Python-2.7.11,
然后从python官网下载安装了如下几个所需的扩展:
argparse-1.4.0
pip-9.0.1
virtualenv-15.1.0
然并卵,执行certbot-auto renew命令报错依然。。
而且明明pip -V都说已经是最新的9.0.1版本了:
pip 9.0.1 from /usr/bin/lib/python2.7/site-packages/pip-9.0.1-py2.7.egg (python 2.7)
会不会是certbot-auto脚本里用的pip版本不是9.01?
于是抱着死马当活马医的心态,
打开certbot-auto脚本,按斜杠搜索pip-8,一搜不打紧,还真的搜到一句:
如图:
certbot-auto脚本中写死了pip版本
虽然不是太懂python,但是看的出来它是要下载这个压缩包下来然后安装用。
于是果断到python官网找了最新的pip-9.0.1版的下载地址,
注释掉原来两句,替换为上图框出来的部分,
保存,重新执行renew更新ssl证书命令,经过漫长的一两分钟的等待。。。
看到一个“Congratulations”,赶紧重启nginx:
/usr/sbin/nginx -s reload
down机近4小时的https接口服务终于恢复了!!
总结爬坑技巧
末了,
觉得有必要进一步了解下python,
尤其是pip的结合,魅力非凡!
Zabbix 3.4 支持Centos 7。貌似不支持6.9.
更多详细内容请参考官方说明文档,详细的安装要求不贴出来了。
https://www.zabbix.com/documentation/3.4/zh/manual/installation/requirements
虚拟机配置 双核 8G内存
sudo yum -y update
sudo sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config
sudo systemctl stop firewalld.service && systemctl disable firewalld.service
完成3、4两步,重启一下。
sudo rpm -Uvh https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm
可以从https://dev.mysql.com/downloads/file/?id=470281下载
先装mysql
sudo yum install mysql-* --skip-broken 有冲突的软件跳过
安装Apache
sudo yum -y install httpd
systemctl start httpd.service #启动
systemctl stop httpd.service #停止
systemctl restart httpd.service #重启
systemctl enable httpd.service #开机启动
systemctl disable httpd.service #开机不启动
安装php
sudo yum install php
安装php扩展
sudo yum install php-mysqlnd php-gd libjpeg* php-snmp php-ldap php-odbc php-pear php-xml php-xmlrpc php-mbstring php-bcmath php-mhash php-common php-ctype php-xml php-xmlreader php-xmlwriter php-session php-mbstring php-gettext php-ldap php-mysqli --skip-broken
sudo yum install wget telnet net-tools python-paramiko gcc gcc-c++ dejavu-sans-fonts python-setuptools python-devel sendmail mailx net-snmp net-snmp-devel net-snmp-utils freetype-devel libpng-devel perl unbound libtasn1-devel p11-kit-devel OpenIPMI unixODBC
sudo vim /etc/my.cnf 不然没权限保存
在文件最后添加以下内容:
innodb_file_per_table = 1
innodb_status_file = 1
innodb_buffer_pool_size = 6G
innodb_flush_log_at_trx_commit = 2
innodb_log_buffer_size = 16M
innodb_log_file_size = 64M
innodb_support_xa = 0
default-storage-engine = innodb
bulk_insert_buffer_size = 8M
join_buffer_size = 16M
max_heap_table_size = 32M
tmp_table_size = 32M
max_tmp_tables = 48
read_buffer_size = 32M
read_rnd_buffer_size = 16M
key_buffer_size = 32M
thread_cache_size = 32
innodb_thread_concurrency = 8
innodb_flush_method = O_DIRECT
innodb_rollback_on_timeout = 1
query_cache_size = 16M
query_cache_limit = 16M
collation_server = utf8_bin
character_set_server = utf8
注:原则上 innodb_buffer_pool_size 需要设置为主机内存的 80%,如果主机内存不是 8GB,以上参数可依据相应比例进行调整,例如主机内存为 16GB,则 innodb_buffer_pool_size 建议设置为 12GB,innodb_log_buffer_size 建议设置为 32M,innodb_log_file_size 建议设置为 128M,以此类推。请注意innodb_buffer_pool_size的值必须是整数,例如主机内存是4G,那么innodb_buffer_pool_size可以设置为3G,而不能设置为3.2G
sudo systemctl enable mysqld && systemctl start mysqld
grep 'temporary password' /var/log/mysqld.log
JtZizq!Rl6E+
配置开始时会用到第 09获取的初始密码,建议修改为自定义密码,其它选项选择 y 即可
mysql_secure_installation
密码改为:Aa123456,.
sudo systemctl restart mysqld
mysql -u root -p(需要输入第 10步中设置的自定义密码)
mysql>create database zabbix character set utf8; #创建数据库
mysql>create user zabbix@'%' identified by 'Qingdao@2017'; #创建用户和密码
mysql>grant all privileges on zabbix.* to zabbix@'%'; #赋权
mysql>flush privileges;
mysql>exit;
sudo rpm -ivh http://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-2.el7.noarch.rpm
http://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/
sudo yum -y install zabbix-server-mysql zabbix-web-mysql zabbix-java-gateway zabbix-web
cd /usr/share/doc/zabbix-server-mysql-3.4.3
zcat create.sql.gz | mysql -uroot zabbix -p(需要输入第 10 步中设置的自定义密码)
sudo vim /etc/zabbix/zabbix_server.conf 这个配置要一遍过
主要是以下几个选项参数需要设置(8GB 内存为例):
DBPassword 配置为第 12 步第 3 行中设置的自定义密码
CacheSize=512M
(CacheSize在371行)
HistoryCacheSize=128M
(HistoryCacheSize在397行)
HistoryIndexCacheSize=128M
(HistoryIndexCacheSize在405行)
TrendCacheSize=128M
(TrendCacheSize在414行)
ValueCacheSize=256M
(ValueCacheSize在425行)
Timeout=30
(Timeout在432
其它参数保持默认值即可
如果需要监控VMware虚拟机,则还需要设置以下选项参数:
StartVMwareCollectors=2
(StartVMwareCollectors在272行
VMwareCacheSize=256M
(VMwareCacheSize 在298行)
VMwareTimeout=300
(VMwareTimeout在306行)
sudo vim /etc/httpd/conf.d/zabbix.conf
php_value max_execution_time 600
php_value memory_limit 256M
php_value post_max_size 32M
php_value upload_max_filesize 32M
php_value max_input_time 600
php_value always_populate_raw_post_data -1
date.timezone 去掉注释符号#,并将值修改为 Asia/Shanghai
systemctl stop mysqld && reboot
sudo systemctl start httpd && systemctl start zabbix-server
20、在浏览器中输入 http://zbx监控服务器的IP地址/zabbix,进行 zabbix 的页面初始化配置
这个页面PHP设置要求全部OK
如果密码输错,是跳转不到下一步的。密码是前面设置的 Qingdao@2017
注:第4步的”Zabbix server detail”页面中,”Name”处可填写对此监控系统的描述性文字,支持中文,有点像网站的名称。
然后选择 Administrator –> Users –> Admin