运维排错总结

文章目录

        • 踩坑
          • 网络访问问题
            • Nginx端口占用的问题
            • nginx做代理时,后端访问很慢
            • ansible触发器
            • docker拉取仓库的时候显示TLS握手超时
            • ssh连接
        • 还没有解决
          • es问题
          • es启动后,又自动关闭了
            • 部署elasticsearch的时候
            • es节点无法通信的问题
            • 使用docker部署了es,但是在浏览器上访问不了,本地可访问

踩坑

网络访问问题

客户端一直访问不到服务端。原因是我之前在学tcp的时候,我对那台服务端的机器做过实验,避免time_wait过多,我修改过内核参数,改回来后,就没事了

Nginx端口占用的问题

Nginx启动的时候优雅重启启动失败,然后我使用nginx直接启动试了一下看报错信息是80端口被占用

[root@iZwz9hcv43i3gmo6zod6srZ local]# nginx -s reload
nginx: [error] open() "/run/nginx.pid" failed (2: No such file or directory)

解决方案

[root@iZwz9hcv43i3gmo6zod6srZ local]# nginx
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)

然后使用netstat -tulnp | grep 80发现是httpd在占用端口,说明我之前装了Apache,然后把它的端口改掉,或者先停止Apache服务就行。

使用ansible的时候如果想在去keepalived官网下keepalived,如果使用COMMAND模块去写,虽然也行,但是他会输出警告信息,告诉我们应该使用get_url,官方就是建议我们这么做的。

nginx做代理时,后端访问很慢

后端RS的问题?
locolhost改成127.0.0.1

ansible触发器

在写ansible触发器的时候,我执行的时候执行成功了,但是发现渲染配置文件的时候,有个地方(server_name)那里写的不对,然后我改了一下,再重新运行剧本,发现他报错说我的这个触发器找不到,其实是因为之前已经运行过一次了,我把触发器改名字,然后运行就可以了,但是好像在roles才有这个问题,我直接写playbook没有遇到这个问题,然后我去handles目录和tasks目录改了一下触发器的名字,就成功了
运维排错总结_第1张图片

docker拉取仓库的时候显示TLS握手超时

解决方案

ssh连接

在使用ansible的时候,我给被控节点分配公钥文件的时候,发现遇到这个报错,这是因为他们known_hosts之前就有了

ssh分发秘钥失败解决方案

zabbix服务端没有启动

在zabbix web界面上有提示说zabbix server没有正常启动,然后我登录服务器是要journalctl -xe查看,
运维排错总结_第2张图片
然后关掉防火墙,就OK了

还没有解决

es问题
es启动后,又自动关闭了

运维排错总结_第3张图片
经过查看日志后,发现是jdk版本的问题,然后使用yum升级了版本,重启es,发现正常了
参考:https://ask.csdn.net/questions/1051286

部署elasticsearch的时候

阿里云主机上查看节点有时候可以返回信息,有时候返回一串json信息(error),并且响应非常慢

[root@lvs ~]# curl -X GET "10.10.31.8:9200/_cat/indices?v&pretty"
curl: (7) Failed connect to localhost:9200; Connection refused

查看es节点健康信息,明明es已经开启,但是查看不了

[root@iZwz9hcv43i3gmo6zod6srZ etc]# systemctl status elasticsearch
● elasticsearch.service - Elasticsearch
   Loaded: loaded (/usr/lib/systemd/system/elasticsearch.service; disabled; vendor preset: disabled)
   Active: active (running) since Sun 2020-05-10 20:45:25 CST; 7s ago
     Docs: http://www.elastic.co
 Main PID: 1692 (java)
   CGroup: /system.slice/elasticsearch.service
           ├─1692 /bin/java -Xms1g -Xmx1g -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=75 -XX:+UseCMSInitiatingOccupancyOnly -Des.networkaddress.cache.ttl=60 -Des.networkaddress.cache.negat...
           └─1757 /usr/share/elasticsearch/modules/x-pack-ml/platform/linux-x86_64/bin/controller

May 10 20:45:25 iZwz9hcv43i3gmo6zod6srZ systemd[1]: Started Elasticsearch.
[root@iZwz9hcv43i3gmo6zod6srZ etc]# curl -i -XGET http://127.0.0.1:9200/_cluster/health?pretty
curl: (7) Failed connect to 127.0.0.1:9200; Connection refused

然后我多次尝试都没有效果,然后再次查看es服务的状态,发现是fail,难道是自动关闭了吗

[root@iZwz9hcv43i3gmo6zod6srZ etc]# systemctl status elasticsearch
● elasticsearch.service - Elasticsearch
   Loaded: loaded (/usr/lib/systemd/system/elasticsearch.service; disabled; vendor preset: disabled)
   Active: failed (Result: exit-code) since Sun 2020-05-10 20:45:33 CST; 1min 28s ago
     Docs: http://www.elastic.co
  Process: 1692 ExecStart=/usr/share/elasticsearch/bin/elasticsearch -p ${PID_DIR}/elasticsearch.pid --quiet (code=exited, status=1/FAILURE)
 Main PID: 1692 (code=exited, status=1/FAILURE)

May 10 20:45:25 iZwz9hcv43i3gmo6zod6srZ systemd[1]: Started Elasticsearch.
May 10 20:45:33 iZwz9hcv43i3gmo6zod6srZ systemd[1]: elasticsearch.service: main process exited, code=exited, status=1/FAILURE
May 10 20:45:33 iZwz9hcv43i3gmo6zod6srZ systemd[1]: Unit elasticsearch.service entered failed state.
May 10 20:45:33 iZwz9hcv43i3gmo6zod6srZ systemd[1]: elasticsearch.service failed.

然后我发现我重启后,只隔了十多秒,有时候十秒不到,他就会自动关闭,然后我反复确认配置文件有没有改错,发现好像没有大问题,然后分析,有可能是因为es消耗资源太多,被自动关闭了,但是我部署服务从来没有试过这种问题,然后还是top了一下,发现我的阿里云主机es服务的CPU使用率已经达到了将近200%,内存占用也超过了30%,然后再过几秒,在top的界面已经看不到这个进程了,说明真的是因为es消耗资源过大,被系统自动关闭了。
运维排错总结_第4张图片
最后查看日志
运维排错总结_第5张图片
发现可能是参数配置错了,然后根据它日志的提示,我把这一行注释掉,然后重启,就运行成功了
运维排错总结_第6张图片

es节点无法通信的问题

明明有3个节点,但是查看集群节点,却只有1个,首先先看看是不是防火墙问题,关闭防火墙之后,发现正常了,说明是防火墙的问题。然后如果是云主机的话,也会有这个问题

使用docker部署了es,但是在浏览器上访问不了,本地可访问

关闭了所有的防火墙,但是还是不行

你可能感兴趣的:(Linux整理)