分类:linux日期:2020-05-12 - 21:22:20评论:2条作者:老谢
不知道哪位大神最近在做法机房攻击频发,一被攻击路由就绕路,为了监控发生频率故需对路由进行监控,思路为使用BESTTRACE来追踪理由,利用bash脚本对追踪结果进行分析,并交由zabbix做映射值。
安装BESTTRACE
BESTTRACE是ipip.net推出的Linux版路由追踪工具,可以替代traceroute命令,该工具可以输出json数据,及查ip所属地和AS号,但实际情况发现查询频率过高,会导致返回503错误,可能是ipip.net做了请求限制,避免滥用。
wget http://cdn.ipip.net/17mon/besttrace4linux.zip
unzip besttrace4linux.zip
chmod +x besttrace
mv besttrace /usr/sbin/
chmod +s /usr/sbin/besttrace |
wget http://cdn.ipip.net/17mon/besttrace4linux.zip
unzip besttrace4linux.zip
chmod +x besttrace
mv besttrace /usr/sbin/
chmod +s /usr/sbin/besttrace
外部脚本监控
cd /usr/local/zabbix/share/zabbix/externalscripts
vim besttrace.sh
#!/bin/bash
IP=$1
var=$RANDOM
/usr/sbin/besttrace -q 1 -l -a $IP > /tmp/besttrace/tmp.$var
if [ `grep -c -E 'jp|tko' /tmp/besttrace/tmp.$var` != 0 ]; then
if [ `grep -c -E '219.158' /tmp/besttrace/tmp.$var` != 0 ]; then
echo "1"
else
echo "2"
fi
elif [ `grep -c -E 'us' /tmp/besttrace/tmp.$var` != 0 ]; then
if `grep -c -E '219.158' /tmp/besttrace/tmp.$var` != 0 ]; then
echo "3"
else
echo "4"
fi
elif [ `grep -c -E 'he.net' /tmp/besttrace/tmp.$var` != 0 ]; then
echo "5"
else
echo "0"
fi
rm -rf /tmp/besttrace/tmp.$var |
cd /usr/local/zabbix/share/zabbix/externalscripts
vim besttrace.sh
#!/bin/bash
IP=$1
var=$RANDOM
/usr/sbin/besttrace -q 1 -l -a $IP > /tmp/besttrace/tmp.$var
if [ `grep -c -E 'jp|tko' /tmp/besttrace/tmp.$var` != 0 ]; then
if [ `grep -c -E '219.158' /tmp/besttrace/tmp.$var` != 0 ]; then
echo "1"
else
echo "2"
fi
elif [ `grep -c -E 'us' /tmp/besttrace/tmp.$var` != 0 ]; then
if `grep -c -E '219.158' /tmp/besttrace/tmp.$var` != 0 ]; then
echo "3"
else
echo "4"
fi
elif [ `grep -c -E 'he.net' /tmp/besttrace/tmp.$var` != 0 ]; then
echo "5"
else
echo "0"
fi
rm -rf /tmp/besttrace/tmp.$var
映射值
0 ⇒ 正常
1 ⇒ 联通-日本
2 ⇒ 电信-日本
3 ⇒ 联通-美国
4 ⇒ 电信-美国
5 ⇒ he.net
bash写的太烂,各位大佬指正。
分类:linux日期:2020-04-07 - 11:25:15评论:2条作者:老谢
首先要确认Nginx有没有编译stream模块进去,使用nginx -V来查看,如果看到–with-stream则表示编译进去了,如果没用重新编译加入stream参数即可,配置字段要加到nginx.conf下面:
stream {
server {
listen 12345;
proxy_pass 1.1.1.1:1111;
proxy_buffer_size 512k;
proxy_connect_timeout 30s;
proxy_timeout 30s;
#allow 127.0.0.0/24;
#deny all;
}
server {
listen 1083;
proxy_pass 2.2.2.2:1080;
proxy_buffer_size 512k;
proxy_connect_timeout 30s;
proxy_timeout 30s;
#allow 127.0.0.0/24;
#deny all;
}
} |
stream {
server {
listen 12345;
proxy_pass 1.1.1.1:1111;
proxy_buffer_size 512k;
proxy_connect_timeout 30s;
proxy_timeout 30s;
#allow 127.0.0.0/24;
#deny all;
}
server {
listen 1083;
proxy_pass 2.2.2.2:1080;
proxy_buffer_size 512k;
proxy_connect_timeout 30s;
proxy_timeout 30s;
#allow 127.0.0.0/24;
#deny all;
}
}
listen:后面填写源端口(也就是当前服务器端口),默认协议为TCP,可以指定为
proxy_connect_timeout:连接超时时间
proxy_timeout:超时时间
proxy_pass:填写转发目标的IP及端口号
分类:linux日期:2020-03-05 - 10:26:39评论:0条作者:老谢
http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html下载Linux x64 Compressed Archive版本最新的安装包。
tar -zxf jdk-8u241-linux-x64.tar.gz
mkdir /usr/local/java/
mv jdk1.8.0_241/ /usr/local/java/
vim /etc/profile |
tar -zxf jdk-8u241-linux-x64.tar.gz
mkdir /usr/local/java/
mv jdk1.8.0_241/ /usr/local/java/
vim /etc/profile
添加以下:
export JAVA_HOME=/usr/local/java/jdk1.8.0_241
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH |
export JAVA_HOME=/usr/local/java/jdk1.8.0_241
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
source /etc/profile
ln -s /usr/local/java/jdk1.8.0_241/bin/java /usr/bin/java
java -version |
source /etc/profile
ln -s /usr/local/java/jdk1.8.0_241/bin/java /usr/bin/java
java -version
分类:linux日期:2018-12-12 - 22:06:09评论:0条作者:老谢
通过BIND内置的监控模块提供统计数据,需在named.conf加入以下行打开该功能:
statistics-channels {
inet 127.0.0.1 port 8053 allow { 127.0.0.1; };
}; |
statistics-channels {
inet 127.0.0.1 port 8053 allow { 127.0.0.1; };
};
编辑/usr/local/zabbix/etc,加入:
UserParameter=bind.queries.in[*],curl http://127.0.0.1:8053/ 2>/dev/null | /usr/bin/xml2 | grep -A1 "/isc/bind/statistics/server/queries-in/rdtype/name=$1$" | tail -1 | cut -d= -f2
UserParameter=bind.queries.out[*],curl http://127.0.0.1:8053/ 2>/dev/null | /usr/bin/xml2 | grep -A1 "/isc/bind/statistics/views/view/rdtype/name=$1$" | tail -1 | cut -d= -f2
#注意,需要安装xml2,可以使用yum install xml2来安装 |
UserParameter=bind.queries.in[*],curl http://127.0.0.1:8053/ 2>/dev/null | /usr/bin/xml2 | grep -A1 "/isc/bind/statistics/server/queries-in/rdtype/name=$1$" | tail -1 | cut -d= -f2
UserParameter=bind.queries.out[*],curl http://127.0.0.1:8053/ 2>/dev/null | /usr/bin/xml2 | grep -A1 "/isc/bind/statistics/views/view/rdtype/name=$1$" | tail -1 | cut -d= -f2
#注意,需要安装xml2,可以使用yum install xml2来安装
PS:折腾一圈发现,模板里没有包含OUT的监控,而且命令执行后OUT是空的,不太熟悉bind-statistics输出的内容,以后再研究吧……
继续阅读…
和之前写过的Zabbix 3.2 agentd监控Nginx性能原理差不多,都是通过web引擎输出status信息来进行性能监控,一般情况下我们需要对ReqPerSec、BytesPerSec、BusyWorkers、IdleWorkers四个数据进行关注。
开启Apache Status
Listen 80
<VirtualHost *:80>
CustomLog /dev/null common
ErrorLog /dev/null
<Location "/server-status">
SetHandler server-status
Require ip 127.0.0.1
</Location>
</VirtualHost> |
Listen 80
<VirtualHost *:80>
CustomLog /dev/null common
ErrorLog /dev/null
<Location "/server-status">
SetHandler server-status
Require ip 127.0.0.1
</Location>
</VirtualHost>
我这里生产环境监控的是一台WHM服务器,默认开启apache status,访问地址为http://127.0.0.1:80/whm-server-status?auto,正常情况下应该如下页面内容:
Apache Server Status for 127.0.0.1 (via 127.0.0.1)
Server Version: Apache/2.4.37 (cPanel) OpenSSL/1.0.2p mod_bwlimited/1.4
Server MPM: prefork
Server Built: Oct 29 2018 18:29:24
Current Time: Thursday, 22-Nov-2018 13:48:50 CST
Restart Time: Thursday, 22-Nov-2018 13:48:35 CST
Parent Server Config. Generation: 1
Parent Server MPM Generation: 0
Server uptime: 15 seconds
Server load: 0.05 0.09 0.08
Total accesses: 7 – Total Traffic: 54 kB – Total Duration: 19687
CPU Usage: u.02 s0 cu0 cs0 – .133% CPU load
.467 requests/sec – 3686 B/second – 7.7 kB/request – 2812.43 ms/request
7 requests currently being processed, 4 idle workers
……………
继续阅读…
Zabbix版本从3.0之后,开始支持Zabbix server, Zabbix proxy, Zabbix agent, zabbix_sender and zabbix_get之间的通信加密,加密方式有预共享密钥(PSK)和证书加密,加密配置是可选项,一些proxies和agents可以使用证书认证加密通信,另外一些可以使用PSK加密通信,而剩余的可以不使用加密进行通信,需要注意的是如果希望使用加密通信,编译的时候必须加入 –with-openssl参数。
生成并添加PSK共享密钥
使用命令openssl rand -hex 32生产一串密钥,配置步骤如下:
[root@zabbix scripts]# openssl rand -hex 32
ef52cbe2d1a35e6bb3c43b22bd4f1a1d7bf24d1ccb7c47f6a602425970da5432
# 将生成的密钥写入该文件
vim /usr/local/zabbix/etc/zabbix_agentd.conf.d/zabbix_agentd.psk
vim /usr/local/zabbix/etc/zabbix_agentd.conf
#加入
TLSConnect=psk
TLSAccept=psk
TLSPSKFile=/usr/local/zabbix/etc/zabbix_agentd.conf.d/zabbix_agentd.psk
TLSPSKIdentity=PSKTest
#配置完成后重启zabbix_agent进程 |
[root@zabbix scripts]# openssl rand -hex 32
ef52cbe2d1a35e6bb3c43b22bd4f1a1d7bf24d1ccb7c47f6a602425970da5432
# 将生成的密钥写入该文件
vim /usr/local/zabbix/etc/zabbix_agentd.conf.d/zabbix_agentd.psk
vim /usr/local/zabbix/etc/zabbix_agentd.conf
#加入
TLSConnect=psk
TLSAccept=psk
TLSPSKFile=/usr/local/zabbix/etc/zabbix_agentd.conf.d/zabbix_agentd.psk
TLSPSKIdentity=PSKTest
#配置完成后重启zabbix_agent进程
在zabbix web gui中添加
测试命令
zabbix_get -s 127.0.0.1 -k "system.cpu.load[all,avg1]" --tls-connect=psk --tls-psk-identity="PSK 001" --tls-psk-file=/etc/zabbix/zabbix_agentd.conf.d/zabbix_agentd.psk |
zabbix_get -s 127.0.0.1 -k "system.cpu.load[all,avg1]" --tls-connect=psk --tls-psk-identity="PSK 001" --tls-psk-file=/etc/zabbix/zabbix_agentd.conf.d/zabbix_agentd.psk
分类:linux日期:2018-11-21 - 19:36:01评论:0条作者:老谢
Zabbix 4.0 LTS
2018年10月1日,Zabbix官方正式发布Zabbix 4.0 LTS版本,作为长期支持版本,意味着可以获得官方5年的支持。其中完全支持到2021年10月31日,以及有限支持到2023年10月31日,同时官方4.0文档已经更新。
最直观的感受就是重新设计了图形展示,新增了Kiosk模式实现真正意义上的全屏,可以直接做大屏展示,时间选择器做的和Kibana类似;
Zabbix 4.0 LTS对分布式监控Proxy方式也做了优化,引入了与Proxy通信的压缩,大大减少了传输数据的大小。从而提高了性能。
Zabbix 4.0 LTS 详细了解优化及新增功能参考如下:
新增功能[:https://www.zabbix.com/whats_new]
官方文档:[https://www.zabbix.com/documentation/4.0/manual].
Grafana v5.3
- Grafana v5.3带来了新功能,许多增强功能和错误修复。
- Google Stackdriver作为核心数据源;
- 电视模式得到改善,更易于访问
- 提醒通知提醒;
- Postgres获得了一个新的查询构建器;
- 改进了对Gitlab的OAuth支持;
- 带模板变量过滤的注释;
- 具有自由文本支持的变量。
Grafana5.3 详细了解优化及新增功能参考如下:
新增功能:http://docs.grafana.org/guides/whats-new-in-v5-3/
安装
wget https://s3-us-west-2.amazonaws.com/grafana-releases/release/grafana-5.3.0-1.x86_64.rpm
yum -y install fontconfig freetype* urw-fonts
yum -y install grafana-5.3.0-1.x86_64.rpm
chkconfig --add grafana-server
chkconfig grafana-server on
grafana-cli plugins install alexanderzobnin-zabbix-app
/etc/init.d/grafana-server restart
#zabix的api地址是根目录下的<em>api_jsonrpc.php</em>,grafana默认端口号3000,抄自:http://blog.51cto.com/10880347/2306804。 |
wget https://s3-us-west-2.amazonaws.com/grafana-releases/release/grafana-5.3.0-1.x86_64.rpm
yum -y install fontconfig freetype* urw-fonts
yum -y install grafana-5.3.0-1.x86_64.rpm
chkconfig --add grafana-server
chkconfig grafana-server on
grafana-cli plugins install alexanderzobnin-zabbix-app
/etc/init.d/grafana-server restart
#zabix的api地址是根目录下的<em>api_jsonrpc.php</em>,grafana默认端口号3000,抄自:http://blog.51cto.com/10880347/2306804。
分类:linux日期:2018-10-29 - 10:11:04评论:1条作者:老谢
这两天在学习DNS,经过两天的折腾对DNS终于有了一些了解,以下内容大部分来自网络,本文只是整理记录以便自己回顾学习的目的,本文建立在已知DNS作用的情况下。
1. 基本概念
1.1 域名
域名分为三个部分,用“.”(点)分割。严格的域名最后还有一个”.”,但一般省略不写。
举例来说,www.example.com真正的域名是www.example.com.root,简写为www.example.com.。因为,根域名.root对于所有域名都是一样的,所以平时是省略的。
根域名的下一级,叫做”顶级域名”(top-level domain,缩写为TLD),比如.com、.net;再下一级叫做”次级域名”(second-level domain,缩写为SLD),比如www.example.com里面的.example,这一级域名是用户可以注册的;再下 一级是主机名(host),比如www.example.com里面的www,又称为”三级域名”,这是用户在自己的域里面为服务器分配的名称,是用户可以任意分配的。
总结一下,域名的层级结构如下。
主机名.次级域名.顶级域名.根域名
# 即
host.sld.tld.root
-类型 标识此域名的类型(com/net/org/edu/gov/info/xyz/cc/...)
-域名 域名称
-主机名 该域中的某台主机名称
例如:laoxie.me
www: 主机名
xj123:域名称
info: 类型 |
host.sld.tld.root
-类型 标识此域名的类型(com/net/org/edu/gov/info/xyz/cc/...)
-域名 域名称
-主机名 该域中的某台主机名称
例如:laoxie.me
www: 主机名
xj123:域名称
info: 类型
继续阅读…
最新评论
老何:不至于跌得这么狠吧
Andy烧麦:这些大厂都能提供必要的售后
王光卫博客:小米生态还是比较丰富
空空裤兜:在天猫买的利维斯顿,阿里智能APP...
林羽凡:我突然发现,你也记录了很多博文了。
菊座:小米的东西还行
zwwooooo:一般电器产品都jd,就是想售后身心
zwwooooo:能随便搞个公司玩玩也算是实力选手
大D:坚持就是胜利哈哈哈
老麦:看着那一排日志存档,老前辈了啊。