Zabbix3.4使用详解
zabbix-基础
第1章 关于zabbix
1.1 为什么要使用监控
1.对系统不间断实时监控
2.实时反馈系统当前状态
3.保证服务可靠性安全性
4.保证业务持续稳定运行
1.2 如何进行监控
比如我们需要监控磁盘的使用率
1.如何查看磁盘使用率df -h
2.监控磁盘的那些指标block、inode
3.如何获取具体的信息df -h|awk'//$/{print $(NF-1)}'
4.获取的数值到达多少报警 80%
1.3 流行的监控工具
1.cacti、Nagios、Zabbix、
2.Lepus(天兔)数据库监控系统
3.Open-Falcon 小米
4.Prometheus(普罗米修斯,Docker、K8s)
1.4 到一家新公司,如何入手监控
1.硬件监控 路由器、交换机、防火墙
2.系统监控 CPU、内存、磁盘、网络、进程、TCP
3.服务监控 nginx、php、tomcat、redis、memcache、mysql
4.WEB监控 请求时间、响应时间、加载时间、
5.日志监控 ELk(收集、存储、分析、展示)日志易
6.安全监控 Firewalld、WAF(Nginx+lua)、安全宝、牛盾云、安全狗
7.网络监控 smokeping 多机房
8.业务监控
第2章 zabbix部署
2.1 基础环境划分
主机名 | IP地址 | 功能 |
---|---|---|
zabbix | 172.16.1.71 | zabbix服务端 |
web01 | 172.16.1.7 | zabbix客户端 nginx |
web02 | 172.16.1.8 | zabbix客户端 nginx |
db01 | 172.16.1.51 | 数据库 |
2.2 安装zabbix
Zabbix-Server,是一个C/S和B/S结构
1.安装Zabbix-server
[root@zabbix ~]# rpm -ivhhttps://mirrors.aliyun.com/zabbix/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-2.el7.noarch.rpm
[root@zabbix ~]# yum install -yzabbix-server-mysql zabbix-web-mysql zabbix-agent mariadb-server
2.创建Zabbix数据库以及用户
#启动数据库,加入开机自启
[root@zabbix ~]# systemctl enable mariadb
[root@zabbix ~]# systemctl start mariadb
创建数据库并授权
[root@zabbix ~]# mysql -uroot -p
MariaDB [(none)]> create database zabbixcharacter set utf8 collate utf8_bin;
MariaDB [(none)]> grant all privileges on zabbix.*to zabbix@localhost identified by 'zabbix';
MariaDB [(none)]> exit
3.导入基础架构和数据
[root@zabbix ~]# cd/usr/share/doc/zabbix-server-mysql-3.4.14/
进入这个目录可能不报错 目录不存在 大多是因为版本不同 导致目录名称改变
[root@zabbix zabbix-server-mysql-3.4.14]# ll
total 2112
-rw-r--r-- 1 root root 98 Sep 14 04:04 AUTHORS
-rw-r--r-- 1 root root 857849 Sep 14 04:04 ChangeLog
-rw-r--r-- 1 root root 17990 Sep 14 04:04 COPYING
-rw-r--r-- 1 root root 1267039 Sep 14 04:09create.sql.gz
-rw-r--r-- 1 root root 52 Sep 14 04:04 NEWS
-rw-r--r-- 1 root root 188 Sep 14 04:04 README
[root@zabbix zabbix-server-mysql-3.4.14]# zcat create.sql.gz |mysql -uroot zabbix
[root@zabbix zabbix-server-mysql-3.4.14]# mysql-uroot -p 进入数据库确认一下是否导入成功
MariaDB [(none)]> use zabbix;
MariaDB [zabbix]> show tables;
140 rows in set (0.00 sec) #因内容过多此处只粘贴总数
4.启动Zabbix Server进程,在zabbix_server.conf中编辑数据库配置
[root@m01 ~]# vi/etc/zabbix/zabbix_server.conf #以下四处需要更改
以下四处大部分起初都被注释 应该把注释取消 以下是需要修改的内容所在行
DBHost=localhost #91行
DBName=zabbix #101行
DBUser=zabbix #117行
DBPassword=zabbix #126行
# 启动ZabbixServer进程
[root@zabbix ~]# systemctl enable zabbix-server
[root@zabbix ~]# systemctl start zabbix-server
5.编辑Zabbix前端的PHP配置,Zabbix前端的Apache配置文件位于 /etc/httpd/conf.d/zabbix.conf。一些PHP设置已经完成了配置。
[root@zabbix ~]# vim /etc/httpd/conf.d/zabbix.conf
php_value max_execution_time 300
php_value memory_limit 128M
php_value post_max_size 16M
php_value upload_max_filesize 2M
php_value max_input_time 300
php_value always_populate_raw_post_data -1
# php_value date.timezone Asia/Shanghai #20行
依据所在时区,取消 “date.timezone” 设置的注释,并正确配置(Asia/Shanghai)。在配置文件更改后,需要重启ApacheWeb服务器。
6.启动httpd服务
[root@zabbix ~]#systemctl enable httpd
[root@zabbix ~]#systemctl start httpd
2.3 网页配置zabbix-web界面
配置完以上内容后 网页输入10.0.0.71/zabbix进入zabbix安装界面、
欢迎界面, 直接下一步即可
检查依赖项是否不存在任何异常
配置zabbixWeb
连接数据库(如果直接选用远程数据库 可以在此处修改)
配置ZabbixServer
服务器的主机名或主机IP地址和端口号, 以及安装的名称(可选)
安装前摘要,检查配置参数。如果一切都正确,请按"下一步"按钮或"后退"按钮来更改配置参数。
提示已成功地安装了Zabbix
前端。配置文件/etc/zabbix/web/zabbix.conf.php
被创建。
至此Zabbix已经安装完毕
默认登陆ZabbixWeb的用户名Admin
,密码zabbix
第3章 zabbix-web界面优化
3.1 修改为中文字体
点击update后即为中文字体
(修改为中文字体后可能有些界面会产生乱码 我们还应该修改下字符集,防止产生乱码)
3.2 调整字符集
1.先搜索zabbix-web包对应字符存放的目录
[root@zabbix ~]# rpm -ql zabbix-web|grep fonts
/usr/share/zabbix/fonts
2.进入对应字体目录,发现字体是一个软链接
[root@zabbix ~]# cd /usr/share/zabbix/fonts/
[root@zabbix fonts]# ll
lrwxrwxrwx 1 root root 33 Oct 11 03:20graphfont.ttf -> /etc/alternatives/zabbix-web-font
3.进入软链接对应的目录,发现还是软链接
[root@zabbix fonts]# cd /etc/alternatives/
[root@zabbix alternatives]# ll
lrwxrwxrwx1 root root 38 Oct 11 03:20 zabbix-web-font ->/usr/share/fonts/dejavu/DejaVuSans.ttf
4.进入最终字体存放的目录
[root@zabbix alternatives]# cd/usr/share/fonts/dejavu/
5.将默认字体进行改名
[root@zabbix-server alternatives]# mvDejaVuSans.ttf DejaVuSans.ttf_bak
6.上传自己准备好的字体,字体可以通过windows电脑获取
(c:\windows\fonts)
7.最后将新上传的字体进行改名
[root@zabbix dejavu]# mv simkai.ttf DejaVuSans.ttf
注意:如果字体是ttc,修改为ttf也行。
3.3 调整web界面窗口位置
该操作可以不执行
为了以后方便我们观察 所以我们修改下 web界面的窗口安排
图片所示是默认的 点击编辑仪表盘 便可以拖动各个小窗口
将如下图四栏 往上提即可然后保存
目的是方便日后查看
第4章 监控内容部署
4.1 配置一台主机
1. 在客户端安装zabbix-agent
[root@web01 ~]# rpm -ivhhttps://mirrors.aliyun.com/zabbix/zabbix/3.4/rhel/7/x86_64/zabbix-agent-3.4.12-1.el7.x86_64.rpm
2.配置修改/etc/zabbix/zabbix_agentd.conf内容
[root@web03 ~]# vim /etc/zabbix/zabbix_agentd.conf
Server=172.16.1.71 #97行 指向Zabbix-Server
Timeout=30 #238行 此处默认是注释3或4 可以取消注释修改成30
3.启动服务并检查
[root@web01 ~]# systemctl start zabbix-agent
[root@web01 ~]# systemctl enable zabbix-agent
[root@web01 ~]# netstat -lntp
Active Internet connections (only servers)
tcp0 0 0.0.0.0:10050 0.0.0.0:* LISTEN 981/zabbix_agentd
以上确认配置完成后 进入web界面网页配置
点击创建主机
配置完以上内容后 不要直接点击添加
点击模板->选择连接指示器->选择->搜索Linux->点击小按钮添加->最后添加
Template OS Linux 是必添加的监控
添加完成后 点击主机(如果等几分钟 显示ZBX则为添加成功 没有问题)
4.2 自定义监控TCP
TCP的12种状态
tcp[ESTABLISHED]
tcp[SYN_SENT]
tcp[SYN_RECV]
tcp[FIN_WAIT1]
tcp[FIN_WAIT2]
tcp[TIME_WAIT]
tcp[CLOSE]
tcp[CLOSE_WAIT]
tcp[LAST_ACK]
tcp[LISTEN]
tcp[CLOSING]
tcp[UNKNOWN]
1.在对应的主机上编写自定义监控TCP的11中状态[在本地进行取值,web01]
[root@web01 ~]# vim/etc/zabbix/zabbix_agentd.d/tcp.conf
UserParameter=tcp[*],netstat -ntal | awk'NR>1{print $NF}'| grep -i "$1" | wc -l
2.在server上使用zabbix_get获取对应主机的值
[root@zabbix ~]# yum install zabbix-get -y
[root@zabbix ~]# zabbix_get -s 172.16.1.7 -ktcp[estab]
确认无误后再添加
网页配置内容
先添加一个模板 在模板里创建监控项这样以后就不用再次创建
因为模板支持导出导入
创建完模板 点击监控项
点击创建监控项
然后开始创建
创建时 名称只是让人看的键值是最关键的 不能更改
添加完一个后 就可以使用这个来克隆其他的
需要注意的是 要确保每个键值都正常
克隆完后的 每个都要启用默认创建完就是启用的
添加完成后 我们要把模板加入到web01这台主机上进行监控
按照一开始添加模板 将TCP这个模板加入即可
检查是否成功
如果有数据更新即为成功
4.3 自定义监控内存
1.在Agent的/etc/zabbix/zabbix_agentd.d/*.conf自定义监控项, 使用UserParameter=KEY,shell command,目的是便于zabbixServer获取ZabbixAgent对应监控项的数据
[root@web01 zabbix_agentd.d]# vim mem.conf
UserParameter=Mem.Num,free -m |awk '/^Mem/{print$NF/$2*100}'
UserParameter=Swap.Num,free -m|awk '/^Swap/{print$3/$2*100}'
- 使用zabbix_agentd -p | grep KEY,如果获取到值则正常
[root@web01 zabbix_agentd.d]# zabbix_agentd -p|grep-i Mem_Num
Mem_Num[t|38.501]
- 在ZabbixServer端测试获取ZabbixAgent端自定义的监控项是否正常zabbix_get -s IP_addr -k KEY
[root@zabbix ~]# zabbix_get -s 172.16.1.7 -k Mem.Num
38.7064
然后开始网页配置
将 Swap.Num 和 Mem.Num 都添加上
添加完成后 查看最新数据
配置完成
第5章 配置触发器
5.1 配置单条件触发器
ESTAB超过500就报警
检查是否添加成功
5.2 多条件触发器
内存使用剩余不足百分之30且swap使用超过1%就报警
检查
5.3 登录用户超过两个人就报警
第6章 配置报警
6.1 配置web界面报警
6.2 配置邮件报警
将动作里的触发器的状态设置为已启动(点一下已停止即可)
注意界面右上角 选择为触发器不然显示内容不同
6.2.1 更改报警邮件信息
然后我们点击名称 进入配置界面(更改报警邮件发送的信息)
将默认的信息删除 覆盖掉
故障!!!: {TRIGGER.NAME}
报警主机:{HOST.NAME1}
报警服务: {ITEM.NAME1}
报警Key1: {ITEM.KEY1}:{ITEM.VALUE1}
报警Key2: {ITEM.KEY2}:{ITEM.VALUE2}
严重级别: {TRIGGER.SEVERITY}
恢复: {TRIGGER.NAME}
恢复主机:{HOST.NAME1}
恢复服务: {ITEM.NAME1}
恢复Key1:{ITEM.KEY1}:{ITEM.VALUE1}
恢复Key2: {ITEM.KEY2}:{ITEM.VALUE2}
恢复的内容也要修改
6.2.2 修改报警媒介类型
6.2.3 添加报警媒介
添加后 点击更新 至此 邮件配置完成
6.3 企业微信报警
1.准备微信报警脚本, 脚本怎么写->脚本放在哪【相当于配置好了发件人】
[root@zabbix ~]# yum install python-pip -y
[root@zabbix ~]# pip install requests
[root@zabbix ~]# cd /usr/lib/zabbix/alertscripts
报警脚本内容
[root@zabbix alertscripts]# vim weixin.py
#!/usr/bin/env python
#-*- coding: utf-8 -*-
#author: bgx
#date: 2018
#comment: zabbix接入微信报警脚本
import requests
import sys
import os
import json
import logging
#!/usr/bin/env python
#-*- coding: utf-8 -*-
#author: bgx
#date: 2018
#comment: zabbix接入微信报警脚本
import requests
import sys
import os
import json
import logging
logging.basicConfig(level = logging.DEBUG, format= '%(asctime)s, %(filename)s, %(levelname)s, %(message)s',
datefmt = '%a, %d %b %Y %H:%M:%S',
filename = os.path.join('/tmp','weixin.log'),
filemode = 'a')
corpid='wwabcf092986138a4f'
appsecret='47r80t2cfYbQfrOs8mRXUx84H44RdFTJ9BMvVaeQUVQ'
agentid=1000002
#获取accesstoken
token_url='https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid='+ corpid + '&corpsecret=' + appsecret
req=requests.get(token_url)
accesstoken=req.json()['access_token']
#发送消息
msgsend_url='https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token='+ accesstoken
touser=sys.argv[1]
subject=sys.argv[2]
#toparty='3|4|5|6'
message=sys.argv[2] + "\n\n"+sys.argv[3]
params={
"touser": touser,
#"toparty": toparty,
"msgtype": "text",
"agentid": agentid,
"text": {
"content": message
},
"safe":0
}
req=requests.post(msgsend_url,data=json.dumps(params))
logging.info('sendto:' + touser + ';;subject:' +subject + ';;message:' + message)
给脚本增加执行权限并测试
[root@zabbix alertscripts]# chmod +x weixin.py
[root@zabbix alertscripts]# ./weixin.py nfsnobodySubject Messages #测试
[root@zabbix alertscripts]# rm -f /tmp/weixin.log #删除这个文件不然会报错
开始web界面配置
下图需要增加的内容(注意不要有空格 不然会报错 很难发现)
{ALERT.SENDTO}#发给谁
{ALERT.SUBJECT}#发送的主题
{ALERT.MESSAGE}#发送的内容
脚本名称 直接填写脚本的名称即可
但要注意 脚本必须放在server端的/usr/lib/zabbix/alertscripts目录下
添加完报警媒介类型后 在报警媒介新增 微信的报警资料 (添加完后不要忘记点击更新)
6.4 配置报警升级
先创建两个用户组
增加报警媒介
修改用户的权限 只有管理员才能接收信息
点击配置--动作
将已经存在的一项更新一下
然后添加一个新的
添加完成后 点击更新此处只添加了两个用户 三个用户 依次往下即可
第7章 快速配置新主机
7.1 配置zabbix本地
server端是zabbix本地服务器 配置和其他服务器略有不同
下载zabbix-agent
[root@zabbix ~]# rpm -ivhhttps://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/3.4/rhel/7/x86_64/zabbix-agent-3.4.14-1.el7.x86_64.rpm
[root@zabbix ~]# vim/etc/zabbix/zabbix_agentd.conf
Timeout=30 #238行 把这个取消注释 改成30即可 server端的 agent不需要修改server
要注意的是 server端要使用zabbix-get测试 -s 后的地址要写127.0.0.1
[root@zabbix ~]# systemctl enablezabbix-agent.service
[root@zabbix ~]# systemctl startzabbix-agent.service
网页配置(server端有zabbix配置好的 只需要启用即可)
server端有已经配好的两个模板 只需要把TCP和内存的模板套用即可
(还需要把agent的conf文件从web服务器拉过来)
把agent里的conf配置文件都拉过来
[root@zabbix ~]# scp -rproot@172.16.1.7:/etc/zabbix/zabbix_agentd.d/* /etc/zabbix/zabbix_agentd.d/
重启一下agent服务
[root@zabbix ~]# systemctl restartzabbix-agent.service
7.2 其他agent端
以db01配置为例 (其实除server端 其他配置除了IP地址都是一样的)
[root@db01 ~]# rpm -ivh https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/3.4/rhel/7/x86_64/zabbix-agent-3.4.14-1.el7.x86_64.rpm
修改agent配置文件 server指向的IP地址是必须要修改的
[root@db01 ~]# vim /etc/zabbix/zabbix_agentd.conf #以下是修改后的内容
Server=172.16.1.71
Timeout=30
启动服务并加入开机自启动
[root@db01 ~]# systemctl enablezabbix-agent.service
[root@db01 ~]# systemctl startzabbix-agent.service
然后进入网页添加
添加模板 直接套用 (这就是创建模板的好处之一 可以直接套用)
把配置文件拉过来 然后重启agent
[root@db01 ~]# scp -rproot@172.16.1.7:/etc/zabbix/zabbix_agentd.d/* /etc/zabbix/zabbix_agentd.d/
[root@db01 ~]# systemctl restartzabbix-agent.service
检查如图两处 可以看出是否有错误 下图已配置完成
第8章 自定义图形配置
8.1 聚合图形配置
聚合图形有助于观察
点击名称 可以进入编辑或查看
点击编辑 增加图片
此处就像是表格 增加行和列 点击更改就可以增加图片
点击图片可以选择图片 右上角可以选择群组(群组就是主机)
下图就是增加完的内容 修改已存在的图片也是点击更改新增也一样
8.2 幻灯片配置
幻灯片一般是在聚合图形的基础上配置
将聚合图形改为幻灯片即可编辑幻灯片
如果只有一个聚合图形 是不需要幻灯片的
点击添加即可 延迟时间就是图片更改时间
8.3 安装图形树
1.安装graphtree
[root@zabbix ~]# cd /usr/share/zabbix
[root@zabbix zabbix]# wget https://raw.githubusercontent.com/OneOaaS/graphtrees/master/graphtree3.0.4.patch
2.导入补丁包
[root@zabbix zabbix]# yum install -y patch
[root@zabbix zabbix]# patch -Np0 <graphtree3.0.4.patch
[root@zabbix zabbix]# chown -R apache.apacheoneoaas
3.新增Apache配置文件
[root@zabbix zabbix]# vim/etc/httpd/conf.d/zabbix.conf
Alias /zabbix /usr/share/zabbix
Alias /oneoaas /usr/share/zabbix/oneoaas
4.重启httpd服务
[root@zabbix zabbix]# systemctl restart httpd
第9章 拆分数据库
9.1 拆分配置过程
LAP+MySQL架构(修改如下两个文件中连接数据库的配置信息)
将zabbix数据库拆分到db01上
要修改以下两个文件的内容
[root@zabbix ~]# ll /etc/zabbix/zabbix_server.conf
[root@zabbix ~]# ll /etc/zabbix/web/zabbix.conf.php
1.在新的数据库上创建zabbix库
[root@db01 ~]# mysql -uroot -pNfsnobody123.com
mysql> create database zabbix character setutf8 collate utf8_bin;
mysql> grant all privileges on zabbix.* tozabbix@'%' identified by 'Nfsnobody123.com';
#到此处会提示权限过大 不用理会
2.在旧的zabbix服务器上备份数据库文件,然后倒至新的数据库
[root@zabbix ~]# mysqldump -uroot \
--databases zabbix \
--single-transaction > `date +%F%H`-zabbix.sql
[root@zabbix ~]# cat 2018-08-2017-zabbix.sql |mysql -h10.0.0.51 -uzabbix -pNfsnobody123.com zabbix
3.修改zabbixServer的数据库连接信息
[root@zabbix ~]# vim /etc/zabbix/zabbix_server.conf 这是修改后的内容
DBHost=172.16.1.51
DBName=zabbix
DBUser=zabbix
DBPassword=Nfsnobody123.com
[root@m01 ~]# systemctl restart zabbix-server 修改后需要重启
4.修改zabbixWeb连接数据库信息
[root@m01 ~]# vim /etc/zabbix/web/zabbix.conf.php 修改后如下图
$DB['TYPE']= 'MYSQL';
$DB['SERVER']= '172.16.1.51';
$DB['PORT']= '0';
$DB['DATABASE'] = 'zabbix';
$DB['USER'] = 'zabbix';
$DB['PASSWORD'] = 'Nfsnobody123.com';
[root@m01 ~]# systemctl restart httpd
9.2 错误案例
如出现如下错误:请检查数据库是否允许远程连接,对应的账户和密码是否配置错误
[root@m01 ~]# tail -f/var/log/zabbix/zabbix_server.log
2189:20180820:173636.941 [Z3001] connection todatabase 'zabbix' failed: [2003] Can't connect to MySQL server on '172.16.1.51'(111)
Zabbix3.4使用详解的更多相关文章
- 自学Zabbix3.5.1-监控项item-key详解
自学Zabbix3.5.1-监控项item-key详解个人觉得艰难理解,故附上原文档:https://www.zabbix.com/documentation/3.0/manual/config/it ...
- zabbix3.x添加H3C网络设备详解
zabbix3.x添加H3C网络设备详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 前言: 欢迎加入:高级运维工程师之路 598432640 相信大家在看我的文章之前,也看过其 ...
- zabbix3.4.7触发器表达式详解
zabbix触发器表达式详解 概述:触发器中的表达式使用很灵活,我们可以创建一个复杂的逻辑测试监控,触发器表达式形式如下: {<server>:<key>.<functi ...
- 搭建zabbix监控系统详解
搭建zabbix监控系统详解 文:warren 博文大纲:一.前言 二.zabbix监控架构三.搭建Zabbix监控服务器四.搭建过程中遇到有些服务无法正常启动的解决办法 一.前言 : 要想实时的 ...
- Linq之旅:Linq入门详解(Linq to Objects)
示例代码下载:Linq之旅:Linq入门详解(Linq to Objects) 本博文详细介绍 .NET 3.5 中引入的重要功能:Language Integrated Query(LINQ,语言集 ...
- 架构设计:远程调用服务架构设计及zookeeper技术详解(下篇)
一.下篇开头的废话 终于开写下篇了,这也是我写远程调用框架的第三篇文章,前两篇都被博客园作为[编辑推荐]的文章,很兴奋哦,嘿嘿~~~~,本人是个很臭美的人,一定得要截图为证: 今天是2014年的第一天 ...
- EntityFramework Core 1.1 Add、Attach、Update、Remove方法如何高效使用详解
前言 我比较喜欢安静,大概和我喜欢研究和琢磨技术原因相关吧,刚好到了元旦节,这几天可以好好学习下EF Core,同时在项目当中用到EF Core,借此机会给予比较深入的理解,这里我们只讲解和EF 6. ...
- Java 字符串格式化详解
Java 字符串格式化详解 版权声明:本文为博主原创文章,未经博主允许不得转载. 微博:厉圣杰 文中如有纰漏,欢迎大家留言指出. 在 Java 的 String 类中,可以使用 format() 方法 ...
- Android Notification 详解(一)——基本操作
Android Notification 详解(一)--基本操作 版权声明:本文为博主原创文章,未经博主允许不得转载. 微博:厉圣杰 源码:AndroidDemo/Notification 文中如有纰 ...
随机推荐
- hadoop_2.6.5集群安装
安装hadoop2.6.5集群: 1.规划设计: JacK6:NameNode,jobtracker JacK7:secondnode,datenode,tasktracker JacK8:datan ...
- HanLP《自然语言处理入门》笔记--2.词典分词
2. 词典分词 中文分词:指的是将一段文本拆分为一系列单词的过程,这些单词顺序拼接后等于原文本. 中文分词算法大致分为基于词典规则与基于机器学习这两大派. 2.1 什么是词 在基于词典的中文分词中,词 ...
- Nginx进阶
常见的web架构 LAMP - Linux +Apache +MySQL + PHP LNMP - Linux +Nginx + Mysql + PHP RHEL开源 Linux系统 RHEL C ...
- springcloud Eureka设置服务下线上线事件通知
最近由于微服务会莫名其妙挂掉,导致一些服务宕机: 固所以寻找解决办法,莫名宕机暂时还未查明原因,先人肉解决办法 Eureka的server端会发出5个事件通知,分别是: EurekaInstanceC ...
- 一道面试题引发的对 Java 内存模型的一点疑问
一道面试题引发的对Java内存模型的一点疑问 问题描述 如上图所示程序,按道理,子线程会通过 num++ 操作破坏 while 循环的条件,从而终止循环,执行最后的输出操作.但在我的多次运行中,偶尔会 ...
- springboot使用servlet
基于注解方式: 基于配置类:
- 视觉slam十四讲第七章课后习题7
版权声明:本文为博主原创文章,转载请注明出处:http://www.cnblogs.com/newneul/p/8544369.html 7.题目要求:在ICP程序中,将空间点也作为优化变量考虑进来 ...
- 视觉slam十四讲ch5 joinMap.cpp 代码注释(笔记版)
#include <iostream> #include <fstream> using namespace std; #include <opencv2/core/co ...
- springboot结合Docker部署
工程目录 创建Dockerfile FROM java VOLUME /tmp ADD springboot-docker-0.0.1-SNAPSHOT.jar app.jar RUN bash -c ...
- 关于ThinkPHP在Nginx服务器下因PATH_INFO出错的解决方法
参考:https://www.linuxidc.com/Linux/2011-11/46871.htm 这是一个ningx设置的问题,和TP无关.TP默认使用PATH_INFO来做CURD,而ngin ...