ubuntu環境mosquitto安裝及測試最大連線數
阿新 • • 發佈:2018-11-09
ubuntu環境mosquitto安裝及測試最大連線數
#!/bin/bash
c=1 -d
while [ $c -le 5000 ]
do
mosquitto_sub -d -t hexiang -k 900 &
(( c++ ))
done
檢視連線數
netstat -na | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'
netstat -na|grep ESTAB|grep 1883|wc -l
檢視cpu 佔用高的執行緒
ps H -eo user,pid,ppid,tid,time,%cpu,cmd --sort=%cpu
結束程序及所有連線
kill -9 `ps -ef|grep mosquitto|awk '{print $2}'`
#(max processes)
ulimit -u 12000
#(max files)
ulimit -n 12000
windows dos 命令檢視 連線數
netstat -an|find ":1883" |find "ESTABLISHED" /c
#####訂閱遠端主機
mosquitto_sub -h 192.168.11.16 -t hexiang
mosquitto安裝錯誤處理
mosquitto: error while loading shared libraries: libwebsockets.so.4.0.0: cannot open shared object file: No such file or directory
sudo ln -s /usr/local/lib64/libwebsockets.so.4.0.0 /usr/lib/libwebsockets.so.4.0.0
mosquitto 指令碼安裝 for ubuntu
#!/bin/sh
#print hello world in the console window
echo -e "開始安裝-----------------------------------------------------------"
echo -e "author:hexiang"
echo -e "name:dz.hexiang"
echo -e "mail:[email protected] "
echo -e "初始設定請稍等..."
sleep 3s
echo -e "開始安裝wget下載工具"
yum -y install wget
echo -e "開始下載即時通訊伺服器原始碼..."
cd /home
wget http://mosquitto.org/files/source/mosquitto-1.4.9.tar.gz
echo -e "開始解壓即時通訊伺服器原始碼..."
tar -xzvf mosquitto-1.4.9.tar.gz
cd mosquitto-1.4.9;
echo -e "開始進行配置..."
#WITH_SRV ,WITH_UUID,WITH_WEBSOCKETS
sed -i -E "s/^#WITH_SRV:=.*$/WITH_SRV:=yes/g" config.mk
sed -i -E "s/^WITH_SRV:=.*$/WITH_SRV:=yes/g" config.mk
sed -i -E "s/^#WITH_UUID:=.*$/WITH_UUID:=yes/g" config.mk
sed -i -E "s/^WITH_UUID:=.*$/WITH_UUID:=yes/g" config.mk
sed -i -E "s/^#WITH_WEBSOCKETS:=.*$/WITH_WEBSOCKETS:=yes/g" config.mk
sed -i -E "s/^WITH_WEBSOCKETS:=.*$/WITH_WEBSOCKETS:=yes/g" config.mk
echo -e "即時通訊配置成功開始安裝相關支援庫..."
cd /home
wget http://c-ares.haxx.se/download/c-ares-1.10.0.tar.gz
tar xvf c-ares-1.10.0.tar.gz
cd c-ares-1.10.0
./configure
make&make install
apt install libuuid-devel -y
apt install cmake -y
apt install uuid-dev -y
cd /home;
wget https://github.com/warmcat/libwebsockets/archive/v1.3-chrome37-firefox30.tar.gz
tar zxvf v1.3-chrome37-firefox30.tar.gz
cd libwebsockets-1.3-chrome37-firefox30;
mkdir build; cd build;
cmake .. -DLIB_SUFFIX=64
make install
echo -e "即時通訊開始編譯安裝..."
cd /home/mosquitto-1.4.9
make&make install
mv /etc/mosquitto/mosquitto.conf.example /etc/mosquitto/mosquitto.conf
echo -e "配置相關資訊..."
sed -i -E "s/^#autosave_interval 1800$/autosave_interval 1800/g" /etc/mosquitto/mosquitto.conf
sed -i -E "s/^#persistence false$/persistence true/g" /etc/mosquitto/mosquitto.conf
sed -i -E "s/^#persistence_file mosquitto.db$/persistence_file mosquitto.db/g" /etc/mosquitto/mosquitto.conf
sed -i -E "s/^autosave_interval 1800$/#autosave_interval 1800/g" /etc/mosquitto/mosquitto.conf
sed -i -E "s/^persistence true$/#persistence true/g" /etc/mosquitto/mosquitto.conf
sed -i -E "s/^persistence_file mosquitto.db$/#persistence_file mosquitto.db/g" /etc/mosquitto/mosquitto.conf
sed -i -E "s/^persistence_location \/var\/mosquitto\/$/#persistence_location \/var\/mosquitto\//g" /etc/mosquitto/mosquitto.conf
sed -i -E "s/^listener 1883$/#listener 1883/g" /etc/mosquitto/mosquitto.conf
sed -i -E "s/^listener 8888$/#listener 8888/g" /etc/mosquitto/mosquitto.conf
sed -i -E "s/^protocol websockets$/#protocol websockets/g" /etc/mosquitto/mosquitto.conf
sed -i -E "s/^user root$/#user root/g" /etc/mosquitto/mosquitto.conf
sed -i -E "s/^allow_anonymous true$/#allow_anonymous true/g" /etc/mosquitto/mosquitto.conf
sed -i -E '$ a autosave_interval 1800' /etc/mosquitto/mosquitto.conf
sed -i -E "$ a persistence true" /etc/mosquitto/mosquitto.conf
sed -i -E '$ a persistence_file mosquitto.db' /etc/mosquitto/mosquitto.conf
sed -i -E '$ a persistence_location /var/mosquitto/' /etc/mosquitto/mosquitto.conf
sed -i -E '$ a listener 1883' /etc/mosquitto/mosquitto.conf
sed -i -E '$ a listener 8888' /etc/mosquitto/mosquitto.conf
sed -i -E '$ a protocol websockets' /etc/mosquitto/mosquitto.conf
sed -i -E '$ a user root' /etc/mosquitto/mosquitto.conf
sed -i -E '$ a allow_anonymous true' /etc/mosquitto/mosquitto.conf
#sed -i -E '$ a --------------' /etc/mosquitto/mosquitto.conf
touch /etc/ld.so.conf.d/liblocal.conf
#新增下面兩行配置
echo -e '/usr/local/lib64\n/usr/local/lib'>/etc/ld.so.conf.d/liblocal.conf
#重新整理
ldconfig
echo -e "啟動即時通訊服務..."
cd /usr/local/sbin
mosquitto -c /etc/mosquitto/mosquitto.conf -d
echo -e "-----------------------------------------------------------"
echo -e "配置防火牆..."
#安裝iptables-services
yum install iptables-services -y
#啟動firewalld服務
echo -e "設定開機啟動防火牆..."
systemctl enable firewalld.service
echo -e "啟動防火牆..."
systemctl start firewalld.service
echo -e "設定開機啟動防火牆規則..."
systemctl enable iptables.service
echo -e "啟動防火牆規則..."
systemctl start iptables.service
#檢視iptables現有規則
iptables -L -n
#先允許所有,不然有可能會杯具
iptables -P INPUT ACCEPT
#清空所有預設規則
iptables -F
#清空所有自定義規則
iptables -X
#所有計數器歸0
iptables -Z
echo -e "開啟各種服務埠..."
#開放1888 埠
iptables -A INPUT -p tcp --dport 1888 -j ACCEPT
#開放8888埠
iptables -A INPUT -p tcp --dport 1883 -j ACCEPT
iptables -A INPUT -p tcp --dport 8888 -j ACCEPT
#開放8888埠
iptables -A INPUT -p udp --dport 5060 -j ACCEPT
#開放8888埠
iptables -A INPUT -p tcp --dport 8087 -j ACCEPT
iptables -A INPUT -p tcp --dport 8088 -j ACCEPT
iptables -A INPUT -p tcp --dport 8086 -j ACCEPT
iptables -A INPUT -p tcp --dport 8085 -j ACCEPT
iptables -A INPUT -p tcp --dport 1935 -j ACCEPT
#儲存上述規則
service iptables save
#檢視狀態
systemctl restart iptables.service
echo -e "下面設定開機自動啟動各種服務..."
#echo -e 'mosquitto -c /etc/mosquitto/mosquitto.conf -d\ncd /usr/local/sbin/ ; ./opensipsctl start\nsystemctl restart WowzaStreamingEngine.service\nsystemctl restart iptables.service'>/etc/rc.d/rc.local
#2.加入以下命令
chmod +x /etc/rc.d/rc.local
sed -i -E '$ a mosquitto -c \/etc\/mosquitto\/mosquitto.conf -d' /etc/rc.d/rc.local
sed -i -E '$ a cd \/usr\/local\/sbin\/ ; .\/opensipsctl start' /etc/rc.d/rc.local
sed -i -E '$ a systemctl restart iptables.service' /etc/rc.d/rc.local
sed -i -E '$ a systemctl restart WowzaStreamingEngine.service' /etc/rc.d/rc.local