解決 Cacti 出現 RRDTool version does not match configured version 的訊息

在 Cacti 管理畫面 Console / System Utilities / Technical Support 畫面中,出現的警告訊息:
ERROR: Installed RRDTool version does not match configured version.
Please visit the Configuration Settings and select the correct RRDTool Utility Version.

檢查系統安裝的 RRD Tool 版本,是 1.5.5-4
# dpkg -l | grep rrd
ii  librrd4:amd64                      1.5.5-4                            amd64        time-series data storage and display system (runtime library)
ii  rrdtool                            1.5.5-4                            amd64        time-series data storage and display system (programs)

可是在 Console / Settings / General 頁面中,RRDTool Utility Version 只有 1.0~1.4 版可以選擇

[@more@]解決方式:
參考 Cacti + RRDtool 錯誤訊息 @mini box 迷你盒子 – nidBox親子盒子

# cp /usr/share/cacti/site/utilities.php /usr/share/cacti/site/utilities.php.$(date +%F)
# vim /usr/share/cacti/site/utilities.php

if (preg_match(“/^RRDtool 1.4/”, $out_array[0])) {
    $rrdtool_version = “rrd-1.4.x”;
}else if (preg_match(“/^RRDtool 1.3./”, $out_array[0])) {
    $rrdtool_version = “rrd-1.3.x”;
}else if (preg_match(“/^RRDtool 1.2./”, $out_array[0])) {
    $rrdtool_version = “rrd-1.2.x”;
}else if (preg_match(“/^RRDtool 1.0./”, $out_array[0])) {
    $rrdtool_version = “rrd-1.0.x”;
}

 修改成

 if (preg_match(“/^RRDtool 1.6/”, $out_array[0])) {
     $rrdtool_version = “rrd-1.6.x”;
  } elseif (preg_match(“/^RRDtool 1.5/”, $out_array[0])) {
       $rrdtool_version = “rrd-1.5.x”;
  } elseif (preg_match(“/^RRDtool 1.4/”, $out_array[0])) {
       $rrdtool_version = “rrd-1.4.x”;
  }else if (preg_match(“/^RRDtool 1.3./”, $out_array[0])) {
       $rrdtool_version = “rrd-1.3.x”;
  }else if (preg_match(“/^RRDtool 1.2./”, $out_array[0])) {
      $rrdtool_version = “rrd-1.2.x”;
  }else if (preg_match(“/^RRDtool 1.0./”, $out_array[0])) {
      $rrdtool_version = “rrd-1.0.x”;
  }

 
# cp /usr/share/cacti/site/include/global_arrays.php /usr/share/cacti/site/include/global_arrays.php.$(date +%F)
# vim /usr/share/cacti/site/include/global_arrays.php

$rrdtool_versions = array(
        “rrd-1.0.x” => “RRDTool 1.0.x”,
        “rrd-1.2.x” => “RRDTool 1.2.x”,
        “rrd-1.3.x” => “RRDTool 1.3.x”,
        “rrd-1.4.x” => “RRDTool 1.4.x”);

修改成

$rrdtool_versions = array(
        “rrd-1.0.x” => “RRDTool 1.0.x”,
        “rrd-1.2.x” => “RRDTool 1.2.x”,
        “rrd-1.3.x” => “RRDTool 1.3.x”,
        “rrd-1.4.x” => “RRDTool 1.4.x”,
        “rrd-1.5.x” => “RRDTool 1.5.x”,
        “rrd-1.6.x” => “RRDTool 1.6.x”);

 

OpenNMS – Apache Cassandra 安裝與 Newts 設定 – CentOS

參考網頁:
OpenNMS Installation Guide

根據官方網站上的解釋:
Newts 是基於 Apache Cassandra 的時間序列資料儲存,是一個持久性的策略,可以用來取代 JRobin 或是 RRDtool。

在 CentOS 7.x 下安裝
1. 新增 DataStax 套件庫設定檔
# vim /etc/yum.repos.d/datastax.repo
[datastax]
name = “DataStax Repo for Apache Cassandra”
baseurl = https://rpm.datastax.com/community
enabled = 1
gpgcheck = 1

2. 安裝 GPG Key
# rpm –import https://rpm.datastax.com/rpm/repo_key

3. 更新套件庫
# yum update[@more@]4. 安裝 Cassandra 3.0.x package
# yum install dsc30

5. 啟動 Cassandra 服務
# systemctl enable cassandra
cassandra.service is not a native service, redirecting to /sbin/chkconfig.
Executing /sbin/chkconfig cassandra on
# systemctl start cassandra

6. 設定 OpenNMS Horizon
# cp /opt/opennms/etc/opennms.properties /opt/opennms/etc/opennms.properties.$(date +%F)
將 false 改為 true
# sed -i ‘/rrd.storeByForeignSource/s/false/true/’ /opt/opennms/etc/opennms.properties
取消前面的註解,並將 rrd 改為 newts
# sed -i ‘/^#org.opennms.timeseries/s/#org.opennms.timeseries.strategy=rrd/org.opennms.timeseries.strategy=newts/’ /opt/opennms/etc/opennms.properties
取消前面的註解
# sed -i ‘/newts.config.hostname/s/^#org/org/’ /opt/opennms/etc/opennms.properties
# sed -i ‘/keyspace/s/^#org/org/’ /opt/opennms/etc/opennms.properties
# sed -i ‘/9042/s/^#org/org/’ /opt/opennms/etc/opennms.properties

7. 初始化 newts
# /opt/opennms/bin/newts init

8. 進行驗證
# cqlsh 127.0.0.1 9042
Connected to Test Cluster at 127.0.0.1:9042.
[cqlsh 5.0.1 | Cassandra 3.0.9 | CQL spec 3.4.0 | Native protocol v4]
Use HELP for help
.
cqlsh> use newts;
cqlsh:newts> describe table terms;

CREATE TABLE newts.terms (
    context text,
    field text,
    value text,
    resource text,
    PRIMARY KEY ((context, field, value), resource)
) WITH CLUSTERING ORDER BY (resource ASC)
    AND bloom_filter_fp_chance = 0.01
    AND caching = {‘keys’: ‘ALL’, ‘rows_per_partition’: ‘NONE’}
    AND comment = ”
    AND compaction = {‘class’: ‘org.apache.cassandra.db.compaction.SizeTieredCompactionStrategy’, ‘max_threshold’: ’32’, ‘min_threshold’: ‘4’}
    AND compression = {‘chunk_length_in_kb’: ’64’, ‘class’: ‘org.apache.cassandra.io.compress.LZ4Compressor’}
    AND crc_check_chance = 1.0
    AND dclocal_read_repair_chance = 0.1
    AND default_time_to_live = 0
    AND gc_grace_seconds = 864000
    AND max_index_interval = 2048
    AND memtable_flush_period_in_ms = 0
    AND min_index_interval = 128
    AND read_repair_chance = 0.0
    AND speculative_retry = ’99PERCENTILE’;

cqlsh:newts> describe table samples;

CREATE TABLE newts.samples (
    context text,
    partition int,
    resource text,
    collected_at timestamp,
    metric_name text,
    attributes map<text, text>,
    value blob,
    PRIMARY KEY ((context, partition, resource), collected_at, metric_name)
) WITH CLUSTERING ORDER BY (collected_at ASC, metric_name ASC)
    AND bloom_filter_fp_chance = 0.01
    AND caching = {‘keys’: ‘ALL’, ‘rows_per_partition’: ‘NONE’}
    AND comment = ”
    AND compaction = {‘class’: ‘org.apache.cassandra.db.compaction.SizeTieredCompactionStrategy’, ‘max_threshold’: ’32’, ‘min_threshold’: ‘4’}
    AND compression = {‘chunk_length_in_kb’: ’64’, ‘class’: ‘org.apache.cassandra.io.compress.LZ4Compressor’}
    AND crc_check_chance = 1.0
    AND dclocal_read_repair_chance = 0.1
    AND default_time_to_live = 0
    AND gc_grace_seconds = 864000
    AND max_index_interval = 2048
    AND memtable_flush_period_in_ms = 0
    AND min_index_interval = 128
    AND read_repair_chance = 0.0
    AND speculative_retry = ’99PERCENTILE’;

cqlsh:newts> quit

9. 重新啟動 OpenNMS
# systemctl restart opennms

OpenNMS – Apache Cassandra 安裝與 Newts 設定 – Ubuntu

參考網頁:
OpenNMS Installation Guide
雜亂的學習筆記本: OpenNMS – OpenNMS 安裝篇(04) – Cassandra 的安裝與 Newts 的設定

根據官方網站上的解釋:
Newts 是基於 Apache Cassandra 的時間序列資料儲存,是一個持久性的策略,可以用來取代 JRobin 或是 RRDtool。

在 Ubuntu 16.04 下安裝
1. 新增 DataStax 套件庫設定檔
# vim /etc/apt/sources.list.d/cassandra.sources.list
deb https://debian.datastax.com/community stable main

2. 安裝 GPG Key
# wget -O – https://debian.datastax.com/debian/repo_key | apt-key add –

3. 更新套件庫
# apt-get update[@more@]
4. 安裝 Cassandra 3.0.x package
# apt-get install dsc30
如果出現下面的錯誤訊息,請下載 python-support 進行安裝
The following packages have unmet dependencies:
 dsc30 : Depends: python-support (>= 0.90.0) but it is not installable
E: Unable to correct problems, you have held broken packages.

# wget http://launchpadlibrarian.net/109052632/python-support_1.0.15_all.deb
# dpkg -i python-support_1.0.15_all.deb
Selecting previously unselected package python-support.
(Reading database … 72575 files and directories currently installed.)
Preparing to unpack python-support_1.0.15_all.deb …
Unpacking python-support (1.0.15) …
Setting up python-support (1.0.15) …
Processing triggers for man-db (2.7.5-1) ...

5. 設定 OpenNMS Horizon
# cp /usr/share/opennms/etc/opennms.properties /usr/share/opennms/etc/opennms.properties.$(date +%F)
將 false 改為 true
# sed -i ‘/rrd.storeByForeignSource/s/false/true/’ /usr/share/opennms/etc/opennms.properties
取消前面的註解,並將 rrd 改為 newts
# sed -i ‘/^#org.opennms.timeseries/s/#org.opennms.timeseries.strategy=rrd/org.opennms.timeseries.strategy=newts/’ /usr/share/opennms/etc/opennms.properties
取消前面的註解
# sed -i ‘/newts.config.hostname/s/^#org/org/’ /usr/share/opennms/etc/opennms.properties
# sed -i ‘/keyspace/s/^#org/org/’ /usr/share/opennms/etc/opennms.properties
# sed -i ‘/9042/s/^#org/org/’ /usr/share/opennms/etc/opennms.properties

6. 初始化 newts
# /usr/share/opennms/bin/newts init

7. 進行驗證
# cqlsh
Connected to Test Cluster at 127.0.0.1:9042.
[cqlsh 5.0.1 | Cassandra 3.0.9 | CQL spec 3.4.0 | Native protocol v4]
Use HELP for help.
cqlsh> use newts;
cqlsh:newts> describe table terms;

CREATE TABLE newts.terms (
    context text,
    field text,
    value text,
    resource text,
    PRIMARY KEY ((context, field, value), resource)
) WITH CLUSTERING ORDER BY (resource ASC)
    AND bloom_filter_fp_chance = 0.01
    AND caching = {‘keys’: ‘ALL’, ‘rows_per_partition’: ‘NONE’}
    AND comment = ”
    AND compaction = {‘class’: ‘org.apache.cassandra.db.compaction.SizeTieredCompactionStrategy’, ‘max_threshold’: ’32’, ‘min_threshold’: ‘4’}
    AND compression = {‘chunk_length_in_kb’: ’64’, ‘class’: ‘org.apache.cassandra.io.compress.LZ4Compressor’}
    AND crc_check_chance = 1.0
    AND dclocal_read_repair_chance = 0.1
    AND default_time_to_live = 0
    AND gc_grace_seconds = 864000
    AND max_index_interval = 2048
    AND memtable_flush_period_in_ms = 0
    AND min_index_interval = 128
    AND read_repair_chance = 0.0
    AND speculative_retry = ’99PERCENTILE’;

cqlsh:newts> describe table samples;

CREATE TABLE newts.samples (
    context text,
    partition int,
    resource text,
    collected_at timestamp,
    metric_name text,
    attributes map<text, text>,
    value blob,
    PRIMARY KEY ((context, partition, resource), collected_at, metric_name)
) WITH CLUSTERING ORDER BY (collected_at ASC, metric_name ASC)
    AND bloom_filter_fp_chance = 0.01
    AND caching = {‘keys’: ‘ALL’, ‘rows_per_partition’: ‘NONE’}
    AND comment = ”
    AND compaction = {‘class’: ‘org.apache.cassandra.db.compaction.SizeTieredCompactionStrategy’, ‘max_threshold’: ’32’, ‘min_threshold’: ‘4’}
    AND compression = {‘chunk_length_in_kb’: ’64’, ‘class’: ‘org.apache.cassandra.io.compress.LZ4Compressor’}
    AND crc_check_chance = 1.0
    AND dclocal_read_repair_chance = 0.1
    AND default_time_to_live = 0
    AND gc_grace_seconds = 864000
    AND max_index_interval = 2048
    AND memtable_flush_period_in_ms = 0
    AND min_index_interval = 128
    AND read_repair_chance = 0.0
    AND speculative_retry = ’99PERCENTILE’;

cqlsh:newts> quit

8.重新啟動 OpenNMS
# systemctl restart opennms

移除 Windows 7/10 install.wim 已封裝的更新

偶然取得一個特殊的版本,但是是別人已經封裝過的版本,可是想要自己重新封裝。
參考網頁:
離線新增或移除封裝

1. 建立掛載目錄
mkdir WIM

2. 進行掛載
DISM /Mount-Wim /WimFile:ImageNx64install.wim /Index:1 /MountDir:WIM
[@more@]3. 列出映像檔中的封裝
DISM /Image:WIM /Get-Packages

如果封裝的記錄很多,也可以輸出成一個文字檔,方便檢視!
DISM /Image:WIM /Get-Packages > c:UsersAdministratorDesktopfeaturelist.txt

4. 移除封裝檔
DISM /Image:WIM /Remove-Package /PackageName:Package_for_RollupFix~31bf3856ad364e35~amd64~~15063.14.1.1

如果有好幾個,可以使用
DISM /Image:WIM /Remove-Package /PackageName:xxxxxx /PackageName:yyyyy /PackageName:zzzzzz

5. 寫回映像檔
DISM /Unmount-Wim /MountDir:WIM /commit

在 Ubuntu 16.04 上安裝 OpenNMS 19.x

參考網頁:
OpenNMS Installation Guide
雜亂的學習筆記本: OpenNMS – OpenNMS 安裝篇(01) – OpenNMS 17.1 的基本安裝

1. 加入 OpenNMS 套件庫來源
# vim /etc/apt/sources.list.d/opennms.list
deb http://debian.opennms.org stable main
deb-src http://debian.opennms.org stable main

2. 取得並安裝 GPG Key
# wget -O – http://debian.opennms.org/OPENNMS-GPG-KEY | apt-key add –

3. 更新套件庫
# apt-get update[@more@]
4. 安裝 OpneNMS
# apt-get install opennms

如果出現如下圖的錯誤,請做

5. 啟動 PostgreSQL Server
# systemctl start postgresql.service

6. 建立 PostgreSQL Server 管理者密碼
# su – postgres
$ psql -c “ALTER USER postgres  WITH PASSWORD ‘YOUR-POSTGRES-PASSWORD’;”
ALTER ROLE

7. 建立使用者 opennms 和密碼
$ createuser -P opennms
Enter password for new role:
Enter it again:

8. 建立 OpenNMS 資料庫
$ createdb -O opennms opennms
$ psql -c “ALTER USER opennms WITH SUPERUSER;”
ALTER ROLE
$ exit

9. 解決 iplike 出錯的問題
# cat /tmp/install_iplike.log
psql: FATAL:  database “opennms” does not exist

# /usr/sbin/install_iplike.sh
Password for user postgres:
CREATE FUNCTION

10. 設定 OpenNMS 連線的帳號及密碼(123456 請替換成正確的密碼)
# sed -i -e ‘/password/s/password=”opennms”/password=”123456″/’ -e ‘/password/s/password=””/password=”YOUR-POSTGRES-PASSWORD“/’  /usr/share/opennms/etc/opennms-datasources.xml
  <jdbc-data-source name=”opennms”
                    database-name=”opennms”
                    class-name=”org.postgresql.Driver”
                    url=”jdbc:postgresql://localhost:5432/opennms”
                    user-name=”opennms”
                    password=”123456″ />

  <jdbc-data-source name=”opennms-admin”
                    database-name=”template1″
                    class-name=”org.postgresql.Driver”
                    url=”jdbc:postgresql://localhost:5432/template1″
                    user-name=”postgres”
                    password=”YOUR-POSTGRES-PASSWORD” />

11. 設定 OpenNMS
# /usr/share/opennms/bin/runjava -s
runjava: Looking for an appropriate JRE…
runjava: Checking for an appropriate JRE in JAVA_HOME…
runjava: skipping… JAVA_HOME not set
runjava: Checking JRE in user’s path: “/usr/bin/java”…
runjava: found an appropriate JRE in user’s path: “/usr/bin/java”
runjava: value of “/usr/bin/java” stored in configuration file

12. 資料庫及系統 libraries 初始化
# /usr/share/opennms/bin/install -dis

13. 鎖住資料庫權限
# su – postgres
$ psql -c “ALTER ROLE opennms NOSUPERUSER;”
$ psql -c “ALTER ROLE opennms NOCREATEDB;”
$ exit

14. 啟動 OpenNMS
# systemctl enable opennms.service
opennms.service is not a native service, redirecting to systemd-sysv-install
Executing /lib/systemd/systemd-sysv-install enable opennms

# systemctl start opennms.service

15. 防火牆設定
# ufw allow 8980/tcp
Rules updated
Rules updated (v6)

# iptables -A INPUT -m state –state NEW -m tcp -p tcp –dport 8980 -j ACCEPT

16. 安裝 jrrd2
# apt-get install jrrd2

17. 設定 rrdtool
# sed -i ‘/MultithreadedJniRrdStrategy/s/^#org/org/’ /usr/share/opennms/etc/rrd-configuration.properties
# sed -i ‘/rrd2/s/^#opennms/opennms/’ /usr/share/opennms/etc/rrd-configuration.properties
# sed -i ‘/rrd2/s/^#org/org/’ /opt/opennms/etc/rrd-configuration.properties
# sed -i ‘s@/usr/lib64@/usr/lib/jni@’ /usr/share/opennms/etc/rrd-configuration.properties

Firefox 54.0 & ESR 52.2.0 版

可以從 說明 / 關於 Firefox(A) 升級
[@more@]直接下載最新版本安裝
Windows
x86
http://ftp.mozilla.org/pub/firefox/releases/54.0/win32/zh-TW/Firefox%20Setup%2054.0.exe
ESR 版本
http://ftp.mozilla.org/pub/firefox/releases/52.2.0esr/win32/zh-TW/Firefox%20Setup%2052.2.0esr.exe

x64
http://ftp.mozilla.org/pub/firefox/releases/54.0/win64/zh-TW/Firefox%20Setup%2054.0.exe
ESR 版本
http://ftp.mozilla.org/pub/firefox/releases/52.2.0esr/win64/zh-TW/Firefox%20Setup%2052.2.0esr.exe

Mac
http://ftp.mozilla.org/pub/firefox/releases/54.0/mac/zh-TW/Firefox%2054.0.dmg
ESR 版本
http://ftp.mozilla.org/pub/firefox/releases/52.2.0esr/mac/zh-TW/Firefox%2052.2.0esr.dmg

Windows 10 1703 更新至 15063.413


[@more@]主要是更新 KB4022405 / KB4022725

KB4022405 x86
http://download.windowsupdate.com/c/msdownload/update/software/crup/2017/06/windows10.0-kb4022405-x86_f1f04c6dc62b5303bca24644ff0cb032ec691572.msu

KB4022405 x64
http://download.windowsupdate.com/c/msdownload/update/software/crup/2017/06/windows10.0-kb4022405-x64_cb1286f2547dd21a06f1ec5b9a55769a7227b371.msu

KB4022725 x86
http://download.windowsupdate.com/c/msdownload/update/software/secu/2017/06/windows10.0-kb4022725-x86_a01fc4defa407564f1805d353f7f2d9ead19732f.msu

KB4022725 x64
http://download.windowsupdate.com/c/msdownload/update/software/secu/2017/06/windows10.0-kb4022725-x64_f4468667fb546204531ff9b88ef9b8b095a26786.msu

Windows 10 1607 更新至 14393.1358

[@more@]主要是更新 KB4022715 / KB4023834

KB4022715 x86
http://download.windowsupdate.com/c/msdownload/update/software/secu/2017/06/windows10.0-kb4022715-x86_e0a72bc5b0e2aeb5eaf28aca9a0bc58fd3026e7e.msu

KB4022715 x64
http://download.windowsupdate.com/c/msdownload/update/software/secu/2017/06/windows10.0-kb4022715-x64_e49f14969a81d955545b7743079e93380541e19c.msu

KB4023834 x86
http://download.windowsupdate.com/d/msdownload/update/software/crup/2017/06/windows10.0-kb4023834-x86_921a4776b7df92e197291768e78ce23ac8652d5d.msu

KB4023834 x64
http://download.windowsupdate.com/c/msdownload/update/software/crup/2017/06/windows10.0-kb4023834-x64_1f2af418b6f9dafb593f5ce89b4e0783057102b2.msu

Adobe Flash Player 26.0.0.126


檢查安裝版本:https://www.adobe.com/tw/software/flash/about/
                             https://get.adobe.com/tw/flashplayer/[@more@]Windows 7 平台
Internet Explorer:
http://fpdownload.adobe.com/get/flashplayer/pdc/26.0.0.126/install_flash_player_ax.exe
Windows 8 / 8.1 / 10 / Server 2012 R2 / Server 2016 要從 Windows Update 更新

All Other Browsers(Firefox…):
http://fpdownload.adobe.com/get/flashplayer/pdc/26.0.0.126/install_flash_player.exe

Google Chrome(Opera)
http://fpdownload.adobe.com/get/flashplayer/pdc/26.0.0.126/install_flash_player_ppapi.exe

Mac 平台:
http://fpdownload.adobe.com/get/flashplayer/pdc/26.0.0.126/install_flash_player_osx.dmg