Help
RSS
API
Feed
Maltego
Contact
Domain > blog.best-practice.se
×
Welcome!
Right click nodes and scroll the mouse to navigate the graph.
×
More information on this domain is in
AlienVault OTX
Is this malicious?
Yes
No
DNS Resolutions
Date
IP Address
2014-11-28
64.233.181.121
(
ClassC
)
2025-02-04
142.251.211.243
(
ClassC
)
Port 80
HTTP/1.1 200 OKContent-Type: text/html; charsetUTF-8Expires: Tue, 04 Feb 2025 20:11:49 GMTDate: Tue, 04 Feb 2025 20:11:49 GMTCache-Control: private, max-age0Last-Modified: Wed, 29 Jan 2025 07:44:38 GMTX-Content-Type-Options: nosniffX-XSS-Protection: 1; modeblockServer: GSEAccept-Ranges: noneVary: Accept-EncodingTransfer-Encoding: chunked !DOCTYPE html>html classv2 dirltr xmlnshttp://www.w3.org/1999/xhtml xmlns:bhttp://www.google.com/2005/gml/b xmlns:datahttp://www.google.com/2005/gml/data xmlns:exprhttp://www.google.com/2005/gml/expr>head>link hrefhttps://www.blogger.com/static/v1/widgets/3566091532-css_bundle_v2.css relstylesheet typetext/css/>meta contentIEEmulateIE7 http-equivX-UA-Compatible/>meta contentwidth1100 nameviewport/>meta contenttext/html; charsetUTF-8 http-equivContent-Type/>meta contentblogger namegenerator/>link hrefhttp://blog.best-practice.se/favicon.ico relicon typeimage/x-icon/>link hrefhttp://blog.best-practice.se/ relcanonical/>link relalternate typeapplication/atom+xml titleBest Practice Blog - Atom hrefhttp://blog.best-practice.se/feeds/posts/default />link relalternate typeapplication/rss+xml titleBest Practice Blog - RSS hrefhttp://blog.best-practice.se/feeds/posts/default?altrss />link relservice.post typeapplication/atom+xml titleBest Practice Blog - Atom hrefhttps://www.blogger.com/feeds/7621739724995317812/posts/default />!--Cant find substitution for tag blog.ieCssRetrofitLinks-->meta contenthttp://blog.best-practice.se/ propertyog:url/>meta contentBest Practice Blog propertyog:title/>meta content propertyog:description/>title>Best Practice Blog/title>style idpage-skin-1 typetext/css>!--/*-----------------------------------------------Blogger Template StyleName: SimpleDesigner: BloggerURL: www.blogger.com----------------------------------------------- *//* Content----------------------------------------------- */body {font: normal normal 12px Arial, Tahoma, Helvetica, FreeSans, sans-serif;color: #222222;background: #66bbdd none repeat scroll top left;padding: 0 40px 40px 40px;}html body .region-inner {min-width: 0;max-width: 100%;width: auto;}h2 {font-size: 22px;}a:link {text-decoration:none;color: #2288bb;}a:visited {text-decoration:none;color: #888888;}a:hover {text-decoration:underline;color: #33aaff;}.body-fauxcolumn-outer .fauxcolumn-inner {background: transparent url(https://resources.blogblog.com/blogblog/data/1kt/simple/body_gradient_tile_light.png) repeat scroll top left;_background-image: none;}.body-fauxcolumn-outer .cap-top {position: absolute;z-index: 1;height: 400px;width: 100%;}.body-fauxcolumn-outer .cap-top .cap-left {width: 100%;background: transparent url(https://resources.blogblog.com/blogblog/data/1kt/simple/gradients_light.png) repeat-x scroll top left;_background-image: none;}.content-outer {-moz-box-shadow: 0 0 40px rgba(0, 0, 0, .15);-webkit-box-shadow: 0 0 5px rgba(0, 0, 0, .15);-goog-ms-box-shadow: 0 0 10px #333333;box-shadow: 0 0 40px rgba(0, 0, 0, .15);margin-bottom: 1px;}.content-inner {padding: 10px 10px;}.content-inner {background-color: #ffffff;}/* Header----------------------------------------------- */.header-outer {background: transparent none repeat-x scroll 0 -400px;_background-image: none;}.Header h1 {font: normal normal 60px Arial, Tahoma, Helvetica, FreeSans, sans-serif;color: #3399bb;text-shadow: -1px -1px 1px rgba(0, 0, 0, .2);}.Header h1 a {color: #3399bb;}.Header .description {font-size: 140%;color: #777777;}.header-inner .Header .titlewrapper {padding: 22px 30px;}.header-inner .Header .descriptionwrapper {padding: 0 30px;}/* Tabs----------------------------------------------- */.tabs-inner .section:first-child {border-top: 1px solid #eeeeee;}.tabs-inner .section:first-child ul {margin-top: -1px;border-top: 1px solid #eeeeee;border-left: 0 solid #eeeeee;border-right: 0 solid #eeeeee;}.tabs-inner .widget ul {background: #f5f5f5 url(https://resources.blogblog.com/blogblog/data/1kt/simple/gradients_light.png) repeat-x scroll 0 -800px;_background-image: none;border-bottom: 1px solid #eeeeee;margin-top: 0;margin-left: -30px;margin-right: -30px;}.tabs-inner .widget li a {display: inline-block;padding: .6em 1em;font: normal normal 14px Arial, Tahoma, Helvetica, FreeSans, sans-serif;color: #999999;border-left: 1px solid #ffffff;border-right: 1px solid #eeeeee;}.tabs-inner .widget li:first-child a {border-left: none;}.tabs-inner .widget li.selected a, .tabs-inner .widget li a:hover {color: #000000;background-color: #eeeeee;text-decoration: none;}/* Columns----------------------------------------------- */.main-outer {border-top: 0 solid #eeeeee;}.fauxcolumn-left-outer .fauxcolumn-inner {border-right: 1px solid #eeeeee;}.fauxcolumn-right-outer .fauxcolumn-inner {border-left: 1px solid #eeeeee;}/* Headings----------------------------------------------- */div.widget > h2,div.widget h2.title {margin: 0 0 1em 0;font: normal bold 11px Arial, Tahoma, Helvetica, FreeSans, sans-serif;color: #000000;}/* Widgets----------------------------------------------- */.widget .zippy {color: #999999;text-shadow: 2px 2px 1px rgba(0, 0, 0, .1);}.widget .popular-posts ul {list-style: none;}/* Posts----------------------------------------------- */h2.date-header {font: normal bold 11px Arial, Tahoma, Helvetica, FreeSans, sans-serif;}.date-header span {background-color: transparent;color: #222222;padding: inherit;letter-spacing: inherit;margin: inherit;}.main-inner {padding-top: 30px;padding-bottom: 30px;}.main-inner .column-center-inner {padding: 0 15px;}.main-inner .column-center-inner .section {margin: 0 15px;}.post {margin: 0 0 25px 0;}h3.post-title, .comments h4 {font: normal normal 22px Arial, Tahoma, Helvetica, FreeSans, sans-serif;margin: .75em 0 0;}.post-body {font-size: 110%;line-height: 1.4;position: relative;}.post-body img, .post-body .tr-caption-container, .Profile img, .Image img,.BlogList .item-thumbnail img {padding: 2px;background: #ffffff;border: 1px solid #eeeeee;-moz-box-shadow: 1px 1px 5px rgba(0, 0, 0, .1);-webkit-box-shadow: 1px 1px 5px rgba(0, 0, 0, .1);box-shadow: 1px 1px 5px rgba(0, 0, 0, .1);}.post-body img, .post-body .tr-caption-container {padding: 5px;}.post-body .tr-caption-container {color: #222222;}.post-body .tr-caption-container img {padding: 0;background: transparent;border: none;-moz-box-shadow: 0 0 0 rgba(0, 0, 0, .1);-webkit-box-shadow: 0 0 0 rgba(0, 0, 0, .1);box-shadow: 0 0 0 rgba(0, 0, 0, .1);}.post-header {margin: 0 0 1.5em;line-height: 1.6;font-size: 90%;}.post-footer {margin: 20px -2px 0;padding: 5px 10px;color: #666666;background-color: #f9f9f9;border-bottom: 1px solid #eeeeee;line-height: 1.6;font-size: 90%;}#comments .comment-author {padding-top: 1.5em;border-top: 1px solid #eeeeee;background-position: 0 1.5em;}#comments .comment-author:first-child {padding-top: 0;border-top: none;}.avatar-image-container {margin: .2em 0 0;}#comments .avatar-image-container img {border: 1px solid #eeeeee;}/* Comments----------------------------------------------- */.comments .comments-content .icon.blog-author {background-repeat: no-repeat;background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEgAACxIB0t1+/AAAAAd0SU1FB9sLFwMeCjjhcOMAAAD+SURBVDjLtZSvTgNBEIe/WRRnm3U8RC1neQdsm1zSBIU9VVF1FkUguQQsD9ITmD7ECZIJSE4OZo9stoVjC/zc7ky+zH9hXwVwDpTAWWLrgS3QAe8AZgaAJI5zYAmc8r0G4AHYHQKVwII8PZrZFsBFkeRCABYiMh9BRUhnSkPTNCtVXYXURi1FpBDgArj8QU1eVXUzfnjv7yP7kwu1mYrkWlU33vs1QNu2qU8pwN0UpKoqokjWwCztrMuBhEhmh8bD5UDqur75asbcX0BGUB9/HAMB+r32hznJgXy2v0sGLBcyAJ1EK3LFcbo1s91JeLwAbwGYu7TP/3ZGfnXYPgAVNngtqatUNgAAAABJRU5ErkJggg);}.comments .comments-content .loadmore a {border-top: 1px solid #999999;border-bottom: 1px solid #999999;}.comments .comment-thread.inline-thread {background-color: #f9f9f9;}.comments .continue {border-top: 2px solid #999999;}/* Accents---------------------------------------------- */.section-columns td.columns-cell {border-left: 1px solid #eeeeee;}.blog-pager {background: transparent none no-repeat scroll top center;}.blog-pager-older-link, .home-link,.blog-pager-newer-link {background-color: #ffffff;padding: 5px;}.footer-outer {border-top: 0 dashed #bbbbbb;}/* Mobile----------------------------------------------- */body.mobile {background-size: auto;}.mobile .body-fauxcolumn-outer {background: transparent none repeat scroll top left;}.mobile .body-fauxcolumn-outer .cap-top {background-size: 100% auto;}.mobile .content-outer {-webkit-box-shadow: 0 0 3px rgba(0, 0, 0, .15);box-shadow: 0 0 3px rgba(0, 0, 0, .15);}.mobile .tabs-inner .widget ul {margin-left: 0;margin-right: 0;}.mobile .post {margin: 0;}.mobile .main-inner .column-center-inner .section {margin: 0;}.mobile .date-header span {padding: 0.1em 10px;margin: 0 -10px;}.mobile h3.post-title {margin: 0;}.mobile .blog-pager {background: transparent none no-repeat scroll top center;}.mobile .footer-outer {border-top: none;}.mobile .main-inner, .mobile .footer-inner {background-color: #ffffff;}.mobile-index-contents {color: #222222;}.mobile-link-button {background-color: #2288bb;}.mobile-link-button a:link, .mobile-link-button a:visited {color: #ffffff;}.mobile .tabs-inner .section:first-child {border-top: none;}.mobile .tabs-inner .PageList .widget-content {background-color: #eeeeee;color: #000000;border-top: 1px solid #eeeeee;border-bottom: 1px solid #eeeeee;}.mobile .tabs-inner .PageList .widget-content .pagelist-arrow {border-left: 1px solid #eeeeee;}-->/style>style idtemplate-skin-1 typetext/css>!--body {min-width: 1000px;}.content-outer, .content-fauxcolumn-outer, .region-inner {min-width: 1000px;max-width: 1000px;_width: 1000px;}.main-inner .columns {padding-left: 0px;padding-right: 260px;}.main-inner .fauxcolumn-center-outer {left: 0px;right: 260px;/* IE6 does not respect left and right together */_width: expression(this.parentNode.offsetWidth -parseInt(0px) -parseInt(260px) + px);}.main-inner .fauxcolumn-left-outer {width: 0px;}.main-inner .fauxcolumn-right-outer {width: 260px;}.main-inner .column-left-outer {width: 0px;right: 100%;margin-left: -0px;}.main-inner .column-right-outer {width: 260px;margin-right: -260px;}#layout {min-width: 0;}#layout .content-outer {min-width: 0;width: 800px;}#layout .region-inner {min-width: 0;width: auto;}-->/style>script typetext/javascript> var _gaq _gaq || ; _gaq.push(_setAccount, UA-265485-22); _gaq.push(_trackPageview); (function() { var ga document.createElement(script); ga.type text/javascript; ga.async true; ga.src (https: document.location.protocol ? https://ssl : http://www) + .google-analytics.com/ga.js; var s document.getElementsByTagName(script)0; s.parentNode.insertBefore(ga, s); })();/script>link hrefhttps://www.blogger.com/dyn-css/authorization.css?targetBlogID7621739724995317812&zx80a6ffec-45a8-457e-9f02-d43c88738549 medianone onloadif(media!'all')media'all' relstylesheet/>noscript>link hrefhttps://www.blogger.com/dyn-css/authorization.css?targetBlogID7621739724995317812&zx80a6ffec-45a8-457e-9f02-d43c88738549 relstylesheet/>/noscript>meta namegoogle-adsense-platform-account contentca-host-pub-1556223355139109/>meta namegoogle-adsense-platform-domain contentblogspot.com/>!-- data-ad-clientca-pub-2006306891004556 -->script typetext/javascript languagejavascript> // Supply ads personalization default for EEA readers // See https://www.blogger.com/go/adspersonalization adsbygoogle window.adsbygoogle || ; if (typeof adsbygoogle.requestNonPersonalizedAds undefined) { adsbygoogle.requestNonPersonalizedAds 1; }/script>/head>body classloading variant-pale>div classnavbar section idnavbar>div classwidget Navbar data-version1 idNavbar1>script typetext/javascript> function setAttributeOnload(object, attribute, val) { if(window.addEventListener) { window.addEventListener(load, function(){ objectattribute val; }, false); } else { window.attachEvent(onload, function(){ objectattribute val; }); } } /script>div idnavbar-iframe-container>/div>script typetext/javascript srchttps://apis.google.com/js/platform.js>/script>script typetext/javascript> gapi.load(gapi.iframes:gapi.iframes.style.bubble, function() { if (gapi.iframes && gapi.iframes.getContext) { gapi.iframes.getContext().openChild({ url: https://www.blogger.com/navbar/7621739724995317812?origin\x3dhttp://blog.best-practice.se, where: document.getElementById(navbar-iframe-container), id: navbar-iframe }); } }); /script>script typetext/javascript>(function() {var script document.createElement(script);script.type text/javascript;script.src //pagead2.googlesyndication.com/pagead/js/google_top_exp.js;var head document.getElementsByTagName(head)0;if (head) {head.appendChild(script);}})();/script>/div>/div>div itemscopeitemscope itemtypehttp://schema.org/Blog styledisplay: none;>meta contentBest Practice Blog itempropname/>/div>div classbody-fauxcolumns>div classfauxcolumn-outer body-fauxcolumn-outer>div classcap-top>div classcap-left>/div>div classcap-right>/div>/div>div classfauxborder-left>div classfauxborder-right>/div>div classfauxcolumn-inner>/div>/div>div classcap-bottom>div classcap-left>/div>div classcap-right>/div>/div>/div>/div>div classcontent>div classcontent-fauxcolumns>div classfauxcolumn-outer content-fauxcolumn-outer>div classcap-top>div classcap-left>/div>div classcap-right>/div>/div>div classfauxborder-left>div classfauxborder-right>/div>div classfauxcolumn-inner>/div>/div>div classcap-bottom>div classcap-left>/div>div classcap-right>/div>/div>/div>/div>div classcontent-outer>div classcontent-cap-top cap-top>div classcap-left>/div>div classcap-right>/div>/div>div classfauxborder-left content-fauxborder-left>div classfauxborder-right content-fauxborder-right>/div>div classcontent-inner>header>div classheader-outer>div classheader-cap-top cap-top>div classcap-left>/div>div classcap-right>/div>/div>div classfauxborder-left header-fauxborder-left>div classfauxborder-right header-fauxborder-right>/div>div classregion-inner header-inner>div classheader section idheader>div classwidget Header data-version1 idHeader1>div idheader-inner>div classtitlewrapper>h1 classtitle>Best Practice Blog/h1>/div>div classdescriptionwrapper>p classdescription>span>/span>/p>/div>/div>/div>/div>/div>/div>div classheader-cap-bottom cap-bottom>div classcap-left>/div>div classcap-right>/div>/div>/div>/header>div classtabs-outer>div classtabs-cap-top cap-top>div classcap-left>/div>div classcap-right>/div>/div>div classfauxborder-left tabs-fauxborder-left>div classfauxborder-right tabs-fauxborder-right>/div>div classregion-inner tabs-inner>div classtabs no-items section idcrosscol>/div>div classtabs no-items section idcrosscol-overflow>/div>/div>/div>div classtabs-cap-bottom cap-bottom>div classcap-left>/div>div classcap-right>/div>/div>/div>div classmain-outer>div classmain-cap-top cap-top>div classcap-left>/div>div classcap-right>/div>/div>div classfauxborder-left main-fauxborder-left>div classfauxborder-right main-fauxborder-right>/div>div classregion-inner main-inner>div classcolumns fauxcolumns>div classfauxcolumn-outer fauxcolumn-center-outer>div classcap-top>div classcap-left>/div>div classcap-right>/div>/div>div classfauxborder-left>div classfauxborder-right>/div>div classfauxcolumn-inner>/div>/div>div classcap-bottom>div classcap-left>/div>div classcap-right>/div>/div>/div>div classfauxcolumn-outer fauxcolumn-left-outer>div classcap-top>div classcap-left>/div>div classcap-right>/div>/div>div classfauxborder-left>div classfauxborder-right>/div>div classfauxcolumn-inner>/div>/div>div classcap-bottom>div classcap-left>/div>div classcap-right>/div>/div>/div>div classfauxcolumn-outer fauxcolumn-right-outer>div classcap-top>div classcap-left>/div>div classcap-right>/div>/div>div classfauxborder-left>div classfauxborder-right>/div>div classfauxcolumn-inner>/div>/div>div classcap-bottom>div classcap-left>/div>div classcap-right>/div>/div>/div>!-- corrects IE6 width calculation -->div classcolumns-inner>div classcolumn-center-outer>div classcolumn-center-inner>div classmain section idmain>div classwidget Blog data-version1 idBlog1>div classblog-posts hfeed> div classdate-outer> h2 classdate-header>span>Tuesday, October 3, 2017/span>/h2> div classdate-posts> div classpost-outer>div classpost hentry itemscopeitemscope itemtypehttp://schema.org/BlogPosting>a name2495464411081108151>/a>h3 classpost-title entry-title itempropname>a hrefhttp://blog.best-practice.se/2017/10/scaling-observium-horizontally.html>Scaling Observium horizontally/a>/h3>div classpost-header>div classpost-header-line-1>/div>/div>div classpost-body entry-content idpost-body-2495464411081108151 itemproparticleBody>i>EXPERIMENTAL FEATURE! THERE ARE NO KNOWN LARGE INSTALLATIONS USING THIS SETUP IN PRODUCTION YET. IF YOU BUILD THIS KIND OF SETUP IN PRODUCTION PLEASE CONTACT OBSERVIUM DEVELOPERS WITH YOUR PERFORMANCE EXPERIENCE AND ANY BUGS THAT YOU MAY RUN IN TO./i>br />br />For very large installations (1000+ devices) it can be hard to make a single server fast enough to poll all your devices in 5 minutes. Luckily you can break out the separate functions of Observium on different servers to make it scale horizontally, you will then be able to just add more servers to your pool of poller-servers when you need more polling-power. This quick guide will show you how to set it up.br />br />h4>Requirements/h4>div>ul>li>Observium Pro Edition/li>li>rrdtool 1.6.0 or greater/li>li>php 7.x/li>li>a fast dedicated MySQL-server/li>li>Very fast storage for RRD-files, SSDs highly recommended/li>/ul>div>br />div classseparator styleclear: both; text-align: center;>a hrefhttps://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjF-bI_KHNN8ldpZHgLTwkmpdtrIAvpNSvNmej6cC_4XBmjEALWWH9QQFXa0a6yVybeHfVYzY5realZ_n9Gb57DfgAgPDfhVXTyvv-ApRQfToIrpapaN0kmHzwJtdLcsYrytQzPEHvdt7zd/s1600/Observium+distributed+%25281%2529.png imageanchor1 stylemargin-left: 1em; margin-right: 1em;>img border0 data-original-height681 data-original-width777 height560 srchttps://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjF-bI_KHNN8ldpZHgLTwkmpdtrIAvpNSvNmej6cC_4XBmjEALWWH9QQFXa0a6yVybeHfVYzY5realZ_n9Gb57DfgAgPDfhVXTyvv-ApRQfToIrpapaN0kmHzwJtdLcsYrytQzPEHvdt7zd/s640/Observium+distributed+%25281%2529.png width640 />/a>/div>div classseparator styleclear: both; text-align: center;>/div>br />br />/div>/div>h2>MySQL-Server/h2>div>Start by installing a MySQL-server on a dedicated server. If you installation will be very large its recommended to tweak the settings after the database have run for 48h as there sure is a lot of tuning that can be done. You could also use a a hrefhttps://mariadb.org/ target_blank>MariaDB/a> or a hrefhttps://www.percona.com/software/mysql-database/percona-server target_blank>Percona /a>Server if youd prefer or even a a hrefhttps://aws.amazon.com/rds/aurora/ target_blank>Amazon Aurora/a> database if you would build this in AWS./div>div>br />/div>div>After installing the database you should make it listen for querys over the network interface. This is done by adding the following config to your config-file:/div>blockquote classtr_bq>i>bind-address<ip-of-your-server>/i>/blockquote>Or the corresponding configuration for any other database-server you choose.br />Make sure the firewall allows connections to port 3306 for MySQL, you now have a database-server ready to serve over the network.br />br />h2>RRD-Server/h2>div>Its now time to install the main Observium-server. This server will serve as RRD-storage and will receive RRD-data from all your pollers that it will need to write to disk. This will put the storage of this server under huge load and the bottleneck of you entire installation will probably boil down to how fast this server is capable of writing to disk./div>div>Therefore dedicated SSD-drives for this server is highly recommended. You should also make sure to not use consumer-grade SSDs as the amount of data this server will write will probably make a consumer-SSD wear out in a couple of months./div>div>Chose a pair of heavy duty enterprise class-SSDs and preferably put them in a RAID1 for resilience./div>div>br />/div>div>Then you can proceed to install this server as a standard Observium server, just fallow the a hrefhttp://docs.observium.org/install_debian/ target_blank>installation instructions/a> on www.observium.org expect for two details./div>div>First, skip the part where you install a mysql-server. This server will not run mysql at all. When its time to create the mysql-user then instead do this on your MySQL-server and then make sure to change the database settings in config.php before you run discovery.php for the first time to:/div>blockquote classtr_bq>i>$configdb_host <you-mysql-server-ip>/i>/blockquote>div>Secondly, skip the part where you add discovery.php and poller-wrapper.py to cron, the only thing this server should run by cron is housekeeping.php/div>div>br />/div>h3>rrdcached/h3>div>When your main Observium server is installed then its time to install rrdcached. rrdcached will serve as the interface for RRD-writes for all your pollers. It will receive RRD-data over the network from all the poller-machines, cache the data to be written in memory and then write it in larger bulks to disk. This will save your storage of the worst I/O bursts at the same time as it gives your pollers a simple way of sending the data over the network./div>div>Follow my other guide for how to setup rrdcached here: http://blog.best-practice.se/2014/10/using-rrdcached-with-observium.htmlbr />After the installation is done you will need to add a few more flags to the rrdcached config, first make sure that you have the flags:br />blockquote classtr_bq>i>-BRO/i>/blockquote>These flags make sure its only possible to write to rrd-files in the directory you assigned and it also ignores any attempt to overwrite existing rrd-files with the create-command.br />Next add the flag:br />blockquote classtr_bq>i>-L/i>/blockquote>This will make rrdcached listen to all network interfaces on the default port (42217)br />Make sure the firewall allows connections on this port and then your RRD-server is ready to go.br />Also make sure this machine is configured to use rrdcached in config.phpbr />br />h2>Poller-Servers/h2>div>The poller-servers will be the machines actually doing the polling of SNMP-devices. You can have as many poller-servers as you need and you can also add more poller-servers later when you need to scale up./div>div>For every poller-server install a standard Observium installation but without the Apache server and MySQL-part and then just as on the RRD-server make sure to change the database-setting in config.php to:/div>blockquote classtr_bq>i>$configdb_host <you-mysql-server-ip>/i>/blockquote>Then proceed to add the following two lines to config.php:br />blockquote classtr_bq>i>$configrrdcached <your-rrd-server-ip;br />$configrrdno_local TRUE;/i>/blockquote>This will tell Observium that there are no local RRDs on this installation and where to find the rrdcached-server to write all the RRDs to.br />Next we edit the cronjob, delete all the housekeeping.php-jobs as this will be done by the RRD-server itself and then add the two flags -i and -n. The -i flag tells Observium how many poller-servers you are running and the -n flag tells it which of them this server is (Note that this number starts from 0).br />So for example if you run 3 poller-servers your first server will have this cronjob:br />blockquote classtr_bq>i>*/5 * * * * root /opt/observium/poller-wrapper.py -i 3 -n 0 >> /dev/null 2>&1br />33 */6 * * * root /opt/observium/discovery.php -h all -i 3 -n 0 >> /dev/null 2>&1 /i>/blockquote>The next poller-server will have everything the same but -n 1 instead.br />br />The last discovery-job that only discovers new devices (discovery.php -h new) can not be split on multiple pollers but this is a very tiny job that finish fast so just put this job on the first of your poller-servers and remove it from the other poller-servers./div>div>Thats it! Your poller-servers should now start fetching the devicelist from the database, poll their respective part of the device list and then feed the results and rrd-data over the network back to your servers.br />If you visit the Polling Information tab in Observium you should now see that you have a number of separate Wrapper Processes in the graph.br />br />h3>Updating/h3>/div>div>Be very careful when you update your installation. With many different processes all writing to the database at the same time its very important that all the processes are the same version./div>div>Make sure that you update Observium on all your machines at the same time and that only on of them runs ./discovery.php -u directly afterwards so that the database is correctly updated./div>div>There might even be a good idea to stop all cronjobs before updating to be on the safe side./div>div>br />/div>h3>Optimizing/h3>div>If you run a large enough install that you need this then do not forget to check out all the performance tuning that can be done in Observium: a hrefhttp://docs.observium.org/tuning/>http://docs.observium.org/tuning//a>/div>div>PHP7 is a reuqirement as this gives a huge performance boost and also make sure the opcode caching is enabled in CLI./div>div>As the database grow with a lot of devices and ports the web interface will soon be pretty slow so also make sure that you enable the fast userspace caching./div>div>If your install is used by a lot of users then it might be nice to switch out the Apache webserver for nginx and enable HTTP/2-support as this will load resources in the web interface much faster./div>div>You could also experiment with the -t flag on rrdcached. This sets the amount of write-threads that rrdcached uses, default is 4. Increasing this might improve disk write performance./div>div>br />/div>h3>Installscript/h3>div>As installing a lot of Observium-instances can become tiresome I decided to write a small shell-script that automates the process for you./div>div>You can find the script here: a hrefhttps://github.com/ZerxXxes/observium_installscript>https://github.com/ZerxXxes/observium_installscript/a>/div>div>It works well with Ubuntu 16 and Observium Pro or CE. Just download the script to the server, make it executable and then run it./div>div>br />/div>div styleclear: both;>/div>/div>div classpost-footer>div classpost-footer-line post-footer-line-1>span classpost-author vcard>Posted byspan classfn>a hrefhttps://www.blogger.com/profile/01205841755603264643 itempropauthor relauthor titleauthor profile>best-practice/a>/span>/span>span classpost-timestamp>ata classtimestamp-link hrefhttp://blog.best-practice.se/2017/10/scaling-observium-horizontally.html itempropurl relbookmark titlepermanent link>abbr classpublished itempropdatePublished title2017-10-03T20:44:00+02:00>20:44/abbr>/a>/span>span classpost-comment-link>a classcomment-link hrefhttp://blog.best-practice.se/2017/10/scaling-observium-horizontally.html#comment-form onclick>4 comments: /a>/span>span classpost-icons>span classitem-control blog-admin pid-2121895081>a hrefhttps://www.blogger.com/post-edit.g?blogID7621739724995317812&postID2495464411081108151&frompencil titleEdit Post>img alt classicon-action height18 srchttps://resources.blogblog.com/img/icon18_edit_allbkg.gif width18/>/a>/span>/span>div classpost-share-buttons goog-inline-block>a classgoog-inline-block share-button sb-email hrefhttps://www.blogger.com/share-post.g?blogID7621739724995317812&postID2495464411081108151&targetemail target_blank titleEmail This>span classshare-button-link-text>Email This/span>/a>a classgoog-inline-block share-button sb-blog hrefhttps://www.blogger.com/share-post.g?blogID7621739724995317812&postID2495464411081108151&targetblog onclickwindow.open(this.href, _blank, height270,width475); return false; target_blank titleBlogThis!>span classshare-button-link-text>BlogThis!/span>/a>a classgoog-inline-block share-button sb-twitter hrefhttps://www.blogger.com/share-post.g?blogID7621739724995317812&postID2495464411081108151&targettwitter target_blank titleShare to X>span classshare-button-link-text>Share to X/span>/a>a classgoog-inline-block share-button sb-facebook hrefhttps://www.blogger.com/share-post.g?blogID7621739724995317812&postID2495464411081108151&targetfacebook onclickwindow.open(this.href, _blank, height430,width640); return false; target_blank titleShare to Facebook>span classshare-button-link-text>Share to Facebook/span>/a>a classgoog-inline-block share-button sb-pinterest hrefhttps://www.blogger.com/share-post.g?blogID7621739724995317812&postID2495464411081108151&targetpinterest target_blank titleShare to Pinterest>span classshare-button-link-text>Share to Pinterest/span>/a>/div>/div>div classpost-footer-line post-footer-line-2>span classpost-labels>/span>/div>div classpost-footer-line post-footer-line-3>span classpost-location>/span>/div>/div>/div>/div>div classinline-ad>script typetext/javascript>!--google_ad_client ca-pub-2006306891004556;google_ad_host ca-host-pub-1556223355139109;google_ad_host_channel L0007;/* best-practice2_main_Blog1_300x250_as */google_ad_slot 6567352022;google_ad_width 300;google_ad_height 250;//-->/script>script typetext/javascriptsrchttp://pagead2.googlesyndication.com/pagead/show_ads.js>/script>/div> /div>/div> div classdate-outer> h2 classdate-header>span>Monday, June 27, 2016/span>/h2> div classdate-posts> div classpost-outer>div classpost hentry itemscopeitemscope itemtypehttp://schema.org/BlogPosting>a name159436155567070058>/a>h3 classpost-title entry-title itempropname>a hrefhttp://blog.best-practice.se/2016/06/observium-performance-tuning.html>Observium performance tuning/a>/h3>div classpost-header>div classpost-header-line-1>/div>/div>div classpost-body entry-content idpost-body-159436155567070058 itemproparticleBody>I noticed last week that all our Cisco ASR 9000-routers have a bug in IOS-XR 4.3.4 which cause all the snmp queries of LLDP data to be super slow.br />Almost 70% of the total time it took to run Observium discovery was just the simple snmpwalk of LLDP-data and while the routers where busy processing this query it did not respond to other snmp queries.br />This resulted in a lot of gaps in our graphs on these routers every 6 hours when the discovery-script was running. It was a pretty easy fix, as soon as we upgraded IOS-XR to a newer version the routers started to respond much faster.br />But this got me thinking; which other SNMP-queries are super slow?br />br />So I hacked together a small script that will parse the logfile of Observium poller or discovery-script and list all SNMP-commands that Observium runs and sort them by runtime.br />a hrefhttps://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi42x8J5fgWWseEV3HUqW6claUKyNk0vDt9FGS2UjzqaRQww-lBspJIVjlMZp0TFw2NWdFX-nxtaiOeoOlGmK_7kDUryz5GqMbtHk7uFizr8NNcfpKIS9_GZr_rZ-RtYxVcHTsSpBvDNkZt/s1600/obs_parser.PNG imageanchor1>img border0 height106 srchttps://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi42x8J5fgWWseEV3HUqW6claUKyNk0vDt9FGS2UjzqaRQww-lBspJIVjlMZp0TFw2NWdFX-nxtaiOeoOlGmK_7kDUryz5GqMbtHk7uFizr8NNcfpKIS9_GZr_rZ-RtYxVcHTsSpBvDNkZt/s640/obs_parser.PNG width640 />/a>br />br />Simply edit your cronjob to have Observium discovery-script to create a logfile for you like this:br />blockquote classtr_bq>33 */6 * * * root /opt/observium/discovery.php -d -h all > /opt/observium/logs/discovery_log/blockquote>and then wait for the discovery-script to complete its discovery of your network. Then run observium-logparser.py which will look in /opt/observium/logs/discovery_log default and produce a top 10-list of the slowest SNMP-queries in your network.br />br />For the poller-script you need to do some manual magic first if you use the poller-wrapper.br />First run the poller-wrapper with the debug-flagbr />blockquote classtr_bq>sudo /opt/observium/poller-wrapper.py -d/blockquote>It will now produce a lot of debug-files in your /tmp/-directory, you can put them all in the same file by running:br />blockquote classtr_bq> cat /tmp/observium_poller_* > poller_debug.txt/blockquote>Now you have the poller_debug.txt-file which is the debug-log of all the pollers, simply run observium-logparser and use the --logfile flag to point at the poller debug as in the picture above.br />br />The script can be downloaded from here: a hrefhttps://github.com/ZerxXxes/observium-logparser>https://github.com/ZerxXxes/observium-logparser/a>br />br />Hope this help you find unnecessary slow devices in your network!br />br />br />div styleclear: both;>/div>/div>div classpost-footer>div classpost-footer-line post-footer-line-1>span classpost-author vcard>Posted byspan classfn>a hrefhttps://www.blogger.com/profile/01205841755603264643 itempropauthor relauthor titleauthor profile>best-practice/a>/span>/span>span classpost-timestamp>ata classtimestamp-link hrefhttp://blog.best-practice.se/2016/06/observium-performance-tuning.html itempropurl relbookmark titlepermanent link>abbr classpublished itempropdatePublished title2016-06-27T14:10:00+02:00>14:10/abbr>/a>/span>span classpost-comment-link>a classcomment-link hrefhttp://blog.best-practice.se/2016/06/observium-performance-tuning.html#comment-form onclick>1 comment: /a>/span>span classpost-icons>span classitem-control blog-admin pid-2121895081>a hrefhttps://www.blogger.com/post-edit.g?blogID7621739724995317812&postID159436155567070058&frompencil titleEdit Post>img alt classicon-action height18 srchttps://resources.blogblog.com/img/icon18_edit_allbkg.gif width18/>/a>/span>/span>div classpost-share-buttons goog-inline-block>a classgoog-inline-block share-button sb-email hrefhttps://www.blogger.com/share-post.g?blogID7621739724995317812&postID159436155567070058&targetemail target_blank titleEmail This>span classshare-button-link-text>Email This/span>/a>a classgoog-inline-block share-button sb-blog hrefhttps://www.blogger.com/share-post.g?blogID7621739724995317812&postID159436155567070058&targetblog onclickwindow.open(this.href, _blank, height270,width475); return false; target_blank titleBlogThis!>span classshare-button-link-text>BlogThis!/span>/a>a classgoog-inline-block share-button sb-twitter hrefhttps://www.blogger.com/share-post.g?blogID7621739724995317812&postID159436155567070058&targettwitter target_blank titleShare to X>span classshare-button-link-text>Share to X/span>/a>a classgoog-inline-block share-button sb-facebook hrefhttps://www.blogger.com/share-post.g?blogID7621739724995317812&postID159436155567070058&targetfacebook onclickwindow.open(this.href, _blank, height430,width640); return false; target_blank titleShare to Facebook>span classshare-button-link-text>Share to Facebook/span>/a>a classgoog-inline-block share-button sb-pinterest hrefhttps://www.blogger.com/share-post.g?blogID7621739724995317812&postID159436155567070058&targetpinterest target_blank titleShare to Pinterest>span classshare-button-link-text>Share to Pinterest/span>/a>/div>/div>div classpost-footer-line post-footer-line-2>span classpost-labels>/span>/div>div classpost-footer-line post-footer-line-3>span classpost-location>/span>/div>/div>/div>/div> /div>/div> div classdate-outer> h2 classdate-header>span>Wednesday, June 8, 2016/span>/h2> div classdate-posts> div classpost-outer>div classpost hentry itemscopeitemscope itemtypehttp://schema.org/BlogPosting>a name9007309978394164477>/a>h3 classpost-title entry-title itempropname>a hrefhttp://blog.best-practice.se/2016/06/integrating-slack-with-observium-and.html>Integrating Slack with Observium and testing alerts/a>/h3>div classpost-header>div classpost-header-line-1>/div>/div>div classpost-body entry-content idpost-body-9007309978394164477 itemproparticleBody>Observium can fairly easily be configured to send alerts to Slack.br />Start by setting up an incoming WebHook in Slack if you dont already have one.br />div classseparator styleclear: both; text-align: center;>a hrefhttps://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjTcQ-aK2qBy-Pj2MJdlwwtoh2keIO0M0XrP4_slupos7ooMN-JSovPosnsAQtHLSXa9FLlYVI5E2QMVkXm9OYf-RXKapkcNFj2j-xroOgE2QNggQe_a6-8x-ORa-Y7PmeUxQdXeLzI2R3p/s1600/slack_webhook.PNG imageanchor1 stylemargin-left: 1em; margin-right: 1em;>img border0 height424 srchttps://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjTcQ-aK2qBy-Pj2MJdlwwtoh2keIO0M0XrP4_slupos7ooMN-JSovPosnsAQtHLSXa9FLlYVI5E2QMVkXm9OYf-RXKapkcNFj2j-xroOgE2QNggQe_a6-8x-ORa-Y7PmeUxQdXeLzI2R3p/s640/slack_webhook.PNG width640 />/a>/div>When you have created your new WebHook make sure to notice the Webhook URL, you will need it in the next step.br />br />Now login to Observium, from the menu go to Contacts and click on Add Contact.br />Choose Slack as Method and then proceed with filling the form with description info and in the field Instance URL you paste the Webhook URL you got from Slack, then hit the Add Contact-button.br />div classseparator styleclear: both; text-align: center;>a hrefhttps://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhJr8_6TuOq2anrtK7hMvOVjECyDrutAJ_hyphenhyphende9hgUrYlx1R8hMihJRELgOOESJpJoHxLqHeXbMpmKXg4X4jNBJYJRB8YOgNyMO2qE_-F5CMrezbmxzn6CBMyBmFga_adA9bIBPiLFaED_-/s1600/observium_webhook.PNG imageanchor1 stylemargin-left: 1em; margin-right: 1em;>img border0 height297 srchttps://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhJr8_6TuOq2anrtK7hMvOVjECyDrutAJ_hyphenhyphende9hgUrYlx1R8hMihJRELgOOESJpJoHxLqHeXbMpmKXg4X4jNBJYJRB8YOgNyMO2qE_-F5CMrezbmxzn6CBMyBmFga_adA9bIBPiLFaED_-/s400/observium_webhook.PNG width400 />/a>/div>When you are done you will be back at the Contacts-page, now click on your new contact again to edit it. In the Contact settings-page you will see all your configured Observium-alerts in the box to the right. Choose which alerts you want to send alerts to Slack and click Associate.br />Congratulations, you are done. As soon as an Observium Alert triggers it will now send information about it to Slack via the WebHook you created.br />br />h3>Testing your alert-checker/h3>div>You can test your new alerting by using a script in Observium that is called test_alert.php, note that you need CLI-access to the Observium-box for this, its not possible test alerts via the web interface yet./div>div>Start by listing you alert checkers, in the main menu in the web interface, click on Alert Checks./div>div>Here choose an alert check you want to test, preferably on associated with a contact like the Slack Webhook we created earlier./div>div>Click on the alert check and you will be at the settingspage of that alert checker./div>div>Here you will see all entities tied to the alert checker./div>div>In my case I have an alert checker that monitors all my interfaces that are 10G or greater and alerts if they reach more than 80% utilization. The list of entities in this case is therefore all the interfaces that is monitored./div>div classseparator styleclear: both; text-align: center;>a hrefhttps://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhF5Y5cTbweuMZ-AysIQxQwIICRlOi8DbC3buHwd2KtIOjbcTNBjeiOAGFEaxF3Qq6yBQzQovuGmCnPuuEkPXEXrJh8TMMRqhgkWQ49AWr1Mh93JAvSZtB1mf3veCdiyi_OMkk8YoC4dtol/s1600/alert_checker.PNG imageanchor1 stylemargin-left: 1em; margin-right: 1em;>img border0 height206 srchttps://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhF5Y5cTbweuMZ-AysIQxQwIICRlOi8DbC3buHwd2KtIOjbcTNBjeiOAGFEaxF3Qq6yBQzQovuGmCnPuuEkPXEXrJh8TMMRqhgkWQ49AWr1Mh93JAvSZtB1mf3veCdiyi_OMkk8YoC4dtol/s640/alert_checker.PNG width640 />/a>/div>div>Next to every entity there is a small i that you can click on. Choose one entity and click on the i, it will take you to the statuspage of this specific alert entity./div>div>Here we need to find the alert entity number which will be in the URL when you are at this status page. Look in the browser URL for: alert_entry and copy the number./div>div>Now login to the observium-CLI, go to you observium directory and run the test_alert.php-script./div>div>The script needs the alert_entry-number to know which alert to test, this is passed with the -a flag./div>div>So simply run the script like this: ./test_alert.php -a <entry-number>/div>div>The script will now check the alert and send alerts to all associated contacts like the Slack webhook we created earlier which gives us confirmation that it works as intended!/div>div styleclear: both;>/div>/div>div classpost-footer>div classpost-footer-line post-footer-line-1>span classpost-author vcard>Posted byspan classfn>a hrefhttps://www.blogger.com/profile/01205841755603264643 itempropauthor relauthor titleauthor profile>best-practice/a>/span>/span>span classpost-timestamp>ata classtimestamp-link hrefhttp://blog.best-practice.se/2016/06/integrating-slack-with-observium-and.html itempropurl relbookmark titlepermanent link>abbr classpublished itempropdatePublished title2016-06-08T14:31:00+02:00>14:31/abbr>/a>/span>span classpost-comment-link>a classcomment-link hrefhttp://blog.best-practice.se/2016/06/integrating-slack-with-observium-and.html#comment-form onclick>1 comment: /a>/span>span classpost-icons>span classitem-control blog-admin pid-2121895081>a hrefhttps://www.blogger.com/post-edit.g?blogID7621739724995317812&postID9007309978394164477&frompencil titleEdit Post>img alt classicon-action height18 srchttps://resources.blogblog.com/img/icon18_edit_allbkg.gif width18/>/a>/span>/span>div classpost-share-buttons goog-inline-block>a classgoog-inline-block share-button sb-email hrefhttps://www.blogger.com/share-post.g?blogID7621739724995317812&postID9007309978394164477&targetemail target_blank titleEmail This>span classshare-button-link-text>Email This/span>/a>a classgoog-inline-block share-button sb-blog hrefhttps://www.blogger.com/share-post.g?blogID7621739724995317812&postID9007309978394164477&targetblog onclickwindow.open(this.href, _blank, height270,width475); return false; target_blank titleBlogThis!>span classshare-button-link-text>BlogThis!/span>/a>a classgoog-inline-block share-button sb-twitter hrefhttps://www.blogger.com/share-post.g?blogID7621739724995317812&postID9007309978394164477&targettwitter target_blank titleShare to X>span classshare-button-link-text>Share to X/span>/a>a classgoog-inline-block share-button sb-facebook hrefhttps://www.blogger.com/share-post.g?blogID7621739724995317812&postID9007309978394164477&targetfacebook onclickwindow.open(this.href, _blank, height430,width640); return false; target_blank titleShare to Facebook>span classshare-button-link-text>Share to Facebook/span>/a>a classgoog-inline-block share-button sb-pinterest hrefhttps://www.blogger.com/share-post.g?blogID7621739724995317812&postID9007309978394164477&targetpinterest target_blank titleShare to Pinterest>span classshare-button-link-text>Share to Pinterest/span>/a>/div>/div>div classpost-footer-line post-footer-line-2>span classpost-labels>/span>/div>div classpost-footer-line post-footer-line-3>span classpost-location>/span>/div>/div>/div>/div> /div>/div> div classdate-outer> h2 classdate-header>span>Monday, December 14, 2015/span>/h2> div classdate-posts> div classpost-outer>div classpost hentry itemscopeitemscope itemtypehttp://schema.org/BlogPosting>a name4619238230483326497>/a>h3 classpost-title entry-title itempropname>a hrefhttp://blog.best-practice.se/2015/12/vastly-improve-observium-performance.html>Vastly improve Observium performance with PHP 7/a>/h3>div classpost-header>div classpost-header-line-1>/div>/div>div classpost-body entry-content idpost-body-4619238230483326497 itemproparticleBody>This is a quick guide on how to install PHP 7 in Ubuntu and have it work with Observium to greatly speed things up. Note that this will only be useful if you have a very large Observium-installation and start to notice the web interface slowing down.br />br />PHP 7.0.0 released a couple of weeks ago and promised up to double the performance of PHP 5.br />As I run a very large Observium installation with over 1100 devices that are being monitored I had a very slow web interface as a result of that. When I heard about the big performance improvements in PHP7 I decided to try it out.br />br />The result was even better than I expected! Most of the pages in the web UI needed about 5s to render and some even needed over 7s with PHP5. After switching to PHP7 my UI now loads most pages in less than 1.5s and the most heavy pages renders in about 2s.br />PHP7 proved to perform 2 to 3 times as fast as PHP5!br />br />h2>Install Observium with PHP 7/h2>div>To install Observium with PHP7 you need to change a few step from the install guide./div>div>i>Note that this only works for Observium Pro for now, Observium CE wont work with PHP7 yet!/i>/div>div>i>br />/i>/div>div>This is based on the Ubuntu 14-guide and assumes you have a freshly installed Ubuntu 14./div>div>First we need to add the repository for PHP7:/div>pre stylebackground-color: #eeeeee; border: 0px; color: #111111; font-family: Consolas, Menlo, Monaco, Lucida Console, Liberation Mono, DejaVu Sans Mono, Bitstream Vera Sans Mono, Courier New, monospace, sans-serif; font-size: 13px; margin-bottom: 1em; max-height: 600px; overflow: auto; padding: 5px; width: auto; word-wrap: normal;>code styleborder: 0px; font-family: Consolas, Menlo, Monaco, Lucida Console, Liberation Mono, DejaVu Sans Mono, Bitstream Vera Sans Mono, Courier New, monospace, sans-serif; margin: 0px; padding: 0px; white-space: inherit;>sudo apt-get install python-software-propertiessudo add-apt-repository ppa:ondrej/php-7.0/code>/pre>div> The update and install php7br />pre stylebackground-color: #eeeeee; border: 0px; color: #111111; font-family: Consolas, Menlo, Monaco, Lucida Console, Liberation Mono, DejaVu Sans Mono, Bitstream Vera Sans Mono, Courier New, monospace, sans-serif; font-size: 13px; margin-bottom: 1em; max-height: 600px; overflow: auto; padding: 5px; width: auto; word-wrap: normal;>code styleborder: 0px; font-family: Consolas, Menlo, Monaco, Lucida Console, Liberation Mono, DejaVu Sans Mono, Bitstream Vera Sans Mono, Courier New, monospace, sans-serif; margin: 0px; padding: 0px; white-space: inherit;>sudo apt-get updatesudo apt-get install php7.0 php7.0-mysql php7.0-mcrypt libapache2-mod-php7.0/code>/pre>And lastly we install the rest of the required observium packages/div>div>pre stylebackground-color: #eeeeee; border: 0px; color: #111111; font-family: Consolas, Menlo, Monaco, Lucida Console, Liberation Mono, DejaVu Sans Mono, Bitstream Vera Sans Mono, Courier New, monospace, sans-serif; font-size: 13px; margin-bottom: 1em; max-height: 600px; overflow: auto; padding: 5px; width: auto; word-wrap: normal;>code styleborder: 0px; font-family: Consolas, Menlo, Monaco, Lucida Console, Liberation Mono, DejaVu Sans Mono, Bitstream Vera Sans Mono, Courier New, monospace, sans-serif; margin: 0px; padding: 0px; white-space: inherit;>sudo apt-get install php-pear snmp fping mysql-server mysql-client python-mysqldb rrdtool subversion whois mtr-tiny ipmitool graphviz imagemagick/code>/pre>now we can continue to follow the guide for Observium Pro. The only important thing to look for is that you make sure your config.php contains this option:/div>div>pre stylebackground-color: #eeeeee; border: 0px; color: #111111; font-family: Consolas, Menlo, Monaco, Lucida Console, Liberation Mono, DejaVu Sans Mono, Bitstream Vera Sans Mono, Courier New, monospace, sans-serif; font-size: 13px; margin-bottom: 1em; max-height: 600px; overflow: auto; padding: 5px; width: auto; word-wrap: normal;>code styleborder: 0px; font-family: Consolas, Menlo, Monaco, Lucida Console, Liberation Mono, DejaVu Sans Mono, Bitstream Vera Sans Mono, Courier New, monospace, sans-serif; margin: 0px; padding: 0px; white-space: inherit;>$configdb_extension mysqli;/code>/pre>/div>div>before you try to run the update.php-script./div>div>br />/div>div>When the installation is complete you can visit the About Observium-page and you will se that Observim runs on PHP7/div>div classseparator styleclear: both; text-align: center;>a hrefhttps://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhxi0rX-Smz0nxmSzxWE6t-i0TaGqip0T9fGyyiSq7MPi-vYId14TRgwqKQgb0aPQaCiRG-9oLFgME8Q7RcmN65UsOsB4uKutHmcadCBlTLTsj1zifLe_d5BDVWVt-GJNIKZ3fbKkgT13Sa/s1600/php7.PNG imageanchor1 stylemargin-left: 1em; margin-right: 1em;>img border0 height300 srchttps://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhxi0rX-Smz0nxmSzxWE6t-i0TaGqip0T9fGyyiSq7MPi-vYId14TRgwqKQgb0aPQaCiRG-9oLFgME8Q7RcmN65UsOsB4uKutHmcadCBlTLTsj1zifLe_d5BDVWVt-GJNIKZ3fbKkgT13Sa/s640/php7.PNG width640 />/a>/div>div>br />/div>h4>My Observium is polling slowly, will PHP7 help me?/h4>div>no, polling is almost only dependent on disk IO and the SNMP response speed of the device you poll, PHP7 will do very little difference to the pollingtime./div>h4>Does Observium CE work with PHP7?/h4>div>no, the current CE does not support PHP7, you need to have Pro./div>h4>Is Observium fully compatible with PHP7?/h4>div>I have tried to test as many of the features in Observium that I could, and so far everything seems to work just fine. I have not tried the billing-module however./div>div>Always try this in a test-install first, as there may be some features that are not fully compatible./div>div>br />/div>div styleclear: both;>/div>/div>div classpost-footer>div classpost-footer-line post-footer-line-1>span classpost-author vcard>Posted byspan classfn>a hrefhttps://www.blogger.com/profile/01205841755603264643 itempropauthor relauthor titleauthor profile>best-practice/a>/span>/span>span classpost-timestamp>ata classtimestamp-link hrefhttp://blog.best-practice.se/2015/12/vastly-improve-observium-performance.html itempropurl relbookmark titlepermanent link>abbr classpublished itempropdatePublished title2015-12-14T00:02:00+01:00>00:02/abbr>/a>/span>span classpost-comment-link>a classcomment-link hrefhttp://blog.best-practice.se/2015/12/vastly-improve-observium-performance.html#comment-form onclick>4 comments: /a>/span>span classpost-icons>span classitem-control blog-admin pid-2121895081>a hrefhttps://www.blogger.com/post-edit.g?blogID7621739724995317812&postID4619238230483326497&frompencil titleEdit Post>img alt classicon-action height18 srchttps://resources.blogblog.com/img/icon18_edit_allbkg.gif width18/>/a>/span>/span>div classpost-share-buttons goog-inline-block>a classgoog-inline-block share-button sb-email hrefhttps://www.blogger.com/share-post.g?blogID7621739724995317812&postID4619238230483326497&targetemail target_blank titleEmail This>span classshare-button-link-text>Email This/span>/a>a classgoog-inline-block share-button sb-blog hrefhttps://www.blogger.com/share-post.g?blogID7621739724995317812&postID4619238230483326497&targetblog onclickwindow.open(this.href, _blank, height270,width475); return false; target_blank titleBlogThis!>span classshare-button-link-text>BlogThis!/span>/a>a classgoog-inline-block share-button sb-twitter hrefhttps://www.blogger.com/share-post.g?blogID7621739724995317812&postID4619238230483326497&targettwitter target_blank titleShare to X>span classshare-button-link-text>Share to X/span>/a>a classgoog-inline-block share-button sb-facebook hrefhttps://www.blogger.com/share-post.g?blogID7621739724995317812&postID4619238230483326497&targetfacebook onclickwindow.open(this.href, _blank, height430,width640); return false; target_blank titleShare to Facebook>span classshare-button-link-text>Share to Facebook/span>/a>a classgoog-inline-block share-button sb-pinterest hrefhttps://www.blogger.com/share-post.g?blogID7621739724995317812&postID4619238230483326497&targetpinterest target_blank titleShare to Pinterest>span classshare-button-link-text>Share to Pinterest/span>/a>/div>/div>div classpost-footer-line post-footer-line-2>span classpost-labels>/span>/div>div classpost-footer-line post-footer-line-3>span classpost-location>/span>/div>/div>/div>/div> /div>/div> div classdate-outer> h2 classdate-header>span>Saturday, March 14, 2015/span>/h2> div classdate-posts> div classpost-outer>div classpost hentry itemscopeitemscope itemtypehttp://schema.org/BlogPosting>a name2850919954700605386>/a>h3 classpost-title entry-title itempropname>a hrefhttp://blog.best-practice.se/2015/03/upgrade-vcenter-55-to-60.html>Upgrade vCenter 5.5 to 6.0/a>/h3>div classpost-header>div classpost-header-line-1>/div>/div>div classpost-body entry-content idpost-body-2850919954700605386 itemproparticleBody>This week VMware released vSphere 6.0 and vCenter 6.0 in which one of the big news i a much faster and responsive web client.br />The install process of vCenter 6.0 is not completely obvious as its not an OVA-file to deploy so I decided to write this quick guide on how to upgrade vCenter 5.5 to 6.0br />br />h3>1. Download the ISO/h3>div>go to the vmware download page (https://my.vmware.com/web/vmware/details?downloadGroupVC600&productId491&rPId7501) and fetch the ISO file called VMware vCenter Server Appliance and download it to your computer./div>h3>2. Mount/Extract the ISO/h3>div>Next step is to mount the ISO. If you are running Windows 8 you can just right click it and chose mount to have it mounted to a virtual cd-drive. Else you can use WinRAR or 7zip to extract the files from the ISO./div>h3>3. Upgrade the VMware Client Integration Plugin/h3>div>On the ISO, find the folder named vcsa and inside it you find an installer for upgrading the VMware browser plugin on your computer to 6.0. Remember to close all open browsers first, then run the installer./div>h3>4. Start the upgrade/h3>div>When the browser plugin is upgraded go back to the ISO, in the root you find a file called vcsa-setup.html, open it with your browser and chose Upgrade./div>div>Accept the EULA and countine./div>div classseparator styleclear: both; text-align: center;>a hrefhttps://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjMvZZGAQG7RMhYlasWECxjI2lhwueQG72A67gEdTOugcgfripN1IcsZnHVkB4uFN0cmURnst4jRACBJty17QRpX2SoKqLxveuw0Eiur4DMNSbKkYofh6buxtV3th0UAZrRetfx6SMFoHo2/s1600/targetserver.PNG imageanchor1 stylemargin-left: 1em; margin-right: 1em;>img border0 height260 srchttps://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjMvZZGAQG7RMhYlasWECxjI2lhwueQG72A67gEdTOugcgfripN1IcsZnHVkB4uFN0cmURnst4jRACBJty17QRpX2SoKqLxveuw0Eiur4DMNSbKkYofh6buxtV3th0UAZrRetfx6SMFoHo2/s1600/targetserver.PNG width400 />/a>/div>div>The first info the installer needs is the target server and credentials. Note that this is the target ESXi-host for where you want to install your vCenter 6.0 VM, NOT your current vcenter server./div>div>br />/div>h3>5. Source Appliance/h3>div>The next step is to chose a name for you new vcenter server and then go ahead and enter all the login info for your old vcenter server and the esxi-host that it is currently deployed on./div>div classseparator styleclear: both; text-align: center;>a hrefhttps://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhAPJybr0l2cWai5RuzuTtS-6J7tcT2sjK0viUTCLO0xb6zWqWR9B8ETMzGfjT2uho-ptchDNo9QfQAYVcxxWrAaP70BTXfZeAHx7aDrd9KM0Do4Yley-r3-lVGUh6zheT6VeF33iBDI2mp/s1600/sourceappliance.PNG imageanchor1 stylemargin-left: 1em; margin-right: 1em;>img border0 height256 srchttps://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhAPJybr0l2cWai5RuzuTtS-6J7tcT2sjK0viUTCLO0xb6zWqWR9B8ETMzGfjT2uho-ptchDNo9QfQAYVcxxWrAaP70BTXfZeAHx7aDrd9KM0Do4Yley-r3-lVGUh6zheT6VeF33iBDI2mp/s1600/sourceappliance.PNG width400 />/a>/div>div>When you have entered all the login details you will have to chose the size of your vcenter installation (how many hosts and VMs it should be able to manage) and what datastore to put it in./div>div>The last step will be to assign an IP address to the new vcenter installation from which it can reach your old vcenter. Note that this address will only be used temporary, as soon as the install is complete your old vcenter will be deleted and the new install will start using the same address as your old install./div>div>br />/div>div>This was the last step, now your upgrade will begin, this process takes a fairly long time, atleast 15min+ so have patience./div>div>As soon as the upgrade is complete you then can go ahead and login to your new vcenter 6.0 via the new fast web client./div>div>Hope you had some help from this guide./div>div styleclear: both;>/div>/div>div classpost-footer>div classpost-footer-line post-footer-line-1>span classpost-author vcard>Posted byspan classfn>a hrefhttps://www.blogger.com/profile/01205841755603264643 itempropauthor relauthor titleauthor profile>best-practice/a>/span>/span>span classpost-timestamp>ata classtimestamp-link hrefhttp://blog.best-practice.se/2015/03/upgrade-vcenter-55-to-60.html itempropurl relbookmark titlepermanent link>abbr classpublished itempropdatePublished title2015-03-14T13:25:00+01:00>13:25/abbr>/a>/span>span classpost-comment-link>a classcomment-link hrefhttp://blog.best-practice.se/2015/03/upgrade-vcenter-55-to-60.html#comment-form onclick>4 comments: /a>/span>span classpost-icons>span classitem-control blog-admin pid-2121895081>a hrefhttps://www.blogger.com/post-edit.g?blogID7621739724995317812&postID2850919954700605386&frompencil titleEdit Post>img alt classicon-action height18 srchttps://resources.blogblog.com/img/icon18_edit_allbkg.gif width18/>/a>/span>/span>div classpost-share-buttons goog-inline-block>a classgoog-inline-block share-button sb-email hrefhttps://www.blogger.com/share-post.g?blogID7621739724995317812&postID2850919954700605386&targetemail target_blank titleEmail This>span classshare-button-link-text>Email This/span>/a>a classgoog-inline-block share-button sb-blog hrefhttps://www.blogger.com/share-post.g?blogID7621739724995317812&postID2850919954700605386&targetblog onclickwindow.open(this.href, _blank, height270,width475); return false; target_blank titleBlogThis!>span classshare-button-link-text>BlogThis!/span>/a>a classgoog-inline-block share-button sb-twitter hrefhttps://www.blogger.com/share-post.g?blogID7621739724995317812&postID2850919954700605386&targettwitter target_blank titleShare to X>span classshare-button-link-text>Share to X/span>/a>a classgoog-inline-block share-button sb-facebook hrefhttps://www.blogger.com/share-post.g?blogID7621739724995317812&postID2850919954700605386&targetfacebook onclickwindow.open(this.href, _blank, height430,width640); return false; target_blank titleShare to Facebook>span classshare-button-link-text>Share to Facebook/span>/a>a classgoog-inline-block share-button sb-pinterest hrefhttps://www.blogger.com/share-post.g?blogID7621739724995317812&postID2850919954700605386&targetpinterest target_blank titleShare to Pinterest>span classshare-button-link-text>Share to Pinterest/span>/a>/div>/div>div classpost-footer-line post-footer-line-2>span classpost-labels>/span>/div>div classpost-footer-line post-footer-line-3>span classpost-location>/span>/div>/div>/div>/div> /div>/div> div classdate-outer> h2 classdate-header>span>Thursday, October 23, 2014/span>/h2> div classdate-posts> div classpost-outer>div classpost hentry itemscopeitemscope itemtypehttp://schema.org/BlogPosting>a name4359358495319985485>/a>h3 classpost-title entry-title itempropname>a hrefhttp://blog.best-practice.se/2014/10/using-rrdcached-with-observium.html>Using rrdcached with Observium/a>/h3>div classpost-header>div classpost-header-line-1>/div>/div>div classpost-body entry-content idpost-body-4359358495319985485 itemproparticleBody>rrdcached is a daemon that receives updates to existing RRD files, accumulates them and, if enough have been received or a defined time has passed, writes the updates to the RRD file.br />This can be very useful in a bigger Observium-instance as the number of polled interfaces grow and the number of RRD-files that will be updated each polling is increasing, soon each polling will be generating a lot of random writes to your storage.br />rrdcached gives us the possibility to trade some of that IO for memory. This is can be very good deal for virtual machines or any server with a slower storage but a fair amount of memory.br />br />This small guide is written and tested on Ubuntu Linux and I cant guarantee that it will work on any other distro.br />br />b>1. /b>Start by installing rrdcached using your favorite packet managerbr />blockquote classtr_bq>i># sudo apt-get update && sudo apt-get install rrdcached/i>/blockquote>i>br />/i>b>2. /b>The rrdcached daemon will be started automatically so we need to stop it.br />blockquote classtr_bq>i># sudo service rrdcached stop/i>/blockquote>blockquote classtr_bq>i>Stopping RRDtool data caching daemon: rrdcached./i>/blockquote>i>br />/i>b>3./b> Edit the start up options for the rrdcached daemonbr />blockquote classtr_bq>i># sudo nano /i>i>/etc/default/rrdcached/i>/blockquote>i>br />/i>Find the row in the configfile with #OPTS and replace them with these options:br />blockquote classtr_bq>i>OPTS-w 1800 -z 1800 -f 3600 /i>i>-s www-data /i>i>-l unix:/var/run/rrdcached.sock /i>i>-j /var/lib/rrdcached/journal/ -F/i>i> -b /opt/observium/rrd/ -B/i>/blockquote>Dont forget to remove the bracket!br />br />div>The values used here defines the following:br />br />ul>li>-w 1800 Wait 1800s (30min) before writing data/li>li>-z 1800 Delay writes by a random factor of up to 30 minutes (this should be equal to, or lower than, “-w”)/li>li>-f 3600 Flush all data every 3600s (1 hour)/li>li>-s set the group owner of the socket to www-data (this needs to be set before -l)/li>li>-l path to our socket that observium will talk to/li>li>-j path to journaling files/li>li>-F ALWAYS flush all updates to the RRD data files when the daemon is shut down/li>li>-b path to observium RRD-files/li>li>-B Only permit writes into the base directory specified in -b (and any sub-directories)./li>/ul>/div>div>b>4. /b>Now start rrdcached daemon againbr />blockquote classtr_bq>i># sudo service rrdcached start/i>/blockquote>strike>b>5. /b> Now here comes the big problem, as rrdached is started as root it will create the socket-file (i>/var/run/rrdcached.sock/i>) with root permissions. But the webserver user need to be able to both read and write to this socket so we will need to change the owner to the webserver user (www-data in this case)/strike>br />blockquote classtr_bq>i>strike># sudo chown www-data:www-data /var/run/rrdcached.sock/strike>/i>/blockquote>strike>This needs to be redone every time rrdcached is restarted as it will then recreate this file./strike>br />strike>This probably can be solved by manipulating the init-script or some other cleaver way, suggestions are highly appreciated! There are also flags in rrdcached for this (-m and -s) but I never got it to work, file owner was always root./strike>br />*NOTE* Step 5 no longer needed when using -s flag properly!br />br />b>6. /b>Last step, edit the observium config.php to use our rrdcached socket instead of writing RRDs directly.br />blockquote classtr_bq>i># sudo nano /opt/observium/config.php/i>/blockquote>Then add this line to the configbr />blockquote classtr_bq> i>$configrrdcached unix:/var/run/rrdcached.sock;/i>/blockquote>Save and exit! Now log in to Observium, your graphs should look as they use to. If you have a pretty big instance you should soon notice that the storage IO has decreased by a lot.br />br />If all your graphs show draw error then you webserver user probably dont have read and write-access to /var/run/rrdcached.sockbr />br />This is the IO of my observium-machine after installing rrdcached:br />div classseparator styleclear: both; text-align: center;>a hrefhttps://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi-cCeSjzzvzEY2RAoILrARVlucT0teB_ShmTwjHg2tXyWEWu_EKDzsqTUyR8M6Myjm6QonbWmTfajSj29o0eiFYZyRUEqTEsY2IvDyHvx_jERyglgpByekTOYpJD8zNfEzsYiQslwAuVh-/s1600/rrdcached.PNG imageanchor1 stylemargin-left: 1em; margin-right: 1em;>img border0 height204 srchttps://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi-cCeSjzzvzEY2RAoILrARVlucT0teB_ShmTwjHg2tXyWEWu_EKDzsqTUyR8M6Myjm6QonbWmTfajSj29o0eiFYZyRUEqTEsY2IvDyHvx_jERyglgpByekTOYpJD8zNfEzsYiQslwAuVh-/s1600/rrdcached.PNG width640 />/a>/div>br />h4>Weathermap/h4>/div>div>if you are using the php-weathermap with Observium then you will also need to edit the weathermap file to inclued:/div>blockquote classtr_bq>i>putenv (RRDCACHED_ADDRESS/var/run/rrdcached.sock);/i>/blockquote>div styleclear: both;>/div>/div>div classpost-footer>div classpost-footer-line post-footer-line-1>span classpost-author vcard>Posted byspan classfn>a hrefhttps://www.blogger.com/profile/01205841755603264643 itempropauthor relauthor titleauthor profile>best-practice/a>/span>/span>span classpost-timestamp>ata classtimestamp-link hrefhttp://blog.best-practice.se/2014/10/using-rrdcached-with-observium.html itempropurl relbookmark titlepermanent link>abbr classpublished itempropdatePublished title2014-10-23T19:47:00+02:00>19:47/abbr>/a>/span>span classpost-comment-link>a classcomment-link hrefhttp://blog.best-practice.se/2014/10/using-rrdcached-with-observium.html#comment-form onclick>7 comments: /a>/span>span classpost-icons>span classitem-control blog-admin pid-2121895081>a hrefhttps://www.blogger.com/post-edit.g?blogID7621739724995317812&postID4359358495319985485&frompencil titleEdit Post>img alt classicon-action height18 srchttps://resources.blogblog.com/img/icon18_edit_allbkg.gif width18/>/a>/span>/span>div classpost-share-buttons goog-inline-block>a classgoog-inline-block share-button sb-email hrefhttps://www.blogger.com/share-post.g?blogID7621739724995317812&postID4359358495319985485&targetemail target_blank titleEmail This>span classshare-button-link-text>Email This/span>/a>a classgoog-inline-block share-button sb-blog hrefhttps://www.blogger.com/share-post.g?blogID7621739724995317812&postID4359358495319985485&targetblog onclickwindow.open(this.href, _blank, height270,width475); return false; target_blank titleBlogThis!>span classshare-button-link-text>BlogThis!/span>/a>a classgoog-inline-block share-button sb-twitter hrefhttps://www.blogger.com/share-post.g?blogID7621739724995317812&postID4359358495319985485&targettwitter target_blank titleShare to X>span classshare-button-link-text>Share to X/span>/a>a classgoog-inline-block share-button sb-facebook hrefhttps://www.blogger.com/share-post.g?blogID7621739724995317812&postID4359358495319985485&targetfacebook onclickwindow.open(this.href, _blank, height430,width640); return false; target_blank titleShare to Facebook>span classshare-button-link-text>Share to Facebook/span>/a>a classgoog-inline-block share-button sb-pinterest hrefhttps://www.blogger.com/share-post.g?blogID7621739724995317812&postID4359358495319985485&targetpinterest target_blank titleShare to Pinterest>span classshare-button-link-text>Share to Pinterest/span>/a>/div>/div>div classpost-footer-line post-footer-line-2>span classpost-labels>/span>/div>div classpost-footer-line post-footer-line-3>span classpost-location>/span>/div>/div>/div>/div> /div>/div> div classdate-outer> h2 classdate-header>span>Tuesday, July 15, 2014/span>/h2> div classdate-posts> div classpost-outer>div classpost hentry itemscopeitemscope itemtypehttp://schema.org/BlogPosting>a name8668005650330331742>/a>h3 classpost-title entry-title itempropname>a hrefhttp://blog.best-practice.se/2014/07/using-php-weathermap-with-observium.html>Using PHP Weathermap with Observium/a>/h3>div classpost-header>div classpost-header-line-1>/div>/div>div classpost-body entry-content idpost-body-8668005650330331742 itemproparticleBody>The PHP Weathermap plugin is a very popular tool for mapping the link load of a network environment. It is usually used as a plugin to Cacti or MRTG but as Observium is gaining popularity I decided to make a quick guide for how you get the weathermap nicely integrated with Observium in a way that does not break when updating to newer versions of Observium.br />br />This guide assumes that you have a working installation of Observium already, preferably a installation that was done using the a hrefhttp://observium.org/wiki/Debian_Ubuntu_Installation target_blank>Debian/Ubuntu-guide/a>.br />br />b>1/b>. Download the modified version of PHP Weathermap from github github: https://github.com/ZerxXxes/weathermap-for-observium and put it in your observium/html-directory.br />The easiest way to do this is using git:br />blockquote classtr_bq>i>cd /opt/observium/html//i>/blockquote>blockquote classtr_bq>i>git clone https://github.com/ZerxXxes/weathermap-for-observium.git weathermap/i>/blockquote>b>2/b>. If you have used different paths for observium or the weathermap-plugin you will need to edit the variables in data-pick.php and map-poller.php, if you are following the installation guide then the default variables will work.br />br />b>3/b>. open the file editor.php and change the value in the beginning to:br />blockquote classtr_bq> $ENABLEDtrue/blockquote>As long as this value is true everyone who knows the right URL will be able to access the weathermap editor, its therefore recommended to change this value back to false as soon as you are done editing.br />br />b>4/b>. Make sure the directory configs/ is writable by your webserver, one way is to change to owner of the directory to the webserver-user: (in Ubuntu the webserver user is usually called www-data)br />blockquote classtr_bq>i>cd weathermap//i>/blockquote>blockquote classtr_bq>i>chown www-data:www-data configs//i>/blockquote>b>5/b>. Create a new directory called maps/ and make the webserver-user the ownerbr />blockquote classtr_bq>i>mkdir maps//i>/blockquote>blockquote classtr_bq>i>chown www-data:www-data maps//i>/blockquote>b>6/b>. Now use your webbrowser and access the editor in weathermap/editor.php (i.e. surf to observium.myurl.com/weathermap/editor.php)br />br />7. Create a new map by writing a name and click create map. Note that the map name *must* end with .conf (i.e. networkmap.conf)br />Edit your map, create nodes and draw links and then pick graphs from Observium to use with the links.br />*NOTE* Under Map Properties, make sure to define Output HTML Filename to maps/<mapname>.html and Output Image Filename to <mapname>.pngbr />br />br />div classseparator styleclear: both; text-align: center;>a hrefhttps://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhGJ3XFVHAesIHQvJ-GR4neHPCQkJ2-CyNMA-Lc81QXRIWCyNxUgOYeJHyu3TIWPef4MQywbKx0HHACwz6jJE5RvQlYQmuWTVaR9H9jATwp-bTWRz8SzSgpbbDx2XzwSkI2EFxw9hIhMx5W/s1600/properties.png imageanchor1 stylemargin-left: 1em; margin-right: 1em;>img border0 height308 srchttps://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhGJ3XFVHAesIHQvJ-GR4neHPCQkJ2-CyNMA-Lc81QXRIWCyNxUgOYeJHyu3TIWPef4MQywbKx0HHACwz6jJE5RvQlYQmuWTVaR9H9jATwp-bTWRz8SzSgpbbDx2XzwSkI2EFxw9hIhMx5W/s1600/properties.png width400 />/a>/div>br />br />b>8/b>. Make the file map-poller.php executable for your system by doing:br />blockquote classtr_bq>i>chmod +x map-poller.php/i>/blockquote>b>9/b>. Add a new line in the cronjob at /etc/cron.d/observium after the Observium polling and discovery:br />blockquote classtr_bq>*/5 * * * * root /opt/observium/html/weathermap/map-poller.php >> /dev/null 2>&1/blockquote>b>10/b>. Move the file navbar-custom.inc.php in the observium/html/includes/-directory. This file does not exist by default in Observium but Observium looks for this file and include the code from it if it exists, this makes it possible to add custom menus that does not break when you upgrade you Observium installation.br />blockquote classtr_bq>i>mv navbar-custom.inc.php /opt/observium/html/includes/navbar-custom.inc.php/i>/blockquote>*NOTE*br /> If you are using the current community edition (based on revision 5229) or any revision older than 5670 you should instead use the file navbar-custom-old.inc.php and rename it.br />br />br />Now thats it!br />All .html-files in the maps/-directory will be linked in a sub menu in the Observium GUI like this:br />br />div classseparator styleclear: both; text-align: center;>a hrefhttps://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEirqSy5ZP4da9QedUB4FS-9xB1PubmLCafeDIu9QyL4f_WN-KINaH7a3oyaBg1ZA2tRwL4IY98aJfVl9EzbFH63phH81gqxqCWvgyj9qsuYWk-iyMVVoipjvfokawOseQPvrOBi3dQGfF11/s1600/new-gui.png imageanchor1 stylemargin-left: 1em; margin-right: 1em;>img border0 height572 srchttps://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEirqSy5ZP4da9QedUB4FS-9xB1PubmLCafeDIu9QyL4f_WN-KINaH7a3oyaBg1ZA2tRwL4IY98aJfVl9EzbFH63phH81gqxqCWvgyj9qsuYWk-iyMVVoipjvfokawOseQPvrOBi3dQGfF11/s1600/new-gui.png width640 />/a>/div>br />Clicking on one of them will take you to the rendered weathermap where you will get a nice overview of your networks load.br />Hovering the mouse over a link will show the Observium graph for that link like this:br />br />div classseparator styleclear: both; text-align: center;>a hrefhttps://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgPeTFnCw6oO5aeLeLzvHHhDf2ua561HajRYT-7XzpGcjVyurMegruatbgXY9bCXHqBqymndBrguDgGgOc4yT_pEes9587KEdxD1DjN7Hp6KR7Zvr6AI_dVIj9JQUTklZu-DHAi2m-PcgA6/s1600/new-gui_hover.png imageanchor1 stylemargin-left: 1em; margin-right: 1em;>img border0 height486 srchttps://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgPeTFnCw6oO5aeLeLzvHHhDf2ua561HajRYT-7XzpGcjVyurMegruatbgXY9bCXHqBqymndBrguDgGgOc4yT_pEes9587KEdxD1DjN7Hp6KR7Zvr6AI_dVIj9JQUTklZu-DHAi2m-PcgA6/s1600/new-gui_hover.png width640 />/a>/div>br />And clicking on a link will take you to the Observium-page for that link.br />br />Hope this guide has been helpful for you and thank you for reading!div styleclear: both;>/div>/div>div classpost-footer>div classpost-footer-line post-footer-line-1>span classpost-author vcard>Posted byspan classfn>a hrefhttps://www.blogger.com/profile/01205841755603264643 itempropauthor relauthor titleauthor profile>best-practice/a>/span>/span>span classpost-timestamp>ata classtimestamp-link hrefhttp://blog.best-practice.se/2014/07/using-php-weathermap-with-observium.html itempropurl relbookmark titlepermanent link>abbr classpublished itempropdatePublished title2014-07-15T07:55:00+02:00>07:55/abbr>/a>/span>span classpost-comment-link>a classcomment-link hrefhttp://blog.best-practice.se/2014/07/using-php-weathermap-with-observium.html#comment-form onclick>73 comments: /a>/span>span classpost-icons>span classitem-control blog-admin pid-2121895081>a hrefhttps://www.blogger.com/post-edit.g?blogID7621739724995317812&postID8668005650330331742&frompencil titleEdit Post>img alt classicon-action height18 srchttps://resources.blogblog.com/img/icon18_edit_allbkg.gif width18/>/a>/span>/span>div classpost-share-buttons goog-inline-block>a classgoog-inline-block share-button sb-email hrefhttps://www.blogger.com/share-post.g?blogID7621739724995317812&postID8668005650330331742&targetemail target_blank titleEmail This>span classshare-button-link-text>Email This/span>/a>a classgoog-inline-block share-button sb-blog hrefhttps://www.blogger.com/share-post.g?blogID7621739724995317812&postID8668005650330331742&targetblog onclickwindow.open(this.href, _blank, height270,width475); return false; target_blank titleBlogThis!>span classshare-button-link-text>BlogThis!/span>/a>a classgoog-inline-block share-button sb-twitter hrefhttps://www.blogger.com/share-post.g?blogID7621739724995317812&postID8668005650330331742&targettwitter target_blank titleShare to X>span classshare-button-link-text>Share to X/span>/a>a classgoog-inline-block share-button sb-facebook hrefhttps://www.blogger.com/share-post.g?blogID7621739724995317812&postID8668005650330331742&targetfacebook onclickwindow.open(this.href, _blank, height430,width640); return false; target_blank titleShare to Facebook>span classshare-button-link-text>Share to Facebook/span>/a>a classgoog-inline-block share-button sb-pinterest hrefhttps://www.blogger.com/share-post.g?blogID7621739724995317812&postID8668005650330331742&targetpinterest target_blank titleShare to Pinterest>span classshare-button-link-text>Share to Pinterest/span>/a>/div>/div>div classpost-footer-line post-footer-line-2>span classpost-labels>/span>/div>div classpost-footer-line post-footer-line-3>span classpost-location>/span>/div>/div>/div>/div> /div>/div> /div>div classblog-pager idblog-pager>span idblog-pager-older-link>a classblog-pager-older-link hrefhttp://blog.best-practice.se/search?updated-max2014-07-15T07:55:00%2B02:00&max-results7 idBlog1_blog-pager-older-link titleOlder Posts>Older Posts/a>/span>a classhome-link hrefhttp://blog.best-practice.se/>Home/a>/div>div classclear>/div>div classblog-feeds>div classfeed-links>Subscribe to:a classfeed-link hrefhttp://blog.best-practice.se/feeds/posts/default target_blank typeapplication/atom+xml>Posts (Atom)/a>/div>/div>/div>/div>/div>/div>div classcolumn-left-outer>div classcolumn-left-inner>aside>/aside>/div>/div>div classcolumn-right-outer>div classcolumn-right-inner>aside>div classsidebar section idsidebar-right-1>div classwidget AdSense data-version1 idAdSense1>div classwidget-content>script typetext/javascript>!--google_ad_client ca-pub-2006306891004556;google_ad_host ca-host-pub-1556223355139109;google_ad_host_channel L0001;/* best-practice2_sidebar-right-1_AdSense1_200x200_as */google_ad_slot 5090618829;google_ad_width 200;google_ad_height 200;//-->/script>script typetext/javascriptsrchttp://pagead2.googlesyndication.com/pagead/show_ads.js>/script>div classclear>/div>/div>/div>div classwidget Text data-version1 idText1>h2 classtitle>About/h2>div classwidget-content>The Best Practice Blog is maintained by Markus Klock, a Cisco-certified computer networks consultant and Svante Boberg, a Senior server operations engineer.br/>Here we write about computer networks, virtualization, security and other tech suff.br/>/div>div classclear>/div>/div>div classwidget BlogArchive data-version1 idBlogArchive1>h2>Blog Archive/h2>div classwidget-content>div idArchiveList>div idBlogArchive1_ArchiveList>ul classhierarchy>li classarchivedate expanded>a classtoggle hrefjavascript:void(0)>span classzippy toggle-open> ▼ /span>/a>a classpost-count-link hrefhttp://blog.best-practice.se/2017/>2017/a>span classpost-count dirltr>(1)/span>ul classhierarchy>li classarchivedate expanded>a classtoggle hrefjavascript:void(0)>span classzippy toggle-open> ▼ /span>/a>a classpost-count-link hrefhttp://blog.best-practice.se/2017/10/>October/a>span classpost-count dirltr>(1)/span>ul classposts>li>a hrefhttp://blog.best-practice.se/2017/10/scaling-observium-horizontally.html>Scaling Observium horizontally/a>/li>/ul>/li>/ul>/li>/ul>ul classhierarchy>li classarchivedate collapsed>a classtoggle hrefjavascript:void(0)>span classzippy> ► /span>/a>a classpost-count-link hrefhttp://blog.best-practice.se/2016/>2016/a>span classpost-count dirltr>(2)/span>ul classhierarchy>li classarchivedate collapsed>a classtoggle hrefjavascript:void(0)>span classzippy> ► /span>/a>a classpost-count-link hrefhttp://blog.best-practice.se/2016/06/>June/a>span classpost-count dirltr>(2)/span>/li>/ul>/li>/ul>ul classhierarchy>li classarchivedate collapsed>a classtoggle hrefjavascript:void(0)>span classzippy> ► /span>/a>a classpost-count-link hrefhttp://blog.best-practice.se/2015/>2015/a>span classpost-count dirltr>(2)/span>ul classhierarchy>li classarchivedate collapsed>a classtoggle hrefjavascript:void(0)>span classzippy> ► /span>/a>a classpost-count-link hrefhttp://blog.best-practice.se/2015/12/>December/a>span classpost-count dirltr>(1)/span>/li>/ul>ul classhierarchy>li classarchivedate collapsed>a classtoggle hrefjavascript:void(0)>span classzippy> ► /span>/a>a classpost-count-link hrefhttp://blog.best-practice.se/2015/03/>March/a>span classpost-count dirltr>(1)/span>/li>/ul>/li>/ul>ul classhierarchy>li classarchivedate collapsed>a classtoggle hrefjavascript:void(0)>span classzippy> ► /span>/a>a classpost-count-link hrefhttp://blog.best-practice.se/2014/>2014/a>span classpost-count dirltr>(2)/span>ul classhierarchy>li classarchivedate collapsed>a classtoggle hrefjavascript:void(0)>span classzippy> ► /span>/a>a classpost-count-link hrefhttp://blog.best-practice.se/2014/10/>October/a>span classpost-count dirltr>(1)/span>/li>/ul>ul classhierarchy>li classarchivedate collapsed>a classtoggle hrefjavascript:void(0)>span classzippy> ► /span>/a>a classpost-count-link hrefhttp://blog.best-practice.se/2014/07/>July/a>span classpost-count dirltr>(1)/span>/li>/ul>/li>/ul>ul classhierarchy>li classarchivedate collapsed>a classtoggle hrefjavascript:void(0)>span classzippy> ► /span>/a>a classpost-count-link hrefhttp://blog.best-practice.se/2013/>2013/a>span classpost-count dirltr>(2)/span>ul classhierarchy>li classarchivedate collapsed>a classtoggle hrefjavascript:void(0)>span classzippy> ► /span>/a>a classpost-count-link hrefhttp://blog.best-practice.se/2013/08/>August/a>span classpost-count dirltr>(1)/span>/li>/ul>ul classhierarchy>li classarchivedate collapsed>a classtoggle hrefjavascript:void(0)>span classzippy> ► /span>/a>a classpost-count-link hrefhttp://blog.best-practice.se/2013/07/>July/a>span classpost-count dirltr>(1)/span>/li>/ul>/li>/ul>ul classhierarchy>li classarchivedate collapsed>a classtoggle hrefjavascript:void(0)>span classzippy> ► /span>/a>a classpost-count-link hrefhttp://blog.best-practice.se/2012/>2012/a>span classpost-count dirltr>(3)/span>ul classhierarchy>li classarchivedate collapsed>a classtoggle hrefjavascript:void(0)>span classzippy> ► /span>/a>a classpost-count-link hrefhttp://blog.best-practice.se/2012/11/>November/a>span classpost-count dirltr>(1)/span>/li>/ul>ul classhierarchy>li classarchivedate collapsed>a classtoggle hrefjavascript:void(0)>span classzippy> ► /span>/a>a classpost-count-link hrefhttp://blog.best-practice.se/2012/08/>August/a>span classpost-count dirltr>(1)/span>/li>/ul>ul classhierarchy>li classarchivedate collapsed>a classtoggle hrefjavascript:void(0)>span classzippy> ► /span>/a>a classpost-count-link hrefhttp://blog.best-practice.se/2012/07/>July/a>span classpost-count dirltr>(1)/span>/li>/ul>/li>/ul>/div>/div>div classclear>/div>/div>/div>/div>/aside>/div>/div>/div>div styleclear: both>/div>!-- columns -->/div>!-- main -->/div>/div>div classmain-cap-bottom cap-bottom>div classcap-left>/div>div classcap-right>/div>/div>/div>footer>div classfooter-outer>div classfooter-cap-top cap-top>div classcap-left>/div>div classcap-right>/div>/div>div classfauxborder-left footer-fauxborder-left>div classfauxborder-right footer-fauxborder-right>/div>div classregion-inner footer-inner>div classfoot no-items section idfooter-1>/div>table border0 cellpadding0 cellspacing0 classsection-columns columns-2>tbody>tr>td classfirst columns-cell>div classfoot no-items section idfooter-2-1>/div>/td>td classcolumns-cell>div classfoot no-items section idfooter-2-2>/div>/td>/tr>/tbody>/table>!-- outside of the include in order to lock Attribution widget -->div classfoot section idfooter-3>div classwidget Attribution data-version1 idAttribution1>div classwidget-content styletext-align: center;>Copyright, eFree HB 2012. Simple theme. Powered by a hrefhttps://www.blogger.com target_blank>Blogger/a>./div>div classclear>/div>/div>/div>/div>/div>div classfooter-cap-bottom cap-bottom>div classcap-left>/div>div classcap-right>/div>/div>/div>/footer>!-- content -->/div>/div>div classcontent-cap-bottom cap-bottom>div classcap-left>/div>div classcap-right>/div>/div>/div>/div>script typetext/javascript> window.setTimeout(function() { document.body.className document.body.className.replace(loading, ); }, 10); /script>!--It is your responsibility to notify your visitors about cookies used and data collected on your blog. Blogger makes a standard notification available for you to use on your blog, and you can customize it or replace with your own notice. See http://www.blogger.com/go/cookiechoices for more details.-->script defer src/js/cookienotice.js>/script>script> document.addEventListener(DOMContentLoaded, function(event) { window.cookieChoices && cookieChoices.showCookieConsentBar && cookieChoices.showCookieConsentBar( (window.cookieOptions && cookieOptions.msg) || This site uses cookies from Google to deliver its services and to analyze traffic. Your IP address and user-agent are shared with Google along with performance and security metrics to ensure quality of service, generate usage statistics, and to detect and address abuse., (window.cookieOptions && cookieOptions.close) || Got it, (window.cookieOptions && cookieOptions.learn) || Learn More, (window.cookieOptions && cookieOptions.link) || https://www.blogger.com/go/blogspot-cookies); }); /script>script typetext/javascript srchttps://www.blogger.com/static/v1/widgets/4126374771-widgets.js>/script>script typetext/javascript>window__wavt AOuZoY5-xOOCBchfACqTLgTdGKjrT0woxA:1738699909416;_WidgetManager._Init(//www.blogger.com/rearrange?blogID\x3d7621739724995317812,//blog.best-practice.se/,7621739724995317812);_WidgetManager._SetDataContext({name: blog, data: {blogId: 7621739724995317812, title: Best Practice Blog, url: http://blog.best-practice.se/, canonicalUrl: http://blog.best-practice.se/, homepageUrl: http://blog.best-practice.se/, searchUrl: http://blog.best-practice.se/search, canonicalHomepageUrl: http://blog.best-practice.se/, blogspotFaviconUrl: http://blog.best-practice.se/favicon.ico, bloggerUrl: https://www.blogger.com, hasCustomDomain: true, httpsEnabled: false, enabledCommentProfileImages: true, gPlusViewType: FILTERED_POSTMOD, adultContent: false, analyticsAccountNumber: , encoding: UTF-8, locale: en, localeUnderscoreDelimited: en, languageDirection: ltr, isPrivate: false, isMobile: false, isMobileRequest: false, mobileClass: , isPrivateBlog: false, isDynamicViewsAvailable: true, feedLinks: \x3clink rel\x3d\x22alternate\x22 type\x3d\x22application/atom+xml\x22 title\x3d\x22Best Practice Blog - Atom\x22 href\x3d\x22http://blog.best-practice.se/feeds/posts/default\x22 /\x3e\n\x3clink rel\x3d\x22alternate\x22 type\x3d\x22application/rss+xml\x22 title\x3d\x22Best Practice Blog - RSS\x22 href\x3d\x22http://blog.best-practice.se/feeds/posts/default?alt\x3drss\x22 /\x3e\n\x3clink rel\x3d\x22service.post\x22 type\x3d\x22application/atom+xml\x22 title\x3d\x22Best Practice Blog - Atom\x22 href\x3d\x22https://www.blogger.com/feeds/7621739724995317812/posts/default\x22 /\x3e\n, meTag: , adsenseClientId: ca-pub-2006306891004556, adsenseHostId: ca-host-pub-1556223355139109, adsenseHasAds: true, adsenseAutoAds: false, boqCommentIframeForm: true, loginRedirectParam: , view: , dynamicViewsCommentsSrc: //www.blogblog.com/dynamicviews/4224c15c4e7c9321/js/comments.js, dynamicViewsScriptSrc: //www.blogblog.com/dynamicviews/420e762057321689, plusOneApiSrc: https://apis.google.com/js/platform.js, disableGComments: true, interstitialAccepted: false, sharing: {platforms: {name: Get link, key: link, shareMessage: Get link, target: }, {name: Facebook, key: facebook, shareMessage: Share to Facebook, target: facebook}, {name: BlogThis!, key: blogThis, shareMessage: BlogThis!, target: blog}, {name: X, key: twitter, shareMessage: Share to X, target: twitter}, {name: Pinterest, key: pinterest, shareMessage: Share to Pinterest, target: pinterest}, {name: Email, key: email, shareMessage: Email, target: email}, disableGooglePlus: true, googlePlusShareButtonWidth: 0, googlePlusBootstrap: \x3cscript type\x3d\x22text/javascript\x22\x3ewindow.___gcfg \x3d {\x27lang\x27: \x27en\x27};\x3c/script\x3e}, hasCustomJumpLinkMessage: false, jumpLinkMessage: Read more, pageType: index, pageName: , pageTitle: Best Practice Blog}}, {name: features, data: {}}, {name: messages, data: {edit: Edit, linkCopiedToClipboard: Link copied to clipboard!, ok: Ok, postLink: Post Link}}, {name: template, data: {name: custom, localizedName: Custom, isResponsive: false, isAlternateRendering: false, isCustom: true, variant: pale, variantId: pale}}, {name: view, data: {classic: {name: classic, url: ?view\x3dclassic}, flipcard: {name: flipcard, url: ?view\x3dflipcard}, magazine: {name: magazine, url: ?view\x3dmagazine}, mosaic: {name: mosaic, url: ?view\x3dmosaic}, sidebar: {name: sidebar, url: ?view\x3dsidebar}, snapshot: {name: snapshot, url: ?view\x3dsnapshot}, timeslide: {name: timeslide, url: ?view\x3dtimeslide}, isMobile: false, title: Best Practice Blog, description: , url: http://blog.best-practice.se/, type: feed, isSingleItem: false, isMultipleItems: true, isError: false, isPage: false, isPost: false, isHomepage: true, isArchive: false, isLabelSearch: false}});_WidgetManager._RegisterWidget(_NavbarView, new _WidgetInfo(Navbar1, navbar, document.getElementById(Navbar1), {}, displayModeFull));_WidgetManager._RegisterWidget(_HeaderView, new _WidgetInfo(Header1, header, document.getElementById(Header1), {}, displayModeFull));_WidgetManager._RegisterWidget(_BlogView, new _WidgetInfo(Blog1, main, document.getElementById(Blog1), {cmtInteractionsEnabled: false, lightboxEnabled: true, lightboxModuleUrl: https://www.blogger.com/static/v1/jsbin/522787571-lbx.js, lightboxCssUrl: https://www.blogger.com/static/v1/v-css/1964470060-lightbox_bundle.css}, displayModeFull));_WidgetManager._RegisterWidget(_AdSenseView, new _WidgetInfo(AdSense1, sidebar-right-1, document.getElementById(AdSense1), {}, displayModeFull));_WidgetManager._RegisterWidget(_TextView, new _WidgetInfo(Text1, sidebar-right-1, document.getElementById(Text1), {}, displayModeFull));_WidgetManager._RegisterWidget(_BlogArchiveView, new _WidgetInfo(BlogArchive1, sidebar-right-1, document.getElementById(BlogArchive1), {languageDirection: ltr, loadingMessage: Loading\x26hellip;}, displayModeFull));_WidgetManager._RegisterWidget(_AttributionView, new _WidgetInfo(Attribution1, footer-3, document.getElementById(Attribution1), {}, displayModeFull));/script>/body>/html>
View on OTX
|
View on ThreatMiner
Please enable JavaScript to view the
comments powered by Disqus.
Data with thanks to
AlienVault OTX
,
VirusTotal
,
Malwr
and
others
. [
Sitemap
]