分类目录归档:服务器代维护

dmsetup命令详解

dmsetup命令详解

dmsetup命令是用于操纵设备映射的命令行工具,它可以用于创建、修改和删除设备映射。下面是dmsetup命令的详细说明:

1. 创建设备映射:使用dmsetup create命令可以创建一个设备映射。语法如下:
“`
dmsetup create <device name> [–table <table string>]
“`
– `<device name>`:要创建的设备映射的名称。
– `<table string>`:设备映射的配置表,可以使用线性、条带化、快照等不同的表类型来定义设备映射的行为。

2. 修改设备映射:使用dmsetup load命令可以修改一个已经创建的设备映射的配置表。语法如下:
“`
dmsetup load <device name> [–table <table string>]
“`
– `<device name>`:要修改的设备映射的名称。
– `<table string>`:新的配置表,用于替换原有的配置表。

3. 删除设备映射:使用dmsetup remove命令可以删除一个已经创建的设备映射。语法如下:
“`
dmsetup remove <device name>
“`
– `<device name>`:要删除的设备映射的名称。

4. 列出设备映射:使用dmsetup ls命令可以列出当前系统中所有已经创建的设备映射。语法如下:
“`
dmsetup ls [–tree]
“`
– `–tree`:以树形结构显示设备映射。

5. 查看设备映射的信息:使用dmsetup info命令可以查看指定设备映射的详细信息。语法如下:
“`
dmsetup info <device name>
“`
– `<device name>`:要查看的设备映射的名称。

6. 映射块设备:使用dmsetup map命令可以将一个块设备映射到一个设备映射。语法如下:
“`
dmsetup map <device name>
“`
– `<device name>`:要映射的设备映射的名称。

7. 解除映射块设备:使用dmsetup unmap命令可以解除一个块设备的映射关系。语法如下:
“`
dmsetup unmap <device name>
“`
– `<device name>`:要解除映射的设备映射的名称。

总结:dmsetup命令是Linux系统中用于操作设备映射的命令行工具,可以创建、修改和删除设备映射,以及查看设备映射的信息。

elasticsearch学习笔记

ElasticSearch 官方中文手册
英文:https://www.elastic.co/guide/en/elasticsearch/reference/current/targz.html#_check_that_elasticsearch_is_running

中文:
mac或linux系统,从归档文件中安装Elasticsearch

elasticsearch为linux和mac提供.tar.gz的归档包,
这个包包含免费和订阅的功能。30天的试用期

注意:elasticsearch内建包含了OpenJDK。

1、下载和安装
#cd /home/source
#wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-8.3.2-linux-x86_64.tar.gz
#tar -zxvf elasticsearch-8.3.2-linux-x86_64.tar.gz
#cd elasticsearch-8.3.2
#pwd
目录/home/source/elasticsearch-8.3.2 将作为 $ES_HOME的值

2、开启系统的自动建立索引
部分商业特性自动建立索引。默认情况下,elasticsearch不需要额外步骤,启动后建立就被配置为自动建立索引。
如果你关闭了自动索引,你必须在配置文件elasticsearch.yml中配置active.auto_create_index,如下配置:
action.auto_create_index: .monitoring*,.watches,.triggered_watches,.watcher-history*,.ml*

重要:如果你使用Logstash或Beats,大多数你需要在;action.autocreate_index增加索引名字,如果你不能确认该写什么参数,你可以写个*,这样会自动建立所有的索引

3、从命令行运行elasticsearch
$./bin/elasticsearch
第一次启动Elasticsearch时,安全会被配置,下面的是自动生成的:
. 验证被打开,用户elastic是内建的超级管理员,密码自动生成
. HTTP传输层的TLS的证书和秘钥生成,TLS会被配置使用此证书和密钥
. 为Kibana生成一个登记了的token,有效期30分钟
可以在其它任何时间更改内置超级管理员的密码:$bin/elasticsearch-reset-password -u elastic
可以在其它任何时间更改Kibana实例的token:$bin/elasticsearch-create-enrollment-token -s kibana
可以在其它任何时间更改Elasticsearch nodes的token:$bin/elasticsearch-create-enrollment-token -s node
如果你有一个受密码保护的Elasticsearch keystore,会被提示输入keystore的密码
Elasticsearch默认会打印日志到控制台,并且记录把日志记录到日志目录<clustername>.log。elasticsearch初始化时会打印一些信息,初始化完成后在前端运行时,不再打印日志,除非有值得记录的一些东西发生。Elasticsearch运行时,可以通过http接口9200端口和ElasticSearch交互。

在注册新节点之前,在集群中通常需要额外的操作,比如绑定到localhost以外的地址或满足elasticsearch引导程序检查。 在此期间,自动生成的注册令牌可能会过期,这就是为什么注册令牌不会自动生成的原因。
此外,同一主机上的节点加入集群,不需要额外的配置。 如果希望其他主机上的节点加入集群,则需要设置transport.host,指定一个受支持的值(如取消transport.host:0.0.0.0的注释),或者指定一个绑定到服务器的某个ip地址。
要在集群中注册新节点,可以在集群中的任何现有节点上使用elasticsearch-create-enrollment-token工具创建一个注册令牌。 然后,您可以使用–enrollment-token参数启动一个新节点,以便它加入现有的集群。
a、在运行Elasticsearch的另一个终端中,在Elasticsearch的安装目录,运行elasticsearch-create-enrollment-token工具,为新节点生成注册令牌。
$bin/elasticsearch-create-enrollment-token -s node
复制注册令牌,注册新节点。
b、 从新节点的安装目录中,启动Elasticsearch,并通过–enrollment-token参数传递注册令牌。
$bin/elasticsearch –enrollment-token <entollment-token>
这样,Elasticsearch 会在config/certs目录中自动生成证书和密钥
c、其它新节点加入重复以上步骤即可

4、检查Elasticsearch的运行
发送一个https的请求到本地端口9200来测试elasticsearch状态
$curl –cacert $ES_HOME/config/certs/http_ca.crt -u elastic https://localhost:9200
上面的$ES_HOME,也就是/home/source/elasticsearch-8.3.2

5、Run as daemon
$./bin/elasticsearch -d -p pid
日志会记录在$ES_HOME/logs/
pkill -F pid
注意:elasticsearch的tar.gz包,不包含systemd模块,如果希望以服务运行,那就使用rpm包

6、命令行配置Elasticsearch
elasticSearch默认读取$ES_HOME/config/elasticsearch.yml配置,yml中可以配置所有的参数,参数参考这里https://www.elastic.co/guide/en/elasticsearch/reference/current/settings.html
命令行也支持所以参数,使用-E参数,如
$./bin/elasticsearch -d -Ecluster.name=my_cluster -Enode.name=node_1
小技巧:通常,关于集群的配置都会放在yml配置中,而特点于节点的配置会放在命令行,如node.name,节点名

7、客户端连接elasticsearch
首次启动Elasticsearch时,会自动为HTTP层配置TLS。 生成CA证书并存储在磁盘上:
$ES_HOME/config/certs/http_ca.crt
该证书的十六进制SHA-256指纹也输出到终端。 任何连接到Elasticsearch的客户端,如Elasticsearch客户端、Beats、独立的Elastic Agents和Logstash,都必须验证他们是否信任Elasticsearch用于HTTPS的证书。 Fleet Server和Fleet-managed Elastic agent会自动配置为信任CA证书。 其他客户端可以使用CA证书的指纹或CA证书本身建立信任。
如果已完成自动配置,仍可获取安全证书的指纹信息。 您还可以将CA证书复制到您的计算机并配置您的客户端以使用它。

8、使用CA指纹
复制Elasticsearch启动时输出到终端的指纹值,并配置客户机在连接到Elasticsearch时使用该指纹建立信任。
如果已经完成自动配置,仍然可以通过以下命令获取安全证书的指纹信息。 路径为自动生成的HTTP层CA证书。
$openssl x509 -fingerprint -sha256 -in config/certs/http_ca.crt
该命令将返回安全证书,包括指纹。 颁发者应该是 Elasticsearch security auto-configuration HTTP CA。

9、使用CA 证书
如果您的库不支持验证指纹的方法,Elasticsearch节点自动生成的CA证书位于以下目录中:
$ES_HOME/config/certs/http_ca.crt
复制http_ca。 并将您的客户端配置为在连接到Elasticsearch时使用这个证书来建立信任。

10、目录说明
存档发行版是完全独立的。 默认情况下,所有文件和目录都包含在$ES_HOME中——解压缩时创建的目录。
这非常方便,因为您不需要创建任何目录就可以开始使用Elasticsearch,而卸载Elasticsearch就像删除$ES_HOME目录一样简单。 但建议修改config目录、data目录和logs目录的默认位置,以免后续删除重要数据。
home -> $ES_HOME
bin -> 可执行脚本目录,包含elesticsearch,用于启动node和elasticsearch-plugin,用于安装插件
conf -> 配置文件目录,包含elasticsearch.yml $ES_PATH_CONF,实际目录是$ES_HOME/config
conf -> 传输层和http层生成的密钥和证书的位置 $ES_HOME/config/certs
data -> 分配在节点上的每个索引/分片的数据文件的位置 $ES_HOME/data
logs ->
plugins -> 插件文件所在目录,一个插件一个子目录 $ES_HOME/plugins
repo -> 共享文件存储位置。 可容纳多个位置。 文件系统存储库可以放在这里指定的任何目录的任何子目录中。

11、证书和密码安全
安装Elasticsearch时,将在Elasticsearch配置目录中生成以下证书和密钥,用于将Kibana实例连接到您的Elasticsearch集群,并对节点间通信进行加密。 这里列出的文件供参考。
http_ca.crt 用于对这个Elasticsearch集群的HTTP层证书进行签名的CA证书。
http.p12 包含此节点HTTP层的密钥和证书的密钥存储库。
transport.p12 包含集群中所有节点的传输层密钥和证书的密钥存储库。
http.p12和运输。 p12是有密码保护的pkcs# 12密钥存储库。 Elasticsearch将这些密钥库的密码作为安全设置存储。 要检索密码,以便检查或更改密钥存储库内容,请使用bin/elasticsearch-keystore工具。
使用如下命令找回http.p12的密码:
$bin/elasticsearch-keystore show xpack.security.http.ssl.keystore.secure_password
使用如下命令找回transport.p12的密码:
bin/elasticsearch-keystore show xpack.security.transport.ssl.keystore.secure_password

 

 

 

 

 

 

 

 

 

 

 

1、安装,设置监听ip后,启动出错

| ERROR: [2] bootstrap checks failed. You must address the points described in the following [2] lin

[1]: max file descriptors [65535] for elasticsearch process is too low, increase to at least [65536]
编辑 /etc/security/limits.conf,追加以下内容;

#* soft core 0
#* hard rss 10000
* soft nofile 65536
* hard nofile 65536

此文件修改后需要重新登录用户,才会生效

[2]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

编辑 /etc/sysctl.conf,追加以下内容:

vm.max_map_count=655360

2,报错:[2022-07-23T18:44:55,440][ERROR][o.e.i.g.GeoIpDownloader ] [localhost.localdomain] exception during geoip databases update
org.elasticsearch.ElasticsearchException: not all primary shards of [.geoip_databases] index are active
at org.elasticsearch.ingest.geoip.GeoIpDownloader.updateDatabases(GeoIpDownloader.java:134) ~[ingest-geoip-8.3.2.jar:8.3.2]
at org.elasticsearch.ingest.geoip.GeoIpDownloader.runDownloader(GeoIpDownloader.java:274) [ingest-geoip-8.3.2.jar:8.3.2]
at org.elasticsearch.ingest.geoip.GeoIpDownloaderTaskExecutor.nodeOperation(GeoIpDownloaderTaskExecutor.java:102) [ingest-geoip-8.3.2.jar:8.3.2]
at org.elasticsearch.ingest.geoip.GeoIpDownloaderTaskExecutor.nodeOperation(GeoIpDownloaderTaskExecutor.java:48) [ingest-geoip-8.3.2.jar:8.3.2]
at org.elasticsearch.persistent.NodePersistentTasksExecutor$1.doRun(NodePersistentTasksExecutor.java:42) [elasticsearch-8.3.2.jar:?]
at org.elasticsearch.common.util.concurrent.ThreadContext$ContextPreservingAbstractRunnable.doRun(ThreadContext.java:769) [elasticsearch-8.3.2.jar:?]
at org.elasticsearch.common.util.concurrent.AbstractRunnable.run(AbstractRunnable.java:26) [elasticsearch-8.3.2.jar:?]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) [?:?]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) [?:?]
at java.lang.Thread.run(Thread.java:833) [?:?]

因为他启动时会去更新地图的一些数据库,这里直接禁掉即可,用到时再说,配置文件conf/elasticsearch.yml,增加配置

1
ingest.geoip.downloader.enabled: false

 

 

 

 

 

 

curl:测试语句
1、curl –user elastic:xEjB13-nuDEGVNLhCvhm -XGET ‘https://localhost:9200/dangjian_articles/_source/506’ –tlsv1.2 -k

2、curl –user elastic:xEjB13-nuDEGVNLhCvhm -XGET ‘https://localhost:9200/_cat/health?v‘ –tlsv1.2 -k    获取健康状态

3、curl –user elastic:xEjB13-nuDEGVNLhCvhm -H “Content-Type:application/json” -XGET ‘https://localhost:9200/_cat/indices‘ –tlsv1.2 -k  获取所有索引

curl –user elastic:xEjB13-nuDEGVNLhCvhm -H “Content-Type:application/json” -X PUT ‘https://localhost:9200/test/_doc/1’ -d ‘{“user”:”zhangsan”,”uid”:”8888″}’ –tlsv1.2 -k

curl –user elastic:xEjB13-nuDEGVNLhCvhm -H “Content-Type:application/json” -X GET ‘https://localhost:9200/twitter/_doc/ZYtFTYIBk4Inmlc-1jup?pretty’ –tlsv1.2 -k

 

curl –user elastic:xEjB13-nuDEGVNLhCvhm -H “Content-Type:application/json” -X POST ‘https://localhost:9200/twitter/_create/4′ -d ‘{“user”:”GBX2″,”uid”:4,”city”:”shijiazhuang”,”province”:”Hebei”,”country”:”China”,”DOB”:”2008-06-05″}’ –tlsv1.2 -k    如果id存在,则冲突,不能增加,如果id不存在,则能增加

 

 

 

 

 

 

 

 

 

 

 

其它:

Lucene全文检索就是对文档中全部内容进行分词,然后对所有单词建立倒排索引的过程
lucene是一套用于全文检索和搜寻的开源程序库
lucene可以用来制作搜索引擎产品
放一张图说明倒排索引:

apache跑php程序,超时中断问题,300s

apache2.4
php以fcgi方式运行

Apache虚拟主机配置如下:
Timeout 3600
FcgidIOTimeout 3600
FcgidIdleTimeout 3600
IPCConnectTimeout 3600
IPCCommTimeout 3600
FcgidBusyTimeout 3600   #这个默认是300s,这个修改为1小时

php文件中定义:

ini_set('max_execution_time', 3600);
//ini_set('memory_limit', '2048M');

施测可以解决

vnc xauth: (stdin):1: bad display name ,域名解析问题

vnc xauth: (stdin):1: bad display name

1.[root@host144 ~]# /etc/init.d/vncserver restart
2. Shutting down VNC server: 1:root 2:oracle [ OK ]
3. Starting VNC server: 1:root xauth: (stdin):1: bad display name “host144:1” in “add” command
4.

5. New ‘host144:1 (root)’ desktop is host144:1
6.

7. Starting applications specified in /root/.vnc/xstartup
8. Log file is /root/.vnc/host144:1.log
9.

10. 2:oracle xauth: (stdin):1: bad display name “host144:2” in “add” command
11.

12. New ‘host144:2 (oracle)’ desktop is host144:2
13.

14. Starting applications specified in /home/oracle/.vnc/xstartup
15. Log file is /home/oracle/.vnc/host144:2.log
16.

17. [ OK ]
解决方法:

1.[root@host144 .vnc]# cat /etc/hosts
2. 127.0.0.1 host144 localhost.localdomain localhost
3. 10.0.127.144 host144

本人提供服务器技术维护服务,需要者联系

一次被挂黑链及处理办法

服务器被挂黑链,登陆服务器,更改站点权限,权限分离,配置服务器目录权限,全部只读,通过访问网站,调试网站,给需要权限的目录以响应的权限,站点测试增长,开始清理php的一句话木马,清理大马,清理暗链,所有工作做完后,交付客户,客户满意,但是第二天。。。。。。。
继续阅读

message中的OOM Killer日志错误

理解和配置 Linux 下的 OOM Killer

(别人写的,正好碰到这个问题,记录一下)

最近有位 VPS 客户抱怨 MySQL 无缘无故挂掉,还有位客户抱怨 VPS 经常死机,登陆到终端看了一下,都是常见的 Out of memory 问题。这通常是因为某时刻应用程序大量请求内存导致系统内存不足造成的,这通常会触发 Linux 内核里的 Out of Memory (OOM) killer,OOM killer 会杀掉某个进程以 继续阅读

鸡鸡哥的nginx优化参数一backlog=8192

nginx服务器报错:
“connect() to unix:/dev/shm/fcgi.sock failed (11: Resource temporarily unavailable) while connecting to upstream”
解决:
修改
1、cat /proc/sys/net/core/somaxconn查看somaxconn的值,默认是128,
echo 8192 > /proc/sys/net/core/somaxconn,放到/etc/rc.local中
2、修改nginx配置文件,添加如下
继续阅读