文章目录
- 服务安装
- centos7安装zookeeper集群
- centos7安装kafka集群
- centos7安装kafka-manager
- centos7安装Elaticsearch集群
- centos7安装ELK+filebeat+kafka
- centos7安装rabbitmq集群
- centos7安装redis集群
- centos7安装rsync
- centos7安装时间同步服务
- centos7中文语言支持
- centos7安装jdk-8u92
- centos7安装groovy2.3.10
- centos7定时脚本Groovy
- centos7 安装gitlab
- centos7 安装禅道
- centos7安装nginx
- centos7安装nexus
- centos7添加服务
- centos7 sudo命令
服务安装
centos7安装zookeeper集群
安装
-
tar -zxf /opt/files/zookeeper-3.4.8.tar.gz -C /opt/env
-
vim /opt/env/zookeeper-3.4.8/conf/zoo.cfg
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/opt/env/zookeeper-3.4.8/data
clientPort=2181
server.1=192.168.12.41:2888:3888
server.2=192.168.12.42:2888:3888
server.3=192.168.12.43:2888:3888 -
vim /opt/env/zookeeper-3.4.8/conf/java.env
export JVMFLAGS="-Xms512m -Xmx512m $JVMFLAGS"
-
vim /opt/env/zookeeper-3.4.8/data/myid #在数据目录下配置
3
启动
-
禁用防火墙
systemctl stop firewalld.service systemctl disable firewalld.service
-
服务启动
/opt/env/zookeeper-3.4.8/bin/zkServer.sh start # 启动 /opt/env/zookeeper-3.4.8/bin/zkServer.sh status # 查看状态
centos7安装kafka集群
安装
-
tar -zxf kafka_2.11-0.9.0.0.tgz -C /opt/env/
-
vi /opt/env/kafka_2.11-0.9.0.0/config/server.properties
broker.id=1
listeners=PLAINTEXT://pek1-vm-05:9092
log.dirs=/opt/env/kafka_2.11-0.9.0.0/log
zookeeper.connect=192.168.1.222:2181
advertised.host.name=0.0.0.0 #如果不修改。默认为localhost 导致使用IP远程连接不上 -
mkdir -p /opt/env/kafka_2.11-0.9.0.0/log
启动
-
启动
nohup /opt/env/zookeeper-3.4.8/bin/zookeeper-server-start.sh ./config/zookeeper.properties & 启动zk
nohup /opt/env/kafka_2.11-0.9.0.0/bin/kafka-server-start.sh /opt/env/kafka_2.12-1.0.0/config/server.properties #启动 kafka
/opt/env/kafka_2.12-1.0.0/bin/kafka-server-start.sh -daemon /opt/env/kafka_2.12-1.0.0/config/server.properties #后台运行 -
创建topic
/opt/env/kafka_2.12-1.0.0/bin/kafka-topics.sh --create --zookeeper 192.168.1.222:2181 --replication-factor 1 --partitions 1 --topic test001
nohup ./bin/kafka-topics.sh --list --zookeeper 192.168.1.222:2181 -
单机连通性测试
bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test # 启动生产者
bin/kafka-console-consumer.sh --zookeeper localhost:2181 --topic test --from-beginning # 启动消费者,在producer端输入字符串并回车,查看consumer端是否显示
centos7安装kafka-manager
安装
tar -zxf kafka-manager-1.3.3.17.tar.gz -C /opt/env/ #解压
cd /opt/env/kafka-manager-1.3.3.17/
vim ~/.sbt/repositories #更改sbt源,sbt运行时经常需要下载大量的jar包,默认连接到maven官网,速度通常比较慢
[repositories]
local
aliyun: http://maven.aliyun.com/nexus/content/groups/public
typesafe: http://repo.typesafe.com/typesafe/ivy-releases/, [organization]/[module]/(scala_[scalaVersion]/)(sbt_[sbtVersion]/)[revision]/[type]s/[artifact](-[classifier]).[ext], bootOnly
./sbt clean dist
unzip /opt/env/kafka-manager-1.3.3.17/target/universal/kafka-manager-1.3.3.17.zip
mv /opt/env/kafka-manager-1.3.3.17/target/universal/kafka-manager-1.3.3.17 /opt/env/kafka-manager-1.3.3.17/kafka-manager
vim /opt/env/kafka-manager-1.3.3.17/kafka-manager/conf/application.conf
kafka-manager.zkhosts="10.1.1.41:2181,10.1.1.42:2181,10.1.1.43:2181"
启动
nohup /opt/env/kafka-manager-1.3.3.17/kafka-manager/bin/kafka-manager -Dconfig.file=/opt/env/kafka-manager-1.3.3.17/kafka-manager/conf/application.conf -Dhttp.port=19092 &
centos7安装Elaticsearch集群
-
下载并解压
tar zxf /opt/file/elasticsearch-6.2.3.tar.gz -C /opt/env/
-
修改配置
vim elasticsearch-5.5.0/config/elasticsearch.yml #es配置项
cluster.name: es.dev #集群名称,集群内各个节点必须一致
node.name: node1 #节点名
network.host: 0.0.0.0 #绑定IP ,所有网卡
http.port: 9200 # http端口
discovery.zen.ping.unicast.hosts: [“host1”,“host2”,“host3”] #集群内其他节点host
discovery.zen.minimum_master_nodes: 2 #主节点数,官方建议nodes / 2 + 1
vim elasticsearch-5.5.0/config/jvm.options #jvm 参数配置
-Xms512m
-Xmx512m -
账户及权限配置
useradd elasticsearch -g wheel -p elasticsearc #添加es 账户,因为默认不允许root启动
chown -R elasticsearch:wheel /opt/env/elasticsearch-5.5.0 #配置可执行权限
vim /etc/security/limits.conf ->gg +G 到最后一行,在最后一行之上添加如下内容
* soft nproc 65536
* hard nproc 65536
* soft nofile 65536
* hard nofile 65536
vim /etc/sysctl.conf
vm.max_map_count=655360
sysctl -p #执行即可 -
启动
su elasticsearch # 切换到elasticsearch 用户
/opt/env/elasticsearch-5.5.0/bin/elasticsearch -d #后台启动es
netstat -nltp #查看端口,可以看到 9200 和9300 已经开启 -
测试
curl -X GET http://localhost:9200/
-
其他节点使用scp 拷贝相关文件
scp -r -P 22 root@192.168.10.1:/opt/data/backup/mysql/* /root #示例
-
chrome 浏览器安装 elasticsearch head 插件
下载
将下载的文件拖入:chrome 浏览器->更多工具->扩展程序 即可完成安装
vim /etc/sudoers 可以看到wheel组内用户可以执行所有命令,这是一种偷懒的做法
多网卡配置参数network.bind_host: 101.201.103.78,network.publish_host: 10.174.8.116,transport.host: 10.174.8.116
centos7安装ELK+filebeat+kafka
filebeat
-
下载解压
tar zxf /opt/file/filebeat-5.5.0-linux-x86_64.tar.gz -C /opt/env
-
配置
cp filebeat.yml filebeat.yml.init #默认的配置备份一下
vim filebeat.yml
- input_type: log
paths:
- /opt/apps/his_med/logs/*-error.log
multiline.pattern: ^[ #多行日志合并处理
multiline.negate: true #多行日志合并处理
multiline.match: after #多行日志合并处理
output.kafka:
hosts: [“192.168.10.1:9092”,“192.168.10.2:9092”,“192.168.10.3:9092”]
topic: ‘log’ -
启动
nohup /opt/env/filebeat-5.5.0-linux-x86_64/filebeat -e -c /opt/env/filebeat-5.5.0-linux-x86_64/filebeat.yml -d "publish" &
logstash
-
下载解压
tar -zxf /opt/file/logstash-5.5.0.tar.gz -C /opt/env/
-
安装email 插件
vim Gemfile
source “https://ruby.taobao.org/” #使用国内的镜像服务更快
logstash-plugin install logstash-output-email 安装email 插件,比较慢
vim config/kafka-es.conf
input {
kafka {
bootstrap_servers => “192.168.10.1:9092,192.168.10.2:9092,192.168.10.3:9092”
topics => [“log”]
}
}
output {
elasticsearch {
hosts => [“192.168.10.1:9200”,“192.168.10.2:9200”,“192.168.10.3:9200”]
}
}
output {
email {
port => “25”
address => “smtp.exmail.qq.com”
username => "test@xxx.cn"
password => “jFuddWjbsdfds9wwi4HS” #一定是客户端授权码,因为这个被坑了好久
authentication => “plain”
use_tls => false
from => "test@xxx.cn"
subject => “服务器异常提醒”
to => "own@xxx.cn"
via => “smtp”
body => “Content:\n%{message}”
}
} -
启动
nohup logstash -f /opt/env/logstash-5.5.0/config/kafka-es.conf &
kibana
-
下载解压
tar zxf kibana-5.5.0-linux-x86_64.tar.gz -C /opt/env/
-
配置
vim config/kibana.yml
server.port: 5601
server.host: “0.0.0.0”
elasticsearch.url: “http://192.168.10.1:9200” -
启动
nohup /opt/env/kibana-5.5.0-linux-x86_64/bin/kibana &
centos7安装rabbitmq集群
erlang
-
下载解压
tar -zxf /opt/file/otp_src_20.3.tar.gz -C ./
cd otp_src_20.3/
./configure --prefix=/opt/env/erlang_20.3
make
make install -
配置
vim /etc/profile
export ERLANG_HOME=/opt/env/erlang_20.3
export PATH= E R L A N G H O M E / b i n : ERLANG_HOME/bin: ERLANGHOME/bin:PATH
source /etc/profile -
问题
在Linux上安装ErLang环境时,如果出现 configure: error: No curses library functions found 提示 ,需要首先安装 ncurses-devel
rabbitmq
-
下载解压
xz -d rabbitmq-server-generic-unix-3.7.4.tar.xz
tar xf rabbitmq-server-generic-unix-3.7.4.tar -C /opt/env/
-
配置
vim /etc/profile
export RABBITMQ_HOME=/opt/env/rabbitmq_server-3.7.4
export PATH= R A B B I T M Q H O M E / s b i n : RABBITMQ_HOME/sbin: RABBITMQHOME/sbin:PATH
source /etc/profile
rabbitmqctl status
rabbitmq-plugins enable rabbitmq_management
rabbitmq-server --detached #启动 -
集群cookie配置
scp -r -P 22 root@192.168.10.1:/root/.erlang.cookie /root/ #同步集群中的.erlang cookie 文件,
这样才能达到集群状态
rabbitmq-server --detached
rabbitmqctl cluster_status # 未集群
rabbitmqctl stop_app
rabbitmqctl reset
rabbitmqctl join_cluster --ram rabbit@192.168.10.1 #作为内存节点加入集群,如果不加ram 参数
则为持久化节点
rabbitmqctl start_app
rabbitmqctl cluster_status # 已集群 -
测试
rabbitmqctl list_users
rabbitmqctl list_vhosts
rabbitmqctl add_vhost test #添加vhosts
rabbitmqctl list_vhosts
rabbitmqctl add_user test test #test 用户,密码为test
rabbitmqctl set_permissions -p his his “." ".” “.*” # test 用户可以对test vhosts 做任何操作
rabbitmqctl list_permissions -p test
rabbitmqctl set_user_tags test administrator #设置test 角色为管理员
haproxy
-
下载解压
tar zxf haproxy-1.8.4.tar.gz -C /opt/env/
cd /opt/env/haproxy-1.8.4/
make TARGET=generic
vim conf/haproxy.cfg
global
log 127.0.0.1 local0 info
maxconn 4096
daemon
defaults
log global
mode tcp
option tcplog
option dontlognull
retries 3
option redispatch
maxconn 2000
timeout connect 5s
timeout client 120s
timeout server 120s
listen rabbitmq
bind 0.0.0.0:5670
mode tcp
balance roundrobin
server rabbit01 host1:5672 check inter 5000 rise 2 fall 3
server rabbit02 host2:5672 check inter 5000 rise 2 fall 3
server rabbit03 host3:5672 check inter 5000 rise 2 fall 3
listen private_monitoring
bind 0.0.0.0:15670
mode http
option httplog
stats enable
stats uri /stats
stats refresh 5s -
启动
/opt/env/haproxy-1.8.4/haproxy -f /opt/env/haproxy-1.8.4/conf/haproxy.cfg
centos7安装redis集群
ruby
-
下载解压
tar -zxvf /opt/file/ruby-2.3.1.tar.gz -C /opt/env/
cd /opt/env/ruby-2.3.1/
./configure --prefix=/opt/env/ruby/
make && make install -
配置
vi /etc/profile 文件末尾
export JAVA_HOME=/opt/env/jdk1.8.0_92
export RUBY_HOME=/opt/env/ruby
export GROOVY_HOME=/opt/env/groovy-2.4.3
export PATH= J A V A H O M E / b i n : JAVA_HOME/bin: JAVAHOME/bin:GROOVY_HOME/bin: R U B Y H O M E / b i n : RUBY_HOME/bin: RUBYHOME/bin:PATH
source /etc/profile
ruby -version
redis
-
依赖
gem install redis (gem install -l redis-3.3.0.gem,离线安装)
-
下载解压
tar zxvf /opt/file/redis-3.2.1.tar.gz -C /opt/env
cd redis-3.2.1/
make && make install
make test -
配置(多个节点)
mkdir -p 7001
vim 7001/redis.conf
protected-mode no
port 7001
daemonize yes
supervised no
pidfile /var/run/redis_7001.pid
logfile “/opt/env/redis-3.2.1/7001/log/redis_7001.log”
databases 1
dir /opt/env/redis-3.2.1/7001/data/
appendonly yes
cluster-enabled yes
cluster-config-file nodes-7001.conf
. 启动
/opt/env/redis-3.2.1/src/redis-server /opt/env/redis-3.2.1/7001/redis.conf
ps -ef|grep redis -
集群
/opt/env/redis-3.2.1/src/redis-trib.rb create --replicas 1 10.174.8.116:7000 10.174.8.116:7001 10.174.8.116:7002 10.174.11.2:7000 10.174.11.2:7001 10.174.11.2:7002
/opt/env/redis-3.2.1/src/redis-cli -c -h 192.168.12.32 -p 7000 #连接集群
cluster info #查询集群信息
cluster nodes 查询集群节点
centos7安装rsync
安装rsync
-
yum 安装
yum install -y rsync
-
配置
vi /etc/rsyncd.conf
uid = root
gid = root
address = 10.174.8.116 # 本机IP
port = 873
motd file = /etc/rsyncd.motd
syslog facility = local3
read only = no
hosts allow = 10.174.11.2 #允许同步的远程机器
timeout = 600
use chroot = yes
transfer logging = yes
log format = %h %o %f %l %b
log file = /var/log/rsyncd.log
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsyncd.lock
max connections = 1
[static]
path = /opt/apps/static
comment = static rsync
ignore errors = yes
list = yes
auth users = rsyncT05
secrets file = /etc/rsyncd.password
vi /etc/rsyncd.motd
Welcome to use rsync services!
vi /etc/rsyncd.password
rsyncT05:rsstesstl090876hhj #同步用到的用户及密码,非系统用户
vi /etc/rsyncd.secrets
rsstesstl090876hhj #远程同步机器同步用户密码
chmod 600 /etc/rsyncd.password
chmod 600 /etc/rsyncd.secrets
chown root.root /etc/rsyncd.password
chown root.root /etc/rsyncd.secrets -
启动
rsync --daemon #后台运行 -
测试
配置另一台服务器之后
rsync -rzvzp --password-file=/etc/rsyncd.secrets rsyncT06@10.174.11.2::static /opt/apps/static #同步机器测试(新建文件测试)
安装sersync2
实时同步
-
下载解压
tar zxvf sersync2.5.4.tar.gz -C /opt/env/
-
配置
vi /opt/env/sersync2.5.4/confxml.xml
vi /etc/profile
export SERRSYNC_HOME=/opt/env/sersync2.5.4
$SERRSYNC_HOME/bin
source /etc/profile -
启动
sersync2 -r -d -o /opt/env/sersync2.5.4/confxml.xml
加入开机启动
echo “rsync --daemon --config=/etc/rsyncd.conf” >> /etc/rc.local
echo “sersync2 -r -d -o /opt/env/sersync2.5.4/confxml.xml” >> /etc/rc.local
centos7安装时间同步服务
rpm -q ntp 查看是否安装ntpd 服务
yum -y install ntp 查安装ntpd 服务
systemctl status ntpd 查看ntpd 服务状态
systemctl enable ntpd ntpd服务加入开机启动
systemctl start ntpd 启动ntpd 服务
date 查看时间
centos7中文语言支持
locale -a 查看支持的语言(有没有zh_CN.utf8)
yum groupinstall chinese-support 没有安装中文语言支持 则使用该命令安装
locale 查看当前语言(LANG)
# LANG="zh_CN.utf8"
date 查看时间,确认是否为中文
vi /etc/locale.conf 修改为中文语言
# LANG="en_US.UTF-8"
LANG="zh_CN.UTF-8"
source /etc/locale.conf
centos7安装jdk-8u92
-
下载解压
java -version 检查是否安装
rpm -qa|grep java 检查是否安装
cd /opt/files
tar xvf jdk-8u92-linux-x64.tar.gz 解压安装包
cp -r jdkjdk1.8.0_92 /opt/env/ 移动安装包
rm -rf jdk1.8.0_92/ 删除原安装包 -
配置
vi /etc/profile 加入环境变量
export JAVA_HOME=/opt/env/jdk1.7.0_17
export PATH= J A V A H O M E / b i n : JAVA_HOME/bin: JAVAHOME/bin:PATH
source /etc/profile 生效环境变量
Java -version 检查是否安装成功
centos7安装groovy2.3.10
-
下载解压
http://dl.bintray.com/groovy/maven/ 全套的groovy下载地址
wget http://dl.bintray.com/groovy/maven/groovy-binary-2.3.10.zip
unzip groovy-binary-2.3.10.zip
cp -r groovy-2.3.10/ /opt/env/
rm -rf groovy-2.3.10/ -
配置
vi /etc/profile
export GROOVY_HOME=/opt/env/groovy-2.3.10
export PATH= G R O O V Y H O M E / b i n : GROOVY_HOME/bin: GROOVYHOME/bin:PATH
source /etc/profile
groovy -version
groovy -e ‘println(“hello”)’
OK
centos7定时脚本Groovy
crontab -l
crontab -e
* * * * source /etc/profile && groovy /mnt/services/apps/task/TaskTest.groovy >> /mnt/services/apps/task/logs/TaskTest.log
###centos7安装ActiveMQ-5.13.3
-
下载解压
tar -zxvf apache-activemq-5.13.3-bin.tar.gz -C ../env/
-
配置
cd …/env/apache-activemq-5.13.3/
vi apache-activemq-5.13.3/bin/env
#ACTIVEMQ_OPTS_MEMORY="-Xms64M -Xmx1G"
ACTIVEMQ_OPTS_MEMORY="-Xms1024M -Xmx1536M"
vi apache-activemq-5.13.3/conf/activemq.xml
<replicatedLevelDB directory="${activemq.data}/leveldb" replicas=“3” bind=“tcp://0.0.0.0:0”
zkAddress=“192.168.1.193:2181,192.168.1.195:2181,192.168.1.191:2181”
hostname=“192.168.1.191” sync=“local_disk” zkPath="/opt/data/activemq/leveldb-stores" />
mkdir -p /opt/data/activemq/leveldb-stores -
启动
bin/activemq start
分布式必须启动所有节点,只有主节点端口开放
centos7 安装gitlab
下载解压
https://bitnami.com/stack/gitlab/installer
centos7 安装禅道
下载解压
http://www.zentao.net/
sudo tar -zxvf ZenTaoPMS.8.2.5.zbox_64.tar.gz -C /opt
修改配置
/opt/zbox/zbox -ap 8080 #修改apache端口为8080
/opt/zbox/zbox -mp 3307 #修改数据库端口为3307
启动服务
/opt/zbox/zbox restart
###centos7 安装jenkins
下载解压
http://mirrors.jenkins-ci.org/war/latest/jenkins.war
启动
nohup java -jar jenkins.war -httpPort=8080 &
插件
https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/current/update-center.json
jenkins-multijob
ruby-runtime
git
gitlab-plugin
gitlab-hook
publish over ssh
使用
-
连接gitlab
在jenkins所在的服务器上
ssh-keygen -t rsa -C “Your email”
evalssh-agent
ssh-add /root/.ssh/id_rsa
copy id_rsa.pub to gitlab
copy id_rsa to jenkins private key
create and add gitlab token to jenkins
centos7安装nginx
tar zxf /home/tuser/nginx-1.10.1.tar.gz -C ./
cd nginx-1.10.1/
./configure --prefix=/usr/local/nginx --with-http_realip_module --with-http_gzip_static_module
make && make install
/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
centos7安装nexus
下载解压
sudo tar zxf file/nexus-3.10.0-04-unix.tar.gz -C /opt/env/nexus
配置
vim etc/nexus-default.properties
application-port=10002 #配置端口
vim bin/nexus.vmoptions
-Dkaraf.data=/data/sonatype-work/nexus3 #文件路径
-Djava.io.tmpdir=/data/sonatype-work/nexus3/tmp
vim bin/nexus.rc
run_as_user=“root” #配置启动用户
启动
/opt/nexus/nexus-3.10.0-04/bin/nexus run #控制台打印日志启动
/opt/nexus/nexus-3.10.0-04/bin/nexus start #后台启动
centos7添加服务
在 /usr/lib/systemd/system 目录下添加对应的服务脚本,名称为:[服务名].service
[Unit]
Description=jetty
Documentation=http://jetty.org/en/docs/
After=network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
PIDFile=/opt/env/jetty/jetty.pid
ExecStart=/opt/apps/his_biz_main/jetty start
ExecStop=/opt/apps/his_biz_main/jetty stop
PrivateTmp=true
[Install]
WantedBy=multi-user.target
然后在对应的位置写对应的服务脚本,[服务名] (可执行权限)
#!/bin/bash
##############################################
# $Author: james
# $Id: chart.xml.sh 1234 2017-06-20 10:15:04Z james $
##############################################
cd `dirname $0`
export JAVA_HOME=/opt/env/jdk
export PATH=$JAVA_HOME/bin:$PATH
export JETTY_HOME=/opt/env/jetty
export TMPDIR=$JETTY_HOME/webapps
export JETTY_PID=$JETTY_HOME/jetty.pid
export JETTY_BASE=$(cd "$(dirname "$0")/"; pwd )
##############################################
function start(){
export JETTY_ARGS="jetty.port=8001 jetty.host=0.0.0.0"
export JAVA_OPTIONS="-Xms2048m -Xmx2048m -XX:+HeapDumpOnOutOfMemoryError -XX:+DoEscapeAnalysis -XX:HeapDumpPath=/opt/apps/his_biz_main/logs/ \
-Dio.netty.leakDetectionLevel=advanced -DIio.netty.eventLoopThreads=64 -DClientInitializer.separatePool=false \
-verbose:gc -XX:+UseConcMarkSweepGC -XX:+PrintGCDateStamps -XX:+PrintGCDetails -Xloggc:./logs/gc.log \
-Ddisconf.enable.remote.conf=true -Ddisconf.conf_server_host=disconf.himco.cn -Ddisconf.version=1.0 -Ddisconf.app=his -Ddisconf.env=pro "
#-Dcom.sun.management.jmxremote.port=6001 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false "
$JETTY_HOME/bin/jetty.sh -d start
}
function stop(){
$JETTY_HOME/bin/jetty.sh stop
}
case "$1" in
start)
start
;;
stop)
stop
;;
status)
ps ax | grep jetty | grep -v grep | grep -v status
;;
restart)
stop
start
;;
*)
echo $"Usage: $0 {start|stop|status|restart}"
exit 2
esac
exit $?
使用如下命令操作
service [服务名] start/stop/status
centos7 sudo命令
需要在当前用户的环境变量中(.bash_profile)添加如下代码,实现使用系统环境变量
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
# User specific environment and startup programs
alias sudo='sudo env PATH=$PATH'
PATH=$PATH:$HOME/.local/bin:$HOME/bin
export PATH