You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

485 lines
15 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<!doctype html>
<html class="no-js" lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="author" content="Lednerb">
<meta name="description" content="Bilberry Premium Theme for Hugo.">
<meta name="keywords" content="blog,personal,responsive,search,font awesome,pages,posts,multilingual,highlight.js,syntax highlighting,premium,shortcuts">
<meta name="generator" content="Hugo 0.50" />
<title> 筆記- ubuntu 18.04 系統狀態監控工具 librenms | My cool new Blog</title>
<meta name="description" content="筆記- ubuntu 18.04 系統狀態監控工具 librenms - Bilberry Premium Theme for Hugo.">
<meta itemprop="name" content="筆記- ubuntu 18.04 系統狀態監控工具 librenms">
<meta itemprop="description" content="筆記- ubuntu 18.04 系統狀態監控工具 librenms - Bilberry Premium Theme for Hugo.">
<meta property="og:title" content="筆記- ubuntu 18.04 系統狀態監控工具 librenms">
<meta property="og:description" content="筆記- ubuntu 18.04 系統狀態監控工具 librenms - Bilberry Premium Theme for Hugo.">
<meta property="og:image" content="https://www.gravatar.com/avatar/88188b6cc451928eba90e8400bc68086?size=200">
<meta property="og:url" content="https://h.cowbay.org/article/librenms-in-a-docker/">
<meta property="og:site_name" content="My cool new Blog">
<meta property="og:type" content="article">
<link rel="icon" type="image/png" href="https://h.cowbay.org/favicon-32x32.png" sizes="32x32">
<link rel="icon" type="image/png" href="https://h.cowbay.org/favicon-16x16.png" sizes="16x16">
<link rel="stylesheet" href="https://h.cowbay.org/sass/combined.min.717098cb5503581e75f12e486a847ca410bf8367d4d8713f4c37affc868c5a1d.css">
</head>
<body class="bilberry-hugo-theme">
<nav>
<div class="container">
<ul class="topnav">
<li><a href="/page/about-bilberry/">About Bilberry</a></li>
<li><a href="https://github.com/Lednerb/bilberry-hugo-theme" target="_blank">Github</a></li>
</ul>
<div id="search-box" class="search">
<i class="fa fa-search"></i>
<input id="search" type="text" placeholder="Search ...">
</div>
</div>
</nav>
<header>
<div class="container">
<div class="logo">
<a href="/" class="logo">
<img src="https://www.gravatar.com/avatar/88188b6cc451928eba90e8400bc68086?d=mm&size=200" alt="">
<span class="overlay"><i class="fa fa-home"></i></span>
</a>
</div>
<div class="titles">
<h3 class="title"><a href="/">My cool new Blog</a></h3>
<span class="subtitle">Hello World! This is the most epic subtitle ever.</span>
</div>
<div class="languages">
<a href="/en" class="active">en</a>
<a href="/de">de</a>
</div>
<div class="toggler">
<i class="fa fa-bars" aria-hidden="true"></i>
</div>
</div>
</header>
<div class="main container">
<div class="article-wrapper u-cf single">
<a class="bubble" href="/article/librenms-in-a-docker/">
<i class="fa fa-fw fa-pencil"></i>
</a>
<article class="default article">
<div class="content">
<h3><a href="/article/librenms-in-a-docker/">筆記- ubuntu 18.04 系統狀態監控工具 librenms</a></h3>
<div class="meta">
<span class="date moment">0001-01-01</span>
</div>
<h3 id="librenms">LibreNMS</h3>
<p><a href="https://www.librenms.org/">LibreNMS 官方網站</a></p>
<p>過去用過許多不同類型的伺服器狀態監測的系統NAGIOS/NMS/MRTG/PRTG/CACTI/Smokeping
不得不說前面幾種的界面設計很明顯已經「過時」只有Smokeping 勉強算得上 <em>「fancy」</em>
現在的系統已經不只是功能要能符合需求UI/Report也要能夠「入眼」才是個真正好的系統</p>
<p>最近正好因為現在公司之前建立好的NMS發生一些問題也跟主管討論怎樣改善這種狀況
&lt;!&ndash; more &ndash;!&gt;</p>
<p>上網找了一些 opensource 的系統,很多都還是那種比較「老派」的界面設計!
拜託!工程師也是人好嗎?時代在改變,「審美觀」自然也會跟著改變
<strong>15年前也許我會覺得 cacti 超炫! 15年後再看cacti我只能說超遜</strong></p>
<p>直到我看到 LibreNMS
設定簡單、畫面簡潔美觀而且有docker file 可以直接執行!真的是太美好了!</p>
<p>二話不說馬上下載docker-compose版本回來測試
<a href="https://github.com/setiseta/docker-librenms">setiseta/docker-librenms on github</a></p>
<p>下載回來之後簡單修改一下docker-compose.yml 就可以跑了docker就是這麼方便啊
我的docker-compose.yml如下
基本上我只修改了 PASSWORD 和 timezone 還有要開的port而已
不過不知為何改這邊的timezone似乎沒有作用這個還要再研究</p>
<pre><code>version: '3'
services:
mysql:
image: mariadb
container_name: librenms-db
volumes:
- ./mysql:/var/lib/mysql
- ./50-server.cnf:/etc/mysql/mariadb.conf.d/50-server.cnf:ro
environment:
- MYSQL_ROOT_PASSWORD=password
- MYSQL_DATABASE=librenms
restart: always
librenms:
build: .
image: seti/librenms
container_name: librenms
hostname: librenms
volumes:
- ./data:/data
- /etc/timezone:/etc/timzone:ro
- /etc/localtime:/etc/localtime:ro
ports:
- 8002:80
- 514:514/tcp
- 514:514/udp
depends_on:
- mysql
environment:
- DB_TYPE=mysql
- DB_HOST=mysql
- DB_NAME=librenms
- DB_USER=root
- DB_PASS=password
- TZ=&quot;Asia/Taipei&quot;
- POLLER=24
- SERVICES_ENABLED=1
- UPDATE_CHANNEL=master
</code></pre>
<p>改完之後,直接執行 docker-compose up -d
可能這個系統比較大一點,啟動要跑比較多東西,所以要跑一下子
可以用docker ps -a / docker logs librenms 檢查狀態<br />
不然就放個十分鐘,總是可以跑起來的 XD
登入之後先測試加入一些已經開放SNMP的設備可以很順利的抓到
再放個半小時一小時的,就可以看到圖表上開始出現數據了
<img src="http://i.imgur.com/PN2aYSP.png" alt="Mail Server 運行狀況" /></p>
<p><img src="http://i.imgur.com/urFM0nH.png" alt="LibreNMS 圖表" /></p>
<p>再來這個是我覺得很有用的網路連接狀況
甚至會把帶哪個VLAN去哪個裝置都列出來
非常的方便!
<img src="http://i.imgur.com/173OLiB.png" alt="網路連接狀況" /></p>
</div>
<div class="footer">
<div class="tags">
<i class="fa fa-tags"></i>
<div class="links">
<a href="/tags/linux">linux</a>
<a href="/tags/librenms">librenms</a>
</div>
</div>
</div>
</article>
</div>
<div id="disqus_thread"></div>
<script type="application/javascript">
var disqus_config = function () {
};
(function() {
if (["localhost", "127.0.0.1"].indexOf(window.location.hostname) != -1) {
document.getElementById('disqus_thread').innerHTML = 'Disqus comments not available by default when the website is previewed locally.';
return;
}
var d = document, s = d.createElement('script'); s.async = true;
s.src = '//' + "bilberry-hugo-theme" + '.disqus.com/embed.js';
s.setAttribute('data-timestamp', +new Date());
(d.head || d.body).appendChild(s);
})();
</script>
<noscript>Please enable JavaScript to view the <a href="https://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript>
<a href="https://disqus.com" class="dsq-brlink">comments powered by <span class="logo-disqus">Disqus</span></a>
</div>
<footer>
<div class="container">
<div class="recent-posts">
<strong>Latest posts</strong>
<ul>
<li>
<a href="/article/google-550-5-7-1-sloution/">寄信給google被退信 錯誤 550-5.7.1的解法</a>
</li>
<li>
<a href="/article/netdata-linux-system-performance-monitor-dashboard/">Netdata Linux System Performance Monitor Dashboard</a>
</li>
<li>
<a href="/article/linux-performance-monitor-dashboard-netdata-md/">Linux 底下極其詳細的System performace Monitor Dashboard - Netdata</a>
</li>
<li>
<a href="/article/syntax-test/">Syntax Test</a>
</li>
<li>
<a href="/article/psql-create-role-and-assign-priviledges/">psql create role and assign priviledges</a>
</li>
<li>
<a href="/article/study-url/">Study URL</a>
</li>
<li>
<a href="/article/rsync-time-backup/">[筆記] Linux 底下好用的備份工具 rsync-time-backup</a>
</li>
</ul>
</div>
<div class="categories">
<a href="/categories/"><strong>Categories</strong></a>
<ul>
<li>
<a href="/categories/%E6%9C%AA%E5%88%86%E9%A1%9E">未分類 (86)</a>
</li>
<li>
<a href="/categories/%E5%B7%A5%E4%BD%9C%E7%AD%86%E8%A8%98">工作筆記 (68)</a>
</li>
<li>
<a href="/categories/%E5%85%B6%E4%BB%96">其他 (46)</a>
</li>
<li>
<a href="/categories/%E7%AD%86%E8%A8%98">筆記 (30)</a>
</li>
<li>
<a href="/categories/%E5%89%AA%E5%A0%B1">剪報 (18)</a>
</li>
<li>
<a href="/categories/starting">Starting (5)</a>
</li>
<li>
<a href="/categories/blog">Blog (4)</a>
</li>
</ul>
</div>
<div class="right">
<div class="external-profiles">
<strong>Social media</strong>
<a href="https://twitter.com/TheRealLednerb" target="_blank"><i class="fa fa-twitter-adblock-proof"></i></a>
<a href="https://github.com/Lednerb" target="_blank"><i class="fa fa-github"></i></a>
</div>
<div class="languages">
<strong>Other languages</strong>
<a href="/en" class="active">en</a>
<a href="/de">de</a>
</div>
</div>
</div>
</footer>
<div class="credits">
<div class="container">
<div class="copyright">
<a href="https://github.com/Lednerb" target="_blank">
&copy;
2017
by Lednerb
</a>
</div>
<div class="author">
<a href="https://github.com/Lednerb/bilberry-hugo-theme" target="_blank">Bilberry Hugo Theme</a>
</div>
</div>
</div>
<script type="text/javascript" src="https://h.cowbay.org/js/externalDependencies.39c47e10e241eae2947b3fe21809c572.js" integrity="md5-OcR&#43;EOJB6uKUez/iGAnFcg=="></script>
<script type="text/javascript" src="https://h.cowbay.org/js/theme.ff50ae6dc1bfc220b23bf69dbb41b54e.js" integrity="md5-/1CubcG/wiCyO/adu0G1Tg=="></script>
<script>
$(".moment").each(function() {
$(this).text(
moment( $(this).text() )
.locale( "en" )
.format('LL')
);
});
$(".footnote-return sup").html("");
</script>
<script>
var client = algoliasearch("Y2C4RWMPXW", "50ea7f8c41c0ad233926e0be2b769ed1");
var index = client.initIndex("default-content");
$('#search').autocomplete({ hint: false, autoselect: true, debug: false },
[
{
source: $.fn.autocomplete.sources.hits(index, { hitsPerPage: 5, filters: 'language: en' }),
displayKey: function(suggestion) {
return suggestion.title || suggestion.author
},
templates: {
suggestion: function(suggestion) {
return "<span class='entry " + suggestion.type + "'>"
+ "<span class='title'>" + suggestion.title + "</span>"
+ "<span class='fa fa-fw " + suggestion.iconClass + "'></span>"
+ "</span>"
;
},
empty: function() {
return "<span class='empty'>Nothing found.</span>"
},
footer: function() {
return '<div class="branding">Powered by <img src="https:\/\/h.cowbay.org\/dist\/algolia-logo-light.svg" /></div>'
}
},
}
])
.on('autocomplete:selected', function(event, suggestion, dataset) {
window.location = (suggestion.url);
})
.keypress(function (event, suggestion) {
if (event.which == 13) {
window.location = (suggestion.url);
}
});
</script>
</body>
</html>