首页 文章 精选 留言 我的

精选列表

搜索[基础搭建],共10000篇文章
优秀的个人博客,低调大师

keepalived高可用群集与lvs群集结合搭建

keepalived双机热备 1:keepalived双机热备,主要是用来提供故障切换,和对节点服务器的健康检查。当故障主机回复之后加入群集 2:keepalived是基于vrrp协议的方式进行热备方式,除了一个主服务器之外可以有多个从服务器,而且每一台从服务器的优先级等级各不相同。 3:工作的时候只有主服务器在工作其他服务器处于冗余状态,只要主服务器一旦发生宕机,从服务器,优先级最高的将接任主服务器的位置,以此类推。当主服务器故障排除之后,将重新夺得控制权 VIP 地址为192.168.1.254 主调度器 从调度器 web1服务器 web2服务器 nfs服务器 192.168.1.1 192.168.1.2 192.168.1.3 192.168.1.4 192.168.1.5 keepalived的安装与服务控制 在编译安装keepalived之前首先解决安装内核的开发包kernel-devel、openssl-devel、popt-devel以及ipvsadm等支持库,当然ipvsadm是在后续的lvs群集中使用 1)安装支持软件 #yum -y install kernel-devel openssl-devel popt-devel #yum -y install ipvsadm 2)编译安装keepalived #tar zxf /mnt/keepalived-1.2.13.tar.gz -C /usr/src #cd /usr/src/keepalived-1.2.13/ [root@centos1keepalived-1.2.13]#./configure--prefix=/--with-kernel-dir=/usr/src/kernels/2.6.32-431.el6.x86_64/安装到“/”目录和指定内核路径 #make && make install 3)使用keepalived服务 #chkconfig --add keepalived #chkconfig keepalived on 2.主服务器的配置 #cd /etc/keepalived #cp keepalived.conf keepalived.conf.back #vim keepalived.conf global_defs { router_id LVS_HA_R1//主调度器的名称 } vrrp_instance VI_1 {//定义VRRP热备实例 state MASTER//主调度器的热备状态 interface eth0//承载VIP地址的物理接口 virtual_router_id 1//虚拟路由器的ID号,每个热备组保持一致 priority 100//优先级,数值越大优先级越高 advert_int 1//通告间隔秒数(心跳频率) authentication {//认证信息,每个热备组保持一致 auth_type PASS//认证类型 auth_pass 123456//密码字串 } virtual_ipaddress { 192.168.1.254//指定漂移地址(vip),可以多个 } } 3.启动keepalived服务 #service keepalived start 4.备用服务器的配置 1)路由器的名称和优先级不同,其他都一样 5.测试双击热备功能 1)查看ip地址,发现在主服务器上出现VIP [root@centos1 keepalived]# ip add show dev eth0 或者 ip a inet 192.168.1.1/24 brd 192.168.1.255 scope global eth0 inet 192.168.1.254/32 scope global eth0 //自动设置的VIP地址 从服务器的vip查看 1)ping测试。在客户机上ping -t 192.168.1.254,然后禁用主服务器eth0网卡,发现中断了1或2个包即恢复正常,说明,其他服务器已经接替了VIP的地址 2)访问web,主服务器正常的情况下,看到是主服务器的网页,主服务器down掉后就是从服务器的内容,主服务器恢复后看到的还是主服务器的内容 3)查看/var/log/messages日志 从服务器查看将看到:VRRP_Instance(VI_1) Entering BACKUP STATE 主服务器查看将看到:VRRP_Instance(VI_1) Entering MASTER STATE 二、LVS+keepalived高可用群集 1.配置主调度器(lvs负载调度器这一部分可以省略了,完全由keepalived配置完成) 1)全局配置,热备配置(此部分略,保留之前的配置就可以了) #vim /etc/keepalived/keepalived.conf 2)web服务器池的配置 #vim /etc/keepalived/keepalived.conf virtual_server 192.168.1.254 80 {//虚拟服务器地址(vip)、端口 delay_loop 6//健康检查的间隔时间(秒) lb_algo rr//轮询(rr)调度算法 lb_kind DR//直接路由(DR)群集工作模式 ! persistence 60//连接保持时间(秒),若启用请去掉!号 protocol TCP//应用服务采用的是tcp协议 real_server 192.168.1.3 80 {//第一个web节点的地址和端口 wright 1//节点的权重 TCP_CHECK {//健康检查方式(手工添加) connect_port 80 //检查的目标端口 connect_timeout 3 //连接超时(秒) nb_get_retry 3 //重试次数 delay_before_retry 4 //重试间隔(秒) } } rel_server 192.168.1.4 80 { //第二个web节点的地址和端口 ........ } 3)重启keepalived服务 #service keepalived restart 2.配置从调度器(同主服务器,只需将web服务器池的配置添到/etc/keepalived/keepalived.conf中即可) 3.配置web节点服务器(这部分和lvs的DR模式一样了) (1)配置虚拟ip地址 #cd /etc/sysconfig/network-scripts/ #cp ifcfg-lo ifcfg-lo:0 #vim ifcfg-lo:0 DEVICE=lo:0 IPADDR=192.168.1.254 NETMASK=255.255.255.255 ONBOOT=yes #ifup lo:0 (2)为本机添加一条路由,将访问vip的数据波限制在本地 #route add -host 192.168.2.254 dev lo:0 (3)调整/proc响应参数 #vim /etc/sysctl.conf net.ipv4.conf.all.arp_ignore = 1 net.ipv4.conf.all.arp_announce = 2 net.ipv4.conf.default.arp_ignore = 1 net.ipv4.conf.default.arp_announce = 2 net.ipv4.conf.lo.arp_ignore = 1 net.ipv4.conf.lo.arp_announce = 2 #sysctl -p重启 /etc/sysctl.conf 配置文件 另一台web服务器相同的配置 4.测试LVS+keepalived高可用群集+lvs 在客户机上访问web http://192.168.1.254 ①首先验证lvs,多次刷新页面认真观察 ②再将主服务器的eth0网卡down掉,看看还能不能访问 查看是否可以访问的到节点服务器网页内容 5:将nfs共享存储服务器的内容都挂载到web服务器中,保证服务对外的统一性 首先对nfs的web网页进行编辑 然后在/etc/exports文件中设置共享资源,另外为root用户分配权限控制 之后重新启动nfs服务和rpcbind两个服务 通过客户端网页进行测试 说明调度器的HA群集是成功的 补充内容:启用邮件通知功能,以便及时了解各web节点的健康状况 1.修改主配置文件 global_defs { router_id LVS_HA_R1 notification_email { root } notification_email_from root root smtp_server 127.0.0.1 smtp_connect_timeout 30 router_id LVS_HA_R1 } 2.然后,重启keepalived服务 #service keepalived restart 3.查看邮件,down掉web2 #tail /var/spool/mail/root [root@centos1 ~]# tail /var/spool/mail/root Date: Sun, 16 Apr 2017 09:32:45 +0000 From: root@centos1.benet.com Subject: [LVS_HA_R1] Realserver [192.168.2.4]:80 - DOWN X-Mailer: Keepalived To: root@centos1.benet.com Message-Id: <20170416093245.D1C882009FF@centos1.benet.com> => TCP CHECK failed on service <=

优秀的个人博客,低调大师

Windows下React Native开发01 -- Android开发环境搭建

1.安装jdk 推荐将JDK的bin目录加入系统PATH环境变量(自己百度下怎么配置)。 2.安装SDK 直接安装Android Studio 推荐从AndroidDevTools下载。(也可以直接安装 android sdk,这里是直接安装的android tools) 1.下载管理工具 一个是安装的、一个是解压版 2.进入SDKManager,确保以下项目已经安装并更新到最新: Tools/Android SDK Tools (24.3.3) Tools/Android SDK Platform-tools (22) Tools/Android SDK Build-tools (23.0.1)(这个必须版本严格匹配23.0.1) Android 6.0 (API 23)/SDK Platform (1) Extras/Android Support Library(23.0.1) Extras/Android Support Repository 国内有墙,有时候会出现获取失败的情况。 更改host文件 host文件在C:\Windows\System32\drivers\etc目录下,在该文件内添加下面两条。域名解析到对应IP上 203.208.46.146 dl.google.com 203.208.46.146 dl-ssl.google.com 将Android SDK Manage上的https请求改成http请求 然后在更新。。 3.安装c++环境 (node环境需要) 推荐从itellyou下载并安装Visual Studio 2013或2015 如果使用VS2015,你需要在命令行中设置npm config set msvs_version 2015 --global 4.安装Python 从官网下载并安装python 2.7.x(3.x版本不行) 5.安装node/react-native命令行工具 node直接百度,然后到官网上面下载安装。 从官网下载node.js的官方4.1版本或更高版本。 npm install -g react-native-cli 6.安装git,获取项目 自己百度如何安装git

优秀的个人博客,低调大师

zabbix3.2超详细搭建过程+邮件报警机制

博客更换地址为www.qxfell.com Zabbix:zabbix 3.2 Linux : CentOS 7 Yum源:163 epel 随便哪个都可以 163 wgethttp://mirrors.163.com/.help/CentOS7-Base-163.repo epel yum –y installepel-release 关闭selinux :setenforce 0 关闭防火墙: systemctl stop firewalld.service 或者开放10050 1005180端口 firewall-cmd–permanent–add-port=10050/tcp firewall-cmd–permanent–add-port=10051/tcp firewall-cmd–permanent–add-port=80/tcp firewall-cmd–reload 快速重新加载防火墙规则 Xshell连接虚拟机NAT模式(也可以新建2块网卡 内网用来连接Xshell ) 打开虚拟网络编辑器 这样的话Xshell就能连接NAT模式的Linux系统了。 Centos7 的perl版本默认是5.16用sendemail发送邮件会报错,所以要先卸载5.16然后源码安装5.10的版本 卸载perl5.16时 vim 会被当作依赖关系也一起卸载掉可以使用vi来编辑文件(其实我也没搞的很明白,5.16版本的perl发邮件貌似也可以正常发送这个说法在第一次实验时有这个报错在网上查到的解决办法是perl版本问题) wget http://www.cpan.org/src/5.0/perl-5.10.0.tar.gz ./configure.gnu -des -Dprefix=/usr/local/perl (源码安装记得安装gcc*) make make test (有报错 请忽视) make install mv /usr/bin/perl /usr/bin/perl.bak ln -s /usr/local/perl/bin/perl /usr/bin/perl perl-v (查看perl版本) 在安装完sendemail之后发送测试邮件如果perl版本是5.16会出现以下报错 下载zabbix3.2 rpm源 (放到/etc/yum.repos.d/) rpm -ivh http://repo.zabbix.com/zabbix/3.2/rhel/7/x86_64/zabbix-release-3.2-1.el7.noarch.rpm 服务端 yum install zabbix-server-mysqlzabbix-web-mysql 客户端 yum install zabbix-agent (因为要监控本机所以需要安装客户端) 安装数据库 yum -y installmariadb mariadb-server (centos7 的数据库不在使用mysql而是mariadb) 修改数据库的编码格式为utf8vim /etc/my.cnf (web界面更好的支持中文) 添加 character_set_server=utf8 init_connect='SETNAMES utf8' 初始化数据库 mysql_secure_installation 回车设置数据库密码 Remove anonymous users? 删除匿名用户? Disallow root login remotely? 禁止root远程登陆 Remove test database and access to it? 删除测试数据库并且和访问它 Reload privilege tables now? 重新载入特权表 创建数据库和用户并且grant授权 create databasezabbix_db; grantallprivilegesonzabbix_db.*tozabbix@localhostidentifiedby'zabbix'; flushprivileges; (刷新privileges授权) exit 导入zabbix3.2数据库 cd/usr/share/doc/zabbix-server-mysql-3.0.4/ gunzipcreate.sql.gz mysql-uroot-pzabbix_db<create.sql 修改php参数 Vim /etc/php.ini max_execution_time = 300 memory_limit = 128M post_max_size = 16M upload_max_filesize = 2M max_input_time = 300 always_populate_raw_post_data = -1 date.timezone = Asia/Shanghai 修改zabbix_server的配置文件 vim/etc/zabbix/zabbix_server.conf DBHost=localhost DBName=zabbix_db数据库名 DBUser=zabbix授权的数据库用户 DBPassword=zabbix授权的数据库用户密码 修改zabbix-agent配置文件 vim/etc/zabbix/zabbix_agent.conf Server=127.0.0.1 (服务端IP) ServerActive=127.0.0.1 (服务端IP) Hostname=zabbix (被监测主机的主机名) 开启服务 systemctlstartmariadb systemctlenablemariadb systemctlstarthttpd systemctlenablehttpd systemctlstartzabbix-server systemctlenablezabbix-server systemctlstartzabbix-agent 打开浏览器输入 ip/zabbix 安装zabbix3.2 默认登陆用户名admin 密码zabbix Web界面修改为中文 正常界面 监控Linux主机(需要关闭selinux和开放防火墙) rpm-ivhhttp://repo.zabbix.com/zabbix/2.2/rhel/6/x86_64/zabbix-release-2.2-1.el6.noarch.rpm yuminstall-yzabbix-agent 修改zabbix-agent客户端配置文件 vim/etc/zabbix/zabbix_agentd.conf server=192.168.110.10 (服务端IP) serveractive=192.168.110.10 (服务端IP) hostname=fei00 (被监控主机的主机名) 保存退出后 开启zabbix-agent服务/etc/init.d/zabbix-agentstart 设置开机自启 chkconfigzabbix-agenton 在web界面添加主机 可用性是绿色的 说明开启成功 通过图形查看检测主机 解决web界面 中文乱码显示不全 下载(本机windows就有)微软雅黑或其他字体ttf格式 上传到 /usr/share/zabbix/fonts目录下 修改配置前端文件 vim /usr/share/zabbix/include/defines.inc.php 保存退出即可 sendemail邮件报警 wget http://caspian.dotconf.net/menu/Software/SendEmail/sendEmail-v1.56.tar.gz tar –xvf sendEmail-v1.56.tar.gz cp sendEmail-v1.56/sendEmail /usr/local/bin/ chmod 755 /usr/local/bin/sendEmail 进入zabbix默认脚本目录 /usr/lib/zabbix/alertscripts 创建脚本 vim SendEmail.sh 别忘了给脚本设置执行权限和属组 Chmod777 SendEmail.sh Chown zabbix.zabbix SendEmail.sh 邮件发送测试bash SendEmail 1183766365@qq.com “主题” “内容” 如果发送测试邮件出现 验证失败 25端口无法打开 Dec 03 22:47:02 zabbixsendEmail[3439]: ERROR => ERROR => SMTP-AUTH: Authentication tosmtp.163.com:25 failed. 请确认你的邮箱客户端是否开启smtp服务 web界面设置 {ALERT.SENDTO}收件人地址 {ALERT.SUBJECT}主题 {ALERT.MESSAGE}详细内容 报警信息 博主也是新手 文章中如果有什么错误请联系我及时修改 邮箱17601611570@163.com

优秀的个人博客,低调大师

30分钟完成MongoDB复制集环境搭建

环境介绍: 192.168.1.250 主 port=27408 192.168.1.250 仲裁 port=27409 192.168.1.251 备 port=27408 [root@HE4 ~]# tar xvf mongodb-linux-x86_64-2.6.10.tgz [root@HE4 ~]# mkdir -p /export/mongodb [root@HE4 ~]# mkdir -p /export/mongodb/bin [root@HE4 ~]# mkdir -p /export/mongodb/conf [root@HE4 ~]# mkdir -p /export/mongodb/log [root@HE4 ~]# mkdir -p /export/mongodb/data [root@HE4 bin]# cd /root/mongodb-linux-x86_64-2.6.10/bin [root@HE4 bin]# cp /root/mongodb-linux-x86_64-2.6.10/bin/* /export/mongodb/bin/ [root@HE1 bin]# vi /export/mongodb/conf/mongod.conf port=27408 dbpath=/export/mongodb/data logpath=/export/mongodb/log/mongod.log fork=true logappend=true keyFile=/export/mongodb/key/mongod nohttpinterface=true replSet=shard1 [root@HE1bin]#vi/export/mongodb/conf/arbiter.conf port=27409 dbpath=/export/mongodb/arbiter logpath=/export/mongodb/log/arbiter.log fork=true logappend=true keyFile=/export/mongodb/key/arbiter nohttpinterface=true replSet=shard1 keyfile文件包括: mongod,arbiter 创建一个生成keyfile的脚本 vi create_key.sh cat/dev/urandom|LC_ALL=Ctr-dc"[:alnum:]"|fold-w10|head-1>/tmp/key.txt keystring=`cat/tmp/key.txt` echo$keystring>/export/mongodb/key/mongod echo$keystring>/export/mongodb/key/arbiter chmod600/export/mongodb/key/* 启动服务器在主 [root@HE3 ~]#/export/mongodb/bin/mongod -f /export/mongodb/conf/mongod.conf [root@HE3 ~]# /export/mongodb/bin/mongod -f /export/mongodb/conf/arbiter.conf 在从 [root@HE4 ~]#/export/mongodb/bin/mongod -f /export/mongodb/conf/mongod.conf >config={_id:'shard1',members:[{_id:0,host:'192.168.1.248:27408'},{_id:1,host:'192.168.1.249:27408'},{_id:2,host:'192.168.1.248:27409',arbiterOnly:true}]} >rs.initiate(config) 初始化rs.initiate(config),config是之前定义的名 主备库配置好后,备库查询 shard1:SECONDARY>usetest switchedtodbtest shard1:SECONDARY>db.t1.find() error:{"$err":"notmasterandslaveOk=false","code":13435} shard1:SECONDARY>rs.slaveOk() shard1:SECONDARY>db.t1.find() {"_id":ObjectId("5704c11d3e0651733bfdea23"),"x":1} rs.stauts()可以看状态,health:1代表健康,stateStr谁是我们的仲裁 想让主库降级成从库,rs.stepDown()

优秀的个人博客,低调大师

使用elk+redis搭建nginx日志分析平台(转)

logstash,elasticsearch,kibana 怎么进行nginx的日志分析呢?首先,架构方面,nginx是有日志文件的,它的每个请求的状态等都有日志文件进行记录。其次,需要有个队列,redis的list结构正好可以作为队列使用。然后分析使用elasticsearch就可以进行分析和查询了。 我们需要的是一个分布式的,日志收集和分析系统。logstash有agent和indexer两个角色。对于agent角色,放在单独的web机器上面,然后这个agent不断地读取nginx的日志文件,每当它读到新的日志信息以后,就将日志传送到网络上的一台redis队列上。对于队列上的这些未处理的日志,有不同的几台logstash indexer进行接收和分析。分析之后存储到elasticsearch进行搜索分析。再由统一的kibana进行日志web界面的展示。 下面我计划在一台机器上实现这些角色。 准备工作 安装了redis,开启在6379端口 安装了elasticsearch, 开启在9200端口 安装了kibana, 开启了监控web logstash安装在/usr/local/logstash nginx开启了日志,目录为:/usr/share/nginx/logs/test.access.log 设置nginx日志格式 在nginx.conf 中设置日志格式:logstash log_format logstash '$http_host $server_addr $remote_addr [$time_local] "$request" ' '$request_body $status $body_bytes_sent "$http_referer" "$http_user_agent" ' '$request_time $upstream_response_time'; 在vhost/test.conf中设置access日志: access_log /usr/share/nginx/logs/test.access.log logstash; 开启logstash agent 注:这里也可以不用logstash,直接使用rsyslog 创建logstash agent 配置文件 vim /usr/local/logstash/etc/logstash_agent.conf 代码如下: input { file { type => "nginx_access" path => ["/usr/share/nginx/logs/test.access.log"] } } output { redis { host => "localhost" data_type => "list" key => "logstash:redis" } } 启动logstash agent /usr/local/logstash/bin/logstash -f /usr/local/logstash/etc/logstash_agent.conf 这个时候,它就会把test.access.log中的数据传送到redis中,相当于tail -f。 开启logstash indexer 创建 logstash indexer 配置文件 vim /usr/local/logstash/etc/logstash_indexer.conf 代码如下: input { redis { host => "localhost" data_type => "list" key => "logstash:redis" type => "redis-input" } } filter { grok { match => [ "message", "%{WORD:http_host} %{URIHOST:api_domain} %{IP:inner_ip} %{IP:lvs_ip} \[%{HTTPDATE:timestamp}\] \"%{WORD:http_verb} %{URIPATH:baseurl}(?:\?%{NOTSPACE:request}|) HTTP/%{NUMBER:http_version}\" (?:-|%{NOTSPACE:request}) %{NUMBER:http_status_code} (?:%{NUMBER:bytes_read}|-) %{QS:referrer} %{QS:agent} %{NUMBER:time_duration:float} (?:%{NUMBER:time_backend_response:float}|-)" ] } kv { prefix => "request." field_split => "&" source => "request" } urldecode { all_fields => true } date { type => "log-date" match => ["timestamp" , "dd/MMM/YYYY:HH:mm:ss Z"] } } output { elasticsearch { embedded => false protocol => "http" host => "localhost" port => "9200" index => "access-%{+YYYY.MM.dd}" } } 这份配置是将nginx_access结构化以后塞入elasticsearch中。 对这个配置进行下说明: grok中的match正好匹配和不论是GET,还是POST的请求。 kv是将request中的A=B&C=D的key,value扩展开来,并且利用es的无schema的特性,保证了如果你增加了一个参数,可以立即生效 urldecode是为了保证参数中有中文的话进行urldecode date是为了让es中保存的文档的时间为日志的时间,否则是插入es的时间 好了,现在的结构就完成了,你可以访问一次test.dev之后就在kibana的控制台看到这个访问的日志了。而且还是结构化好的了,非常方便查找。 使用kibana进行查看 依次开启es,logstash,kibana之后,可以使用es的head插件确认下es中有access-xx.xx.xx索引的数据,然后打开kibana的页面,第一次进入的时候会让你选择mapping,索引名字填写access-*,则kibana自动会创建mapping http://www.cnblogs.com/yjf512/p/4199105.html

资源下载

更多资源
腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

用户登录
用户注册