获取地址:
1 | https://gitlab.com/ineo6/hosts/-/raw/master/next-hosts |
内容如:
1 | # New!欢迎使用基于DNS的新方案 |
将内容配置到hosts中即可。
]]> Alluxio是一个基于内存的分布式文件系统,它是架构在底层分布式文件系统和上层分布式计算框架之间的一个中间件,主要职责是以文件形式在内存或其它存储设施中提供数据的存取服务。
在大数据生态系统中,Alluxio 位于数据驱动框架或应用(如 Apache Spark、Presto、Tensorflow、Apache HBase、Apache Hive 或 Apache Flink)和各种持久化存储系统(如 Amazon S3、Google Cloud Storage、OpenStack Swift、HDFS、GlusterFS、IBM Cleversafe、EMC ECS、Ceph、NFS 、Minio和 Alibaba OSS)之间。 Alluxio 统一了存储在这些不同存储系统中的数据,为其上层数据驱动型应用提供统一的客户端 API 和全局命名空间。
下载地址:
https://www.alluxio.io/download/releases/
wget https://downloads.alluxio.io/downloads/files/2.8.1/alluxio-2.8.1-bin.tar.gz
Alluxio 集群安装分为两种,zookeeper 和 raft 两种方式。
Zookeeper 方式,集群master通过zk来选择主节点。
安装说明:
两个master节点,两个work节点。
用hadoop用户启动,每个节点之间ssh免密
####修改配置文件:
1 | su – hadoop |
软连hdfs配置文件
1 | ln -s $HADOOP_CONF_DIR/hdfs-site.xml hdfs-site.xml |
vim master # 写上master 节点的主机名
1 | shining-bigdata00.host.com |
vim workers # 写上 worker 节点的主机名
1 | shining-bigdata02.host.com |
vim alluxio-site.properties # alluxio主配置文件 zookeeper HA 配置文件
1 | #########<-- zookeeper ha ####### |
vim alluxio-site.properties # alluxio主配置文件 RAFT HA 配置文件
1 | ######### <-- raft ha ##### |
根据上面的配置,需要准备的配置:
HDFS 上创建目录:
1 | hdfs dfs -mkdir /alluxio/journal |
同步配置文件
1 | cd /home/hadoop/alluxio-2.8.1 |
启动和停止Alluxio集群:
1 | 启动: |
worker:
1 | alluxio-start.sh worker |
Web UI 访问地址:
http://shining-bigdata00.host.com:19999/overview
修改hdfs配置文件
cd $HADOOP_CONF_DIR
vim core-site.xml
1 | <property> |
添加jar包,将alluxio-client 的jar包放到hdfs的lib加载目录下。
1 | cp /home/hadoop/alluxio-2.8.1/client/alluxio-2.8.1-client.jar /home/hadoop/apache-hadoop/hadoop/share/hadoop/common/lib/ |
重启 hadoop 集群
之后,可以用hdfs命令查看alluxio上文件
1 | hadoop fs -ls alluxio:///ys |
copy alluxio client jar 包
1 | cp /home/hadoop/alluxio-2.8.1/client/alluxio-2.8.1-client.jar $HIVE_HOME/lib/ |
hive 配置文件中 hive-site.xml 中添加
1 | <!-- |
Hive 客户端和hive meta 都需要添加。
Hive中创建 alluxio 文件系统的表。
Alluxio 官网提供一个测试的hive数据,
可以在 http://grouplens.org/datasets/movielens/
下载数据文件(如:ml-100k.zip)。然后接下该文件,并且将文件u.user上传到Alluxio的ml-100k/下:
1 | ./bin/alluxio fs mkdir /ml-100k |
创建表:
1 | hive> CREATE TABLE u_user ( |
执行查询:
1 | Select * from u_user limit 5; |
常用命令
1 | ./bin/alluxio copyDir conf/ |
《素书》以道家思想为宗旨,集儒、法、兵的思想发挥道的作用及功能,同时以道、德、仁、义、礼为立身治国的根本、揆度宇宙万物自然运化的理数,以此认识事物,对应事物、处理事物的智能之作。
有一个典故大概大家都知道,黄石公故意把鞋子弄到桥下,张良毕恭毕敬的为老人拾鞋穿鞋,后来老人又几次考验张良,张良终于通过了考验,于是黄石公就把自己的一本书传授给了张良,这部书的名字有传说叫做《太公兵法》,其实是以讹传讹,这部书的名字应该叫做《素书》。张良却没有把这部书传给后人,而是将书埋进了自己的坟墓。张良死后大约五百年,盗墓人从张良墓里偷了这本书,才在民间流传开来。这段故事记载于宋朝人张商英为《素书》写的序里。张良虽然用这部书里的知识帮助刘邦取得了天下,但是张良也没有完全领悟书中的奥义。此典故正式名曰“圯桥授书”。
《素书》全书一百三十二句,共六章:原始、正道、求人之志、本德宗道、遵义和安礼。但这本书的内容可非同寻常,不仅包含治国安邦大谋略,更有修身处世、为人之道的智慧,每一句箴言都是切中要害,一针见血,读来如醍醐灌顶、豁然顿悟,其对人生的指导意义不言而喻,值得我们每个人读上一读。
【原文】
夫道、德、仁、义、礼五者,一体也。道者,人之所蹈,使万物不知其所由。德者,人之所使,使万物各得其所欲。仁者,人之所亲,有慈慧恻隐之心,以遂其生成。义者,人之所宜,赏善罚恶,以立功立事。礼者,人之所履,夙兴夜寐,以成人伦之序。夫欲为人之本,不可无一焉。贤人君子,明于盛衰之道,通乎成败之数,审乎治乱之势,达乎去就之理。故潜居抱道,以待其时。若时至而行,则能极人臣之位;得机而动,则能成绝代之功。如其不遇,没身而已。是以其道足高,而名重于后代。
【译文】
道、德、仁、义、礼五者,本为一体,不可分离。
道,是一种自然规律,人人都在遵循著自然规律,自己却意识不到这一点,自然界万事万物亦是如此。德、即是获得,依德而行,可使一己的欲求得到满足,自然界万事万物也是如此。仁、是人所独具的仁慈、爱人的心理,人能关心、同情人,各种善良的愿望和行动就会产生。义、是人所认为符合某种道德观念的行为,人们根据义的原则奖善惩恶,以建立功业。礼、是规定社会行为的法则,规范仪式的总称。人人必须遵循礼的规范,兢兢业业,夙兴夜寐,按照君臣、父子、夫妻、兄弟等人伦关系所排列的顺序行事。这五个条目是做人的根本,缺一不可的。贤明能干的人物,品德高尚的君子,都能看清国家兴盛、衰弱、存亡的道理,通晓事业成败的规律,明白社会政治修明与纷乱的形势,懂得隐退仕进的原则。因此,当条件不适宜之时,都能默守正道,甘于隐伏,等待时机的到来。一旦时机到来而有所行动,常能建功立业位极人臣。如果所遇非时,也不过是淡泊以终而已。也就因此,像这样的人物常能树立极为崇高的典范,名重于后世呵!
【原文】
德足以怀远,信足以一异,义足以得众,才足以鉴古,明足以照下,此人之俊也;
行足以为仪表,智足以决嫌疑,信可以使守约,廉可以使分财,此人之豪也;
守职而不废,处义而不回,见嫌而不茍免,见利而不茍得,此人之杰也。
【译文】
品德高尚,则可使远方之人前来归顺。诚实不欺,可以统一不同的意见。道理充分可以得到部下群众的拥戴。才识杰出,可以借鉴历史。聪明睿智可以知众而容众。这样的人,可以称他为人中之俊。行为端正,可以为人表率。足智多谋,可以解决疑难问题。天无信,四时失序,人无信,行止不立。如果能忠诚守信,这是立身成名之本。君子寡言,言而有信,一言议定,再不肯改议、失约。是故讲究信用,可以守约而无悔。廉洁公正,且疏财仗义。这样的人,可以称他为人中之豪。见嫌而不苟免,克尽职守,而无所废弛;恪守信义,而不稍加改变;受到嫌疑,而能居义而不反顾;利字当头,懂得不悖理苟得。这样的人,可以称为人中之杰。
【原文】
绝嗜禁欲,所以除累。抑非损恶,所以让过。贬酒阙色,所以无污。
避嫌远疑,所以不误。博学切问,所以广知。高行微言,所以修身。
恭俭谦约,所以自守。深计远虑,所以不穷。亲仁友直,所以扶颠。
近恕笃行,所以接人。任材使能,所以济物。殚恶斥谗,所以止乱。
推古验今,所以不惑。先揆后度,所以应卒。设变致权,所以解结。
括囊顺会,所以无咎。橛橛梗梗,所以立功。孜孜淑淑,所以保终。
【译文】
杜绝不良的嗜好,禁止非分的欲望,这样可以免除各种牵累;抑制不合理的行为,减少邪恶的行径,这样可以避免过失;谢绝酒色侵扰,这样可以不受玷污;回避嫌疑,远离惑乱,这样可以不出错误。广泛地学习,仔细地提出各种问题,这样可以丰富自己的知识;行为高尚,辞锋不露,这样可以修养身心、陶冶性情;肃敬、节俭、谦逊、简约,这样可以守身不辱;深谋远虑,这样可以不至于困危;亲近仁义之士,结交正直之人,这样可以在逆境中得到帮助。为人尽量宽容,行为敦厚,这是待人处世之道。任才使能,使人人能尽其才,这是用人成事之要领;抑制邪恶,斥退谗佞之徒,这样可以防止动乱;推求往古,验证当今,这样可以不受迷惑;了解事态,心中有数,这样可以应付仓卒事变;采用灵活手法,施展权变之术,这样可以解开纠结;心中有数,闭口不言,凡事能顺从时机,这样可以远怨无咎;坚定不移,正直刚强,这样才能建功立业;勤勉惕励;心地善良,这样才能善始善终。
【原文】
夫志心笃行之术。长莫长于博谋,安莫安于忍辱,先莫先于修德,乐莫乐于好善,神莫神于至诚,明莫明于体物,吉莫吉于知足,苦莫苦于多愿,悲莫悲于精散,病莫病于无常,短莫短于苟得,幽莫幽于贪鄙,孤莫孤于自恃,危莫危于任疑,败莫败于多私。
【译文】
欲始志向坚定,笃实力行:最好的方法,莫过于深思多谋;最安全的方式,莫过于安于忍辱;最优先的要务,莫过于进德修业;最快乐的态度,莫过于乐于好善;最神奇的效验,莫过于用心至诚;最高明的做法,莫过于明察秋毫;最吉祥的想法,莫过于安分知足;最痛苦的缺点,莫过于欲求太多;最悲哀的情形,莫过于心神离散;最麻烦的病态,莫过于反覆无常;最无聊的妄念,莫过于不劳而获;最愚昧的观念,莫过于贪婪卑鄙;最孤独的念头,莫过于目空一切;最危险的举措,莫过于任人而疑;最失败的行径;莫过于自私自利;
【原文】
以明示下者暗,有过不知者蔽,迷而不返者惑,以言取怨者祸,令与心乖者废,后令缪前者毁,怒而无威者犯,好众辱人者殃,戮辱所任者危,慢其所敬者凶,貌合心离者孤,亲谗远忠者亡,近色远贤者昏,女谒公行者乱,私人以官者浮,凌下取胜者侵,名不胜实者耗。略己而责人者不治,自厚而薄人者弃废。以过弃功者损,群下外异者沦,既用不任者疏,行赏吝色者沮,多许少与者怨,既迎而拒者乖。薄施厚望者不报,贵而忘贱者不久。念旧而弃新功者凶,用人不得正者殆,强用人者不畜,为人择官者乱,失其所强者弱,决策于不仁者险,阴计外泄者败,厚敛薄施者凋。战士贫,游士富者衰;货赂公行者昧;闻善忽略,记过不忘者暴;所任不可信,所信不可任者浊。牧人以德者集,绳人以刑者散。小功不赏,则大功不立;小怨不赦,则大怨必生。赏不服人,罚不甘心者叛。赏及无功,罚及无罪者酷。听谗而美,闻谏而仇者亡。能有其有者安,贪人之有者残。
【译文】
在部下面前显示高明,一定会遭到愚弄。有过错而不能自知,一定会受到蒙蔽。走入迷途而不知返回正道,一定是神志惑乱。因为语言招致怨恨,一定会有祸患。思想与政令矛盾,一定会坏事。政令前后不一,一定会失败。发怒却无人畏惧,一定会受到侵犯。喜欢当众侮辱别人,一定会有灾难。对手下的大将罚之过当,一定会有危险。怠慢应受尊重的人,一定会招致不幸。表面上关系密切,实际上心怀异志的,一定会陷于孤独。亲近谗慝,远离忠良,一定会灭亡。亲近女色,疏远贤人,必是昏瞆目盲。女子干涉大政,一定会有动乱。随便将官职到处乱送,政治就会出现乱相。欺凌下属而获得胜利的,自己也一定会受到下属的侵犯。所享受的名声超过自己的实际才能,即使耗尽精力也治理不好事务。对自己马虎,对别人求全责备的,无法处理事务。对自己宽厚,对别人刻薄的,一定被众人遗弃。因为小过失便取消别人的功劳的,一定会大失人心。部下纷纷有离异之心,必定沦亡。既然用了人却不给予信任,必定导致关系疏远。论功行赏时吝啬小气,形于颜色,必定使人感到沮丧。承诺多,兑现少,必招致怨恨。起初竭诚欢迎,末了又拒于门外,一定会恩断义绝。给予别人很少,却希望得到厚报的,一定会大失所望。富贵之后就忘却贫贱时候的情状,一定不会长久。念及别人旧恶,忘记其所立新功的,一定遭来大凶。任用邪恶之徒,一定会有危险。勉强用人,一定留不住人。用人无法摆脱人情纠结,政事必越理越乱。失去自己的优势,力量必然削弱。处理问题、制定决策时向不仁之人问计,必有危险。秘密的计划泄露出去,一定会失败。横征暴敛、薄施寡恩,一定会衰落。奋勇征战的将士生活贫穷,鼓舌摇唇的游士安享富贵,国势一定会衰落。贿赂政府官员的事到处可见,政治必定十分昏暗。知道别人的优点长处却不重视,对别人的缺点错误反而耿耿于怀的,则是作风粗暴。使用的人不堪信任,信任的人又不能胜任其职,这样的政治一定很混浊。依靠道德的力量来治理人民,人民就会团结;若一味地依靠刑法来维持统治,则人民将离散而去。小的功劳不奖赏,便不会建立大功劳;小的怨恨不宽赦,大的怨恨便会产生。奖赏不能服人,处罚不能让人甘心,必定引起叛乱;赏及无功之人,罚及无罪之人,就是所谓的残酷。听到谗佞之言就十分高兴,听到忠谏之言便心生怨恨,一定灭亡。藏富于民,以百姓的富有作为本身的富有,这样才会安定;欲壑难填,总是贪求别人所有的,必然残民以逞。
【原文】
怨在不舍小过,患在不预定谋。福在积善,祸在积恶。饥在贱农,寒在堕织。安在得人,危在失事。富在迎来,贫在弃时。上无常操,下多疑心。轻上生罪,侮下无亲。近臣不重,远臣轻之。自疑不信人,自信不疑人。枉士无正友,曲上无直下。危国无贤人,乱政无善人。爱人深者求贤急,乐得贤者养人厚。国将霸者士皆归,邦将亡者贤先避。地薄者大物不产,水浅者大鱼不游,树秃者大禽不栖,林疏者大兽不居。山峭者崩,泽满者溢。弃玉取石者盲,羊质虎皮者柔。衣不举领者倒,走不视地者颠。柱弱者屋坏,辅弱者国倾。足寒伤心,人怨伤国。山将崩者下先隳,国将衰者人先弊。根枯枝朽,人困国残。与覆车同轨者倾,与亡国同事者灭。见已生者慎将生,恶其迹者须避之。畏危者安,畏亡者存。夫人之所行,有道则吉,无道则凶。吉者,百福所归;凶者,百祸所攻。非其神圣,自然所钟。务善策者无恶事,无远虑者有近忧。同志相得,同仁相忧,同恶相党,同爱相求,同美相妒,同智相谋,同贵相害,同利相忌,同声相应,同气相感,同类相依,同义相亲,同难相济,同道相成,同艺相规,同巧相胜:此乃数之所得,不可与理违。释己而教人者逆,正己而化人者顺。逆者难从,顺者易行,难从则乱,易行则理。如此理身、理国、理家,可也!
【译文】
怨恨产生于不肯赦免小的过失;祸患产生于事前未作仔细的谋画;幸福在于积善累德;灾难在于多行不义。轻视农业,必招致饥馑;惰于蚕桑,必挨冷受冻。得人必安,失士则危。招来远客即富,荒废农时则贫。上位者反覆无常,言行不一,部属必生猜疑之心,以求自保。对上官轻视怠慢,必定获罪;对下属侮辱傲慢,必定失去亲附。近幸左右之臣不受尊重,关系疏远之臣必不安其位。自己怀疑自己,则不会信任别人;自己相信自己,则不会怀疑别人。邪恶之士决无正直的朋友;邪僻的上司必没有公正刚直的部下。行将灭亡的国家,决不会有贤人辅政;陷于混乱的政治,决不会有善人参与。爱人深者,一定急于求贤才,乐得于贤才者,待人一定丰厚。国家即将称霸,人才都会聚集来归;邦国即将败亡,贤者先行隐避。土地贫瘠,大物不产;水浅之处,大鱼不游;秃树之上,大禽不栖;疏林之中,大兽不居。山势过于陡峭,则容易崩塌;沼泽蓄水过满,则会漫溢出来。弃玉抱石者目光如盲,羊质虎皮者虚于矫饰。拿衣服时不提领子,势必把衣服拿倒。走路不看地面的一定会跌倒。
房屋梁柱软弱,屋子会倒塌;才力不足的人掌政,国家会倾覆。脚下受寒,心肺受损;人心怀恨,国家受伤。大山将要崩塌,土质会先毁坏;国家将要衰亡,人民先受损害。树根干枯,枝条就会腐朽;人民困窘,国家将受伤害。与倾覆的车子走同一轨道的车,也会倾覆;与灭亡的国家做相同的事,也会灭亡。见到已发生的事情,应警惕还将发生类似的事情;预见险恶的人事,应事先回避。害怕危险,常能得安全;害怕灭亡,反而能生存。人的所作所为,符合行事之道则吉,不符合行事之道则凶。吉祥的人,各种各样的好处都到他那里;不吉祥的人,各种各样的恶运灾祸都向他袭来。这并不是什么奥妙的事,而是自然之理。务善策者无恶事,无远虑者有近忧。同志相得,同仁同忧,同恶相党,同爱同求,同美相妒,同智相谋,同贵相害,同利相忌。同声相应,同气相感,同类相似,同义相亲,同难相济。同道相成,同艺相窥,同巧相胜。以上这些都是自然而然的道理,凡人类有所举措,均应遵守这些规律,不可与理相抗。把自己放在一边,单纯去教育别人,别人就不接受他的大道理;如果严格要求自己,进而去感化别人,别人就会顺服。违反常理,部属则难以顺从;合乎常理,则办事容易。部属难以顺从,则容易产生动乱;办事容易,则能得到畅通的治理。
以上所述的各项事理,用在修身、持家、治国,均会获得丰硕的效果。
传播国学文化,分享智慧人生!
]]>以上内容均来之互联网,如有侵权请联系我。
那么问题来了, rsyslog将日志怎么处理,怎么区分?
简单的是有 Dcokerfile
1 | FROM centos:7 |
这其中包括及个文件, 我就直接列出来了
rsyslog.conf 主要是开启514端口,TCP和UDP
1 | # rsyslog configuration file |
rsyslog 文件
1 | # Options for rsyslogd |
tokafka.conf 通过端口将日志写入到kakfa不同topic
1 | module(load="omkafka") |
其中 omkafka 模块参数说明,可以参考:
https://rsyslog.readthedocs.io/en/latest/configuration/modules/omkafka.html
For Example
1 | #加载omkafka和imfile模块 |
docker 镜像编译
1 | docker build -t rsyslog-to-kafka:latest . |
启动容器,还需要映射UDP端口
1 | docker run --name rsyslog-to -kafka -p 514:514 -p 514:514/udp -p 7510: 7510 -p 7510: 7510/udp -p 7511: 7511 -p 7511: 7511/udp -p 7512: 7512 -p 7512: 7512/udp rsyslog-to-kafka:latest |
发布程序:
1 | 例如: json文件名为 nginx-test.json |
更新程序:
1 | 例如: nginx-test 这个app |
强制杀掉 deployment:
1 | marathonAddr="http://ip:8080"; |
更新某个变量:
1 | # 更新实例数 |
获取 app 信息
1 | # 获取到所有的id |
restart
1 | ID=/test/test-mysql |
Mac 暗转 itrem2 的文章很多, 我就不写太多了。
itrem2 官网下载: https://iterm2.com/downloads.html
可以用命令直接安装:
1 | brew cask install iterm2 |
创建登入脚本,密码设置好,通过传入参数,登入不同机器。
vim allssh
1 | #!/usr/bin/expect |
保存脚本,执行的时候需要传入 端口、用户、主机地址
1 | ./allssh 22 root 192.168.1.243 |
在来一个例子:
密码也会传输。
vim autossh
1 | #!/usr/bin/expect |
执行:
1 | ./autossh 192.168.1.243 |
在来一个三级登入的例子,先登入堡垒机,在登入跳板机, 在登入内网的机器。
vim ssh-gate
1 | #!/usr/bin/expect |
执行
1 | ./ssh-gate 192.168.2.243 |
另外,iterm2 的快捷键还是很好用的。
1 | 登入可以在 Preferences -> Profile -> shortcut key |
输入的快捷键也是很好用的。
1 | 可以在 Preferences -> keys -> 选择加号 ”+ “ |
intel qat 加速卡安装配置 : https://sukbeta.github.io/intel-qat/
宿主机上nginx配置qat:https://sukbeta.github.io/nginx-qat/
nginx qat docker container install : https://01.org/sites/default/files/downloads//337020-003-qatwcontaineranddocker.pdf
简单安装一个docker服务
1 | yum install -y yum-utils |
修改docker limit
vim /usr/lib/systemd/system/docker.service
1 | [Service] |
重启服务
1 | systemctl daemon-reload |
首先宿主上是安装qat驱动的。
1 | FROM centos:7 AS build |
build
1 | docker build -t qat-centos . |
docker run
1 | docker run -it --rm --ulimit memlock=-1:-1 $devpara -p 80:80 -p 443:443 qat-centos:latest /bin/bash |
用挂载方式运行, 将宿主安装的目录挂载到容器中运行, 这样可以运行多个容器。
1 | docker run -it --rm --ulimit memlock=-1:-1 -v /home:/home -v /usr/local/ssl:/usr/local/ssl -v /usr/local/lib64:/usr/local/lib64 -v /dev/hugepages:/dev/hugepages $devpara -p 80:80 -p 443:443 centos:7 /bin/bash |
1 | cat /sys/kernel/debug/qat_dh895xcc_0000\:07\:00.0/fw_counters |
Intel QAT 加速卡可以对HTTPS的请求进行异步请求, 加快证书处理, 降低系统性能消耗。
nginx 作为代理, 可以代理HTTPS请求, 需要重新编译,支持QAT加速卡,这样才能将请求给QAT加速卡。
Intel QAT 加速卡安装在上一遍文章已经提到, 这里就不在说了, 可以查看之前文章。
intel qat 加速卡安装配置 : https://sukbeta.github.io/intel-qat/
Nginx QAT Instasll: https://01.org/sites/default/files/downloads//337020-003-qatwcontaineranddocker.pdf
nginx package
1 | cd /home |
nginx path ,, nginx 需要打的path文件
1 | cd /home |
QATzip , nginx 上的压缩
1 | cd /home |
开始干活
1 | cd /home |
1 | cd /home |
QATzip run test
1 | cd $QZ_ROOT/test/performance_tests |
1 | cd /home/nginx-1.18.0 |
vim conf/nginx.conf
1 | worker_processes 10; |
配置文件需要添加的很明确, 就不多说了。
run nginx server
1 | /home/nginx/sbin/nginx |
1 | cat /sys/kernel/debug/qat_dh895xcc_0000\:07\:00.0/fw_counters |
这个是QAT卡计数的, 当QAT卡处理请求时, 这里会变化的。
]]>Intel QAT 加速卡可以对HTTPS的请求进行异步请求, 加快证书处理, 降低系统性能消耗。
Haproxy 作为代理, 可以代理HTTPS请求, 需要重新编译,支持QAT加速卡,这样才能将请求给QAT加速卡。
Intel QAT 加速卡安装在上一遍文章已经提到, 这里就不在说了, 可以查看之前文章。
intel qat 加速卡安装配置 : https://sukbeta.github.io/intel-qat/
haproxy QAT Install: https://01.org/sites/default/files/downloads/621658-1.1-qat-debugging-guide.pdf
haproxy intel 测试配置: https://software.intel.com/content/www/cn/zh/develop/articles/accelerating-ssl-load-balancers-with-intel-xeon-v3-processors.html
1 | cd /home |
1 | cd haproxy-1.9.16 |
需要再配置文件中添加:
1 | ssl-engine qatengine algo ALL |
具体内容:
1 | global |
1 | cd /usr/local/haproxy/sbin |
1 | cat /sys/kernel/debug/qat_dh895xcc_0000\:07\:00.0/fw_counters |
这个是QAT卡计数的, 当QAT卡处理请求时, 这里会变化的。
]]> 英特尔 Quick Assist Technology (以下简称 QAT )是 英特尔 针对网络安全和数据存储 推出 的一个硬件 加速 技术。 QAT 支持对称数据加密算法(如AES)中的密码操作和验证操作运算和公钥非对称数据加密算法。
Intel QAT加速卡结合Intel其QAT_Engine测试性能的提升,其支持的异步模式对性能的提升很大
QAT 官网 : https://www.intel.cn/content/www/cn/zh/architecture-and-technology/intel-quick-assist-technology-overview.html
QAT卡说明:https://01.org/sites/default/files/downloads/intelr-quickassist-technology/intelquickassisttechnologyopensslperformance.pdf
QAT卡相关驱动、资料:https://01.org/intel-quickassist-technology
QAT驱动安装文档:https://01.org/sites/default/files/downloads//336212-intelrquickassisttechnology-gsg-revision008.pdf
QAT安装视频:https://software.intel.com/content/www/us/en/develop/videos/intel-quickassist-technology-openssl-1-1-x-qat-engine.html
性能对比:https://software.intel.com/content/www/cn/zh/develop/articles/improving-openssl-performance.html
1 | yum install epel-release.noarch |
1 | systemctl stop firewalld |
###安装驱动:
驱动下载地址: https://01.org/packet-processing/intel%C2%AE-quickassist-technology-drivers-and-patches
1 | cd /home |
查看服务
1 | /etc/init.d/qat_service status |
qat 用到的 openssl 的版本需要 1.1.0 之上的。
1 | wget https://www.openssl.org/source/openssl-1.1.1g.tar.gz |
统一在这里整理一份
1 | vim /etc/profile |
1 | cd /home |
1 | /usr/local/ssl/bin/openssl engine -t -c -vvvv qatengine |
系统正常跑
1 | /usr/local/ssl/bin/openssl speed -elapsed rsa2048 |
加速卡跑
1 | /usr/local/ssl/bin/openssl speed -engine qat_dev0 -elapsed rsa2048 |
1 | # Software 纯软 |
1 | # Software 纯软 |
QAT卡在工作的时候,计数会一直变化
1 | cat /sys/kernel/debug/qat_dh895xcc_0000\:07\:00.0/fw_counters |
QAT 默认配置文件 /etc/dh895xcc_dev0.conf
1 | ######################################################################### |
1 | /etc/init.d/qat_service restart |
版本:
IP | 主机名 | 备注 |
---|---|---|
192.168.5.100 | bigdata00.shining.com | k8s、etcd、rancher server |
192.168.5.101 | bigdata01.shining.com | k8s、etcd、rancher server |
192.168.5.103 | bigdata03.shining.com | k8s、etcd、rancher server |
192.168.5.237 | rancher.shining.com | nginx |
centos7 永久修改主机名,使用命令:
1 | hostnamectl set-hostname xxx |
Rancher Kubernetes Engine(RKE)是一款轻量级Kubernetes安装程序,支持在裸机和虚拟化服务器上安装Kubernetes。 RKE解决了Kubernettes社区中的一个常见问题,比如:安装复杂性。RKE支持多种平台运行,比如MacOS,linux,windows。
50.100 机器上安装
1、下载二进制文件
1 | https://github.com/rancher/rke/releases/latest |
现在稳定版本是 1.0.10
下载
1 | wget https://github.com/rancher/rke/releases/download/v1.0.10/rke_linux-amd64 |
kubectl是一个CLI命令行工具,用于运行Kubernetes集群的命令。Rancher 2.x中的许多维护和管理都需要它。
这里在5.100上安装kubectl:
kubectl 安装方式:
1 | wget https://storage.googleapis.com/kubernetes-release/release/v1.18.5/kubernetes-client-linux-amd64.tar.gz |
配置kubectl的shell补全
CentOS Linux上,您可能需要安装默认情况下未安装的bash-completion软件包。
1 | yum install bash-completion -y |
运行source <(kubectl completion bash)可将kubectl自动补全添加到当前shell,要使kubectl自动补全命令自动加载:
1 | echo "source <(kubectl completion bash)" >> ~/.bashrc |
退出,重新登录一下即可。
下面使用 RKE(Kubernetes Engine) 安装高可用的 Kubernetes。
rancher server 之间建立 ssh 信任
我们目前有三台服务器用作 local 集群,首先要确保我们主机能够通过 ssh 访问到另外两台主机并执行相关操作。
注意:使用rke安装kubernetes时,不能以root用户执行。必须是一个普通用户才行!!!
在5.100、5.101、5.103执行以下命令:
1 | useradd rancher |
在5.100、5.101、5.103执行以下命令:
使用root账号登录
1 | #将登陆用户rancher加入到docker用户组中 |
在5.100、5.101、5.103执行以下命令:
1 | 每台机器上的rancher用户都执行 |
编写 rancher-cluster.yml 文件
在5.100上执行
注意:以rancher用户执行。
1 | $ vi rancher-cluster.yml |
备注:
在5.100上执行
注意:以rancher用户执行。
1 | $ rke up --config ./rancher-cluster.yml |
以上输出,表示安装成功了。
执行成功会在当前目录生成2个文件,分别是rancher-cluster.rkestate和kube_config_rancher-cluster.yml
文件说明
1 | rancher-cluster.yml:RKE集群配置文件。 |
1 | WARN[0000] Failed to set up SSH tunneling for host [192.168.5.103]: Can't retrieve Docker Info: error during connect: Get http://%2Fvar%2Frun%2Fdocker.sock/v1.24/info: Unable to access node with address [10.212.20.97:22] using SSH. Please check if you are able to SSH to the node using the specified SSH Private Key and if you have configured the correct SSH username. Error: ssh: handshake failed: ssh: unable to authenticate, attempted methods [none publickey], no supported methods remain |
ssh信任没有做好,请确保是普通用户执行rke。不能是root用户
1 | Failed to get job complete status for job rke-network-plugin-deploy-job in namespace kube-system |
重新执行一遍 rke_linux-amd64 up –config ./rancher-cluster.yml即可。
docker 和系统代理 (如果需要代理上网的话, docker需要拉取镜像,本机也需要出去下载yaml文件)
1 | vim /etc/systemd/system/docker.service.d//http-proxy.conf |
在5.100上执行
注意:以rancher用户执行。
1 | mkdir ~/.kube |
查看node
1 | $ kubectl get node |
如果需要root用户执行kubectl,切换到root用户,执行以下命令
1 | mkdir ~/.kube |
查看 k8s pod
1 | $ kubectl get pods -A |
Helm是Kubernetes首选的包管理工具。Helmcharts为Kubernetes YAML清单文档提供模板语法。使用Helm,可以创建可配置的部署,而不仅仅是使用静态文件。Helm有两个部分:Helm客户端(helm)和Helm服务端(Tiller)。
在5.100上执行,下面提到的所有命令,都可以在root用户执行了。
1 | kubectl -n kube-system create serviceaccount tiller |
备注:在kube-system命名空间中创建ServiceAccount;创建ClusterRoleBinding以授予tiller帐户对集群的访问权限;helm初始化tiller服务
1 | wget https://get.helm.sh/helm-v2.16.6-linux-amd64.tar.gz |
安装Helm服务端(Tiller)
1 | helm_version=`helm version |grep Client | awk -F""\" '{print $2}'` |
备注:
1、RKE默认启用RBAC,所以在安装tiller时需要指定ServiceAccount。
2、helm init在缺省配置下,会去谷歌镜像仓库拉取gcr.io/kubernetes-helm/tiller镜像,在Kubernetes集群上安装配置Tiller;由于在国内可能无法访问gcr.io、storage.googleapis.com等域名,可以通过–tiller-image指定私有镜像仓库镜像。
3、helm init在缺省配置下,会利用https://kubernetes-charts.storage.googleapis.com作为缺省的stable repository地址,并去更新相关索引文件。在国内可能无法访问storage.googleapis.com地址, 可以通过–stable-repo-url指定chart国内加速镜像地址。
4、如果您是离线安装Tiller, 假如没有内部的chart仓库, 可通过添加–skip-refresh参数禁止Tiller更新索引。
1 | helm status |
image 没有下来的话, 可以改为其他镜像地址
1 | helm init --service-account tiller --skip-refresh --tiller-image jessestuart/tiller:$helm_version --upgrade |
如果没起来。可以
1 | helm init --upgrade |
如果报错信息:
1 | This command needs 1 argument: chart name |
那么需要添加 –name 参数 : 如
1 | helm init --service-account --name tiller |
添加Chart仓库地址
1 | helm repo add rancher-stable \ |
1 | 配置SSL |
仅在使用 Rancher 生成的证书 ingress.tls.source=rancher 或 Let’s Encrypt 颁发的证书 ingress.tls.source=letsEncrypt时才需要 cert-manager。
这些说明来自官方的 cert-manager 文档。
1 | # 安装 CustomResourceDefinition 资源 |
安装完 cert-manager 后,您可以通过检查 cert-manager 命名空间中正在运行的 Pod 来验证它是否已正确部署:
1 | $ kubectl get pods --namespace cert-manager |
1 | helm install rancher-stable/rancher --name rancher --namespace cattle-system --set hostname=rancher.shining.com --set ingress.tls.source=rancher |
注意:这里指定了hostname=rancher.shining.com,必须使用域名访问才行。
查看rancher 运行状况:
1 | kubectl get pods --namespace cattle-system |
可以临时配置域名解析,或hosts方式访问,后期可以配置到DNS中 , agent添加到server中都需要这个域名。
编辑主机 hosts
1 | 192.168.5.100 rancher.shining.com |
注释,5.100、5.101、5.103 指向任何一台机器都可以访问。
访问页面:
1 | https://rancher.shining.com |
页面提示设置密码,rangcher就配置好了。
nginx是作为前端访问的代理地址, 祈祷负载作用。agent 也会通过这么域名访问到server的
5.237 机器上配置 nginx。
添加repo 源
1 | vim /etc/yum.repos.d/nginx.repo |
安装
1 | yum install -y nginx |
修改配置文件: vim /etc/nginx/nginx.conf
1 | user nginx; |
启动nginx
1 | systemctl start nginx |
以后域名地址解析到 5.237 机器上就可以访问了。当然nginx也可以安装到集群中,或其他负载方式。
1、执行以下命令为Rancher Server容器配置hosts:
1 | [rancher@5.100 ~]$ kubectl -n cattle-system patch deployments rancher --patch '{ |
2、在Rancher Web UI中依次进入local集群/system项目,在cattle-system命名空间中查看是否有cattle-cluster-agent Pod和cattle-node-agent pod被创建。如果有创建则进行下面的步骤,没有创建则等待;
cattle-cluster-agent pod
1 | [rancher@5.100 ~]$ kubectl -n cattle-system \ |
cattle-node-agent pod
1 | [rancher@node1 ~]$ kubectl -n cattle-system \ |
rancher 官网: https://rancher2.docs.rancher.cn/docs/installation/k8s-install/helm-rancher/_index
腾讯云文档 : https://cloud.tencent.com/developer/article/1638170
但是这样如果容器有问题,或想查看一些信息,如网络信息、文件内容、抓包等。这样就没办法做到了。
下面说一种方法,容器共享进程、网络资源,可以用用 –pid、–ipc、–net 等参数
这样就可以查看容器的进程信息、网络、文件等事情了。
首先,运行一个容器:
1 | docker run -d -p 7080:80 nginx:latest |
运行一个nginx容器,
直接用 docker exec 进到容器里的时候, 是不能用iptables、ps、vim等命令的。
获取容器ID
1 | docker ps |
1 | CID=b99f5509819c |
CID 是容器 ID, 后面都用 $CID 来代替
这样,容器的网络、磁盘、进程都和你启动这个容器共享了,所以就可以实时查看nginx容器里的信息。
运行ps 就可以看到nginx的进程了
1 | / # ps |
运行tcpdump 就可以实时抓包了
1 | / # tcpdump -XX -A |
但是这个时候运行 iptables 还是不行的, 提示没有权限
1 | / # iptables -n -L |
1 | docker run -it --privileged --net=container:$CID --ipc=container:$CID --pid=container:$CID alpine-tools:latest |
运行 iptables 命令 (返回结果类似于这样)
1 | # iptables -t nat -nL |
如果你的容器是 -v 挂载volume 启动的话
容器启动:
1 | docker run -d -p 7080:80 nginx:latest |
1 | docker run -it --privileged --net=container:$CID --ipc=container:$CID --pid=container:$CID --volumes-from $CID:ro alpine-tools:latest |
这样就可以查看 volume 里的数据了,
1 | docker run --volumes-from $CID -v $(pwd):/backup alpine-tools:latest tar cvf /backup/backup.tar /home |
另外 还有其他方式可以查看容器的方式,简单介绍一下。
nsenter 需要做的容器里的进程 PID 的,
1 | PID=$(docker inspect --format '{{.State.Pid}}' $CID) |
这样就可以进图到容器里了。
这样的你程序镜像就不用安装一下系统工具的软件包了。 有问题可以用这一种容器共享的方式来排查了。
]]>1、在 /etc/sysconfig/docker 文件中添加以下配置:
1 | export HTTP_PROXY="http://USERNAME:PASSWORD@[your.proxy.server]:[port]" |
For example :
1 | # cat /etc/sysconfig/docker |
2、设置代理后,重新启动Docker守护程序。
1 | # service docker restart |
1、创建目录(如果没有)
1 | # mkdir /etc/systemd/system/docker.service.d |
2、编辑一个peoxy的配置文件 /etc/systemd/system/docker.service.d/http-proxy.conf ,添加内容为
1 | # vim /etc/systemd/system/docker.service.d/http-proxy.conf |
3、重新加载systemd守护程序
1 | # systemctl daemon-reload |
4、重启docker
1 | # systemctl restart docker |
5、验证配置是否已加载:
1 | # systemctl show docker --property Environment |
这样配置完成之后在 docker pull 镜像就可以了
hbase 版本: 1.2.4
####n首先 关闭 hbase 的 balance
1 | hbase(main)> balance_switch false |
1 | hbase-daemon.sh start regionserver |
到新的region server上执行 下面命令。
使用hbase自带的rb脚本,在hbase bin目录下面
unload:转移rs上的region;load:将所有region转移到此rs1
hbase org.jruby.Main ${HBASE_HOME}/bin/region_mover.rb unload regionserver00.hostname.com
等待任务完成。
1 | hbase-daemon.sh stop regionserver |
1 | hbase(main)> balance_switch true |
这样就完成了数据迁移。 之后需要的就是更新同步hbase 配置文件中的regionservers 文件。
]]>这样的启动方式适合与一些监控程序,跟着机器一起启动,出问题也会自动重启。
例如:
1 | docker run -d --restart=always nginx:latest |
如果这个时候我们不要这个容器了, 应该怎么停止呢?
我们需要更新 restart 的状态。
例如:
1 | docker update --restart=no nginx:latest |
这样之后, 这个容器就不会在自动启动了。
]]>可以用opensll命令得到加密套件,如
1 | openssl ciphers [-v] [-ssl2] [-ssl3] [-tls1] [cipherlist] |
-v:详细列出所有加密套件。包括ssl版本(SSLv2 、SSLv3以及 TLS)、密钥交换算法、身份验证算法、对称算法、摘要算法以及该算法是否可以出口。
-ssl2:只列出SSLv2使用的加密套件。
-tls1:只列出tls使用的加密套件。
cipherlist:列出一个cipher list的详细内容。用此项能列出所有符合规则的加密套件,如果不加-v选项,它只显示各个套件名字;
列举OpenSSL算法套件包括NULL算法:
1 | openssl ciphers -v 'ALL:eNULL' |
包括所有的算法除空的以及匿名的DH算法:
1 | openssl ciphers -v 'ALL:!ADH:@STRENGTH' |
包含3DES算法和RSA算法:
1 | openssl ciphers -v '3DES:+RSA' |
包含所有的RC4算法但是不包含验证算法:
1 | openssl ciphers -v 'RC4:!COMPLEMENTOFDEFAUL |
相关链接 https://blog.csdn.net/as3luyuan123/article/details/13609819
List
相关链接 : https://testssl.sh/openssl-iana.mapping.html
Cipher Suite | Name (OpenSSL) | KeyExch. | Encryption | Bits | Cipher Suite Name (IANA) |
---|---|---|---|---|---|
[0x00] | None | Null | 0 | TLS_NULL_WITH_NULL_NULL | |
[0x01] | NULL-MD5 | RSA | Null | 0 | TLS_RSA_WITH_NULL_MD5 |
[0x02] | NULL-SHA | RSA | Null | 0 | TLS_RSA_WITH_NULL_SHA |
[0x03] | EXP-RC4-MD5 | RSA(512) | RC4 | 40, export | TLS_RSA_EXPORT_WITH_RC4_40_MD5 |
[0x04] | RC4-MD5 | RSA | RC4 | 128 | TLS_RSA_WITH_RC4_128_MD5 |
[0x05] | RC4-SHA | RSA | RC4 | 128 | TLS_RSA_WITH_RC4_128_SHA |
[0x06] | EXP-RC2-CBC-MD5 | RSA(512) | RC2 | 40, export | TLS_RSA_EXPORT_WITH_RC2_CBC_40_MD5 |
[0x07] | IDEA-CBC-SHA | RSA | IDEA | 128 | TLS_RSA_WITH_IDEA_CBC_SHA |
[0x08] | EXP-DES-CBC-SHA | RSA(512) | DES | 40, export | TLS_RSA_EXPORT_WITH_DES40_CBC_SHA |
[0x09] | DES-CBC-SHA | RSA | DES | 56 | TLS_RSA_WITH_DES_CBC_SHA |
[0x0a] | DES-CBC3-SHA | RSA | 3DES | 168 | TLS_RSA_WITH_3DES_EDE_CBC_SHA |
[0x0b] | EXP-DH-DSS-DES-CBC-SHA | DH/DSS | DES | 40, export | TLS_DH_DSS_EXPORT_WITH_DES40_CBC_SHA |
[0x0c] | DH-DSS-DES-CBC-SHA | DH/DSS | DES | 56 | TLS_DH_DSS_WITH_DES_CBC_SHA |
[0x0d] | DH-DSS-DES-CBC3-SHA | DH/DSS | 3DES | 168 | TLS_DH_DSS_WITH_3DES_EDE_CBC_SHA |
[0x0e] | EXP-DH-RSA-DES-CBC-SHA | DH/RSA | DES | 40, export | TLS_DH_RSA_EXPORT_WITH_DES40_CBC_SHA |
[0x0f] | DH-RSA-DES-CBC-SHA | DH/RSA | DES | 56 | TLS_DH_RSA_WITH_DES_CBC_SHA |
[0x10] | DH-RSA-DES-CBC3-SHA | DH/RSA | 3DES | 168 | TLS_DH_RSA_WITH_3DES_EDE_CBC_SHA |
[0x11] | EXP-EDH-DSS-DES-CBC-SHA | DH(512) | DES | 40, export | TLS_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA |
[0x12] | EDH-DSS-DES-CBC-SHA | DH | DES | 56 | TLS_DHE_DSS_WITH_DES_CBC_SHA |
[0x13] | EDH-DSS-DES-CBC3-SHA | DH | 3DES | 168 | TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA |
[0x14] | EXP-EDH-RSA-DES-CBC-SHA | DH(512) | DES | 40, export | TLS_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA |
[0x15] | EDH-RSA-DES-CBC-SHA | DH | DES | 56 | TLS_DHE_RSA_WITH_DES_CBC_SHA |
[0x16] | EDH-RSA-DES-CBC3-SHA | DH | 3DES | 168 | TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA |
[0x17] | EXP-ADH-RC4-MD5 | DH(512) | RC4 | 40, export | TLS_DH_anon_EXPORT_WITH_RC4_40_MD5 |
[0x18] | ADH-RC4-MD5 | DH | RC4 | 128 | TLS_DH_anon_WITH_RC4_128_MD5 |
[0x19] | EXP-ADH-DES-CBC-SHA | DH(512) | DES | 40, export | TLS_DH_anon_EXPORT_WITH_DES40_CBC_SHA |
[0x1a] | ADH-DES-CBC-SHA | DH | DES | 56 | TLS_DH_anon_WITH_DES_CBC_SHA |
[0x1b] | ADH-DES-CBC3-SHA | DH | 3DES | 168 | TLS_DH_anon_WITH_3DES_EDE_CBC_SHA |
[0x1c] | FORTEZZA | Null | 0 | SSL_FORTEZZA_KEA_WITH_NULL_SHA | |
[0x1d] | FORTEZZA | FORTEZZA_CBC | 80 | SSL_FORTEZZA_KEA_WITH_FORTEZZA_CBC_SHA | |
[0x1e] | FORTEZZA | FORTEZZA_RC4 | 128 | SSL_FORTEZZA_KEA_WITH_RC4_128_SHA | |
[0x1e] | KRB5-DES-CBC-SHA | KRB5 | DES | 56 | TLS_KRB5_WITH_DES_CBC_SHA |
[0x1f] | KRB5-DES-CBC3-SHA | KRB5 | 3DES | 168 | TLS_KRB5_WITH_3DES_EDE_CBC_SHA |
[0x20] | KRB5-RC4-SHA | KRB5 | RC4 | 128 | TLS_KRB5_WITH_RC4_128_SHA |
[0x21] | KRB5-IDEA-CBC-SHA | KRB5 | IDEA | 128 | TLS_KRB5_WITH_IDEA_CBC_SHA |
[0x22] | KRB5-DES-CBC-MD5 | KRB5 | DES | 56 | TLS_KRB5_WITH_DES_CBC_MD5 |
[0x23] | KRB5-DES-CBC3-MD5 | KRB5 | 3DES | 168 | TLS_KRB5_WITH_3DES_EDE_CBC_MD5 |
[0x24] | KRB5-RC4-MD5 | KRB5 | RC4 | 128 | TLS_KRB5_WITH_RC4_128_MD5 |
[0x25] | KRB5-IDEA-CBC-MD5 | KRB5 | IDEA | 128 | TLS_KRB5_WITH_IDEA_CBC_MD5 |
[0x26] | EXP-KRB5-DES-CBC-SHA | KRB5 | DES | 40, export | TLS_KRB5_EXPORT_WITH_DES_CBC_40_SHA |
[0x27] | EXP-KRB5-RC2-CBC-SHA | KRB5 | RC2 | 40, export | TLS_KRB5_EXPORT_WITH_RC2_CBC_40_SHA |
[0x28] | EXP-KRB5-RC4-SHA | KRB5 | RC4 | 40, export | TLS_KRB5_EXPORT_WITH_RC4_40_SHA |
[0x29] | EXP-KRB5-DES-CBC-MD5 | KRB5 | DES | 40, export | TLS_KRB5_EXPORT_WITH_DES_CBC_40_MD5 |
[0x2a] | EXP-KRB5-RC2-CBC-MD5 | KRB5 | RC2 | 40, export | TLS_KRB5_EXPORT_WITH_RC2_CBC_40_MD5 |
[0x2b] | EXP-KRB5-RC4-MD5 | KRB5 | RC4 | 40, export | TLS_KRB5_EXPORT_WITH_RC4_40_MD5 |
[0x2c] | PSK-NULL-SHA | PSK | Null | 0 | TLS_PSK_WITH_NULL_SHA |
[0x2d] | DHE-PSK-NULL-SHA | DH/PSK | Null | 0 | TLS_DHE_PSK_WITH_NULL_SHA |
[0x2e] | RSA-PSK-NULL-SHA | RSA/PSK | Null | 0 | TLS_RSA_PSK_WITH_NULL_SHA |
[0x2f] | AES128-SHA | RSA | AES | 128 | TLS_RSA_WITH_AES_128_CBC_SHA |
[0x30] | DH-DSS-AES128-SHA | DH/DSS | AES | 128 | TLS_DH_DSS_WITH_AES_128_CBC_SHA |
[0x31] | DH-RSA-AES128-SHA | DH/RSA | AES | 128 | TLS_DH_RSA_WITH_AES_128_CBC_SHA |
[0x32] | DHE-DSS-AES128-SHA | DH | AES | 128 | TLS_DHE_DSS_WITH_AES_128_CBC_SHA |
[0x33] | DHE-RSA-AES128-SHA | DH | AES | 128 | TLS_DHE_RSA_WITH_AES_128_CBC_SHA |
[0x34] | ADH-AES128-SHA | DH | AES | 128 | TLS_DH_anon_WITH_AES_128_CBC_SHA |
[0x35] | AES256-SHA | RSA | AES | 256 | TLS_RSA_WITH_AES_256_CBC_SHA |
[0x36] | DH-DSS-AES256-SHA | DH/DSS | AES | 256 | TLS_DH_DSS_WITH_AES_256_CBC_SHA |
[0x37] | DH-RSA-AES256-SHA | DH/RSA | AES | 256 | TLS_DH_RSA_WITH_AES_256_CBC_SHA |
[0x38] | DHE-DSS-AES256-SHA | DH | AES | 256 | TLS_DHE_DSS_WITH_AES_256_CBC_SHA |
[0x39] | DHE-RSA-AES256-SHA | DH | AES | 256 | TLS_DHE_RSA_WITH_AES_256_CBC_SHA |
[0x3a] | ADH-AES256-SHA | DH | AES | 256 | TLS_DH_anon_WITH_AES_256_CBC_SHA |
[0x3b] | NULL-SHA256 | RSA | Null | 0 | TLS_RSA_WITH_NULL_SHA256 |
[0x3c] | AES128-SHA256 | RSA | AES | 128 | TLS_RSA_WITH_AES_128_CBC_SHA256 |
[0x3d] | AES256-SHA256 | RSA | AES | 256 | TLS_RSA_WITH_AES_256_CBC_SHA256 |
[0x3e] | DH-DSS-AES128-SHA256 | DH/DSS | AES | 128 | TLS_DH_DSS_WITH_AES_128_CBC_SHA256 |
[0x3f] | DH-RSA-AES128-SHA256 | DH/RSA | AES | 128 | TLS_DH_RSA_WITH_AES_128_CBC_SHA256 |
[0x40] | DHE-DSS-AES128-SHA256 | DH | AES | 128 | TLS_DHE_DSS_WITH_AES_128_CBC_SHA256 |
[0x41] | CAMELLIA128-SHA | RSA | Camellia | 128 | TLS_RSA_WITH_CAMELLIA_128_CBC_SHA |
[0x42] | DH-DSS-CAMELLIA128-SHA | DH/DSS | Camellia | 128 | TLS_DH_DSS_WITH_CAMELLIA_128_CBC_SHA |
[0x43] | DH-RSA-CAMELLIA128-SHA | DH/RSA | Camellia | 128 | TLS_DH_RSA_WITH_CAMELLIA_128_CBC_SHA |
[0x44] | DHE-DSS-CAMELLIA128-SHA | DH | Camellia | 128 | TLS_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA |
[0x45] | DHE-RSA-CAMELLIA128-SHA | DH | Camellia | 128 | TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA |
[0x46] | ADH-CAMELLIA128-SHA | DH | Camellia | 128 | TLS_DH_anon_WITH_CAMELLIA_128_CBC_SHA |
[0x60] | EXP1024-RC4-MD5 | RSA(1024) | RC4 | 56, export | TLS_RSA_EXPORT1024_WITH_RC4_56_MD5 |
[0x61] | EXP1024-RC2-CBC-MD5 | RSA(1024) | RC2 | 56, export | TLS_RSA_EXPORT1024_WITH_RC2_CBC_56_MD5 |
[0x62] | EXP1024-DES-CBC-SHA | RSA(1024) | DES | 56, export | TLS_RSA_EXPORT1024_WITH_DES_CBC_SHA |
[0x63] | EXP1024-DHE-DSS-DES-CBC-SHA | DH(1024) | DES | 56, export | TLS_DHE_DSS_EXPORT1024_WITH_DES_CBC_SHA |
[0x64] | EXP1024-RC4-SHA | RSA(1024) | RC4 | 56, export | TLS_RSA_EXPORT1024_WITH_RC4_56_SHA |
[0x65] | EXP1024-DHE-DSS-RC4-SHA | DH(1024) | RC4 | 56, export | TLS_DHE_DSS_EXPORT1024_WITH_RC4_56_SHA |
[0x66] | DHE-DSS-RC4-SHA | DH | RC4 | 128 | TLS_DHE_DSS_WITH_RC4_128_SHA |
[0x67] | DHE-RSA-AES128-SHA256 | DH | AES | 128 | TLS_DHE_RSA_WITH_AES_128_CBC_SHA256 |
[0x68] | DH-DSS-AES256-SHA256 | DH/DSS | AES | 256 | TLS_DH_DSS_WITH_AES_256_CBC_SHA256 |
[0x69] | DH-RSA-AES256-SHA256 | DH/RSA | AES | 256 | TLS_DH_RSA_WITH_AES_256_CBC_SHA256 |
[0x6a] | DHE-DSS-AES256-SHA256 | DH | AES | 256 | TLS_DHE_DSS_WITH_AES_256_CBC_SHA256 |
[0x6b] | DHE-RSA-AES256-SHA256 | DH | AES | 256 | TLS_DHE_RSA_WITH_AES_256_CBC_SHA256 |
[0x6c] | ADH-AES128-SHA256 | DH | AES | 128 | TLS_DH_anon_WITH_AES_128_CBC_SHA256 |
[0x6d] | ADH-AES256-SHA256 | DH | AES | 256 | TLS_DH_anon_WITH_AES_256_CBC_SHA256 |
[0x80] | GOST94-GOST89-GOST89 | VKO GOST 34.10-94 | GOST89 | 256 | TLS_GOSTR341094_WITH_28147_CNT_IMIT |
[0x81] | GOST2001-GOST89-GOST89 | VKO GOST 34.10-2001 | GOST89 | 256 | TLS_GOSTR341001_WITH_28147_CNT_IMIT |
[0x82] | GOST94-NULL-GOST94 | VKO GOST 34.10-94 | Null | 0 | TLS_GOSTR341001_WITH_NULL_GOSTR3411 |
[0x83] | GOST2001-GOST89-GOST89 | VKO GOST 34.10-2001 | Null | 0 | TLS_GOSTR341094_WITH_NULL_GOSTR3411 |
[0x84] | CAMELLIA256-SHA | RSA | Camellia | 256 | TLS_RSA_WITH_CAMELLIA_256_CBC_SHA |
[0x85] | DH-DSS-CAMELLIA256-SHA | DH/DSS | Camellia | 256 | TLS_DH_DSS_WITH_CAMELLIA_256_CBC_SHA |
[0x86] | DH-RSA-CAMELLIA256-SHA | DH/RSA | Camellia | 256 | TLS_DH_RSA_WITH_CAMELLIA_256_CBC_SHA |
[0x87] | DHE-DSS-CAMELLIA256-SHA | DH | Camellia | 256 | TLS_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA |
[0x88] | DHE-RSA-CAMELLIA256-SHA | DH | Camellia | 256 | TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA |
[0x89] | ADH-CAMELLIA256-SHA | DH | Camellia | 256 | TLS_DH_anon_WITH_CAMELLIA_256_CBC_SHA |
[0x8a] | PSK-RC4-SHA | PSK | RC4 | 128 | TLS_PSK_WITH_RC4_128_SHA |
[0x8b] | PSK-3DES-EDE-CBC-SHA | PSK | 3DES | 168 | TLS_PSK_WITH_3DES_EDE_CBC_SHA |
[0x8c] | PSK-AES128-CBC-SHA | PSK | AES | 128 | TLS_PSK_WITH_AES_128_CBC_SHA |
[0x8d] | PSK-AES256-CBC-SHA | PSK | AES | 256 | TLS_PSK_WITH_AES_256_CBC_SHA |
[0x8e] | PSK/DHE | RC4 | 128 | TLS_DHE_PSK_WITH_RC4_128_SHA | |
[0x8f] | PSK/DHE | 3DES | 168 | TLS_DHE_PSK_WITH_3DES_EDE_CBC_SHA | |
[0x90] | PSK/DHE | AES | 128 | TLS_DHE_PSK_WITH_AES_128_CBC_SHA | |
[0x91] | PSK/DHE | AES | 256 | TLS_DHE_PSK_WITH_AES_256_CBC_SHA | |
[0x92] | PSK/RSA | RC4 | 128 | TLS_RSA_PSK_WITH_RC4_128_SHA | |
[0x93] | PSK/RSA | 3DES | 168 | TLS_RSA_PSK_WITH_3DES_EDE_CBC_SHA | |
[0x94] | PSK/RSA | AES | 128 | TLS_RSA_PSK_WITH_AES_128_CBC_SHA | |
[0x95] | PSK/RSA | AES | 256 | TLS_RSA_PSK_WITH_AES_256_CBC_SHA | |
[0x96] | SEED-SHA | RSA | SEED | 128 | TLS_RSA_WITH_SEED_CBC_SHA |
[0x97] | DH-DSS-SEED-SHA | DH/DSS | SEED | 128 | TLS_DH_DSS_WITH_SEED_CBC_SHA |
[0x98] | DH-RSA-SEED-SHA | DH/RSA | SEED | 128 | TLS_DH_RSA_WITH_SEED_CBC_SHA |
[0x99] | DHE-DSS-SEED-SHA | DH | SEED | 128 | TLS_DHE_DSS_WITH_SEED_CBC_SHA |
[0x9a] | DHE-RSA-SEED-SHA | DH | SEED | 128 | TLS_DHE_RSA_WITH_SEED_CBC_SHA |
[0x9b] | ADH-SEED-SHA | DH | SEED | 128 | TLS_DH_anon_WITH_SEED_CBC_SHA |
[0x9c] | AES128-GCM-SHA256 | RSA | AESGCM | 128 | TLS_RSA_WITH_AES_128_GCM_SHA256 |
[0x9d] | AES256-GCM-SHA384 | RSA | AESGCM | 256 | TLS_RSA_WITH_AES_256_GCM_SHA384 |
[0x9e] | DHE-RSA-AES128-GCM-SHA256 | DH | AESGCM | 128 | TLS_DHE_RSA_WITH_AES_128_GCM_SHA256 |
[0x9f] | DHE-RSA-AES256-GCM-SHA384 | DH | AESGCM | 256 | TLS_DHE_RSA_WITH_AES_256_GCM_SHA384 |
[0xa0] | DH-RSA-AES128-GCM-SHA256 | DH/RSA | AESGCM | 128 | TLS_DH_RSA_WITH_AES_128_GCM_SHA256 |
[0xa1] | DH-RSA-AES256-GCM-SHA384 | DH/RSA | AESGCM | 256 | TLS_DH_RSA_WITH_AES_256_GCM_SHA384 |
[0xa2] | DHE-DSS-AES128-GCM-SHA256 | DH | AESGCM | 128 | TLS_DHE_DSS_WITH_AES_128_GCM_SHA256 |
[0xa3] | DHE-DSS-AES256-GCM-SHA384 | DH | AESGCM | 256 | TLS_DHE_DSS_WITH_AES_256_GCM_SHA384 |
[0xa4] | DH-DSS-AES128-GCM-SHA256 | DH/DSS | AESGCM | 128 | TLS_DH_DSS_WITH_AES_128_GCM_SHA256 |
[0xa5] | DH-DSS-AES256-GCM-SHA384 | DH/DSS | AESGCM | 256 | TLS_DH_DSS_WITH_AES_256_GCM_SHA384 |
[0xa6] | ADH-AES128-GCM-SHA256 | DH | AESGCM | 128 | TLS_DH_anon_WITH_AES_128_GCM_SHA256 |
[0xa7] | ADH-AES256-GCM-SHA384 | DH | AESGCM | 256 | TLS_DH_anon_WITH_AES_256_GCM_SHA384 |
[0xba] | CAMELLIA128-SHA256 | RSA | Camellia | 128 | TLS_RSA_WITH_CAMELLIA_128_CBC_SHA256 |
[0xbb] | DH-DSS-CAMELLIA128-SHA256 | DH/DSS | Camellia | 128 | TLS_DH_DSS_WITH_CAMELLIA_128_CBC_SHA256 |
[0xbc] | DH-RSA-CAMELLIA128-SHA256 | DH/RSA | Camellia | 128 | TLS_DH_RSA_WITH_CAMELLIA_128_CBC_SHA256 |
[0xbd] | DHE-DSS-CAMELLIA128-SHA256 | DH | Camellia | 128 | TLS_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA256 |
[0xbe] | DHE-RSA-CAMELLIA128-SHA256 | DH | Camellia | 128 | TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA256 |
[0xbf] | ADH-CAMELLIA128-SHA256 | DH | Camellia | 128 | TLS_DH_anon_WITH_CAMELLIA_128_CBC_SHA256 |
[0x5600] | TLS_FALLBACK_SCSV | TLS_EMPTY_RENEGOTIATION_INFO_SCSV | |||
[0x1301] | TLS_AES_128_GCM_SHA256 | ECDH | AESGCM | 128 | TLS_AES_128_GCM_SHA256 |
[0x1302] | TLS_AES_256_GCM_SHA384 | ECDH | AESGCM | 256 | TLS_AES_256_GCM_SHA384 |
[0x1303] | TLS_CHACHA20_POLY1305_SHA256 | ECDH | ChaCha20-Poly1305 | 256 | TLS_CHACHA20_POLY1305_SHA256 |
[0x1304] | TLS_AES_128_CCM_SHA256 | ECDH | AESCCM | 128 | TLS_AES_128_CCM_SHA256 |
[0x1305] | TLS_AES_128_CCM_8_SHA256 | ECDH | AESCCM8 | 128 | TLS_AES_128_CCM_8_SHA256 |
[0xc001] | ECDH-ECDSA-NULL-SHA | ECDH/ECDSA | Null | 0 | TLS_ECDH_ECDSA_WITH_NULL_SHA |
[0xc002] | ECDH-ECDSA-RC4-SHA | ECDH/ECDSA | RC4 | 128 | TLS_ECDH_ECDSA_WITH_RC4_128_SHA |
[0xc003] | ECDH-ECDSA-DES-CBC3-SHA | ECDH/ECDSA | 3DES | 168 | TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA |
[0xc004] | ECDH-ECDSA-AES128-SHA | ECDH/ECDSA | AES | 128 | TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA |
[0xc005] | ECDH-ECDSA-AES256-SHA | ECDH/ECDSA | AES | 256 | TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA |
[0xc006] | ECDHE-ECDSA-NULL-SHA | ECDH | Null | 0 | TLS_ECDHE_ECDSA_WITH_NULL_SHA |
[0xc007] | ECDHE-ECDSA-RC4-SHA | ECDH | RC4 | 128 | TLS_ECDHE_ECDSA_WITH_RC4_128_SHA |
[0xc008] | ECDHE-ECDSA-DES-CBC3-SHA | ECDH | 3DES | 168 | TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA |
[0xc009] | ECDHE-ECDSA-AES128-SHA | ECDH | AES | 128 | TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA |
[0xc00a] | ECDHE-ECDSA-AES256-SHA | ECDH | AES | 256 | TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA |
[0xc00b] | ECDH-RSA-NULL-SHA | ECDH/RSA | Null | 0 | TLS_ECDH_RSA_WITH_NULL_SHA |
[0xc00c] | ECDH-RSA-RC4-SHA | ECDH/RSA | RC4 | 128 | TLS_ECDH_RSA_WITH_RC4_128_SHA |
[0xc00d] | ECDH-RSA-DES-CBC3-SHA | ECDH/RSA | 3DES | 168 | TLS_ECDH_RSA_WITH_3DES_EDE_CBC_SHA |
[0xc00e] | ECDH-RSA-AES128-SHA | ECDH/RSA | AES | 128 | TLS_ECDH_RSA_WITH_AES_128_CBC_SHA |
[0xc00f] | ECDH-RSA-AES256-SHA | ECDH/RSA | AES | 256 | TLS_ECDH_RSA_WITH_AES_256_CBC_SHA |
[0xc010] | ECDHE-RSA-NULL-SHA | ECDH | Null | 0 | TLS_ECDHE_RSA_WITH_NULL_SHA |
[0xc011] | ECDHE-RSA-RC4-SHA | ECDH | RC4 | 128 | TLS_ECDHE_RSA_WITH_RC4_128_SHA |
[0xc012] | ECDHE-RSA-DES-CBC3-SHA | ECDH | 3DES | 168 | TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA |
[0xc013] | ECDHE-RSA-AES128-SHA | ECDH | AES | 128 | TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA |
[0xc014] | ECDHE-RSA-AES256-SHA | ECDH | AES | 256 | TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA |
[0xc015] | AECDH-NULL-SHA | ECDH | Null | 0 | TLS_ECDH_anon_WITH_NULL_SHA |
[0xc016] | AECDH-RC4-SHA | ECDH | RC4 | 128 | TLS_ECDH_anon_WITH_RC4_128_SHA |
[0xc017] | AECDH-DES-CBC3-SHA | ECDH | 3DES | 168 | TLS_ECDH_anon_WITH_3DES_EDE_CBC_SHA |
[0xc018] | AECDH-AES128-SHA | ECDH | AES | 128 | TLS_ECDH_anon_WITH_AES_128_CBC_SHA |
[0xc019] | AECDH-AES256-SHA | ECDH | AES | 256 | TLS_ECDH_anon_WITH_AES_256_CBC_SHA |
[0xc01a] | SRP-3DES-EDE-CBC-SHA | SRP | 3DES | 168 | TLS_SRP_SHA_WITH_3DES_EDE_CBC_SHA |
[0xc01b] | SRP-RSA-3DES-EDE-CBC-SHA | SRP | 3DES | 168 | TLS_SRP_SHA_RSA_WITH_3DES_EDE_CBC_SHA |
[0xc01c] | SRP-DSS-3DES-EDE-CBC-SHA | SRP | 3DES | 168 | TLS_SRP_SHA_DSS_WITH_3DES_EDE_CBC_SHA |
[0xc01d] | SRP-AES-128-CBC-SHA | SRP | AES | 128 | TLS_SRP_SHA_WITH_AES_128_CBC_SHA |
[0xc01e] | SRP-RSA-AES-128-CBC-SHA | SRP | AES | 128 | TLS_SRP_SHA_RSA_WITH_AES_128_CBC_SHA |
[0xc01f] | SRP-DSS-AES-128-CBC-SHA | SRP | AES | 128 | TLS_SRP_SHA_DSS_WITH_AES_128_CBC_SHA |
[0xc020] | SRP-AES-256-CBC-SHA | SRP | AES | 256 | TLS_SRP_SHA_WITH_AES_256_CBC_SHA |
[0xc021] | SRP-RSA-AES-256-CBC-SHA | SRP | AES | 256 | TLS_SRP_SHA_RSA_WITH_AES_256_CBC_SHA |
[0xc022] | SRP-DSS-AES-256-CBC-SHA | SRP | AES | 256 | TLS_SRP_SHA_DSS_WITH_AES_256_CBC_SHA |
[0xc023] | ECDHE-ECDSA-AES128-SHA256 | ECDH | AES | 128 | TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256 |
[0xc024] | ECDHE-ECDSA-AES256-SHA384 | ECDH | AES | 256 | TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384 |
[0xc025] | ECDH-ECDSA-AES128-SHA256 | ECDH/ECDSA | AES | 128 | TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256 |
[0xc026] | ECDH-ECDSA-AES256-SHA384 | ECDH/ECDSA | AES | 256 | TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA384 |
[0xc027] | ECDHE-RSA-AES128-SHA256 | ECDH | AES | 128 | TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 |
[0xc028] | ECDHE-RSA-AES256-SHA384 | ECDH | AES | 256 | TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384 |
[0xc029] | ECDH-RSA-AES128-SHA256 | ECDH/RSA | AES | 128 | TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256 |
[0xc02a] | ECDH-RSA-AES256-SHA384 | ECDH/RSA | AES | 256 | TLS_ECDH_RSA_WITH_AES_256_CBC_SHA384 |
[0xc02b] | ECDHE-ECDSA-AES128-GCM-SHA256 | ECDH | AESGCM | 128 | TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 |
[0xc02c] | ECDHE-ECDSA-AES256-GCM-SHA384 | ECDH | AESGCM | 256 | TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 |
[0xc02d] | ECDH-ECDSA-AES128-GCM-SHA256 | ECDH/ECDSA | AESGCM | 128 | TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256 |
[0xc02e] | ECDH-ECDSA-AES256-GCM-SHA384 | ECDH/ECDSA | AESGCM | 256 | TLS_ECDH_ECDSA_WITH_AES_256_GCM_SHA384 |
[0xc02f] | ECDHE-RSA-AES128-GCM-SHA256 | ECDH | AESGCM | 128 | TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 |
[0xc030] | ECDHE-RSA-AES256-GCM-SHA384 | ECDH | AESGCM | 256 | TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 |
[0xc031] | ECDH-RSA-AES128-GCM-SHA256 | ECDH/RSA | AESGCM | 128 | TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256 |
[0xc032] | ECDH-RSA-AES256-GCM-SHA384 | ECDH/RSA | AESGCM | 256 | TLS_ECDH_RSA_WITH_AES_256_GCM_SHA384 |
[0xc033] | ECDHE-PSK-RC4-SHA | PSK/ECDHE | RC4 | 128 | TLS_ECDHE_PSK_WITH_RC4_128_SHA |
[0xc034] | ECDHE-PSK-3DES-EDE-CBC-SHA | PSK/ECDHE | 3DES | 168 | TLS_ECDHE_PSK_WITH_3DES_EDE_CBC_SHA |
[0xc035] | ECDHE-PSK-AES128-CBC-SHA | PSK/ECDHE | AES | 128 | TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA |
[0xc036] | ECDHE-PSK-AES256-CBC-SHA | PSK/ECDHE | AES | 256 | TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA |
[0xc037] | ECDHE-PSK-AES128-CBC-SHA256 | PSK/ECDHE | AES | 128 | TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA256 |
[0xc038] | ECDHE-PSK-AES256-CBC-SHA384 | PSK/ECDHE | AES | 256 | TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA384 |
[0xc039] | ECDHE-PSK-NULL-SHA | PSK/ECDHE | Null | 0 | TLS_ECDHE_PSK_WITH_NULL_SHA |
[0xc03A] | ECDHE-PSK-NULL-SHA256 | PSK/ECDHE | Null | 0 | TLS_ECDHE_PSK_WITH_NULL_SHA256 |
[0xc03B] | ECDHE-PSK-NULL-SHA384 | PSK/ECDHE | Null | 0 | TLS_ECDHE_PSK_WITH_NULL_SHA384 |
[0xc03C] | TLS_RSA_WITH_ARIA_128_CBC_SHA256 | ||||
[0xc03D] | TLS_RSA_WITH_ARIA_256_CBC_SHA384 | ||||
[0xc03E] | TLS_DH_DSS_WITH_ARIA_128_CBC_SHA256 | ||||
[0xc03F] | TLS_DH_DSS_WITH_ARIA_256_CBC_SHA384 | ||||
[0xc040] | TLS_DH_RSA_WITH_ARIA_128_CBC_SHA256 | ||||
[0xc041] | TLS_DH_RSA_WITH_ARIA_256_CBC_SHA384 | ||||
[0xc042] | TLS_DHE_DSS_WITH_ARIA_128_CBC_SHA256 | ||||
[0xc043] | TLS_DHE_DSS_WITH_ARIA_256_CBC_SHA384 | ||||
[0xc044] | TLS_DHE_RSA_WITH_ARIA_128_CBC_SHA256 | ||||
[0xc045] | TLS_DHE_RSA_WITH_ARIA_256_CBC_SHA384 | ||||
[0xc046] | TLS_DH_anon_WITH_ARIA_128_CBC_SHA256 | ||||
[0xc047] | TLS_DH_anon_WITH_ARIA_256_CBC_SHA384 | ||||
[0xc048] | TLS_ECDHE_ECDSA_WITH_ARIA_128_CBC_SHA256 | ||||
[0xc049] | TLS_ECDHE_ECDSA_WITH_ARIA_256_CBC_SHA384 | ||||
[0xc04A] | TLS_ECDH_ECDSA_WITH_ARIA_128_CBC_SHA256 | ||||
[0xc04B] | TLS_ECDH_ECDSA_WITH_ARIA_256_CBC_SHA384 | ||||
[0xc04C] | TLS_ECDHE_RSA_WITH_ARIA_128_CBC_SHA256 | ||||
[0xc04D] | TLS_ECDHE_RSA_WITH_ARIA_256_CBC_SHA384 | ||||
[0xc04E] | TLS_ECDH_RSA_WITH_ARIA_128_CBC_SHA256 | ||||
[0xc04F] | TLS_ECDH_RSA_WITH_ARIA_256_CBC_SHA384 | ||||
[0xc050] | TLS_RSA_WITH_ARIA_128_GCM_SHA256 | ||||
[0xc051] | TLS_RSA_WITH_ARIA_256_GCM_SHA384 | ||||
[0xc052] | TLS_DHE_RSA_WITH_ARIA_128_GCM_SHA256 | ||||
[0xc053] | TLS_DHE_RSA_WITH_ARIA_256_GCM_SHA384 | ||||
[0xc054] | TLS_DH_RSA_WITH_ARIA_128_GCM_SHA256 | ||||
[0xc055] | TLS_DH_RSA_WITH_ARIA_256_GCM_SHA384 | ||||
[0xc056] | TLS_DHE_DSS_WITH_ARIA_128_GCM_SHA256 | ||||
[0xc057] | TLS_DHE_DSS_WITH_ARIA_256_GCM_SHA384 | ||||
[0xc058] | TLS_DH_DSS_WITH_ARIA_128_GCM_SHA256 | ||||
[0xc059] | TLS_DH_DSS_WITH_ARIA_256_GCM_SHA384 | ||||
[0xc05A] | TLS_DH_anon_WITH_ARIA_128_GCM_SHA256 | ||||
[0xc05B] | TLS_DH_anon_WITH_ARIA_256_GCM_SHA384 | ||||
[0xc05C] | TLS_ECDHE_ECDSA_WITH_ARIA_128_GCM_SHA256 | ||||
[0xc05D] | TLS_ECDHE_ECDSA_WITH_ARIA_256_GCM_SHA384 | ||||
[0xc05E] | TLS_ECDH_ECDSA_WITH_ARIA_128_GCM_SHA256 | ||||
[0xc05F] | TLS_ECDH_ECDSA_WITH_ARIA_256_GCM_SHA384 | ||||
[0xc060] | TLS_ECDHE_RSA_WITH_ARIA_128_GCM_SHA256 | ||||
[0xc061] | TLS_ECDHE_RSA_WITH_ARIA_256_GCM_SHA384 | ||||
[0xc062] | TLS_ECDH_RSA_WITH_ARIA_128_GCM_SHA256 | ||||
[0xc063] | TLS_ECDH_RSA_WITH_ARIA_256_GCM_SHA384 | ||||
[0xc064] | TLS_PSK_WITH_ARIA_128_CBC_SHA256 | ||||
[0xc065] | TLS_PSK_WITH_ARIA_256_CBC_SHA384 | ||||
[0xc066] | TLS_DHE_PSK_WITH_ARIA_128_CBC_SHA256 | ||||
[0xc067] | TLS_DHE_PSK_WITH_ARIA_256_CBC_SHA384 | ||||
[0xc068] | TLS_RSA_PSK_WITH_ARIA_128_CBC_SHA256 | ||||
[0xc069] | TLS_RSA_PSK_WITH_ARIA_256_CBC_SHA384 | ||||
[0xc06A] | TLS_PSK_WITH_ARIA_128_GCM_SHA256 | ||||
[0xc06B] | TLS_PSK_WITH_ARIA_256_GCM_SHA384 | ||||
[0xc06C] | TLS_DHE_PSK_WITH_ARIA_128_GCM_SHA256 | ||||
[0xc06D] | TLS_DHE_PSK_WITH_ARIA_256_GCM_SHA384 | ||||
[0xc06E] | TLS_RSA_PSK_WITH_ARIA_128_GCM_SHA256 | ||||
[0xc06F] | TLS_RSA_PSK_WITH_ARIA_256_GCM_SHA384 | ||||
[0xc070] | TLS_ECDHE_PSK_WITH_ARIA_128_CBC_SHA256 | ||||
[0xc071] | TLS_ECDHE_PSK_WITH_ARIA_256_CBC_SHA384 | ||||
[0xc072] | ECDHE-ECDSA-CAMELLIA128-SHA256 | ECDH | Camellia | 128 | TLS_ECDHE_ECDSA_WITH_CAMELLIA_128_CBC_SHA256 |
[0xc073] | ECDHE-ECDSA-CAMELLIA256-SHA38 | ECDH | Camellia | 256 | TLS_ECDHE_ECDSA_WITH_CAMELLIA_256_CBC_SHA384 |
[0xc074] | ECDH-ECDSA-CAMELLIA128-SHA256 | ECDH/ECDSA | Camellia | 128 | TLS_ECDH_ECDSA_WITH_CAMELLIA_128_CBC_SHA256 |
[0xc075] | ECDH-ECDSA-CAMELLIA256-SHA384 | ECDH/ECDSA | Camellia | 256 | TLS_ECDH_ECDSA_WITH_CAMELLIA_256_CBC_SHA384 |
[0xc076] | ECDHE-RSA-CAMELLIA128-SHA256 | ECDH | Camellia | 128 | TLS_ECDHE_RSA_WITH_CAMELLIA_128_CBC_SHA256 |
[0xc077] | ECDHE-RSA-CAMELLIA256-SHA384 | ECDH | Camellia | 256 | TLS_ECDHE_RSA_WITH_CAMELLIA_256_CBC_SHA384 |
[0xc078] | ECDH-RSA-CAMELLIA128-SHA256 | ECDH/RSA | Camellia | 128 | TLS_ECDH_RSA_WITH_CAMELLIA_128_CBC_SHA256 |
[0xc079] | ECDH-RSA-CAMELLIA256-SHA384 | ECDH/RSA | Camellia | 256 | TLS_ECDH_RSA_WITH_CAMELLIA_256_CBC_SHA384 |
[0xc07A] | TLS_RSA_WITH_CAMELLIA_128_GCM_SHA256 | ||||
[0xc07B] | TLS_RSA_WITH_CAMELLIA_256_GCM_SHA384 | ||||
[0xc07C] | TLS_DHE_RSA_WITH_CAMELLIA_128_GCM_SHA256 | ||||
[0xc07D] | TLS_DHE_RSA_WITH_CAMELLIA_256_GCM_SHA384 | ||||
[0xc07E] | TLS_DH_RSA_WITH_CAMELLIA_128_GCM_SHA256 | ||||
[0xc07F] | TLS_DH_RSA_WITH_CAMELLIA_256_GCM_SHA384 | ||||
[0xc080] | TLS_DHE_DSS_WITH_CAMELLIA_128_GCM_SHA256 | ||||
[0xc081] | TLS_DHE_DSS_WITH_CAMELLIA_256_GCM_SHA384 | ||||
[0xc082] | TLS_DH_DSS_WITH_CAMELLIA_128_GCM_SHA256 | ||||
[0xc083] | TLS_DH_DSS_WITH_CAMELLIA_256_GCM_SHA384 | ||||
[0xc084] | TLS_DH_anon_WITH_CAMELLIA_128_GCM_SHA256 | ||||
[0xc085] | TLS_DH_anon_WITH_CAMELLIA_256_GCM_SHA384 | ||||
[0xc086] | TLS_ECDHE_ECDSA_WITH_CAMELLIA_128_GCM_SHA256 | ||||
[0xc087] | TLS_ECDHE_ECDSA_WITH_CAMELLIA_256_GCM_SHA384 | ||||
[0xc088] | TLS_ECDH_ECDSA_WITH_CAMELLIA_128_GCM_SHA256 | ||||
[0xc089] | TLS_ECDH_ECDSA_WITH_CAMELLIA_256_GCM_SHA384 | ||||
[0xc08A] | TLS_ECDHE_RSA_WITH_CAMELLIA_128_GCM_SHA256 | ||||
[0xc08B] | TLS_ECDHE_RSA_WITH_CAMELLIA_256_GCM_SHA384 | ||||
[0xc08C] | TLS_ECDH_RSA_WITH_CAMELLIA_128_GCM_SHA256 | ||||
[0xc08D] | TLS_ECDH_RSA_WITH_CAMELLIA_256_GCM_SHA384 | ||||
[0xc08E] | TLS_PSK_WITH_CAMELLIA_128_GCM_SHA256 | ||||
[0xc08F] | TLS_PSK_WITH_CAMELLIA_256_GCM_SHA384 | ||||
[0xc090] | TLS_DHE_PSK_WITH_CAMELLIA_128_GCM_SHA256 | ||||
[0xc091] | TLS_DHE_PSK_WITH_CAMELLIA_256_GCM_SHA384 | ||||
[0xc092] | TLS_RSA_PSK_WITH_CAMELLIA_128_GCM_SHA256 | ||||
[0xc093] | TLS_RSA_PSK_WITH_CAMELLIA_256_GCM_SHA384 | ||||
[0xc094] | PSK-CAMELLIA128-SHA256 | PSK | CAMELLIA | 128 | TLS_PSK_WITH_CAMELLIA_128_CBC_SHA256 |
[0xc095] | PSK-CAMELLIA256-SHA384 | PSK | CAMELLIA | 256 | TLS_PSK_WITH_CAMELLIA_256_CBC_SHA384 |
[0xc096] | DHE-PSK-CAMELLIA128-SHA256 | PSK/DHE | CAMELLIA | 128 | TLS_DHE_PSK_WITH_CAMELLIA_128_CBC_SHA256 |
[0xc097] | DHE-PSK-CAMELLIA256-SHA384 | PSK/DHE | CAMELLIA | 256 | TLS_DHE_PSK_WITH_CAMELLIA_256_CBC_SHA384 |
[0xc098] | RSA-PSK-CAMELLIA128-SHA256 | PSK/RSA | CAMELLIA | 128 | TLS_RSA_PSK_WITH_CAMELLIA_128_CBC_SHA256 |
[0xc099] | RSA-PSK-CAMELLIA256-SHA384 | PSK/RSA | CAMELLIA | 256 | TLS_RSA_PSK_WITH_CAMELLIA_256_CBC_SHA384 |
[0xc09A] | ECDHE-PSK-CAMELLIA128-SHA25 | PSK/ECDHE | CAMELLIA | 128 | TLS_ECDHE_PSK_WITH_CAMELLIA_128_CBC_SHA256 |
[0xc09B] | ECDHE-PSK-CAMELLIA256-SHA38 | PSK/ECDHE | CAMELLIA | 256 | TLS_ECDHE_PSK_WITH_CAMELLIA_256_CBC_SHA384 |
[0xc09c] | AES128-CCM | RSA | AESCCM | 128 | TLS_RSA_WITH_AES_128_CCM |
[0xc09d] | AES256-CCM | RSA | AESCCM | 256 | TLS_RSA_WITH_AES_256_CCM |
[0xc09e] | DHE-RSA-AES128-CCM | DH | AESCCM | 128 | TLS_DHE_RSA_WITH_AES_128_CCM |
[0xc09f] | DHE-RSA-AES256-CCM | DH | AESCCM | 256 | TLS_DHE_RSA_WITH_AES_256_CCM |
[0xc0a0] | AES128-CCM8 | RSA | AESCCM8 | 128 | TLS_RSA_WITH_AES_128_CCM_8 |
[0xc0a1] | AES256-CCM8 | RSA | AESCCM8 | 256 | TLS_RSA_WITH_AES_256_CCM_8 |
[0xc0a2] | DHE-RSA-AES128-CCM8 | DH | AESCCM8 | 128 | TLS_DHE_RSA_WITH_AES_128_CCM_8 |
[0xc0a3] | DHE-RSA-AES256-CCM8 | DH | AESCCM8 | 256 | TLS_DHE_RSA_WITH_AES_256_CCM_8 |
[0xc0a4] | PSK-AES128-CCM | PSK | AESCCM | 128 | TLS_PSK_WITH_AES_128_CCM |
[0xc0a5] | PSK-AES256-CCM | PSK | AESCCM | 256 | TLS_PSK_WITH_AES_256_CCM |
[0xc0a6] | DHE-PSK-AES128-CCM | PSK/DHE | AESCCM | 128 | TLS_DHE_PSK_WITH_AES_128_CCM |
[0xc0a7] | DHE-PSK-AES256-CCM | PSK/DHE | AESCCM | 256 | TLS_DHE_PSK_WITH_AES_256_CCM |
[0xc0a8] | PSK-AES128-CCM8 | PSK | AESCCM | 128 | TLS_PSK_WITH_AES_128_CCM_8 |
[0xc0a9] | PSK-AES256-CCM8 | PSK | AESCCM | 256 | TLS_PSK_WITH_AES_256_CCM_8 |
[0xc0aa] | DHE-PSK-AES128-CCM8 | PSK/DHE | AESCCM | 128 | TLS_PSK_DHE_WITH_AES_128_CCM_8 |
[0xc0ab] | DHE-PSK-AES256-CCM8 | PSK/DHE | AESCCM | 256 | TLS_PSK_DHE_WITH_AES_256_CCM_8 |
[0xc0ac] | ECDHE-ECDSA-AES128-CCM | ECDH | AESCCM | 128 | TLS_ECDHE_ECDSA_WITH_AES_128_CCM |
[0xc0ad] | ECDHE-ECDSA-AES256-CCM | ECDH | AESCCM | 256 | TLS_ECDHE_ECDSA_WITH_AES_256_CCM |
[0xc0ae] | ECDHE-ECDSA-AES128-CCM8 | ECDH | AESCCM | 128 | TLS_ECDHE_ECDSA_WITH_AES_128_CCM_8 |
[0xc0af] | ECDHE-ECDSA-AES256-CCM8 | ECDH | AESCCM | 256 | TLS_ECDHE_ECDSA_WITH_AES_256_CCM_8 |
[0xcc13] | ECDHE-RSA-CHACHA20-POLY1305-OLD | ECDH | ChaCha20-Poly1305 | TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256_OLD | |
[0xcc14] | ECDHE-ECDSA-CHACHA20-POLY1305-OLD | ECDH | ChaCha20-Poly1305 | TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256_OLD | |
[0xcc15] | DHE-RSA-CHACHA20-POLY1305-OLD | DH | ChaCha20-Poly1305 | TLS_DHE_RSA_WITH_CHACHA20_POLY1305_SHA256_OLD | |
[0xff00] | GOST-MD5 | RSA | GOST89 | 256 | TLS_GOSTR341094_RSA_WITH_28147_CNT_MD5 |
[0xff01] | GOST-GOST94 | RSA | GOST89 | 256 | TLS_RSA_WITH_28147_CNT_GOST94 |
[0xff02] | GOST-GOST89MAC | RSA | GOST89 | 256 | |
[0xff03] | GOST-GOST89STREAM | RSA | GOST89 | 256 | |
[0xfefe] | RSA | DES | 56 | SSL_RSA_FIPS_WITH_DES_CBC_SHA | |
[0xfeff] | RSA | 3DES | 168 | SSL_RSA_FIPS_WITH_3DES_EDE_CBC_SHA | |
[0xfee0] | RSA | 3DES | 168 | SSL_RSA_FIPS_WITH_3DES_EDE_CBC_SHA | |
[0xfee1] | RSA | DES | 56 | SSL_RSA_FIPS_WITH_DES_CBC_SHA | |
[0x010080] | RC4-MD5 | RSA | RC4 | 128 | SSL_CK_RC4_128_WITH_MD5 |
[0x020080] | EXP-RC4-MD5 | RSA(512) | RC4 | 40, export | SSL_CK_RC4_128_EXPORT40_WITH_MD5 |
[0x030080] | RC2-CBC-MD5 | RSA | RC2 | 128 | SSL_CK_RC2_128_CBC_WITH_MD5 |
[0x040080] | EXP-RC2-CBC-MD5 | RSA(512) | RC2 | 40, export | SSL_CK_RC2_128_CBC_EXPORT40_WITH_MD5 |
[0x050080] | IDEA-CBC-MD5 | RSA | IDEA | 128 | SSL_CK_IDEA_128_CBC_WITH_MD5 |
[0x060040] | DES-CBC-MD5 | RSA | DES | 56 | SSL_CK_DES_64_CBC_WITH_MD5 |
[0x060140] | DES-CBC-SHA | RSA | DES | 56 | SSL_CK_DES_64_CBC_WITH_SHA |
[0x0700c0] | DES-CBC3-MD5 | RSA | 3DES | 168 | SSL_CK_DES_192_EDE3_CBC_WITH_MD5 |
[0x0701c0] | DES-CBC3-SHA | RSA | 3DES | 168 | SSL_CK_DES_192_EDE3_CBC_WITH_SHA |
[0x080080] | RC4-64-MD5 | RSA | RC4 | 64 | SSL_CK_RC4_64_WITH_MD5 |
[0xff0800] | DES-CFB-M1 | RSA | DES | 64 | SSL_CK_DES_64_CFB64_WITH_MD5_1 |
[0xff0810] | NULL | None | Null | 0 | SSL_CK_NULL |
我们需要在每个域名中判断一个 x_forwarded_for 钟是否有我们要拒绝的IP地址,如果有就返回403,不在往后代理。
我们定义一个map 拒绝的IP地址列表。
cat x_forwarded_for_deny.conf
1 | map $http_x_forwarded_for $allowed { |
include x_forwarded_for_deny_list/*.conf
这个目录下禁止IP地址的文件
如:
cat x_forwarded_for_deny_list/2019-07-08.conf
1 | ~\s*192.168.0.100$ deny; |
nginx 配置文件需要 include x_forwarded_for_deny.conf
vim nginx.conf 添加
1 | ....... |
每个域名的location中需要添加判断
如:
1 | server { |
这样就可以拒绝你设置好的IP地址访问, nginx access日志用会有拒绝的IP得知日志,放回状态是403
]]>可以通过运行 mesos-master –help 或者 mesos-slave –help 可以查看相关的可用选项。每个选项可以通过以下两种方式设置
Flag | 说明 | ||
---|---|---|---|
–advertise_ip=VALUE | 用来触达 mesos master/slave 的 IP 广播地址。 Mesos master/slave 不会与这个 IP 地址绑定。 但是,这个 IP 地址可以被用来访问 Mesos master/slave. | ||
–advertise_port=VALUE | 用来触达 mesos master/slave 的广播端口 (配合 advertise_ip). Mesos master/slave 不与这个端口绑定。 但是,这个端口 (配合 advertise_ip) 可以用于访问 Mesos master/slave. | ||
–firewall_rules=VALUE | 该值是终端防火墙的规则(rules),可以为JSON 类型的 rules 或包含 JSON 类型 rules 的文件。文件路径可以为 file:///path/to/file 或者 /path/to/file。 规则的格式请参考文件 flags.proto 中的 Firewall 信息。 例如: { “disabled_endpoints” : { “paths” : [ “/files/browse”, “/metrics/snapshot” ] } } | ||
–[no-]help | 输出帮助信息 (默认值: false) | ||
–ip=VALUE | 监听的 IP 地址. 这个不能与–ip_discovery_command一起使用. (master默认5050,slave默认5051) | ||
–ip_discovery_command=VALUE | IP 发现可选项: 如果设置 IP 地址,master/slave 将会尝试绑定这个 IP 地址。 不能与 –ip 一起使用. | ||
–port=VALUE | 监听端口 | ||
–[no-]version | 显示版本并退出 (默认: false) | ||
–hooks=VALUE | 一个由逗号分隔的 hook 模块列表将被安装到 master/slave。 | ||
–hostname=VALUE | slave 节点报告或 master 节点在 ZooKeeper 里广播的 hostname. 如果不做设置,hostname 将解析为 master/slave 绑定的 IP 地址。 除非用户已经使用 –no-hostname_lookup 明确禁止了此功能, in which case the IP itself is used. | ||
–[no-]hostname_lookup | 当没有明确指定 hostname 时(例如 –hostname),是否查询找出服务器的 hostname。 默认值是 true; 如果设置为 false Mesos 将会使用 IP 地址信息,除非 hostname 被明确指出了。 (默认值: true) | ||
–modules=VALUE | List of modules to be loaded and be available to the internal subsystems. Use –modules=filepath to specify the list of modules via a file containing a JSON-formatted string. filepath can be of the form file:///path/to/file or /path/to/file. Use –modules=”{…}” to specify the list of modules inline. Example: { “libraries”: [ { “file”: “/path/to/libfoo.so”, “modules”: [ { “name”: “org_apache_mesos_bar”, “parameters”: [ { “key”: “X”, “value”: “Y” } ] }, { “name”: “org_apache_mesos_baz” } ] }, { “name”: “qux”, “modules”: [ { “name”: “org_apache_mesos_norf” } ] } ] } |
masters 和 slaves 同时支持以下这些日志选项 更多日志信息,请访问
http://mesos.apache.org/documentation/latest/logging/
Flag | 说明 | ||
---|---|---|---|
–[no-]quiet | 禁用输出日志到 sterr (默认:false) | ||
–log_dir=VALUE | 输出日志文件的位置。默认方式下,不生成日志文件。这个参数不影响输出到 stderr 的日志。 如果特别指定了,就可以通过 Mesos webUI 看到这个日志文件。 注意: 第三方日志信息 (比如,ZooKeeper) 将只能写入到 stderr! | ||
–logbufsecs=VALUE | 缓冲日志的时长(秒数)默认:0秒 | ||
–logging_level=VALUE | 输出日志的起始级别,包括 INFO, WARNING, ERROR。如果使用了–quiet 标记,只会影响到输出到 –log_dir 的日志的级别(默认:INFO) | ||
–[no-]initialize_driver_logging | master/slave 是否为 Mesos scheduler 和 executor driver 初始化 Google logging. scheduler/executor drivers 将分别记录日志,不会写入 master/slave 的日志中。 如果使用的是 HTTP scheduler/executor APIs,这个选项将无效。 (默认:true) | ||
–external_log_file=VALUE | 定位外部管理的日志文件位置。Mesos 不会直接写入这个文件,仅会通过 WebUI 和 HTTP API 将其 暴露出来。这个仅用于混合外部日志机制来记录日志到 stderr 的情况。比如,syslog 或 journald。 当通过 –quiet 指定后,这个选项将无效。 此选项在 WebUI 的优先级高于 –log_dir . 但即使这个选项被指定了,日志任然会被 写入到 –log_dir。 |
必选参数
Flag | 说明 | ||
---|---|---|---|
–quorum=VALUE | 使用基于 replicated-Log 的注册表时,复制的个数。 此值需要设置为masters总数量的一半以上,也就是:quorum > (number of masters)/2。 注意:单机模式下不需要设置此参数。(非HA模式) | ||
–work_dir=VALUE | Registry 中持久化信息存储的位置。(如:/var/lib/mesos/master) | ||
–zk=VALUE | ZooKeeper 的 URL地址 (用于在masters中做领导选举)可能是下面所列形式中的一种: zk://host1:port1,host2:port2,…/path zk://username:password@host1:port1,host2:port2,…/path file:///path/to/file (where file contains one of the above) 注意: 单机模式下不需要设置此参数。(非HA模式). |
可选参数
Flag | 说明 | ||
---|---|---|---|
–acls=VALUE | 此参数用于认证。一般是 JSON 格式的 ACLs 的字符串或者文件。 路径一般是这样的格式:file:///path/to/file 或 /path/to/file 注意:如果参数 –authorizers 的值与 local 的不相同,ACLs 的内容将被忽略。 在 authorizer.proto 中查看 ACLs protobuf 参考格式。 举例: { “register_frameworks”: [ { “principals”: { “type”: “ANY” }, “roles”: { “values”: [“a”] } } ], “run_tasks”: [ { “principals”: { “values”: [“a”, “b”] }, “users”: { “values”: [“c”] } } ], “teardown_frameworks”: [ { “principals”: { “values”: [“a”, “b”] }, “framework_principals”: { “values”: [“c”] } } ], “set_quotas”: [ { “principals”: { “values”: [“a”] }, “roles”: { “values”: [“a”, “b”] } } ], “remove_quotas”: [ { “principals”: { “values”: [“a”] }, “quota_principals”: { “values”: [“a”] } } ] } | ||
–allocation_interval=VALUE | (批次)执行分配(allocations)的间隔时间。(如:500ms,1秒……) 默认值:1秒 | ||
–allocator=VALUE | 分配器,用于给框架分配资源。默认使用 HierarchicalDRF 分配器,也可以通过 –modules 模块来选择其他的分配器。 (默认值:HierarchicalDRF) | ||
–[no-]authenticate | 如果是 true,则只有认证过的框架可以注册。 如果是 false,则未认证的框架也可以注册。(默认:false) | ||
–[no-]authenticate_http | 如果是 true,则只有支持认证机制的已认证的 HTTP endpoints 请求被允许访问。 如果是 false,则未认证的 HTTP endpoint 请求也会被允许访问。 (默认:false) | ||
–[no-]authenticate_slaves | 如果是 true,只有认证过的 slaves 才能注册。 如果是 false,未认证的 slaves 也可以注册。 (默认:false) | ||
–authenticators=VALUE | 框架或 slave 进行认证时使用的认证器。默认是 crammd5,也可以通过使用 –modules 更换其他认证模块。 (默认:crammd5) | ||
–authorizers=VALUE | 用于进行授权的 Authorizer。默认使用 local,也可以通过使用 –modules 替换成其他的 authorizer。 注意:如果参数 –authorizers 提供了一个与 local 不一样的值。 则通过–acls 设置的 ACLs 参数将被忽略。 目前并不支持多个 authorizers. (默认:local) | ||
–cluster=VALUE | 集群别名,会在 WebUI上显示。 | ||
–credentials=VALUE | 一个存取凭证的路径。这个路径可以指向一个内容为凭证列表的文本文件,在这个文件中每一行包括由空格隔开的principal和secret。也可以指向一个包含凭证信息的 JSON 格式文件。 路径的格式可以是:file:///path/to/file 或 /path/to/file JSON 文件举例: { “credentials”: [ { “principal”: “sherman”, “secret”: “kitesurf” } ] } 文本文件举例: username secret | ||
–framework_sorter=VALUE | 给定 framework 之间的资源分配策略。选项与 user_allocator 相同。 (默认:drf) | ||
–http_authenticators=VALUE | HTTP 认证器用于处理已验证的 endpoints 的请求。默认值是 basic,或者通过 –modules 加载一个其他的 HTTP 认证器。 | ||
目前不支持多种 HTTP 认证器。(默认:basic) | |||
–[no-]log_auto_initialize | 是否自动初始化注册使用的 replicated log 。如果设置为否,日志将在每次使用时手动初始化。 (默认值:true) | ||
–max_completed_frameworks=VALUE | 存储在内存中的完成框架的最大数量。(默认:50) | ||
–max_completed_tasks_per_framework =VALUE | 存储在内存的每个框架中已完成任务的最大数量。(默认:1000) | ||
–max_slave_ping_timeouts=VALUE | 一个 slave 对于master的 ping 响应失败的最大次数。 如果 slaves 没有在 max_slave_ping_timeouts 之内响应,就会尝试关机。 (默认:5) | ||
–offer_timeout=VALUE | 一个 offer 撤销的超时时间。 这可以让不同的 frameworks 提供的 offer 获得更公平的响应。 如果不设置, offers 没有超时限制。 | ||
–rate_limits=VALUE | 该值可以为一个 JSON 格式的速率限制或一个文件路径包含了被 framework 限速 所使用的 JSON 格式的速率限制。请记住你也可以是使用 file:///path/to/file 或 /path/to/file 参数值格式来将该 JSON 写入至一个文件。 期望的格式请参考 mesos.proto 中的 RateLimits protobuf. Example: { “limits”: [ { “principal”: “foo”, “qps”: 55.5 }, { “principal”: “bar” } ], “aggregate_default_qps”: 33.3 } | ||
–recovery_slave_removal_limit=VALUE | 针对故障转移,限制上的百分比的 slaves 可以从注册中移除并关机在重新注册的超时时间到了之后。 如果该限制被突破, master 将实行故障转移而不是移除 slaves. 这可被用来针对生产环境提供安全保障。生产环境可能期望在 Master 故障转移过程中, 最多一定百分比的 slaves 将永久性的挂掉 (比如, 由于 rack-level 的故障)。 设定该限制可以保证一个人需要参与进来当在该集群中一个非预期的大范围的 slave 故障发生。值: [0%-100%] (默认: 100%) | ||
–registry=VALUE | 注册表持久化策略。可用选项有 replicated_log,in_memory(用于测试)。 默认:replicated_log。 | ||
–registry_fetch_timeout=VALUE | 在操作被认为是一个失败后的为了从注册中提取数据的等待的时间间隔.(默认: 1mins) | ||
–registry_store_timeout=VALUE | 等待的时间周期为了当操作被认为一个失败的时候将数据存储入注册机。 (默认:20secs) | ||
–[no-]registry_strict | 无论 Master 是否将基于注册机中存储的持久信息来采取行动。设定改值为 false 意味着注册员将永远拒绝入列,出列和一个 slave 的移除。所以, false 可以用来在一个运行的集群上来引导持久化的状态。注意: 该标志位是 experimental 而且还不能在应用中使用.(默认: false) | ||
–roles=VALUE | 其 frameworks 在这个集群中可能归属于的用逗号分离的一系列指派的角色。 | ||
–[no-]root_submissions | root 是否可以提交 frameworks? (默认: true) | ||
–slave_ping_timeout=VALUE | 在每个 slave 被期望从一个 master 回应一个 ping 值的超时时间。 Slaves 如果不是在 max_slave_ping_timeouts 回复,ping 从新尝试将被移除. (默认: 15secs) | ||
–slave_removal_rate_limit=VALUE | 最大的比例(e.g., 1/10mins, 2/3hrs, etc) 对于那个 slaves 将被从 master 中移除当他们遇到健康检测失败。默认的是 slave 将尽可能快的被移除当它们遇到健康监测失败。值为 (Number of slaves)/(Duration) 的模式。 | ||
–slave_reregister_timeout=VALUE | 在所有的 slaves 被期望重新注册当一个新的 master 被选举为 leader 的超时时间。 Slaves 其不会在此超时时间内被重新注册将被从注册中移除并将被关掉如果它们尝试去与 master 通信。 注意: 该值将被设置为最少 10mins. (默认: 10mins) | ||
–user_sorter=VALUE | 被用来在用户中分配资源的策略。可以为以下之一:dominant_resource_fairness (drf) (default: drf) | ||
–webui_dir=VALUE | 管理页面的网页文件的目录,默认:/usr/local/share/mesos/webui | ||
–weights=VALUE | 逗号分割的角色/权重列表,成对表单 role=weight,role=weight。 weights是用来表达优先级。 | ||
–whitelist=VALUE | 一个 文件名器包含一系列的 slaves (每行一个)来通告 offers.该文件被观测,并周期性的重读取来刷新 slave 白名单。 默认的这里没有白名单/所有机器被接收. (默认: None) 文件路径可以是这样的形式: file:///path/to/file 或 /path/to/file. | ||
–zk_session_timeout=VALUE | zookeeper 的 session 超时时长。 (默认: 10secs) |
通过 –with-network-isolator 配置时可用的标记
Flag | 说明 | ||
---|---|---|---|
–max_executors_per_slave=VALUE | 每个 Slave 上最大允许的执行器数量。网络监控和隔离机制强行限制每个执行器使用的端口资源,所以每个 slave 上只能跑一定数量的执行器。 |
必选项
Flag | 说明 | ||
---|---|---|---|
–master=VALUE | 可能是其中的一种: host:port zk://host1:port1,host2:port2,…/path zk://username:password@host1:port1,host2:port2,…/path file:///path/to/file (包含以上中的一个) |
可选项
Flag | 说明 | ||
---|---|---|---|
–appc_store_dir=VALUE | appc 提供者存储镜像的目录 (默认: /tmp/mesos/store/appc) | ||
–attributes=VALUE | slave 机器的属性,格式为: rack:2 或者rack:2;u:1 | ||
–authenticatee=VALUE | 用于主节点身份验证,默认crammd5,或者用-—modules加载备用模块。(默认:crammd5) | ||
–[no]-cgroups_cpu_enable_pids_and_tids_count | Cgroups 的功能标记,可以统计容器内的进程和线程的数量。(默认:false) | ||
–[no]-cgroups_enable_cfs | Cgroups 的功能标记,通过限制CFS带宽来限制CPU资源. (默认: defult) | ||
–cgroups_hierarchy=VALUE | cgroups的根路径位置. 默认: /sys/fs/cgroup | ||
–[no]-cgroups_limit_swap | Cgroups 的功能标记,可以对内存和swap进行限制,而不仅限制内存。(默认: false) | ||
–cgroups_net_cls_primary_handle 一 | 个非零,16位的句柄。形式类似于:0xAAAA . 这将作为 net_cls cgroup 的主句柄来使用。 | ||
–cgroups_net_cls_secondary_handles | 一系列的类似 0xAAAA,0xBBBB 形式的次要句柄,将与主句柄配合使用。只有在设置了 –cgroups_net_cls_primary_handle 之后,才会生效。 | ||
–cgroups_root=VALUE | 根cgroup的命名. 默认: mesos | ||
–container_disk_watch_interval=VALUE | 用于查询容器中磁盘配额的时间间隔. 被用于posix/disk的时间间隔, 默认: 15秒 | ||
–container_logger=VALUE | 容器日志记录器的名称,日志记录器用来记录容器(如:执行器,任务)的标准输出和错误日志。 默认的日志记录器将会写入到沙盒目录中的 stdout 和 stderr。 | ||
–containerizer_path=VALUE | 当外部隔离机制被激活时(–isolation=external), 外部容器被执行的路径 | ||
–containerizers=VALUE | 由逗号分隔的容器化实现方式列表。可选项有 mesos, external, and docker (on Linux). 排列的顺序就是容器化过程中尝试的顺序。 (默认:mesos) | ||
–credential=VALUE | 一行包含principal和secret由空格隔开的文本路径. 或是包含一条凭证的JSON格式文件的路径. 路径的格式是file://path/to/file 或 /path/to/file. 例如: { “principal”: “username”, “secret”: “secret” } | ||
–default_container_image=VALUE | 当使用外部容器化器时,在任务没有特别指定的情况下所使用的默认容器镜像。 没有在一个 task 上指定 ,则使用默认的容器镜像。 | ||
–default_container_info=VALUE | JSON格式的 CONTAINERINFO 将包含到任何没有指定 ContainerInfo 的 ExecutorInfo 中。 See the ContainerInfo protobuf in mesos.proto for the expected format. 例如: { “type”: “MESOS”, “volumes”: [ { “host_path”: “./.private/tmp”, “container_path”: “/tmp”, “mode”: “RW” } ] } | ||
–default_role=VALUE | 任何用 –resources 标志位将忽略一个 role ,以及在 –resources 标记位中出现,但被自动检测到的资源。都将使用默认的这个 role。 | ||
–disk_watch_interval=VALUE | 周期性时间间隔(例如 10 S ,2 MIN 等)检查slave管理的硬盘使用情况。 这个会对存档信息和沙盒做垃圾回收。(默认: 1mins) | ||
–docker=VALUE | docker容器化的可执行文件的绝对路径。( 默认: docker ) | ||
–[no-]docker_kill_orphans | 允许 docker kill 掉 orphaned containers 。当你相同的 OS 中启动多个 slave,你应该考虑将此值设为 false 。 以规避 DockerContainerizer 中的一个实例移除被其他 slaves 所启用的 docker 任务。然而,你还应该确保为 slave 启用 checkpoint,这样相同 slave id 可以被重用 。否则当 slave 重启后,docker 任务不会被清除掉。( 默认为 true ) 。 | ||
–docker_mesos_image=VALUE | docker 镜像用于启动这个 mesos slave 实例。如果一个镜像被指定,docker containerizer 假定 slave 运行在 docker 容器中,并当 slave 重启和恢复时启动 executor 来恢复他们。 | ||
–docker_registry=VALUE | 一个下拉 Docker 镜像的默认 url. 可以是一个 Docker registry 服务的 URL(例如:https://registry.docker.io),也可以是 一个包含Docker存档的本地路径(例如:/tmp/docker/images) (默认:https://registry-1.docker.io ) | ||
–docker_remove_delay=VALUE | 移除 docker 前等待的时间 ( 如 3 天,2 周 等)。默认为 6 小时。 | ||
–docker_socket=VALUE | 一个安装在 Docker executor 容器内部的 UNIX 套接字路径。用来提供通过 CLI 访问 docker daemon 的能力。 这个必须是 slave docker 镜像用的路径。(默认:/var/run/docker.sock) | ||
–docker_stop_timeout=VALUE | 杀死实例后,在停止它之前 docker 需要等待的间隔时间 ( 默认: 0 Secs )。 | ||
–docker_store_dir=VALUE | Docker provisioner 用来存储镜像的目录。(默认:/tmp/mesos/store/docker) | ||
–[no-]enforce_container_disk_quota | 否为容器启用磁盘限额。这个标记位用来为 posix/disk 隔离。 ( 默认: false )。 | ||
–executor_environment_variables=VALUE | 使用 JSON 对象格式的环境变量。会通过 executor 来传递之后的 task。 默认情况下,executor 会继承 slave 的环境变量。 例如: { “PATH”: “/bin:/usr/bin”, “LD_LIBRARY_PATH”: “/usr/local/lib” } | ||
–executor_registration_timeout=VALUE | executor 挂起或者关闭前,等待其注册 slave 的时间。( 例如,60 S,3 mins 等 )。默认为 1 MIN 。 | ||
–executor_shutdown_grace_period=VALUE | 等待 executor 关闭的时间。( 例如, 60 S, 3 mins 等 )。默认为 5 S 。 | ||
–fetcher_cache_dir=VALUE | fetcher cache 的父目录。(每一个slave有一个子目录)。 (默认:/tmp/mesos/fetch) | ||
–fetcher_cache_size=VALUE | 以字节为单位的 fetcher cache 大小。( 默认: 2 GB ) | ||
–frameworks_home=VALUE | 相对于 executor 的路径前缀的 URI 。 | ||
–gc_delay=VALUE | 清理 executor 目录的延迟时间( 例如,3 天 或 2 周 等)。 注意,根据实际可用磁盘的情况,这个值可能会小些( 默认:1 周 )。 | ||
–gc_disk_headroom=VALUE | Adjust disk headroom used to calculate maximum executor directory age. Age is calculated by: gc_delay * max(0.0, (1.0 - gc_disk_headroom - disk usage)) every –disk_watch_interval duration. gc_disk_headroom must be a value between 0.0 and 1.0 (default: 0.1) | ||
–hadoop_home=VALUE | Hadoop 的安装路径。(用于从 HDFS 提取框架 executors ) (没有默认项,在环境中查找HADOOP_HOME,或者在PATH 查询 hadoop) | ||
–image_providers=VALUE | 由逗号分割的支持的镜像供应商列表。如:APPC,DOCKER. | ||
–image_provisioner_backend=VALUE | 从镜像中提取容器 rootfs 的策略。 如:bind, copy. (默认: copy) | ||
–isolation=VALUE | 所采用的隔离机制,如:posix/cpu,posix/mem 或 cgroups/cpu,cgroups/mem 或 network/port_mapping(通过 –with-network-isolator 标记来开启) 或 external 或者通过code>–modules标记替换成另一个隔离模块。 注意:这个标记仅用于 Mesos 容器化器。(默认:posix/cpu,posix/mem) | ||
–launcher=VALUE | Mesos 容器化器所使用的启动器。可以是 linux 或 posix。 Linux 启动器需要cgroups隔离机制。每个隔离器需要 Linux 的 namespaces 如 网络,pid,等。 如果没有特别指定,slave 将选择一个作为root运行的 Linux 启动器。 | ||
–launcher_dir=VALUE | Mesos 二进制目录路径。 Mesos 可以在这个目录下找到 健康检查,fetcher,容器化器,executor 的二进制文件。( 默认: /usr/local/lib/mesos )。 | ||
–oversubscribed_resources_interval=VALUE | Slave 会定期向 master 更新自己有效的,可以分配的资源。 更新的间隔时间是由这个 flag 控制的。 ( 默认:15 S )。 | ||
–perf_duration=VALUE | 一个 perf stat 例子的执行周期。持续时间必须比 perf_interval 少。(默认: 10 secs) | ||
–perf_events=VALUE | 一系列命令分离的 perf 事件当使用 perf_event 分离器时候来精简每个容器。默认为 None。运行 perf list 命令查看所有事件。当在 PerfStatistics protobuf 中被通告时候事件名称将被悲观性的消除并使用下划线代替连字符。 例如,cpu-cycles 变为 cpu_cycles。在 PerfStatistics protobuf 中可以看到所有名字。 | ||
–perf_interval=VALUE | Interval between the start of perf stat samples. Perf samples are obtained periodically according to perf_interval and the most recently obtained sample is returned rather than sampling on demand. For this reason, perf_interval is independent of the resource monitoring interval. (default: 60secs) | ||
–qos_controller=VALUE | Qos 控制器的名称被用来超额订阅。 | ||
–qos_correction_interval_min=VALUE | slave 从 Qos 控制器投票和执行 QoS 的更正基于其已运行 tasks 的观察到的性能 这些校正之间的最小间隔有此标记位指定。 ( 默认: 0 secs )。 | ||
–recover=VALUE | 是否恢复更新状态并与老的 executors 重新连接。 recover 可用的值有: reconnect:与老的还存活的 executors 重新连接。 cleanup:杀掉所有的老的还存活的 executors 并退出。 当 slave 不兼容 或 executor 更新时,使用这个选项。 (默认:reconnect) | ||
–recovery_timeout=VALUE | 分配给 slave 恢复的时间。如果 slave 恢复所用的时间超过 recovery_timeout,将会被终止。( 默认:15 min ) | ||
–registration_backoff_factor=VALUE | Slave initially picks a random amount of time between [0, b], where b = registration_backoff_factor, to (re-)register with a new master. Subsequent retries are exponentially backed off based on this interval (e.g., 1st retry uses a random value between [0, b 2^1], 2nd retry between [0, b 2^2], 3rd retry between [0, b * 2^3], etc) up to a maximum of 1mins (default: 1secs) | ||
–resource_estimator=VALUE | 用于 过度订阅 的 资源评估者 的名称。 | ||
–resources=VALUE | 每个 slave 总的可消耗资源。可以用 JSON 格式提供,也可以是使用分号隔开的 key:value 键值对列表,配合指定角色选项。 key:value 列表: name(role):value;name:value… To use JSON, pass a JSON-formatted string or use –resources=filepath to specify the resources via a file containing a JSON-formatted string. ‘filepath’ can be of the form file:///path/to/file or /path/to/file. Example JSON: [ { “name”: “cpus”, “type”: “SCALAR”, “scalar”: { “value”: 24 } }, { “name”: “mem”, “type”: “SCALAR”, “scalar”: { “value”: 24576 } } ] | ||
–[no-]revocable_cpu_low_priority | 通过 revocable CPU 以相对低的优先级运行 containers 。 目前只支持 cgroups/cpu isolator 。( 默认: true ) | ||
–sandbox_directory=VALUE | 沙盒被映射到容器中的绝对目录路径。 (默认: /mnt/mesos/sandbox) | ||
–slave_subsystems=VALUE | 一系列的逗号分隔的 cgroup 子系统来从二进制运行slave。例如,memory,cpuacct 。默认为 none 。此功能用于资源的监视以及 no cgroup 下限制设置,它们从 root mesos cgroup 继承而来。 | ||
–[no-]strict | 如果 strict=true,任何以及所有错误恢复都被认为是致命的。反之,恢复期间,任何预期的错误都会被忽略。 ( 默认: true ) | ||
–[no-]switch_user | 是否用提交它们的用户来运行 tasks 而不是使用运行 slave 的用户. ( 需要 setuid 权限)。 ( 默认: true ) If set to true, the slave will attempt to run tasks as the user who submitted them (as defined in FrameworkInfo) (this requires setuid permission and that the given user exists on the slave). If the user does not exist, an error occurs and the task will fail. If set to false, tasks will be run as the same user as the Mesos slave process. NOTE: This feature is not yet supported on Windows slave, and therefore the flag currently does not exist on that platform. (default: true) | ||
–[no-]systemd_enable_support | 系统支持的最高级控制。当设置为 enabled,像 executor life-time 延期这样的功能都会设置为 enabled,除非有一个明确的 flag 设置其为 disable。这个会在 agent 作为 systemd unit 发布 时设置为 enabled。 (默认:true) | ||
–systemd_runtime_directory=VALUE | systemd 系统运行时目录路径。 (默认:/run/systemd/system) | ||
–work_dir=VALUE | framework 工作目录的路径。( 默认: /tmp/mesos ) |
当配置了 ‘ –with-network-isolator ‘, 以下标记位才会生效:
1 | --ephemeral_ports_per_container=VALUE 有网络隔离器分配临时端口给一个容器。此端口号必须是 2 的倍数。( 默认: 1024 ) |
参考文章:https://mesos-cn.gitbooks.io/mesos-cn/content/document/runing-Mesos/Configuration.html
]]>marathon-lb代理https域名, 需要将证书当道lb上。nginx不需要开启443端口,nginx需要配置 vhost 才能访问。
marathon添加证书连接: marathon-lb上添加多个证书
域名都是通过 vhost 虚拟主机方式访问。这样nginx才能拿到 x_forwarded_for 客户端的IP地址。LB才会通过HTTP方式代理,否则会走TCP代理。
nginx上回有很多个域名,我们不能添加一个域名就修改一次 vhosts ,所以我们尝试添加 泛域名。
nginx 发布的json文件:
1 | { |
其中参数说明:
1 | "HAPROXY_0_HTTP_FRONTEND_ACL_ONLY": " acl host_{cleanedUpHostname} hdr(host) -m end .{hostname}\n", |
这个是http的默认解析。因为http会有很多二级域名,所以配置默认解析。
1 | "HAPROXY_0_HTTPS_FRONTEND_ACL": " use_backend {backend} if {{ ssl_fc_sni -m end .{hostname} }}\n", |
这个是配置https的泛解析,会在LB的配置的vhosts域名前面加“.”点, “end .{hostname} ” 那个点。
可以查看LB的配置
1 | curl 192.168.53.200:9090/_haproxy_getconfig |
可以看到 http 的 use_backend 是marathon上nginx的id
https 的end 后面的二级域名前面都添加了 “.”
这样 shiningtest1.com 和 shiningtest2.com 所有的域名都会转发到nginx上了。
相关参考文档:https://docs.mesosphere.com/services/marathon-lb/1.13/mlb-configuration/
]]>marathon-lb代理https域名, 需要将证书当道lb上。nginx不需要开启443端口,nginx需要配置 vhost 才能访问。
vhost 需要再nginx发布的时候通过标签形式发布的,但是一个nginx上可能多个域名,不是很灵活,(当你的服务全部都在mesos集群中的话,不用nginx,直接用LB+服务 方式,就可以在每个服务发布的时候声明vhosts。),之后我们研究了nginx发布的时候发布泛域名来解决这个问题。连接 : nginx实现marathon-lb的vhosts泛域名代理
marathon-lb 和 nginx 域名都是通过 vhost 虚拟主机方式访问。这样nginx才能拿到 x_forwarded_for 客户端的IP地址。LB才会通过HTTP方式代理,否则会走TCP代理。
marahton-lb 可以加载多个证书,–ssl-certs 用“,”逗号隔开证书路径
我没有把证书放到容器里面, 而是用的marathon uris 方式下载的。
LB的json文件:
1 | { |
这样LB上的443端口上默认就有了多个域名的证书,高版本的LB会自动根据域名自动匹配证书的。
LB参数参考 https://gitlab.oye.io/oyenet/marathon-lb/blob/master/Longhelp.md
]]>