#For SCP Backup
/system backup save name=full
:local strid (:put ([/system identity get name] . ".backup"));
:put $strid;
/tool fetch upload=yes url="sftp://10.77.21.41/home/autobackup/ROS-Backup/$strid" user=autobackup password=dafsdfXX13X src-path=full.backup src-address=10.33.41.26
2022年8月26日
RouterOS SCP備份Script
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 分析流量應用
以下為安裝的方式,會使用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
#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=
sysctl -w net.netfilter.nf_conntrack_
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_
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
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 .
(繼續閱讀...)