Archive

‘IT 雜工日誌’ 分類過的Archive

Bugzilla 透過 Gmail 發送信件

2015年7月29日 尚無評論

當你建制好 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日 尚無評論

為了在內部網路統計監控封包流竄與流量狀態,我們可以透過 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;