PostgreSQL Server 基本操作

1. 建立使用者 testuser 及密碼
# su – postgres
$ /bin/createuser -P testuser
輸入新身份的密碼:
再輸入一次:

2. 刪除使用者
$ /bin/dropuser testuser[@more@]

3. 建立資料庫 testdb,並指定管理者  testuser
$ /bin/createdb -O testuser testdb

4. 進行連線
$ psql -U testuser testdb
用戶 testuser 的密碼:
psql (9.2.18)
輸入 “help” 顯示說明。

testdb=>help
您正在使用 PostgreSQL 指令列介面 psql。
輸入: copyright 顯示發行條款
       h 顯示 SQL 指令的說明
       ? 顯示 psql 指令的說明
       g 或者以分號 (;) 結尾以執行查詢
       q 結束

5. 建立資料表
testdb=> create table users (
testdb(> name varchar(30),
testdb(> age integer,
testdb(> mobiletel varchar(10),
testdb(> address varchar(80));
CREATE TABLE

6. 插入資料
testdb=> insert into users values (‘陳小華’,31,’0910001002′,’頭城鎮開蘭路123號’);
INSERT 0 1
testdb=> insert into users values (‘吳小剛’,38,’0910003004′,’頭城鎮開蘭路456號’);
INSERT 0 1

7. 瀏覽資料
testdb=> select * from users;
  name  | age | mobiletel  |      address
——–+—–+————+——————-
 陳小華 |  31 | 0910001002 | 頭城鎮開蘭路123號
 吳小剛 |  38 | 0910003004 | 頭城鎮開蘭路456號
(2 筆資料列)

testdb=> select * from users where age=31;
  name  | age | mobiletel  |      address
——–+—–+————+——————-
 陳小華 |  31 | 0910001002 | 頭城鎮開蘭路123號

testdb=> select * from users where name=’吳小剛’;
  name  | age | mobiletel  |      address
——–+—–+————+——————-
 吳小剛 |  38 | 0910003004 | 頭城鎮開蘭路456號

testdb=> update users set mobiletel=’0910005006′ where name=’吳小剛’;
UPDATE 1
testdb=> select * from users where name=’吳小剛’;
  name  | age | mobiletel  |      address
——–+—–+————+——————-
 吳小剛 |  38 | 0910005006 | 頭城鎮開蘭路456號

testdb=> delete from users where name=’吳小剛’;
DELETE 1
testdb=> select * from users;
  name  | age | mobiletel  |      address
——–+—–+————+——————-
 陳小華 |  31 | 0910001002 | 頭城鎮開蘭路123號

8. 刪除資料表
testdb=> drop table users;
DROP TABLE

9.
testdb=> l
                                     資料庫清單
   名稱    |  擁有者  | 字元編碼 |   Collate   |  轉換型別   |       存取權限
———–+———-+———-+————-+————-+———————–
 postgres  | postgres | UTF8     | zh_TW.UTF-8 | zh_TW.UTF-8 |
 template0 | postgres | UTF8     | zh_TW.UTF-8 | zh_TW.UTF-8 | =c/postgres          +
           |          |          |             |             | postgres=CTc/postgres
 template1 | postgres | UTF8     | zh_TW.UTF-8 | zh_TW.UTF-8 | =c/postgres          +
           |          |          |             |             | postgres=CTc/postgres
 testdb    | testuser | UTF8     | zh_TW.UTF-8 | zh_TW.UTF-8 |
(4 筆資料列)

testdb=> du
                        角色清單
 角色名稱 |               屬性                | 成員屬於
———-+———————————–+———-
 postgres | 超級用戶, 建立角色, 建立 DB, 複製 | {}
 testuser |                                   | {}

命令列操作
# sudo -u postgres psql -c “CREATE USER testuser WITH PASSWORD ‘密碼’;”
# sudo -u postgres psql -c “CREATE DATABASE testdb;”
# sudo -u postgres psql -c “GRANT ALL PRIVILEGES ON DATABASE testdb to testuser;”

# sudo -u postgres psql -c “ALTER USER testuser WITH SUPERUSER;”
# sudo -u postgres psql -c “ALTER ROLE testuser NOSUPERUSER;”
# sudo -u postgres psql -c “ALTER ROLE testuser NOCREATEDB;”

$ /bin/pg_dump -f users_dump.sql -U testuser -W testdb
$ /bin/psql -U testuser testdb -f users_dump.sql

在 CentOS 7.x 上安裝 PostgreSQL Server

從剛開始學 GNU/Linux 用的就是 MySQL,一直到後來的 MariaDB,很少使用的 PostgreSQL,印象中只有 OpenNMS 才有特別使用到。

1. 安裝 PostgreSQL Server
# yum install postgresql-server postgresql-contrib

2. 初始化 PostgreSQL 資料庫
# /usr/bin/postgresql-setup initdb
Initializing database … OK[@more@]
3. 修改認證設定檔 /var/lib/pgsql/data/pg_hba.conf
# sed -i ‘/^local/s/peer$/md5/’ /var/lib/pgsql/data/pg_hba.conf

# sed -i ‘/^host/s/…..$/md5/’ /var/lib/pgsql/data/pg_hba.conf
# egrep ‘^local|^host’ /var/lib/pgsql/data/pg_hba.conf
local   all             all                                     md5
host    all             all             127.0.0.1/32            md5

host    all             all             ::1/128                 md5

4. 啟動 PostgreSQL Server
# systemctl start postgresql.service
# systemctl enable postgresql.service

5. 開啟防火牆設定
# firewall-cmd –permanent –add-service=postgresql
# firewall-cmd –reload

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

解決安裝 Cacti 1.0.x 版時出現的一些 SQL Server 提示訊息

在 CentOS 7.x 上安裝 Cacti 1.0.x 版時, 會出現一堆紅色的提示訊息

雖然按 Next 還是可以跳過,但還是花了一些時間,把它們通通都去除了![@more@]解決方式:
1. 安裝 MariaDB SQL 10.x 版,可以參考 頭城國小資訊組 | 安裝 MariaDB SQL Sever 10.x
2. 備份原設定檔
# cp /etc/my.cnf.d/client.cnf /etc/my.cnf.d/client.cnf.$(date +%F)
# cp /etc/my.cnf.d/server.cnf /etc/my.cnf.d/server.cnf.$(date +%F)
# cp /etc/my.cnf.d/mysql-clients.cnf cp /etc/my.cnf.d/mysql-clients.cnf.$(date +%F)

3. 參考了以下的網頁:
Optimize my.cnf with MariaDB | cPanel Forums
How to improve InnoDB performance by 55%

其實也不懂,反正只是把上面提示的值加大而已!

# sed -i ‘/[client]/adefault-character-set=utf8mb4’ /etc/my.cnf.d/client.cnf

# sed -i ‘/[mysqld]/acollation-server=utf8mb4_unicode_ci’ /etc/my.cnf.d/server.cnf
# sed -i ‘/[mysqld]/acharacter-set-server=utf8mb4’ /etc/my.cnf.d/server.cnf
# sed -i ‘/[mysqld]/amax_heap_table_size=128M’ /etc/my.cnf.d/server.cnf
# sed -i ‘/[mysqld]/amax_allowed_packet=32M’ /etc/my.cnf.d/server.cnf
# sed -i ‘/[mysqld]/atmp_table_size=128M’ /etc/my.cnf.d/server.cnf
# sed -i ‘/[mysqld]/ajoin_buffer_size=128M’ /etc/my.cnf.d/server.cnf
# sed -i ‘/[mysqld]/ainnodb_buffer_pool_size = 512M’ /etc/my.cnf.d/server.cnf

# sed -i ‘/innodb_lock_wait_timeout/askip-innodb_doublewrite’ /etc/my.cnf.d/mysql-clients.cnf
# sed -i ‘/innodb_lock_wait_timeout/ainnodb_read_io_threads=64’ /etc/my.cnf.d/mysql-clients.cnf
# sed -i ‘/innodb_lock_wait_timeout/ainnodb_write_io_threads=32’ /etc/my.cnf.d/mysql-clients.cnf
# sed -i ‘/innodb_lock_wait_timeout/ainnodb_additional_mem_pool_size=96M’ /etc/my.cnf.d/mysql-clients.cnf
# sed -i ‘/innodb_lock_wait_timeout/asinnodb_flush_log_at_timeout=5’ /etc/my.cnf.d/mysql-clients.cnf

4. 重新啟動 MariaDB SQL Server
# systemctl restart mariadb

5. 檢查成果

解決 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