背景

随着互联网的发展,各种网络攻击手段也层出不穷,不管是大型企业还是中小企业,随时都有被攻击的危险,因此很多公司都会采取各种手段来维护自己服务器安全,其中比较常见的是采用内网环境,只设置一台代理服务器,其他服务器都走代理,这样即使遭受攻击对内网环境的服务器影响还是很小的。那这种情况下怎么监控服务器,数据库的性能,有人说有开源软件啊,例如 zabbix nagios 等,但别忘了,使用这2种 监控软件从配置监控开始,到后期一天天的维护,这可是都需要专人来看管的。

那么问题来了,内网环境的数据库监控有没有简单,安全,直观的解决方法?

答案是肯定的,本文就针对内网环境如何部署 Cloud Insight 监控,并且直观展示服务器数据库的各项指标,那话不多说,开始操作,本文对2种代理方式分别进行配置。

环境变量里面设置 http_proxy

如果你服务器的环境变量里面设置了 http_proxy,那可以直接修改探针的配置文件,首先单独下载探针包,在本地进行安装,探针包里包含 Python 所需要的环境变量:

CentOS 环境

wget http://yum.oneapm.com/x86_64/oneapm-ci-agent-4.2.0-1.x86_64.rpm
rpm -Uvh oneapm-ci-agent-4.2.0-1.x86_64.rpm

Ubuntu 环境

wget http://apt.oneapm.com/pool/main/oneapm-ci-agent_4.2.0-1_amd64.deb  
dpkg -i oneapm-ci-agent_4.2.0-1_amd64.deb

安装好探针后好不能启动,在 /etc/oneapm-ci-agent 目录下面复制一份 oneapm-ci-agent.conf ,这是探针的配置文件,探针会根据这个文件把数据发送到相应的服务器上,然后修改配置文件如下:

# If you need a proxy to connect to the Internet, provide the settings here
ci_url: https://dc-cloud.oneapm.com
proxy_host: my_host
proxy_port: my_port
proxy_user: my_user
proxy_password: my_password
license_key: 自己的 license_key

数据通过配置的代理发送到 ci_url 指定的地址 https://dc-cloud.oneapm.com/infrastructure/metrics.do,最后的 license_key 是标识你应用的,所以要改成自己的 license_key,接下来重启探针即可生效。

使用 Nginx Http Proxy 代理服务器

如果使用 Nginx Http Proxy 代理服务器,配置相对多一些,首先是单独下载安装探针:

wget http://yum.oneapm.com/x86_64/oneapm-ci-agent-4.2.0-1.x86_64.rpm
rpm -Uvh oneapm-ci-agent-4.2.0-1.x86_64.rpm

创建一个 8082.conf 的配置文件,然后修改这个 Nginx 代理配置文件如下:

server {
        server_name 192.168.43.145 127.0.0.1;
        listen 8082;   
        access_log /var/log/nginx/8082.log main;
        location /{
            proxy_pass https://dc-cloud.oneapm.com/ ;
            proxy_redirect  default;
            proxy_set_header X-Real-IP        $remote_addr;
            proxy_set_header X-Forwarded-For  $proxy_add_x_forwarded_for;

}

listen 8082 表示监听端口,可以修改为任意端口,但是一定要在防火墙打开这个端口。

同样复制并修改 /etc/oneapm-ci-agent/ 下 Cloud Insight 的配置文件,oneapm-ci-agent.conf

ci_url:http://192.168.43.145:8082    
skip_ssl_validation: yes     # 跳过 ssl 加密
license_key: 自己的 license_key

这样重启探针即可生效,通过配置的 ci_url ,探针将数据发送到 http://192.168.43.145:8082/infrastructure/metrics.do ,而这个地址经由 Nginx 代理服务器 8082 端口进行处理,这个地址和配置文件进行匹配再将数据转发到 Cloud Insight 的服务器 https://dc-cloud.oneapm.com/infrastructure/metrics.do,这样数据就发送出去了。之后后端对数据进行处理,在 web 上进行展示。

用户实例

以下是用户局域网内采用 Http Nginx 代理 (已征得用户同意),配置 Ai (Java Application Insight) 探针和 Ci (Cloud Insight) 探针监控自己服务器组件和应用的文章,参考: 局域网无外网的机器使用ai+ci的办法,用户的主要操作是:

  • 首先配置 Nginx 8087.conf 文件,集成 Ai Ci 配置代理,通过监控 8087 端口,Ai 的数据发送到 https://tpm.oneapm.com:443/,Ci 的数据发送到 https://dc-cloud.oneapm.com/infrastructure/
  • 修改 Ai 的配置文件,编辑 shell 脚本批量安装 Ai 探针并启动 tomcat,里面嵌入了 Ai 探针的探针包。
  • 编辑 Ci 配置文件 oneapm-ci-agent.conf,启动 Ci 探针,使得探针收集的数据传到 http://172.18.10.63:8087 ,再由 http://172.18.10.63 服务器的8087 端口进行转发,通过代理传出去。

通过这几步,就可以监控上服务器性能以及 Java 应用性能了。