Archive

作者Archive

Bugzilla 透過 Gmail 發送信件

2015年7月29日 2 則評論

當你建制好 Bugzilla 這個 Bug tracker 平台之後,如果你希望他可以透過 Gmail 來發送 Bug 信件,我們可以透過下列方式進行配置來達成這個目的:

  1. 首先你得先看一下 Google 對於 Gmail 當作 SMTP Relay 的相關限制 https://support.google.com/a/answer/176600?hl=zh-Hant
  2. 雖然 Bugzilla 已經有內建幾個 Mail Delivery Method 可以使用,但不管怎樣配置似乎都無法順利透過 Gmail 幫我們寄送 Bug 信件,因此我們可以額外安裝ㄧ個 Perl Module來幫助我們,操作方式如下所示:

    [root@bugzilla ~]# cd /var/www/html/bugzilla/
    [root@bugzilla bugzilla]# perl install-module.pl Email::Send::Gmail

    通常安裝完這類的 Perl Module後,都會被乖乖放置在 /usr/lib64/perl5/vendor_perl/ 路徑內,但這個Module卻是直接放在 /root 目錄下,因此我們得手動複製到 /usr/lib64/perl5/vendor_perl/ 路徑內:

    [root@bugzilla bugzilla]# cp -ra /root/perl5/lib/perl5/Email  /usr/lib64/perl5/vendor_perl/

  3. 完成模組的安裝之後,接著請以管理員身份登入 Bugzilla 平台,你可以在 管理者介面 –> 參數設定 中的 電子郵件 項目內的 Mail Delivery Method 中挑選 Gmail 模式:

    擷取選取區域_007

  4. 最後,我們只要將 Gmail 的 SMTP位址與登入帳號密碼輸入後便可以完成相關配置

建立 Ntopng 來作為收集與分析 SFlow 訊息

2015年7月1日 2 則評論

為了在內部網路統計監控封包流竄與流量狀態,我們可以透過 Cacti、MRTG、PRTG之類的軟體來收集這些訊息封包,如果你的交換機有支援 SFlow 或是 NetFlow 協定運作,我們也可以透過相關方式將這類的訊息拋給服務來進行統計與分析。在這篇文章我要介紹如何透過簡單的 Ntopng 來作為 SFlow 訊息的收集與分析作業:

  1. 筆者環境是使用 Extreme Switch,基本上大部分網管型 Switch 都有支援 SFlow 或是 Netflow 模式,讀者可以自行參考交換機的說明書,底下是針對Extreme Switch開啟 SFlow功能的步驟
    • enable sflow
    • configure sflow agent 192.168.1.254 (指定你交換機的 IP 位址 )
    • configure sflow collector 192.168.1.20 port 6343 vr “VR-Default” ( 指定接收 SFlow 訊息的主機 IP 與 Port,並且指定 Virtual Route 名稱是 VR-Default,這邊記得不要用 VR-Mgmt,不然你會收不到任何訊息)
    • configure sflow sample-rate 512
    • configure sflow poll-interval 30
    • enable sflow ports all
  2. 上面參數執行完畢後,你可以透過 show sflow statistics 來看一下有沒有在運作:
    • * Slot-1 Stack.9 # show sflow statistics

      SFLOW Statistics

      Received frames : 1294263515652
      Sampled Frames : 39020
      Transmitted Frames : 32236
      Broadcast Frames : 7092901550
      Multicast Frames : 1462448108
      Packet Drops : 0

  3. 接著,我們必須在 Linux 主機中安裝 Ntopng,在這邊筆者是用 Oracle Linux Server 7.1 來作為預設的安裝環境,請讀者安裝完畢後先透過 yum -y update 將套件更新到最新版本狀態
  4. 由於這台主機我只用來作為 Collector 使用,所以我將 SELinux 與 Firewalld 關閉
  5. 因為待會會需要一些相依性套件,因此我們得先將 EPEL 的套件庫裝上,安裝方式如下:
    • yum -y install http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-5.noarch.rpm
  6. 接著,我們在將 ntop 的套件庫添加到 /etc/yum.repos.d 目錄內
    • cat << EOT > /etc/yum.repos.d/ntop.repo
      [ntop]
      name=ntop packages
      baseurl=http://www.nmon.net/centos-stable/\$releasever/\$basearch/
      enabled=1
      gpgcheck=1
      gpgkey=http://www.nmon.net/centos-stable/RPM-GPG-KEY-deri
      [ntop-noarch]
      name=ntop packages
      baseurl=http://www.nmon.net/centos-stable/\$releasever/noarch/
      enabled=1
      gpgcheck=1
      gpgkey=http://www.nmon.net/centos-stable/RPM-GPG-KEY-deri
      EOT
  7. 最後我們將 ntopng、ntopng-data等套件安裝到系統中:
    • yum remove mysql-community-libs mysql-community-common postfix ( 由於在 OEL 預設的 SQL 是使用 Mariadb,因此等等我們在安裝 nprobe 時會有相依性套件問題,所以安裝前先將 mysql 一些函數庫套件移除)
    • yum -y install ntopng ntopng-data tcpdump postfix nprobe (這邊多安裝 tcpdump 主要是待會筆者要透過他來測試訊息傳遞的狀態使用,不裝也可以)

完成上述步驟的安裝,此時我們已經擁有一個具備 ntopng 的作業環境,接下來的步驟我們將進行 SFlow 訊息的接收配置,操作方式如下所示:

  1. 首先,我們可以先透過 tcpdump 來測試一下目前 SFlow 訊息是否已經乖乖的會拋到這台主機的 UDP 6343 Port:
    • tcpdump -i ens32 udp port 6343
      tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
      listening on ens32, link-type EN10MB (Ethernet), capture size 65535 bytes
      21:16:06.002473 IP 192.168.1.254.43373 > Intranet-Netflow.localdomain.sflow: sFlowv5, IPv4 agent 192.168.1.254, agent-id 0, length 1284
      21:16:06.002826 IP 192.168.1.254.43373 > Intranet-Netflow.localdomain.sflow: sFlowv5, IPv4 agent 192.168.1.254, agent-id 0, length 1208
      21:16:06.003107 IP 192.168.1.254.43373 > Intranet-Netflow.localdomain.sflow: sFlowv5, IPv4 agent 192.168.1.254, agent-id 0, length 1244
    • 如果你可以順利看到上面的類似訊息就表示目前 SFlow 訊息的傳遞沒有太大問題
  2. 接著我們必須將系統上的 Redis 服務啟動起來,並設定為預設開啟:
    • [root@localhost ~]# systemctl enable redis.service
      [root@localhost ~]# systemctl start redis.service
      [root@localhost ~]# systemctl status redis.service
      redis.service – Redis persistent key-value database
      Loaded: loaded (/usr/lib/systemd/system/redis.service; enabled)
      Drop-In: /etc/systemd/system/redis.service.d
      └─limit.conf
      Active: active (running) since 三 2015-07-01 21:18:13 CST; 51s ago
      Main PID: 11736 (redis-server)
      CGroup: /system.slice/redis.service
      └─11736 /usr/bin/redis-server 127.0.0.1:6379

      7月 01 21:18:13 Intranet-Netflow.localdomain systemd[1]: Starting Redis per…
      7月 01 21:18:13 Intranet-Netflow.localdomain systemd[1]: Started Redis pers…
      Hint: Some lines were ellipsized, use -l to show in full.

  3. 最後我們要開啟 Ntopng 與 Nprobe 來接收交換機所拋過來的 SFlow 訊息:
    • mkdir /ntopng && chown -R nobody.nobody /ntopng
    • ntopng -i tcp://127.0.0.1:5556 -d /ntopng -w 3000 -v >> /var/log/ntopng.log &
    • nprobe –collector-port 6343 –zmq tcp://127.0.0.1:5556 >> /var/log/nprobe.log &

完成相關配置之後,接著我們可以透過瀏覽器連線到 Ntopng 的網頁,http://IP:3000 (預設使用 admin/admin 登入),如下所示:

ntop01

 

順利的話你應該可以在登入後看到相關數據的呈現:

ntop02

在 Windows 底下透過 mklink 建立符號連結

2015年6月30日 尚無評論

在 Windows 底下如果要展現如 Linux 檔案系統中的 連結檔案 時該怎麼做呢 ?Windows 底下有內建一個 mklink 指令工具,可以讓使用者在系統下建立符號連結與實體連結,語法操作如下:

mklink  參數  目的地

Categories: IT 雜工日誌 Tags: , ,

GitLab 一個可以快速建立 Git 專案庫的開放式原始碼

2015年6月6日 評論已關閉

GitLab是一個透過 Ruby on Rails 開發的開放式原始碼軟體,我們可以透過它快速的建立一個具備 Web 介面的自館型 Git 專案庫,它的功能與 GitHub 類似,但好處是安裝佈署的方式十分簡單。目前官方網站有提供 Ubuntu 12.04、Ubuntu 14.04、Debian 7、Debian8、CentOS 6 與 7 六個不同的發行套件安裝模組,你可以前往 https://about.gitlab.com/downloads/挑選對應的發行套件,依據說明來進行安裝與配置。

補充1. 如果你是使用 Oracle Enterprise Linux 來作為安裝 GitLab 的環境時,你會發現在 CentOS 對應安裝說明文件中的第二步驟,當你執行 sudo yum install gitlab-ce 時,會告訴你找不到 gitlab-ce 這個套件,主要原因是預設的 GitLab 套件庫路徑命名並未提供 OEL 的路徑,因此你必須要調整  /etc/yum.repos.d/gitlab_gitlab-ce.repo 檔案中的路徑,讓它改找 EL ( Enterprise Linux ) 的目錄才可以順利安裝。

[gitlab_gitlab-ce]
name=gitlab_gitlab-ce
baseurl=https://packages.gitlab.com/gitlab/gitlab-ce/el/7/$basearch
repo_gpgcheck=1
gpgcheck=0
enabled=1
gpgkey=https://packages.gitlab.com/gpg.key
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt

[gitlab_gitlab-ce-source]
name=gitlab_gitlab-ce-source
baseurl=https://packages.gitlab.com/gitlab/gitlab-ce/el/7/SRPMS
repo_gpgcheck=1
gpgcheck=0
enabled=1
gpgkey=https://packages.gitlab.com/gpg.key
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt

補充2. 由於 GitLab 的安裝可以算是一個懶人包的配置方式,因此包含網站伺服器 ngnix 、資料庫 PostgreSQL 等你都不需要額外安裝,系統會自動幫你配置好在 /opt 目錄中,因此建議你在安裝之前可以將 /opt 目錄獨立一個磁碟空間,方便後續專案上傳與存取使用。

補充3. GitLab 也可以支援環境中的 AD 或是 LDAP 伺服器,若是你需要整合這類的帳號伺服器時,可以依據下列步驟進行調整:

  1. 首先,請你先切換使用者帳號到 git 中:
    [root@git-server ~]# su – git
    Last login: Sat Jun 6 19:41:31 CST 2015 on pts/0
    -sh-4.2$
  2. 接著,切換路徑到 gitlab-rails/etc/ 目錄內:
    -sh-4.2$ cd gitlab-rails/etc/
  3. 調整 gitlab.yml 檔案中關於 LDAP 的相關配置,如下所示,設定完畢後重啟便可以在網站首頁看到 LDAP 的登入頁面選項
    ## LDAP settings
    # You can inspect a sample of the LDAP users with login access by running:
    # bundle exec rake gitlab:ldap:check RAILS_ENV=production
    ldap:
    enabled: true
    host: ‘IP’
    port: 389
    uid: ‘sAMAccountName’
    method: ‘plain’ # “tls” or “ssl” or “plain”
    bind_dn: ‘CN=Administrator,CN=Users,DC=abc,DC=com,DC=tw’
    password: ‘123456’
    active_directory:
    allow_username_or_email_login:
    base: ‘CN=Users,DC=abc,DC=com,DC=tw’
    user_filter:## EE only
    group_base:
    admin_group:
    sync_ssh_keys:
    sync_time:

    GitLab-LDAP

 

 

MySQL 開啟遠端位址連線作業

2015年5月7日 尚無評論

mysql 預設不會允許你從遠端連線到伺服器上面操作,若是你有這樣的需求可以在 MySQL Server 中下這段指令來新增存取位置:

grant all privileges on *.* on ‘UserName’@’Remote IP’ identified by ‘Password’ with grant options;

網路芳鄰異常,改用 net use 吧

2015年4月30日 尚無評論

今天碰到一個很詭異的問題,網路芳鄰連線某一台主機共享的目錄,但是卻一直不會跳出視窗來問我的登入帳號與密碼,會一直出現 ” Windows  無法存取 \\IP\xxx  ” ~ 但詭異的是沒讓我輸入密碼怎樣讓我存取呢 XD

解決方式如下:

  1. 先透過 net use /delete * 將所有網路芳鄰連線砍掉
  2. 再透過 net use \\IP\xxx /user:登入名稱  密碼 就可以順利連線了

vacation 的使用

2015年3月31日 尚無評論

vacation 其實是一個很簡單的技巧,讓使用者可以在家目錄中配置回信訊息,讓系統可以在收到信件後自動回覆給寄件者,設定方式如下所示:

  1. 首先確認是否有安裝 vacation 套件
  2. 接著在需要自動回覆功能的使用者家目錄中產生 .vacation.msg 檔案,範例如下:

    Subject: Re: $SUBJECT

    內容

  3. 若是自動回覆的內容需要輸入與顯示中文時,則必須在表頭部分添加如下描述:

    MIME-Version: 1.0
    Content-Type: text/plain; charset=UTF-8
    Content-Transfer-Encoding: 8bit
    Subject: Re: $SUBJECT

  4. 接著初始化 vacation 資料庫,操作方式如下所示:

    vacation -I

    初始化後你可以在使用者家目錄下產生一個 .vacation.db 的檔案

  5. 最後我們再透過 .forward 檔案將收到的信件透過 vacation 處理,直接在使用者帳號目錄內產生一個 .forward 檔案,內如容下:

    \USERNAME, “|/usr/bin/vacation USERNAME”

    請將 USERNAME 改為使用者的帳號名稱

在 OEL 7 中使用 rc.local

2015年2月6日 3 則評論

由於目前大部分的 Linux 發行套件都已經轉向使用 systemd 來取代傳統的 init 作業,因此在早期的一些 rc.xxx 服務模式的作業也必須要更動,如果你還有在使用 rc.local 檔案的朋友應該會發現在新版的 OEL 7 中無法正常運作,解決方式如下:

  1. 編輯 /usr/lib/systemd/system/rc-local.service 檔案,在檔案尾端添加
    [Install]
    WantedBy=multi-user.target
  2. 接著執行

    systemctl enable rc-local.service

  3. 最後將 rc.local 檔案添加執行權限

    chmod a+x /etc/rc.d/rc.local

  4. 重開機後便可以發現 rc.local 已經可以正常運作了

MariaDB 中文編碼問題

2015年2月6日 尚無評論

預設在 OEL7 中使用 MariaDB 時,由於它預設的編碼原則非使用 UTF-8 格式,因此會導至儲存為 UTF-8 格式的資料撈出來後會變成亂碼,解決方式如下:

  1. 在 /etc/my.cnf 組態檔案中的 [mysqld] 區塊中添加下力描述
    collation-server = utf8_unicode_ci
    init-connect='SET NAMES utf8'
    character-set-server = utf8
  2. 重新啟動 MariaDB 服務便可以解決

    systemctl restart mariadb

HP ProLiant ML570 G4 安裝 Oracle Linux 7 問題

2014年12月20日 尚無評論

今天在將 HP ProLiant ML570 這台老機器升級到 Oracle Linux 7 時發現找不到 HP Smart Array P400 上的 Virtual Volume,主要原因是因為從 RHEL 6 開始已經將原先使用的模組 CCISS 移除,改由 HPSA 這個模組取代,但對於舊款的 HP Smart Array 預設卻無法透過 HPSA 這個模組來進行驅動,因此我們必須在啟動選項中添加 hpsa.hpsa_allow_any = 1 讓他強制載入這個模組來進行設備驅動,這樣才能夠順利進行安裝。