오늘 마주친 에러는 Connection Refused였습니다. 별거도 아닌 일로 하루를 날려버려서, 굉장히 답답한 하루를 보냈습니다.
영어에서도 볼 수 있듯이, 연결이 거부되었다는 뜻입니다.
PY에서 RabbitMQ와 통신을 해야되는 상황인데 계속해서 데이터 송수신이 되지않았고, MQTT EXPLORER에서 connection Refused가 떴습니다.
MQTT 쪽에 ID와 PASSWORD를 설정해놔서 연결되지않는가보다하고 지워도 보고, 권한 태그등록까지 해봤지만 되지않았습니다.
그렇다면 서버가 안켜져있나? 생각이 들어서 Rabbitmq 서버를 확인 했습니다.
sudo rabbitmqctl status
netstat -tlnp
다음의 명령어로 rabbitmq 서버가 돌아가는지 안돌아가는지 볼 수 있습니다.
정상적으로 잘돌아가고 있습니다.
서버도 잘돌아가는데 데이터를 주고 받지 못하니, 권한 문제라는 생각이 들었습니다.
조금 더 검색하니 제가 놓친게 있었습니다. 항상 rabbitmq 설치 후에, 권한 태그등록까지는 나왔지만 그 후에 어떻게 권한 설정해야하는지는 나오지않았었는데, 권한 설정을 하지않아 되지않았던 것입니다.
rabbitmqctl set_permissions [-p <vhostpath>] <user> <conf> <write> <read<>
rabbitmqctl set_permissions -p / ".*" ".*" ".*"
그래도 이 에러를 마주치면서 추가로 알게된 것은 mqtt에서 id와 password 설정을 해서 보안을 강화할 수가 있는데, 위에 권한 설정에서 user에 추가하면 할 수 있다는 것과
계정의 권한에는 Administrator, Monitoring, Policymake, Management, None이 있다는 것
vhostpath를 사용할 수 있다는 것(Message Queue의 주소)