Large network maintenance

Discussion in 'Systems Administration' started by MrDienns, Apr 13, 2017.

  1. Hi,

    I've asked a similar question before but never really got an answer to it.

    I'm looking for some tips on how to maintain a very large server network. I'm looking into:
    • Not having to use SSH, screens & terminals for console, some control panel (not multicraft duo to costs) would be nice. Security is extremely important for me so I want something waterproof.
    • A way to update plugins without having to restart the entire network & kicking all players, especially on BungeeCord.
    • Premade maps & playerdata - My server uses premade maps, pretty much like lobbies. I want to update or change these maps whenever I want to, on ALL servers. Will (world) playerdata become an isuse for things like lobbies? I don't feel like keeping the files as its only garbage.

    Thanks
     
    • Optimistic Optimistic x 1
  2. In regards to plugins and other things ill quote what i posted in a thread a while back

    For a webpanel look at puffer panel, it lets you run commands on all servers at the same time or on selected ones, is free and allows unlimited servers to the best of my knowledge, you could also look at pterodactyl panel, its made by the same guy

    if you read the bungeecord firewall guide and take the proper steps to secure your boxes you wont have any security issues
     
    • Useful Useful x 2
  3. Nothing more secure than management behind SSH. Secure your server and rest easy.
    Multi server/proxy setup? Reloading plugins with active players is unsafe.
    all playerdata is stored in /world/playerdata/. Copy over your region and other files and don't overwrite playerdata files.
     
    • Agree Agree x 1
  4. Thanks, I'll have a look at the given panels.

    I don't plan on literally reloading the plugins. I just want to update running plugins with new ones (we make our own plugins).

    While having SSH only would be the most secure, it's not exactly user friendly. Let's say I have over 100 Minecraft servers running, on 20 different machines. That'd be too much of a pain.

    And wouldn't all those playerdata files cause any trouble? I wouldn't know how much spaces they take up on average...
     
  5. For updating running plugins there is an "update" folder within bukkit. You copy jars to this directory and when the server restarts bukkit automatically copies these into the server directory to "update" them.
    http://bukkit.gamepedia.com/Bukkit.yml#update-folder
     
    • Useful Useful x 3
  6. Strahan

    Benefactor

    Where I work we have several hundred servers we SSH to when needed, it's no big deal. Sometimes getting good results takes a modicum of effort; being lazy isn't going to cut it.
     
  7. I don't think lazy is the exact word I would use to discribe it, I think efficiency would fit slightly better. ;)
     
  8. Not to mention that panels might break from time to time. Screen/tmux is faster configured and back online with the good servers
     
    • Agree Agree x 1
  9. Remember you lose functionality when using GUI. Command line is much more powerful.

    Server administrators for most companies use SSH because of this. There is so much more functionality and freedom while with a panel you are limited to what the GUI shows you. Additionally panels are MUCH slower (take a look at Multicraft console, with its slow rate and limited buffer). With screens you can go between servers with a simple key stroke quick and see everything you need. I don't see how a key stroke is more of a pain than clicking between servers on a GUI and waiting for that to load

    Every bullet you had can easily be done with a bash script to move files back and forth at timed intervals or whenever you specify.

    If you want to successfully maintain your server I suggest learning more about command line instead of worrying about "user friendliness"

    I'm not sure what you are using... But SSH is much much much much much much more efficient than a GUI (IF you know what you are doing).
     
    • Agree Agree x 1
  10. Eww pufferpanel. Use pterodactyl
     
  11. Strahan

    Benefactor

    What he said ->

    If you seriously think SSH isn't efficient, you're doing it wrong.
     
    • Agree Agree x 1
  12. My first thoughts are that if you have no idea how to manage remote networks and think SSH is inefficient, you have no business running 100 servers on 20 machines, and whatever you are planning will fail horribly and waste a ton of money..
     
    • Agree Agree x 2
  13. If you really want to become professional in your server management learn about:
    - Docker
    - Kubernetes
    - CI/CD
    (- Service Oriented Architecture)

    We're building a fully fledged solution with these components for Exorath (our minigame network). This architecture is build scale to an indefinite amount of players (theoretical max is around 900k, due to kubernetes limits), if you're not expecting more than thousand, just skip all the architectural worries and do shit manually.
    This is hands down the best and most maintainable way to manage a stateless (and even stateful) network. If you want I can explain a bit more about this on skype, just send me a pm.
     
    • Agree Agree x 2
  14. It was an example. I indeed don't have that big of a network at the moment.

    Really, I'm open for any opinions or criticism so I'd love to hear it, but please simply explain to me:

    SSH to create server:
    • SSH into server
    • Move to directories
    • Create symlinks
    • Create .sh file to run the server
    • Create docker containers
    • Create a new screen
    • Execute bash file
    • Exit screen
    A panel to create server:
    • Log into panel
    • Click about 3, maybe 4 buttons
    • .... done

    SSH is always the safest, no need to convince me with that. But without the use of fancy scripts (did I forget to mention that?) I don't see yet how SSH is faster... I'm a beginner when it comes to Linux. I don't know how to make fancy scripts, I know what docker is but never used it with commandline.

    I really wish to know how you people manage to do it efficiently with SSH. Am I missing some magic knowledge? Probably I guess :p
     
  15. Doing things manually with scripts and shit will become hectic after a while, especially if the games are short termed.
     
  16. get RedisBungee with the use of Redis, that way you can easily restart Bungee1 while Bungee2 is still running, or the oppesite.
    I use RedisBungee(dont need it) but i like it a lot
     
    • Useful Useful x 1
  17. Will that prevent ANYONE from losing connection?
     
  18. if they are connected to Bungee1 and if you restart Bungee1 they will disconnect ONCE, but in the meanwhile they can instantly connect back to Bungee2. All big servers has it like that, its just a quick relog while Bungee1 is starting up
     
  19. Strahan

    Benefactor

    Asking for a solution that doesn't leverage the proper tools for a job is about as silly as saying I want you to go from LA to NY in a day - but without the use of fancy airplanes. It's not fancy to make a script, it's simple. You just need to learn how to do it. If you want to have a 100 server 20 machine network you are gonna have to suck it up and make a little investment in effort to learn things, unless you intend to pay people to do your work.

    PS: I'm not saying you shouldn't use a panel; by all means, use what you want. However when it comes to systems administration in IT, no matter what you are administering, it's best to understand how to do things at the "nuts & bolts" level without having to rely on third party handholding. For example, if I need to transfer an FSMO role I use the Active Directory MMC snap-in (a GUI) because I can get lazy too lol. I do, however, know how to do it with the command line ntdsutil tool as well.
     
    #19 Strahan, Apr 14, 2017
    Last edited: Apr 14, 2017
    • Winner Winner x 1
  20. Okay as I've seen many have commented the same point before me I won't lengthen this as much as I was going to originally, honestly the use of Multicraft or any control panel in general is awful and amateur-like, not only are they horrible to look at but they're so slow especially for things such as an in-built sftp client.
    To start with I'll make a point about the ftp, it's really slow, if you're ever used Multicraft which you presumably have it's literally made for those that have generally no idea how to use a client such as FileZilla, and really don't want to put themselves out to get another software.
    I don't understand the reasoning how needing to click the ftp, click into the plugins and waiting like 3 seconds for each one to load, then pressing upload, clicking the browse, and then spending about 10 minutes looking through the path of your operating systems in order to find the upload you want, when with FileZilla it literally takes no time to browse through the files to the location you want, and no time to drag the folder and it uploads.
    Onto the terminal on Multicraft it is absolutely awful, half the time it doesn't actually update and when it does it just looks bad, it doesn't allow tabbing of names so if you're managing a large network good luck, especially if you're out of home.
    For on the go I always have an sftp client and a ssh client downloaded onto my phone just in-case something goes wrong while I'm out and at school, this way I always have peace of mind the server can always be fixed, with multicraft that's just not possible as they're really not build for mobile devices.
    SSH from software such as Putty or RoyalTS is so much easier to use, if you're worried about needing to login to the ssh each time you can use RoyalTS which allows you to setup a file one time which automatically stores a password, host, port and everything else you need to reach a specific terminal, so I can have a file which links directly to Skyblock or direction to Factions.
    This is most likely horriblely written, I'm eating atm ;)
     
    • Agree Agree x 1
    • Winner Winner x 1