摩根大通代理昶洧,添翼歐洲市場布局

昶洧控股公司(Thunder Power Holdings Ltd)於 6 日與摩根大通公司亞太區簽署融資代理合約,摩根大通將擔任昶洧本次全球 A 輪融資的獨家代理,目標於六個月內完成 1.5 億美元之資金籌集,折合新台幣約 46 億元。昶洧指出,未來該筆資金的注入將可為加速於歐洲市場開發添翼。

昶洧表示,該資金將用於全面展開昶洧控股於歐洲開發生產商用轎車基地,及意大利超級跑車等兩個投資項目;此輪融資將是繼與贛卅發改委產業基金成立合資公司,啟動中國大陸電動汽車生產事業後,針對開啟歐洲及國際電動車市場的重大戰略計劃。

昶洧指出,旗下電動車研發已進入路測階段,因其技術深獲西班牙巴塞隆納區及蘇格蘭政府看中,並積極提出合作的方案,故於歐洲開發生產基地與完成各項測試作業已刻不容緩。

(本文內容由授權使用)

本站聲明:網站內容來源於EnergyTrend https://www.energytrend.com.tw/ev/,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

※帶您來了解什麼是 USB CONNECTOR  ?

※自行創業缺乏曝光? 網頁設計幫您第一時間規劃公司的形象門面

※如何讓商品強力曝光呢? 網頁設計公司幫您建置最吸引人的網站,提高曝光率!

※綠能、環保無空污,成為電動車最新代名詞,目前市場使用率逐漸普及化

※廣告預算用在刀口上,台北網頁設計公司幫您達到更多曝光效益

※教你寫出一流的銷售文案?

Tesla將試產Model 3,同時放眼印度市場

 

美商特斯拉(Tesla)執行長 Elon Musk 透露,Model 3 將於本月展開試產;進一步的,Tesla 更預計今夏進軍印度市場。而在以 Model 3 為主力的營運之之外,Tesla 也表示已投入開發自動駕駛卡車。

Model 3近期試產

Musk 於 2 月 5 日接受外媒訪問時透露,Tesla 目前正在投入發展自動駕駛卡車,可減少耗油、提高安全性,甚至有機會改變物流的經濟架構。若成功上路,預期會為貨物運輸帶來革新。但 Musk 估計,在監管機構對此技術認可之前,大概需要累積 60 億英里的自動駕駛資料,因此發展主力仍是 Model 3。

Tesla 已於 2 月 1 日動員供應商,預計在 2 月 20 日試產 Model 3。Model 3 是 Tesla 首輛大眾車款,去年發表至今已獲得 37 萬筆訂單,原本規劃在今年7月開始量產。在搭載的車用電池規格方面,Musk 也透過推特證實,Model 3 的電池容量不會超過 100kWh。

由於 Model 3 的車體較輕,電動機更省電,使用相同容量的車用電池時,仍可延伸續航力。Musk 曾表示,標準版 Model 3 的基礎續航里程有 350 公里左右,全配車款則可行駛 480 公里。

Tesla 汽車的 2016 年產能約為 10 萬輛,Musk 目標在 2018 年時將產能提高到 50 萬輛。

Tesla進軍印度市場,前景看好

據路透社報導,Musk 日前在推特上回文考慮今夏進軍印度市場,但尚未透露更多細節。

印度汽車市場於 2016 年已發展到 740 億美元,Musk 會對印度市場感興趣並不意外。Musk 在 2017 年的目標為擴張全球事業版圖,包括葡萄牙、台灣、南韓、紐西蘭、近期也準備發展阿拉伯聯合大公國的市場,相較於印度,上述汽車市場都較小,由此可見 Musk 想為 Model 3 拓展布局的野心。

印度城市的空氣品質近來有惡化趨勢,汽車排放廢氣是一大原因,而電動車則可能帶來幫助。Tesla 進軍印度與印度總理莫迪的「數位印度」願景相符,也可望幫助帶動印度的經濟成長。國外媒體雖估計 Model 3 一直到 2018 年才可能會在印度正式上市,但印度市場對電動車的強烈需求卻已可以預期。

(首圖來源:Tesla)

本站聲明:網站內容來源於EnergyTrend https://www.energytrend.com.tw/ev/,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

※為什麼 USB CONNECTOR 是電子產業重要的元件?

網頁設計一頭霧水該從何著手呢? 台北網頁設計公司幫您輕鬆架站!

※台北網頁設計公司全省服務真心推薦

※想知道最厲害的網頁設計公司"嚨底家"!

※推薦評價好的iphone維修中心

賓士投入電動車,新品牌EQ問世!

在雪弗蘭(Chevrolet)、特斯拉(Tesla)、和BMW分別推出 Chevy Bolt、Model 3 和 I MODELS 之際,賓士(Mercedes-Benz)也成立了電動車新品牌EQ(Electric Intelligence),望能結合賓士多年的經驗,致力發展電動車產業。

2016  年 10  月的巴黎車展上,EQ發表了電動概念車Concept EQ。Concept EQ 為雙馬達休旅車,系統功率可增加到300kW。未來EQ 的電動車將指定德國Bremen、Sindelfingen 等廠生產。

而 Mercedes-Benz 也將 CASE 作為 2020 的策略目標,分別代表連接(Connected)、自動駕駛(Autonomous)、靈活運用(Shared & Service)和電能驅動(Electric Drive),期望於 2020 年可以在電動車產業中扮演重要的角色。

持股 Mercedes-Benz 之戴姆勒(Daimler AG)董事會成員Ola Källenius 提出:「電動車是未來的趨勢,這也是為什麼我們在電池電動和電池科技上大量投資。結Mercedes-Benz的技術,EQ將帶進一步領發展電動車領域」。

Mercedes-Benz 計畫在2025 年前推出10 款電動車,其中範圍涵蓋SUV、房車、跑車、敞篷車和商務車,以滿足未來市場之需求。

(首圖來源 Mercedes-Benz)

本站聲明:網站內容來源於EnergyTrend https://www.energytrend.com.tw/ev/,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

USB CONNECTOR掌控什麼技術要點? 帶您認識其相關發展及效能

台北網頁設計公司這麼多該如何選擇?

※智慧手機時代的來臨,RWD網頁設計為架站首選

※評比南投搬家公司費用收費行情懶人包大公開

※回頭車貨運收費標準

全球暖化警示!南極驚見「鮮紅極地」

摘錄自2020年2月29日自由時報報導

南極科學家近來捕捉到一系列照片,只見片片雪地上竟染上了大面積的鮮紅色,畫面看來有些詭異。然而,這樣的景象其實是全球暖化持續惡化的警示之一。

綜合外媒報導,此類景象被稱為是「西瓜雪」。西瓜雪是由極地雪藻(Chlamydomonas nivalis)所造成,該藻類能夠製造耐寒孢子,讓它們得以在0°C以下的低溫存活。由於南極正值夏季,溫暖的天氣為孢子帶來適當的繁殖條件。

烏克蘭科學家提到,大面積的西瓜雪是氣候暖化的產物,且其顏色能夠反射的日照量較少,會讓雪融化得更快。此外,極地雪藻對人類來說具有毒性,不能食用。

南極洲在2月初被熱浪侵襲,出現20.75°C的破紀錄高溫,美國國家航空暨太空總署(NASA)公布的衛星照片顯示,位於南極洲東北方的鷹島,短短九天內融化了20%的積雪。美國麻州尼可斯學院的地質學家佩爾托(Mauri Pelto)表示,直到21世紀前,南極洲大陸幾乎從未發生過這種事。



烏克蘭科學家近日在南極發現大片西瓜雪。圖片來源:「Національний антарктичний науковий центр」臉書




形成西瓜雪的極地雪藻會使融冰速度增加。圖片來源:「Національний антарктичний науковий центр」臉書

本站聲明:網站內容來源環境資訊中心https://e-info.org.tw/,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

※帶您來了解什麼是 USB CONNECTOR  ?

※自行創業缺乏曝光? 網頁設計幫您第一時間規劃公司的形象門面

※如何讓商品強力曝光呢? 網頁設計公司幫您建置最吸引人的網站,提高曝光率!

※綠能、環保無空污,成為電動車最新代名詞,目前市場使用率逐漸普及化

※廣告預算用在刀口上,台北網頁設計公司幫您達到更多曝光效益

※教你寫出一流的銷售文案?

特斯拉概念產業:AI無人駕駛車、電動車用電池組

美國創業家Elon Musk對於新科技產業的想法與策略向來是全球關注的焦點。在成功推出電動車品牌特斯拉(Tesla)後,已帶動電動車用電池產業興起;他又在於杜拜舉辦之世界政府峰會(World Government Summit)上提到,未來可將人工智慧(AI)整合入汽車產業,推動無人駕駛功能。

Model 3試產,貿聯-KY獲利創新高

近期消息指出,Tesla平價電動車Model 3將於三月試產,下半年量產。電池模組線束之主要台系供應商貿聯-KY因而受惠,法人預期其股價大漲,營收兩位數成長。

Tesla成立之初,即配合貿聯-KY電池模組配線出貨。法人分析,身為唯一的供應商,貿聯-KY在生產成本、供貨穩定度和合作信賴度下,處於供應鏈之地位難被取代,也成為特斯拉概念股的一大受益者。

AI自駕車,以及人類與機械結合

2016年2月,谷歌(Google)母公司Alphabet Inc.旗下之波士頓動力(Boston Dynamics)發表第二代人形機器人Atlas,Musk事後提及AI發展的危險性,人類恐成為AI的居家寵物。由於在未來機器人可以完全取代人力,可預見未來將會有大量人口失業。對於AI導入目前技術,Musk認為目前首要議題是無人駕駛,AI或許能在自動駕駛方面提供幫助。

對於人類與AI共存的問題,Musk表示,由於電腦可以在每秒之間傳輸一兆位元的數據,而人類僅可以在行動裝置上每秒傳達10位元之資訊, AI大量繁衍是可以想見的趨勢。若人類想與AI共生,在腦中裝入寬頻介面成為賽博格(Cyborg)或許會有所幫助。

(圖片來源:Heisenberg Media via Flickr CC2.0)

 

本站聲明:網站內容來源於EnergyTrend https://www.energytrend.com.tw/ev/,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

※為什麼 USB CONNECTOR 是電子產業重要的元件?

網頁設計一頭霧水該從何著手呢? 台北網頁設計公司幫您輕鬆架站!

※台北網頁設計公司全省服務真心推薦

※想知道最厲害的網頁設計公司"嚨底家"!

※推薦評價好的iphone維修中心

前景看好,持股投資人:特斯拉將市值將達 1 兆

近日特斯拉股票上揚,許多業界人士覺得股價被吹太高。不過手中有股票的投資者可不這麼認為,而是相當樂觀。投資特斯拉的億萬富翁 Ron Baron 日前斷言,在這 10 年或是下個 10 年時,特斯拉將成為 1 兆市值的公司,超越傳統的汽車廠如日產。

Baron 語出驚人,談到 10 年後電動車廠特斯拉市值達 1 兆,而且超越傳統車廠。過去 3 年半 Baron 的投資機構陸陸續續累積 160 萬股的特斯拉股票,而每股 208 美元。Baron 表示,特斯拉股價上升,他表示只是開始。

目前特斯拉的市值是 451 億美元,Baron 在接受 CNBC 專訪時表示,2020 年時會翻 4 倍,2025 年時會再翻3 倍,而2030 年時則是再翻3 倍。意味著 2020 年這個十年,特斯拉從現在 451 億美元翻4 倍,也就是1.8 兆美元。

Baron 也對 SolarCity 和特斯拉的合作深具信心,去年曾發表讚揚的言論,因為他相當相信 Elon Musk 的遠景,相信他對電力租用服務。

不過 Baron 去年曾說十年之後特斯拉市值將達 7,000 億,這次增加預測幅度,將達到1 兆美元的規模。Baron 以長期持有特斯拉股票而出名,為了手上特斯拉的股票,把電動車的特斯拉公司說得很好,也有利於自己持有的股票,說不定那天價格好才好出手賣出。

(合作媒體:。圖片出處:Pixabay CC0)  

本站聲明:網站內容來源於EnergyTrend https://www.energytrend.com.tw/ev/,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

USB CONNECTOR掌控什麼技術要點? 帶您認識其相關發展及效能

台北網頁設計公司這麼多該如何選擇?

※智慧手機時代的來臨,RWD網頁設計為架站首選

※評比南投搬家公司費用收費行情懶人包大公開

※回頭車貨運收費標準

北加州野火再起安全性斷電 2000多人撤離

摘錄自2019年10月24日中央社報導

北加州酒鄉有超過一萬公頃的土地遭到森林野火侵襲,2000多人被迫離家,目前沒有人員傷亡,以公共安全為理由的民生斷電又展開。美國媒體ABC News在推特放上現場畫面。

這場名為金凱德(Kincade)的火災,起火地點距離太平洋瓦斯電力公司(Pacific Gas and Electric Company,PG&E)切斷電源的索諾馬郡(Sonoma County)不遠,索諾馬是與納帕山谷(Napa Valley)齊名的北加州葡萄酒鄉。

今年季節性的高熱乾風再度來襲,PG&E近日兩度以公共安全為考量,在非常短的時間、突襲式通知警戒區域的民眾斷電消息,引發擾民爭議,也被批評沒有及早檢查、更新輸電線等相關設備。

本站聲明:網站內容來源環境資訊中心https://e-info.org.tw/,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

※帶您來了解什麼是 USB CONNECTOR  ?

※自行創業缺乏曝光? 網頁設計幫您第一時間規劃公司的形象門面

※如何讓商品強力曝光呢? 網頁設計公司幫您建置最吸引人的網站,提高曝光率!

※綠能、環保無空污,成為電動車最新代名詞,目前市場使用率逐漸普及化

※廣告預算用在刀口上,台北網頁設計公司幫您達到更多曝光效益

※教你寫出一流的銷售文案?

從疫情中的體溫測量到分塊思想的運用

Once upon a time,COVID-19席捲全球,Chinese Government要求學校複課時必須測量學生體溫
YC中學有幾萬名同學,要找到發燒的同學進行隔離 如果要讓一位老師完成所有測溫任務,那這將是一個大工程,效率會很低(左圖)
所以將學校所有同學分成班級進行,然後匯總,效率會更高(右圖)

剛剛中我們說的:

將學校所有同學分成班級進行,然後匯總

這就是一種分塊
那問題來了,什麼是分塊呢?
其實通過剛剛的情景,你已經領悟到了分塊的本質:

將一個整體劃分為若干個小塊,進行處理

算法中,與之對應的就是:

整體 小塊
學校 班級
數組 若干元素

那麼,分塊到底是怎麼一種思想呢?
整塊維護,殘塊查找

還是以測量體溫舉例:

現在YC中學要查找體溫在36℃~37.5℃區間內的同學
怎麼做呢?
不可能又去挨個同學去統計、去數吧
那就做一張大表吧,在之前測溫的時候就把34 ~ 35℃、35 ~36℃、36 ~ 37℃、37 ~ 38℃、38 ~ 39℃……的同學分別列出來,數量分別加出來
然後36 ~ 37℃可以就直接在表裡查出人數
那37 ~ 37.5℃怎麼辦呢?
表內並沒有37 ~ 37.5℃的這樣0.5大小的區間啊
那就在37 ~ 38℃這個區間去找唄
方法可以直接暴力遍歷,也可以二分查找等等

剛剛解決的問題就是一個典型的分塊
像34 ~ 35℃、35 ~36℃、36 ~ 37℃、37 ~ 38℃、38 ~ 39℃這種列在表上給出的就是整塊
37 ~ 37.5℃這種表上沒有,包含在一個其他整塊中的但又不足一個整塊的就叫做殘塊

不難發現,其實分塊這個思想是一種暴力,一種優化的暴力,但往往也很有效
Such as 線段樹過於臃腫,代碼冗長,大材小用;而直接暴力就會TLE,不能滿足數據大小
這就很適合分塊了
那麼我們具體怎麼做呢?

我們先要求得應該分為多少個區塊嘛,然後求得每個區塊應該包含多少個元素
然後在輸入時分塊
要使情況最優,那麼區塊既不能太少也不能太多
太少,整塊的數量會太少,花費大量的時間處理殘塊
太多,區塊的長度會太短,失去整體處理區塊的意義
所以,我們取塊數為根號n
而開平方開不盡的n,我們通常在最後接一個不足整塊元素的假整塊(可以看做整塊)
這樣在最壞情況下
我們要處理接近根號n整塊,還要對長度為 2倍根號n 的殘塊最後單獨處理

	cin>>n;
	blo=sqrt(n);//sqrt()開平方函數
	for(int i=1;i<=n;i++){
		cin>>a[i];//儲存元素a[i]
		pos[i]=(i-1)/blo+1;//pos[i]為記錄元素a[i]屬於第幾個整塊
		m[pos[i]]=max(a[i],m[pos[i]]);//尋找第pos[i]個整塊的最大值存入m[pos[i]]
	}

我們先統計左右殘塊,然後再統計整塊

	cin>>q;
	int l,r;
	while(q--){
		cin>>l>>r;
		l++;
		r++;
		int ans=0;
		for(int i=l;i<=min(r, pos[l]*blo);i++){//統計左殘缺塊 
			ans=max(ans,a[i]);
		} 
		if(pos[l]!=pos[r]){//存在右殘缺塊 
			for(int i=(pos[r]-1)*blo+1;i<=r;i++){//統計右殘缺塊 
				ans=max(ans,a[i]);
			}
		} 
		for( int i=pos[l]+1;i<=pos[r]-1;i++){//統計中間整塊 
			ans=max(ans,m[i]);
		}	
		cout<<ans<<endl;
	}

分塊入門之求最大值

先看一個例題

分塊入門之求最大值
Input
第一行給出一個数字N,接下來N+1行,每行給出一個数字Ai,(1<=i<=N<=1E5)
接來給出一個数字Q(Q<=7000),代表有Q個詢問
每組詢問格式為a,b即詢問從輸入的第a個數到第b個數,其中的最大值是多少
Output
如題所述
Sample Input
10 0 1 2 3 2 3 4 3 2 1 0 5 0 10 2 4 3 7 7 9 8 8
Sample Output
4 3 4 3 2

模板題,然後剛剛已經講過了這個代碼
唯一的坑就在於接下來N+1行都是数字Ai
也就是有n+1数字Ai
也就是n需要n++

#include <bits/stdc++.h>
using namespace std;
int n;
int a[101000];
int q;
int blo;
int pos[101000];
int m[101000];
//blo為區間大小,pos[i]表示a[i]元素位於第pos[i]塊,m[i]表示區塊最大值
int main(){
	cin>>n;
	n++;
	blo=sqrt(n);
	for(int i=1;i<=n;i++){
		cin>>a[i];
		pos[i]=(i-1)/blo+1;
		m[pos[i]]=max(a[i],m[pos[i]]);
	}
	cin>>q;
	int l,r;
	while(q--){
		cin>>l>>r;
		l++;
		r++;
		int ans=0;
		for(int i=l;i<=min(r, pos[l]*blo);i++){//統計左殘缺塊 
			ans=max(ans,a[i]);
		} 
		if(pos[l]!=pos[r]){//存在右殘缺塊 
			for(int i=(pos[r]-1)*blo+1;i<=r;i++){//統計右殘缺塊 
				ans=max(ans,a[i]);
			}
		} 
		for( int i=pos[l]+1;i<=pos[r]-1;i++){//統計中間整塊 
			ans=max(ans,m[i]);
		}	
		cout<<ans<<endl;
	}
	return 0;
}

教主的魔法

[Noip模擬題]教主的魔法
Description
教主最近學會了一種神奇的魔法,能夠使人長高
於是他準備演示給XMYZ信息組每個英雄看
於是N個英雄們又一次聚集在了一起
這次他們排成了一列,被編號為1、2、……、N
每個人的身高一開始都是不超過1000的正整數
教主的魔法每次可以把閉區間[L, R](1≤L≤R≤N)內的英雄的身高全部加上一個整數W
(雖然L=R時並不符合區間的書寫規範,但我們可以認為是單獨增加第L(R)個英雄的身高)
CYZ、光哥和ZJQ等人不信教主的邪
於是他們有時候會問WD閉區間 [L,R] 內有多少英雄身高大於等於C
以驗證教主的魔法是否真的有效
WD巨懶,於是他 把這個回答的任務交給了你
Input
第1行為兩個整數N、Q。Q為問題數與教主的施法數總和
第2行有N個正整數,第i個數代表第i個英雄的身高
第3到第Q+2行每行有一個操作:
(1)若第一個字母為”M”,則緊接着有三個数字L、R、W
表示對閉區間 [L, R]內所有英雄的身高加上W
(2)若第一個字母為”A”,則緊接着有三個数字L、R、C
詢問閉區間 [L, R] 內有多少英雄的身高大於等於C
N≤1000000,Q≤3000,1≤W≤1000,1≤C≤1,000,000,000
Output
對每個”A”詢問輸出一行,僅含一個整數,表示閉區間 [L, R] 內身高大於等於C的英雄數。Sample Input
5 3 1 2 3 4 5 A 1 5 4 M 3 5 1 A 1 5 4
Sample Output
2 3
【輸入輸出樣例說明】
原先5個英雄身高為1、2、3、4、5,此時[1, 5]間有2個英雄的身高大於等於4
教主施法后變為1、2、4、5、6,此時[1, 5]間有3個英雄的身高大於等於4

很多元素,進行增加、查找最大值操作

多了一個修改操作,不是很難
同理像查找這樣整塊維護,殘塊增加
我們就再增加一個數組,統一記錄每個整塊變化量是多少
記錄每個整塊的變化量,然後最後找最值的時候,單個整塊的最值加上或者減去變化量比較就可以了
殘塊的單個元素直接加上或者減去變化量,找最值

void update(int x,int y,int v){
    if(pos[x]==pos[y]){
        for(int i=x;i<=y;i++)a[i]=a[i]+v;
    }
    else{
        for(int i=x;i<=pos[x]*block;i++)a[i]=a[i]+v;
        for(int i=(pos[y]-1)*block+1;i<=y;i++)a[i]=a[i]+v;
    }
    reset(pos[x]);reset(pos[y]);
    for(int i=pos[x]+1;i<pos[y];i++)
       add[i]+=v;
}

#include<bits/stdc++.h>
using namespace std;
int n;
int q,m,block;
int a[1010000],b[1010000],pos[1010000],add[1010000];
void reset(int x){
    int l=(x-1)*block+1,r=min(x*block,n);
    for(int i=l;i<=r;i++)
        b[i]=a[i];
    sort(b+l,b+r+1);
}
int find(int x,int v){
    int l=(x-1)*block+1,r=min(x*block,n);
    int last=r;
    while(l<=r){
        int mid=(l+r)>>1;
        if(b[mid]<v)l=mid+1;
        else r=mid-1;
    }
    return last-l+1;
}
void update(int x,int y,int v){
    if(pos[x]==pos[y]){
        for(int i=x;i<=y;i++)a[i]=a[i]+v;
    }
    else{
        for(int i=x;i<=pos[x]*block;i++)a[i]=a[i]+v;
        for(int i=(pos[y]-1)*block+1;i<=y;i++)a[i]=a[i]+v;
    }
    reset(pos[x]);reset(pos[y]);
    for(int i=pos[x]+1;i<pos[y];i++)
       add[i]+=v;
}
int query(int x,int y,int v){
    int sum=0;
    if(pos[x]==pos[y]){
        for(int i=x;i<=y;i++)if(a[i]+add[pos[i]]>=v)sum++;
    }
    else {
        for(int i=x;i<=pos[x]*block;i++)
            if(a[i]+add[pos[i]]>=v)sum++;
        for(int i=(pos[y]-1)*block+1;i<=y;i++)
            if(a[i]+add[pos[i]]>=v)sum++;
    }
    for(int i=pos[x]+1;i<pos[y];i++)
        sum+=find(i,v-add[i]);
    return sum;
}
int main(){
    cin>>n>>q;
    block=int(sqrt(n));
    for(int i=1;i<=n;i++){
        cin>>a[i];
        pos[i]=(i-1)/block+1;
        b[i]=a[i];
    }
    if(n%block)m=n/block+1;
    else m=n/block;
    for(int i=1;i<=m;i++)reset(i);
    for(int i=1;i<=q;i++){
        char ch[5];int x,y,v;
        cin>>ch>>x>>y>>v;
        if(ch[0]=='M'){
        	update(x,y,v);
		}else{
			cout<<query(x,y,v)<<endl;
		}
    }
    return 0;
}

END

本站聲明:網站內容來源於博客園,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

※為什麼 USB CONNECTOR 是電子產業重要的元件?

網頁設計一頭霧水該從何著手呢? 台北網頁設計公司幫您輕鬆架站!

※台北網頁設計公司全省服務真心推薦

※想知道最厲害的網頁設計公司"嚨底家"!

※推薦評價好的iphone維修中心

01 . ELK Stack簡介原理及部署應用

簡介

ELK並不是一款軟件,是一整套解決方案,是由ElasticSearch,Logstash和Kibana三個開源工具組成:通常是配合使用,而且先後歸於Elastic.co公司名下,簡稱ELK協議棧.

日誌的收集和處理

在日常運維工作中,對於系統和業務日誌的處理尤為重要。日誌主要包括系統日誌,應用日誌,應用程序日誌和安全日誌。系統運維和開發人員可以通過日誌了解服務器軟硬件信息,檢查配置過程中的錯誤及錯誤發生的原因。經常分析日誌可以了解服務器的負荷,性能安全性,從而及時採取措施糾正錯誤。

通常,日誌被分散的存儲在不同的設備上,如果你管理上百台服務器,你還在使用依次登錄每台機器的傳統方法查閱日誌是很繁瑣且效率低下的。當務之急是使用集中化的日誌管理,例如: 開源的syslog,將所有服務器上的日誌收集匯總。集中化管理日誌后,日誌的統計和檢索又成為一件比較麻煩的事情.

一個完整的集中式日誌系統,是離不開以下幾個主要特點的

# 1. 收集 - 能夠收集多種來源的日誌數據
# 2. 傳輸 - 能夠穩定的把日誌數據傳輸到中央系統
# 3. 存儲 - 如何存儲日誌數據
# 4. 分析 - 可以支持UI分析
# 5. 警告 - 能夠提供錯誤報告
日誌分析工具

1 . grep,awk,wc,rsyslog,syslog-ng: 對於龐大的機器數量,要達到要求更高的查詢,排序和統計等使用這樣的方法難免有點力不從心.

2 . 商業化的splunk: Splunk作為企業級的分佈式機器數據的平台,擁有強大的分佈式配置,包括跨數據中心的集群配置,Splunk提供兩種集群,indexer集群和Search Head集群.具體情況請看Splunk文章.

3 . 開源的:

# 1 FaceBook公司的Scribe
# 2 Apache的Chukwa
# 3 Linkedin的Kafka
# 4 Cloudera的Fluentd
# 5 ELK
Elasticsearch

ElasticSearch是一個基於Lucene的開源分佈式搜索服務器.是一個實時的分佈式搜索和分析引擎,他可以用於全文搜索,結構化搜索以及分析,他是一個建立在全文搜索引擎Apache lucene基礎上的搜索引擎,使用Java語言編寫,並作為Apache許可條款下的開放源碼發布,是第二流行的企業搜索引擎。設計用於雲計算中,能夠達到實時搜索,穩定,可靠,快速,安裝使用方便,在elasticsearch中,所有節點的數據是均等的.

主要特點

# 1 實時分析
# 2 分佈式實時文件存儲,並將每一個字段都編入索引
# 3 文檔導向,所有的對象全部是文檔
# 4 高可用性,易擴展,支持集群(cluster),分片和複製(hards和Replicas
# 5 接口友好,支持JSON

Logstash

logstash是一個具有實時渠道能力的數據收集引擎,使用JRuby語言編寫,其做着是世界著名的運維工程師喬丹西塞,他是一個完全開源工具,可以對你的日誌進行收集,過濾

# 主要特點:
#        1> 幾乎可以訪問任何數據
#        2> 可以和多種外部應用結合
#        3> 支持彈性擴展

# 它主要由三個主要部分組成,見下圖.
#        1> Shipper - 發送日誌數據
#        2> Broker -  收集數據,缺省內置Redis
#        3> Indexer - 數據寫入

Kibana

Kibana是一款基於Apache開源協議,使用JavaScript語言編寫,為Elasticsearch提供分析和可視化的Web平台,他可以在Elasticsearch的索引中查找,交互數據,並生成各種維度的表圖.

Filebeat

ELK協議棧的新成員,一個輕量級開源日誌數據搜集器,基於Logstash-Forwarder源代碼開發,是對他的替代。是需要在採集日誌數據server上安裝filebeat,並指定日誌目錄或日誌文件后,Filebeat就能讀取數據,迅速發送到Logstash進行解析,亦或直接發送到Elasticsearch進行集中式存儲和分析

ELK協議棧體繫結構

最簡單架構

在這種架構中,只有一個Logstash,Elasticsearch和Kibana實例。Logstash通過輸入插件從多種數據源(比如日誌文件,標準輸入Stdin等)獲取數據,再經過過濾插件加工數據,然後經過Elasticsearch輸出插件輸出到Elasticsearch,通過Kibana展示.

Logstash作為日誌收集器

這種架構是對上面架構的擴展,把一個Logstash數據搜集節點擴展到多個,分佈於多台機器,將解析好的數據發送到Elasticsearch server進行存儲,最後在Kibana查閱,生成日誌報表等.

這種結構因為需要在各個服務器上部署Logstash,而它比較消耗CPU和內存資源,所以比較適合資源豐富的服務器,否則容易造成服務器性能下降,甚至可能導致無法正常工作.

Beats作為日誌搜集器

這種架構引入Beats作為日誌搜集器。目前Beats包括四種

# 1> Packetbeat (搜集網絡流量數據)
# 2> Topbeat (搜集系統,進程和文件系統級別的CPU和內存使用情況等數據)
# 3> Filebeat (搜集文件數據)
# 4> Winlogbeat (搜集Windows事件日誌數據)

Beats將搜集到的數據發送到Logstash,經Logstash解析,過濾后,將其發送到Elasticsearch存儲,並由Kibana呈現給用戶.

這種架構解決了Logstash在各服務器節點上佔用系統資源高的問題,相比Logstash,Beats所佔系統的CPU和內存幾乎可以省略不計,另外,Beats和Logstash之間保持SSL/TLS加密傳輸,客戶端和服務器雙向認證,保證了通信安全

因此這種架構適合對數據安全性要求較高,同時各服務器性能比較敏感的場景.

基於Filebeat架構的配置部署詳解

前面提到Filebeat已經完全替代了Logstash-Forwarder 成為新一代的日誌採集器,同時鑒於它輕量、安全等特點,越來越多人開始使用它。這個章節將詳細講解如何部署基於 Filebeat 的 ELK 集中式日誌解決方案,具體架構見下圖.

引入消息隊列機制的架構

Beats 還不支持輸出到消息隊列,所以在消息隊列前後兩端只能是 Logstash 實例。這種架構使用 Logstash 從各個數據源搜集數據,然後經消息隊列輸出插件輸出到消息隊列中。目前 Logstash 支持 Kafka、Redis、RabbitMQ 等常見消息隊列。然後 Logstash 通過消息隊列輸入插件從隊列中獲取數據,分析過濾后經輸出插件發送到 Elasticsearch,最後通過 Kibana 展示。見下圖

這種架構適合於日誌規模比較龐大的情況,但由於Logstash日誌解析節點和Elasticsearch的符合比較重,可將他們配置為集群模式,以分擔負荷,引入消息隊列,均衡了網絡傳輸,從而降低了網絡閉塞,尤其丟失數據的可能性,但依然存在Logstash佔用系統資源過多的問題.

部署

架構圖

999

List
Package:
# elasticsearch-7.2.0-linux-x86_64.tar.gz
# filebeat-7.2.0-x86_64.rpm
# jdk-8u121-linux-x64.rpm
# kibana-7.2.0-linux-x86_64.tar.gz
# logstash-7.2.0.tar.gz
IP hostname 軟件 配置要求 網絡 備註
192.168.144.131 ES/數據存儲 elasticsearch-7.2 內存最低2GB/硬盤40GB Nat,內網
192.168.144.128 Kibana/UI展示 kibana-7.2****logstash-7.2 內存最低2GB/硬盤40GB Nat,內網
192.168.144.135 Filebeat/數據採集 Filebeat-7.2/nginx 內存最低2GB/硬盤40GB Nat,內網
注意事項
# 1.一定要對時,時間校正,不然日誌出不來
# 2.啟動Elasticsearch必須切換成所創建的ELK用戶啟動,不然ES處於安全目的,會啟動報錯.
# 3.日誌從Filebeat到Logstash再到ES檢索到Kibana的讀取速度取決於機器配置
Elasticsearch安裝
# 1.初始化
setenforce 0
sed -i '/^SELINUX=/ s/enforcing/disabled/'  /etc/selinux/config
systemctl stop firewalld
systemctl disable firewalld
sed -i '/^GSSAPIAu/ s/yes/no/' /etc/ssh/sshd_config
sed -i '/^#UseDNS/ {s/^#//;s/yes/no/}' /etc/ssh/sshd_config
curl -o /etc/yum.repos.d/163.repo http://mirrors.163.com/.help/CentOS7-Base-163.repo &>/dev/null
curl  -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
    yum -y install ntpdate
    ntpdate -b  ntp1.aliyun.com

# 2.設置Hostname解析
hostnamectl set-hostname elk-1
        ## 修改/etc/hosts 增加如下內容
        192.168.144.131     elk-1

# 4.java安裝
# rpm -ivh jdk-8u121-linux-x64.rpm
# 如果使用rpm請到/etc/profile加上
# JAVA_HOME=/usr/java/jdk1.8.0_121
# export PATH=$PATH:$JAVA_HOME/bin
yum -y install java-1.8.0-openjdk.x86_64

# 5.創建用戶和組並準備相關目錄並授權
groupadd  elk
useradd  elk  -g  elk
mkdir  -pv  /data/elk/{data,logs}
chown  -R  elk:elk  /data/elk/

# 6.軟件包解壓、授權
# 上傳軟件包
            通過scp 或者FTP方式上傳到/opt下
# 解壓軟件包到/opt目錄
tar xvf elasticsearch-7.2.0-linux-x86_64.tar.gz -C  /opt/
# 授權
chown  -R  elk:elk  /opt/elasticsearch-7.2.0/  # 軟件包名

# 7.修改elk配置文件
[root@elk-1 ~]# vim /opt/elasticsearch-7.2.0/config/elasticsearch.yml
        # 集群名
        cluster.name:  elk
        # 節點名
        node.name: node-1
        # 存儲數據
        path.data:  /data/elk/data
        # 存放日誌
        path.logs:  /data/elk/logs
        # 鎖內存,盡量不使用交換內存
        bootstrap.memory_lock:  false
        # 網絡地址
        network.host: 0.0.0.0
        http.port: 9200
        # 發現集群hosts
        discovery.seed_hosts: ["elk-1"]
        # 設置集群master節點
        cluster.initial_master_nodes: ["node-1"]

# 8.修改/etc/security/limits.conf
        # *號不是註釋
        * soft nproc 65535
        * hard nproc 65535
        * soft nofile 65535
        * hard nofile 65535

ulimit -n 65535
ulimit -u 20480

# 9.修改/etc/sysctl.conf
        echo "vm.max_map_count=262144" >> /etc/sysctl.conf
        sysctl -p

# 10.啟動ES並檢查集群健康狀態
nohup runuser -l elk -c '/bin/bash /opt/elasticsearch-7.2.0/bin/elasticsearch' &
    # 這裏為了省事直接用的nohup 可以使用supervisord 對進程進行管理
[root@elk-1 ~]# curl -XGET 'elk-1:9200/_cluster/health?pretty'
{
  "cluster_name" : "elk",
  "status" : "green",
  "timed_out" : false,
  "number_of_nodes" : 1,
  "number_of_data_nodes" : 1,
  "active_primary_shards" : 0,
  "active_shards" : 0,
  "relocating_shards" : 0,
  "initializing_shards" : 0,
  "unassigned_shards" : 0,
  "delayed_unassigned_shards" : 0,
  "number_of_pending_tasks" : 0,
  "number_of_in_flight_fetch" : 0,
  "task_max_waiting_in_queue_millis" : 0,
  "active_shards_percent_as_number" : 100.0
}
Kibana安裝
# 1.解壓Kibana安裝包
tar xvf kibana-7.2.0-linux-x86_64.tar.gz  -C /opt/

# 2.修改Kibana配置文件
server.port:  5601   # Port
server.host:  0.0.0.0   # 訪問限制
elasticsearch.hosts: ["http://192.168.144.131:9200"]        # ES主機IP:Port

# 3.啟動命令
[root@kibana ~]# nohup /opt/kibana-7.2.0-linux-x86_64/bin/kibana --allow-root &
[1] 14650
    # tailf nohup.out 即可實時查看日誌
Logstash安裝
[root@kibana ~]# rpm -ivh jdk-8u121-linux-x64.rpm
[root@kibana ~]# tar xvf logstash-7.2.0.tar.gz  -C /opt/
[root@kibana opt]# vim /opt/nginx.yml
# Sample Logstash configuration for creating a simple
# # Beats -> Logstash -> Elasticsearch pipeline.
#
input {
    beats {
        port => 5044
        }
}

filter {
    grok {
        match => ["message","%{DATA:log_date} %{WORD:method} %{TIME:log_localtime} %{HOSTNAME:host_name} %{WORD:workd}\[%{WORD:ls}\]\: %{DATA:log_date} %{TIME:log_localtime2} %{WORD:year_tmp}\: %{WORD:name_2}\: %{WORD:request_leixin} %{WORD:request_num}\, %{WORD}\: %{WORD:app_id}\, %{WORD}\: %{IP:ip}\, %{WORD}\: %{INT}\, %{WORD}\: %{USERNAME:device_id}"]
        }
}

output {
    elasticsearch {
       hosts => ["http://192.168.144.131:9200"]
       index => "app_log-%{[@metadata][beat]}-%{[@metadata][version]}-%{+YYYY.MM.dd}"
     }
}




# 啟動 (如果起不來或者報錯一般都是配置文件語法錯誤之類的)
    /opt/logstash-7.2.0/bin/logstash -f /opt/配置文件名.yml
    ## 後台運行
    nohup  /opt/logstash-7.2.0/bin/logstash -f /opt/配置文件名.yml  &
Filebeat安裝
# 安裝filebeat RPM包
[root@filebeat ~]# rpm -ivh filebeat-7.2.0-x86_64.rpm

# 修改配置文件:
Filebeat到Logstash
(vim /etc/filebeat/filebeat.yml) shift + : 輸入set nu 显示行號
24:   enabled:  true                         # 更改為true以啟用輸入配置
28:   - /data/*.log                   # 替換為要抓取的日誌文件路徑,如果抓取nginx日誌,修改為/var/log/nginx/access.log,如果是日誌服務器,在下面再加上多行其他地方的日誌目錄即可
73:  reload.enabled:  true                  # 啟動Filebeat模塊
148: output.elasticsearch:                  # 加上註釋;
150:  hosts: ["localhost:9200"]              # 加上註釋;
158: output.logstash:                       # 去掉註釋;
160: hosts: ["192.168.144.128<logstash>:5044"]       # 去掉註釋,並修改localhost為logstash機器IP及對應端口號;


# 測試配置文件並啟動
filebeat  test  config  -e
systemctl  start filebeat && systemctl  enable filebeat

[root@filebeat ~]# cat /data/nginx.log        # 創建該目錄及文件,加入兩行日誌.
Sep  2 16:00:18 cc-prd-3-tk-13-pcs1 pcs[16118]: Mon Sep  2 16:00:18 2019: PCS: recv request, app_id: app_1w5B6O4R2o1k881k12177, ip: 223.104.145.136, os: 0, device_id: 02c3864050502d43dc514905133bcc9c
Sep  2 16:00:18 cc-prd-3-tk-13-pcs1 pcs[16118]: Mon Sep  2 16:00:18 2019: PCS: recv request, app_id: app_1w5B6O4R2o1k881k12177, ip: 223.104.145.136, os: 0, device_id: 02c3864050502d43dc514905133bcc9c

收集的日誌需要把有用的信息做切割,讓相應字段成為獨立的個一個字段,而不是一整條日誌是一個字段,那樣就沒法做分析,而做數據源切割很重要,否則日誌會過不來,或者日誌做不了分析,統計.

可以把源日誌拿到kibana上的grok上做切割,直到Structured Data能出現你想要的字段就可以放到logstash的配置文件中

本站聲明:網站內容來源於博客園,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

USB CONNECTOR掌控什麼技術要點? 帶您認識其相關發展及效能

台北網頁設計公司這麼多該如何選擇?

※智慧手機時代的來臨,RWD網頁設計為架站首選

※評比南投搬家公司費用收費行情懶人包大公開

※回頭車貨運收費標準

能防颱、調節水患 和古墳並立的日本太陽能發電廠

文:宋瑞文(加州能源特約撰述)

本站聲明:網站內容來源環境資訊中心https://e-info.org.tw/,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

※帶您來了解什麼是 USB CONNECTOR  ?

※自行創業缺乏曝光? 網頁設計幫您第一時間規劃公司的形象門面

※如何讓商品強力曝光呢? 網頁設計公司幫您建置最吸引人的網站,提高曝光率!

※綠能、環保無空污,成為電動車最新代名詞,目前市場使用率逐漸普及化

※廣告預算用在刀口上,台北網頁設計公司幫您達到更多曝光效益

※教你寫出一流的銷售文案?