Opserver 初探一《Opserver的搭建》
Opserver 是Stack Overflow的开源监控产品。stackoverflow网站是基于asp.net开发的,具体采用的软硬件配置可以查看《StackOverflow 这么大,究竟用在什么硬件设备》。我们可以了解到stackoverflow的大致运行环境:
数据库:sql server
缓存服务器:redis
web服务器:windows server/IIS
搜索服务器:ElasticSearch
标签服务器:未知
负载均衡:HAProxy
so, opserver 直接提供的可监控服务是sql server ,redis,ElasticSearch,HAProxy,exception等。
1、Opserver 监控搭建
可以到https://github.com/opserver/Opserver,下载Opserver 源码,里面包含 Opserver监控网站和Opserver.Core两个项目。
直接编译启动,会报没有设置SecuritySettings.config错误。查看web.config ,默认指定了文件在Config\SecuritySettings.config
<SecuritySettings configSource="Config\SecuritySettings.config" />
监控配置设置在“Config\”下的json文件。
找到config文件夹,我们可以看到多个以"*.example"结尾的文件,如:
CloudFlareSettings.json.example //CloudFlare监控配置
DashboardSettings.json.example //仪表盘配置
ElasticSettings.json.example //ElasticSearch监控配置
ExceptionsSettings.json.example //Exceptions异常数据监控配置
HAProxySettings.json.example //HAProxy监控配置
JiraSettings.json.example //Jira问题配置
PagerDutySettings.json.example //
PollingSettings.json.example //
RedisSettings.json.example //Redis监控配置
SecuritySettings.config.example //Security安全设置
SQLSettings.json.example //sql server配置
查看github opserver介绍和SecuritySettings.config.example,”SecuritySettings.config“为opserver网站的安全配置,example中启用的默认配置为AD("ad")认证登入,其他还有“alladmin",view all。因环境中没有AD服务,这里使用"alladmin"配置登录opserver网站(即所有人都已管理员身份登录)。
<SecuritySettings provider="alladmin" />
启动网站,用户名和密码可输也可以不输,点击登录,可以直接进入网站。此时网站显示可以没有配置任何监控项。
Uh no! No Configuration found! No configuration data was found. This means no Opserver sections are configured/enabled or you have no roles assigned to you. See the Readme.txt in /config and *.example files for examples of a basic JSON configuration...or you can implement your own provider to get settings from anywhere. If you are using AD authentication, set the ViewGroups or AdminGroups settings in the web.config or in the section-specific configuration. You can also browse to /about to see how you have been authenticated and what monitors have been enabled.
2、配置redis监控
从redissetting.json.example上看,配置分“allservers",和”servers"节点,allservers是servers节点的子集,即可以认为allservers等同于是servers的某一个子节点。通过阅读代码Opserver.Core项目Setting文件夹下的RedisSettings.cs文件,确定了这一点,allservers是单个Server,servers是List<server>。redis监控数据实例的加载可以查看Opserver.Core项目data/Redis文件夹下的RedisModule.cs
private static List<RedisConnectionInfo> LoadRedisConnections()
{
var result = new List<RedisConnectionInfo>();
var defaultServerInstances = Current.Settings.Redis.Defaults.Instances;
var allServerInstances = Current.Settings.Redis.AllServers.Instances; foreach (var s in Current.Settings.Redis.Servers)
{
var count = result.Count;
// Add instances that belong to any servers
allServerInstances?.ForEach(gi => result.Add(new RedisConnectionInfo(s.Name, gi))); // Add instances defined on this server
if (s.Instances.Any())
s.Instances.ForEach(i => result.Add(new RedisConnectionInfo(s.Name, i))); // If we have no instances added at this point, defaults it is!
if (defaultServerInstances != null && count == result.Count)
defaultServerInstances.ForEach(gi => result.Add(new RedisConnectionInfo(s.Name, gi)));
}
return result;
}
从中可以看出,allservers和default下的实例配置,会影响servers下的配置,allservers和default的实例被添加到servers的各个节点,可以理解allservers和default的配置为通用配置,另外如果allservers,servers下有实例 ,default下实例不起作用。如果要自定义实例加载,可以修改这段代码。实际配置中我们只要配置servers就可以了。如:
{
"Servers": [ {
"name": "192.168.1.100",
"instances": [ { "name": "is not cluster Redis", "port": "6379" } ]
}, {
"name": "192.168.1.101",
"instances": [
{
"name": "cluster master",
"port": "6379",
"password": "*******"
}]
},
{
"name": "192.168.1.102",
"instances": [
{
"name": "cluster slave",
"port": "6379",
"password": "*******"
}]
}
]
}
3、SQL SERVER监控
从SQLSettings.json.example文件中,可以看出sql 配置比较简单,主要分集群cluster和单实例instance配置,注意所有的name都指网络机器名,可以用IP代替。具体的配置细节可以查看Opserver.Core项目下setting文件夹的,sqlsetting.cs文件。示例:
{
"defaultConnectionString": "Data Source=$ServerName$;User ID=sa;Password=*****;Initial Catalog=master;",
"clusters": [
{
"name": "192.168.1.120",
"refreshIntervalSeconds": 20,
"nodes": [
{ "name": "192.168.1.121" },
{ "name": "192.168.1.122" },
{ "name": "192.168.1.123" },
]
}
],
"instances": [
{
"name": "192.168.1.131",
"connectionString":"Data Source=192.168.1.131;User ID=sa;Password=*********;Initial Catalog=master;"
}
]
}
注意:defaultConnectionString 默认情况下节点不能删除,值可以为空。集群和实例必须存在其一,不然SQL监控页面不呈现。
Opserver 初探一《Opserver的搭建》的更多相关文章
- Opserver 初探二《exceptions配置》
上一节主要介绍Opserver的搭建以及redis.sqlserver监控的配置,本节主要介绍异常日志的记录和监控.要实现异常日志的监控我们需要在项目中引入StackExchange.Exceptio ...
- Opserver 初探三《服务器数据监控》
用Opserver 怎么像zabbix一样监控服务器呢,查看github官方说明,Opserver可用于连接任何支持Bosun, Orion, or direct WMI监控数据. Opserver ...
- 初探appium之环境搭建
前段时间一直在折腾python的爬虫,想搞接口自动化.但是写了一个月,发现在我现在的这份的工作中根本接触不到接口.所以就想先放下来,先做点目前能够接触到的,也需要做的东西. 东西越来越多,人手不足.自 ...
- Vue.js 入门指南之“前传”(含sublime text 3 配置)
题记:关注Vue.js 很久了,但就是没有动手写过一行代码,今天准备入手,却发现自己比菜鸟还菜,于是四方寻找大牛指点,才终于找到了入门的“入门”,就算是“入门指南”的“前传”吧.此文献给跟我一样“白痴 ...
- 采用Opserver来监控你的ASP.NET项目系列(一、Opserver监控的简介与平台搭建)
前言 之前有过2篇关于如何监控ASP.NET core项目的文章,有兴趣的也可以看看. 今天我们主要来讲讲如何监控我们的ASP.NET项目. 首先我们来介绍一下,什么是Opserver,它是Stack ...
- Opserver开源的服务器监控系统(ASP.NET)
Opserver是Stack Exchange下的一个开源监控系统,系统本身由C#语言开发的ASP.NET(MVC)应用程序,无需任何复杂的应用配置,入门很快.下载地址:https://github. ...
- JavaScript学习(一) —— 环境搭建与JavaScript初探
1.开发环境搭建 本系列教程的开发工具,我们采用HBuilder. 可以去网上下载最新的版本,然后解压一下就能直接用了.学习JavaScript,环境搭建是非常简单的,或者说,只要你有一个浏览器,一个 ...
- 监控系统Opserver的配置调试
Stack Exchange开源其监控系统Opserver有一段时间了.之前在项目中用过他们的MiniProfile来分析页面执行效率和帮助新人了解项目,当他们开源了其监控系统的时候正好部门也在关注监 ...
- Opserver简单部署
版权声明:本文为博主原创文章,未经博主允许不得转载. 一.下载opserver项目 地址:https://github.com/opserver/Opserver/ 二.用vs2012及以上版本打卡o ...
随机推荐
- noexcept(c++11)
1.概念 1)c++中的异常处理是在运行时而不是编译时检测的,为了实现运行时检测,编译器可能会创建额外的异常处理代码,然而这会妨碍程序优化 2)noexcept说明符:若修饰函数(紧跟在参数列表后面) ...
- AdapterViewFlipper功能 自动播放的图片库
案例中有"上一个""下一个""自动播放",但是我觉得可以更加完善一下,点击自动播放,按钮变成"停止播放",在按" ...
- HDU 2561 第二小整数 (排序)
题意:中文题. 析:输入后,排一下序就好. 代码如下: #include <iostream> #include <cstdio> #include <algorithm ...
- HDU 1087 Super Jumping! Jumping! Jumping! (DP+LIS)
题意:给定一个长度为n的序列,让你求一个和最大递增序列. 析:一看,是不是很像LIS啊,这基本就是一样的,只不过改一下而已,d(i)表示前i个数中,最大的和并且是递增的, 如果 d(j) + a[i] ...
- C++总的const使用说明
C++总的const使用说明 1. const修饰类成员变量 程序: #include <iostream> using namespace std; class A { public: ...
- This problem will occur when running in 64 bit mode with the 32 bit Oracle client components installed(在64位模式下运行安装了32位的Oracle客户端组件时,会发生此问题)
部署win服务时出现下面的问题: 在事件查看器中看到如下错误: 日志名称: Application来源: ***调度服务日期: 2014/5/21 12:53:21事件 ID: 0任务类别: 无级别: ...
- Jack Clark 的几句名言
Grateful for everything; entitled to nothing. 沒有任何事情是你不该感激的:沒有任何东西是你该派得到的. Leadership is the ability ...
- Banana
Banana 除了有香蕉的意思外,还表示 喜剧演员
- SQL反模式-1
SQL反模式讲了很多数据库设计中遇到的难题.跟我最近的工作很相关.因此特意拜读了下.本文主要讲解"多值列"和"幼稚的树" 多值列要分成映射表,比如(A,B),其 ...
- 项目笔记---WPF之Metro风格UI
写在前面 作为新年开篇的文章,当然要选择比较“Cool”的东西来分享,这自然落到了WPF身上,WPF技术自身可塑性非常强,其强大的绘图技术以及XAML技术比WinForm而言有本质的飞跃. 切入正题, ...