顯示具有 Linux 標籤的文章。 顯示所有文章
顯示具有 Linux 標籤的文章。 顯示所有文章

2022年8月10日

Cacti 指令加入監控device

先用下方指令找出對應的template ID的對應

php -q /var/www/html/cacti/cli/add_graph_template.php --list-hosts

php -q /var/www/html/cacti/cli/add_tree.php --list-hosts

建立設備清單對應表
[root@LAB ~]# vi ROSID
10.233.88.21 ROS-CHT-03-DCLAB
10.233.88.22 ROS-CHT-04-DCLAB
10.233.88.23 ROS-CHT-05-DCLAB
10.233.88.24 ROS-TFN-17-DCLAB
10.233.88.25 ROS-TFN-18-DCLAB
10.233.88.26 ROS-TFN-19-DCLAB
10.233.88.27 ROS-TFN-20-DCLAB
10.233.88.28 ROS-TFN-21-DCLAB

(繼續閱讀...)

2021年10月24日

ElastiFlow + Grafana 分析流量應用

工作早期使用的Neflow分析軟體NfSen太舊了(官方已無更新),加上新版的瀏覽器無法完全支援,索性將全部的Netflow網管主機換成比較新的分析軟體ElastiFlow來收集資料,然後再用 Grafana 去畫出自己想要的圖型分析跟告警發送。目前官方ElastiFlow Open Source的版本到4.0.1之後,就變成了收費軟體了,基於使用上的彈性,所以還是使用該版本做為使用。

以下為安裝的方式,會使用docker的方式來安裝ELK軟體,然後手動安裝Grafana軟體,並在做完必要的設定佈署後,會將Kibana給停用,節省主機的效能資源,因為是3種服務都安裝在同一台的方式,所以硬體效能不能太差(官方有建議的Flow per second對應的硬體規格),以下為使用12 core 、46G RAM、1T HD的方式佈署。

先安裝Docker軟體
yum install -y yum-utils device-mapper-persistent-data lvm2
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
yum makecache fast
yum install docker-ce

確認安裝是否成功,並將服務加到開機會自動啟動
docker --version
sudo systemctl enable docker.service
sudo systemctl start docker.service
sudo systemctl status docker.service

安裝Docker Compose,之後可以用YAML 檔案來定義服務
curl -L "https://github.com/docker/compose/releases/download/1.24.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

sudo chmod +x /usr/local/bin/docker-compose
檢查安裝是否有成功
docker-compose -v 

接著照著ElastiFlow官方文件上面的建議,定義好YAML 檔案與優化Linux主機的UDP的效能
編輯vi /etc/sysctl.d/87-elastiflow.conf ,然後加入官方的建議UDP設定值 ,接著照著主機的效能規格去定義好相關的YAML檔案來使用Docker來啟動ELK服務收集Netflow資料
vi docker-compose.yml  ,紅色的地方照實際需求修改對應的設定值

(繼續閱讀...)

2021年8月21日

監控Linux Process異常時發告警

近期有個工作上的需求,需要監控Linux主機上的某個服務是否有異常,並且需要在異常時發出告警通知,所以寫了shell script來監控,下面的範例是監控Smokeping的Process是否還有在正常運作,並在異常時發出Slack的通知訊息

範例如下,存檔後放到排程每五分鐘監控一次即可

#!/bin/bash

smokeping_status=`ps aux | grep FPing | grep -v grep | wc -l `

if [ ${smokeping_status} = 0 ]; then

    echo "Smokeping-Services 服務異常,請檢查"

    data='{

            "username": "'${HOSTNAME}'",

            "icon_url": "https://www.iconninja.com/files/916/202/326/ping-icon.png",

            "attachments": [


                {

                    "title": "Smokeping服務狀態 : 狀態異常",

                    "color": "#ff0000",

                    "text": " 請檢查'${HOSTNAME}' Smokeping Process狀態"

                }

            ],

            "channel": "#alert-monitor"

        }'


    echo $data

    curl -X POST -H "Content-type: application/json" --data "$data" https://hooks.slack.com/services/A8CKZ8G2C/A6FJBJKTYM/GaFDyZpDc79U3LABX79a3e

    exit 2

else

    echo "Smokeping-Services 服務正常運作中"

    exit 0

fi

(繼續閱讀...)

2021年1月15日

Cacti發送Slack告警訊息到不同頻道

Cacti發送Slack告警訊息到不同頻道的方式,基本上也是寫程式去做正規化表示式的過濾與條件式的判斷,前置作業可以參考先前寫的Cacti整合Slack發送告警訊息,接著要把thold_functions.php第2847行裡面的 escapeshellarg($message)改成escapeshellarg($subject) ,先改好讓發送的訊息內容為郵件的標題,這樣比較方便程式去做正規化表示式的過濾與條件式的判斷。

接著編輯這個檔案
[root@Localhost ~]#vi /var/www/html/cacti/plugins/thold/slack.php  
新版的程式內容如下,依照個人需求,改到自己需要發送的頻道即可。

(繼續閱讀...)

2020年4月27日

Linux TCP 連線數優化Script

Linux TCP 連線數優化Script如下

#!/bin/sh
#TCP Setting Tuning
sysctl -w net.core.rmem_max=33554432
sysctl -w net.core.wmem_max=33554432
sysctl -w net.ipv4.tcp_rmem='4096 87380 33554432'
sysctl -w net.ipv4.tcp_wmem='4096 65536 33554432'
sysctl -w net.ipv4.tcp_syncookies=1
sysctl -w net.ipv4.tcp_mem='50576 64768 98152'
sysctl -w net.core.netdev_max_backlog=2500
sysctl -w net.netfilter.nf_conntrack_max=1048576
sysctl -p
if cat /etc/sysctl.conf | grep "net." ; then
  echo "tcp tuning is exist"
else
  echo "net.core.rmem_max = 33554432" >> /etc/sysctl.conf
  echo "net.core.wmem_max = 33554432" >> /etc/sysctl.conf
  echo "net.ipv4.tcp_rmem = 4096 87380 33554432" >> /etc/sysctl.conf
  echo "net.ipv4.tcp_wmem = 4096 65536 33554432" >> /etc/sysctl.conf
  echo "net.ipv4.tcp_syncookies = 1" >> /etc/sysctl.conf
  echo "net.ipv4.tcp_mem = 50576 64768 98152" >> /etc/sysctl.conf
  echo "net.core.netdev_max_backlog = 10000 " >> /etc/sysctl.conf
  echo "net.core.somaxconn=10000 " >> /etc/sysctl.conf
  echo "net.netfilter.nf_conntrack_max = 1048576" >> /etc/sysctl.conf
fi
#Maximum TCP Session
if cat /etc/security/limits.conf | grep "soft nproc" ; then
  echo "tcp session setting is exist"
else
  echo "* soft nproc 10000" >> /etc/security/limits.conf
  echo "* hard nproc 10000" >> /etc/security/limits.conf
  echo "* soft nofile 5000" >> /etc/security/limits.conf
  echo "* hard nofile 5000" >> /etc/security/limits.conf
fi

(繼續閱讀...)

2020年2月9日

BGP Looking Glass Server

日常的工作需要Looking Glass 加快查修問題的速度,除了BGP網路外,還有一般的專線跟上網線路,都會需要類似BGP Looking Glass Server的功能,想把它整合成統一的Ping Server,目前使用了Open Source的BGP Looking Glass程式,再稍微修改一下程式後,就可以達到想要的功能,以下為在CentOS上面建置的方式

Step 1:先到https://github.com/Cougar/lg ,先照網站上面的介紹,捉取程式
yum install git
git config --global url."https://".insteadOf git://
git clone https://github.com/Cougar/lg.git

Step 2:安裝必要的環境程式
yum install wget perl-Net-Telnet perl-Net-Telnet-Cisco perl-XML-Parser httpd
yum install gcc* perl-CPAN
yum install perl*
yum install mtr
yum install perl-DB_File
安裝perl的外掛,要用cpanm 安裝,後面CGI程式會到用,沒安裝會無法執行主程式,會一直跳Perl執行錯的error log
cpanm Net::SSH::Perl
cpanm Net::Telnet::Perl

Step 3:將git捉下來的程式放到WEB執行的目錄,並設定好對應的Apache的權限
mkdir /var/www/html/lg
cd /var/www/html/lg
cp /root/lg-1.9/lg.cgi .
cp /root/lg-1.9/favicon.ico .
cp /root/lg-1.9/lg.conf .

(繼續閱讀...)

2019年11月9日

Smokeping整合Slack發送告警訊息

Smokeping工具,安裝的方式可參考官網,目前實作用Slack發出告警訊息
依照個人安裝的目錄,調整相關的設定檔路徑即可
vi /usr/local/smokeping/etc/slack_notify.sh
#!/bin/bash
function send_alert {
    # Send a SmokePing status alert to the slack channel

    alertname="$1"
    target="$2"
    losspattern="$3"
    rtt="$4"
    hostname="$5"

(繼續閱讀...)

2018年5月5日

Linux ICMP 監控Script

每秒發送1個ICMP封包,加上時間標記並記錄下來
[root@Localhost ~]# vi ping_check.sh
#!/bin/bash

DATE=$(date +"%d.%m.%Y %T")
SHORT_DATE=$(date +"%d.%m.%Y")

echo
echo "Pinging host " $@
echo

HOST=$@


ping $HOST | while read PONG
do
        grep -q ttl <<< "$PONG"

        if [ $? -eq 0 ]; then

                echo "`date`: $PONG"
                echo "`date`: $PONG" &>> ping_check_$SHORT_DATE.log

        else

                echo "`date`: ping failed, $HOST host is DOWN!" &>> ping_check_$SHORT_DATE.log
                echo "$PONG" &>> ping_check_$SHORT_DATE.log
        fi
done
(繼續閱讀...)

2018年2月28日

Cacti整合Slack發送告警訊息

Slack目前支援使用API或是Webhook的方式來發送訊息到指定的Channel中,Cacti只要稍為調整一下tholdhold的程式後,便可以經由Slack來發送告警訊息並且推播到手機中。下面介紹如何透過Slack Webhook的方式來傳送告警訊息。

一、申請好Slack的帳號,在Slack的網站裡面點選進入APP&Custom Integrations ->Build->Make a Custom Integration 新增 Incoming WebHooks,新增想要送的channels,申請完可以取得Webhook URL

(繼續閱讀...)

2017年3月25日

F5設備Scp自動備份config

利用Script的方式,自動排程Scp傳送config檔到備份主機
[LABDEMO:Active:In Sync] root # cd /root
[LABDEMO:Active:In Sync] root # vi backup.sh
#!/bin/bash
tmsh save sys ucs Autobackup_Daily_LABDEMO.ucs
scp /var/local/ucs/Autobackup_Daily_LABDEMO.ucs autobackup@192.168.30.100://home/autobackup/
設定排程,一天備份兩次
[LABDEMO:Active:In Sync] root # vi /etc/crontab
0 8 * * * root (sh /root/backup.sh) > /dev/null
0 20 * * * root (sh /root/backup.sh) > /dev/null

Scp傳送的方式,採用ssh key認證,需先將pub key放到備份主機上面,可參考先前文章
[LABDEMO:Active:In Sync] root # cat /root/.ssh/authorized_keys
ssh-rsa BBBB3NzaC1yc2EAAAABx7DuEAiXUHI0g4ctB5sN3zljB5JOvhLIgVfEafe9ZUyQXDGD1QdSrXD23QeIts+kWg82IjccRB4sfeDEREDfffPRsOnmUttVGYc0sIGW/wUFq/AXPNusDKL62D= Host Processor Superuser

設定完成,可Run Script測試是否有出現備份成功的畫面
[LABDEMO:Active:In Sync] root # sh backup.sh

(繼續閱讀...)

2016年8月16日

Linux自動排程刪掉舊檔案

建立自動刪檔Srcipt
vi /root/del-nfsen-oldfile.sh

chmod +x del-nfsen-oldfile.sh
(繼續閱讀...)

2016年7月19日

OpenVAS常見問題

常見問題
一、執行yum後會出現”Could not retrieve mirrorlist”

二、掃描時停在1%
It's a bug on the current version. Openvas certs has expired. There is a workaround to fix it. Please, follow this instructions: 
(繼續閱讀...)

2016年5月6日

Cacti Spine poller 安裝

LAB環境 @ CentOS 7
一、安裝前置相關套件
yum install -y gcc mysql-devel net-snmp-devel autoconf automake libtool dos2unix help2man
二、官網download最新版的spine
cd /tmp
wget http://www.cacti.net/downloads/spine/cacti-spine-0.8.8g.tar.gz
tar -xzvf cacti-spine-0.8.8g.tar.gz
三、編譯spine
cd /tmp/cacti-spine-0.8.8g
./bootstrap
./configure
make
make install
(繼續閱讀...)

2016年2月14日

CentOS 7 安裝OpenVAS

官方網站
http://www.openvas.org/
LAB環境:CentOS 7 (minimal install)
一、關掉SELINUX
vi /etc/selinux/config
SELINUX=disabled
# reboot
二、加入相關Repo資源(Atomicorp repo)
wget -q -O - http://www.atomicorp.com/installers/atomic | sh
三、安裝 OpenVAS Redis
yum install redis openvas
四、redis 設定
vi /etc/redis.conf
加入
unixsocket /tmp/redis.sock
unixsocketperm 700
五、 Restart Redis
systemctl enable redis
systemctl restart redis
六、 openvas-setup
(繼續閱讀...)

2016年1月5日

MySQL for Cacti 相關指令

建立cacti資料庫
[root@localhost ~]#mysqladmin --user=root create cacti

刪除cacti資料庫
[root@localhost ~]#mysqladmin --user=root drop  cacti

顯示cacti資料庫所有table
[root@localhost ~]#mysqlshow -u cactiuser -p cacti
or
mysql> SHOW TABLES FROM cacti;

刪除cacti資料庫特定table
[root@localhost ~]# mysql -u cactiuser -p
Enter password:
mysql> USE cacti;
mysql> drop table syslog,syslog_alert,syslog_incoming,syslog_remove,syslog_reports;

列出所有的資料庫
mysql> SHOW DATABASES;

(繼續閱讀...)

2015年12月26日

nfdump 語法說明

[root@mail ~]# cd /usr/local/nfsen/profiles-data/live/device1/2015/12/26/
[root@mail 26]# ls
nfcapd.201512261440  nfcapd.201512261445  nfcapd.201512261450  nfcapd.201512261455
List Flows:
nfdump -r nfcapd.201512261440 -c 10

(繼續閱讀...)

2015年12月6日

Cacti Plugins安裝

Cacti Version 0.8.8b;Plugin Architecture Version: 3.1
採用新版EZCacti的原因為,修正了前一版的安全性問題
並且部分所需的Plugin元件需在新版的PA:3.1版才支援
以下為練習安裝Plugin LAB,正式環境中,並不是每個Plugin都會使用
Cacti Plugins可參考http://docs.cacti.net/plugins
以下用thold Plugin說明一些安裝上的注意事項

(繼續閱讀...)

CactiEZ安裝設定

下載CactiEZ CD 
先到Cacti 官網下載http://cactiez.cactiusers.org/ 說明版本為CactiEZ v0.7
1.安裝CactiEZ
硬體需求:vCPU *1vRAM 1GHD 5GOS CentOS 64 位元 ( 測試用,請依實際需求加規格 )CatciEZ 的安裝十分簡單,光碟開機後直接按下Enter 鍵進行安裝。( 預設為 64 位元 )
安裝時系統設定
Configure TCP/IP (設定網路)
Language Selection = English
Keyboard Selection = us
Time Zone Selection = Asia/Taipei ( OPNE UTC )
Root Password = 自訂
Partitioning Type = Replace existing Linux system
安裝完成重新開機
本版本 CentOS 6.3
CactiEZ 預設登入帳號(帳密皆使用預設值)
系統:     帳號:root 密碼:CactiEZ
網站:     帳號:admin     密碼:admin
webmin:帳號:root     密碼:CactiEZ新版CactiEZMySQL安全性做了加強,安裝時會自動產生動態的MySQL密碼,而不使用預設密碼安裝完成後的MySQL使用者密碼可到# cat /root/mysqlpass.txt 檢查 (建議確認完成後,將此檔案刪掉)  
(繼續閱讀...)

2015年1月18日

Postfix 使用 Transport Maps











最近公司的郵件主機IP被Google給擋了下來,會收到退信,但奇怪的事只有寄給對方公司的的群組信箱才會被擋信,寄給獨立的個人信箱卻不會被擋。依照被退件的郵件表頭和單獨寄送成功的郵件表頭來看,推判可能發到對方公司的群組信箱,是由Google某一台(群)的主機在做接收轉發,而我們MAIL SERVER IP被它那群主機擋了;而發到一般公司的個人信箱,是由另一群不同主機在接收轉發,而我們的主機的 IP是沒被擋的。所以才會有寄給群組不行,但個人的可以的狀況,因為有點難找到GOOGLE官方申請解除,所以就先用Policy控制發信網域,不同的Domain發信,會依條件的設定,用不同IP發信。

一、確認 /etc/postfix/main.cf 是否有設定啟用 Transport Maps
vi /etc/postfix/main.cf
transport_maps = hash:/etc/postfix/transport
(繼續閱讀...)

2014年12月27日

By Pass User unknown in postfix

postfix[error] :Sender address rejected: User unknown in virtual mailbox table
By Pass User unknown in postfix
postfix rejected unknown senders. Comment out one line in /etc/postfix/main.cf
#smtpd_reject_unlisted_sender = yes
And restart postfix services

(繼續閱讀...)

Copyright © 2009 New Life in Taipei All rights reserved. Theme by Laptop Geek. | Bloggerized by FalconHive.