Archive

‘Oracle Enterprise Linux’ 分類過的Archive

建立 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

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

 

 

在 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 讓他強制載入這個模組來進行設備驅動,這樣才能夠順利進行安裝。

在 Rescue Mode 掛 LVM 磁碟來進行存取

2014年11月26日 尚無評論

由於現在大部分使用 RedHat / Fedora 體系的 Linux,預設安裝除非有特別的設定否則安裝精靈都會將磁碟做成 LVM 架構,一但在檔案系統出現狀況時,怎樣在 Rescue Mode 中將這個 LVM 磁碟掛載呢,操作步驟如下:

  • 首先,可以先透過 lvm vgscan -v 檢查一下目前看的到的卷冊群組有那些
  • 接著,我們必須要將這些卷冊群組給啟動,操作方式為:
    lvm vgchange -a y
  • 順利的話,目前在 rescue mode 已經可以看到這些 LVM 裝置位置,當然你也可以透過 lvm lvs –all 來看一下有那些邏輯卷冊被偵測到
  • 最後我們便可以將啟用的 LVM 裝置透過 mount /dev/VolumeGroupNmae/LVName  /mnt 掛載

Coming Soon: New Oracle Linux Advanced Certification

2014年9月18日 尚無評論

Oracle Linux Advanced 認證終於要釋出了,這也是  Oracle Linux 的 OCP 認證考試科目,目前預計 9/20 可以開放登記 Beta 考試,由於因應考試的關係該科課程內容也進行大量調整,將 KVM 與 XFS 加入了訓練項目中,詳細資訊如下,有興趣的朋友可以前往瀏覽:

https://blogs.oracle.com/linux/entry/coming_soon_new_oracle_linux

於 Oracle Linux 上安裝 Docker

2014年8月26日 尚無評論

m4: Cannot open /usr/share/sendmail-cf/m4/cf.m4: No such file or directory 錯誤

2014年8月12日 尚無評論

在執行 sendmail 組態檔案修改時,我們會透過 m4 來將組態檔案進行轉換為 cf 檔案,但執行 m4 sendmail.mc > sendmail.cf 時,若出現 m4: Cannot open /usr/share/sendmail-cf/m4/cf.m4: No such file or directory 錯誤訊息時,則必須要確認一下主機是否已經安裝了 sendmail-cf 套件,若沒有安裝後便可以排除這個問題

Getting Started with Oracle VM, Oracle Linux, and OpenStack

2014年8月9日 尚無評論

昨晚 Oracle 釋出的一份 Whitepaper,非常值得參考,對Oracle Linux、Oracle VM與OpenStack有興趣的朋友可以前往下載參考。

官方網址:Oracle Blog

檔案下載:Oracle Blog   本站備份